Skip to content

2. Scaffold modes

Jonas Schaub edited this page Sep 5, 2023 · 3 revisions

Five different structural scaffold definitions can be used with different levels of abstraction. See the article above for details.

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

//generate scaffold and saturate with implicit hydrogen atoms //scaffold (default scaffold mode option): ring systems, linkers, // and exocyclic and exolinker double bonds IAtomContainer tmpFlucloxacillinScaffold = tmpScaffoldGen.getScaffold(tmpFlucloxacillin, true); System.out.println("\nScaffold of Flucloxacillin: " + tmpSmiGen.create(tmpFlucloxacillinScaffold));

//Murcko framework: ring systems and linkers tmpScaffoldGen.setScaffoldModeSetting(ScaffoldGenerator.ScaffoldModeOption.MURCKO_FRAMEWORK); tmpFlucloxacillinScaffold = tmpScaffoldGen.getScaffold(tmpFlucloxacillin, true); System.out.println("Murcko framework of Flucloxacillin: " + tmpSmiGen.create(tmpFlucloxacillinScaffold));

//elemental wire frame: all multi bond abstracted to single bonds tmpScaffoldGen.setScaffoldModeSetting(ScaffoldGenerator.ScaffoldModeOption.ELEMENTAL_WIRE_FRAME); tmpFlucloxacillinScaffold = tmpScaffoldGen.getScaffold(tmpFlucloxacillin, true); System.out.println("Elemental wire frame of Flucloxacillin: " + tmpSmiGen.create(tmpFlucloxacillinScaffold));

//basic framework: all hetero atoms abstracted to carbon atoms tmpScaffoldGen.setScaffoldModeSetting(ScaffoldGenerator.ScaffoldModeOption.BASIC_FRAMEWORK); tmpFlucloxacillinScaffold = tmpScaffoldGen.getScaffold(tmpFlucloxacillin, true); System.out.println("Basic framework of Flucloxacillin: " + tmpSmiGen.create(tmpFlucloxacillinScaffold));

//basic wire frame: all atoms abstracted to carbon atoms // and all bonds abstracted to single bonds tmpScaffoldGen.setScaffoldModeSetting(ScaffoldGenerator.ScaffoldModeOption.BASIC_WIRE_FRAME); tmpFlucloxacillinScaffold = tmpScaffoldGen.getScaffold(tmpFlucloxacillin, true); System.out.println("Basic framework of Flucloxacillin: " + tmpSmiGen.create(tmpFlucloxacillinScaffold));

Output:
Scaffold of Flucloxacillin: O=C(NC1C(=O)N2CCSC21)c3conc3-c4ccccc4

image


Murcko framework of Flucloxacillin: n1occ(c1-c2ccccc2)CNC3CN4CCSC43

image


Elemental wire frame of Flucloxacillin: O1NC(C(C1)CNC2CN3CCSC32)C4CCCCC4

image


Basic framework of Flucloxacillin: c1ccc(cc1)C2=CCC=C2CCC3CC4CCCC34

image


Basic framework of Flucloxacillin: C1CCC(CC1)C2CCCC2CCC3CC4CCCC43

image