E. coli core model with fixed module reactionsΒΆ

Generate and Analyze Results for the ecoli_core_fixed_module_reactions Problem

Generate and Analyze Results for the ecoli_core_fixed_module_reactions Problem

Parse input

modcell_path = fileparts(which('initModCell2.m'));
input_info.problem_path = fullfile(modcell_path,'problems','ecoli-core-trinh-fixed-modules');
prodnet = Prodnet(input_info);
LP solver set as : glpk Set cobra solver to glpk... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + Creating production networks + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Production network for: ETH Heterologus metabolite info was not provided Adding heterologus reactions and specifying fixed module reactions/genes... parent model does not contain gene information parent model does not contain gene information Reaction name for FEM4 not specified, usign id Reaction name for FEM9 not specified, usign id Model does not contain enough information to check mass and charge balance of heterologus reactions +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Production network for: PRO Heterologus metabolite info was not provided Adding heterologus reactions and specifying fixed module reactions/genes... Reaction name for PRO1r not specified, usign id
Warning: Metabolite LAD not in model - added to the model
Warning: Metabolite name for LAD set to LAD
Reaction name for PRO2r not specified, usign id
Warning: Metabolite P12D not in model - added to the model
Warning: Metabolite name for P12D set to P12D
Reaction name for PRO3 not specified, usign id
Warning: Metabolite PROPANAL not in model - added to the model
Warning: Metabolite name for PROPANAL set to PROPANAL
Reaction name for PRO4 not specified, usign id
Warning: Metabolite PRO not in model - added to the model
Warning: Metabolite name for PRO set to PRO
Reaction name for EX_PRO not specified, usign id Reaction name for FEM4 not specified, usign id Model does not contain enough information to check mass and charge balance of heterologus reactions +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Production network for: IPRO Heterologus metabolite info was not provided Adding heterologus reactions and specifying fixed module reactions/genes...
Warning: Metabolite AACE not in model - added to the model
Warning: Metabolite name for AACE set to AACE
Warning: Metabolite ACT not in model - added to the model
Warning: Metabolite name for ACT set to ACT
Warning: Metabolite IPRO not in model - added to the model
Warning: Metabolite name for IPRO set to IPRO
Reaction name for EX_IPRO not specified, usign id Model does not contain enough information to check mass and charge balance of heterologus reactions +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Production network for: BUT Heterologus metabolite info was not provided Adding heterologus reactions and specifying fixed module reactions/genes... Reaction name for BUT1 not specified, usign id Reaction name for BUT2 not specified, usign id Reaction name for BUT3 not specified, usign id Reaction name for BUT4 not specified, usign id Reaction name for BUT5 not specified, usign id Reaction name for BUT6 not specified, usign id Reaction name for FEM4 not specified, usign id Reaction name for EX_BUT not specified, usign id Model does not contain enough information to check mass and charge balance of heterologus reactions +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Production network for: IBUT Heterologus metabolite info was not provided Adding heterologus reactions and specifying fixed module reactions/genes... parent model does not contain gene information parent model does not contain gene information Reaction name for IBUT1 not specified, usign id
Warning: Metabolite ACELAC not in model - added to the model
Warning: Metabolite name for ACELAC set to ACELAC
Reaction name for IBUT2 not specified, usign id
Warning: Metabolite DHIV not in model - added to the model
Warning: Metabolite name for DHIV set to DHIV
Reaction name for IBUT3 not specified, usign id
Warning: Metabolite OIV not in model - added to the model
Warning: Metabolite name for OIV set to OIV
Reaction name for IBUT4 not specified, usign id
Warning: Metabolite IBUTANAL not in model - added to the model
Warning: Metabolite name for IBUTANAL set to IBUTANAL
Reaction name for IBUT5 not specified, usign id
Warning: Metabolite IBUT not in model - added to the model
Warning: Metabolite name for IBUT set to IBUT
Reaction name for EX_IBUT not specified, usign id Model does not contain enough information to check mass and charge balance of heterologus reactions +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Production network for: ETHBUT Heterologus metabolite info was not provided Adding heterologus reactions and specifying fixed module reactions/genes... parent model does not contain gene information Reaction name for BUT1 not specified, usign id Reaction name for BUT2 not specified, usign id Reaction name for BUT3 not specified, usign id Reaction name for BUT4 not specified, usign id Reaction name for ETHBUT1 not specified, usign id
Warning: Metabolite ETHBUT not in model - added to the model
Warning: Metabolite name for ETHBUT set to ETHBUT
Reaction name for FEM4 not specified, usign id Reaction name for FEM9 not specified, usign id Reaction name for EX_ETHBUT not specified, usign id Model does not contain enough information to check mass and charge balance of heterologus reactions +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Production network for: PROBUT Heterologus metabolite info was not provided Adding heterologus reactions and specifying fixed module reactions/genes... Reaction name for BUT1 not specified, usign id Reaction name for BUT2 not specified, usign id Reaction name for BUT3 not specified, usign id Reaction name for BUT4 not specified, usign id Reaction name for PRO1r not specified, usign id
Warning: Metabolite LAD not in model - added to the model
Warning: Metabolite name for LAD set to LAD
Reaction name for PRO2r not specified, usign id
Warning: Metabolite P12D not in model - added to the model
Warning: Metabolite name for P12D set to P12D
Reaction name for PRO3 not specified, usign id
Warning: Metabolite PROPANAL not in model - added to the model
Warning: Metabolite name for PROPANAL set to PROPANAL
Reaction name for PRO4 not specified, usign id
Warning: Metabolite PRO not in model - added to the model
Warning: Metabolite name for PRO set to PRO
Reaction name for PROBUT1 not specified, usign id
Warning: Metabolite PROBUT not in model - added to the model
Warning: Metabolite name for PROBUT set to PROBUT
Reaction name for EX_PROBUT not specified, usign id Reaction name for FEM4 not specified, usign id Model does not contain enough information to check mass and charge balance of heterologus reactions +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Production network for: IPROBUT Heterologus metabolite info was not provided Adding heterologus reactions and specifying fixed module reactions/genes... Reaction name for BUT1 not specified, usign id Reaction name for BUT2 not specified, usign id Reaction name for BUT3 not specified, usign id Reaction name for BUT4 not specified, usign id Reaction name for IPRO1 not specified, usign id
Warning: Model already has the same reaction you tried to add: BUT1
Reaction IPRO1 was already in parent model Reaction name for IPRO2 not specified, usign id
Warning: Metabolite AACE not in model - added to the model
Warning: Metabolite name for AACE set to AACE
Reaction name for IPRO3 not specified, usign id
Warning: Metabolite ACT not in model - added to the model
Warning: Metabolite name for ACT set to ACT
Reaction name for IPRO4 not specified, usign id
Warning: Metabolite IPRO not in model - added to the model
Warning: Metabolite name for IPRO set to IPRO
Reaction name for IPROBUT1 not specified, usign id
Warning: Metabolite IPROBUT not in model - added to the model
Warning: Metabolite name for IPROBUT set to IPROBUT
Reaction name for EX_IPROBUT not specified, usign id Model does not contain enough information to check mass and charge balance of heterologus reactions +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Production network for: BUTBUT Heterologus metabolite info was not provided Adding heterologus reactions and specifying fixed module reactions/genes... Reaction name for BUT1 not specified, usign id Reaction name for BUT2 not specified, usign id Reaction name for BUT3 not specified, usign id Reaction name for BUT4 not specified, usign id Reaction name for BUT5 not specified, usign id Reaction name for BUT6 not specified, usign id Reaction name for BUTBUT1 not specified, usign id
Warning: Metabolite BUTBUT not in model - added to the model
Warning: Metabolite name for BUTBUT set to BUTBUT
Reaction name for FEM4 not specified, usign id Reaction name for EX_BUTBUT not specified, usign id Model does not contain enough information to check mass and charge balance of heterologus reactions +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- Production network for: IBUTBUT Heterologus metabolite info was not provided Adding heterologus reactions and specifying fixed module reactions/genes... parent model does not contain gene information parent model does not contain gene information Reaction name for BUT1 not specified, usign id Reaction name for BUT2 not specified, usign id Reaction name for BUT3 not specified, usign id Reaction name for BUT4 not specified, usign id Reaction name for IBUT1 not specified, usign id
Warning: Metabolite ACELAC not in model - added to the model
Warning: Metabolite name for ACELAC set to ACELAC
Reaction name for IBUT2 not specified, usign id
Warning: Metabolite DHIV not in model - added to the model
Warning: Metabolite name for DHIV set to DHIV
Reaction name for IBUT3 not specified, usign id
Warning: Metabolite OIV not in model - added to the model
Warning: Metabolite name for OIV set to OIV
Reaction name for IBUT4 not specified, usign id
Warning: Metabolite IBUTANAL not in model - added to the model
Warning: Metabolite name for IBUTANAL set to IBUTANAL
Reaction name for IBUT5 not specified, usign id
Warning: Metabolite IBUT not in model - added to the model
Warning: Metabolite name for IBUT set to IBUT
Reaction name for IBUTBUT1 not specified, usign id
Warning: Metabolite IBUTBUT not in model - added to the model
Warning: Metabolite name for IBUTBUT set to IBUTBUT
Reaction name for EX_IBUTBUT not specified, usign id Model does not contain enough information to check mass and charge balance of heterologus reactions +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + Finding candidate reactions and genes for deletion + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Model does not contain subsystem information Model lacks field metFormulas, carbon number criterion not used Model does not contain GPR information allow_transport_reaction_deletions was not specified metabolite_transport_allowed information not provided Calculating blocked reactions in all production networks with heterologus reactions(10/10).... Calculating blocked reactions in all production networks for non-growth state with heterologus reactions(10/10).... Calculating essential reactions... Calculating fully correlated reaction sets... Model does not contain gene related information +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + Done + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
prodnet.save();
File saved at: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\prodnet.mat

