Skip to content

4. Parent scaffold generation

Jonas Schaub edited this page Sep 4, 2023 · 1 revision

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