Skip to content

Carbon-13 metabolic flux analysis

A metabolic network that LabellingAnalysis fits to labelling data, the TCA example by default.

  • Name: carbon_13_mfa
  • Field: biology/systems_biology
  • Formalism: static solution
  • References: Raman 2021; Antoniewicz et al. 2007; Antoniewicz et al. 2006

Select this system

from skcomplex.systems import create_simulation, create_system, describe

system = create_system('carbon_13_mfa')
entry = describe('carbon_13_mfa')
trajectory = create_simulation('carbon_13_mfa').prepare().run().trajectory_

Factory

@register_system(
    field='biology/systems_biology',
    tags=('carbon-13 flux analysis', 'isotope labelling', 'elementary metabolite units', 'metabolism', 'static'),
    references=('Raman 2021', 'Antoniewicz et al. 2007', 'Antoniewicz et al. 2006'),
    defaults={'until': 0.0},
)
def carbon_13_mfa(network: MetabolicNetworkElement | None = None) -> System:
    """Return a metabolic network that `LabellingAnalysis` fits to labelling data, 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
    analysis 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.

    Returns:
        system:
            The system.

    Examples:
        >>> from skcomplex.systems.biology.systems_biology import carbon_13_mfa
        >>> carbon_13_mfa().elements[0].label
        'tca'
    """
    return System(elements=[TcaNetworkElement('tca') if network is None else 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 carbon_13_mfa
        >>> carbon_13_mfa().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,
        )