Design modular cells

prodnet.set_deletion_type('reactions');
de = MCdesign(prodnet);
% change default ga parameters:
de.ga_parameters.stall_generations = 500;
de.ga_parameters.population_size = 200;
design_parameters.objective = 'sGCP';
design_parameters.max_deletions = 5;
design_parameters.max_module = 0 .* ones(prodnet.n_prod,1);
de.solve_mop(design_parameters);
0/8 solutions violate deletion constraints File saved at: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\output\all\sGCP-5-0-ps200tg502.mat Starting parallel pool (parpool) using the 'local' profile ... connected to 4 workers. 0/9 solutions violate deletion constraints File saved at: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\output\all\sGCP-5-0-ps200tg1004.mat Checking domination A(mop_solution), B(mop_solution_old),... 8/8 unique in A 8/8 unique in B Both inputs have the same unique elements, but domination may still occur because the objectives are round to 6 significant decimals 0 A dominated. 0 B dominated Problem terminated, reason: No new non-dominated solutions found Total run time 34.26 (min), total generations 1004 Final solution saved at: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\output\sGCP-5-0.mat

Find indices of designs matching the first paper:

mc = [];
mc(1).rxns = {'TRA2','TRA5','FEM3','FEM5','PPP1','OPM4r','TRA1'};
mc(2).rxns = {'TRA2','TCA5','GLB2','FEM3','FEM2','PPP1'};
mc(3).rxns = {'FEM5','TRA2','TRA4','TRA6','TRA5'};
% First see if the first design appeared in the solution space:
mop_solution = prodnet.load_mop_solution('sGCP-5-0');
prodnet.set_deletion_type('reactions')
for i =1:3
prodnet.set_deleted_variables(mc(i).rxns)
mc(i).obj = prodnet.calc_design_objectives('sGCP')';
mc(i).obj_ind_in_sol = find(ismembertol(mop_solution.design_objectives,mc(i).obj,'ByRows',true));
end

