Skip to content

2. Scaffold modes

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

Five different structural scaffold definitions can be used with different levels of abstraction. See the article linked on the wiki home page 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

Clone this wiki locally