ecoli.processes.transcript_initiation
Transcript Initiation
This process models the binding of RNA polymerase to each gene. The number of RNA polymerases to activate in each time step is determined such that the average fraction of RNA polymerases that are active throughout the simulation matches measured fractions, which are dependent on the cellular growth rate. This is done by assuming a steady state concentration of active RNA polymerases.
- class ecoli.processes.transcript_initiation.TranscriptInitiation(parameters=None)[source]
Bases:
PartitionedProcess
Transcript Initiation PartitionedProcess
Defaults:
fracActiveRnapDict (
dict
): Dictionary with keys corresponding to media, values being the fraction of active RNA Polymerase (RNAP) for that media.rnaLengths (
numpy.ndarray[int]
): lengths of RNAs for each transcription unit (TU), in nucleotidesrnaPolymeraseElongationRateDict (
dict
): Dictionary with keys corresponding to media, values being RNAP’s elongation rate in that media, in nucleotides/svariable_elongation (
bool
): Whether to add amplified elongation rates for rRNAs. False by default.make_elongation_rates (
func
): Function for making elongation rates (seemake_elongation_rates()
). Takes PRNG, basal elongation rate, timestep, andvariable_elongation
. Returns an array of elongation rates for all genes.active_rnap_footprint_size (
int
): Maximum physical footprint of RNAP in nucleotides to cap initiation probabilitiesbasal_prob (
numpy.ndarray[float]
): Baseline probability of synthesis for every TU.delta_prob (
dict
): Dictionary with four keys, used to create a matrix encoding the effect of transcription factors (TFs) on transcription probabilities:{'deltaV' (np.ndarray[float]): deltas associated with the effects of TFs on TUs, 'deltaI' (np.ndarray[int]): index of the affected TU for each delta, 'deltaJ' (np.ndarray[int]): index of the acting TF for each delta, 'shape' (tuple): (m, n) = (# of TUs, # of TFs)}
perturbations (
dict
): Dictionary of genetic perturbations (optional, can be empty)rna_data (
numpy.ndarray
): Structured array with an entry for each TU, where entries look like:(id, deg_rate, length (nucleotides), counts_AGCU, mw (molecular weight), is_mRNA, is_miscRNA, is_rRNA, is_tRNA, is_23S_rRNA, is_16S_rRNA, is_5S_rRNA, is_ribosomal_protein, is_RNAP, gene_id, Km_endoRNase, replication_coordinate, direction)
idx_rRNA (
numpy.ndarray[int]
): indexes of TUs corresponding to rRNAsidx_mRNA (
numpy.ndarray[int]
): indexes of TUs corresponding to mRNAsidx_tRNA (
numpy.ndarray[int]
): indexes of TUs corresponding to tRNAsidx_rprotein (
numpy.ndarray[int]
): indexes of TUs corresponding ribosomal proteinsidx_rnap (
numpy.ndarray[int]
): indexes of TU corresponding to RNAPrnaSynthProbFractions (
dict
): Dictionary where keys are media types, values are sub-dictionaries with keys ‘mRna’, ‘tRna’, ‘rRna’, and values being probabilities of synthesis for each RNA typernaSynthProbRProtein (
dict
): Dictionary where keys are media types, values are arrays storing the (fixed) probability of synthesis for each rProtein TU, under that media condition.rnaSynthProbRnaPolymerase (
dict
): Dictionary where keys are media types, values are arrays storing the (fixed) probability of synthesis for each RNAP TU, under that media condition.replication_coordinate (
numpy.ndarray[int]
): Array with chromosome coordinates for each TUtranscription_direction (
numpy.ndarray[bool]
): Array of transcription directions for each TUn_avogadro (
unum.Unum
): Avogadro’s number (constant)cell_density (
unum.Unum
): Density of cell (constant)ppgpp (
str
): id of ppGppinactive_RNAP (
str
): id of inactive RNAPsynth_prob (
Callable[[Unum, int], numpy.ndarrray[float]]
): Function used in model of ppGpp regulation (seesynth_prob_from_ppgpp()
). Takes ppGpp concentration (mol/volume) and copy number, returns normalized synthesis probability for each genecopy_number (
Callable[[Unum, int], numpy.ndarrray[float]]
): seeget_average_copy_number()
. Takes expected doubling time in minutes and chromosome coordinates of genes, returns average copy number of each gene expected at doubling timeppgpp_regulation (
bool
): Whether to include model of ppGpp regulationget_rnap_active_fraction_from_ppGpp (
Callable[[Unum], float]
): Returns elongation rate for a given ppGpp concentrationseed (
int
): random seed to initialize PRNG
- _calculateActivationProb(timestep, fracActiveRnap, rnaLengths, rnaPolymeraseElongationRates, synthProb)[source]
Calculate expected RNAP termination rate based on RNAP elongation rate - allTranscriptionTimes: Vector of times required to transcribe each transcript - allTranscriptionTimestepCounts: Vector of numbers of timesteps required to transcribe each transcript - averageTranscriptionTimeStepCounts: Average number of timesteps required to transcribe a transcript, weighted by synthesis probabilities of each transcript - expectedTerminationRate: Average number of terminations in one timestep for one transcript
- _rescale_initiation_probs(fixed_indexes, fixed_synth_probs, TU_index)[source]
Rescales the initiation probabilities of each promoter such that the total synthesis probabilities of certain types of RNAs are fixed to a predetermined value. For instance, if there are two copies of promoters for RNA A, whose synthesis probability should be fixed to 0.1, each promoter is given an initiation probability of 0.05.
-
defaults: Dict[str, Any]
{ 'active_rnap_foorprint_size': 1, 'active_rnap_footprint_size': 24 [nucleotide], 'attenuated_rna_indices': array([], dtype=float64), 'attenuation_adjustments': array([], dtype=float64), 'basal_prob': array([], dtype=float64), 'cell_density': 1100.0 [g/L], 'copy_number': <function TranscriptInitiation.<lambda> at 0x7f82412c5760>, 'delta_prob': {'deltaI': [], 'deltaJ': [], 'deltaV': [], 'shape': ()}, 'emit_unique': False, 'fracActiveRnapDict': {}, 'get_delta_prob_matrix': None, 'get_rnap_active_fraction_from_ppGpp': <function TranscriptInitiation.<lambda> at 0x7f82412c4040>, 'idx_mRNA': array([], dtype=float64), 'idx_rRNA': array([], dtype=float64), 'idx_rnap': array([], dtype=float64), 'idx_rprotein': array([], dtype=float64), 'idx_tRNA': array([], dtype=float64), 'inactive_RNAP': 'APORNAP-CPLX[c]', 'make_elongation_rates': <function TranscriptInitiation.<lambda> at 0x7f824162f740>, 'n_avogadro': 6.02214076e+23 [1/mol], 'perturbations': {}, 'ppgpp': 'ppGpp', 'ppgpp_regulation': False, 'replication_coordinate': array([], dtype=float64), 'rnaLengths': array([], dtype=float64), 'rnaPolymeraseElongationRateDict': {}, 'rnaSynthProbFractions': {}, 'rnaSynthProbRProtein': {}, 'rnaSynthProbRnaPolymerase': {}, 'rna_data': {}, 'seed': 0, 'synth_prob': <function TranscriptInitiation.<lambda> at 0x7f82412c56c0>, 'transcription_direction': array([], dtype=float64), 'trna_attenuation': False, 'variable_elongation': False}
- name = 'ecoli-transcript-initiation'
-
topology
{ 'RNAs': ('unique', 'RNA'), 'active_RNAPs': ('unique', 'active_RNAP'), 'bulk': ('bulk',), 'environment': ('environment',), 'full_chromosomes': ('unique', 'full_chromosome'), 'listeners': ('listeners',), 'promoters': ('unique', 'promoter'), 'timestep': ('timestep',)}