Mercurial > repos > laurenmarazzi > netisce_test
diff tools/myTools/bin/sfa/data/pezze_2012/__init__.py @ 1:7e5c71b2e71f draft default tip
Uploaded
author | laurenmarazzi |
---|---|
date | Wed, 22 Dec 2021 16:00:34 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/myTools/bin/sfa/data/pezze_2012/__init__.py Wed Dec 22 16:00:34 2021 +0000 @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- + +""" +[Reference] +Dalle Pezze, P. et al. +A Dynamic Network Model of mTOR Signaling Reveals +TSC-Independent mTORC2 Regulation. +Science Signaling. 2012 Mar 27;5(217):ra25 +http://doi:10.1126/scisignal.2002469 + +[Information] +- The experimental data was generated using ODE model of Pezze 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 Junsoo Kang (reality312@kaist.ac.kr). +- The unit of insulin (I) stimulation is nM. +""" + +import sys +if sys.version_info <= (2, 8): + from builtins import super + +import os +import re +import glob + +import numpy as np +import pandas as pd + +import sfa +import sfa.base + + +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', '*.tsv') + 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 + +def _create_single_data(abbr=None, fname=None): + dpath = os.path.dirname(__file__) + + if fname: + items = re.split('[._]', fname) + + sim_duration = items[0] + data_type = items[1] + stim_I = items[2] # The concentration of insulin stimulation + + # 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_I=%s"%(sim_duration, data_type, conc_I) + + elif abbr: # Use abbr + items = re.split('[_]', abbr) + + sim_duration = items[1] + data_type = items[2] + stim_I = items[3] # The concentration of insulin stimulation + + # Fetch the concentration of I + m = re.search("I=((\w|\.)+)", stim_I) + conc_I = m.group(1) + fname = "%s_%s_I=%s.tsv" % (sim_duration, data_type, conc_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 PezzeData(abbr, data_type, + conc_I, + fname_conds, fname_exp) +# end of def + + +class PezzeData(sfa.base.Data): + def __init__(self, abbr, data_type, conc_I, fname_conds, fname_exp): + super().__init__() + self._abbr = abbr + fstr_name = "PEZZE_2011_%s[I=%snM]" + str_name = fstr_name % (data_type, conc_I) + self._name = str_name + + inputs = {} + inputs['I/IGF'] = 1 #np.log2(float(conc_I)) + + self.initialize(__file__, + inputs=inputs, + fname_conds=fname_conds, + fname_exp=fname_exp) + + # end of def __init__ +# end of def class \ No newline at end of file