ecoli.processes.metabolism_redux

MetabolismRedux

class ecoli.processes.metabolism_redux.FlowResult(velocities, dm_dt, exchanges, maintenance_flux, objective)[source]

Bases: object

Reaction velocities and dm/dt for an FBA solution, with metrics.

Parameters:
dm_dt: Iterable[float]
exchanges: Iterable[float]
maintenance_flux: float
objective: float
velocities: Iterable[float]
class ecoli.processes.metabolism_redux.MetabolismRedux(parameters)[source]

Bases: Step

concentrationToCounts(concs)[source]
defaults: Dict[str, Any]
{   'aa_exchange_names': [],
    'aa_targets_not_updated': set(),
    'amino_acid_ids': {},
    'avogadro': 6.02214076e+23 [1/mol],
    'base_reaction_ids': [],
    'cell_density': 1100.0 [g/L],
    'cell_dry_mass_fraction': 0.3,
    'concentration_updates': None,
    'constraints_to_disable': [],
    'dark_atp': 33.565052868380675 [mmol/g],
    'doubling_time': 44.0 [min],
    'exchange_data_from_media': <function MetabolismRedux.<lambda> at 0x7f7d76cc5260>,
    'exchange_molecules': [],
    'fba_reaction_ids_to_base_reaction_ids': [],
    'get_biomass_as_concentrations': <function MetabolismRedux.<lambda> at 0x7f7d76cc5120>,
    'get_masses': <function MetabolismRedux.<lambda> at 0x7f7d76cc5300>,
    'get_ppGpp_conc': <function MetabolismRedux.<lambda> at 0x7f7d76cc51c0>,
    'import_constraint_threshold': 0,
    'imports': {},
    'include_ppgpp': False,
    'kinetic_objective_weight': 1e-07,
    'kinetic_objective_weight_in_range': 1e-10,
    'kinetic_rates': [],
    'linked_metabolites': None,
    'maintenance_reaction': {},
    'mechanistic_aa_transport': False,
    'media_id': 'minimal',
    'non_growth_associated_maintenance': 8.39 [mmol/g.h],
    'nutrient_to_doubling_time': {},
    'ppgpp_id': 'ppgpp',
    'reaction_catalysts': {},
    'removed_aa_uptake': [],
    'secretion_penalty_coeff': 0.001,
    'seed': 0,
    'stoich_dict': {},
    'time_step': 1,
    'use_trna_charging': False}
getBiomassAsConcentrations(doubling_time, rp_ratio=None)[source]

Caches the result of the sim_data function to improve performance since function requires computation but won’t change for a given doubling_time.

Parameters:
  • doubling_time (Unum) – doubling time of the cell to get the metabolite concentrations for

  • rp_ratio (float) –

Returns:

Mapping from metabolite IDs to concentration targets

Return type:

dict[str, Unum]

name = 'ecoli-metabolism-redux'
next_update(timestep, states)[source]
ports_schema()[source]
topology
{   'boundary': ('boundary',),
    'bulk': ('bulk',),
    'bulk_total': ('bulk',),
    'environment': {'_path': ('environment',), 'exchange': ('exchange',)},
    'global_time': ('global_time',),
    'listeners': ('listeners',),
    'next_update_time': ('next_update_time', 'metabolism'),
    'polypeptide_elongation': ('process_state', 'polypeptide_elongation'),
    'timestep': ('timestep',)}
update_amino_acid_targets(counts_to_molar, count_diff, amino_acid_counts)[source]

Finds new amino acid concentration targets based on difference in supply and number of amino acids used in polypeptide_elongation. Skips updates to molecules defined in self.aa_targets_not_updated: - L-SELENOCYSTEINE: rare AA that led to high variability when updated

Parameters:
  • counts_to_molar (Unum) – conversion from counts to molar

  • count_diff (dict[str, float]) –

  • amino_acid_counts (ndarray[float]) –

Returns:

{AA name (str): new target AA conc (float with mol/volume units)}

Return type:

dict[str, Unum]

update_condition(timestep, states)[source]

See update_condition().

class ecoli.processes.metabolism_redux.NetworkFlowModel(stoich_arr, metabolites, reactions, homeostatic_metabolites, kinetic_reactions, get_mass, gam=0, active_constraints_mask=None)[source]

Bases: object

A network flow model for estimating fluxes in the metabolic network based on network structure. Flow is mainly driven by precursor demand (homeostatic objective) and availability of nutrients.

Parameters:
set_up_exchanges(exchanges, uptakes)[source]

Set up exchange reactions for the network flow model. Exchanges allow certain metabolites to have flow out of the system. Uptakes allow certain metabolites to also have flow into the system.

Parameters:
solve(homeostatic_concs=None, homeostatic_dm_targets=None, ngam_target=0, kinetic_targets=None, binary_kinetic_idx=None, objective_weights=None, aa_uptake_package=None, upper_flux_bound=100, solver=cvxpy.GLOP)[source]

Solve the network flow model for fluxes and dm/dt values.

Parameters:
Return type:

FlowResult