biocrnpyler.mechanisms.multi_tx

class biocrnpyler.mechanisms.multi_tx(pol: Species, name: str = 'multi_tx', mechanism_type: str = 'transcription', **kwargs)[source]

Bases: Mechanism

Multi-polymerase transcription with isomerization and occupancy.

A ‘transcription’ mechanism that explicitly models multiple RNA polymerases (RNAPs) binding to a single gene simultaneously, accounting for polymerase spacing, isomerization between open and closed configurations, and competitive binding. This detailed mechanism captures transcriptional queueing and interference effects.

The reaction scheme follows:

\[\begin{split} & {\text{DNA}}\mathord{:}{\text{RNAP}}_n + {\text{RNAP}} \rightleftharpoons {\text{DNA}}\mathord{:}{\text{RNAP}}_{n_c} \rightarrow {\text{DNA}}\mathord{:}{\text{RNAP}}_{n+1} \\ & {\text{DNA}}\mathord{:}{\text{RNAP}}_n \rightarrow {\text{DNA}}\mathord{:}{\text{RNAP}}_0 + n {\text{RNAP}} + n {\text{mRNA}} \\ & {\text{DNA}}\mathord{:}{\text{RNAP}}_{n_c} \rightarrow {\text{DNA}}\mathord{:}{\text{RNAP}}_{0_c} + n {\text{RNAP}} + n {\text{mRNA}} \end{split}\]
where:

  • \(n\) = {0, 1, …, max_occ} is the number of polymerases

  • max_occ is the physical maximum based on RNAP and DNA dimensions

  • \({\text{DNA}}\mathord{:}{\text{RNAP}}_n\) represents DNA with \(n\) open configuration RNAPs

  • \({\text{DNA}}\mathord{:}{\text{RNAP}}_{n_c}\) represents DNA with \(n\) open RNAPs and 1 closed RNAP

Parameters:
  • pol (Species) – RNA polymerase species.

  • name (str, default 'multi_tx') – Name identifier for this mechanism instance.

  • mechanism_type (str, default 'transcription') – Type classification of this mechanism.

Attributes:
  • pol (Species) – The RNA polymerase species.

  • name (str) – Name of the mechanism instance.

  • mechanism_type (str) – Type classification (‘transcription’).

See also

Transcription_MM

Simple Michaelis-Menten transcription.

multi_tl

Multi-ribosome translation mechanism.

Mechanism

Base class for all mechanisms.

Notes

This mechanism provides a detailed, spatially-aware model of transcription that captures:

  • Multiple polymerases on a single gene

  • Polymerase queueing and spacing constraints

  • Open/closed conformational states (isomerization)

  • Coordinated transcript release from multiple polymerases

The model is appropriate for detailed mechanistic studies where:

  • Polymerase density and spacing matter

  • Transcriptional queueing affects expression

  • Multiple concurrent transcription events are important

The mechanism generates many species (2 * max_occ complexes) and reactions (O(max_occ)), so it should be used with caution for computational efficiency.

Required parameters for this mechanism:

  • ‘ktx’ : Transcription/release rate constant

  • ‘kb’ : Forward binding rate for polymerase to DNA

  • ‘ku’ : Reverse unbinding rate for polymerase from DNA

  • ‘k_iso’ : Isomerization rate from closed to open configuration

  • ‘max_occ’ : Maximum polymerase occupancy (integer)

Examples

Model multi-polymerase transcription:

>>> gene = bcp.DNAassembly(
...     name='dna_assembly',
...     promoter='pconst', rbs='RBS_medium', protein='GFP')
>>> rnap = bcp.Species('RNAP')
>>> tx_mechanism = bcp.multi_tx(pol=rnap)
>>> mixture = bcp.Mixture(
...     components=[gene],
...     mechanisms={
...         'transcription': tx_mechanism,
...         'translation': bcp.SimpleTranslation()
...     },
...     parameters={
...         'ktx': 0.05, 'ktl': 0.1, 'kb': 1.0, 'ku': 0.1,
...         'k_iso': 0.5, 'max_occ': 5
...     }
... )
>>> mixture.compile_crn()

