#!/usr/bin/python import os import sys import glob import argparse from aparc12 import get_aparc12_cort_rois from scai_utils import * tractSegDir = "/users/cais/STUT/analysis/tractseg_aparc12/" L2_DIR = "/users/cais/STUT/analysis/tract_subcort_conn" allROIs = get_aparc12_cort_rois(lobe="all", bSpeech=False) allROIs.sort() if __name__ == "__main__": ap = argparse.ArgumentParser(description="Batch run of tractography- and aparc12-based subcorticla-cortical connectivity analysis, by calling tract_seg.py and tract_subcort_conn.py") ap.add_argument("scSeed", \ help="Subcortical seed (e.g., lh.Thalamus-Proper)") if len(sys.argv) == 1: ap.print_help() sys.exit(0) args = ap.parse_args() check_dir(tractSegDir) ds = glob.glob(os.path.join(tractSegDir, "S??")) ds.sort()
if len(sys.argv) == 1: ap.print_help() sys.exit(0) # === Parse input arguments === # args = ap.parse_args() inMatFN = args.inMatFN hemi = args.hemi grp = args.grp vmax = args.vmax # === ROIs by lobe === rois_bl = {} for (i0, t_lobe) in enumerate(lobes): rois_bl[t_lobe] = get_aparc12_cort_rois(lobe=t_lobe, bSpeech=True) rois_bl[t_lobe] = np.array(rois_bl[t_lobe]) # === Read the ROI centers of gravity from text file === # # check_file(COORD_FILE) cf = open(COORD_FILE, "rt") ct = cf.read().split('\n') ct = remove_empty_strings(ct) cf.close() roi_names = [] roi_nums = [] roi_coords = [] for (i0, tline) in enumerate(ct): t_items = tline.split(' ')
regionCodes = [1, 2, 3, 4, 5, 6, 7] """ regionROIs = [['SFg', 'aMFg', 'iFo', 'iFt', 'FMC', 'FO', 'FOC', 'FP', \ 'pMFg'], \ ['pSMA', 'aSMA', 'adPMC', 'mdPMC', 'pdPMC', 'vPMC'], \ ['aCO', 'vMC', 'dMC'], \ ['vSSC', 'pCO', 'dSSC'], \ ['AG', 'aSMg', 'pSMg', 'SPL'], \ ['CALC', 'MTO', 'ITO'], \ ['H', 'PT', 'aSTg', 'aMTg', 'aITg', 'pSTg', 'pMTg', 'pITg', \ 'TP', 'adSTs', 'avSTs', 'pdSTs', 'pvSTs'],\ ] """ regionROIs = [[]] * len(regions) for (i0, region) in enumerate(regions): regionROIs[i0] = get_aparc12_cort_rois(lobe=region, bSpeech=False) allROIs = get_aparc12_cort_rois(lobe="all", bSpeech=False) altROINames = {"orig": ["Ag", "Hg", "Lg", "ITOg", "MTOg", \ "aCGg", "midCGg", "pCGg", "aPHg", "pPHg"], \ "alt": ["AG", "H", "LG", "ITO", "MTO", \ "aCG", "midCG", "pCG", "aPH", "pPH"]} # ==== ~CONFIG: Construct the parcellation profile ==== # # ==== sub_routine ==== # def tract_seg_sub(args, step, roiName=""): # Check input arguments sID = args.sID
# Check sanity of input arguments if not (hemi == "lh" or hemi == "rh"): raise Exception, "Unrecognized hemisphere: %s" % hemi if segType.count("-") == 1: segType1 = segType.replace("-", "_") if SEG_TYPE_NUMSEGS.keys().count(segType1) != 1: raise Exception, "Unrecognized segType: %s" % segType1 nSegs = SEG_TYPE_NUMSEGS[segType1] else: if SEG_TYPE_NUMSEGS.keys().count(segType) != 1: raise Exception, "Unrecognized segType: %s" % segType nSegs = SEG_TYPE_NUMSEGS[segType] # Read cortical ROI list t_rois = list(get_aparc12_cort_rois(bSpeech=bSpeech)) t_rois.sort() h_rois = [] for t_roi in t_rois: h_rois.append(hemi + "_" + t_roi) # Preparation: check directories sDataDir = os.path.join(DATA_DIR, sID) check_dir(sDataDir) sTracDir = os.path.join(TRACULA_BASE, sID) check_dir(sTracDir) sResDir = os.path.join(TRACTS_RES_DIR, sID) check_dir(sResDir)