From 1f093f89a903a502fb9ac3eac44dd5f75decbb59 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Mon, 7 Jan 2019 10:34:35 +0100 Subject: [PATCH] export of initial concentration added --- .../sbml/species/SbmlSpeciesExporter.java | 3 + .../model/sbml/species/SbmlSpeciesParser.java | 3 + .../model/sbml/AllSbmlConverterTests.java | 1 + .../model/sbml/ElementPropertiesExport.java | 102 ++++++++++++++++++ 4 files changed, 109 insertions(+) create mode 100644 converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExport.java diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java index 304fc53dc4..ee081b42f4 100644 --- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java +++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesExporter.java @@ -77,6 +77,9 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j if (element.getInitialAmount() != null) { result.setInitialAmount(element.getInitialAmount()); } + if (element.getInitialConcentration() != null) { + result.setInitialConcentration(element.getInitialConcentration()); + } if (element.hasOnlySubstanceUnits() != null) { result.setHasOnlySubstanceUnits(element.hasOnlySubstanceUnits()); } diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java index d458857d6d..78fb7ca6c8 100644 --- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java +++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/species/SbmlSpeciesParser.java @@ -78,6 +78,9 @@ public class SbmlSpeciesParser extends SbmlElementParser<org.sbml.jsbml.Species> if (!Double.isNaN(species.getInitialAmount())) { result.setInitialAmount(species.getInitialAmount()); } + if (!Double.isNaN(species.getInitialConcentration())) { + result.setInitialConcentration(species.getInitialConcentration()); + } if (species.isSetHasOnlySubstanceUnits()) { result.setOnlySubstanceUnits(species.hasOnlySubstanceUnits()); } diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/AllSbmlConverterTests.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/AllSbmlConverterTests.java index d33aff584a..922a00eb38 100644 --- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/AllSbmlConverterTests.java +++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/AllSbmlConverterTests.java @@ -13,6 +13,7 @@ import lcsb.mapviewer.converter.model.sbml.species.AllSbmlSpeciesTests; GenericSbmlParserTest.class, GenericSbmlToXmlParserTest.class, CellDesignerToMultiExportTest.class, + ElementPropertiesExport.class, ElementPropertiesExportToMultiTest.class, ElementPropertiesExportToLayoutTest.class, MultiParserTest.class, diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExport.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExport.java new file mode 100644 index 0000000000..c4f3cf8c96 --- /dev/null +++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExport.java @@ -0,0 +1,102 @@ +package lcsb.mapviewer.converter.model.sbml; + +import static org.junit.Assert.assertEquals; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; + +import org.apache.log4j.Logger; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import lcsb.mapviewer.converter.ConverterParams; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.model.ModelComparator; +import lcsb.mapviewer.model.map.model.ModelFullIndexed; +import lcsb.mapviewer.model.map.species.Element; +import lcsb.mapviewer.model.map.species.GenericProtein; +import lcsb.mapviewer.model.map.species.Species; + +@RunWith(Parameterized.class) +public class ElementPropertiesExport { + + static Logger logger = Logger.getLogger(ElementPropertiesExport.class.getName()); + + private Model model; + + public ElementPropertiesExport(String propertyName, Model model) { + this.model = model; + } + + @Parameters(name = "{index} : {0}") + public static Collection<Object[]> data() throws IOException { + Collection<Object[]> data = new ArrayList<>(); + + data.add(createTestEntry("Empty", createElement())); + + Species element = createElement(); + element.setInitialConcentration(1.0); + data.add(createTestEntry("Initial concentration", element)); + + element = createElement(); + element.setInitialAmount(2.0); + data.add(createTestEntry("Initial amount", element)); + + element = createElement(); + element.setBoundaryCondition(true); + data.add(createTestEntry("Boundary condition", element)); + + element = createElement(); + element.setConstant(true); + data.add(createTestEntry("Constatnt", element)); + + return data; + } + + private static Object[] createTestEntry(String string, Element element) { + Model result = new ModelFullIndexed(null); + result.setIdModel("X"); + result.setWidth(200); + result.setHeight(200); + result.addElement(element); + return new Object[] { string, result }; + } + + private static Species createElement() { + Species element = new GenericProtein("id"); + element.setX(10); + element.setY(10); + element.setWidth(1000); + element.setHeight(30); + return element; + } + + @Test + public void createModelTest() throws Exception { + try { + SbmlExporter sbmlExporter = new SbmlExporter(); + SbmlParser sbmlParser = new SbmlParser(); + String xmlString = sbmlExporter.toXml(model); + logger.debug(xmlString); + + InputStream is = new ByteArrayInputStream(xmlString.getBytes("UTF-8")); + + Model model2 = sbmlParser.createModel(new ConverterParams().inputStream(is).sizeAutoAdjust(false)); + model2.setName(model.getName()); + + ModelComparator comparator = new ModelComparator(); + assertEquals(0, comparator.compare(model, model2)); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + +} -- GitLab