Source code for src.infer.onset
import numpy as np
from .effective_ligation_rates_from_parameters import separate_hybridization_and_ligation_parameters
from ..obj.motif_vector import MotifVector
[docs]
def onset_of_growth(
total_mass,
initial_dimer_concentration,
extension_rate_constant_1_1_2,
extension_rate_constant_1_2_2,
cleavage_rate_constant,
) -> float:
return (np.log(total_mass**2*extension_rate_constant_1_1_2-cleavage_rate_constant)-np.log(total_mass*extension_rate_constant_1_2_2*initial_dimer_concentration))/(total_mass**2*extension_rate_constant_1_1_2-cleavage_rate_constant)
[docs]
def discretized_onset_of_growth(
total_mass,
initial_dimer_concentration,
extension_rate_constant_1_1_2,
cleavage_rate_constant,
concentration_of_a_single_particle,
) -> float:
return 1./(total_mass**2*extension_rate_constant_1_1_2-cleavage_rate_constant)*np.log(1.+concentration_of_a_single_particle/initial_dimer_concentration)
[docs]
def onset_of_growth_from_strand_trajectory_parameters(
initial_motif_numbers_vector : MotifVector,
strand_reactor_parameters : dict
) -> float:
ligation_rate_constant = np.exp(strand_reactor_parameters['dG_4_2Match_mean']*strand_reactor_parameters['l_critical'])
gamma2nc = strand_reactor_parameters['dG_4_0Match']
gamma1nc = strand_reactor_parameters['dG_4_1Match']
gammacom = strand_reactor_parameters['dG_4_2Match_mean']
inverse_dissociation_constant = 1./4.*(
np.exp(-gamma2nc)
+2*np.exp(-gamma1nc)
+np.exp(-gammacom)
)
k112 = ligation_rate_constant*inverse_dissociation_constant
epsilon1nc = strand_reactor_parameters['dG_3_0Match']
epsiloncom = strand_reactor_parameters['dG_3_1Match_mean']
inverse_dissociation_constant = 1./4.*(
np.exp(gamma2nc+epsilon1nc)
+np.exp(gamma1nc+epsilon1nc)
+np.exp(gamma1nc+epsiloncom)
+np.exp(gammacom+epsiloncom)
)
k122 = ligation_rate_constant*inverse_dissociation_constant
concentration_of_a_single_particle = strand_reactor_parameters['c_ref']/initial_motif_numbers_vector.motifs.val['length1strand'][0]
total_mass = np.sum(initial_motif_numbers_vector.motifs.val['length1strand'])*concentration_of_a_single_particle
initial_dimer_concentration = np.sum(initial_motif_numbers_vector.motifs.val['length2strand'])*concentration_of_a_single_particle
return onset_of_growth(
total_mass,
initial_dimer_concentration,
k112,
k122,
strand_reactor_parameters['r_delig']
)