In [1]:
import pandas
from time import time
import cobra.test
from cobra.flux_analysis import \
single_gene_deletion, single_reaction_deletion, \
double_gene_deletion, double_reaction_deletion
cobra_model = cobra.test.create_test_model("textbook")
ecoli_model = cobra.test.create_test_model("ecoli")
Perform all single gene deletions on a model
In [2]:
growth_rates, statuses = single_gene_deletion(cobra_model)
These can also be done for only a subset of genes
In [3]:
gr, st = single_gene_deletion(cobra_model,
cobra_model.genes[:20])
pandas.DataFrame.from_dict({"growth_rates": gr,
"status": st})
Out[3]:
This can also be done for reactions
In [4]:
gr, st = single_reaction_deletion(cobra_model,
cobra_model.reactions[:20])
pandas.DataFrame.from_dict({"growth_rates": gr,
"status": st})
Out[4]:
In [5]:
double_gene_deletion(cobra_model, cobra_model.genes[-5:],
return_frame=True)
Out[5]:
By default, the double deletion function will automatically use multiprocessing, splitting the task over up to 4 cores if they are available. The number of cores can be manually sepcified as well. Setting use of a single core will disable use of the multiprocessing library, which often aids debuggging.
In [6]:
start = time() # start timer()
double_gene_deletion(ecoli_model, ecoli_model.genes[:200],
number_of_processes=2)
t1 = time() - start
print("Double gene deletions for 200 genes completed in "
"%.2f sec with 2 cores" % t1)
start = time() # start timer()
double_gene_deletion(ecoli_model, ecoli_model.genes[:200],
number_of_processes=1)
t2 = time() - start
print("Double gene deletions for 200 genes completed in "
"%.2f sec with 1 core" % t2)
print("Speedup of %.2fx" % (t2 / t1))
Double deletions can also be run for reactions
In [7]:
double_reaction_deletion(cobra_model,
cobra_model.reactions[2:7],
return_frame=True)
Out[7]: