SysBioChalmers / GECKO

Toolbox for including enzyme constraints on a genome-scale model.
http://sysbiochalmers.github.io/GECKO/
MIT License
66 stars 51 forks source link

readDLKcatOutput reports non-matching metabolites #334

Closed HossFir closed 1 year ago

HossFir commented 1 year ago

I generated the new DLKcat.tsv using writeDLKcatInput(ecModel,[],[],[],[],true); and subsequently, runDLKcat();

It generated the new DLKcat.tsv with my organism information. However, I saw an error on the following line:

https://github.com/SysBioChalmers/GECKO/blob/63785559f6c7ebdb908386da92d56a034571c449/tutorials/full_ecModel/protocol.m#L145

It stated that Not all substrates from DLKcat output can be found in model.metNames. DLKcat was likely run with an input file that was generated from another ecModel.

I had no such error on the previous version 3.0.2.

edkerk commented 1 year ago

Version 3.1.0 has not seen any change in parsing metabolite names, and if anything should result in less metabolites by more thorough filtering of currency metabolites. Are you sure you have the right model file loaded, and direct to the right DLKcat.tsv file? I'll work on readDLKcatOutput giving a more complete error message, reporting the non-matching substrates,

For the moment you can get more information by running:

dbstop if error
kcatList_DLKcat = readDLKcatOutput(ecModel); 

and when the error is reported, run the following lines:

tmp = ismember(subs,model.metNames));
nonMatchingMets = subs(tmp);

Then, nonMatchingMets has the names of metabolites from DLKcat.tsv that cannot be found in model.metNames.