For more details, see examples/MultiTX_Demo.ipynb.

Methods

update_reactions

Generate reactions for multi-polymerase transcription.

update_species

Generate species for multi-polymerase transcription.

update_reactions(dna, transcript, component, part_id, protein=None, **kwargs)[source]

Generate reactions for multi-polymerase transcription.

Creates reactions modeling multiple polymerases binding to DNA, isomerization between configurations, and transcript release with coordination among multiple polymerases.

Parameters:
  • dna (Species) – The DNA species (gene) being transcribed.

  • transcript (Species) – The mRNA transcript species produced.

  • component (Component) – Component containing parameter values. Required for parameter lookup.

  • part_id (str) – Identifier for parameter lookup. Required to retrieve parameters.

  • protein (Species, optional) – Protein species (unused, accepted for API consistency).

  • **kwargs – Additional keyword arguments (unused).

Returns:

List of reactions including:

  • Polymerase binding reactions (DNA:RNAP\(_n\) + RNAP \(\rightleftharpoons\) DNA:RNAP\(_{n_c}\))

  • Isomerization reactions (DNA:RNAP\(_{n_c}\) \(\rightarrow\) \(DNA\mathord{:}RNAP\)_n$)

  • Release reactions from open states (DNA:RNAP\(_n\) \(\rightarrow\) DNA + \(n\) RNAP + \(n\) mRNA)

  • Release reactions from closed states (DNA:RNAP\(_{n_c}\) \(\rightarrow\) DNA:RNAP\(_{0_c}\) + \(n\) RNAP + \(n\) mRNA)

  • Base binding reaction (DNA + RNAP \(\rightleftharpoons\) DNA:RNAP\(_{0_c}\))

Return type:

list of Reaction

Notes

The reaction scheme captures:

  1. DNA:RNAP\(_n\) + RNAP \(\rightleftharpoons\) DNA:RNAP\(_{(n+1)_c}\) (rates: ‘kb’, ‘ku’)

  2. DNA:RNAP\(_{n_c}\) \(\rightarrow\) DNA:RNAP\(_n\) (rate: ‘k_iso’)

  3. DNA:RNAP\(_n\) \(\rightarrow\) DNA + \(n\) RNAP + \(n\) mRNA (rate: ‘ktx’)

  4. DNA:RNAP\(_{n_c}\) \(\rightarrow\) DNA:RNAP\(_{0_c}\) + \(n\) RNAP + \(n\) mRNA (rate: ‘ktx’)

Where \(n\) ranges from 0 to max_occ-1. The ‘max_occ’ parameter represents the physical maximum occupancy of polymerases on the gene.

update_species(dna, transcript, component, part_id, protein=None, **kwargs)[source]

Generate species for multi-polymerase transcription.

Creates all species and complexes involved in multi-polymerase transcription including DNA with varying numbers of bound polymerases in both open and closed configurations.

Parameters:
  • dna (Species) – The DNA species (gene) being transcribed.

  • transcript (Species) – The mRNA transcript species produced.

  • component (Component) – Component containing parameter values. Required for parameter lookup.

  • part_id (str) – Identifier for parameter lookup. Required to retrieve ‘max_occ’ parameter.

  • protein (Species, optional) – Protein species (unused, accepted for API consistency).

  • **kwargs – Additional keyword arguments (unused).

Returns:

List containing:

  • DNA:RNAP_n complexes in open configuration (n = 0 to max_occ-1)

  • DNA:RNAP_n complexes in closed configuration (n = 0 to max_occ-1)

  • Individual species [polymerase, dna, transcript]

Return type:

list of Species

Notes

For each occupancy level \(n\) from 0 to max_occ-1, two complex species are created:

  • Open configuration: DNA with \(n+1\) polymerases, all in open state

  • Closed configuration: DNA with \(n+1\) polymerases (n open, 1 closed)

The ‘max_occ’ parameter determines the maximum number of polymerases that can occupy the gene simultaneously, typically based on physical spacing constraints.