Ejemplo n.º 1
0
def kinetic_simulation(model, parameters=None, factors=None, time=1e9):
    """
    Runs a phenotype simulation using dynamic models.
    Args:
        model (kineticModel): The kinetic metabolic model.
        parameters (dict): List of parameters that will be set with new values (ex: Dilution, initial concentrations).
        factors (dict): Values to by multiplied to the vMax parameters (KO: the value should be 0, Under: value between 0 and 1,
        Over: value higher than 1)
        time (float): End time for steady-state.

    Returns (kineticSimulationResults): The function returns the best solutions found in strain optimization. The kineticSimulationResults have the
        flux distribution and metabolites concentration on steady-state, and the modifications made over the
        original model.
    """

    simulProblem = KineticSimulationProblem(model,
                                            parameters=parameters,
                                            tSteps=[0, time],
                                            timeout=None)

    if factors:
        override = OverrideKineticSimulProblem(factors=factors)
        result = simulProblem.simulate(override)
    else:
        result = simulProblem.simulate()

    return result
Ejemplo n.º 2
0
def kinetic_simulation(kinet_model, factors, **kwargs):
    """
    default template function to load models
    :param load_kinetic_model() kinet_model:
    :param dict factors:
    :return: simulation result
    """
    time = kwargs.get("time", KineticConfigurations.STEADY_STATE_TIME)
    override = OverrideKineticSimulProblem(factors=factors)
    simulProblem = KineticSimulationProblem(kinet_model, tSteps=[0, time])
    res = simulProblem.simulate(overrideSimulProblem=override)
    return res
Ejemplo n.º 3
0
def kinetic_optimization(model, optim_type, eval_func, **kwargs):
    """
    default template function for kinetic model optimization
    :param load_kinetic_model() model: kinetic model object
    :param str optim_type: "KO" - Knockouts or "UO" - Under/Over expression
    :param build_evaluation_function() eval_func: evaluating function
    :param kwargs: all of the optional arguments
    :return kinetic_strain_optim(): result of the optimization
    """
    output_file = kwargs.get("output_file", "results.csv")
    time = kwargs.get("time", KineticConfigurations.STEADY_STATE_TIME)
    cand_size = kwargs.get("size", None)
    multi_thread = kwargs.get("isMultiProc", False)
    crit_params = kwargs.get("critical_parameters", [])

    kinetic_uo_levels = kwargs.get(
        "levels", [2 ** -5, 2 ** -4, 2 ** -3, 2 ** -2, 2 ** -1, 2 ** 1, 2 ** 2, 2 ** 3, 2 ** 4, 2 ** 5])

    if optim_type == "KO":
        optim_type = optimType.REACTION_KO
    elif optim_type == "UO":
        optim_type = optimType.REACTION_UO

    kinetic_simul_problem = KineticSimulationProblem(model, tSteps=[0, time])
    res = kinetic_strain_optim(
        simulProblem = kinetic_simul_problem,
        objFunc = eval_func,
        levels = kinetic_uo_levels,
        type = optim_type,
        isMultiProc = multi_thread,
        candidateSize = cand_size,
        criticalParameters = crit_params,
        resultFile = output_file)
    return res
Ejemplo n.º 4
0
def jahan_model():
    sbmlFile = '../../../examples/models/Jahan2016_chemostat_fixed.xml'
    mapParamReacs = {
        "vE_6PGDH": ["v6PGDH_max"],
        "vE_Ack": ["vAck_max"],
        "vE_Ack_medium": ["vAck_max"],
        "vE_Cya": ["vCya_max"],
        "vE_Eda": ["vEda_max"],
        "vE_Edd": ["vEdd_max"],
        "vE_Fum": ["Fum"],
        "vE_G6PDH": ["vG6PDH_max"],
        "vE_MDH": ["MDH"],
        "vE_Pgi": ["vPgi_max"],
        "vE_Pgl": ["vPgl_max"],
        "vE_Pta": ["vPta_max"],
        "vE_R5PI": ["vR5PI_max"],
        "vE_Ru5P": ["vRu5P_max"],
        "vE_Tal": ["vTal_max"],
        "vE_TktA": ["vTktA_max"],
        "vE_TktB": ["vTktB_max"],
        "vE_cAMPdegr": ["vcAMPdegr_max"],
        "vNonPTS": ["vNonPTS_max"],
        "vNonPTS_medium": ["vNonPTS_max"],
        "vPTS4": ["vPTS4_max"],
        "vPTS4_medium": ["vPTS4_max"],
        "vE_AceKki": ["AceK"],
        "vE_AceKph": ["AceK"],
        "vE_Acs": ["Acs"],
        "vE_Acs_medium": ["Acs"],
        "vE_CS": ["CS"],
        "vE_Fba": ["Fba"],
        "vE_Fbp": ["Fbp"],
        "vE_GAPDH": ["GAPDH"],
        "vE_Glk": ["Glk"],
        "vE_ICDH": ["ICDH"],
        "vE_Icl": ["Icl"],
        "vE_MS": ["MS"],
        "vE_Mez": ["Mez"],
        "vE_PDH": ["PDH"],
        "vE_Pck": ["Pck"],
        "vE_Pfk": ["Pfk"],
        "vE_Ppc": ["Ppc"],
        "vE_Pps": ["Pps"],
        "vE_Pyk": ["Pyk"],
        "vE_SDH": ["SDH"],
        "vE_aKGDH": ["aKGDH"]
    }

    model = load_kinetic_model(sbmlFile, mapParamReacs)
    simulProblem = KineticSimulationProblem(
        model, tSteps=[0, KineticConfigurations.STEADY_STATE_TIME], timeout=60)
    idsToManipulate = list(
        set(
            itertools.chain.from_iterable(
                simulProblem.model.reacParamsFactors.values())))

    return simulProblem, idsToManipulate
