Reactions

kinetics works by specifying a Model() object to which reactions are added.

Reactions are first defined, selected from one of the reaction objects described here. Parameters are set and the reaction added to the model.

For example:

import kinetics

enzyme_1 = kinetics.Uni(kcat='kcat1', kma='kma1', a='a', enz='enz1',
                        substrates=['a'], productions=['b'])

# To specify single parameter values
enzyme_1.parameters = {'kcat1': 100,
                       'kma1': 500}

# To specify parameter distributions
enzyme_1.parameter_distributions = {'kcat1': norm(100,10),
                                    'kma1': uniform(25,50)}

model = kinetics.Model()
model.append(enzyme1)

Michaelis-Menten kinetics, irreversible.

Uni

class kinetics.Uni(kcat=None, kma=None, a=None, enz=None, substrates=[], products=[])[source]

The classic Miachelis-Menton equation for a single substrate.

\[rate = \frac{c_{enz}\cdot k_{cat}\cdot c_{A}}{c_{A}+K_{M}^{A}}\]

Bi

class kinetics.Bi(kcat=None, kma=None, kmb=None, a=None, b=None, enz=None, substrates=[], products=[])[source]

Not strictly a true Miachaelis-Menton equation. Use with caution. Will give a reasonable prediction if one substrate is saturating, otherwise is likely wrong.

\[rate = c_{enz}\cdot k_{cat}\cdot \frac{c_{A}}{c_{A}+K_{M}^{A}} \cdot \frac{c_{B}}{c_{B}+K_{M}^{B}}\]

Bi Ternary Complex

class kinetics.Bi_ternary_complex(kcat=None, kma=None, kmb=None, kia=None, a=None, b=None, enz=None, substrates=[], products=[])[source]

For reactions with two substrates which have an sequential mechanism (either ordered or random).

\[rate = \frac{c_{enz}\cdot k_{cat}\cdot c_{A}\cdot c_{B}}{(K_{I}^{A}\cdot K_{M}^{B}) + (K_{M}^{B}\cdot c_{A}) + (K_{M}^{A}\cdot c_{B}) + (c_{A} \cdot c_{B})}\]

Bi Ping Pong

class kinetics.Bi_ping_pong(kcat=None, kma=None, kmb=None, a=None, b=None, enz=None, substrates=[], products=[])[source]

For reactions with two substrates which have a ping-pong mechanism

\[rate = \frac{c_{enz}\cdot k_{cat}\cdot c_{A}\cdot c_{B}}{(K_{M}^{B}\cdot c_{A}) + (K_{M}^{A}\cdot c_{B}) + (c_{A} \cdot c_{B})}\]

Ter seq redam

class kinetics.Ter_seq_redam(kcat=None, kma=None, kmb=None, kmc=None, kia=None, kib=None, enz=None, a=None, b=None, c=None, substrates=[], products=[])[source]

A three substrate rate equation which can be used for Reductive Aminase enzymes.

\[rate = \frac{c_{enz}\cdot k_{cat}\cdot c_{A}\cdot c_{B}\cdot c_{C}} {(K_{I}^{A}\cdot K_{I}^{B} \cdot K_{M}^{C}) + (K_{I}^{B}\cdot K_{M}^{C} \cdot c_{A}) + (K_{I}^{A}\cdot K_{M}^{B}\cdot c_{C}) + (K_{M}^{C}\cdot c_{A}\cdot c_{B}) + (K_{M}^{B}\cdot c_{A}\cdot c_{C}) + (K_{M}^{A}\cdot c_{B}\cdot c_{C}) + (c_{A} \cdot c_{B} \cdot c_{C})}\]

Ter seq car

class kinetics.Ter_seq_car(kcat=None, kma=None, kmb=None, kmc=None, kia=None, enz=None, a=None, b=None, c=None, substrates=[], products=[])[source]

A three substrate rate equation which can be used for Carboxylic Acid Reductase enzymes.

\[rate = \frac{c_{enz}\cdot k_{cat}\cdot c_{A}\cdot c_{B} \cdot c_{C}} {(K_{I}^{A}\cdot c_{C}) + (K_{M}^{C}\cdot c_{A} \cdot c_{B}) + (K_{M}^{B}\cdot c_{A} \cdot c_{C}) + (K_{M}^{A}\cdot c_{B} \cdot c_{C}) + (c_{A} \cdot c_{B} \cdot c_{C})}\]

