Skip to content

Commit

Permalink
Updated with sanity checks if descriptor calculation fails.
Browse files Browse the repository at this point in the history
  • Loading branch information
olas committed Dec 29, 2011
1 parent 603a3cc commit d860996
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 10 deletions.
Expand Up @@ -21,7 +21,7 @@
import net.bioclipse.core.PublishedMethod;
import net.bioclipse.core.Recorded;
import net.bioclipse.core.business.BioclipseException;
import net.bioclipse.core.domain.Dataset;
import net.bioclipse.core.domain.DenseDataset;
import net.bioclipse.core.domain.IMolecule;
import net.bioclipse.managers.business.IBioclipseManager;
import net.bioclipse.qsar.DescriptorType;
Expand Down Expand Up @@ -225,7 +225,7 @@ IDescriptorResult calculate( IMolecule mol, String ontologyID,
"list of molecules " +
"using the default provider.")
@Recorded
Dataset calculate( List<IMolecule> mols,
DenseDataset calculate( List<IMolecule> mols,
List<String> descriptors )
throws BioclipseException;

Expand All @@ -235,7 +235,7 @@ Dataset calculate( List<IMolecule> mols,
"list of molecules " +
"using the selected provider.")
@Recorded
Dataset calculate( List<IMolecule> mols,
DenseDataset calculate( List<IMolecule> mols,
List<String> descriptors,
String provider )
throws BioclipseException;
Expand Down
Expand Up @@ -27,7 +27,7 @@
import net.bioclipse.cdk.business.ICDKManager;
import net.bioclipse.cdk.domain.ICDKMolecule;
import net.bioclipse.core.business.BioclipseException;
import net.bioclipse.core.domain.Dataset;
import net.bioclipse.core.domain.DenseDataset;
import net.bioclipse.core.domain.IMolecule;
import net.bioclipse.core.domain.IStringMatrix;
import net.bioclipse.core.util.LogUtils;
Expand Down Expand Up @@ -805,7 +805,7 @@ public IDescriptorResult calculate(IMolecule mol, String descriptor) throws Bioc
* @throws BioclipseException
* @throws BioclipseException
*/
public Dataset calculate(List<IMolecule> mols, List<String> descriptors) throws BioclipseException{
public DenseDataset calculate(List<IMolecule> mols, List<String> descriptors) throws BioclipseException{

//Just propagate with provider as null
return calculate( mols, descriptors, null );
Expand All @@ -818,7 +818,7 @@ public Dataset calculate(List<IMolecule> mols, List<String> descriptors) throws
* @throws BioclipseException
* @throws BioclipseException
*/
public Dataset calculate(List<IMolecule> mols, List<String> descriptors, String provider) throws BioclipseException{
public DenseDataset calculate(List<IMolecule> mols, List<String> descriptors, String provider) throws BioclipseException{

Map<IMolecule, List<DescriptorImpl>> calculationMap=new HashMap<IMolecule, List<DescriptorImpl>>();

Expand Down Expand Up @@ -889,7 +889,16 @@ private QsarDataset calculate(

// DescriptorCalculationResult dcalres=new DescriptorCalculationResult(resultMap);


//Some sanity checks, if all results fail then throw exception.
for (IMolecule mol : resultMap.keySet()){
for (IDescriptorResult dres : resultMap.get(mol)){
if (dres.getErrorMessage()!=null){
System.out.println("Errors exist in descriptor result: " + dres);
throw new BioclipseException("Error in descriptor generation for molecule: " + mol);
//TODO: we could also simply remove this molecule if we would like to
}
}
}

return new QsarDataset(resultMap);
}
Expand Down
Expand Up @@ -64,7 +64,7 @@ public void setValues(Float[] values) {

@Override
public String toString() {

if (errorMessage!=null) return "ERROR: " + errorMessage;
if (labels==null || labels.length<=0) return "null";
IQsarManager qsar=Activator.getDefault().getJavaQsarManager();

Expand Down
Expand Up @@ -8,10 +8,10 @@
import net.bioclipse.cdk.business.ICDKManager;
import net.bioclipse.cdk.domain.ICDKMolecule;
import net.bioclipse.core.business.BioclipseException;
import net.bioclipse.core.domain.Dataset;
import net.bioclipse.core.domain.DenseDataset;
import net.bioclipse.core.domain.IMolecule;

public class QsarDataset extends Dataset{
public class QsarDataset extends DenseDataset{

Map<IMolecule, List<IDescriptorResult>> qsarResults;

Expand All @@ -32,6 +32,10 @@ public QsarDataset(Map<IMolecule, List<IDescriptorResult>> resultMap) {
//Loop over all descriptors in get first mol (all are same)
IMolecule fmol = (IMolecule) resultMap.keySet().toArray()[0];
for (IDescriptorResult dres : resultMap.get( fmol )){
if (dres.getErrorMessage()!=null){
System.out.println("Errors exist in descriptor result: " + dres);
continue;
}
for (String label : dres.getLabels()){
colHeaders.add(label);
}
Expand All @@ -47,6 +51,10 @@ public QsarDataset(Map<IMolecule, List<IDescriptorResult>> resultMap) {
rowHeaders.add("Molecule-" + mol);
List<IDescriptorResult> lst = resultMap.get( mol );
for (IDescriptorResult dres : lst){
if (dres.getErrorMessage()!=null){
System.out.println("Errors exist in descriptor result: " + dres);
continue;
}
for (Float value : dres.getValues()){
rowValues.add(value);
}
Expand Down

0 comments on commit d860996

Please sign in to comment.