Skip to content

Carbon-13 metabolic flux analysis

A metabolic network that labelling fits to labelling data.

  • Class: Carbon13MFASystem
  • Import: from skcomplex.systems.biology.systems_biology import Carbon13MFASystem
  • Field: biology/systems_biology
  • Topics: carbon-13 flux analysis, isotope labelling, elementary metabolite units, metabolism, static
  • References: Raman 2021; Antoniewicz et al. 2007; Antoniewicz et al. 2006

Use this system

from skcomplex.core.engine.runtime import simulate
from skcomplex.systems.biology.systems_biology import Carbon13MFASystem

trajectory = simulate(Carbon13MFASystem())

Parameters

Parameter Default
network None

Tags

Tag Values
Time static
Space none
Laws equation
Randomness deterministic
Domains real
Structure fixed

Class

class Carbon13MFASystem(BaseSystem):
    """A metabolic network that `labelling` fits to labelling data.

    The network is the TCA example by default.

    Labelled atoms of a tracer spread through the network along its atom transitions, so the measured mass isotopomer
    distributions of its products carry the fluxes (Raman 2021, Section 9.7). `tca_labelling_analysis` gives the
    labelling of the TCA example of Antoniewicz et al. (2007) with data simulated from its known fluxes.

    Args:
        network:
            The metabolic network, or `None` for the TCA example.

        label:
            The label of the system, which names it when it is nested in another one.

    Examples:
        >>> from skcomplex.systems.biology.systems_biology import Carbon13MFASystem
        >>> Carbon13MFASystem().prepare().system_.elements[0].label
        'tca'
    """

    field = 'biology/systems_biology'
    topics = ('carbon-13 flux analysis', 'isotope labelling', 'elementary metabolite units', 'metabolism', 'static')
    references = ('Raman 2021', 'Antoniewicz et al. 2007', 'Antoniewicz et al. 2006')
    until = 0.0

    def __init__(
        self,
        network: MetabolicNetworkElement | None = None,
        *,
        label: str = 'system',
    ) -> None:
        super().__init__(label)
        self.network = network

    def _build_system(self) -> System:
        """Return the parts of a metabolic network that `labelling` fits to labelling data."""
        return System(
            self.label,
            elements=[TcaNetworkElement('tca') if self.network is None else self.network],
            time=StaticTime(),
        )

Components

Elements:

  • TcaNetworkElement, from DeclaredElement
class TcaNetworkElement(MetabolicNetworkElement):
    """The TCA example of Antoniewicz et al. (2007).

    Args:
        label:
            The label of the element.

        visual:
            How the element is drawn, or `None` for the bars of its program.

        objective:
            The coefficient of every reaction in the objective, or `None` for `default_objective`.

        parsimonious:
            Whether to minimise the total absolute flux after the objective.

        infeasible:
            The infeasibility policy of the program.

        name:
            The name of the network.

        reactions:
            The reactions by name.

        default_objective:
            The objective of the network when `objective` is `None`.

        variables:
            The declared states and parameters that replace the ones of the reactions, by name, or `None` for none.

    Examples:
        >>> from skcomplex.systems.biology.systems_biology import Carbon13MFASystem
        >>> Carbon13MFASystem().prepare().system_.elements[0].get_value('upper_v1')
        300.0
    """

    def __init__(
        self,
        label: str,
        visual: VisualSpec | None = None,
        *,
        objective: Mapping[str, float] | None = None,
        parsimonious: bool = False,
        infeasible: str = 'raise',
        name: str | None = 'TcaNetwork',
        reactions: Mapping[str, ReactionSpec] = TCA_REACTIONS,
        default_objective: Mapping[str, float] = TCA_OBJECTIVE,
        variables: Mapping[str, DeclaredVariableSpec] | None = None,
    ) -> None:
        super().__init__(
            label,
            visual,
            objective=objective,
            parsimonious=parsimonious,
            infeasible=infeasible,
            name=name,
            reactions=reactions,
            default_objective=default_objective,
            variables=variables,
        )