Ejemplo n.º 5
0
def ko_millard(isMultiProc=False, size=1):
    EAConfigurations.MAX_CANDIDATE_SIZE = size

    sbmlFile = '../../../examples/models/Millard2016v2.xml'
    fileRes = basePath + "Results/optim_Millard_acet_ko_" + str(size) + ".csv"
    fileLastGen = basePath + "Results/optim_Millard_acet_ko_" + str(
        size) + "_lastgen.csv"

    mapParamReacs = OrderedDict([
        ('PTS_4', ['eiicbP']), ('PTS_0', ['ei']), ('PTS_1', ['eiP']),
        ('PTS_2', ['eiia']), ('PTS_3', ['eiicb']), ('PGI', ['PGI_Vmax']),
        ('PFK', ['PFK_Vmax']), ('FBA', ['FBA_Vmax']), ('TPI', ['TPI_Vmax']),
        ('GDH', ['GDH_Vmax']), ('PGK', ['PGK_Vmax']), ('GPM', ['GPM_Vmax']),
        ('ENO', ['ENO_Vmax']), ('PYK', ['PYK_Vmax']), ('ZWF', ['ZWF_Vmax']),
        ('PGL', ['PGL_Vmax']), ('GND', ['GND_Vmax']), ('RPE', ['RPE_Vmax']),
        ('RPI', ['RPI_Vmax']), ('X5P_GAP_TKT', ['tkt']),
        ('F6P_E4P_TKT', ['tktC2']), ('S7P_R5P_TKT', ['tktC2']),
        ('F6P_GAP_TAL', ['talC3']), ('S7P_E4P_TAL', ['tal']),
        ('FBP', ['FBP_Vmax']), ('PPC', ['PPC_Vmax']), ('PCK', ['PCK_Vmax']),
        ('PPS', ['PPS_Vmax']), ('MAD', ['MAD_Vmax']), ('PDH', ['PDH_Vmax']),
        ('GLT', ['GLT_Vmax']), ('ACN_1', ['ACN_1_Vmax']),
        ('ACN_2', ['ACN_2_Vmax']), ('ICD', ['icd']), ('LPD', ['LPD_Vmax']),
        ('SK', ['SK_Vmax']), ('SDH', ['SDH_Vmax']), ('FUMA', ['FUMA_Vmax']),
        ('MQO', ['MQO_Vmax']), ('MDH', ['MDH_Vmax']), ('ACEA', ['ACEA_Vmax']),
        ('ACEB', ['ACEB_Vmax']), ('EDD', ['EDD_Vmax']), ('EDA', ['EDA_Vmax']),
        ('NADH_req', ['NADH_req_Vmax']), ('ATP_syn', ['ATP_syn_Vmax']),
        ('ACK', ['ACK_Vmax']), ('ACS', ['ACS_Vmax']), ('PTA', ['PTA_Vmax']),
        ('MYTBO', ['MYTBO_Vmax']), ('SQR', ['SQR_Vmax']),
        ('NDHII', ['NDHII_Vmax']), ('GROWTH', ['GROWTH_Vmax']),
        ('ATP_MAINTENANCE', ['ATP_MAINTENANCE_Vmax']),
        ('XCH_GLC', ['XCH_GLC_Vmax']), ('PIT', ['PIT_Vmax']),
        ('XCH_P', ['XCH_P_Vmax']), ('XCH_ACE1', ['XCH_ACE1_Vmax']),
        ('XCH_ACE2', ['XCH_ACE2_Vmax'])
    ])

    model = load_kinetic_model(sbmlFile, mapParamReacs)

    objFunc = build_evaluation_function("targetFlux", ["_ACE_OUT"])
    simulProblem = KineticSimulationProblem(
        model, tSteps=[0, KineticConfigurations.STEADY_STATE_TIME])

    result = kinetic_strain_optim(simulProblem,
                                  objFunc=objFunc,
                                  levels=None,
                                  criticalParameters=[
                                      'ATP_MAINTENANCE_Vmax', 'GROWTH_Vmax',
                                      'NDHII_Vmax', 'PIT_Vmax', 'eiicbP', 'ei',
                                      'eiP', 'eiia'
                                  ],
                                  isMultiProc=isMultiProc,
                                  resultFile=fileRes,
                                  initPopFile=fileLastGen)
    result.print()
