JSON file format for model-balancing

Specifications

The file format is based on JSON and has the following structure (for a network with Nr reactions and Nm metabolites, and where Ns is the number of metabolic states described in this dataset).

  • standard_concentration: str - the standard concentration used for equilibrium constants

  • state_names: List[str] - the names of the metabolic states (len = Ns)

  • network: dict
    • metabolite_names: List[str] - the names of the metabolites (len = Nm)

    • reaction_names: List[str] - the names of the reactions (len = Nr)

    • stoichiometric_matrix: array - stoichiometric coefficients (shape = (Nm, Nr))

    • activation_matrix: array - activation coefficients (shape = (Nm, Nr))

    • inhibition_matrix: array - inhibition coefficients (shape = (Nm, Nr))

  • kinetic_constants: dict
    • Keq, Kcatf, Kcatr, KM, KA, or KI: dict
      • unit: str - the unit in which the values are given

      • true: array - true values in the case of artificial data (optional)

      • prior_ln: dict
        • mean: array - prior mean vector of log values

        • cov: array - prior covariance matrix of log values

      • bounds_ln: dict
        • min: array - lower bounds on log values

        • max: array - upper bounds on log values

      • data_ln: dict
        • mean: array - data mean vector of log values

        • cov: array - data covariance matrix of log values

      • bounds: dict
        • min: array - lower bounds

        • max: array - upper bounds

      • combined: dict
        • geom_mean: array - preposterior geometric mean vector

        • mean_ln: array - preposterior mean vector of log values

        • cov_ln: array - preposterior covariance matrix of log values

  • metabolite_concentrations or enzyme_concentrations: dict
    • unit: str - the unit in which the values are given

    • true: array - true values in the case of artificial data (optional)

    • prior_ln: dict
      • mean: array - prior mean values for metabolite log-concentrations

      • std: array - prior std dev for metabolite log-concentrations

    • bounds_ln: dict
      • min: array - lower bounds on metabolite log-concentrations

      • max: array - upper bounds on metabolite log-concentrations

    • data_ln: dict
      • mean: array - data mean values for metabolite log-concentrations

      • std: array - data std dev for metabolite log-concentrations

    • bounds: dict
      • min: array - lower bounds

      • max: array - upper bounds

    • combined: dict
      • geom_mean: array - preposterior geom mean for metabolite concentrations

      • geom_std: array - preposterior geom std for metabolite concentrations

  • reaction_fluxes: dict
    • unit: str - the unit in which the values are given

    • true: array - true values in the case of artificial data (optional)

    • data: dict
      • mean: array - flux data mean values

      • std: array - flux data std values

Examples

See the GitHub repository for a few JSON-formatted examples of model balancing.

Note

  • Activations and inhibitions are described by two separate (positive) matrices activation_matrix and inhibition_matrix, where each one is of the shape (Nm, Nr)

  • We follow the Matlab convention for ordering elements within a matrix. Therefore, the major index of the entries in kinetic_constants.KM, kinetic_constants.KA, and kinetic_constants.KI (which are given in a sparse notation) is the metabolites and not the reactions (although rows correspond to the latter). In Python, the convention for ordering matrix elements is the opposite and therefore care must be taken.

  • Fields called combined contain the preposterior distribution of the respective quantities