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

export/import of synonyms implemented

parent 08c10511
No related branches found
No related tags found
2 merge requests!630WIP: Resolve "The privileges of a new user are not saved in some cases",!560Resolve "add support for modifications and states in sbml export/import"
......@@ -98,6 +98,7 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
assignStructuralStateToMulti(element, multiExtension, speciesType);
assignPostionToCompartmentToMulti(element, multiExtension, speciesType);
assignElementModificationResiduesToMulti(element, multiExtension, speciesType);
assignListOfSynonymsToMulti(element, multiExtension, speciesType);
}
private void assignElementModificationResiduesToMulti(Species element, MultiSpeciesPlugin multiExtension,
......@@ -216,12 +217,7 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
structuralState = ((Complex) element).getStructuralState();
}
if (structuralState != null) {
SpeciesFeatureType structuralStateFeature = getFeature(element.getClass(), speciesType,
BioEntityFeature.STRUCTURAL_STATE);
PossibleSpeciesFeatureValue structuralStateFeatureValue = getPosibleFeatureIdByName(structuralState,
structuralStateFeature);
addSpeciesFeatureValue(multiExtension, structuralStateFeature, structuralStateFeatureValue);
assignValueToFeature(element, multiExtension, speciesType, structuralState, BioEntityFeature.STRUCTURAL_STATE);
}
}
......@@ -259,13 +255,24 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j
private void assignPostionToCompartmentToMulti(Species element, MultiSpeciesPlugin multiExtension,
MultiSpeciesType speciesType) {
String positionToCompartmentName = "undefined";
String value = "undefined";
if (element.getPositionToCompartment() != null) {
positionToCompartmentName = element.getPositionToCompartment().name();
value = element.getPositionToCompartment().name();
}
SpeciesFeatureType structuralStateFeature = getFeature(element.getClass(), speciesType,
BioEntityFeature.POSITION_TO_COMPARTMENT);
PossibleSpeciesFeatureValue structuralStateFeatureValue = getPosibleFeatureIdByName(positionToCompartmentName,
assignValueToFeature(element, multiExtension, speciesType, value, BioEntityFeature.POSITION_TO_COMPARTMENT);
}
private void assignListOfSynonymsToMulti(Species element, MultiSpeciesPlugin multiExtension,
MultiSpeciesType speciesType) {
for (String synonym : element.getSynonyms()) {
assignValueToFeature(element, multiExtension, speciesType, synonym, BioEntityFeature.SYNONYM);
}
}
private void assignValueToFeature(Species element, MultiSpeciesPlugin multiExtension, MultiSpeciesType speciesType,
String value, BioEntityFeature feature) {
SpeciesFeatureType structuralStateFeature = getFeature(element.getClass(), speciesType, feature);
PossibleSpeciesFeatureValue structuralStateFeatureValue = getPosibleFeatureIdByName(value,
structuralStateFeature);
addSpeciesFeatureValue(multiExtension, structuralStateFeature, structuralStateFeatureValue);
......
......@@ -157,6 +157,16 @@ public class SbmlSpeciesParser extends SbmlElementParser<org.sbml.jsbml.Species>
} else {
minervaElement.setPositionToCompartment(PositionToCompartment.getByString(positionToCompartments.get(0)));
}
} else if (MultiPackageNamingUtils.isFeatureId(featureTypeString, BioEntityFeature.SYNONYM)) {
SpeciesFeatureType featureType = speciesType.getListOfSpeciesFeatureTypes().get(featureTypeString);
List<String> synonyms = new ArrayList<>();
for (SpeciesFeatureValue featureValue : feature.getListOfSpeciesFeatureValues()) {
PossibleSpeciesFeatureValue possibleSpeciesFeatureValue = featureType.getListOfPossibleSpeciesFeatureValues()
.get(featureValue.getValue());
synonyms.add(possibleSpeciesFeatureValue.getName());
}
minervaElement.setSynonyms(synonyms);
} else if (MultiPackageNamingUtils.isModificationFeatureId(featureTypeString)) {
createModificationResidues(minervaElement, speciesType, feature);
} else {
......
......@@ -11,6 +11,7 @@ import java.util.Arrays;
import java.util.Collection;
import org.apache.log4j.Logger;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
......@@ -28,6 +29,7 @@ import lcsb.mapviewer.model.map.reaction.ReactionNode;
import lcsb.mapviewer.model.map.reaction.type.StateTransitionReaction;
import lcsb.mapviewer.model.map.species.Ion;
@Ignore("Not supported by multi extension")
@RunWith(Parameterized.class)
public class ReactionPropertiesExportToMultiTest {
......
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