Flatten works

This commit is contained in:
LukasBuecherl 2022-07-25 13:28:58 -06:00
parent 1c24b1edc5
commit 8cffc3062b
3 changed files with 86 additions and 32 deletions

View file

@ -19,9 +19,11 @@ import java.io.IOException;
import java.net.URI; import java.net.URI;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.lang.reflect.Method;
import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamException;
import org.sbml.jsbml.Model;
import org.sbml.jsbml.SBMLDocument; import org.sbml.jsbml.SBMLDocument;
import org.sbml.jsbml.SBMLException; import org.sbml.jsbml.SBMLException;
import org.sbml.jsbml.SBMLWriter; import org.sbml.jsbml.SBMLWriter;
@ -432,20 +434,71 @@ public class Converter {
try try
{ {
inputSBMLDoc = SBMLutilities.readSBML(fullInputFileName, null, null);
/* /*
File path = new File(fullInputFileName); org.sbml.libsbml.SBMLReader reader = new org.sbml.libsbml.SBMLReader();
BioObservable p = null; org.sbml.libsbml.SBMLDocument document = reader.readSBML(fullInputFileName);
BioModel bioModel = BioModel.createBioModel(path.getParent(), p); document.setPackageRequired("comp", true);
bioModel.load(fullInputFileName); org.sbml.libsbml.CompModelPlugin sbmlCompModel = (org.sbml.libsbml.CompModelPlugin) document.getModel().getPlugin("comp");
long numSubModels = sbmlCompModel.getNumSubmodels();
System.err.println(numSubModels);
*/
inputSBMLDoc = SBMLutilities.readSBML(fullInputFileName, null, null);
//SBML2PRISM.convertSBML2PRISM(inputSBMLDoc, fullInputFileName, PrismUnbound);
File path = new File(fullInputFileName);
BioModel bioModel = new BioModel(path.getParent());
bioModel.load(fullInputFileName);
bioModel.createCompPlugin();
System.err.println(bioModel.getListOfSubmodels());
if(bioModel.getListOfSubmodels().isEmpty())
{
SBML2PRISM.convertSBML2PRISM(inputSBMLDoc, fullInputFileName, PrismUnbound);
}else {
if (bioModel.flattenModel(true) != null) {
SBMLDocument sbml = bioModel.flattenModel(true);
SBML2PRISM.convertSBML2PRISM(sbml, fullInputFileName, PrismUnbound);
}
}
/*
if (bioModel.flattenModel(true) != null) { if (bioModel.flattenModel(true) != null) {
SBMLDocument sbml = bioModel.flattenModel(true); SBMLDocument sbml = bioModel.flattenModel(true);
//SBMLDocument sbml = bioModel.getSBMLDocument();
//System.err.println(inputSBMLDoc.equals(inputSBMLDoc));
//System.err.println(sbml.equals(sbml));
//System.err.println(sbml.equals(sbml));
SBML2PRISM.convertSBML2PRISM(sbml, fullInputFileName, PrismUnbound); SBML2PRISM.convertSBML2PRISM(sbml, fullInputFileName, PrismUnbound);
} }
*/ */
SBML2PRISM.convertSBML2PRISM(inputSBMLDoc, fullInputFileName, PrismUnbound);
/*
File path = new File(fullInputFileName);
// BioObservable p = null;
// BioModel bioModel = BioModel.createBioModel(path.getParent(), p);
BioModel bioModel = new BioModel(path.getParent());
bioModel.load(fullInputFileName);
if (bioModel.flattenModel(true) != null) {
//SBMLDocument sbml = bioModel.flattenModel(true);
SBMLDocument sbml = bioModel.getSBMLDocument();
//System.err.println(inputSBMLDoc.equals(inputSBMLDoc));
//System.err.println(sbml.equals(sbml));
//System.err.println(sbml.equals(sbml));
//SBML2PRISM.convertSBML2PRISM(sbml, fullInputFileName, PrismUnbound);
}
*/
} }
catch (XMLStreamException e) catch (XMLStreamException e)
@ -574,9 +627,9 @@ public class Converter {
} }
else { else {
ModuleDefinition topModuleDef = sbolDoc.getModuleDefinition(URI.create(topLevelURIStr)); ModuleDefinition topModuleDef = sbolDoc.getModuleDefinition(URI.create(topLevelURIStr));
HashMap<String,BioModel> models = SBOL2SBML.generateModel(outputDir, topModuleDef, sbolDoc, CelloModel); HashMap<String,BioModel> models = SBOL2SBML.generateModel(outputDir, topModuleDef, sbolDoc, CelloModel);
SBMLutilities.exportSBMLModels(models, outputDir, outputFileName, noOutput, sbmlOut, singleSBMLOutput); SBMLutilities.exportSBMLModels(models, outputDir, outputFileName, noOutput, sbmlOut, singleSBMLOutput);
} }
} }
else else
@ -607,7 +660,7 @@ public class Converter {
topModel.getModel().setId(topModelId); topModel.getModel().setId(topModelId);
SBMLWriter writer = new SBMLWriter(); SBMLWriter writer = new SBMLWriter();
try { try {
//SBMLutilities.removeUnusedNamespaces(sbml); //SBMLutilities.removeUnusedNamespaces(sbml);
writer.writeSBMLToFile(topModel, outputDir + File.separator + topModelId + ".xml"); writer.writeSBMLToFile(topModel, outputDir + File.separator + topModelId + ".xml");
} }
catch (SBMLException e) { catch (SBMLException e) {

View file

@ -6399,7 +6399,7 @@ public class BioModel extends CoreObservable{
} }
} }
private ArrayList<String> getListOfSubmodels() throws XMLStreamException, IOException, BioSimException { public ArrayList<String> getListOfSubmodels() throws XMLStreamException, IOException, BioSimException { // Changed private to public (Lukas)
ArrayList<String> comps = new ArrayList<String>(); ArrayList<String> comps = new ArrayList<String>();
if (this.getGridEnabledFromFile(filename.replace(".gcm",".xml"))) { if (this.getGridEnabledFromFile(filename.replace(".gcm",".xml"))) {

View file

@ -1968,7 +1968,8 @@ public class SBMLutilities extends CoreObservable
{ {
String leftStr = convertMath2PrismProperty(math.getLeftChild()); String leftStr = convertMath2PrismProperty(math.getLeftChild());
String rightStr = convertMath2PrismProperty(math.getRightChild()); String rightStr = convertMath2PrismProperty(math.getRightChild());
return "(" + leftStr + " ^ " + rightStr + ")"; //return "(" + leftStr + " ^ " + rightStr + ")";
return "pow(" + leftStr + " , " + rightStr + ")";
} }
else if (math.getType() == ASTNode.Type.RATIONAL) else if (math.getType() == ASTNode.Type.RATIONAL)
{ {