problem = cvxpy_problem_data_structure(network, q_info, prior, data, bounds, true_model, cmb_options) Convert a model balancing problem (data structures: network, q_info, true_model, prior, data) into a single data structure, exported to json and then used by python model balancing tool (based on CVXpy) Structure, default values, and matrix sizes for a network with nr reactions and nm metabolites (and ns metabolic states) .standard_concentration: '1 mM' .state_names: {ns x 1 cell} .use_pseudo_values: Boolean .network .network.metabolite_names: {nm x 1 cell} .network.reaction_names: {nr x 1 cell} .network.stoichiometric_matrix: [nm x nr double] (sparse matrix) .network.activation_matrix: [nm x nr double] (sparse matrix) .network.inhibition_matrix: [nm x nr double] (sparse matrix) .kinetic_constants .kinetic_constants.Keq .kinetic_constants.Kcatf .kinetic_constants.Kcatr .kinetic_constants.KM .kinetic_constants.KA .kinetic_constants.KI .. where each subfield of .kinetic_constants is a struct of the form .unit: string, typically 'mM' and '1/s' .true: (column vector or matrix; true values in the case of artificial data; otherwise empty) .pprior_ln.mean pseudoprior, mean vector of log values .pprior_ln.cov pseudoprior, covariance matrix of log values .bounds_ln.min lower bounds on log values .bounds_ln.max upper bounds on log values .data_ln.mean data mean vector of log values .data_ln.cov data covariance matrix of log values .bounds.min lower bounds on log values .bounds.max upper bounds on log values .combined.geom_mean preposterior geometric mean vector .combined.mean_ln preposterior mean vector of log values %.combined.cov_ln preposterior covariance matrix of log values .kinetic_constants.all .kinetic_constants.all.names parameter names, list of strings .kinetic_constants.all.geom_mean preposterior geometric mean vector .kinetic_constants.all.mean_ln preposterior mean vector of log values .kinetic_constants.all.prec_ln preposterior precision matrix of log values .metabolite_concentrations .metabolite_concentrations.unit: string, default 'mM' .metabolite_concentrations.true: matrix of true values (only in models with artificial data; otherwise []) .metabolite_concentrations.prior_ln.mean matrix of prior mean values for metabolite log-concentrations .metabolite_concentrations.prior_ln.std matrix of prior std dev for metabolite log-concentrations .metabolite_concentrations.bounds_ln.min matrix of lower bounds on metabolite log-concentrations .metabolite_concentrations.bounds_ln.max matrix of upper bounds on metabolite log-concentrations .metabolite_concentrations.data_ln.mean matrix of data mean values for metabolite log-concentrations .metabolite_concentrations.data_ln.std matrix of data std dev for metabolite log-concentrations .metabolite_concentrations.bounds.min matrix of preposterior geom mean for metabolite concentrations .metabolite_concentrations.bounds.max matrix of preposterior geom std for metabolite concentrations .metabolite_concentrations.combined.geom_mean matrix of preposterior geom mean for metabolite concentrations .metabolite_concentrations.combined.geom_std matrix of preposterior geom std for metabolite concentrations .enzyme_concentrations ... (structure analogous to .metabolite_concentrations; note that lower bounds for log(e) are typically -inf) .reaction_fluxes .reaction_fluxes.unit: string, default 'mM/s' .reaction_fluxes.true: (matrix of true values in the case of artificial data; otherwise empty) .reaction_fluxes.data.mean matrix of flux data mean values .reaction_fluxes.data.std matrix of flux data std values Note: o activations and inhibitions are described by separate (positive) matrices of the shape #metabolites x #reactions o convention for order of KM, KA, and KI entries (in vectors) + their relation to entries in the matrix: vector elements are ordered by their appearance in the respective (stoichiometric or regulation) matrix, in the format #reactions x # metabolites, and following matlab's convention for indices in matrix elements (first column from top to bottom, then second column etc) in python this corrresponds to matrix formatted as #metabolites x #reactions, and using the opposite convetion for indices (first row, then second row, etc) fields called "combined" contain the preposterior distribution of the respective quantities