From 388ff9b077fadb3a0fa77dae23f3c14f87e565cd Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Wed, 7 Feb 2018 17:28:04 +0100 Subject: [PATCH] export of annotations added --- .../model/sbml/SbmlBioEntityExporter.java | 10 ++++++++-- .../model/sbml/GenericSbmlToXmlParserTest.java | 15 +++++++++++++++ .../converter/annotation/XmlAnnotationParser.java | 3 ++- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityExporter.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityExporter.java index 5965bdad70..604b95c7cb 100644 --- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityExporter.java +++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/SbmlBioEntityExporter.java @@ -7,14 +7,13 @@ import java.util.Map; import javax.xml.stream.XMLStreamException; import org.apache.log4j.Logger; -import org.sbml.jsbml.ASTNode; import org.sbml.jsbml.Model; -import org.sbml.jsbml.Species; import org.sbml.jsbml.ext.layout.AbstractReferenceGlyph; import org.sbml.jsbml.ext.layout.Layout; import lcsb.mapviewer.common.XmlParser; import lcsb.mapviewer.common.exception.InvalidStateException; +import lcsb.mapviewer.converter.annotation.XmlAnnotationParser; import lcsb.mapviewer.model.map.BioEntity; import lcsb.mapviewer.model.map.InconsistentModelException; @@ -64,6 +63,13 @@ public abstract class SbmlBioEntityExporter<T extends BioEntity, S extends org.s String mapKey = element.getClass().getSimpleName() + "\n" + element.getElementId() + "\n" + compartmentName; if (sbmlElementByElementNameAndCompartmentName.get(mapKey) == null) { S sbmlElement = createSbmlElement(element); + XmlAnnotationParser parser = new XmlAnnotationParser(); + String rdf = parser.dataSetToXmlString(element.getMiriamData()); + try { + sbmlElement.setAnnotation(rdf); + } catch (XMLStreamException e1) { + throw new InconsistentModelException(e1); + } sbmlElement.setName(element.getName()); try { sbmlElement.setNotes(element.getNotes()); diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java index 7fbdd583ff..fc25729abe 100644 --- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java +++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/GenericSbmlToXmlParserTest.java @@ -42,6 +42,21 @@ public class GenericSbmlToXmlParserTest { data.add(new Object[] { fPath }); } }); + Files.walk(Paths.get("testFiles/small")).forEach(fPath -> { + if (Files.isRegularFile(fPath) && fPath.toString().endsWith(".xml")) { + data.add(new Object[] { fPath }); + } + }); + Files.walk(Paths.get("testFiles/small/reaction")).forEach(fPath -> { + if (Files.isRegularFile(fPath) && fPath.toString().endsWith(".xml")) { + data.add(new Object[] { fPath }); + } + }); + Files.walk(Paths.get("testFiles/small/modifier")).forEach(fPath -> { + if (Files.isRegularFile(fPath) && fPath.toString().endsWith(".xml")) { + data.add(new Object[] { fPath }); + } + }); return data; } diff --git a/converter/src/main/java/lcsb/mapviewer/converter/annotation/XmlAnnotationParser.java b/converter/src/main/java/lcsb/mapviewer/converter/annotation/XmlAnnotationParser.java index e32625a647..c6ebc15d1c 100644 --- a/converter/src/main/java/lcsb/mapviewer/converter/annotation/XmlAnnotationParser.java +++ b/converter/src/main/java/lcsb/mapviewer/converter/annotation/XmlAnnotationParser.java @@ -1,5 +1,6 @@ package lcsb.mapviewer.converter.annotation; +import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -155,7 +156,7 @@ public class XmlAnnotationParser extends XmlParser { * - a set of MiriamData to be converted. * @return xml string representation of the input data */ - public String dataSetToXmlString(Set<MiriamData> data) { + public String dataSetToXmlString(Collection<MiriamData> data) { StringBuilder result = new StringBuilder(""); result.append( "<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" " + "xmlns:dc=\"http://purl.org/dc/elements/1.1/\" " -- GitLab