From 19d4679433193ee3ad0c6a7c9cb6f92064f58329 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Mon, 19 Nov 2018 13:36:11 +0100 Subject: [PATCH] export of compartments fixed --- .../model/sbgnml/SbgnmlXmlExporter.java | 13 ++++--- .../model/sbgnml/CellDesignerToSbgnTest.java | 37 +++++++++++++++++++ 2 files changed, 45 insertions(+), 5 deletions(-) diff --git a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporter.java b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporter.java index 824664c47b..1b536d4ee9 100644 --- a/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporter.java +++ b/converter-SBGNML/src/main/java/lcsb/mapviewer/converter/model/sbgnml/SbgnmlXmlExporter.java @@ -161,11 +161,14 @@ public class SbgnmlXmlExporter { map.setLanguage(Language.PD.getName()); Sbgn sbgnData = new Sbgn(); - List<Species> aliases = model.getSpeciesList(); - - for (Species a : aliases) { - if (a.getComplex() == null) { - Glyph newGlyph = aliasToGlyph(a); + for (Element element : model.getElements()) { + if (element instanceof Species) { + if (((Species) element).getComplex() == null) { + Glyph newGlyph = aliasToGlyph(element); + map.getGlyph().add(newGlyph); + } + } else if (element instanceof Compartment) { + Glyph newGlyph = aliasToGlyph(element); map.getGlyph().add(newGlyph); } } diff --git a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesignerToSbgnTest.java b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesignerToSbgnTest.java index edaea41e34..05fca1f6c7 100644 --- a/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesignerToSbgnTest.java +++ b/converter-SBGNML/src/test/java/lcsb/mapviewer/converter/model/sbgnml/CellDesignerToSbgnTest.java @@ -14,10 +14,14 @@ import org.junit.Test; import lcsb.mapviewer.converter.ConverterParams; import lcsb.mapviewer.converter.IConverter; import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; +import lcsb.mapviewer.model.map.compartment.Compartment; import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.species.Element; +import lcsb.mapviewer.modelutils.map.ElementUtils; public class CellDesignerToSbgnTest { Logger logger = Logger.getLogger(CellDesignerToSbgnTest.class); + ElementUtils eu = new ElementUtils(); @Before public void setUp() throws Exception { @@ -70,4 +74,37 @@ public class CellDesignerToSbgnTest { } } + @Test + public void testCompartmentsExport() throws Exception { + try { + IConverter converter = new CellDesignerXmlParser(); + IConverter converter2 = new SbgnmlXmlConverter(); + + Model model = converter.createModel(new ConverterParams().filename("testFiles/cellDesigner/neuron.xml")); + + String output = File.createTempFile("temp-sbgn-output", ".sbgn").getAbsolutePath(); + converter2.exportModelToFile(model, output); + + converter2.createModel(new ConverterParams().filename(output)); + + String fileContent; + try (FileInputStream inputStream = new FileInputStream(output)) { + fileContent = IOUtils.toString(inputStream, "UTF-8"); + } + + for (Element element : model.getElements()) { + if (element instanceof Compartment) { + assertTrue(eu.getElementTag(element) + " comparmtent is not exported", + fileContent.contains(element.getElementId())); + } + } + + new File(output).delete(); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + } -- GitLab