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