Enumerate alternative solutions:

(total number known from MIP solution):
mc(1).max_alt_sol = 3;
mc(2).max_alt_sol = 3;
mc(3).max_alt_sol = 1;
enum_parameters.solution_id = 'sGCP-5-0';
enum_parameters.max.deletions = design_parameters.max_deletions + 2; % This determines what number of deletions is considered feasible.
enum_parameters.max.module = design_parameters.max_module;
de.ga_parameters.stall_generations = 500;
de.ga_parameters.population_size = 200;
de.ga_parameters.use_parallel = 0;
for i =1:3
enum_parameters.target_ind = mc(i).obj_ind_in_sol;
enum_parameters.max_number_alt_solutions = mc(i).max_alt_sol;
de.enumerate_alternative_solutions(enum_parameters,1000)
end
File saved at: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\output\alternative_solutions\sGCP-5-0-5-3as.mat Total run time 2.44 (min) Final solution saved at: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\output\alternative_solutions\sGCP-5-0-5-3as.mat File saved at: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\output\alternative_solutions\sGCP-5-0-6-3as.mat Total run time 0.32 (min) Final solution saved at: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\output\alternative_solutions\sGCP-5-0-6-3as.mat File saved at: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\output\alternative_solutions\sGCP-5-0-2-1as.mat Total run time 0.00 (min) Final solution saved at: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\output\alternative_solutions\sGCP-5-0-2-1as.mat
prodnet.append_alternative_solutions('sGCP-5-0', {'sGCP-5-0-2-1as','sGCP-5-0-5-3as','sGCP-5-0-6-3as'})

