if __name__ == "__main__": if len(sys.argv) < 4: print("Usage: python %s <data_root_dir> " "<preproc_root_dir> <glm_root_dir>" % sys.argv[0]) print("Example:\r\npython %s ~/datasets/raw" " ~/datasets/preproc ~/datasets/glm") % sys.argv[0] sys.exit(1) root_dir, preproc_dir, glm_dir = sys.argv[1:] # download data data_dir = fetch_openfmri(FULL_ID, root_dir) # alternative task_contrasts (errors in original file?) contrasts_file = "%s_task_contrasts.txt" % SHORT_ID assert os.path.isfile(contrasts_file), "BUG: No contrasts file in code repo: %s" % contrasts_file dest = os.path.join(data_dir, SHORT_ID, "models", MODEL_ID, "task_contrasts.txt") if not os.path.isfile(dest): os.symlink(contrasts_file, dest) # apply SPM preprocessing apply_preproc(SHORT_ID, data_dir, preproc_dir, ignore_list, dataset_description=DESCRIPTION) # prepare GLM (get data and design) preproc_data, motion_params = load_preproc(SHORT_ID, preproc_dir) glm_params = load_glm_params( SHORT_ID, data_dir, MODEL_ID, subject_ids=preproc_data.keys(), motion_params=motion_params ) apply_glm(SHORT_ID, glm_dir, preproc_data, glm_params, resample=True, n_jobs=-1)
return data, motion if __name__ == '__main__': # set hard coded data paths preproc_root_dir = '/volatile/home/edohmato/openfmri_pypreproc_runs' data_root_dir = '/neurospin/tmp/havoc/openfmri_raw' out_root_dir = '/volatile/protocols/glm_open' # more data path business ds_id = 'ds052' # XXX ds011 has have model101... model_id = 'model001' ds_name = datasets[ds_id].lower().replace(' ', '_') data_dir = os.path.join(data_root_dir, ds_name, ds_id) preproc_dir = os.path.join(preproc_root_dir, ds_id) out_dir = os.path.join(out_root_dir, ds_name, ds_id) # load preproc data preproc_data, motion_params = load_preproc_data( preproc_dir) # load glm params glm_params = load_glm_params(data_dir, model_id, subject_ids=preproc_data.keys(), motion_params=motion_params, ) # apply glm apply_glm(out_dir, preproc_data, glm_params, n_jobs=-1)