Comments (12)
Irrespective, pubmed IDs don't need to be prefixed with pmid:
. This is done for ChEBI as it really is part of the identifier (here, CHEBI:17234), not because it would otherwise be a number-only. Also compare for instances ChEBI and KEGG compound on identifiers.org, pay attention to the identifier pattern.
from raven.
Perhaps then also start an issue at Cobra, because they do state that rxnReferences
and rxnNotes
are separate fields?
from raven.
Another consideration. If you look at the example from yeast consensus network, metabolite names are appended with [compartment]
in the cobrapy-version. This should not be done in this function, as it should represent how the model is presented in MATLAB.
from raven.
@edkerk sounds good! I will write the writeYaml
function. I assume we should continue the work on branch fix/export_functions
?
from raven.
Yups, I'll push devel to it, to ensure latest changes. (done: #80)
from raven.
A writeYaml function has been added in branch fix/export_functions: 23bb1f7
@BenjaSanchez a few points:
-
note where publications are stored: pubmed ids can be stored in
rxnMiriams
(aspmid
), while non-pubmed ids can be stored inrxnReferences
. Neither should be stored inrxnNotes
, this field is for generic notes -
note that not all fields are compulsory: if a model has
rxnMiriams
field, the function requires that is also hasec-codes
,rxnKEGG
andrxnNotes
, according to line 110:if ~isempty(model.eccodes{pos}) || ~isempty(model.rxnKEGG{pos}) || ~isempty(model.rxnNotes{pos})
fails if one of them doesn't exist.
from raven.
@edkerk RE the first point, this is because I was using a COBRA structure, which does not support rxnMiriams
, it can only store pmids
either in rxnReferences
or rxnNotes
(see here), and at the moment they are stored in rxnNotes
which get transfered to the same field by ravenCobraWrapper
. Should I move those fields in the yeast model then to rxnReferences
? In the case of a generic RAVEN model, there will not be any issue once we implement the generic extractMiriam
we discussed in Gitter.
RE the second point, that I can also address once we have the improved extractMiriam
from raven.
-
Looking at the specification of Cobra model that you linked, they also indeed be in
rxnReferences
, for both Cobra and Raven. Also, there it specifies thatrxnReferences
is "Column Cell Array of Strings" and "of references for each corresponding reaction.", so not necessarily pubmed IDs. -
You're right, an improved extractMiriam will probably change the code a bit anyway.
from raven.
actually now testing with COBRA not even rxnReferences
can be used to store things, as after a I/O cycle everything there gets transfered to rxnNotes
. So pmid's will continue to be stored in the yeast model in rxnNotes
with the format pmid:XXX; pmid:YYY
, and I will include in ravenCobraWrapper
a section for detecting these cases and sending them to rxnMiriams
from raven.
actually now testing with COBRA not even rxnReferences can be used to store things, as after a I/O cycle everything there gets transfered to rxnNotes. So pmid's will continue to be stored in the yeast model in rxnNoteswith the format pmid:XXX; pmid:YYY, and I will include in ravenCobraWrappera section for detecting these cases and sending them to rxnMiriams
Could you give me an example for this in the COBRA toolbox?
In general: PMIDs should (imo) be added via MIRIAM annotations. Pubmed is listed on registry.org and is parsed by the COBRA toolbox SBML parser into the rxnReferences
field, if it is correctly annotated (i.e. using the isDescribedBy
bioql qualifier).
We try to put into notes things that are either invalid IDs (as mentioned above, PMID1234
is not a valid Pubmed id, while 1234
is, so if an invalid PMID is provided, that is likely to go into the notes field, but not into rxnReferences during IO cycles.
from raven.
@tpfau thanks for that insight! now with only the id the field gets properly stored in rxnReferences
in a full cycle I/O. I've adapted the corresponding ravenCobraWrapper
in RAVEN (df918f5
) and the yeast model .xml
(68d5e8a
).
from raven.
As far as I know the yaml format from RAVEN and cobrapy are not identical.
- RAVEN does not yet output metadata (#311), while cobrapy does includes in the yaml file, although not necessarily all that is mentioned in #311.
- RAVEN gives list type field as array of string (#107), but cobrapy does not.
from raven.
Related Issues (20)
- The meaning of output parameters of FSEOF HOT 8
- help: randomSampling with human-GEM HOT 10
- changeGeneAssoc not work if all the gene already are in the model
- bug: on Apple silicon CPU getDiamond fails HOT 4
- Failed to make blastp executable HOT 4
- fix: addRxns definition of `rev` field
- chore: update tINIT references HOT 3
- solveLP() does not work because of issue in code HOT 6
- RAVEN >= v2.7.7 getModelFromHomology generates invalid GPRs from Recon3D HOT 3
- Error: ftINIT - failed to find good enough solution within time frame HOT 14
- help: getKEGGModelForOrganism gives error when using dispEM HOT 1
- bug: RAVEN 2.8.2 checkInstallation on new install
- bug: model loaded from YAML has no c-field
- bug: soplex reported failure, even when functional
- SBO terms not exported properly to Excel format when they are within MIRIAM annotations HOT 5
- Can fast tINIT integrate data from bulk RNA-seq? HOT 8
- Unrecognized field name "compNames" with ravenCobraWrapper error
- bug: make binaries executable on Ubuntu
- bug: simplifyModel with irreversible backwards-only reactions
- Error in getModelFromHomology function HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from raven.