LCSB-BioCore / COBREXA.jl

Constraint-Based Reconstruction and EXascale Analysis
https://lcsb-biocore.github.io/COBREXA.jl/
Apache License 2.0
43 stars 9 forks source link

tINIT algorithm #678

Open mihai-sysbio opened 2 years ago

mihai-sysbio commented 2 years ago

Target functionality

tINIT is an (umbrella name for an) algorithm that obtains a subset of a genome-scale metabolic model based on the gene expression (typically in healthy/diseased bulk tissue samples) by relying on the gene-reaction rules and the reactions that are know to have to carry flux.

A guide on the method and its variants is described in the Human-GEM guide.

Desired output

A function that can apply tINIT, which may require an abstraction of reactions as metabolic tasks.

Optional: Suggestions for implementation

The original implementation is described in Identification of anticancer drugs for hepatocellular carcinoma through personalized genome-scale metabolic modeling. This was later improved in An atlas of human metabolism. More recently, a faster version was implemented in Generation and analysis of context-specific genome-scale metabolic models derived from single-cell RNA-Seq data.

node: tagging here @JonathanRob, @johan-gson, @haowang-bioinfo and @edkerk.

johan-gson commented 2 years ago

I recommend going for ftINIT in that case, although it is much more code.

exaexa commented 2 years ago

Hi all! thanks for the links to the papers, this is very helpful. I'll have to carefully read the methods to be able to guess the size of the implementation, but from a quick look it doesn't seem that complicated.

Suggestions on metabolic task representations are very welcome.

Some questions:

mihai-sysbio commented 2 years ago
  • How "complete" is the description of the tasks in supplementary 7 XLS in the tINIT (anticancer drugs) paper?

A (much) more updated list of metabolic tasks that apply to Human-GEM is here.

Here is the more updated implementation getINITModel2.

johan-gson commented 2 years ago

The ftINIT algorithm available in RAVEN is somewhat well commented in the code. But it is more complex than the previous method, but much faster and also more accurate for large models. If there is something you don't understand about it, just reach out to me and I can help explain. But you should more or less be able to copy the code, right, just convert it from Matlab, which should be somewhat similar? I have only implemented support for Gurobi in RAVEN for solving the MILP.

johan-gson commented 2 years ago

I also recommend the supplementary note in the preprint. It is not perfect though - the code has changed a bit since and we have not yet updated the preprint. The paper is currently under consideration by a journal.

johan-gson commented 2 years ago

The test cases for ftINIT in RAVEN should also be useful - mostly automated unit tests

exaexa commented 2 years ago

Perfect, thank you both! I guess this should be more than sufficient :]