ecoli.processes.rna_degradation
RNA Degradation
Mathematical formulations
dr/dt = Kb - kcatEndoRNase * EndoRNase * r/Km / (1 + Sum(r/Km))
where
r = RNA counts
Kb = RNA production given a RNAP synthesis rate
kcatEndoRNase = enzymatic activity for EndoRNases
Km = Michaelis-Menten constants fitted to recapitulate first-order
RNA decay:
kd * r = kcatEndoRNase * EndoRNase * r/Km / (1 + sum(r/Km))
This sub-model encodes molecular simulation of RNA degradation as two main steps guided by RNases, “endonucleolytic cleavage” and “exonucleolytic digestion”:
Compute total counts of RNA to be degraded (D) and total capacity for endo-cleavage (C) at each time point
Evaluate C and D. If C > D, then define a fraction of active endoRNases
Dissect RNA degraded into different species (mRNA, tRNA, and rRNA) by accounting endoRNases specificity
Update RNA fragments (assumption: fragments are represented as a pool of nucleotides) created because of endonucleolytic cleavage
Compute total capacity of exoRNases and determine fraction of nucleotides that can be digested
Update pool of metabolites (H and H2O) created because of exonucleolytic digestion
- class ecoli.processes.rna_degradation.RnaDegradation(parameters=None)[source]
Bases:
PartitionedProcess
RNA Degradation PartitionedProcess
- _calculate_total_n_to_degrade(timestep, specificity, total_kcat_endornase)[source]
Calculate the total number of RNAs to degrade for a specific class of RNAs, based on the specificity of endoRNases on that specific class and the total kcat value of the endoRNases.
- Parameters:
specificity – Sum of fraction of active endoRNases for all RNAs in a given class
total_kcat_endornase – The summed kcat of all existing endoRNases
- Returns:
Total number of RNAs to degrade for the given class of RNAs
- _get_rnas_to_degrade(n_total_rnas_to_degrade, rna_deg_probs, rna_counts)[source]
Distributes the total count of RNAs to degrade for each class of RNAs into individual RNAs, based on the given degradation probabilities of individual RNAs. The upper bound is set by the current count of the specific RNA.
- Parameters:
n_total_rnas_to_degrade – Total number of RNAs to degrade for the given class of RNAs (integer, scalar)
rna_deg_probs – Degradation probabilities of each RNA (vector of equal length to the total number of different RNAs)
rna_counts – Current counts of each RNA molecule (vector of equal length to the total number of different RNAs)
- Returns:
Vector of equal length to rna_counts, specifying the number of molecules to degrade for each RNA
-
defaults: Dict[str, Any]
{ 'Kcat_endoRNases': array([], dtype=object), 'Kms': array([], dtype=object), 'all_rna_ids': [], 'cell_density': 1100.0 [g/L], 'charged_trna_names': [], 'cistron_ids': [], 'cistron_tu_mapping_matrix': [], 'degrade_misc': False, 'emit_unique': False, 'endoRNase_ids': [], 'exoRNase_ids': [], 'is_mRNA': array([], dtype=float64), 'is_miscRNA': array([], dtype=float64), 'is_rRNA': array([], dtype=float64), 'is_tRNA': array([], dtype=float64), 'kcat_exoRNase': array([], dtype=object), 'mature_rna_cistron_indexes': [], 'mature_rna_ids': [], 'n_avogadro': 0.0, 'n_total_RNAs': 0, 'nmp_ids': [], 'nt_counts': array([], shape=(1, 0), dtype=float64), 'polymerized_ntp_ids': [], 'ppi_id': 'ppi', 'proton_id': 'h+', 'ribosome30S': 'ribosome30S', 'ribosome50S': 'ribosome50S', 'rna_deg_rates': [], 'rna_ids': [], 'rna_lengths': array([], dtype=float64), 'rrfa_idx': 0, 'rrla_idx': 0, 'rrsa_idx': 0, 'seed': 0, 'uncharged_trna_indexes': [], 'water_id': 'h2o'}
- name = 'ecoli-rna-degradation'
-
topology
{ 'RNAs': ('unique', 'RNA'), 'active_ribosome': ('unique', 'active_ribosome'), 'bulk': ('bulk',), 'listeners': ('listeners',), 'timestep': ('timestep',)}