Generating, saving, loading models in PyFBA
by Daniel Cuevas
Introduction
In this notebook, we will present the steps to generate a genome-scale metabolic model from RAST annotations, save the model on your computer, and load the model from your computer.
The required files and information for this notebook:
- List of functional roles from RAST (normally labeled ‘assigned_functions’ from the Genome Directory download).
- Organism name
- Organism ID
- Directory on hard disk to store model
In [1]:
import sys
import os
import PyFBA
Generate model
The first step shows how to build the model from RAST functional roles.
In [2]:
model_functions_file = "data/citrobacter.assigned_functions"
org_name = "Citrobacter sedlakii"
org_id = "Citrobacter sedlakii"
In [3]:
model = PyFBA.model.roles_to_model(model_functions_file, org_id, org_name)
The model has been generated and is now ready to use for flux-balance analysis simulations.
Note: model should not grow because it has not been gap-filled
Note: model should not grow because it has not been gap-filled
In [4]:
# status := optimization status of FBA simplex solver
# flux_value := biomass flux value (objective function)
# growth := boolean whether the model was able to grow or not
# Note: model should not grow because it has not been gap-filled
status, flux_value, growth = model.run_fba("ArgonneLB.txt")
print("Growth:", growth)
Save model
The second step shows how to save the model to hard disk.
In [5]:
model_directory = "save_citrobacter_sedlakii"
PyFBA.model.save_model(model, model_directory)
Model has been stored. Here is a directory listing of the files that were created.
Note: files for gfmedia and gfreactions will be 0 Bytes in size because gap-filling was not performed.
Note: files for gfmedia and gfreactions will be 0 Bytes in size because gap-filling was not performed.
In [6]:
for f in os.listdir(model_directory):
fp = os.path.join(model_directory, f)
print(f, ": ", os.path.getsize(fp), "B", sep="")
Load model
The third step shows how to load the model from hard disk.
In [7]:
loaded_model = PyFBA.model.load_model(model_directory, org_name)
The model has been loaded and is ready for use in flux-balance analysis simulations.
Note: model should not grow because it has not been gap-filled
Note: model should not grow because it has not been gap-filled
In [8]:
# status := optimization status of FBA simplex solver
# flux_value := biomass flux value (objective function)
# growth := boolean whether the model was able to grow or not
# Note: model should not grow because it has not been gap-filled
status, flux_value, growth = loaded_model.run_fba("ArgonneLB.txt")
print("Growth:", growth)