1 package org.openscience.cdk.qsar.descriptors.molecular; 2 3 import java.io.InputStream; 4 5 import org.junit.Assert; 6 import org.junit.Before; 7 import org.junit.Test; 8 import org.openscience.cdk.AtomContainer; 9 import org.openscience.cdk.DefaultChemObjectBuilder; 10 import org.openscience.cdk.fragment.MurckoFragmenter; 11 import org.openscience.cdk.interfaces.IAtomContainer; 12 import org.openscience.cdk.io.IChemObjectReader.Mode; 13 import org.openscience.cdk.io.MDLV2000Reader; 14 import org.openscience.cdk.qsar.IMolecularDescriptor; 15 import org.openscience.cdk.qsar.result.DoubleResult; 16 17 /** 18 * @author chhoppe from EUROSCREEN 19 * @cdk.module test-qsarmolecular 20 */ 21 public class FragmentComplexityDescriptorTest extends MolecularDescriptorTest { 22 FragmentComplexityDescriptorTest()23 public FragmentComplexityDescriptorTest() {} 24 25 @Before setup()26 public void setup() throws Exception { 27 setDescriptor(FragmentComplexityDescriptor.class); 28 } 29 30 @Test test1FragmentComplexityDescriptor()31 public void test1FragmentComplexityDescriptor() throws Exception { 32 IMolecularDescriptor descriptor = new FragmentComplexityDescriptor(); 33 String filename = "data/mdl/murckoTest1.mol"; 34 //System.out.println("\nFragmentComplexityTest: " + filename); 35 InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); 36 MurckoFragmenter gf = new MurckoFragmenter(); 37 double Complexity = 0; 38 MDLV2000Reader reader = new MDLV2000Reader(ins, Mode.STRICT); 39 IAtomContainer mol = reader.read(new AtomContainer()); 40 gf.generateFragments(mol); 41 IAtomContainer[] setOfFragments = gf.getFrameworksAsContainers(); 42 for (int i = 0; i < setOfFragments.length; i++) { 43 addExplicitHydrogens(setOfFragments[i]); 44 Complexity = ((DoubleResult) descriptor.calculate(setOfFragments[i]).getValue()).doubleValue(); 45 //System.out.println("Complexity:"+Complexity); 46 } 47 Assert.assertEquals(659.00, Complexity, 0.01); 48 } 49 50 @Test test2FragmentComplexityDescriptor()51 public void test2FragmentComplexityDescriptor() throws Exception { 52 IMolecularDescriptor descriptor = new FragmentComplexityDescriptor(); 53 String filename = "data/mdl/murckoTest10.mol"; 54 InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); 55 MurckoFragmenter gf = new MurckoFragmenter(); 56 double Complexity = 0; 57 MDLV2000Reader reader = new MDLV2000Reader(ins, Mode.STRICT); 58 IAtomContainer mol = reader.read(DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class)); 59 gf.generateFragments(mol); 60 IAtomContainer[] setOfFragments = gf.getFrameworksAsContainers(); 61 for (IAtomContainer setOfFragment : setOfFragments) { 62 addExplicitHydrogens(setOfFragment); 63 Complexity = ((DoubleResult) descriptor.calculate(setOfFragment).getValue()).doubleValue(); 64 } 65 Assert.assertEquals(544.01, Complexity, 0.01); 66 } 67 68 } 69