Skip to content

4. Parent scaffold generation

Jonas Schaub edited this page Aug 4, 2026 · 2 revisions

Scaffolds can be dissected into so-called parent scaffolds according to two methodologies (see article and below).

ScaffoldGenerator tmpScaffoldGen = new ScaffoldGenerator();
SmilesParser tmpSmiPar = new SmilesParser(SilentChemObjectBuilder.getInstance());
SmilesGenerator tmpSmiGen = tmpScaffoldGen.getSmilesGenerator();
IAtomContainer tmpFlucloxacillin = tmpSmiPar.parseSmiles("CC1=C(C(=NO1)C2=C(C=CC=C2Cl)F)C(=O)NC3C4N(C3=O)C(C(S4)(C)C)C(=O)O");

image

//1. according to the scaffold network approach, generate all possible parent scaffolds
List<IAtomContainer> tmpParentScaffolds = tmpScaffoldGen.applyEnumerativeRemoval(tmpFlucloxacillin);
System.out.println("\nEnumeration of all possible parent scaffolds of Flucloxacillin:");
for (IAtomContainer tmpParentScaffold : tmpParentScaffolds) {
    System.out.println(tmpSmiGen.create(tmpParentScaffold));
}
//2. generate only those parent scaffolds that are prioritized according to the scaffold tree rules
tmpParentScaffolds = tmpScaffoldGen.applySchuffenhauerRules(tmpFlucloxacillin);
System.out.println("\nPrioritized parent scaffolds of Flucloxacillin according to the scaffold tree rules:");
for (IAtomContainer tmpParentScaffold : tmpParentScaffolds) {
    System.out.println(tmpSmiGen.create(tmpParentScaffold));
}

Output:

Enumeration of all possible parent scaffolds of Flucloxacillin:
O=C(NC1C(=O)N2CCSC21)c3conc3-c4ccccc4

image

O=C(NC1C(=O)N2CCSC21)c3cnoc3

image

O=C(NC1C(=O)NC1)c2conc2-c3ccccc3

image

O=C1N2CCSC2C1

image

O=C(NC1C(=O)NC1)c2cnoc2

image

n1occc1-c2ccccc2

image

S1CNCC1

image

O=C1NCC1

image

n1occc1

image

c1ccccc1

image

Prioritized parent scaffolds of Flucloxacillin according to the scaffold tree rules:
O=C(NC1C(=O)N2CCSC21)c3conc3-c4ccccc4

image

O=C(NC1C(=O)N2CCSC21)c3cnoc3

image

O=C1N2CCSC2C1

image

O=C1NCC1

image

Clone this wiki locally