diff --git a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/extension/multi/BioEntityFeature.java b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/extension/multi/BioEntityFeature.java index bb89d1600854becebb505544626ac2ceea9f2d14..93db74e678b5a60282ec7639a1481d9bb8892f6f 100644 --- a/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/extension/multi/BioEntityFeature.java +++ b/converter-sbml/src/main/java/lcsb/mapviewer/converter/model/sbml/extension/multi/BioEntityFeature.java @@ -23,6 +23,9 @@ public enum BioEntityFeature { FORMULA("Formula", null, new Class<?>[] { Element.class }, "minerva_formula_"), + HYPOTHETICAL("Hypothetical", null, new Class<?>[] { Element.class }, + "minerva_hypothetical_"), + DIMER("Dimer", null, new Class<?>[] { Element.class }, "minerva_dimer_"), 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 7dad53fae4896a5fc7868c1e67a89c521c1e02b5..532aa20056a0950d0857348da6bd7d3e0e7ea892 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 @@ -104,6 +104,7 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j assignFullNameToMulti(element, multiExtension, speciesType); assignFormulaToMulti(element, multiExtension, speciesType); assignDimerToMulti(element, multiExtension, speciesType); + assignHypotheticalToMulti(element, multiExtension, speciesType); assignAbbreviationToMulti(element, multiExtension, speciesType); } @@ -304,6 +305,14 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j } } + private void assignHypotheticalToMulti(Species element, MultiSpeciesPlugin multiExtension, + MultiSpeciesType speciesType) { + if (element.getHypothetical() != null) { + assignValueToFeature(element, multiExtension, speciesType, element.getHypothetical().toString(), + BioEntityFeature.HYPOTHETICAL); + } + } + private void assignAbbreviationToMulti(Species element, MultiSpeciesPlugin multiExtension, MultiSpeciesType speciesType) { assignValueToFeature(element, multiExtension, speciesType, element.getAbbreviation(), 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 b2a3de6028f77719cf4dc277e2edcadf37d246c3..3022498a9199ec2796934c0a35ba9c1cdad26176 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 @@ -181,6 +181,20 @@ public class SbmlSpeciesParser extends SbmlElementParser<org.sbml.jsbml.Species> } else { minervaElement.setAbbreviation(featureValues.get(0)); } + } else if (MultiPackageNamingUtils.isFeatureId(featureTypeString, BioEntityFeature.HYPOTHETICAL)) { + if (featureValues.size() != 1) { + logger.warn(warnPrefix + "Hypothetical must have exactly one value"); + } else { + Boolean value = null; + if (featureValues.get(0).equalsIgnoreCase("true")) { + value = true; + } else if (featureValues.get(0).equalsIgnoreCase("false")) { + value = false; + } else { + logger.warn(warnPrefix + "Hypothetical must be true/false value. Found: " + featureValues.get(0)); + } + minervaElement.setHypothetical(value); + } } else if (MultiPackageNamingUtils.isModificationFeatureId(featureTypeString)) { createModificationResidues(minervaElement, speciesType, feature); } else { diff --git a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExportToMultiTest.java b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExportToMultiTest.java index 50f4af36dad1bb8baa5d066431fa112cd34f4e7e..ad4ba2ac9dd574e0a4efe8faba19ab92e628ccce 100644 --- a/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExportToMultiTest.java +++ b/converter-sbml/src/test/java/lcsb/mapviewer/converter/model/sbml/ElementPropertiesExportToMultiTest.java @@ -60,6 +60,10 @@ public class ElementPropertiesExportToMultiTest { element.setHomodimer(4); data.add(createTestEntry("Homodimer", element)); + element = createElement(); + element.setHypothetical(true); + data.add(createTestEntry("Hypothetical", element)); + element = createElement(); element.setSymbol("H2O"); data.add(createTestEntry("Symbol", element));