def main(datafiles): for subj_file in datafiles: subid = gu.get_subid(subj_file, subjstr) print 'Starting on subject %s'%(subid) dat, aff = gu.load_nii(subj_file) nets_dat = dat[:,:,:,net_idx] nets_diff_array = calculate_diff_map(nets_dat) nets_diff_outfile = os.path.join(outdir, ''.join(['nets_diff_',subid,'.nii.gz'])) gu.save_nii(nets_diff_outfile, nets_diff_array, aff)
return (float(overlap_nvoxels)/float(roi_nvoxels)) if __name__ == '__main__': ########### Set parameters ########## datadir = '/home/jagust/rsfmri_ica/GIFT/GICA_d30/BPM/results/PIB_Index_log_scaled/Results_ROIs' roiglob = os.path.join(datadir,'ic*.nii.gz') roi_files = glob(roiglob) template = '/home/jagust/rsfmri_ica/GIFT/GICA_d30/network_volumes/netmasks/ic_masks_4D.nii.gz' template_mapfile = '/home/jagust/rsfmri_ica/GIFT/GICA_d30/network_volumes/netmasks/template_mapping.txt' outfile = os.path.join(datadir, 'Network_Labels_GICA30.csv') #################################### #Load template and 4D roi data tempdat, _ = utils.load_nii(template) temp_mapping = utils.load_mapping(template_mapfile) # Verify the shape of datasets match roi_labels = {} for roi in roi_files: overlap_dict = {} _,roi_name,_ = utils.split_filename(roi) roidat, _ = utils.load_nii(roi) assert tempdat.shape[:-1] == roidat.shape for j in range(tempdat.shape[3]): temp_mask = tempdat[:,:,:,j] pct_overlap = calc_pct_overlap(roidat, temp_mask) net_name = temp_mapping[str(j+1)].split('.')[0] overlap_dict[net_name] = pct_overlap
def calc_pct_overlap(roi, target): roi_nvoxels = roi.sum() overlap = (roi==target) * roi overlap_nvoxels = overlap.sum() return (overlap_nvoxels/roi_nvoxels) ########### Set parameters ########## datadir = '/home/jagust/rsfmri_ica/cluster_roi/ROIs' roi4Dfile = os.path.join(datadir,'rm_group_tcorr_cluster_150_4D.nii.gz') template = '/home/jagust/jelman/templates/Yeo_JNeurophysiol11_MNI152/3mm/Yeo2011_7Networks_4D_LiberalMask.nii.gz' template_mapfile = '/home/jagust/jelman/templates/Yeo_JNeurophysiol11_MNI152/template_mapping.txt' outfile = os.path.join(datadir, 'ROI_Labels.csv') #################################### #Load template and 4D roi data tempdat, _ = utils.load_nii(template) temp_mapping = utils.load_mapping(template_mapfile) roi4Ddat, _ = utils.load_nii(roi4Dfile) # Verify the shape of datasets match assert tempdat.shape[:-1] == roi4Ddat.shape[:-1] roi_labels = {} for i in range(roi4Ddat.shape[3]): roidat = roi4Ddat[:,:,:,i] for j in range(tempdat.shape[3]): temp_mask = tempdat[:,:,:,j] pct_overlap = calc_pct_overlap(roidat, temp_mask) if pct_overlap > .45: roi_name = 'roi%03d'%(i+1) label_name = temp_mapping[str(j+1)] roi_labels[roi_name] = label_name
return (float(overlap_nvoxels) / float(roi_nvoxels)) if __name__ == '__main__': ########### Set parameters ########## datadir = '/home/jagust/rsfmri_ica/GIFT/GICA_d30/BPM/results/PIB_Index_log_scaled/Results_ROIs' roiglob = os.path.join(datadir, 'ic*.nii.gz') roi_files = glob(roiglob) template = '/home/jagust/rsfmri_ica/GIFT/GICA_d30/network_volumes/netmasks/ic_masks_4D.nii.gz' template_mapfile = '/home/jagust/rsfmri_ica/GIFT/GICA_d30/network_volumes/netmasks/template_mapping.txt' outfile = os.path.join(datadir, 'Network_Labels_GICA30.csv') #################################### #Load template and 4D roi data tempdat, _ = utils.load_nii(template) temp_mapping = utils.load_mapping(template_mapfile) # Verify the shape of datasets match roi_labels = {} for roi in roi_files: overlap_dict = {} _, roi_name, _ = utils.split_filename(roi) roidat, _ = utils.load_nii(roi) assert tempdat.shape[:-1] == roidat.shape for j in range(tempdat.shape[3]): temp_mask = tempdat[:, :, :, j] pct_overlap = calc_pct_overlap(roidat, temp_mask) net_name = temp_mapping[str(j + 1)].split('.')[0] overlap_dict[net_name] = pct_overlap roi_labels[roi_name] = overlap_dict