Bi ternary complex small kma

class kinetics.Bi_ternary_complex_small_kma(kcat=None, kmb=None, kia=None, a=None, b=None, enz=None, substrates=[], products=[])[source]

A special case of Bi Ternary Complex where kma << kia.

\[rate = \frac{c_{enz}\cdot k_{cat}\cdot c_{A}\cdot c_{B}} {(K_{I}^{A}\cdot K_{M}^{B}) + (K_{M}^{B}\cdot c_{A}) + (c_{A} \cdot c_{B})}\]

Michaelis-Menten kinetics, reversible.

UniUni Reversible

class kinetics.UniUni_rev(kcatf=None, kcatr=None, kma=None, kmp=None, a=None, p=None, enz=None, substrates=[], products=[])[source]
\[rate = \frac{(c_{enz}\cdot k_{cat}^{fwd}\cdot c_{A}) - (c_{enz}\cdot k_{cat}^{rev}\cdot c_{P})} {1 + \frac{c_{A}}{K_{M}^{A}} + \frac{c_{P}}{K_{M}^{P}} }\]

BiBi Ordered Rev

class kinetics.BiBi_Ordered_rev(kcatf=None, kcatr=None, kmb=None, kia=None, kib=None, kmp=None, kip=None, kiq=None, enz=None, a=None, b=None, p=None, q=None, substrates=[], products=[])[source]

BiBi Random Rev

class kinetics.BiBi_Random_rev(kcatf=None, kcatr=None, kmb=None, kia=None, kib=None, kmp=None, kip=None, kiq=None, a=None, b=None, p=None, q=None, enz=None, substrates=[], products=[])[source]

BiBi Pingpong Rev

class kinetics.BiBi_Pingpong_rev(kcatf=None, kma=None, kmb=None, kia=None, kcatr=None, kmp=None, kmq=None, kip=None, kiq=None, enz=None, a=None, b=None, p=None, q=None, substrates=[], products=[])[source]

Equilibrium based reversible Michaelis-Menten kinetics

BiBi Ordered rev eq

class kinetics.BiBi_Ordered_rev_eq(keq=None, kcatf=None, kcatr=None, kma=None, kmb=None, kmp=None, kmq=None, kib=None, kip=None, kia=None, a='', b='', p='', q='', enz='', substrates=[], products=[])[source]

UniUni Ordered rev eq

class kinetics.UniUni_rev_eq(keq=None, kcatf=None, kma=None, kmp=None, a='', p='', enz='', substrates=[], products=[])[source]

Equilibrium based mass action

UniUni Ordered rev eq

class kinetics.UniUni_rev_eq(keq=None, kcatf=None, kma=None, kmp=None, a='', p='', enz='', substrates=[], products=[])[source]

Modifiers of Michaelis-Menten kinetics eg for Inhibition

Modifications to rate equations for things like competitive inhibition can applied as follows:

(Remember to add new parameters to the reaction parameters)

Modifications are applied at each timestep of the model, for example calculating the apparent Km resulting from competitive inhibtion.

This feature allows the easy modification of the pre-defined rate equations.

enzyme_1.add_modifier(kinetics.CompetitiveInhibition(km='kma1', ki='ki1', i='I'))
enzyme_1.parameters.update({'ki1': 25})
class kinetics.SubstrateInhibition(ki=None, a=None)[source]
class kinetics.CompetitiveInhibition(km=None, ki=None, i=None)[source]
class kinetics.MixedInhibition(kcat=None, km=None, ki=None, alpha=None, i=None)[source]
class kinetics.FirstOrder_Modifier(kcat=None, k=None, s=None)[source]

Generic Reaction Class

This reaction class could in theory be the only one you ever need. It allows you to specify your own rate equation.

class kinetics.Generic(params=[], species=[], rate_equation='', substrates=[], products=[])[source]

This Reaction class allows you to specify your own rate equation. Enter the parameter names in params, and the substrate names used in the reaction in species. Type the rate equation as a string in rate_equation, using these same names. Enter the substrates used up, and the products made in the reaction as normal.