Skip to content

Commit

Permalink
submit more model fits for Anke on LISA
Browse files Browse the repository at this point in the history
  • Loading branch information
anne-urai committed Jul 11, 2019
1 parent 021a595 commit fd03357
Show file tree
Hide file tree
Showing 6 changed files with 88 additions and 1,089 deletions.
17 changes: 14 additions & 3 deletions fitHDDM.py
Expand Up @@ -266,11 +266,20 @@ def bic(self):
'stimcoding_z_prevresp_stcoh', #
'stimcoding_dc_z_prevresp_stcoh'] # ] # 50

models = ['stimcoding_nohist',
'stimcoding_dc_prevresp',
'stimcoding_z_prevresp',
'stimcoding_dc_z_prevresp',
'stimcoding_dc_prevstim',
'stimcoding_z_prevstim',
'stimcoding_dc_z_prevresp']

datasets = ['Murphy', 'JW_yesno', 'JW_PNAS', 'NatComm', 'MEG',
'Anke_MEG_neutral', 'Anke_MEG_transition', 'Anke_MEG_transition_no81',
'MEG_MEGdata', 'NatComm_rescaled']

datasets = ['Murphy', 'JW_yesno', 'JW_PNAS', 'NatComm', 'MEG', 'Anke_MEG_transition']
datasets = ['Anke_MEG_blocks']

# recode
if isinstance(d, int):
Expand All @@ -284,6 +293,9 @@ def bic(self):
usr = os.environ['USER']
if 'aeurai' in usr:
mypath = os.path.realpath(os.path.expanduser('/nfs/aeurai/HDDM/%s'%datasets[dx]))
# LISA PROJECT SPACE ENDED, USE HOME SPACE
mypath = os.path.realpath(os.path.expanduser('/home/aeurai/Data/HDDM/%s'%datasets[dx]))

elif 'anne' in usr:
mypath = os.path.realpath(os.path.expanduser('~/Data/HDDM/%s'%datasets[dx]))

Expand All @@ -301,10 +313,9 @@ def bic(self):
filename = fnmatch.filter(os.listdir(mypath), '*.csv')
mydata = hddm.load_csv(os.path.join(mypath, filename[0]))

# correct a weirdness in Anke's data
# round up to 20,50,80
if 'transitionprob' in mydata.columns:
mydata.transitionprob = mydata.transitionprob * 100;
mydata.transitionprob = mydata.transitionprob.round();
mydata.transitionprob = (mydata.transitionprob * 100).round()

starttime = time.time()
model_filename = os.path.join(mypath, models[vx], 'modelfit-md%d.model'%trace_id)
Expand Down
71 changes: 71 additions & 0 deletions hddm_models.py
Expand Up @@ -185,6 +185,77 @@ def make_model(mypath, mydata, model_name, trace_id):
include=('sv', 'sz'), group_only_nodes=['sv', 'sz'],
depends_on={'dc':['prevresp'], 'z':['prevresp']})

# ============================================ #
# STIMCODING PREVSTIM
# ============================================ #

elif model_name == 'stimcoding_dc_prevstim':

# get the right variable coding
mydata = recode_4stimcoding(mydata)

# also split by transition probability and include coherence-dependence of drift rate
if 'transitionprob' in mydata.columns:
m = hddm.HDDMStimCoding(mydata, stim_col='stimulus', split_param='v',
drift_criterion=True, bias=True, p_outlier=0.05,
include=('sv', 'sz'), group_only_nodes=['sv', 'sz'],
depends_on={'v': ['coherence'], 'dc':['prevstim', 'transitionprob']})
elif len(mydata.coherence.unique()) > 1:
m = hddm.HDDMStimCoding(mydata, stim_col='stimulus', split_param='v',
drift_criterion=True, bias=True, p_outlier=0.05,
include=('sv', 'sz'), group_only_nodes=['sv', 'sz'],
depends_on={'v': ['coherence'], 'dc':['prevstim']})
else:
m = hddm.HDDMStimCoding(mydata, stim_col='stimulus', split_param='v',
drift_criterion=True, bias=True, p_outlier=0.05,
include=('sv', 'sz'), group_only_nodes=['sv', 'sz'],
depends_on={'dc':['prevstim']})

elif model_name == 'stimcoding_z_prevstim':

# get the right variable coding
mydata = recode_4stimcoding(mydata)

# for Anke's data, also split by transition probability
if 'transitionprob' in mydata.columns:
m = hddm.HDDMStimCoding(mydata, stim_col='stimulus', split_param='v',
drift_criterion=True, bias=True, p_outlier=0.05,
include=('sv', 'sz'), group_only_nodes=['sv', 'sz'],
depends_on={'v': ['coherence'], 'z':['prevstim', 'transitionprob']})
elif len(mydata.coherence.unique()) > 1:
m = hddm.HDDMStimCoding(mydata, stim_col='stimulus', split_param='v',
drift_criterion=True, bias=True, p_outlier=0.05,
include=('sv', 'sz'), group_only_nodes=['sv', 'sz'],
depends_on={'v': ['coherence'], 'z':['prevstim']})
else:
m = hddm.HDDMStimCoding(mydata, stim_col='stimulus', split_param='v',
drift_criterion=True, bias=True, p_outlier=0.05,
include=('sv', 'sz'), group_only_nodes=['sv', 'sz'],
depends_on={'z':['prevstim']})

# this is the model that will generate most of the figures
elif model_name == 'stimcoding_dc_z_prevstim':

# get the right variable coding
mydata = recode_4stimcoding(mydata)

# for Anke's data, also split by transition probability
if 'transitionprob' in mydata.columns:
m = hddm.HDDMStimCoding(mydata, stim_col='stimulus', split_param='v',
drift_criterion=True, bias=True, p_outlier=0.05,
include=('sv', 'sz'), group_only_nodes=['sv', 'sz'],
depends_on={'v': ['coherence'], 'dc':['prevstim', 'transitionprob'],
'z':['prevstim', 'transitionprob']})
elif len(mydata.coherence.unique()) > 1:
m = hddm.HDDMStimCoding(mydata, stim_col='stimulus', split_param='v',
drift_criterion=True, bias=True, p_outlier=0.05,
include=('sv', 'sz'), group_only_nodes=['sv', 'sz'],
depends_on={'v': ['coherence'], 'dc':['prevstim'], 'z':['prevstim']})
else:
m = hddm.HDDMStimCoding(mydata, stim_col='stimulus', split_param='v',
drift_criterion=True, bias=True, p_outlier=0.05,
include=('sv', 'sz'), group_only_nodes=['sv', 'sz'],
depends_on={'dc':['prevstim'], 'z':['prevstim']})

# ============================================ #
# different non-decision time per coherence
Expand Down

0 comments on commit fd03357

Please sign in to comment.