def label_activity(label): """ Create a DataFrame containing the per-session per-subject mean values for an autogenerated ROI based on the given label. Other parameter customizations are hard-coded below. """ import pandas as pd from samri.plotting import summary from samri.report import roi from samri.utilities import bids_substitution_iterator from samri.fetch.local import roi_from_atlaslabel from os.path import basename, splitext mapping='/usr/share/mouse-brain-atlases/dsurqec_mapping.csv' atlas='/usr/share/mouse-brain-atlases/dsurqec_40micron_labels.nii' my_roi = roi_from_atlaslabel(atlas, mapping=mapping, label_names=[label], ) workflow_name = 'generic' substitutions = bids_substitution_iterator( ["ofM","ofMaF","ofMcF1","ofMcF2","ofMpF"], ['5691',"5689","5690","5700","6451","6460","6456","6461","6462"], ["CogB",], "~/ni_data/ofM.dr/bids/", workflow_name, acquisitions=["EPI",], validate_for_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_tstat.nii.gz', ) df = roi.per_session(substitutions, filename_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_tstat.nii.gz', roi_mask=my_roi, feature=[label], atlas=atlas, mapping=mapping, ) df['treatment']='Fluoxetine' substitutions_ = bids_substitution_iterator( ["ofM","ofMaF","ofMcF1","ofMcF2","ofMpF"], ["6262","6255","5694","5706",'5704','6455','6459'], ["CogB",], "~/ni_data/ofM.dr/bids/", workflow_name, acquisitions=["EPI",], validate_for_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_tstat.nii.gz', ) df_ = roi.per_session(substitutions_, filename_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_tstat.nii.gz', roi_mask=my_roi, feature=[label], atlas=atlas, mapping=mapping, ) df_['treatment']='Vehicle' df=pd.concat([df_,df]) df=df.rename(columns={'session': 'Session',}) df.to_csv('~/ni_data/ofM.dr/bids/l1/{}/{}.csv'.format(workflow_name, label))
def dr_activity(): import pandas as pd from behaviopy.plotting import qualitative_times from samri.plotting import summary from samri.report import roi from samri.utilities import bids_substitution_iterator from samri.fetch.local import roi_from_atlaslabel workflow_name = 'composite' substitutions = bids_substitution_iterator( ["ofM", "ofMaF", "ofMcF1", "ofMcF2", "ofMpF"], ['5691', "5689", "5690", "5700"], [ "CogB", ], "~/ni_data/ofM.dr/", workflow_name, acquisitions=[ "EPI", ], check_file_format= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_trial-{trial}_cbv_tstat.nii.gz', ) fit, anova, subjectdf, voxeldf = roi.per_session( substitutions, filename_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_trial-{trial}_cbv_tstat.nii.gz', roi_mask="~/ni_data/templates/roi/DSURQEc_dr.nii.gz", ) subjectdf['treatment'] = 'Fluoxetine' substitutions_ = bids_substitution_iterator( ["ofM", "ofMaF", "ofMcF1", "ofMcF2", "ofMpF"], ["6262", "6255", "5694", "5706", '5704'], [ "CogB", ], "~/ni_data/ofM.dr/", workflow_name, acquisitions=[ "EPI", ], check_file_format= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_trial-{trial}_cbv_tstat.nii.gz', ) fit_, anova_, subjectdf_, voxeldf_ = roi.per_session( substitutions_, filename_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_trial-{trial}_cbv_tstat.nii.gz', roi_mask="~/ni_data/templates/roi/DSURQEc_dr.nii.gz", ) subjectdf_['treatment'] = 'Vehicle' subjectdf = pd.concat([subjectdf_, subjectdf]) subjectdf = subjectdf.rename(columns={ 'session': 'Session', }) subjectdf.to_csv( '~/ni_data/ofM.dr/l1/{}/dr_summary.csv'.format(workflow_name))
def label_connectivity(workflow_name='DSURQEc_drp', labels=['cortex']): import pandas as pd from samri.plotting import summary from samri.report import roi from samri.utilities import bids_substitution_iterator from samri.fetch.local import roi_from_atlaslabel mapping='/usr/share/mouse-brain-atlases/dsurqec_mapping.csv' atlas='/usr/share/mouse-brain-atlases/dsurqec_40micron_labels.nii' my_roi = roi_from_atlaslabel(atlas, mapping=mapping, label_names=labels, ) substitutions = bids_substitution_iterator( ["ofM","ofMaF","ofMcF1","ofMcF2","ofMpF"], ['5691',"5689","5690","5700","6451","6460","6456","6461","6462"], ["CogB",], "~/ni_data/ofM.dr/bids", workflow_name, acquisitions=["EPI",], validate_for_template='{data_dir}/fc/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_zstat.nii.gz', ) df = roi.per_session(substitutions, filename_template='{data_dir}/fc/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_zstat.nii.gz', roi_mask=my_roi, feature=labels, atlas=atlas, mapping=mapping, ) df['treatment']='Fluoxetine' substitutions_ = bids_substitution_iterator( ["ofM","ofMaF","ofMcF1","ofMcF2","ofMpF"], ["6262","6255","5694","5706",'5704','6455','6459'], ["CogB",], "~/ni_data/ofM.dr/bids", workflow_name, acquisitions=["EPI",], validate_for_template='{data_dir}/fc/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_zstat.nii.gz', ) df_ = roi.per_session(substitutions_, filename_template='{data_dir}/fc/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_zstat.nii.gz', roi_mask=my_roi, feature=labels, atlas=atlas, mapping=mapping, ) df_['treatment']='Vehicle' df = pd.concat([df_,df]) df = df.rename(columns={'session': 'Session','t':'z'}) df.to_csv('~/ni_data/ofM.dr/bids/fc/{}/{}_summary.csv'.format(workflow_name,'-'.join(labels)))
def ctx_pattern_mask_drs_sfc(): import pandas as pd from samri.plotting import summary from samri.report import roi from samri.utilities import bids_substitution_iterator from samri.fetch.local import roi_from_atlaslabel workflow_name = 'drs_seed' my_roi = '~/ni_data/ofM.dr/l2/anova_ctx/anova_fstat.nii.gz' my_roi = roi.from_img_threshold(my_roi, 2., save_as='~/ni_data/ofM.dr/fc/{}/ctx_pattern_mask.nii.gz'.format(workflow_name)) substitutions = bids_substitution_iterator( ["ofM","ofMaF","ofMcF1","ofMcF2","ofMpF"], ['5691',"5689","5690","5700"], ["CogB",], "~/ni_data/ofM.dr/", workflow_name, acquisitions=["EPI",], check_file_format='~/ni_data/ofM.dr/fc/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_zstat.nii.gz', ) subjectdf, voxeldf = roi.per_session(substitutions, filename_template='~/ni_data/ofM.dr/fc/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_zstat.nii.gz', roi_mask=my_roi, ) subjectdf['treatment']='Fluoxetine' substitutions_ = bids_substitution_iterator( ["ofM","ofMaF","ofMcF1","ofMcF2","ofMpF"], ["6262","6255","5694","5706",'5704'], ["CogB",], "~/ni_data/ofM.dr/", workflow_name, acquisitions=["EPI",], check_file_format='~/ni_data/ofM.dr/fc/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_zstat.nii.gz', ) subjectdf_, voxeldf_ = roi.per_session(substitutions_, filename_template='~/ni_data/ofM.dr/fc/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_zstat.nii.gz', roi_mask=my_roi, ) subjectdf_['treatment']='Vehicle' subjectdf=pd.concat([subjectdf_,subjectdf]) subjectdf=subjectdf.rename(columns={'session': 'Session','t':'z'}) subjectdf.to_csv('~/ni_data/ofM.dr/fc/{}/ctx_pattern_mask_summary.csv'.format(workflow_name))
def plot_roi_per_session( l1_dir, roi_mask, color, roi_mask_normalize="", ): from samri.plotting import summary from samri.report import roi substitutions = bids_substitution_iterator( ["ofM", "ofM_aF", "ofM_cF1", "ofM_cF2", "ofM_pF"], # ["5689","5690","5700"], ["6262", "6255", "5694", "5706", '5704'], # ["4007","4011","4012","5689","5690","5691"], # ["4009","4011","4012","5689","5690","5691"], # ["4008","4009","4011","4012",], ["EPI_CBV_chr_longSOA"], "~/ni_data/ofM.dr/", "", l1_dir=l1_dir, ) if isinstance(roi, list) and not "/" in roi[0]: roi = roi_from_atlaslabel( "~/ni_data/templates/roi/DSURQEc_200micron_labels.nii", mapping="~/ni_data/templates/roi/DSURQE_mapping.csv", label_names=roi, ) fit, anova, subjectdf, voxeldf = roi.per_session( substitutions, t_file_template= "{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_trial-{trial}_tstat.nii.gz", roi_mask=roi_mask, roi_mask_normalize=roi_mask_normalize, ) summary.plot_roi_per_session(subjectdf, voxeldf, legend_loc=2, figure="per-participant", color=color, save_as="~/test.png") print(anova)
def drs_activity( roi, atlas='/usr/share/mouse-brain-templates/dsurqec_40micron_labels.nii', mapping='/usr/share/mouse-brain-templates/dsurqe_labels.csv', ): """ TODO : make more generalizable, too many hardcoded values TODO : Make more elegant, atlas/split could be (partly) relegated to masking function instead of being done here. Create a DataFrame containing the per-session per-subject mean values for an autogenerated ROI based on the given label. Other parameter customizations are hard-coded below. """ import pandas as pd from samri.report import roi from samri.utilities import bids_substitution_iterator from samri.fetch.local import roi_from_atlaslabel from os.path import basename, splitext if mapping and atlas: mapping = path.abspath(path.expanduser(mapping)) atlas = path.abspath(path.expanduser(atlas)) my_roi = roi_from_atlaslabel( atlas, mapping=mapping, label_names=[roi], ) roi_name = roi else: roi = path.abspath(path.expanduser(roi)) roi_name = splitext(basename(roi))[0] if roi_name[-4:] == '.nii': roi_name = roi_name[:-4] source_workflow = 'generic' substitutions = bids_substitution_iterator( ["ofM", "ofMaF", "ofMcF1", "ofMcF2", "ofMpF"], [ '5691', "5689", "5690", "5700", "6451", "6460", "6456", "6461", "6462" ], [ "CogB", ], "~/ni_data/ofM.dr", source_workflow, acquisitions=[ "EPI", ], validate_for_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_tstat.nii.gz', ) if mapping and atlas: df = roi.per_session( substitutions, filename_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_tstat.nii.gz', roi_mask=my_roi, feature=[roi], atlas=atlas, mapping=mapping, ) else: df = roi.per_session( substitutions, filename_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', roi_mask=roi, ) df['treatment'] = 'Fluoxetine' substitutions_ = bids_substitution_iterator( ["ofM", "ofMaF", "ofMcF1", "ofMcF2", "ofMpF"], ["6262", "6255", "5694", "5706", '5704', '6455', '6459'], [ "CogB", ], "~/ni_data/ofM.dr", source_workflow, acquisitions=[ "EPI", ], validate_for_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_tstat.nii.gz', ) if mapping and atlas: df_ = roi.per_session( substitutions_, filename_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_tstat.nii.gz', roi_mask=my_roi, feature=[roi], atlas=atlas, mapping=mapping, ) else: df_ = roi.per_session( substitutions_, filename_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', roi_mask=roi, ) df_['treatment'] = 'Vehicle' df = pd.concat([df_, df]) df = df.rename(columns={ 'session': 'Session', }) df.to_csv('~/ni_data/ofM.dr/l1/{}/{}.csv'.format(source_workflow, roi_name))
def roi_activity(roi_mask="~/ni_data/templates/roi/DSURQEc_drp.nii.gz"): """ Create a DataFrame containing the per-session per-subject mean values for the specified ROI. Other parameter customizations are hard-coded below. """ import pandas as pd from samri.plotting import summary from samri.report import roi from samri.utilities import bids_substitution_iterator from samri.fetch.local import roi_from_atlaslabel from os.path import basename, splitext workflow_name = 'generic' substitutions = bids_substitution_iterator( ["ofM", "ofMaF", "ofMcF1", "ofMcF2", "ofMpF"], #["5689","5690","6456","6461"], [ '5691', "5689", "5690", "5700", "6451", "6460", "6456", "6461", "6462" ], #['5691',"5689","5690","5700",], [ "CogB", ], "~/ni_data/ofM.dr/bids/", workflow_name, acquisitions=[ "EPI", ], validate_for_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', ) df = roi.per_session( substitutions, filename_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', roi_mask=roi_mask, ) df['treatment'] = 'Fluoxetine' substitutions_ = bids_substitution_iterator( ["ofM", "ofMaF", "ofMcF1", "ofMcF2", "ofMpF"], #["5694","5706",'5704','6455','6459','5794'], ["6262", "6255", "5694", "5706", '5704', '6455', '6459'], #["6262","6255","5694","5706",'5704',], [ "CogB", ], "~/ni_data/ofM.dr/bids/", workflow_name, acquisitions=[ "EPI", ], validate_for_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', ) df_ = roi.per_session( substitutions_, filename_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', roi_mask=roi_mask, ) df_['treatment'] = 'Vehicle' substitutions__ = bids_substitution_iterator( ["ofM"], #["5694","5706",'5704','6455','6459','5794'], [ "6530", "6532", "6542", "6548", '6549', '6552', '6553', '6556', '6557' ], #["6262","6255","56","5706",'5704',], [ "CogB", ], "~/ni_data/ofM.dr/bids/", workflow_name, acquisitions=[ "EPI", ], validate_for_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', ) df__ = roi.per_session( substitutions__, filename_template= '{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', roi_mask=roi_mask, ) df__['treatment'] = 'New' df = pd.concat([df__, df_, df]) df = df.rename(columns={ 'session': 'Session', }) roi_name = splitext(basename(roi_mask))[0] if roi_name[-4:] == '.nii': roi_name = roi_name[:-4] df.to_csv('~/ni_data/ofM.dr/bids/l1/{}/{}.csv'.format( workflow_name, roi_name))
def ctx_drs_connectivity(): import pandas as pd from behaviopy.plotting import qualitative_times from samri.plotting import summary from samri.report import roi from samri.utilities import bids_substitution_iterator from samri.fetch.local import roi_from_atlaslabel workflow_name = 'drs_seed' my_roi = roi_from_atlaslabel( "~/ni_data/templates/roi/DSURQEc_200micron_labels.nii", mapping="~/ni_data/templates/roi/DSURQE_mapping.csv", label_names=["cortex"], ) substitutions = bids_substitution_iterator( ["ofM", "ofMaF", "ofMcF1", "ofMcF2", "ofMpF"], ['5691', "5689", "5690", "5700"], [ "CogB", ], "~/ni_data/ofM.dr/", workflow_name, acquisitions=[ "EPI", ], check_file_format= '~/ni_data/ofM.dr/fc/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_trial-{trial}_cbv_zstat.nii.gz', ) fit, anova, subjectdf, voxeldf = roi.per_session( substitutions, filename_template= '~/ni_data/ofM.dr/fc/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_trial-{trial}_cbv_zstat.nii.gz', roi_mask=my_roi, ) subjectdf['treatment'] = 'Fluoxetine' substitutions_ = bids_substitution_iterator( ["ofM", "ofMaF", "ofMcF1", "ofMcF2", "ofMpF"], ["6262", "6255", "5694", "5706", '5704'], [ "CogB", ], "~/ni_data/ofM.dr/", workflow_name, acquisitions=[ "EPI", ], check_file_format= '~/ni_data/ofM.dr/fc/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_trial-{trial}_cbv_zstat.nii.gz', ) fit_, anova_, subjectdf_, voxeldf_ = roi.per_session( substitutions_, filename_template= '~/ni_data/ofM.dr/fc/{preprocessing_dir}/sub-{subject}/ses-{session}/func/sub-{subject}_ses-{session}_acq-{acquisition}_trial-{trial}_cbv_zstat.nii.gz', roi_mask=my_roi, ) subjectdf_['treatment'] = 'Vehicle' subjectdf = pd.concat([subjectdf_, subjectdf]) subjectdf = subjectdf.rename(columns={'session': 'Session', 't': 'z'}) subjectdf.to_csv( '~/ni_data/ofM.dr/fc/{}/ctx_summary.csv'.format(workflow_name))
def drs_activity(roi, atlas='/usr/share/mouse-brain-atlases/dsurqec_40micron_labels.nii', mapping='/usr/share/mouse-brain-atlases/dsurqe_labels.csv', ): """ TODO : make more generalizable, too many hardcoded values TODO : Make more elegant, atlas/split could be (partly) relegated to masking function instead of being done here. Create a DataFrame containing the per-session per-subject mean values for an autogenerated ROI based on the given label. Other parameter customizations are hard-coded below. """ import pandas as pd from samri.plotting import summary from samri.report import roi from samri.utilities import bids_substitution_iterator from samri.fetch.local import roi_from_atlaslabel from os.path import basename, splitext if mapping and atlas: mapping = path.abspath(path.expanduser(mapping)) atlas = path.abspath(path.expanduser(atlas)) my_roi = roi_from_atlaslabel(atlas, mapping=mapping, label_names=[roi], ) roi_name = roi else: roi = path.abspath(path.expanduser(roi)) roi_name = splitext(basename(roi))[0] if roi_name[-4:] == '.nii': roi_name = roi_name[:-4] source_workflow = 'generic' substitutions = bids_substitution_iterator( ["ofM","ofMaF","ofMcF1","ofMcF2","ofMpF"], ['5691',"5689","5690","5700","6451","6460","6456","6461","6462"], ["CogB",], "~/ni_data/ofM.dr", source_workflow, acquisitions=["EPI",], validate_for_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_tstat.nii.gz', ) if mapping and atlas: df = roi.per_session(substitutions, filename_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_tstat.nii.gz', roi_mask=my_roi, feature=[roi], atlas=atlas, mapping=mapping, ) else: df = roi.per_session(substitutions, filename_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', roi_mask=roi, ) df['treatment']='Fluoxetine' substitutions_ = bids_substitution_iterator( ["ofM","ofMaF","ofMcF1","ofMcF2","ofMpF"], ["6262","6255","5694","5706",'5704','6455','6459'], ["CogB",], "~/ni_data/ofM.dr", source_workflow, acquisitions=["EPI",], validate_for_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_tstat.nii.gz', ) if mapping and atlas: df_ = roi.per_session(substitutions_, filename_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_acq-{acquisition}_task-{task}_cbv_tstat.nii.gz', roi_mask=my_roi, feature=[roi], atlas=atlas, mapping=mapping, ) else: df_ = roi.per_session(substitutions_, filename_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', roi_mask=roi, ) df_['treatment']='Vehicle' df=pd.concat([df_,df]) df=df.rename(columns={'session': 'Session',}) df.to_csv('~/ni_data/ofM.dr/l1/{}/{}.csv'.format(source_workflow, roi_name))
def roi_activity(roi_mask="~/ni_data/templates/roi/DSURQEc_drp.nii.gz"): """ Create a DataFrame containing the per-session per-subject mean values for the specified ROI. Other parameter customizations are hard-coded below. """ import pandas as pd from samri.plotting import summary from samri.report import roi from samri.utilities import bids_substitution_iterator from samri.fetch.local import roi_from_atlaslabel from os.path import basename, splitext workflow_name = 'generic' substitutions = bids_substitution_iterator( ["ofM","ofMaF","ofMcF1","ofMcF2","ofMpF"], #["5689","5690","6456","6461"], ['5691',"5689","5690","5700","6451","6460","6456","6461","6462"], #['5691',"5689","5690","5700",], ["CogB",], "~/ni_data/ofM.dr/bids/", workflow_name, acquisitions=["EPI",], validate_for_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', ) df = roi.per_session(substitutions, filename_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', roi_mask=roi_mask, ) df['treatment'] = 'Fluoxetine' substitutions_ = bids_substitution_iterator( ["ofM","ofMaF","ofMcF1","ofMcF2","ofMpF"], #["5694","5706",'5704','6455','6459','5794'], ["6262","6255","5694","5706",'5704','6455','6459'], #["6262","6255","5694","5706",'5704',], ["CogB",], "~/ni_data/ofM.dr/bids/", workflow_name, acquisitions=["EPI",], validate_for_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', ) df_ = roi.per_session(substitutions_, filename_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', roi_mask=roi_mask, ) df_['treatment'] = 'Vehicle' substitutions__ = bids_substitution_iterator( ["ofM"], #["5694","5706",'5704','6455','6459','5794'], ["6530","6532","6542","6548",'6549','6552','6553','6556','6557'], #["6262","6255","56","5706",'5704',], ["CogB",], "~/ni_data/ofM.dr/bids/", workflow_name, acquisitions=["EPI",], validate_for_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', ) df__ = roi.per_session(substitutions__, filename_template='{data_dir}/l1/{l1_dir}/sub-{subject}/ses-{session}/sub-{subject}_ses-{session}_task-{task}_acq-{acquisition}_cbv_tstat.nii.gz', roi_mask=roi_mask, ) df__['treatment'] = 'New' df = pd.concat([df__,df_,df]) df = df.rename(columns={'session': 'Session',}) roi_name = splitext(basename(roi_mask))[0] if roi_name[-4:] == '.nii': roi_name = roi_name[:-4] df.to_csv('~/ni_data/ofM.dr/bids/l1/{}/{}.csv'.format(workflow_name, roi_name))