Ejemplo n.º 6
0
def under_over_chassagnole(isMultiProc=False, size=1):
    sbmlFile = '../../../examples/models/chassagnole2002.xml'
    fileRes = basePath + "Results/optim_Chassagnole_Serine_underover_" + size + ".csv"

    model = load_kinetic_model(sbmlFile)

    objFunc = build_evaluation_function("targetFlux", ["vsersynth"])
    simulProblem = KineticSimulationProblem(
        model, tSteps=[0, KineticConfigurations.STEADY_STATE_TIME])
    result = kinetic_strain_optim(simulProblem,
                                  objFunc=objFunc,
                                  levels=LEVELS,
                                  criticalParameters=[],
                                  isMultiProc=False,
                                  candidateSize=size,
                                  resultFile=fileRes)
    result.print()
Ejemplo n.º 7
0
def ko_chassagnole(isMultiProc=False, size=1):
    sbmlFile = '../../../examples/models/chassagnole2002.xml'
    fileRes = basePath + "Chassagnole/optim_Chassagnole_Serine_ko_" + str(
        size) + ".csv"

    model = load_kinetic_model(sbmlFile)

    objFunc = build_evaluation_function("targetFlux", ["vsersynth"])
    simulProblem = KineticSimulationProblem(
        model, tSteps=[0, KineticConfigurations.STEADY_STATE_TIME])
    result = kinetic_strain_optim(simulProblem,
                                  objFunc=objFunc,
                                  levels=None,
                                  type=optimType.REACTION_KO,
                                  isMultiProc=True,
                                  candidateSize=size,
                                  resultFile=fileRes)
    result.print()
Ejemplo n.º 8
0
def millard_model():
    sbmlFile = '../../../examples/models/Millard2016_suc_drain.xml'
    mapParamReacs = {
        'PTS_4': ['eiicbP'],
        'PTS_0': ['ei'],
        'PTS_1': ['eiP'],
        'PTS_2': ['eiia'],
        'PTS_3': ['eiicb'],
        'PGI': ['PGI_Vmax'],
        'PFK': ['PFK_Vmax'],
        'FBA': ['FBA_Vmax'],
        'TPI': ['TPI_Vmax'],
        'GDH': ['GDH_Vmax'],
        'PGK': ['PGK_Vmax'],
        'GPM': ['GPM_Vmax'],
        'ENO': ['ENO_Vmax'],
        'PYK': ['PYK_Vmax'],
        'ZWF': ['ZWF_Vmax'],
        'PGL': ['PGL_Vmax'],
        'GND': ['GND_Vmax'],
        'RPE': ['RPE_Vmax'],
        'RPI': ['RPI_Vmax'],
        'X5P_GAP_TKT': ['tkt'],
        'F6P_E4P_TKT': ['tktC2'],
        'S7P_R5P_TKT': ['tktC2'],
        'F6P_GAP_TAL': ['talC3'],
        'S7P_E4P_TAL': ['tal'],
        'FBP': ['FBP_Vmax'],
        'PPC': ['PPC_Vmax'],
        'PCK': ['PCK_Vmax'],
        'PPS': ['PPS_Vmax'],
        'MAD': ['MAD_Vmax'],
        'PDH': ['PDH_Vmax'],
        'GLT': ['GLT_Vmax'],
        'ACN_1': ['ACN_1_Vmax'],
        'ACN_2': ['ACN_2_Vmax'],
        'ICD': ['icd'],
        'LPD': ['LPD_Vmax'],
        'SK': ['SK_Vmax'],
        'SDH': ['SDH_Vmax'],
        'FUMA': ['FUMA_Vmax'],
        'MQO': ['MQO_Vmax'],
        'MDH': ['MDH_Vmax'],
        'ACEA': ['ACEA_Vmax'],
        'ACEB': ['ACEB_Vmax'],
        'EDD': ['EDD_Vmax'],
        'EDA': ['EDA_Vmax'],
        'NADH_req': ['NADH_req_Vmax'],
        'ATP_syn': ['ATP_syn_Vmax'],
        'ACK': ['ACK_Vmax'],
        'ACS': ['ACS_Vmax'],
        'PTA': ['PTA_Vmax'],
        'MYTBO': ['MYTBO_Vmax'],
        'SQR': ['SQR_Vmax'],
        'NDHII': ['NDHII_Vmax'],
        'GROWTH': ['GROWTH_Vmax'],
        'ATP_MAINTENANCE': ['ATP_MAINTENANCE_Vmax'],
        'XCH_GLC': ['XCH_GLC_Vmax'],
        'PIT': ['PIT_Vmax'],
        'XCH_P': ['XCH_P_Vmax'],
        'XCH_ACE1': ['XCH_ACE1_Vmax'],
        'XCH_ACE2': ['XCH_ACE2_Vmax']
    }

    model = load_kinetic_model(sbmlFile, mapParamReacs)
    simulProblem = KineticSimulationProblem(
        model,
        tSteps=[0, KineticConfigurations.STEADY_STATE_TIME],
        timeout=600)
    critParams = [
        'ATP_MAINTENANCE_Vmax', 'GROWTH_Vmax', 'NDHII_Vmax', 'PIT_Vmax',
        'eiicbP', 'ei', 'eiP', 'eiia'
    ]
    allParams = list(
        set(
            itertools.chain.from_iterable(
                simulProblem.model.reacParamsFactors.values())))
    idsToManipulate = [x for x in allParams if x not in critParams]

    return simulProblem, idsToManipulate
