From: <tho...@us...> - 2008-08-28 14:01:24
|
Revision: 12123 http://cdk.svn.sourceforge.net/cdk/?rev=12123&view=rev Author: thomaskuhn Date: 2008-08-28 14:01:20 +0000 (Thu, 28 Aug 2008) Log Message: ----------- Deletes the old qsar vectors within the database before inserting the new ones. add some comment Modified Paths: -------------- cdk-taverna/trunk/src/test/java/org/openscience/cdk/applications/taverna/database/pgchem/InsertQSARResultsIntoDBTest.java Modified: cdk-taverna/trunk/src/test/java/org/openscience/cdk/applications/taverna/database/pgchem/InsertQSARResultsIntoDBTest.java =================================================================== --- cdk-taverna/trunk/src/test/java/org/openscience/cdk/applications/taverna/database/pgchem/InsertQSARResultsIntoDBTest.java 2008-08-28 14:00:32 UTC (rev 12122) +++ cdk-taverna/trunk/src/test/java/org/openscience/cdk/applications/taverna/database/pgchem/InsertQSARResultsIntoDBTest.java 2008-08-28 14:01:20 UTC (rev 12123) @@ -25,6 +25,8 @@ */ package org.openscience.cdk.applications.taverna.database.pgchem; +import java.sql.PreparedStatement; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -33,6 +35,7 @@ import junit.framework.TestSuite; import org.embl.ebi.escience.baclava.DataThing; +import org.openscience.cdk.applications.taverna.CDKTavernaConfig; import org.openscience.cdk.applications.taverna.CDKTavernaTestCases; import org.openscience.cdk.applications.taverna.CMLChemFile; import org.openscience.cdk.applications.taverna.basicutilities.CMLChemFileWrapper; @@ -78,29 +81,46 @@ if (QSARRegistry.getMoleculeIDs().size() > 0) { QSARRegistry.removeAllMoleculeIDs(); } - + // Get some Molecules Map<String, DataThing> input = new HashMap<String, DataThing>(); Map<String, DataThing> resultMap = worker.execute(input); List<CMLChemFile> molecules = (List<CMLChemFile>)((DataThing)resultMap.get(worker.outputNames()[0])).getDataObject(); assertEquals(10, molecules.size()); + + //Get the moleculeID's for the molecules from the database + List<Integer> moleculeIDs = new ArrayList<Integer>(); + for (CMLChemFile chemFile : molecules) { + moleculeIDs.add((Integer)chemFile.getProperty(CDKTavernaConfig.DATABASEID)); + } + // Remove the "old" qsar values for these molecules from the database + connector.setSqlStatement("DELETE FROM qsarresults WHERE moleculeid = ?"); + PreparedStatement statement = connector.getConnectedPreparedStatement(); + for (Integer id : moleculeIDs) { + statement.setInt(1, id); + statement.execute(); + } + statement.close(); + connector.closePrepareStatement(); + connector.closeConnection(); + // Tag the molecules TagMolecules tagger = new TagMolecules(); input = new HashMap<String, DataThing>(); input.put(tagger.inputNames()[0], new DataThing(molecules)); tagger.execute(input); - + // Calculate the qsar values for the molecules QSARDescriptor qsar = new QSARDescriptor(); qsar.setSelectedDescriptors(QSARRegistry.getDescriptorNames().subList(0, 16)); resultMap = qsar.execute(input); List<CMLChemFile> resultList = CMLChemFileWrapper.getListOfCMLChemfileFromDataThing(resultMap .get(qsar.outputNames()[0])); - + // Get a qsar vector from the molecules and the calculated qsar values VectorGeneratorForDBInput vg = new VectorGeneratorForDBInput(); Map<String, DataThing> inputMap = new HashMap<String, DataThing>(); inputMap.put(vg.inputNames()[0],new DataThing(resultList)); Map<String, DataThing> result = vg.execute(inputMap); Map<Integer, Map<String, Object>> resultVector = (Map<Integer, Map<String, Object>>) ((DataThing) (result.get(vg.outputNames()[0]))).getDataObject(); - + // Insert the qsar vector into the database InsertQSARResultsIntoDB insertWorker = new InsertQSARResultsIntoDB(); inputMap.clear(); inputMap.put(insertWorker.inputNames()[0], new DataThing(resultVector)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |