klamt-lab / straindesign

StrainDesign is a python package for the computational design of metabolic networks and based on COBRApy
Apache License 2.0
36 stars 6 forks source link

Stucked in preprocessing #11

Closed cjavier98 closed 1 year ago

cjavier98 commented 1 year ago

I am tryng to compute the gene KOs for a large network, Human-GEM, but it is stucked in preprocessing. Is this normal?

Strain design computation progress: Preparing strain design computation. Using gurobi for solving LPs during preprocessing. Removing reaction bounds when larger than the cobra-threshold of 1000. FVA to identify blocked reactions and irreversibilities. FVA(s) to identify essential reactions. Preprocessing GPR rules (2897 genes, 8091 gpr rules).

VonAlphaBisZulu commented 1 year ago

Yes, this is - unfortunately - normal. The problem is that GPR rules are often extremely large. As an example, look at ATPase from Recon3D. This reaction has plenty of genes associated with it and a GPR term with over to 600 disjuctions. For the computation of gene-KOs, all genes and GPR-terms need to be integrated in the stoichiometric network structure. In extreme cases this adds tens of thousands of metabolites and reactions. You can check how large the resulting model gets if you use the standalone-GPR-integraton on your model first. For Recon3D my network went up to 20,000 reactions and 10,000 metabolites and that can be too large for network compression and MILP construction. If you give it more time, it might get past the preprocessing point, but I think it will fail in network compression.

You might be able to simplify or remove GPR terms that are irrelevant to your computation before going into strain design. For an example, take a look at the genome scale strain design chapter.

Lastly, keep in mind that straindesign requires your GPR rules to be in the disjunctive normal form. This is the case for most curated metabolic models, but you want to verify it for your case and translate to DNF if necessary.

cjavier98 commented 1 year ago

Thank you very much Phillipp. I will try some of your advices!