-
Notifications
You must be signed in to change notification settings - Fork 1
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");

//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

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

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

O=C1N2CCSC2C1

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

n1occc1-c2ccccc2

S1CNCC1

O=C1NCC1

n1occc1

c1ccccc1

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

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

O=C1N2CCSC2C1

O=C1NCC1
