-
Notifications
You must be signed in to change notification settings - Fork 1
2. Scaffold modes
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");
//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
Murcko framework of Flucloxacillin: n1occ(c1-c2ccccc2)CNC3CN4CCSC43
Elemental wire frame of Flucloxacillin: O1NC(C(C1)CNC2CN3CCSC32)C4CCCCC4
Basic framework of Flucloxacillin: c1ccc(cc1)C2=CCC=C2CCC3CC4CCCC34
Basic framework of Flucloxacillin: C1CCC(CC1)C2CCCC2CCC3CC4CCCC43