Source code for sfa.data.borisov_2009

# -*- coding: utf-8 -*-

"""
[Reference]
Borisov, N. et al.
Systems-level interactions between insulin-EGF networks amplify mitogenic
signaling.
Molecular Systems Biology (2009) 5(1), 256.
http://doi.org/10.1038/msb.2009.19

[Information]
- The experimental data was generated using ODE model of Borisov et al.
  (It is hypothesized that the ODE model is quite well constructed enough to be
  a substitute for real experimental data).
- The directed network was created by Daewon Lee (dwl@kaist.ac.kr).
- The units of EGF and insulin (I) stimulation are nM.
"""

import sys
if sys.version_info <= (2, 8):
    from builtins import super

import os
import re
import glob

import pandas as pd

import sfa
import sfa.base


[docs]def create_data(abbr=None): if abbr is None: # Create all data objects data_mult = {} # Multiple data dpath = os.path.dirname(__file__) fstr_file = os.path.join(dpath, 'exp_data', 'exp_*') for abspath in glob.glob(fstr_file): fname = os.path.basename(abspath) data_obj = _create_single_data(abbr, fname=fname) data_mult[data_obj.abbr] = data_obj # end of for return data_mult else: # Create a single data object return _create_single_data(abbr)
# end of def
[docs]def create_test_data(): data_mult = {} dpath = os.path.dirname(__file__) fstr_file = os.path.join(dpath, 'exp_data_test', 'exp_*') for abspath in glob.glob(fstr_file): fname = os.path.basename(abspath) items = re.split("[_.]", fname) data_type = items[1] stim_type = items[2] if 'EGF' in stim_type: conc_EGF = 1 else: conc_EGF = 0.0001 if 'I' in stim_type: conc_I = 1 else: conc_I = 0.0001 #data_obj = #_create_single_data(abbr, fname=fname) #data_mult[data_obj.abbr] = data_obj # str_exp_file = os.path.join(dpath, 'exp_data_test', fname) # df_exp = pd.read_table(str_exp_file, # header=0, # index_col=0) # Load basal activity data # # # Load basal activity data # str_ba_file = os.path.join(dpath, 'exp_data_test', 'conds.tsv') # df_conds = pd.read_table(str_ba_file, # header=0, # index_col=0) # # abbr = "BORISOV_2009_%s_%s"%(data_type, stim_type) # data_obj = BorisovData(abbr, data_type, conc_EGF, conc_I, df_conds, df_exp) abbr = "BORISOV_2009_%s_%s" % (data_type, stim_type) fname_conds = os.path.join('exp_data_test', "conds.tsv") fname_exp = os.path.join('exp_data_test', fname) data_obj = BorisovData(abbr, data_type, conc_EGF, conc_I, fname_conds, fname_exp) data_mult[abbr] = data_obj # end of for return data_mult
def _create_single_data(abbr=None, fname=None): dpath = os.path.dirname(__file__) if fname: items = re.split('[._+]', fname) sim_duration = items[1] data_type = items[2] stim_EGF = items[3] stim_I = items[4] m = re.search("EGF=((\d|d)+)", stim_EGF) dconc_EGF = m.group(1) conc_EGF = dconc_EGF.replace('d', '.') # Use '.' instead of 'd' # Fetch the concentration of I m = re.search("I=((\d|d)+)", stim_I) dconc_I = m.group(1) conc_I = dconc_I.replace('d', '.') # Use '.' instead of 'd' abbr = "%s_%s_EGF=%s+I=%s"%(sim_duration, data_type, conc_EGF, conc_I) elif abbr: # Use abbr items = re.split('[_+]', abbr) sim_duration = items[1] data_type = items[2] stim_EGF = items[3] stim_I = items[4] # Fetch the concentration of EGF m = re.search("EGF=((\w|\.)+)", stim_EGF) conc_EGF = m.group(1) dconc_EGF = conc_EGF.replace('.', 'd') # Use 'd' instead of '.' # Fetch the concentration of I m = re.search("I=((\w|\.)+)", stim_I) conc_I = m.group(1) dconc_I = conc_I.replace('.', 'd') # Use 'd' instead of '.' fname = "exp_%s_%s_EGF=%s+I=%s.tsv" % (sim_duration, data_type, dconc_EGF, dconc_I) else: raise ValueError("One of abbr or fname should be given" "in %s._create_single_data()"%(__name__)) # end of if-else fname_exp = os.path.join('exp_data', fname) fname_conds = "conds.tsv" return BorisovData(abbr, data_type, conc_EGF, conc_I, fname_conds, fname_exp) # str_exp_file = os.path.join(dpath, 'exp_data', fname) # df_exp = pd.read_table(str_exp_file, # header=0, index_col=0) # # # Load basal activity data # str_ba_file = os.path.join(dpath, "conds.tsv") # df_conds = pd.read_table(str_ba_file, # header=0, # index_col=0) #return BorisovData(abbr, data_type, conc_EGF, conc_I, df_conds, df_exp) # end of def
[docs]class BorisovData(sfa.base.Data): def __init__(self, abbr, data_type, conc_EGF, conc_I, fname_conds, fname_exp): super().__init__() self._abbr = abbr fstr_name = "BORISOV_2009_%s[EGF=%snM,I=%snM]" str_name = fstr_name % (data_type, conc_EGF, conc_I) self._name = str_name inputs = {} inputs['EGF'] = 1 #float(conc_EGF) inputs['I'] = 1 #float(conc_I) self.initialize(__file__, inputs=inputs, fname_conds=fname_conds, fname_exp=fname_exp)
# end of def __init__ # end of def class BorisovData