Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var IntegrationDt = 5.0e-5
IntegrationDt is the time step of integration for Urakubo et al, 2008: uses 5e-5, 2e-4 is barely stable, 5e-4 is not The AC1act dynamics in particular are not stable due to large ATP, AMP numbers
Functions ¶
Types ¶
type Buffer ¶
type Buffer struct { // rate of buffering (akin to permeability / conductance of a channel) K float64 `desc:"rate of buffering (akin to permeability / conductance of a channel)"` // buffer target concentration -- drives delta relative to this Target float64 `desc:"buffer target concentration -- drives delta relative to this"` }
Buffer provides a soft buffering driving deltas relative to a target N which can be set by concentration and volume.
func (*Buffer) SetTargVol ¶
type Diffuse ¶
type Diffuse struct { // A -> B forward diffusion rate constant, sec-1 Kf float64 `desc:"A -> B forward diffusion rate constant, sec-1"` // B -> A backward diffusion rate constant, sec-1 Kb float64 `desc:"B -> A backward diffusion rate constant, sec-1"` }
Diffuse models diffusion between two compartments A and B as a function of concentration in each and potentially asymmetric rate constants: A Kf -> B and B Kb -> A computes the difference between each direction and applies to each
type Enz ¶
type Enz struct { // S+E forward rate constant, in μM-1 msec-1 K1 float64 `desc:"S+E forward rate constant, in μM-1 msec-1"` // SE backward rate constant, in μM-1 msec-1 K2 float64 `desc:"SE backward rate constant, in μM-1 msec-1"` // SE -> P + E catalyzed rate constant, in μM-1 msec-1 K3 float64 `desc:"SE -> P + E catalyzed rate constant, in μM-1 msec-1"` // Michaelis constant = (K2 + K3) / K1 Km float64 `inactive:"+" desc:"Michaelis constant = (K2 + K3) / K1"` }
Enz models an enzyme-catalyzed reaction based on the Michaelis-Menten kinetics that transforms S = substrate into P product via SE-bound C complex
K1 K3
S + E --> C(SE) ---> P + E
<-- K2
S = substrate, E = enzyme, C = SE complex, P = product The source K constants are in terms of concentrations μM-1 and sec-1 but calculations take place using N's, and the forward direction has two factors while reverse only has one, so a corrective volume factor needs to be divided out to set the actual forward factor.
func (*Enz) SetKmVol ¶
SetKmVol sets time constants in seconds using Km, K2, K3 dividing forward K1 by volume to compensate for 2 volume-based concentrations occurring in forward component (s * e), vs just 1 in back
type EnzRate ¶ added in v1.1.47
type EnzRate struct { // S+E forward rate constant, in μM-1 msec-1 K1 float64 `desc:"S+E forward rate constant, in μM-1 msec-1"` // SE backward rate constant, in μM-1 msec-1 K2 float64 `desc:"SE backward rate constant, in μM-1 msec-1"` // SE -> P + E catalyzed rate constant, in μM-1 msec-1 K3 float64 `desc:"SE -> P + E catalyzed rate constant, in μM-1 msec-1"` // Michaelis constant = (K2 + K3) / K1 -- goes into the rate Km float64 `inactive:"+" desc:"Michaelis constant = (K2 + K3) / K1 -- goes into the rate"` }
EnzRate models an enzyme-catalyzed reaction based on the Michaelis-Menten kinetics that transforms S = substrate into P product via SE bound C complex
K1 K3
S + E --> C(SE) ---> P + E
<-- K2
S = substrate, E = enzyme, C = SE complex, P = product This version does NOT consume the E enzyme or directly use the C complex as an accumulated factor: instead it directly computes an overall rate for the end-to-end S <-> P reaction based on the K constants: rate = S * E * K3 / (S + Km) This amount is added to the P and subtracted from the S, and recorded in the C complex variable as rate / K3 -- it is just directly set. In some situations this C variable can be used for other things. The source K constants are in terms of concentrations μM-1 and sec-1 but calculations take place using N's, and the forward direction has two factors while reverse only has one, so a corrective volume factor needs to be divided out to set the actual forward factor.
func (*EnzRate) SetKmVol ¶ added in v1.1.47
SetKmVol sets time constants in seconds using Km, K2, K3 dividing forward K1 by volume to compensate for 2 volume-based concentrations occurring in forward component (s * e), vs just 1 in back
func (*EnzRate) Step ¶ added in v1.1.47
Step computes delta values based on current S, E values, setting dS, dP and C = rate
type Paramer ¶ added in v1.1.48
type Paramer interface { // Defaults sets default parameters Defaults() // Step computes deltas d based on current values c Step(c, d Paramer) }
The Paramer interface defines functions implemented for Params structures, containing chem React, Enz, etc functions. This interface is largely for documentation purposes.
type React ¶
type React struct { // forward rate constant for N / sec assuming 2 forward factors Kf float64 `desc:"forward rate constant for N / sec assuming 2 forward factors"` // backward rate constant for N / sec assuming 1 backward factor Kb float64 `desc:"backward rate constant for N / sec assuming 1 backward factor"` }
React models a basic chemical reaction:
Kf
A + B --> AB
<-- Kb
where Kf is the forward and Kb is the backward time constant. The source Kf and Kb constants are in terms of concentrations μM-1 and sec-1 but calculations take place using N's, and the forward direction has two factors while reverse only has one, so a corrective volume factor needs to be divided out to set the actual forward factor.
func (*React) SetVol ¶
SetVol sets reaction forward / backward time constants in seconds, dividing forward Kf by volume to compensate for 2 volume-based concentrations occurring in forward component, vs just 1 in back
type SimpleEnz ¶
type SimpleEnz struct { // S->P forward rate constant, in μM-1 msec-1 Kf float64 `desc:"S->P forward rate constant, in μM-1 msec-1"` }
SimpleEnz models a simple enzyme-catalyzed reaction that transforms S = substrate into P product via E which is not consumed assuming there is much more E than S and P -- E effectively acts as a rate constant multiplier
Kf*E
S ----> P
S = substrate, E = enzyme, P = product, Kf is the rate of the reaction
func (*SimpleEnz) SetVol ¶ added in v1.1.47
SetVol sets reaction forward / backward time constants in seconds, dividing forward Kf by volume to compensate for 2 volume-based concentrations occurring in forward component, vs just 1 in back
type Stater ¶ added in v1.1.48
type Stater interface { // Init Initializes the state to starting default values (concentrations) Init() // Zero sets all state variables to zero -- called for deltas after integration Zero() // Integrate is called with the deltas -- each state value calls Integrate() // to update from deltas. Integrate(d Stater) // Log records relevant state variables in given table at given row Log(dt *etable.Table, row int) // ConfigLog configures the table Schema to add column(s) for what is logged ConfigLog(sch *etable.Schema) }
The Stater interface defines the functions implemented for State structures containing chem state variables. This interface is largely for documentation purposes.