Skip to content
Snippets Groups Projects
Commit d8d47f80 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

export of modelId added

parent c94158a7
No related branches found
No related tags found
1 merge request!186Resolve "upload of sbml"
......@@ -19,30 +19,17 @@ public class SbmlExporter {
throws SBMLException, XMLStreamException, InconsistentModelException {
SBMLDocument doc = new SBMLDocument(3, 1);
Model result = doc.createModel(model.getName());
result.setId(model.getIdModel());
Layout layout = createSbmlLayout(model, result);
SbmlCompartmentExporter compartmentExporter = new SbmlCompartmentExporter(layout, model);
SbmlBioEntityExporter<Species, org.sbml.jsbml.Species> speciesExporter = new SbmlSpeciesExporter(layout, model, compartmentExporter);
SbmlBioEntityExporter<Species, org.sbml.jsbml.Species> speciesExporter = new SbmlSpeciesExporter(layout, model,
compartmentExporter);
SbmlReactionExporter reactionExporter = new SbmlReactionExporter(layout, model, speciesExporter);
compartmentExporter.exportElements(result);
speciesExporter.exportElements(result);
reactionExporter.exportElements(result);
// // Create some sample content in the SBML model.
// Species specOne = result.createSpecies("test_spec1", compartment);
// Species specTwo = result.createSpecies("test_spec2", compartment);
// Reaction sbReaction = result.createReaction("reaction_id");
//
// // Add a substrate (SBO:0000015) and product (SBO:0000011) to the reaction.
// SpeciesReference subs = sbReaction.createReactant(specOne);
// subs.setSBOTerm(15);
// SpeciesReference prod = sbReaction.createProduct(specTwo);
// prod.setSBOTerm(11);
// For brevity, we omit error checking, BUT YOU SHOULD CALL
// doc.checkConsistency() and check the error log.
// Write the SBML document to a file.
ByteArrayOutputStream stream = new ByteArrayOutputStream();
SBMLWriter.write(doc, stream, "minerva", "1.0");
return stream.toString();
......@@ -52,8 +39,16 @@ public class SbmlExporter {
LayoutModelPlugin layoutPlugin = new LayoutModelPlugin(result);
Layout layout = new Layout();
Dimensions dimensions = new Dimensions();
dimensions.setHeight(model.getHeight());
dimensions.setWidth(model.getWidth());
if (model.getHeight() != null) {
dimensions.setHeight(model.getHeight());
} else {
dimensions.setHeight(640);
}
if (model.getWidth() != null) {
dimensions.setWidth(model.getWidth());
} else {
dimensions.setWidth(480);
}
layout.setDimensions(dimensions);
layoutPlugin.add(layout);
result.addExtension("layout", layoutPlugin);
......
......@@ -19,9 +19,9 @@ import lcsb.mapviewer.converter.graphics.NormalImageGenerator;
import lcsb.mapviewer.converter.graphics.PngImageGenerator;
import lcsb.mapviewer.model.map.compartment.Compartment;
import lcsb.mapviewer.model.map.model.Model;
import lcsb.mapviewer.model.map.model.ModelFullIndexed;
import lcsb.mapviewer.model.map.reaction.Reaction;
import lcsb.mapviewer.model.map.reaction.ReactionNode;
import lcsb.mapviewer.model.map.species.Element;
import lcsb.mapviewer.model.map.species.Species;
public class SbmlExporterTest {
......@@ -49,11 +49,15 @@ public class SbmlExporterTest {
private Model getModelAfterSerializing(String filename) throws Exception {
Model originalModel = parser.createModel(new ConverterParams().filename(filename));
return getModelAfterSerializing(originalModel);
}
private Model getModelAfterSerializing(Model originalModel) throws Exception {
String xml = exporter.toXml(originalModel);
ByteArrayInputStream stream = new ByteArrayInputStream(xml.getBytes("UTF-8"));
Model result = parser.createModel(new ConverterParams().inputStream(stream));
// showImage(originalModel);
// showImage(result);
// showImage(originalModel);
// showImage(result);
return result;
}
......@@ -120,4 +124,13 @@ public class SbmlExporterTest {
assertEquals(2, reaction.getOperators().size());
}
@Test
public void testExportModelId() throws Exception {
Model model = new ModelFullIndexed(null);
model.setIdModel("Test123");
Model deserializedModel = getModelAfterSerializing(model);
assertEquals(model.getIdModel(), deserializedModel.getIdModel());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment