Skip to content

Commit

Permalink
created fptype-config.xml + Drivers
Browse files Browse the repository at this point in the history
for compairing CDK-fingerprints
  • Loading branch information
jonalv authored and egonw committed Oct 13, 2009
1 parent 6eb31fd commit a9d577b
Show file tree
Hide file tree
Showing 8 changed files with 298 additions and 0 deletions.
94 changes: 94 additions & 0 deletions fptype-config.xml
@@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<testSuite name="CheminfoBench" xmlns="http://www.sun.com/japex/testSuite">

<param name="basedir"
value="."/>
<param name="japex.classPath"
value="build/classes" />
<param name="japex.resultUnit"
value="ms" />
<param name="japex.warmupIterations"
value="5" />
<param name="japex.runIterations"
value="25" />
<param name="japex.reportsDirectory"
value="build/reports" />

<driverGroup name="Fingerprints"
xmlns="http://www.sun.com/japex/testSuite">

<driver name="Fingerprinter">
<param name="japex.driverClass"
value="net.openmolecules.benchmark.driver.fingerPrinting.FingerprinterDriver" />
<param name="japex.classPath"
value="${basedir}/lib/cdk-1.3.x-20091008.jar" />
<param name="description"
value="" />
<param name="chemObjectBuilder"
value="org.openscience.cdk.DefaultChemObjectBuilder" />
</driver>

<driver name="ExtendedFingerprinter">
<param name="japex.driverClass"
value="net.openmolecules.benchmark.driver.fingerPrinting.ExtendedFingerprinterDriver" />
<param name="japex.classPath"
value="${basedir}/lib/cdk-1.3.x-20091008.jar" />
<param name="description"
value="" />
<param name="chemObjectBuilder"
value="org.openscience.cdk.DefaultChemObjectBuilder" />
</driver>

<driver name="MACCSFingerprinter">
<param name="japex.driverClass"
value="net.openmolecules.benchmark.driver.fingerPrinting.MACCSFingerprinterDriver" />
<param name="japex.classPath"
value="${basedir}/lib/cdk-1.3.x-20091008.jar" />
<param name="description"
value="" />
<param name="chemObjectBuilder"
value="org.openscience.cdk.DefaultChemObjectBuilder" />
</driver>

<driver name="EStateFingerprinter">
<param name="japex.driverClass"
value="net.openmolecules.benchmark.driver.fingerPrinting.EStateFingerprinterDriver" />
<param name="japex.classPath"
value="${basedir}/lib/cdk-1.3.x-20091008.jar" />
<param name="description"
value="" />
<param name="chemObjectBuilder"
value="org.openscience.cdk.DefaultChemObjectBuilder" />
</driver>

<driver name="SubstructureFingerprinter">
<param name="japex.driverClass"
value="net.openmolecules.benchmark.driver.fingerPrinting.SubstructureFingerprinterDriver" />
<param name="japex.classPath"
value="${basedir}/lib/cdk-1.3.x-20091008.jar" />
<param name="description"
value="" />
<param name="chemObjectBuilder"
value="org.openscience.cdk.DefaultChemObjectBuilder" />
</driver>

<driver name="PubchemFingerprinter">
<param name="japex.driverClass"
value="net.openmolecules.benchmark.driver.fingerPrinting.PubchemFingerprinterDriver" />
<param name="japex.classPath"
value="${basedir}/lib/cdk-1.3.x-20091008.jar" />
<param name="description"
value="" />
<param name="chemObjectBuilder"
value="org.openscience.cdk.DefaultChemObjectBuilder" />
</driver>
</driverGroup>

<testCase name="test">
<param name="japex.inputFile" value="data/fingerprint.txt" />
<param name="fplength" value="1024" />
<param name="fpdepth" value="8" />
<param name="type" value="standard" />
</testCase>

</testSuite>
@@ -0,0 +1,70 @@
package net.openmolecules.benchmark.driver.fingerPrinting;

import java.io.FileInputStream;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

import org.openscience.cdk.aromaticity.CDKHueckelAromaticityDetector;
import org.openscience.cdk.exception.CDKException;
import org.openscience.cdk.fingerprint.IFingerprinter;
import org.openscience.cdk.interfaces.IAtomContainer;
import org.openscience.cdk.interfaces.IChemObjectBuilder;
import org.openscience.cdk.io.iterator.IteratingSMILESReader;
import org.openscience.cdk.tools.manipulator.AtomContainerManipulator;

import com.sun.japex.JapexDriverBase;
import com.sun.japex.TestCase;


