From: <mar...@us...> - 2007-04-30 12:43:27
|
Revision: 8280 http://svn.sourceforge.net/cdk/?rev=8280&view=rev Author: mario_baseda Date: 2007-04-30 05:43:18 -0700 (Mon, 30 Apr 2007) Log Message: ----------- The classes "Selection" and "Standardise" now implements the LocalWorkerCDK interface Modified Paths: -------------- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateDensityBasedClustererModel.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateEMCluster.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateJ48WModel.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateKMeanCluster.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateLinearRegressionWModel.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateMultilayerPerceptronModel.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateNaiveBayesModel.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateSMOModel.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateSMOregModel.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateSimpleLinearRegressionModel.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/Selection.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/Standardise.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/WFilterSupervisedResample.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/WFilterUnSupervisedRandomize.java trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/WFilterUnSupervisedResample.java Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateDensityBasedClustererModel.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateDensityBasedClustererModel.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateDensityBasedClustererModel.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -26,6 +26,7 @@ package org.openscience.cdk.applications.taverna.qsar.model.weka; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.ArrayList; import java.util.List; @@ -113,18 +114,33 @@ if (yMin == 0)yMin = 0.1; if (yMax == 0)yMax = 0.9; Standardise standardise = new Standardise(yMin, yMax); - if (title == null || title.length == 0) title = selection.def(inputs, inputNames[0]); + if (title == null || title.length == 0) title = selection.def(inputs); + else + selection.setDescriptor(title); if (cases == null) cases = standardise.def(title); standardise.setCases(cases); - Map newInputs = selection.selection(title, inputNames[0], inputs); + standardise.setDescriptor(title); + Map newInputs = selection.execute(inputs); if (y == null){ y = new String[(Integer)newInputs.get("moleculeCount")]; for (int i = 0; i < (Integer)newInputs.get("moleculeCount"); i++){ y[i] = "unknown"; } } - Double[][] matrix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); if (classAttrib == null) classAttrib = new String[]{"unknown"}; + List matrixtmp = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] matrix = new Double[matrixtmp.size()][((List)matrixtmp.get(0)).size()]; + int z = 0 , s = 0; + for (Iterator iter = matrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + matrix[z][s] = val; + s++; + } + z++; + s = 0; + } String[] attrib = new String[title.length]; for (int i = 0; i < title.length; i++) { attrib[i] = title[i].substring(title[i].lastIndexOf(".") + 1); @@ -142,10 +158,26 @@ standardise = new Standardise(yMin, yMax); standardise.setCases(cases); newInputs.clear(); - newInputs = selection.selection(title, inputNames[1], inputs); - Double[][] newMatix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); - dbcm.setParameters(newMatix); + selection.setDescriptor(title); + standardise.setDescriptor(title); + selection.setFiles(1); + newInputs = selection.execute(inputs); + List newMatrixl = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] newMatrix = new Double[newMatrixl.size()][((List)newMatrixl.get(0)).size()]; + z = 0; + s = 0; + for (Iterator iter = newMatrixl.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + newMatrix[z][s] = val; + s++; + } + z++; + s = 0; } + dbcm.setParameters(newMatrix); + } } catch (Exception exception){ exception.getStackTrace(); } Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateEMCluster.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateEMCluster.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateEMCluster.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -27,6 +27,7 @@ package org.openscience.cdk.applications.taverna.qsar.model.weka; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.ArrayList; import java.util.List; @@ -187,18 +188,33 @@ if (yMin == 0)yMin = 0.1; if (yMax == 0)yMax = 0.9; Standardise standardise = new Standardise(yMin, yMax); - if (title == null || title.length == 0) title = selection.def(inputs, inputNames[0]); + if (title == null || title.length == 0) title = selection.def(inputs); + else + selection.setDescriptor(title); if (cases == null) cases = standardise.def(title); standardise.setCases(cases); - Map newInputs = selection.selection(title, inputNames[0], inputs); + standardise.setDescriptor(title); + Map newInputs = selection.execute(inputs); if (y == null){ y = new String[(Integer)newInputs.get("moleculeCount")]; for (int i = 0; i < (Integer)newInputs.get("moleculeCount"); i++){ y[i] = "unknown"; } } - if (classAttrib == null) classAttrib = new String[]{"unknown"}; - Double[][] matrix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); + if (classAttrib == null) classAttrib = new String[]{"unknown"}; + List matrixtmp = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] matrix = new Double[matrixtmp.size()][((List)matrixtmp.get(0)).size()]; + int z = 0 , s = 0; + for (Iterator iter = matrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + matrix[z][s] = val; + s++; + } + z++; + s = 0; + } String[] attrib = new String[title.length]; for (int i = 0; i < title.length; i++) { attrib[i] = title[i].substring(title[i].lastIndexOf(".") + 1); @@ -219,10 +235,26 @@ standardise = new Standardise(yMin, yMax); standardise.setCases(cases); newInputs.clear(); - newInputs = selection.selection(title, inputNames[1], inputs); - Double[][] newMatix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); + selection.setDescriptor(title); + standardise.setDescriptor(title); + selection.setFiles(1); + newInputs = selection.execute(inputs); + List newMatrixl = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] newMatrix = new Double[newMatrixl.size()][((List)newMatrixl.get(0)).size()]; + z = 0; + s = 0; + for (Iterator iter = newMatrixl.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + newMatrix[z][s] = val; + s++; + } + z++; + s = 0; + } try{ - em.setParameters(newMatix); + em.setParameters(newMatrix); em.logDensityPerClusterForInstance(); } catch (Exception exception){ exception.getStackTrace(); Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateJ48WModel.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateJ48WModel.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateJ48WModel.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -27,6 +27,7 @@ package org.openscience.cdk.applications.taverna.qsar.model.weka; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.ArrayList; import java.util.List; @@ -125,10 +126,13 @@ public Map execute(Map inputs) throws TaskExecutionException { Selection selection = new Selection(); Standardise standardise = new Standardise(); - if (title == null || title.length == 0) title = selection.def(inputs, inputNames[0]); + if (title == null || title.length == 0) title = selection.def(inputs); + else + selection.setDescriptor(title); if (cases == null) cases = standardise.def(title); standardise.setCases(cases); - Map newInputs = selection.selection(title, inputNames[0], inputs); + standardise.setDescriptor(title); + Map newInputs = selection.execute(inputs); if (y == null){ y = new String[(Integer)newInputs.get("moleculeCount")]; for (int i = 0; i < (Integer)newInputs.get("moleculeCount"); i++){ @@ -136,7 +140,19 @@ } } if (classAttrib == null) classAttrib = new String[]{"unknown"}; - Double[][] matrix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); + List matrixtmp = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] matrix = new Double[matrixtmp.size()][((List)matrixtmp.get(0)).size()]; + int z = 0 , s = 0; + for (Iterator iter = matrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + matrix[z][s] = val; + s++; + } + z++; + s = 0; + } String[] attrib = new String[title.length]; for (int i = 0; i < title.length; i++) { attrib[i] = title[i].substring(title[i].lastIndexOf(".") + 1); @@ -155,9 +171,25 @@ standardise = new Standardise(); standardise.setCases(cases); newInputs.clear(); - newInputs = selection.selection(title, inputNames[1], inputs); - Double[][] newMatix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); - j48.setParameters(newMatix); + selection.setDescriptor(title); + standardise.setDescriptor(title); + selection.setFiles(1); + newInputs = selection.execute(inputs); + List newMatrixl = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] newMatrix = new Double[newMatrixl.size()][((List)newMatrixl.get(0)).size()]; + z = 0; + s = 0; + for (Iterator iter = newMatrixl.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + newMatrix[z][s] = val; + s++; + } + z++; + s = 0; + } + j48.setParameters(newMatrix); j48.predict(); } } catch (Exception exception){ Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateKMeanCluster.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateKMeanCluster.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateKMeanCluster.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -27,6 +27,7 @@ package org.openscience.cdk.applications.taverna.qsar.model.weka; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.ArrayList; import java.util.List; @@ -118,10 +119,13 @@ if (yMin == 0)yMin = 0.1; if (yMax == 0)yMax = 0.9; Standardise standardise = new Standardise(yMin, yMax); - if (title == null || title.length == 0) title = selection.def(inputs, inputNames[0]); + if (title == null || title.length == 0) title = selection.def(inputs); + else + selection.setDescriptor(title); if (cases == null) cases = standardise.def(title); standardise.setCases(cases); - Map newInputs = selection.selection(title, inputNames[0], inputs); + standardise.setDescriptor(title); + Map newInputs = selection.execute(inputs); if (y == null){ y = new String[(Integer)newInputs.get("moleculeCount")]; for (int i = 0; i < (Integer)newInputs.get("moleculeCount"); i++){ @@ -129,7 +133,19 @@ } } if (classAttrib == null) classAttrib = new String[]{"unknown"}; - Double[][] matrix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); + List matrixtmp = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] matrix = new Double[matrixtmp.size()][((List)matrixtmp.get(0)).size()]; + int z = 0 , s = 0; + for (Iterator iter = matrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + matrix[z][s] = val; + s++; + } + z++; + s = 0; + } String[] attrib = new String[title.length]; for (int i = 0; i < title.length; i++) { attrib[i] = title[i].substring(title[i].lastIndexOf(".") + 1); @@ -138,7 +154,6 @@ for (int q = 0; q < attrib.length; q++){ typAttrib[q] = Weka.NUMERIC; } - try{ kMean.setData(attrib, typAttrib, classAttrib, y, matrix); kMean.build(); @@ -150,10 +165,26 @@ standardise = new Standardise(yMin, yMax); standardise.setCases(cases); newInputs.clear(); - newInputs = selection.selection(title, inputNames[1], inputs); - Double[][] newMatix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); + selection.setDescriptor(title); + standardise.setDescriptor(title); + selection.setFiles(1); + newInputs = selection.execute(inputs); + List newMatrixl = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] newMatrix = new Double[newMatrixl.size()][((List)newMatrixl.get(0)).size()]; + z = 0; + s = 0; + for (Iterator iter = newMatrixl.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + newMatrix[z][s] = val; + s++; + } + z++; + s = 0; + } try{ - kMean.setParameters(newMatix); + kMean.setParameters(newMatrix); kMean.clusterInstance(); } catch (Exception exception){ exception.getStackTrace(); Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateLinearRegressionWModel.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateLinearRegressionWModel.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateLinearRegressionWModel.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -120,7 +120,7 @@ } } if (title == null || title.length == 0) { - String[]titleTemp = selection.def(inputs, inputNames[0]); + String[]titleTemp = selection.def(inputs); List titleList = new ArrayList(); for (int i = 0; i < titleTemp.length; i++){ if (titleTemp[i] != dependentAttrib[0]) { @@ -137,18 +137,46 @@ } } if (cases == null) cases = standardise.def(title); + selection.setDescriptor(title); standardise.setCases(cases); - Map newInputs = selection.selection(title, inputNames[0], inputs); + standardise.setDescriptor(title); + Map newInputs = selection.execute(inputs); if (dependentAttrib == null){ dependentAttrib = new String[1]; dependentAttrib[0] = title[0]; } - Map newYInputs = selection.selection(this.dependentAttrib, inputNames[0], inputs); - Double[][] matrix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); - Double[][] ymatrix = standardise.standardise(this.dependentAttrib, newYInputs, (Integer)((newYInputs.get("moleculeCount")))); + selection.setDescriptor(dependentAttrib); + Map newYInputs = selection.execute(inputs); + List matrixtmp = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] matrix = new Double[matrixtmp.size()][((List)matrixtmp.get(0)).size()]; + int z = 0 , s = 0; + for (Iterator iter = matrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + matrix[z][s] = val; + s++; + } + z++; + s = 0; + } + standardise.setDescriptor(dependentAttrib); + List ymatrixtmp = (List)((DataThing)(standardise.execute(newYInputs)).get("matrix")).getDataObject(); + Double[][] ymatrix = new Double[ymatrixtmp.size()][((List)ymatrixtmp.get(0)).size()]; + int z2 = 0 , s2 = 0; + for (Iterator iter = ymatrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + ymatrix[z2][s2] = val; + s2++; + } + z2++; + s2 = 0; + } Double[] y = new Double[ymatrix.length]; - for (int z = 0; z < ymatrix.length; z++){ - y[z] = ymatrix[z][0]; + for (int z3 = 0; z3 < ymatrix.length; z3++){ + y[z3] = ymatrix[z3][0]; } String[] attrib = new String[title.length+1]; for (int i = 0; i < title.length; i++) { @@ -168,9 +196,25 @@ standardise = new Standardise(); standardise.setCases(cases); newInputs.clear(); - newInputs = selection.selection(title, inputNames[1], inputs); - Double[][] newMatix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); - lrwm.setParameters(newMatix); + selection.setDescriptor(title); + standardise.setDescriptor(title); + selection.setFiles(1); + newInputs = selection.execute(inputs); + List newMatrixl = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] newMatrix = new Double[newMatrixl.size()][((List)newMatrixl.get(0)).size()]; + z = 0; + s = 0; + for (Iterator iter = newMatrixl.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + newMatrix[z][s] = val; + s++; + } + z++; + s = 0; + } + lrwm.setParameters(newMatrix); lrwm.predict(); } catch (Exception exception){ exception.getStackTrace(); Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateMultilayerPerceptronModel.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateMultilayerPerceptronModel.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateMultilayerPerceptronModel.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -27,6 +27,7 @@ import java.util.Arrays; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.ArrayList; import java.util.List; @@ -132,18 +133,33 @@ if (yMin == 0)yMin = 0.1; if (yMax == 0)yMax = 0.9; Standardise standardise = new Standardise(yMin, yMax); - if (title == null || title.length == 0) title = selection.def(inputs, inputNames[0]); + if (title == null || title.length == 0) title = selection.def(inputs); + else + selection.setDescriptor(title); if (cases == null) cases = standardise.def(title); standardise.setCases(cases); - Map newInputs = selection.selection(title, inputNames[0], inputs); + standardise.setDescriptor(title); + Map newInputs = selection.execute(inputs); if (y == null){ y = new String[(Integer)newInputs.get("moleculeCount")]; for (int i = 0; i < (Integer)newInputs.get("moleculeCount"); i++){ y[i] = "unknown"; } } + List matrixtmp = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] matrix = new Double[matrixtmp.size()][((List)matrixtmp.get(0)).size()]; + int z = 0 , s = 0; + for (Iterator iter = matrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + matrix[z][s] = val; + s++; + } + z++; + s = 0; + } if (classAttrib == null) classAttrib = new String[]{"unknown"}; - Double[][] matrix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); String[] attrib = new String[title.length]; for (int i = 0; i < title.length; i++) { attrib[i] = title[i].substring(title[i].lastIndexOf(".") + 1); @@ -164,10 +180,26 @@ standardise = new Standardise(); standardise.setCases(cases); newInputs.clear(); - newInputs = selection.selection(title, inputNames[1], inputs); - Double[][] newMatix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); + selection.setDescriptor(title); + standardise.setDescriptor(title); + selection.setFiles(1); + newInputs = selection.execute(inputs); + List newMatrixl = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] newMatrix = new Double[newMatrixl.size()][((List)newMatrixl.get(0)).size()]; + z = 0; + s = 0; + for (Iterator iter = newMatrixl.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + newMatrix[z][s] = val; + s++; + } + z++; + s = 0; + } try{ - mpo.setParameters(newMatix); + mpo.setParameters(newMatrix); mpo.predict(); outputs.put(outputNames()[0], new DataThing(getPredictPredicted())); } catch (Exception exception){ Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateNaiveBayesModel.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateNaiveBayesModel.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateNaiveBayesModel.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -27,6 +27,7 @@ import java.util.Arrays; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.ArrayList; import java.util.List; @@ -116,10 +117,13 @@ if (yMin == 0)yMin = 0.1; if (yMax == 0)yMax = 0.9; Standardise standardise = new Standardise(yMin, yMax); - if (title == null || title.length == 0) title = selection.def(inputs, inputNames[0]); + if (title == null || title.length == 0) title = selection.def(inputs); + else + selection.setDescriptor(title); if (cases == null) cases = standardise.def(title); standardise.setCases(cases); - Map newInputs = selection.selection(title, inputNames[0], inputs); + standardise.setDescriptor(title); + Map newInputs = selection.execute(inputs); if (y == null){ y = new String[(Integer)newInputs.get("moleculeCount")]; for (int i = 0; i < (Integer)newInputs.get("moleculeCount"); i++){ @@ -127,7 +131,19 @@ } } if (classAttrib == null) classAttrib = new String[]{"unknown"}; - Double[][] matrix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); + List matrixtmp = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] matrix = new Double[matrixtmp.size()][((List)matrixtmp.get(0)).size()]; + int z = 0 , s = 0; + for (Iterator iter = matrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + matrix[z][s] = val; + s++; + } + z++; + s = 0; + } String[] attrib = new String[title.length]; for (int i = 0; i < title.length; i++) { attrib[i] = title[i].substring(title[i].lastIndexOf(".") + 1); @@ -148,10 +164,26 @@ standardise = new Standardise(); standardise.setCases(cases); newInputs.clear(); - newInputs = selection.selection(title, inputNames[1], inputs); - Double[][] newMatix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); + selection.setDescriptor(title); + standardise.setDescriptor(title); + selection.setFiles(1); + newInputs = selection.execute(inputs); + List newMatrixl = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] newMatrix = new Double[newMatrixl.size()][((List)newMatrixl.get(0)).size()]; + z = 0; + s = 0; + for (Iterator iter = newMatrixl.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + newMatrix[z][s] = val; + s++; + } + z++; + s = 0; + } try{ - nbm.setParameters(newMatix); + nbm.setParameters(newMatrix); nbm.probabilities(); outputs.put(outputNames()[0], new DataThing(getProbabilities())); } catch (Exception exception){ Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateSMOModel.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateSMOModel.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateSMOModel.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -28,6 +28,7 @@ import java.util.Arrays; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.ArrayList; import java.util.List; @@ -132,10 +133,13 @@ if (yMin == 0)yMin = 0.1; if (yMax == 0)yMax = 0.9; Standardise standardise = new Standardise(yMin, yMax); - if (title == null || title.length == 0) title = selection.def(inputs, inputNames[0]); + if (title == null || title.length == 0) title = selection.def(inputs); + else + selection.setDescriptor(title); if (cases == null) cases = standardise.def(title); standardise.setCases(cases); - Map newInputs = selection.selection(title, inputNames[0], inputs); + standardise.setDescriptor(title); + Map newInputs = selection.execute(inputs); if (y == null){ y = new String[(Integer)newInputs.get("moleculeCount")]; for (int i = 0; i < (Integer)newInputs.get("moleculeCount"); i++){ @@ -144,7 +148,19 @@ } } if (classAttrib == null) classAttrib = new String[]{"unknown_A", "unknown_B"}; - Double[][] matrix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); + List matrixtmp = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] matrix = new Double[matrixtmp.size()][((List)matrixtmp.get(0)).size()]; + int z = 0 , s = 0; + for (Iterator iter = matrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + matrix[z][s] = val; + s++; + } + z++; + s = 0; + } String[] attrib = new String[title.length]; for (int i = 0; i < title.length; i++) { attrib[i] = title[i].substring(title[i].lastIndexOf(".") + 1); @@ -162,13 +178,29 @@ } if (inputs.containsKey(inputNames[1])){ selection = new Selection(); - standardise = new Standardise(); + standardise = new Standardise(yMin, yMax); standardise.setCases(cases); newInputs.clear(); - newInputs = selection.selection(title, inputNames[1], inputs); - Double[][] newMatix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); + selection.setDescriptor(title); + standardise.setDescriptor(title); + selection.setFiles(1); + newInputs = selection.execute(inputs); + List newMatrixl = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] newMatrix = new Double[newMatrixl.size()][((List)newMatrixl.get(0)).size()]; + z = 0; + s = 0; + for (Iterator iter = newMatrixl.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + newMatrix[z][s] = val; + s++; + } + z++; + s = 0; + } try{ - smo.setParameters(newMatix); + smo.setParameters(newMatrix); smo.probabilities(); outputs.put(outputNames()[0], new DataThing(getProbabilities())); } catch (Exception exception){ Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateSMOregModel.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateSMOregModel.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateSMOregModel.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -123,7 +123,7 @@ } } if (title == null || title.length == 0) { - String[]titleTemp = selection.def(inputs, inputNames[0]); + String[]titleTemp = selection.def(inputs); List titleList = new ArrayList(); for (int i = 0; i < titleTemp.length; i++){ if (titleTemp[i] != dependentAttrib[0]) { @@ -141,14 +141,41 @@ } if (cases == null) cases = standardise.def(title); standardise.setCases(cases); - Map newInputs = selection.selection(title, inputNames[0], inputs); - - Map newYInputs = selection.selection(this.dependentAttrib, inputNames[0], inputs); - Double[][] matrix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); - Double[][] ymatrix = standardise.standardise(this.dependentAttrib, newYInputs, (Integer)((newYInputs.get("moleculeCount")))); + selection.setDescriptor(title); + standardise.setDescriptor(title); + Map newInputs = selection.execute(inputs); + selection.setDescriptor(dependentAttrib); + Map newYInputs = selection.execute(inputs); + List matrixtmp = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] matrix = new Double[matrixtmp.size()][((List)matrixtmp.get(0)).size()]; + int z = 0 , s = 0; + for (Iterator iter = matrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + matrix[z][s] = val; + s++; + } + z++; + s = 0; + } + standardise.setDescriptor(dependentAttrib); + List ymatrixtmp = (List)((DataThing)(standardise.execute(newYInputs)).get("matrix")).getDataObject(); + Double[][] ymatrix = new Double[ymatrixtmp.size()][((List)ymatrixtmp.get(0)).size()]; + int z2 = 0 , s2 = 0; + for (Iterator iter = ymatrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + ymatrix[z2][s2] = val; + s2++; + } + z2++; + s2 = 0; + } Double[] y = new Double[ymatrix.length]; - for (int z = 0; z < ymatrix.length; z++){ - y[z] = ymatrix[z][0]; + for (int z3 = 0; z3 < ymatrix.length; z3++){ + y[z3] = ymatrix[z3][0]; } String[] attrib = new String[title.length+1]; for (int i = 0; i < title.length; i++) { @@ -167,9 +194,25 @@ standardise = new Standardise(yMin, yMax); standardise.setCases(cases); newInputs.clear(); - newInputs = selection.selection(title, inputNames[1], inputs); - Double[][] newMatix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); - smoregm.setParameters(newMatix); + selection.setDescriptor(title); + standardise.setDescriptor(title); + selection.setFiles(1); + newInputs = selection.execute(inputs); + List newMatrixl = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] newMatrix = new Double[newMatrixl.size()][((List)newMatrixl.get(0)).size()]; + z = 0; + s = 0; + for (Iterator iter = newMatrixl.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + newMatrix[z][s] = val; + s++; + } + z++; + s = 0; + } + smoregm.setParameters(newMatrix); smoregm.classifyInstance(); outputs.put(outputNames()[0], new DataThing(getClassification())); } }catch (Exception exception){ Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateSimpleLinearRegressionModel.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateSimpleLinearRegressionModel.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/GenerateSimpleLinearRegressionModel.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -112,7 +112,7 @@ } } if (title == null || title.length == 0) { - String[]titleTemp = selection.def(inputs, inputNames[0]); + String[]titleTemp = selection.def(inputs); List titleList = new ArrayList(); for (int i = 0; i < titleTemp.length; i++){ if (titleTemp[i] != dependentAttrib[0]) { @@ -130,13 +130,41 @@ } if (cases == null) cases = standardise.def(title); standardise.setCases(cases); - Map newInputs = selection.selection(title, inputNames[0], inputs); - Map newYInputs = selection.selection(this.dependentAttrib, inputNames[0], inputs); - Double[][] matrix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); - Double[][] ymatrix = standardise.standardise(this.dependentAttrib, newYInputs, (Integer)((newYInputs.get("moleculeCount")))); + selection.setDescriptor(title); + standardise.setDescriptor(title); + Map newInputs = selection.execute(inputs); + selection.setDescriptor(dependentAttrib); + Map newYInputs = selection.execute(inputs); + List matrixtmp = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] matrix = new Double[matrixtmp.size()][((List)matrixtmp.get(0)).size()]; + int z = 0 , s = 0; + for (Iterator iter = matrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + matrix[z][s] = val; + s++; + } + z++; + s = 0; + } + standardise.setDescriptor(dependentAttrib); + List ymatrixtmp = (List)((DataThing)(standardise.execute(newYInputs)).get("matrix")).getDataObject(); + Double[][] ymatrix = new Double[ymatrixtmp.size()][((List)ymatrixtmp.get(0)).size()]; + int z2 = 0 , s2 = 0; + for (Iterator iter = ymatrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + ymatrix[z2][s2] = val; + s2++; + } + z2++; + s2 = 0; + } Double[] y = new Double[ymatrix.length]; - for (int z = 0; z < ymatrix.length; z++){ - y[z] = ymatrix[z][0]; + for (int z3 = 0; z3 < ymatrix.length; z3++){ + y[z3] = ymatrix[z3][0]; } String[] attrib = new String[title.length+1]; for (int i = 0; i < title.length; i++) { @@ -154,9 +182,25 @@ standardise = new Standardise(); standardise.setCases(cases); newInputs.clear(); - newInputs = selection.selection(title, inputNames[1], inputs); - Double[][] newMatix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); - slrwm.setParameters(newMatix); + selection.setDescriptor(title); + standardise.setDescriptor(title); + selection.setFiles(1); + newInputs = selection.execute(inputs); + List newMatrixl = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] newMatrix = new Double[newMatrixl.size()][((List)newMatrixl.get(0)).size()]; + z = 0; + s = 0; + for (Iterator iter = newMatrixl.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + newMatrix[z][s] = val; + s++; + } + z++; + s = 0; + } + slrwm.setParameters(newMatrix); slrwm.predict(); } catch (Exception exception){ exception.getStackTrace(); Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/Selection.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/Selection.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/Selection.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -34,6 +34,7 @@ import org.embl.ebi.escience.baclava.DataThing; import org.openscience.cdk.applications.taverna.CMLChemFile; +import org.openscience.cdk.applications.taverna.LocalWorkerCDK; import org.openscience.cdk.interfaces.IAtomContainer; import org.openscience.cdk.qsar.DescriptorValue; import org.openscience.cdk.qsar.result.DoubleArrayResult; @@ -51,29 +52,50 @@ * @cdk.keyword clusterers * @cdk.keyword SimpleKMeans */ -public class Selection { +public class Selection implements LocalWorkerCDK{ + // The attributs of which the molecule descriptors should be select + private String[] descriptor; + // 0 means NOT new files + // 1 means new files + private int newFiles = 0; + private String[] inputNames = new String[] { "inputChemFiles", "newInputChemFiles" }; + + private String[] outputNames = new String[] { "variousSpecification", "moleculeCount"}; + + public String[] inputNames() { + return inputNames; + } + public String[] inputTypes() { + return new String[] {LocalWorkerCDK.CMLChemFileList, LocalWorkerCDK.CMLChemFileList}; + } + + public String[] outputNames() { + return outputNames; + } + + public String[] outputTypes() { + return new String[] {LocalWorkerCDK.DOUBLE, LocalWorkerCDK.INT, LocalWorkerCDK.INT}; + } /** * Constructor of the selection object */ public Selection() {} - /** This method select descriptors of a map of molecules about chose descriptors before - * @param descriptor The attributs of which the molecule descriptors should be select - * @param inputNames The map key which contains the molecules + /** This method select descriptors of a map of molecules about chose descriptors before * @param inputs Map which contains the CML Chemfiles with the molecules * @return subMap Map which contains the selected molecule descriptors with their values and the number of * molecules in the map. */ - public Map selection(String[] descriptor, String inputNames, Map inputs) { + public Map execute(Map inputs) { Map subMap = new HashMap(); int moleculeCount = 0; for (String string : descriptor) { subMap.put(string, new ArrayList()); } List inputList = null; - if (inputs.get(inputNames) != null) { - inputList = (List) ((DataThing) (inputs.get(inputNames))).getDataObject(); + if (inputs.get(this.inputNames[newFiles]) != null) { + inputList = (List) ((DataThing) (inputs.get(this.inputNames[newFiles]))).getDataObject(); } else { return null; } @@ -114,7 +136,7 @@ } } } - subMap.put("moleculeCount", moleculeCount); + subMap.put(outputNames[1], moleculeCount); return subMap; } @@ -125,11 +147,11 @@ * @param inputNames The map key which contains the molecules * @return descriptor A String[] which contains all Descriptor titles of the molecules in the CMLChemfiles */ - public String[] def(Map map, String inputNames){ + public String[] def(Map map){ List descriptorList = new ArrayList(); int count = 0; - if (map.get(inputNames) != null) { - CMLChemFile file = (CMLChemFile)(((List) ((DataThing) (map.get(inputNames))).getDataObject()).get(0)); + if (map.get(this.inputNames[0]) != null) { + CMLChemFile file = (CMLChemFile)(((List) ((DataThing) (map.get(inputNames[0]))).getDataObject()).get(0)); IAtomContainer molecules = (IAtomContainer)((ChemFileManipulator.getAllAtomContainers(file)).get(0)); for (Enumeration e = (molecules.getProperties()).elements(); e.hasMoreElements();) { Object p = (Object) e.nextElement(); @@ -148,7 +170,6 @@ } } } - }else { return null; } @@ -156,9 +177,23 @@ int i = 0; for (Iterator iter = descriptorList.iterator(); iter.hasNext();) { String element = (String) iter.next(); - descriptor[i] = element; + this.descriptor[i] = element; i++; } - return descriptor; + return this.descriptor; } + + /**Set the attributs. The descriptor values will selected about this attributs + * @param title A string[] which contains the attributs + */ + public void setDescriptor(String[] title){ + this.descriptor = title; + } + + /**Choose the input name + * @param tmp An int which chose the input name. 0 = inputChemFiles; 1 = newInputChemFiles + */ + public void setFiles(int tmp){ + newFiles = tmp; + } } Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/Standardise.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/Standardise.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/Standardise.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -32,6 +32,9 @@ import java.util.HashMap; import java.util.ArrayList; +import org.embl.ebi.escience.baclava.DataThing; +import org.openscience.cdk.applications.taverna.LocalWorkerCDK; + /** A class which standardise descriptor values about a minimum and maximum value. * @author Mario Baseda * @cdk.require cdk-svn.jar @@ -42,11 +45,31 @@ * @cdk.keyword clusterers * @cdk.keyword SimpleKMeans */ -public class Standardise { +public class Standardise implements LocalWorkerCDK{ private double yMin, yMax; private Map cases = null; private boolean standard; + private String[] descriptor; + +private String[] inputNames = new String[] {"variousSpecification", "moleculeCount"}; + + private String[] outputNames = new String[] {"matrix"}; + + public String[] inputNames() { + return inputNames; + } + public String[] inputTypes() { + return new String[] {LocalWorkerCDK.DOUBLE, LocalWorkerCDK.INT, LocalWorkerCDK.INT}; + } + public String[] outputNames() { + return outputNames; + } + + public String[] outputTypes() { + return new String[] {LocalWorkerCDK.UNTYPED_ARRAY}; + } + /** Constructur of the Standardise object * @param yMin The minimum value for the standardization * @param yMax The maximum value for the standardization @@ -65,15 +88,19 @@ this.standard = false; } /** This method standardise descriptor values about a minimum and maximum value, which was set before. - * @param map A Map which contains the different descriptors of the molecules - * @param moleculeCount The number of molecules and so the number of values of each descriptor + * @param map A Map which contains the different descriptors of the molecules * @return A matrix as 2D Double array, which contains the standardise descriptor values. Each line for each molecule * and each column for each descriptor */ - public Double[][] standardise(String[] descriptor, Map map, int moleculeCount) { + public Map execute(Map map) { + + int moleculeCount = (Integer)map.get("moleculeCount"); map.remove("moleculeCount"); - Double[][] matrix = new Double[moleculeCount][map.size()]; - int z = 0, s = 0; + List matrixl = new ArrayList(); + for (int i = 0; i < moleculeCount; i++) { + matrixl.add(new ArrayList()); + } + int z = 0; for (Object object : descriptor) { List tmpList = new ArrayList(); for (Iterator iter = ((List)map.get(object)).iterator(); iter.hasNext();) { @@ -86,7 +113,7 @@ for (Iterator iter = ((List)(map.get((String)object))).iterator(); iter.hasNext();){ List temp = ((List)iter.next()); if ((temp.get(0) instanceof String) && ((String)temp.get(0) == "not available")) { - matrix[z][s] = new Double (0.0d / 0.0); + ((List)matrixl.get(z)).add(new Double (0.0d / 0.0)); z++; continue; } @@ -96,16 +123,17 @@ Arrays.sort(tmp); double std = (re.doubleValue() * (yMax - yMin)+ ((Double)tmp[tmp.length-1]).doubleValue() * yMin - yMax * ((Double)tmp[0]).doubleValue()) / (((Double)tmp[tmp.length-1]).doubleValue() - ((Double)tmp[0]).doubleValue()); - matrix[z][s] = new Double (std); + ((List)matrixl.get(z)).add(new Double (std)); z++; - } else { matrix[z][s] = re; + } else { ((List)matrixl.get(z)).add(re); z++; } } - s++; z = 0; } - return matrix; + Map subMap = new HashMap(); + subMap.put(outputNames()[0],new DataThing(matrixl)); + return subMap; } /**This method appeals a pre processing method to "calculate" a molecule discriptor value about the atom discriptor values @@ -252,4 +280,11 @@ } return map; } + + /**Set the attributs. The descriptor values will selected about this attributs + * @param title A string[] which contains the attributs + */ + public void setDescriptor(String[] title){ + descriptor = title; + } } \ No newline at end of file Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/WFilterSupervisedResample.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/WFilterSupervisedResample.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/WFilterSupervisedResample.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -26,6 +26,7 @@ package org.openscience.cdk.applications.taverna.qsar.model.weka; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.ArrayList; import java.util.List; @@ -116,10 +117,13 @@ public Map execute(Map inputs) throws TaskExecutionException { Selection selection = new Selection(); Standardise standardise = new Standardise(); - if (title == null || title.length == 0) title = selection.def(inputs, inputNames[0]); + if (title == null || title.length == 0) title = selection.def(inputs); + else + selection.setDescriptor(title); if (cases == null) cases = standardise.def(title); standardise.setCases(cases); - Map newInputs = selection.selection(title, inputNames[0], inputs); + standardise.setDescriptor(title); + Map newInputs = selection.execute(inputs); if (classAttrib == null) classAttrib = new String[]{"unknown"}; if (y == null){ y = new String[(Integer)newInputs.get("moleculeCount")]; @@ -127,7 +131,19 @@ y[i] = "unknown"; } } - Double[][] matrix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); + List matrixtmp = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] matrix = new Double[matrixtmp.size()][((List)matrixtmp.get(0)).size()]; + int z = 0 , s = 0; + for (Iterator iter = matrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + matrix[z][s] = val; + s++; + } + z++; + s = 0; + } String[] attrib = new String[title.length]; for (int i = 0; i < title.length; i++) { attrib[i] = title[i].substring(title[i].lastIndexOf(".") + 1); Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/WFilterUnSupervisedRandomize.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/WFilterUnSupervisedRandomize.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/WFilterUnSupervisedRandomize.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -26,6 +26,7 @@ package org.openscience.cdk.applications.taverna.qsar.model.weka; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.ArrayList; import java.util.List; @@ -107,10 +108,13 @@ public Map execute(Map inputs) throws TaskExecutionException { Selection selection = new Selection(); Standardise standardise = new Standardise(); - if (title == null || title.length == 0) title = selection.def(inputs, inputNames[0]); + if (title == null || title.length == 0) title = selection.def(inputs); + else + selection.setDescriptor(title); if (cases == null) cases = standardise.def(title); standardise.setCases(cases); - Map newInputs = selection.selection(title, inputNames[0], inputs); + standardise.setDescriptor(title); + Map newInputs = selection.execute(inputs); if (y == null){ y = new String[(Integer)newInputs.get("moleculeCount")]; for (int i = 0; i < (Integer)newInputs.get("moleculeCount"); i++){ @@ -118,7 +122,19 @@ } } if (classAttrib == null) classAttrib = new String[]{"unknown"}; - Double[][] matrix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); + List matrixtmp = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] matrix = new Double[matrixtmp.size()][((List)matrixtmp.get(0)).size()]; + int z = 0 , s = 0; + for (Iterator iter = matrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + matrix[z][s] = val; + s++; + } + z++; + s = 0; + } String[] attrib = new String[title.length]; for (int i = 0; i < title.length; i++) { attrib[i] = title[i].substring(title[i].lastIndexOf(".") + 1); Modified: trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/WFilterUnSupervisedResample.java =================================================================== --- trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/WFilterUnSupervisedResample.java 2007-04-27 15:52:20 UTC (rev 8279) +++ trunk/cdk-taverna/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/weka/WFilterUnSupervisedResample.java 2007-04-30 12:43:18 UTC (rev 8280) @@ -26,6 +26,7 @@ package org.openscience.cdk.applications.taverna.qsar.model.weka; import java.util.HashMap; +import java.util.Iterator; import java.util.Map; import java.util.ArrayList; import java.util.List; @@ -110,10 +111,13 @@ public Map execute(Map inputs) throws TaskExecutionException { Selection selection = new Selection(); Standardise standardise = new Standardise(); - if (title == null || title.length == 0) title = selection.def(inputs, inputNames[0]); + if (title == null || title.length == 0) title = selection.def(inputs); + else + selection.setDescriptor(title); if (cases == null) cases = standardise.def(title); standardise.setCases(cases); - Map newInputs = selection.selection(title, inputNames[0], inputs); + standardise.setDescriptor(title); + Map newInputs = selection.execute(inputs); if (y == null){ y = new String[(Integer)newInputs.get("moleculeCount")]; for (int i = 0; i < (Integer)newInputs.get("moleculeCount"); i++){ @@ -121,7 +125,19 @@ } } if (classAttrib == null) classAttrib = new String[]{"unknown"}; - Double[][] matrix = standardise.standardise(title, newInputs, (Integer)((newInputs.get("moleculeCount")))); + List matrixtmp = (List)((DataThing)(standardise.execute(newInputs)).get("matrix")).getDataObject(); + Double[][] matrix = new Double[matrixtmp.size()][((List)matrixtmp.get(0)).size()]; + int z = 0 , s = 0; + for (Iterator iter = matrixtmp.iterator(); iter.hasNext();) { + List element = (List) iter.next(); + for (Iterator iterator = element.iterator(); iterator.hasNext();) { + Double val = (Double) iterator.next(); + matrix[z][s] = val; + s++; + } + z++; + s = 0; + } String[] attrib = new String[title.length]; for (int i = 0; i < title.length; i++) { attrib[i] = title[i].substring(title[i].lastIndexOf(".") + 1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |