draeger-lab / ModelPolisher

ModelPolisher accesses the BiGG Models knowledgebase to annotate SBML models.
MIT License
23 stars 7 forks source link

MetaNetX annotations not added properly #106

Open NantiaL opened 2 years ago

NantiaL commented 2 years ago

When reading a model created with ModelPolisher with COBRApy, a series of warnings appear pointed to the fact that the MetaNetX annotations are not added in the desired form using identifiers.org. The following is an example of such a warning for the MetaNetX ID MNXR98569:

MNXR98569 does not conform to 'http(s)://identifiers.org/collection/id' or'http(s)://identifiers.org/COLLECTION:id

Here is the annotation entry of the .XML file:

<bqbiol:is>
    <rdf:Bag>
          <rdf:li rdf:resource="MNXR98569" />
          <rdf:li rdf:resource="https://identifiers.org/bigg.reaction/EX_glc__D_e" />
          <rdf:li rdf:resource="https://identifiers.org/biocyc/META:TRANS-RXN0-574" />
          <rdf:li rdf:resource="https://identifiers.org/metanetx.reaction/MNXR100188" />
          <rdf:li rdf:resource="https://identifiers.org/seed.reaction/rxn08617" />
          <rdf:li rdf:resource="https://identifiers.org/seed.reaction/rxn09679" />
          <rdf:li rdf:resource="https://identifiers.org/seed.reaction/rxn09875" />
   </rdf:Bag>
 </bqbiol:is>
matthiaskoenig commented 2 years ago

Yes, this is a bug. The correct prefixes are

https://registry.identifiers.org/registry/metanetx.chemical https://identifiers.org/metanetx.chemical https://registry.identifiers.org/registry/metanetx.reaction https://identifiers.org/metanetx.reaction https://registry.identifiers.org/registry/metanetx.compartment https://identifiers.org/metanetx.compartment

Schmoho commented 2 years ago

If I am not mistaken the ModelPolisher just draws this from AnnotateDB, right? See here: this is called via

BiGGAnnotation::annotateSpecies
BiGGAnnotation::annotateListOfSpecies
BiGGAnnotation::annotate(Model)
BiGGAnnotation::annotate(SBMLDocument)
ModelPolisher::polish(SBMLDocument ...)

If so, and this is basically an upstream bug, it does not really seem sensible to me to try and fix it in the Polisher. I'd be happy to help fix it in AnnotateDB though.

matthiaskoenig commented 2 years ago

Thanks. So this is most likely my bug in the annotation database :/ Just opened an issue https://github.com/matthiaskoenig/annotatedb/issues/42 I wanted to make an update of the database in the next few days and can fix this as part of it.

Schmoho commented 2 years ago

@NantiaL I'll close this for now then

matthiaskoenig commented 2 years ago

Keep it open until it is fixed upstream, so other users can find it

Schmoho commented 2 years ago

I just realized this is also an issue with the data in BiGG too, so this issue is very much unresolved anyways.

see here

matthiaskoenig commented 2 years ago

I can normalize this in annotatedb, i.e. add the prefixes.

GwennyGit commented 1 year ago
Update for the problem described in issue #103 As I described before I got COBRApy warnings for my model created with CarveMe after ModelPolisher was used. These warnings were like stated above due to 165 MetaNetX identifiers being not properly added to the annotations. After taking a closer look at some of these identifiers I realised - as stated in issue #103 - that two MetaNetX identifiers were added by ModelPolisher. Today, I analysed the first 20 MetaNetX identifiers. So far I encountered four cases A to D. In each case the incorrectly added MetaNetX identifier could be removed (see Table). Case A: Searching the improper added MetaNetX identifier in the MetaNetX database yielded an identifier that was already present and fits to the other specified database identifiers. Case B: Searching the improper added MetaNetX identifier in the MetaNetX database yielded the same identifier as is found with the properly added MetaNetX identifier. Case C: Searching the improper added MetaNetX identifier in the MetaNetX database shows that it does not conform with any of the other specified database identifiers. Case D: Searching the improper added MetaNetX identifier in the MetaNetX database yielded more than one result of which at least one yielded the same identifier as is found with the properly added MetaNetX identifier. This case contains four different scenarios so far. Either only one of the non-overlapping MetaNetX identifiers (D0) or all MetaNetX identifiers found with the improper added identifier (D1) or only the overlapping MetaNetX identifiers (D2) conform(s) to the other specified database identifiers. Subcase D3 is a combination of subcases D0 and D2. Case MetaNetX ID Notes Status
A MNXR98054 Searching in MetaNetX yielded: MNXR94968, which is already present Removed
B MNXR98057 Searching in MetaNetX yielded: MNXR190466,
https://identifiers.org/metanetx.reaction/MNXR94983 also leads to: MNXR190466
Removed &
Replaced ID in link with MNXR190466
C MNXR98064 Searching in MetaNetX yielded: MNXR137954, does not conform with specified BiGG ID! Removed
D0 MNXR98195 Searching in MetaNetX yielded: MNXR152734 & MNXR152735,
https://identifiers.org/metanetx.reaction/MNXR95190 also leads to: MNXR152734,
Only MNXR152735 fits to specified BiGG & SEED IDs!
Removed &
Replaced ID in link with MNXR152735
D1 MNXR98220 Searching in MetaNetX yielded: MNXR190115 & MNXR152783,
https://identifiers.org/metanetx.reaction/MNXR95292 also leads to: MNXR152783,
Both IDs fit to most of the other database IDs
Replaced with https://identifiers.org/metanetx.reaction/MNXR190115 &
Replaced ID in this link with MNXR152783 &
Put both identifiers close to each other
D2 MNXR98974 Searching in MetaNetX yielded: MNXR151498 & MNXR151499,
https://identifiers.org/metanetx.reaction/MNXR131128 also leads to: MNXR151498,
Only MNXR151498 fits to all other database IDs!
Removed &
Replaced ID in link with MNXR151498
D3 MNXR98492 Searching in MetaNetX yielded: MNXR153613, MNXR153614, MNXR192550 & MNXR192551,
https://identifiers.org/metanetx.reaction/MNXR99663 also leads to: MNXR153613,
Only MNXR153613 & MNXR192550 fit to most of the other database IDs!
Replaced with https://identifiers.org/metanetx.reaction/MNXR153613 &
Replaced ID in this link with MNXR192550 &
Put both identifiers close to each other

Update on this problem: After I resolved all 165 improper added MetaNetX identifiers by hand I came to the conclusion that the underlying problem can be divided into two sub-problems.