Add one more reaction deletion

de = MCdesign(prodnet);
prodnet.set_deletion_type('reactions');
% change default ga parameters:
de.ga_parameters.stall_generations = 500;
de.ga_parameters.population_size = 200;
design_parameters.objective = 'sGCP';
design_parameters.max_deletions = 6;
design_parameters.max_module = 0 .* ones(prodnet.n_prod,1);
start_point_info.solution_id = 'sGCP-5-0';
start_point_info.problem_path = prodnet.problem_path;
de.solve_mop(design_parameters);
0/10 solutions violate deletion constraints File saved at: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\output\all\sGCP-6-0-ps200tg502.mat Starting parallel pool (parpool) using the 'local' profile ... connected to 4 workers. 0/11 solutions violate deletion constraints File saved at: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\output\all\sGCP-6-0-ps200tg1004.mat Checking domination A(mop_solution), B(mop_solution_old),... 5/5 unique in A 5/5 unique in B Both inputs have the same unique elements, but domination may still occur because the objectives are round to 6 significant decimals 0 A dominated. 0 B dominated Problem terminated, reason: No new non-dominated solutions found Total run time 34.74 (min), total generations 1004 Final solution saved at: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\output\sGCP-6-0.mat

Generate production phenotype figures:

ra = ResAnalysis(prodnet, {'sGCP-5-0','sGCP-5-0','sGCP-5-0'});
% ra.plot_pareto_front(); % This function produces an error in Matlab notebooks as of Matlab 2017b
ra.plot_yield_vs_growth([mc(:).obj_ind_in_sol], 'convHullLineWidthMut',3 ,'yticks_values',[0,0.6]);

Write mop output to excel:

ra = ResAnalysis(prodnet, {'sGCP-5-0_w_as','sGCP-6-0'});
ra.write_to_xls()
Prodnet state set to that of sGCP-5-0_w_as
Warning: Added specified worksheet.
Warning: Added specified worksheet.
Warning: Added specified worksheet.
Warning: Added specified worksheet.
Report tables written to: C:\Users\Sergio Garcia\Dropbox\modcell2-dev\problems\ecoli-core-trinh-fixed-modules\output\ecoli-core-trinh-fixed-modules_report.xlsx.xls