/**
* @author jonalv
*
*/
public abstract class AbstractFingerprintDriver extends JapexDriverBase {

protected IFingerprinter fingerprinter;
protected List<IAtomContainer> mols;

@Override
public void prepare( TestCase testCase ) {

String fileName = testCase.getParam("japex.inputFile");
String chemObjectBuilder = getParam("chemObjectBuilder");

mols = new ArrayList<IAtomContainer>();
try {
Class<?> clazz = this.getClass().getClassLoader()
.loadClass(chemObjectBuilder);
Method getInstance = clazz.getMethod( "getInstance",
new Class[]{} );
IChemObjectBuilder builder
= (IChemObjectBuilder) getInstance.invoke( new Class[]{} );
IteratingSMILESReader reader
= new IteratingSMILESReader( new FileInputStream(fileName),
builder );
while (reader.hasNext()) {
IAtomContainer tmp = (IAtomContainer) reader.next();
AtomContainerManipulator
.percieveAtomTypesAndConfigureAtoms(tmp);
CDKHueckelAromaticityDetector.detectAromaticity(tmp);
mols.add(tmp);
}
}
catch (Exception e) {
throw new RuntimeException("Exception occured", e);
}
}

@Override
public void run( TestCase testCase ) {
for (IAtomContainer atomContainer : mols) {
try {
fingerprinter.getFingerprint(atomContainer);
}
catch (CDKException e) {
throw new RuntimeException(e);
}
}
}
}
@@ -0,0 +1,21 @@
package net.openmolecules.benchmark.driver.fingerPrinting;

import org.openscience.cdk.fingerprint.EStateFingerprinter;

import com.sun.japex.TestCase;


/**
* @author jonalv
*
*/
public class EStateFingerprinterDriver extends AbstractFingerprintDriver {

@Override
public void prepare(TestCase testCase) {

super.prepare( testCase );

fingerprinter = new EStateFingerprinter();
}
}
@@ -0,0 +1,25 @@
package net.openmolecules.benchmark.driver.fingerPrinting;

import org.openscience.cdk.fingerprint.ExtendedFingerprinter;
import org.openscience.cdk.fingerprint.Fingerprinter;

import com.sun.japex.TestCase;


/**
* @author jonalv
*
*/
public class ExtendedFingerprinterDriver extends AbstractFingerprintDriver {

@Override
public void prepare(TestCase testCase) {

super.prepare( testCase );

int length = Integer.parseInt( testCase.getParam("fplength") );
int depth = Integer.parseInt( testCase.getParam("fpdepth") );

fingerprinter = new ExtendedFingerprinter( length, depth );
}
}
@@ -0,0 +1,24 @@
package net.openmolecules.benchmark.driver.fingerPrinting;

import org.openscience.cdk.fingerprint.Fingerprinter;

import com.sun.japex.TestCase;


/**
* @author jonalv
*
*/
public class FingerprinterDriver extends AbstractFingerprintDriver {

@Override
public void prepare(TestCase testCase) {

super.prepare( testCase );

int length = Integer.parseInt( testCase.getParam("fplength") );
int depth = Integer.parseInt( testCase.getParam("fpdepth") );

fingerprinter = new Fingerprinter( length, depth );
}
}
@@ -0,0 +1,22 @@
package net.openmolecules.benchmark.driver.fingerPrinting;

import org.openscience.cdk.fingerprint.Fingerprinter;
import org.openscience.cdk.fingerprint.MACCSFingerprinter;

import com.sun.japex.TestCase;


/**
* @author jonalv
*
*/
public class MACCSFingerprinterDriver extends AbstractFingerprintDriver {

@Override
public void prepare(TestCase testCase) {

super.prepare( testCase );

fingerprinter = new MACCSFingerprinter();
}
}
@@ -0,0 +1,22 @@
package net.openmolecules.benchmark.driver.fingerPrinting;

import org.openscience.cdk.fingerprint.MACCSFingerprinter;

import com.sun.japex.TestCase;


/**
* @author jonalv
*
*/
public class PubchemFingerprinterDriver extends AbstractFingerprintDriver {

@Override
public void prepare(TestCase testCase) {

super.prepare( testCase );

throw new RuntimeException("Not yet implemented");
// fingerprinter = new PubchemFingerprinter();
}
}
@@ -0,0 +1,20 @@
package net.openmolecules.benchmark.driver.fingerPrinting;

import org.openscience.cdk.fingerprint.SubstructureFingerprinter;

import com.sun.japex.TestCase;


/**
* @author jonalv
*
*/
public class SubstructureFingerprinterDriver extends AbstractFingerprintDriver {

@Override
public void prepare(TestCase testCase) {

super.prepare( testCase );
fingerprinter = new SubstructureFingerprinter();
}
}

0 comments on commit a9d577b

Please sign in to comment.