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 ee081b42f441018b9a544293bd6de2f7b29bbf57..5fbcbaff3416b1f46b479d1522a78b758c597058 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 @@ -412,6 +412,14 @@ public class SbmlSpeciesExporter extends SbmlElementExporter<Species, org.sbml.j multiDistinguisher += "\n" + StringUtils.join(modifications, ","); } multiDistinguisher += "\n" + element.getPositionToCompartment(); + if (element instanceof Complex) { + List<String> complexChildIds = new ArrayList<>(); + for (Species child : ((Complex) element).getAllChildren()) { + complexChildIds.add(getSbmlIdKey(child)); + } + Collections.sort(complexChildIds); + multiDistinguisher += "\n" + StringUtils.join(complexChildIds, "\n"); + } } String result = element.getClass().getSimpleName() + "\n" + element.getName() + "\n" + compartmentName + "\n" + complexName diff --git a/converter-sbml/testFiles/cd_for_multi/different_complex_with_the_same_name.xml b/converter-sbml/testFiles/cd_for_multi/different_complex_with_the_same_name.xml new file mode 100644 index 0000000000000000000000000000000000000000..f2ea7d3f6de9efcfded42954ad2efd19a7a113dc --- /dev/null +++ b/converter-sbml/testFiles/cd_for_multi/different_complex_with_the_same_name.xml @@ -0,0 +1,168 @@ +<?xml version="1.0" encoding="UTF-8"?> +<sbml xmlns="http://www.sbml.org/sbml/level2/version4" xmlns:celldesigner="http://www.sbml.org/2001/ns/celldesigner" level="2" version="4"> +<model metaid="untitled" id="untitled"> +<annotation> +<celldesigner:extension> +<celldesigner:modelVersion>4.0</celldesigner:modelVersion> +<celldesigner:modelDisplay sizeX="600" sizeY="400"/> +<celldesigner:listOfIncludedSpecies> +<celldesigner:species id="s4" name="s3"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body/> +</html> +</celldesigner:notes> +<celldesigner:annotation> +<celldesigner:complexSpecies>s3</celldesigner:complexSpecies> +<celldesigner:speciesIdentity> +<celldesigner:class>PROTEIN</celldesigner:class> +<celldesigner:proteinReference>pr1</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +</celldesigner:annotation> +</celldesigner:species> +</celldesigner:listOfIncludedSpecies> +<celldesigner:listOfCompartmentAliases/> +<celldesigner:listOfComplexSpeciesAliases> +<celldesigner:complexSpeciesAlias id="csa1" species="s1"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="130.0" y="102.0" w="100.0" h="120.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:backupSize w="0.0" h="0.0"/> +<celldesigner:backupView state="none"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="100.0" height="120.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:complexSpeciesAlias> +<celldesigner:complexSpeciesAlias id="csa2" species="s3"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="252.0" y="102.0" w="100.0" h="120.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:backupSize w="0.0" h="0.0"/> +<celldesigner:backupView state="none"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="100.0" height="120.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:complexSpeciesAlias> +</celldesigner:listOfComplexSpeciesAliases> +<celldesigner:listOfSpeciesAliases> +<celldesigner:speciesAlias id="sa1" species="s4" complexSpeciesAlias="csa2"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="263.0" y="124.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="11.0" y="22.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="0.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +</celldesigner:listOfSpeciesAliases> +<celldesigner:listOfGroups/> +<celldesigner:listOfProteins> +<celldesigner:protein id="pr1" name="s3" type="GENERIC"/> +</celldesigner:listOfProteins> +<celldesigner:listOfGenes/> +<celldesigner:listOfRNAs/> +<celldesigner:listOfAntisenseRNAs/> +<celldesigner:listOfLayers/> +<celldesigner:listOfBlockDiagrams/> +</celldesigner:extension> +</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> +<listOfSpecies> +<species metaid="s1" id="s1" name="s1" compartment="default" initialAmount="0"> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>COMPLEX</celldesigner:class> +<celldesigner:name>s1</celldesigner:name> +</celldesigner:speciesIdentity> +</celldesigner:extension> +</annotation> +</species> +<species metaid="s3" id="s3" name="s1" compartment="default" initialAmount="0"> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>COMPLEX</celldesigner:class> +<celldesigner:name>s1</celldesigner:name> +</celldesigner:speciesIdentity> +</celldesigner:extension> +<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="#s3"> +<bqmodel:is> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:pubmed:12345"/> +</rdf:Bag> +</bqmodel:is> +</rdf:Description> +</rdf:RDF> +</annotation> +</species> +</listOfSpecies> +</model> +</sbml>