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

parsing of sbml model annotations implemented

parent 54d5fd71
No related branches found
No related tags found
1 merge request!708Resolve "add handling of annotations for model"
package lcsb.mapviewer.converter.model.sbml;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
......@@ -23,9 +18,9 @@ import org.sbml.jsbml.ext.multi.MultiModelPlugin;
import lcsb.mapviewer.commands.CommandExecutionException;
import lcsb.mapviewer.commands.layout.ApplySimpleLayoutModelCommand;
import lcsb.mapviewer.common.MimeType;
import lcsb.mapviewer.converter.Converter;
import lcsb.mapviewer.converter.ConverterException;
import lcsb.mapviewer.converter.ConverterParams;
import lcsb.mapviewer.converter.Converter;
import lcsb.mapviewer.converter.InvalidInputDataExecption;
import lcsb.mapviewer.converter.model.sbml.compartment.SbmlCompartmentParser;
import lcsb.mapviewer.converter.model.sbml.reaction.SbmlReactionParser;
......@@ -33,7 +28,6 @@ import lcsb.mapviewer.converter.model.sbml.species.SbmlSpeciesParser;
import lcsb.mapviewer.converter.model.sbml.units.SbmlUnitsParser;
import lcsb.mapviewer.model.map.BioEntity;
import lcsb.mapviewer.model.map.InconsistentModelException;
import lcsb.mapviewer.model.map.MiriamData;
import lcsb.mapviewer.model.map.model.Model;
import lcsb.mapviewer.model.map.model.ModelFullIndexed;
import lcsb.mapviewer.model.map.modifier.Modulation;
......@@ -82,10 +76,7 @@ public class SbmlParser extends Converter {
SbmlParameterParser parameterParser = new SbmlParameterParser(sbmlModel, model);
SbmlFunctionParser functionParser = new SbmlFunctionParser(sbmlModel, model);
Set<MiriamData> annotations = compartmentParser.parseAnnotation(sbmlModel.getAnnotation());
if (annotations.size() > 0) {
logger.warn("Annotations for model not implemented");
}
model.addMiriamData(compartmentParser.parseAnnotation(sbmlModel.getAnnotation()));
model.addUnits(unitParser.parseList(sbmlModel));
model.addParameters(parameterParser.parseList(sbmlModel));
......
......@@ -82,6 +82,14 @@ public class SbmlParserTest {
assertTrue("Units weren't parsed", model.getUnits().size() > 0);
}
@Test
public void testParseModelAnnotations() throws FileNotFoundException, InvalidInputDataExecption {
Model model = parser.createModel(
new ConverterParams().filename("testFiles/small/model_with_annotations.xml"));
assertNotNull(model);
assertEquals(2,model.getMiriamData().size());
}
@Test
public void testParseKinetics() throws FileNotFoundException, InvalidInputDataExecption {
Model model = parser.createModel(new ConverterParams().filename("testFiles/layoutExample/SBML.xml"));
......
<?xml version="1.0" encoding="UTF-8"?>
<sbml xmlns="http://www.sbml.org/sbml/level2/version4" level="2" version="4">
<model metaid="untitled" id="untitled">
<annotation>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/">
<rdf:Description rdf:about="#untitled">
<bqmodel:is>
<rdf:Bag>
<rdf:li rdf:resource="urn:miriam:obo.chebi:CHEBI%3A12345"/>
</rdf:Bag>
</bqmodel:is>
<bqmodel:is>
<rdf:Bag>
<rdf:li rdf:resource="urn:miriam:taxonomy:9606"/>
</rdf:Bag>
</bqmodel:is>
</rdf:Description>
</rdf:RDF>
</annotation>
<listOfUnitDefinitions>
<unitDefinition metaid="substance" id="substance" name="substance">
<listOfUnits>
<unit metaid="CDMT00001" kind="mole"/>
</listOfUnits>
</unitDefinition>
<unitDefinition metaid="volume" id="volume" name="volume">
<listOfUnits>
<unit metaid="CDMT00002" kind="litre"/>
</listOfUnits>
</unitDefinition>
<unitDefinition metaid="area" id="area" name="area">
<listOfUnits>
<unit metaid="CDMT00003" kind="metre" exponent="2"/>
</listOfUnits>
</unitDefinition>
<unitDefinition metaid="length" id="length" name="length">
<listOfUnits>
<unit metaid="CDMT00004" kind="metre"/>
</listOfUnits>
</unitDefinition>
<unitDefinition metaid="time" id="time" name="time">
<listOfUnits>
<unit metaid="CDMT00005" kind="second"/>
</listOfUnits>
</unitDefinition>
</listOfUnitDefinitions>
<listOfCompartments>
<compartment metaid="default" id="default" size="1" units="volume"/>
</listOfCompartments>
</model>
</sbml>
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