ModelPolisher icon indicating copy to clipboard operation
ModelPolisher copied to clipboard

MetaNetX annotations not added properly

Open NantiaL opened this issue 3 years ago • 8 comments

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>

NantiaL avatar May 03 '22 11:05 NantiaL

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

matthiaskoenig avatar May 03 '22 12:05 matthiaskoenig

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.

Schmoho avatar May 03 '22 15:05 Schmoho

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.

matthiaskoenig avatar May 03 '22 15:05 matthiaskoenig

@NantiaL I'll close this for now then

Schmoho avatar May 03 '22 15:05 Schmoho

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

matthiaskoenig avatar May 03 '22 15:05 matthiaskoenig

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

see here

Schmoho avatar May 03 '22 17:05 Schmoho

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

matthiaskoenig avatar May 04 '22 08:05 matthiaskoenig

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.

  • Problem 1: Most of the MetaNetX identifiers from the BiGG database seem to be deprecated.
  • Problem 2: Either AnnotateDB or the BiGG database contains for some entries two MetaNetX identifiers from which one is added as URI to the model while for the other only the identifier is added to the annotations.

GwennyGit avatar Nov 11 '22 13:11 GwennyGit