Ejemplo n.º 9
0
def ko_jahan():
    sbmlFile = '/Volumes/Data/Documents/Projects/DeCaF/Optimizations/Data/Jahan2016_chemostat_fixed.xml'
    fileRes = "/Volumes/Data/Documents/Projects/DeCaF/Optimizations/Results/optim_Jahan_Suc_ko.csv"
    mapParamReacs = {
        "vE_6PGDH": ["v6PGDH_max"],
        "vE_Ack": ["vAck_max"],
        "vE_Ack_medium": ["vAck_max"],
        "vE_Cya": ["vCya_max"],
        "vE_Eda": ["vEda_max"],
        "vE_Edd": ["vEdd_max"],
        "vE_Fum": ["Fum"],
        "vE_G6PDH": ["vG6PDH_max"],
        "vE_MDH": ["MDH"],
        "vE_Pgi": ["vPgi_max"],
        "vE_Pgl": ["vPgl_max"],
        "vE_Pta": ["vPta_max"],
        "vE_R5PI": ["vR5PI_max"],
        "vE_Ru5P": ["vRu5P_max"],
        "vE_Tal": ["vTal_max"],
        "vE_TktA": ["vTktA_max"],
        "vE_TktB": ["vTktB_max"],
        "vE_cAMPdegr": ["vcAMPdegr_max"],
        "vNonPTS": ["vNonPTS_max"],
        "vNonPTS_medium": ["vNonPTS_max"],
        "vPTS4": ["vPTS4_max"],
        "vPTS4_medium": ["vPTS4_max"],
        "vE_AceKki": ["AceK"],
        "vE_AceKph": ["AceK"],
        "vE_Acs": ["Acs"],
        "vE_Acs_medium": ["Acs"],
        "vE_CS": ["CS"],
        "vE_Fba": ["Fba"],
        "vE_Fbp": ["Fbp"],
        "vE_GAPDH": ["GAPDH"],
        "vE_Glk": ["Glk"],
        "vE_ICDH": ["ICDH"],
        "vE_Icl": ["Icl"],
        "vE_MS": ["MS"],
        "vE_Mez": ["Mez"],
        "vE_PDH": ["PDH"],
        "vE_Pck": ["Pck"],
        "vE_Pfk": ["Pfk"],
        "vE_Ppc": ["Ppc"],
        "vE_Pps": ["Pps"],
        "vE_Pyk": ["Pyk"],
        "vE_SDH": ["SDH"],
        "vE_aKGDH": ["aKGDH"]
    }

    model = load_kinetic_model(sbmlFile, mapParamReacs)

    objFunc = build_evaluation_function("targetFlux", ["vD_SUC"])
    simulProblem = KineticSimulationProblem(
        model, tSteps=[0, KineticConfigurations.STEADY_STATE_TIME])
    result = kinetic_strain_optim(simulProblem,
                                  objFunc=objFunc,
                                  levels=LEVELS,
                                  isMultiProc=False,
                                  candidateSize=size,
                                  resultFile=fileRes)
    result.print()