Skip to content

Instantly share code, notes, and snippets.

@dmwelch
Created July 15, 2014 22:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dmwelch/a42397c160a046e10f70 to your computer and use it in GitHub Desktop.
Save dmwelch/a42397c160a046e10f70 to your computer and use it in GitHub Desktop.
testingnipypelimits.py
from nipype.pipeline.engine import Workflow, Node, MapNode
from nipype.interfaces.io import DataGrabber
from nipype.interfaces.utility import IdentityInterface
from nipype.interfaces.utility import Function
from nipype.utils.misc import getsource
from SEMTools.filtering.denoising import UnbiasedNonLocalMeans
from SEMTools.segmentation.specialized import BRAINSConstellationDetector
from SEMTools.utilities.brains import BRAINSLandmarkInitializer
from SEMTools.registration.brainsresample import BRAINSResample
from SEMTools.segmentation.specialized import BRAINSROIAuto
from BRAINSABCext import BRAINSABCext
from SEMTools.segmentation.specialized import BRAINSCreateLabelMapFromProbabilityMaps
from nipype.interfaces.io import DataSink
from nipype.interfaces.utility import Merge
from nipype.interfaces.ants.registration import Registration
from nipype.interfaces.ants.resampling import ApplyTransforms
from SEMTools.filtering.featuredetection import GradientAnisotropicDiffusionImageFilter
from workflows.RF12BRAINSCutWrapper import RF12BRAINSCutWrapper
from SEMTools.utilities.brains import BRAINSSnapShotWriter
# Functions
def MakeInverseTransformFileName(TransformFileName):
"""### HACK: This function is to work around a deficiency in BRAINSABCext where the inverse transform name is not being computed properly
in the list outputs"""
fixed_inverse_name = TransformFileName.replace(".h5", "_Inverse.h5")
return [fixed_inverse_name]
def get_list_element(nestedList, index):
return nestedList[index]
def ChangeModelPathDirectory(multiModalFileName):
return multiModalFileName.replace('modelFiles', 'T1OnlyModels')
def UnwrapPosteriorImagesFromDictionaryFunction(postDict):
return postDict.values()
def getListIndex(imageList, index):
return imageList[index]
def getAllT1sLength(allT1s):
return len(allT1s)
def convertToList(element):
if element is None:
return ''
return [element]
# Workflow
BAW_StandardWorkup_allSessions = Workflow("BAW_StandardWorkup_allSessions")
# Node: BAW_StandardWorkup_allSessions.BAtlas
BAW_StandardWorkup_allSessions_BAtlas = Node(DataGrabber(infields=None, outfields=['ExtendedAtlasDefinition_xml', 'ExtendedAtlasDefinition_xml_in', 'avg_t1', 'avg_t2', 'tempNOTVBBOX', 'template_ABC_labels', 'template_WMPM2_labels', 'template_WMPM2_labels_txt', 'template_brain', 'template_cerebellum', 'template_class', 'template_headregion', 'template_leftHemisphere', 'template_nac_labels', 'template_nac_labels_txt', 'hncma-atlas', 'hncma-atlas-lut-mod2_ctbl', 'template_rightHemisphere', 'template_t1', 'template_t1_clipped', 'template_t2', 'template_t2_clipped', 'template_ventricles', 'l_accumben_ProbabilityMap', 'r_accumben_ProbabilityMap', 'l_caudate_ProbabilityMap', 'r_caudate_ProbabilityMap', 'l_globus_ProbabilityMap', 'r_globus_ProbabilityMap', 'l_hippocampus_ProbabilityMap', 'r_hippocampus_ProbabilityMap', 'l_putamen_ProbabilityMap', 'r_putamen_ProbabilityMap', 'l_thalamus_ProbabilityMap', 'r_thalamus_ProbabilityMap', 'phi', 'rho', 'theta', 'trainModelFile_txtD0060NT0060_gz', 'LLSModel_50Lmks_hdf5', 'T1_50Lmks_mdl', 'template_landmarks_50Lmks_fcsv', 'template_weights_50Lmks_wts']), name="BAW_StandardWorkup_allSessions_BAtlas")
BAW_StandardWorkup_allSessions_BAtlas.inputs.base_directory = '/Shared/sinapse/CACHE/20140714_SessionsWkfl_CACHE/Atlas'
BAW_StandardWorkup_allSessions_BAtlas.inputs.field_template = {'r_caudate_ProbabilityMap': 'probabilityMaps/r_caudate_ProbabilityMap.nii.gz', 'template_WMPM2_labels_txt': 'template_WMPM2_labels.txt', 'rho': 'spatialImages/rho.nii.gz', 'template_t2_clipped': 'template_t2_clipped.nii.gz', 'r_putamen_ProbabilityMap': 'probabilityMaps/r_putamen_ProbabilityMap.nii.gz', 'r_accumben_ProbabilityMap': 'probabilityMaps/r_accumben_ProbabilityMap.nii.gz', 'r_hippocampus_ProbabilityMap': 'probabilityMaps/r_hippocampus_ProbabilityMap.nii.gz', 'avg_t1': 'avg_t1.nii.gz', 'avg_t2': 'avg_t2.nii.gz', 'template_t2': 'template_t2.nii.gz', 'template_weights_50Lmks_wts': '20111119_BCD/template_weights_50Lmks.wts', 'template_t1': 'template_t1.nii.gz', 'template_headregion': 'template_headregion.nii.gz', 'template_nac_labels': 'template_nac_labels.nii.gz', 'template_landmarks_50Lmks_fcsv': '20111119_BCD/template_landmarks_50Lmks.fcsv', 'ExtendedAtlasDefinition_xml_in': 'ExtendedAtlasDefinition.xml.in', 'tempNOTVBBOX': 'tempNOTVBBOX.nii.gz', 'T1_50Lmks_mdl': '20111119_BCD/T1_50Lmks.mdl', 'template_t1_clipped': 'template_t1_clipped.nii.gz', 'l_accumben_ProbabilityMap': 'probabilityMaps/l_accumben_ProbabilityMap.nii.gz', 'template_class': 'template_class.nii.gz', 'phi': 'spatialImages/phi.nii.gz', 'l_thalamus_ProbabilityMap': 'probabilityMaps/l_thalamus_ProbabilityMap.nii.gz', 'hncma-atlas-lut-mod2_ctbl': 'hncma-atlas-lut-mod2.ctbl', 'l_globus_ProbabilityMap': 'probabilityMaps/l_globus_ProbabilityMap.nii.gz', 'template_ventricles': 'template_ventricles.nii.gz', 'r_thalamus_ProbabilityMap': 'probabilityMaps/r_thalamus_ProbabilityMap.nii.gz', 'template_ABC_labels': 'template_ABC_labels.nii.gz', 'l_putamen_ProbabilityMap': 'probabilityMaps/l_putamen_ProbabilityMap.nii.gz', 'ExtendedAtlasDefinition_xml': 'ExtendedAtlasDefinition.xml', 'theta': 'spatialImages/theta.nii.gz', 'hncma-atlas': 'hncma-atlas.nii.gz', 'r_globus_ProbabilityMap': 'probabilityMaps/r_globus_ProbabilityMap.nii.gz', 'template_brain': 'template_brain.nii.gz', 'trainModelFile_txtD0060NT0060_gz': 'modelFiles/trainModelFile.txtD0060NT0060.gz', 'l_caudate_ProbabilityMap': 'probabilityMaps/l_caudate_ProbabilityMap.nii.gz', 'l_hippocampus_ProbabilityMap': 'probabilityMaps/l_hippocampus_ProbabilityMap.nii.gz', 'template_leftHemisphere': 'template_leftHemisphere.nii.gz', 'template_cerebellum': 'template_cerebellum.nii.gz', 'template_WMPM2_labels': 'template_WMPM2_labels.nii.gz', 'template_nac_labels_txt': 'template_nac_labels.txt', 'template_rightHemisphere': 'template_rightHemisphere.nii.gz', 'LLSModel_50Lmks_hdf5': '20111119_BCD/LLSModel_50Lmks.hdf5'}
BAW_StandardWorkup_allSessions_BAtlas.inputs.force_output = False
BAW_StandardWorkup_allSessions_BAtlas.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_BAtlas.inputs.raise_on_empty = True
BAW_StandardWorkup_allSessions_BAtlas.inputs.sort_filelist = False
BAW_StandardWorkup_allSessions_BAtlas.inputs.template = '*'
BAW_StandardWorkup_allSessions_BAtlas.inputs.template_args = {'r_caudate_ProbabilityMap': [[]], 'template_WMPM2_labels_txt': [[]], 'rho': [[]], 'template_t2_clipped': [[]], 'r_putamen_ProbabilityMap': [[]], 'r_accumben_ProbabilityMap': [[]], 'r_hippocampus_ProbabilityMap': [[]], 'avg_t1': [[]], 'avg_t2': [[]], 'template_t2': [[]], 'template_weights_50Lmks_wts': [[]], 'template_t1': [[]], 'template_headregion': [[]], 'template_nac_labels': [[]], 'template_landmarks_50Lmks_fcsv': [[]], 'ExtendedAtlasDefinition_xml_in': [[]], 'tempNOTVBBOX': [[]], 'T1_50Lmks_mdl': [[]], 'template_t1_clipped': [[]], 'l_accumben_ProbabilityMap': [[]], 'template_class': [[]], 'phi': [[]], 'l_thalamus_ProbabilityMap': [[]], 'hncma-atlas-lut-mod2_ctbl': [[]], 'l_globus_ProbabilityMap': [[]], 'template_ventricles': [[]], 'r_thalamus_ProbabilityMap': [[]], 'template_ABC_labels': [[]], 'l_putamen_ProbabilityMap': [[]], 'ExtendedAtlasDefinition_xml': [[]], 'theta': [[]], 'hncma-atlas': [[]], 'r_globus_ProbabilityMap': [[]], 'template_brain': [[]], 'trainModelFile_txtD0060NT0060_gz': [[]], 'l_caudate_ProbabilityMap': [[]], 'l_hippocampus_ProbabilityMap': [[]], 'template_leftHemisphere': [[]], 'template_cerebellum': [[]], 'template_WMPM2_labels': [[]], 'template_nac_labels_txt': [[]], 'template_rightHemisphere': [[]], 'LLSModel_50Lmks_hdf5': [[]]}
# Node: BAW_StandardWorkup_allSessions.inputspec_sessions
BAW_StandardWorkup_allSessions_inputspec_sessions = Node(IdentityInterface(fields=['session'], mandatory_inputs=True), name="BAW_StandardWorkup_allSessions_inputspec_sessions")
BAW_StandardWorkup_allSessions_inputspec_sessions.iterables = ('session', ['73762'])
# Node: BAW_StandardWorkup_allSessions.99_parseDict
BAW_StandardWorkup_allSessions_99_parseDict = Node(Function(input_names=['master', 'key'], output_names=['project', 'subject', 'session', 'T1s', 'T2s', 'PDs', 'FLs', 'OTHERs']), name="BAW_StandardWorkup_allSessions_99_parseDict")
def parseDict(master, key):
indict = master[key]
project = indict['project']
subject = indict['subject']
session = indict['session']
T1s = indict['T1s']
T2s = indict['T2s']
PDs = indict['PDs']
FLs = indict['FLs']
OTHERs = indict['OTHERs']
return project, subject, session, T1s, T2s, PDs, FLs, OTHERs
BAW_StandardWorkup_allSessions_99_parseDict.inputs.function_str = getsource(parseDict)
BAW_StandardWorkup_allSessions_99_parseDict.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_99_parseDict.inputs.master = {'73762': {'FLs': [], 'T1s': ['/Shared/paulsen/MRx/PHD_024/0706/73762/ANONRAW/0706_73762_T1-30_2.nii.gz'], 'PDs': [], 'project': 'PHD_024', 'session': '73762', 'OTHERs': [], 'T2s': ['/Shared/paulsen/MRx/PHD_024/0706/73762/ANONRAW/0706_73762_T2-30_3.nii.gz'], 'subject': '0706'}}
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_inputspec_sessions, "session", BAW_StandardWorkup_allSessions_99_parseDict, "key")
# Node: BAW_StandardWorkup_allSessions.99_containerNode
BAW_StandardWorkup_allSessions_99_containerNode = Node(Function(input_names=['project', 'subject', 'session'], output_names=['container']), name="BAW_StandardWorkup_allSessions_99_containerNode")
def ospathjoin(project, subject, session):
import os.path
return os.path.join(project, subject, session)
BAW_StandardWorkup_allSessions_99_containerNode.inputs.function_str = getsource(ospathjoin)
BAW_StandardWorkup_allSessions_99_containerNode.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_99_parseDict, "session", BAW_StandardWorkup_allSessions_99_containerNode, "session")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_99_parseDict, "project", BAW_StandardWorkup_allSessions_99_containerNode, "project")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_99_parseDict, "subject", BAW_StandardWorkup_allSessions_99_containerNode, "subject")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.inputspec
BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec = Node(IdentityInterface(fields=['atlasLandmarkFilename', 'atlasWeightFilename', 'LLSModel', 'inputTemplateModel', 'template_t1', 'atlasDefinition', 'T1s', 'T2s', 'PDs', 'FLs', 'OTHERs', 'ds_container'], mandatory_inputs=True), name="BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_99_parseDict, "T1s", BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "T1s")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_99_parseDict, "T2s", BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "T2s")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_99_parseDict, "PDs", BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "PDs")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_99_parseDict, "FLs", BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "FLs")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_99_parseDict, "OTHERs", BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "OTHERs")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "template_landmarks_50Lmks_fcsv", BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "atlasLandmarkFilename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "template_weights_50Lmks_wts", BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "atlasWeightFilename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "LLSModel_50Lmks_hdf5", BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "LLSModel")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "T1_50Lmks_mdl", BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "inputTemplateModel")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "template_t1", BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "template_t1")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "ExtendedAtlasDefinition_xml", BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "atlasDefinition")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_99_containerNode, "container", BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "ds_container")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.99_makeDenoiseInImageList
BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList = Node(Function(input_names=['T1List', 'T2List', 'PDList', 'FLList', 'OtherList', 'postfix', 'PrimaryT1'], output_names=['inImageList', 'outImageList', 'imageTypeList']), name="BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList")
BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList.inputs.FLList = []
BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList.inputs.PrimaryT1 = None
def MakeOutFileList(T1List, T2List, PDList, FLList, OtherList, postfix, PrimaryT1):
#
#for BABC: "_corrected.nii.gz"
#for UNM Denoise: "_UNM_denoised.nii.gz"
#
#make image file list
def GetExtBaseName(filename):
'''
Get the filename without the extension. Works for .ext and .ext.gz
'''
import os
currBaseName = os.path.basename(filename)
currExt = os.path.splitext(currBaseName)[1]
currBaseName = os.path.splitext(currBaseName)[0]
if currExt == ".gz":
currBaseName = os.path.splitext(currBaseName)[0]
currExt = os.path.splitext(currBaseName)[1]
return currBaseName
all_files = list()
all_files.extend(T1List)
all_files.extend(T2List)
all_files.extend(PDList)
all_files.extend(FLList)
all_files.extend(OtherList)
outImageList = []
for i in all_files:
out_name = GetExtBaseName(i) + postfix
outImageList.append(out_name)
#
#make type list
imageTypeList = ["T1"] * len(T1List)
imageTypeList.extend(["T2"] * len(T2List))
imageTypeList.extend(["PD"] * len(PDList))
imageTypeList.extend(["FL"] * len(FLList))
imageTypeList.extend(["OTHER"] * len(OtherList))
#make input raw images single list
inImageList = list()
inImageList.extend(T1List)
inImageList.extend(T2List)
inImageList.extend(PDList)
inImageList.extend(FLList)
inImageList.extend(OtherList)
""" This funciton uses PrimaryT1 for the first T1, and the append the rest of the T1's and T2's """
if PrimaryT1 is not None:
inImageList[0]=PrimaryT1
return inImageList, outImageList, imageTypeList
BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList.inputs.function_str = getsource(MakeOutFileList)
BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList.inputs.postfix = '_UNM_denoised.nii.gz'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "T1s", BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList, "T1List")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "T2s", BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList, "T2List")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "PDs", BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList, "PDList")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "OTHERs", BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList, "OtherList")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.denoiseInputImgs
BAW_StandardWorkup_allSessions_sessionWorkflow_denoiseInputImgs = MapNode(UnbiasedNonLocalMeans(), iterfield=['inputVolume', 'outputVolume'], name="BAW_StandardWorkup_allSessions_sessionWorkflow_denoiseInputImgs")
BAW_StandardWorkup_allSessions_sessionWorkflow_denoiseInputImgs.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_denoiseInputImgs.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_denoiseInputImgs.inputs.rc = [1, 1, 1]
BAW_StandardWorkup_allSessions_sessionWorkflow_denoiseInputImgs.inputs.rs = [4, 4, 4]
BAW_StandardWorkup_allSessions_sessionWorkflow_denoiseInputImgs.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList, "inImageList", BAW_StandardWorkup_allSessions_sessionWorkflow_denoiseInputImgs, "inputVolume")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList, "outImageList", BAW_StandardWorkup_allSessions_sessionWorkflow_denoiseInputImgs, "outputVolume")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.99_makeDenoiseOutImageList
BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseOutImageList = Node(Function(input_names=['inFileList', 'inTypeList'], output_names=['T1List', 'T2List', 'PDList', 'FLList', 'OtherList']), name="BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseOutImageList")
def GenerateSeparateImageTypeList(inFileList, inTypeList):
allListDict = dict()
allListDict["T1"]=list()
allListDict["T2"]=list()
allListDict["PD"]=list()
allListDict["FL"]=list()
allListDict["Other"]=list()
T1List=list()
for i in range(0,len(inFileList)):
allListDict[ inTypeList[i] ].append( inFileList[i] )
return allListDict["T1"], allListDict["T2"], allListDict["PD"], allListDict["FL"], allListDict["Other"]
BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseOutImageList.inputs.function_str = getsource(GenerateSeparateImageTypeList)
BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseOutImageList.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseInImageList, "imageTypeList", BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseOutImageList, "inTypeList")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_denoiseInputImgs, "outputVolume", BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseOutImageList, "inFileList")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.LandmarkInitialize.inputspec
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec = Node(IdentityInterface(fields=['inputVolume', 'atlasLandmarkFilename', 'atlasWeightFilename', 'LLSModel', 'inputTemplateModel', 'atlasVolume'], mandatory_inputs=True), name="BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseOutImageList, ('T1List', get_list_element, (0,)), BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "inputVolume")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "atlasLandmarkFilename", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "atlasLandmarkFilename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "atlasWeightFilename", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "atlasWeightFilename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "LLSModel", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "LLSModel")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "inputTemplateModel", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "inputTemplateModel")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "template_t1", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "atlasVolume")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.LandmarkInitialize.BCD
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD = Node(BRAINSConstellationDetector(), name="BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD")
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD.inputs.acLowerBound = 80.0
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD.inputs.houghEyeDetectorMode = 1
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD.inputs.interpolationMode = 'Linear'
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD.inputs.outputLandmarksInACPCAlignedSpace = 'BCD_ACPC_Landmarks.fcsv'
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD.inputs.outputLandmarksInInputSpace = 'BCD_Original.fcsv'
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD.inputs.outputResampledVolume = 'BCD_ACPC.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD.inputs.outputTransform = 'BCD_Original2ACPC_transform.h5'
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD.inputs.writeBranded2DImage = 'BCD_Branded2DQCimage.png'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "inputVolume", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "inputVolume")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "atlasWeightFilename", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "atlasLandmarkWeights")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "atlasLandmarkFilename", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "atlasLandmarks")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "LLSModel", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "LLSModel")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "inputTemplateModel", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "inputTemplateModel")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "atlasVolume", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "atlasVolume")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.LandmarkInitialize.BLI
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI = Node(BRAINSLandmarkInitializer(), name="BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI")
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI.inputs.outputTransformFilename = 'landmarkInitializer_atlas_to_subject_transform.h5'
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "outputLandmarksInACPCAlignedSpace", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI, "inputFixedLandmarkFilename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "atlasWeightFilename", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI, "inputWeightFilename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "atlasLandmarkFilename", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI, "inputMovingLandmarkFilename")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.LandmarkInitialize.BLI2Atlas
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI2Atlas = Node(BRAINSLandmarkInitializer(), name="BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI2Atlas")
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI2Atlas.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI2Atlas.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI2Atlas.inputs.outputTransformFilename = 'landmarkInitializer_subject_to_atlas_transform.h5'
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI2Atlas.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "outputLandmarksInInputSpace", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI2Atlas, "inputMovingLandmarkFilename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "atlasWeightFilename", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI2Atlas, "inputWeightFilename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "atlasLandmarkFilename", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI2Atlas, "inputFixedLandmarkFilename")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.LandmarkInitialize.Resample2Atlas
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_Resample2Atlas = Node(BRAINSResample(), name="BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_Resample2Atlas")
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_Resample2Atlas.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_Resample2Atlas.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_Resample2Atlas.inputs.interpolationMode = 'Linear'
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_Resample2Atlas.inputs.outputVolume = 'subject2atlas.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_Resample2Atlas.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "inputVolume", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_Resample2Atlas, "inputVolume")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_inputspec, "atlasVolume", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_Resample2Atlas, "referenceVolume")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI2Atlas, "outputTransformFilename", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_Resample2Atlas, "warpTransform")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.LandmarkInitialize.BROIAuto_cropped
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BROIAuto_cropped = Node(BRAINSROIAuto(), name="BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BROIAuto_cropped")
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BROIAuto_cropped.inputs.ROIAutoDilateSize = 10.0
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BROIAuto_cropped.inputs.cropOutput = True
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BROIAuto_cropped.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BROIAuto_cropped.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BROIAuto_cropped.inputs.outputVolume = 'Cropped_BCD_ACPC_Aligned.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BROIAuto_cropped.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "outputResampledVolume", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BROIAuto_cropped, "inputVolume")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.LandmarkInitialize.outputspec
BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec = Node(IdentityInterface(fields=['outputLandmarksInACPCAlignedSpace', 'outputResampledVolume', 'outputResampledCroppedVolume', 'outputLandmarksInInputSpace', 'writeBranded2DImage', 'outputTransform', 'outputMRML', 'atlasToSubjectTransform'], mandatory_inputs=True), name="BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "outputLandmarksInACPCAlignedSpace", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "outputLandmarksInACPCAlignedSpace")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "outputResampledVolume", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "outputResampledVolume")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "outputLandmarksInInputSpace", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "outputLandmarksInInputSpace")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "outputTransform", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "outputTransform")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "outputMRML", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "outputMRML")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BCD, "writeBranded2DImage", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "writeBranded2DImage")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BROIAuto_cropped, "outputVolume", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "outputResampledCroppedVolume")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_BLI, "outputTransformFilename", BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "atlasToSubjectTransform")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.TissueClassify.inputspec
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec = Node(IdentityInterface(fields=['T1List', 'T2List', 'PDList', 'FLList', 'OtherList', 'T1_count', 'PrimaryT1', 'atlasDefinition', 'atlasToSubjectInitialTransform'], mandatory_inputs=True), name="BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "outputResampledCroppedVolume", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "PrimaryT1")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "atlasToSubjectTransform", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "atlasToSubjectInitialTransform")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseOutImageList, "T1List", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "T1List")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_99_makeDenoiseOutImageList, "T2List", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "T2List")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "atlasDefinition", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "atlasDefinition")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, ('T1s', getAllT1sLength), BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "T1_count")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "PDs", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "PDList")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "FLs", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "FLList")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "OTHERs", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "OtherList")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.TissueClassify.99_makeOutImageList
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList = Node(Function(input_names=['T1List', 'T2List', 'PDList', 'FLList', 'OtherList', 'postfix', 'PrimaryT1'], output_names=['inImageList', 'outImageList', 'imageTypeList']), name="BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList")
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList.inputs.FLList = []
def MakeOutFileList(T1List, T2List, PDList, FLList, OtherList, postfix, PrimaryT1):
#
#for BABC: "_corrected.nii.gz"
#for UNM Denoise: "_UNM_denoised.nii.gz"
#
#make image file list
def GetExtBaseName(filename):
'''
Get the filename without the extension. Works for .ext and .ext.gz
'''
import os
currBaseName = os.path.basename(filename)
currExt = os.path.splitext(currBaseName)[1]
currBaseName = os.path.splitext(currBaseName)[0]
if currExt == ".gz":
currBaseName = os.path.splitext(currBaseName)[0]
currExt = os.path.splitext(currBaseName)[1]
return currBaseName
all_files = list()
all_files.extend(T1List)
all_files.extend(T2List)
all_files.extend(PDList)
all_files.extend(FLList)
all_files.extend(OtherList)
outImageList = []
for i in all_files:
out_name = GetExtBaseName(i) + postfix
outImageList.append(out_name)
#
#make type list
imageTypeList = ["T1"] * len(T1List)
imageTypeList.extend(["T2"] * len(T2List))
imageTypeList.extend(["PD"] * len(PDList))
imageTypeList.extend(["FL"] * len(FLList))
imageTypeList.extend(["OTHER"] * len(OtherList))
#make input raw images single list
inImageList = list()
inImageList.extend(T1List)
inImageList.extend(T2List)
inImageList.extend(PDList)
inImageList.extend(FLList)
inImageList.extend(OtherList)
""" This funciton uses PrimaryT1 for the first T1, and the append the rest of the T1's and T2's """
if PrimaryT1 is not None:
inImageList[0]=PrimaryT1
return inImageList, outImageList, imageTypeList
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList.inputs.function_str = getsource(MakeOutFileList)
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList.inputs.postfix = '_corrected.nii.gz'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "T1List", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList, "T1List")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "T2List", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList, "T2List")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "PDList", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList, "PDList")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "PrimaryT1", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList, "PrimaryT1")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "OtherList", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList, "OtherList")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.TissueClassify.BABC
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC = Node(BRAINSABCext(), name="BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC")
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.atlasToSubjectTransform = 'atlas_to_subject.h5'
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.atlasToSubjectTransformType = 'SyN'
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.debuglevel = 0
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.filterIteration = 3
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.filterMethod = 'GradientAnisotropicDiffusion'
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.gridSize = [10, 10, 10]
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.interpolationMode = 'Linear'
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.maxBiasDegree = 4
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.maxIterations = 3
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.outputDir = './'
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.outputDirtyLabels = 'volume_label_seg.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.outputFormat = 'NIFTI'
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.outputLabels = 'brain_label_seg.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.posteriorTemplate = 'POSTERIOR_%s.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "atlasDefinition", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, "atlasDefinition")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_inputspec, "atlasToSubjectInitialTransform", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, "atlasToSubjectInitialTransform")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList, "inImageList", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, "inputVolumes")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList, "imageTypeList", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, "inputVolumeTypes")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makeOutImageList, "outImageList", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, "outputVolumes")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.TissueClassify.99_makePosteriorDictionary
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makePosteriorDictionary = Node(Function(input_names=['posteriorImages'], output_names=['posteriorDictionary']), name="BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makePosteriorDictionary")
def MakePosteriorDictionaryFunc(posteriorImages):
from PipeLineFunctionHelpers import POSTERIORS
if len(POSTERIORS) != len(posteriorImages):
print "ERROR: ", posteriorNames
print "ERROR: ", POSTERIORS
return -1
temp_dictionary = dict(zip(POSTERIORS, posteriorImages))
return temp_dictionary
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makePosteriorDictionary.inputs.function_str = getsource(MakePosteriorDictionaryFunc)
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makePosteriorDictionary.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, "posteriorImages", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makePosteriorDictionary, "posteriorImages")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.TissueClassify.outputspec
BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec = Node(IdentityInterface(fields=['atlasToSubjectTransform', 'atlasToSubjectInverseTransform', 'outputLabels', 'outputHeadLabels', 't1_average', 't2_average', 'pd_average', 'fl_average', 'posteriorImages'], mandatory_inputs=True), name="BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, "atlasToSubjectTransform", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "atlasToSubjectTransform")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, ('atlasToSubjectTransform', MakeInverseTransformFileName), BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "atlasToSubjectInverseTransform")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, "outputLabels", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "outputLabels")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, "outputDirtyLabels", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "outputHeadLabels")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, "outputT1AverageImage", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "t1_average")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, "outputT2AverageImage", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "t2_average")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, "outputPDAverageImage", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "pd_average")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_BABC, "outputFLAverageImage", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "fl_average")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_99_makePosteriorDictionary, "posteriorDictionary", BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "posteriorImages")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.FixWMPartitioning
BAW_StandardWorkup_allSessions_sessionWorkflow_FixWMPartitioning = Node(Function(input_names=['brainMask', 'PosteriorsList'], output_names=['UpdatedPosteriorsList', 'MatchingFGCodeList', 'MatchingLabelList', 'nonAirRegionMask']), name="BAW_StandardWorkup_allSessions_sessionWorkflow_FixWMPartitioning")
def FixWMPartitioning(brainMask, PosteriorsList):
""""There were some errors in mis-classifications for WM/NON_WM"""
import SimpleITK as sitk
import os
def FillHolePreserveEdge(inputMask, HOLE_FILL_SIZE):
"""This function fills holes and tries to preserve
the exterior topology. Holes that are within 3 units
of the exterior topology may not be completely filled.
Any voxel in the original mask will be guanteed to be
in the returned mask."""
return sitk.BinaryThreshold(
inputMask +
sitk.ErodeObjectMorphology(
sitk.VotingBinaryHoleFilling(BM, [HOLE_FILL_SIZE, HOLE_FILL_SIZE, HOLE_FILL_SIZE]), HOLE_FILL_SIZE), 1, 10000)
BM = sitk.BinaryThreshold(sitk.ReadImage(brainMask), 1, 1000)
BM_FILLED = FillHolePreserveEdge(BM, 3)
NOTCSF_index = None # Note: Purposfully using '-1' as it will force an error.
CSF_index = None
NOTGM_index = None
GM_index = None
NOTWM_index = None
WM_index = None
NOTVB_index = None
VB_index = None
AIR_index = None
for i in range(0, len(PosteriorsList)):
if os.path.basename(PosteriorsList[i]) == 'POSTERIOR_NOTCSF.nii.gz':
NOTCSF_index = i
elif os.path.basename(PosteriorsList[i]) == 'POSTERIOR_CSF.nii.gz':
CSF_index = i
elif os.path.basename(PosteriorsList[i]) == 'POSTERIOR_NOTGM.nii.gz':
NOTGM_index = i
elif os.path.basename(PosteriorsList[i]) == 'POSTERIOR_SURFGM.nii.gz':
GM_index = i
elif os.path.basename(PosteriorsList[i]) == 'POSTERIOR_NOTWM.nii.gz':
NOTWM_index = i
elif os.path.basename(PosteriorsList[i]) == 'POSTERIOR_WM.nii.gz':
WM_index = i
elif os.path.basename(PosteriorsList[i]) == 'POSTERIOR_NOTVB.nii.gz':
NOTVB_index = i
elif os.path.basename(PosteriorsList[i]) == 'POSTERIOR_VB.nii.gz':
VB_index = i
elif os.path.basename(PosteriorsList[i]) == 'POSTERIOR_AIR.nii.gz':
AIR_index = i
def ShiftValueForHardPartition(BM_FILLED, ShiftPosteriorsList, NOTREGION_index, REGION_index, REGION_NAME, NOTREGION_NAME):
NOTREGION = sitk.ReadImage(ShiftPosteriorsList[NOTREGION_index])
REGION = sitk.ReadImage(ShiftPosteriorsList[REGION_index])
ALL_REGION = NOTREGION + REGION
NEW_REGION = ALL_REGION * sitk.Cast(BM_FILLED, sitk.sitkFloat32)
NEW_NOTREGION = ALL_REGION * sitk.Cast((1 - BM_FILLED), sitk.sitkFloat32)
NEW_REGION_FN = os.path.realpath('POSTERIOR_{0}.nii.gz'.format(REGION_NAME))
NEW_NOTREGION_FN = os.path.realpath('POSTERIOR_{0}.nii.gz'.format(NOTREGION_NAME))
sitk.WriteImage(NEW_REGION, NEW_REGION_FN)
sitk.WriteImage(NEW_NOTREGION, NEW_NOTREGION_FN)
ShiftPosteriorsList[NOTREGION_index] = NEW_NOTREGION_FN
ShiftPosteriorsList[REGION_index] = NEW_REGION_FN
return ShiftPosteriorsList
UpdatedPosteriorsList = list(PosteriorsList)
UpdatedPosteriorsList = ShiftValueForHardPartition(BM_FILLED, UpdatedPosteriorsList, NOTCSF_index, CSF_index, 'CSF', 'NOTCSF')
UpdatedPosteriorsList = ShiftValueForHardPartition(BM_FILLED, UpdatedPosteriorsList, NOTGM_index, GM_index, 'SURFGM', 'NOTGM')
UpdatedPosteriorsList = ShiftValueForHardPartition(BM_FILLED, UpdatedPosteriorsList, NOTWM_index, WM_index, 'WM', 'NOTWM')
UpdatedPosteriorsList = ShiftValueForHardPartition(BM_FILLED, UpdatedPosteriorsList, NOTVB_index, VB_index, 'VB', 'NOTVB')
AirMask = sitk.BinaryThreshold(sitk.ReadImage(PosteriorsList[AIR_index]), 0.50, 1000000)
nonAirMask = sitk.Cast(1 - AirMask, sitk.sitkUInt8)
nonAirRegionMask = os.path.realpath('NonAirMask.nii.gz')
sitk.WriteImage(nonAirMask, nonAirRegionMask)
POSTERIOR_LABELS = dict() # (FG,Label)
POSTERIOR_LABELS["POSTERIOR_WM.nii.gz"] = (1, 1)
POSTERIOR_LABELS["POSTERIOR_SURFGM.nii.gz"] = (1, 2)
POSTERIOR_LABELS["POSTERIOR_BASAL.nii.gz"] = (1, 21)
POSTERIOR_LABELS["POSTERIOR_GLOBUS.nii.gz"] = (1, 23)
POSTERIOR_LABELS["POSTERIOR_THALAMUS.nii.gz"] = (1, 24)
POSTERIOR_LABELS["POSTERIOR_HIPPOCAMPUS.nii.gz"] = (1, 25)
POSTERIOR_LABELS["POSTERIOR_CRBLGM.nii.gz"] = (1, 11)
POSTERIOR_LABELS["POSTERIOR_CRBLWM.nii.gz"] = (1, 12)
POSTERIOR_LABELS["POSTERIOR_CSF.nii.gz"] = (1, 4)
POSTERIOR_LABELS["POSTERIOR_VB.nii.gz"] = (1, 5)
POSTERIOR_LABELS["POSTERIOR_NOTCSF.nii.gz"] = (0, 6)
POSTERIOR_LABELS["POSTERIOR_NOTGM.nii.gz"] = (0, 7)
POSTERIOR_LABELS["POSTERIOR_NOTWM.nii.gz"] = (0, 8)
POSTERIOR_LABELS["POSTERIOR_NOTVB.nii.gz"] = (0, 9)
POSTERIOR_LABELS["POSTERIOR_AIR.nii.gz"] = (0, 0)
MatchingFGCodeList = list()
MatchingLabelList = list()
for full_post_path_fn in UpdatedPosteriorsList:
post_key = os.path.basename(full_post_path_fn)
MatchingFGCodeList.append(POSTERIOR_LABELS[post_key][0])
MatchingLabelList.append(POSTERIOR_LABELS[post_key][1])
return UpdatedPosteriorsList, MatchingFGCodeList, MatchingLabelList, nonAirRegionMask
BAW_StandardWorkup_allSessions_sessionWorkflow_FixWMPartitioning.inputs.function_str = getsource(FixWMPartitioning)
BAW_StandardWorkup_allSessions_sessionWorkflow_FixWMPartitioning.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "outputLabels", BAW_StandardWorkup_allSessions_sessionWorkflow_FixWMPartitioning, "brainMask")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, ('posteriorImages', UnwrapPosteriorImagesFromDictionaryFunction), BAW_StandardWorkup_allSessions_sessionWorkflow_FixWMPartitioning, "PosteriorsList")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.BRAINSCreateLabelMapFromProbabilityMaps
BAW_StandardWorkup_allSessions_sessionWorkflow_BRAINSCreateLabelMapFromProbabilityMaps = Node(BRAINSCreateLabelMapFromProbabilityMaps(), name="BAW_StandardWorkup_allSessions_sessionWorkflow_BRAINSCreateLabelMapFromProbabilityMaps")
BAW_StandardWorkup_allSessions_sessionWorkflow_BRAINSCreateLabelMapFromProbabilityMaps.inputs.cleanLabelVolume = 'fixed_brainlabels_seg.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_BRAINSCreateLabelMapFromProbabilityMaps.inputs.dirtyLabelVolume = 'fixed_headlabels_seg.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_BRAINSCreateLabelMapFromProbabilityMaps.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_BRAINSCreateLabelMapFromProbabilityMaps.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_BRAINSCreateLabelMapFromProbabilityMaps.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_FixWMPartitioning, "UpdatedPosteriorsList", BAW_StandardWorkup_allSessions_sessionWorkflow_BRAINSCreateLabelMapFromProbabilityMaps, "inputProbabilityVolume")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_FixWMPartitioning, "MatchingFGCodeList", BAW_StandardWorkup_allSessions_sessionWorkflow_BRAINSCreateLabelMapFromProbabilityMaps, "foregroundPriors")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_FixWMPartitioning, "MatchingLabelList", BAW_StandardWorkup_allSessions_sessionWorkflow_BRAINSCreateLabelMapFromProbabilityMaps, "priorLabelCodes")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_FixWMPartitioning, "nonAirRegionMask", BAW_StandardWorkup_allSessions_sessionWorkflow_BRAINSCreateLabelMapFromProbabilityMaps, "nonAirRegionMask")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.AccumulateLikeTissuePosteriors
BAW_StandardWorkup_allSessions_sessionWorkflow_AccumulateLikeTissuePosteriors = Node(Function(input_names=['posteriorImages'], output_names=['AccumulatePriorsList', 'AccumulatePriorsNames']), name="BAW_StandardWorkup_allSessions_sessionWorkflow_AccumulateLikeTissuePosteriors")
def AccumulateLikeTissuePosteriors(posteriorImages):
import os
import sys
import SimpleITK as sitk
## Now clean up the posteriors based on anatomical knowlege.
## sometimes the posteriors are not relevant for priors
## due to anomolies around the edges.
load_images_list = dict()
for full_pathname in posteriorImages:
base_name = os.path.basename(full_pathname)
load_images_list[base_name] = sitk.ReadImage(full_pathname)
GM_ACCUM = [
'POSTERIOR_SURFGM.nii.gz',
'POSTERIOR_BASAL.nii.gz',
'POSTERIOR_THALAMUS.nii.gz',
'POSTERIOR_HIPPOCAMPUS.nii.gz',
'POSTERIOR_CRBLGM.nii.gz',
]
WM_ACCUM = [
'POSTERIOR_CRBLWM.nii.gz',
'POSTERIOR_WM.nii.gz'
]
CSF_ACCUM = [
'POSTERIOR_CSF.nii.gz',
]
VB_ACCUM = [
'POSTERIOR_VB.nii.gz',
]
GLOBUS_ACCUM = [
'POSTERIOR_GLOBUS.nii.gz',
]
BACKGROUND_ACCUM = [
'POSTERIOR_AIR.nii.gz',
'POSTERIOR_NOTCSF.nii.gz',
'POSTERIOR_NOTGM.nii.gz',
'POSTERIOR_NOTVB.nii.gz',
'POSTERIOR_NOTWM.nii.gz',
]
## The next 2 items MUST be syncronized
AccumulatePriorsNames = ['POSTERIOR_GM_TOTAL.nii.gz', 'POSTERIOR_WM_TOTAL.nii.gz',
'POSTERIOR_CSF_TOTAL.nii.gz', 'POSTERIOR_VB_TOTAL.nii.gz',
'POSTERIOR_GLOBUS_TOTAL.nii.gz', 'POSTERIOR_BACKGROUND_TOTAL.nii.gz']
ForcedOrderingLists = [GM_ACCUM, WM_ACCUM, CSF_ACCUM, VB_ACCUM, GLOBUS_ACCUM, BACKGROUND_ACCUM]
AccumulatePriorsList = list()
for index in range(0, len(ForcedOrderingLists)):
outname = AccumulatePriorsNames[index]
inlist = ForcedOrderingLists[index]
accum_image = load_images_list[inlist[0]] # copy first image
for curr_image in range(1, len(inlist)):
accum_image = accum_image + load_images_list[inlist[curr_image]]
sitk.WriteImage(accum_image, outname)
AccumulatePriorsList.append(os.path.realpath(outname))
print "HACK \n\n\n\n\n\n\n HACK \n\n\n: {APL}\n".format(APL=AccumulatePriorsList)
print ": {APN}\n".format(APN=AccumulatePriorsNames)
return AccumulatePriorsList, AccumulatePriorsNames
BAW_StandardWorkup_allSessions_sessionWorkflow_AccumulateLikeTissuePosteriors.inputs.function_str = getsource(AccumulateLikeTissuePosteriors)
BAW_StandardWorkup_allSessions_sessionWorkflow_AccumulateLikeTissuePosteriors.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_FixWMPartitioning, "UpdatedPosteriorsList", BAW_StandardWorkup_allSessions_sessionWorkflow_AccumulateLikeTissuePosteriors, "posteriorImages")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.outputspec
BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec = Node(IdentityInterface(fields=['t1_average', 't2_average', 'pd_average', 'fl_average', 'posteriorImages', 'priorImages', 'outputLabels', 'outputHeadLabels', 'tc_atlas2session_tx', 'tc_atlas2sessionInverse_tx', 'BCD_ACPC_T1_CROPPED', 'outputLandmarksInACPCAlignedSpace', 'outputLandmarksInInputSpace', 'output_tx', 'LMIatlasToSubject_tx', 'writeBranded2DImage', 'UpdatedPosteriorsList'], mandatory_inputs=True), name="BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_FixWMPartitioning, "UpdatedPosteriorsList", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "UpdatedPosteriorsList")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_FixWMPartitioning, "UpdatedPosteriorsList", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "posteriorImages")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "outputResampledCroppedVolume", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "BCD_ACPC_T1_CROPPED")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "outputLandmarksInACPCAlignedSpace", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "outputLandmarksInACPCAlignedSpace")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "outputLandmarksInInputSpace", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "outputLandmarksInInputSpace")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "outputTransform", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "output_tx")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "atlasToSubjectTransform", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "LMIatlasToSubject_tx")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_LandmarkInitialize_outputspec, "writeBranded2DImage", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "writeBranded2DImage")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_AccumulateLikeTissuePosteriors, "AccumulatePriorsList", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "priorImages")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "t1_average", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "t1_average")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "t2_average", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "t2_average")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "pd_average", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "pd_average")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "fl_average", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "fl_average")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "atlasToSubjectTransform", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "tc_atlas2session_tx")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_TissueClassify_outputspec, "atlasToSubjectInverseTransform", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "tc_atlas2sessionInverse_tx")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_BRAINSCreateLabelMapFromProbabilityMaps, "cleanLabelVolume", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "outputLabels")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_BRAINSCreateLabelMapFromProbabilityMaps, "dirtyLabelVolume", BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "outputHeadLabels")
# Node: BAW_StandardWorkup_allSessions.sessionDataSink
BAW_StandardWorkup_allSessions_sessionDataSink = Node(DataSink(infields=None), name="BAW_StandardWorkup_allSessions_sessionDataSink")
BAW_StandardWorkup_allSessions_sessionDataSink.inputs._outputs = {}
BAW_StandardWorkup_allSessions_sessionDataSink.inputs.base_directory = '/Shared/sinapse/CACHE/20140714_SessionsWkfl_Results'
BAW_StandardWorkup_allSessions_sessionDataSink.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionDataSink.inputs.parameterization = True
BAW_StandardWorkup_allSessions_sessionDataSink.inputs.remove_dest_dir = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_99_containerNode, "container", BAW_StandardWorkup_allSessions_sessionDataSink, "container")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, ('t1_average', convertToList), BAW_StandardWorkup_allSessions_sessionDataSink, "TissueClassify.@t1")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, ('t2_average', convertToList), BAW_StandardWorkup_allSessions_sessionDataSink, "TissueClassify.@t2")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, ('pd_average', convertToList), BAW_StandardWorkup_allSessions_sessionDataSink, "TissueClassify.@pd")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, ('fl_average', convertToList), BAW_StandardWorkup_allSessions_sessionDataSink, "TissueClassify.@fl")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "outputLabels", BAW_StandardWorkup_allSessions_sessionDataSink, "TissueClassify.@outputLabels")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "outputHeadLabels", BAW_StandardWorkup_allSessions_sessionDataSink, "TissueClassify.@outputHeadLabels")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "tc_atlas2session_tx", BAW_StandardWorkup_allSessions_sessionDataSink, "TissueClassify.@atlas2session_tx")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "tc_atlas2sessionInverse_tx", BAW_StandardWorkup_allSessions_sessionDataSink, "TissueClassify.@atlas2sessionInverse_tx")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "outputLandmarksInACPCAlignedSpace", BAW_StandardWorkup_allSessions_sessionDataSink, "ACPCAlign.@outputLandmarks_ACPC")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "writeBranded2DImage", BAW_StandardWorkup_allSessions_sessionDataSink, "ACPCAlign.@writeBranded2DImage")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "BCD_ACPC_T1_CROPPED", BAW_StandardWorkup_allSessions_sessionDataSink, "ACPCAlign.@BCD_ACPC_T1_CROPPED")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "outputLandmarksInInputSpace", BAW_StandardWorkup_allSessions_sessionDataSink, "ACPCAlign.@outputLandmarks_Input")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "output_tx", BAW_StandardWorkup_allSessions_sessionDataSink, "ACPCAlign.@output_tx")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "LMIatlasToSubject_tx", BAW_StandardWorkup_allSessions_sessionDataSink, "ACPCAlign.@LMIatlasToSubject_tx")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "priorImages", BAW_StandardWorkup_allSessions_sessionDataSink, "ACCUMULATED_POSTERIORS.@AccumulateLikeTissuePosteriorsOutputDir")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.inputspec
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec = Node(IdentityInterface(fields=['ds_container', 't1_average', 't2_average', 'template_t1', 'hncma-atlas', 'LMIatlasToSubject_tx', 'inputLabels', 'inputHeadLabels', 'posteriorImages', 'TissueClassifyatlasToSubjectInverseTransform', 'UpdatedPosteriorsList'], mandatory_inputs=True), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "t1_average", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "t1_average")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "LMIatlasToSubject_tx", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "LMIatlasToSubject_tx")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "outputLabels", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "inputLabels")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "posteriorImages", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "posteriorImages")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "tc_atlas2sessionInverse_tx", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "TissueClassifyatlasToSubjectInverseTransform")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "UpdatedPosteriorsList", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "UpdatedPosteriorsList")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_outputspec, "outputHeadLabels", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "inputHeadLabels")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "hncma-atlas", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "hncma-atlas")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "template_t1", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "template_t1")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_inputspec, "ds_container", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "ds_container")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.99_mergeAvergeStage2Images
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_mergeAvergeStage2Images = Node(Merge(numinputs=2), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_mergeAvergeStage2Images")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_mergeAvergeStage2Images.inputs.axis = 'vstack'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_mergeAvergeStage2Images.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_mergeAvergeStage2Images.inputs.no_flatten = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "t1_average", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_mergeAvergeStage2Images, "in1")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.99_MergeMultiLabelSessionSubjectToAtlas
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeMultiLabelSessionSubjectToAtlas = Node(Merge(numinputs=2), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeMultiLabelSessionSubjectToAtlas")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeMultiLabelSessionSubjectToAtlas.inputs.axis = 'vstack'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeMultiLabelSessionSubjectToAtlas.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeMultiLabelSessionSubjectToAtlas.inputs.no_flatten = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "inputLabels", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeMultiLabelSessionSubjectToAtlas, "in1")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "inputHeadLabels", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeMultiLabelSessionSubjectToAtlas, "in2")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.AtlasToSubjectANTsRegistration
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration = Node(Registration(), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.collapse_linear_transforms_to_fixed_image_header = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.collapse_output_transforms = True
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.convergence_threshold = [5e-07, 5e-07]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.convergence_window_size = [25, 25]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.dimension = 3
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.interpolation = 'Linear'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.metric = ['Mattes', 'CC']
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.metric_weight = [1.0, 1.0]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.num_threads = -1
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.number_of_iterations = [[1000, 1000, 1000], [10000, 500, 500, 200]]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.output_inverse_warped_image = 'subject2atlas.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.output_transform_prefix = 'AtlasToSubject_'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.output_warped_image = 'atlas2subject.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.radius_or_number_of_bins = [32, 4]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.sampling_percentage = [1.0, 1.0]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.sampling_strategy = ['Regular', None]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.shrink_factors = [[4, 2, 1], [5, 4, 2, 1]]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.sigma_units = ['vox', 'vox']
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.smoothing_sigmas = [[4.0, 2.0, 0.0], [5.0, 4.0, 2.0, 0.0]]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.transform_parameters = [(0.1,), (0.15, 3.0, 0.0)]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.transforms = ['Affine', 'SyN']
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.use_estimate_learning_rate_once = [False, False]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.use_histogram_matching = [True, True]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.winsorize_lower_quantile = 0.025
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.winsorize_upper_quantile = 0.975
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration.inputs.write_composite_transform = True
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "LMIatlasToSubject_tx", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration, "initial_moving_transform")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "t1_average", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration, "fixed_image")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "template_t1", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration, "moving_image")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.SubjectToAtlasTransforms_DS
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlasTransforms_DS = Node(DataSink(infields=None), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlasTransforms_DS")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlasTransforms_DS.inputs._outputs = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlasTransforms_DS.inputs.base_directory = '/Shared/sinapse/CACHE/20140714_SessionsWkfl_Results'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlasTransforms_DS.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlasTransforms_DS.inputs.parameterization = True
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlasTransforms_DS.inputs.remove_dest_dir = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "ds_container", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlasTransforms_DS, "container")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration, "composite_transform", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlasTransforms_DS, "SubjectToAtlasWarped.@composite_transform")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration, "inverse_composite_transform", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlasTransforms_DS, "SubjectToAtlasWarped.@inverse_composite_transform")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.AntsLabelWarpToSubject
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject = Node(ApplyTransforms(), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject.inputs.default_value = 0.0
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject.inputs.dimension = 3
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject.inputs.interpolation = 'MultiLabel'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject.inputs.num_threads = -1
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject.inputs.out_postfix = '_trans'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject.inputs.output_image = 'warped_hncma_atlas_seg.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "t1_average", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject, "reference_image")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "hncma-atlas", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject, "input_image")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration, "composite_transform", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject, "transforms")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.AntsLabelWarpedToSubject_DS
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpedToSubject_DS = Node(DataSink(infields=None), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpedToSubject_DS")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpedToSubject_DS.inputs._outputs = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpedToSubject_DS.inputs.base_directory = '/Shared/sinapse/CACHE/20140714_SessionsWkfl_Results'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpedToSubject_DS.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpedToSubject_DS.inputs.parameterization = True
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpedToSubject_DS.inputs.remove_dest_dir = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "ds_container", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpedToSubject_DS, "container")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpToSubject, "output_image", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AntsLabelWarpedToSubject_DS, "AntsLabelWarpedToSubject")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.BRAINSCutWorkflow.inputspec
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec = Node(IdentityInterface(fields=['ds_container', 'T1Volume', 'T2Volume', 'posteriorDictionary', 'RegistrationROI', 'atlasToSubjectTransform', 'template_t1', 'rho', 'phi', 'theta', 'l_caudate_ProbabilityMap', 'r_caudate_ProbabilityMap', 'l_hippocampus_ProbabilityMap', 'r_hippocampus_ProbabilityMap', 'l_putamen_ProbabilityMap', 'r_putamen_ProbabilityMap', 'l_thalamus_ProbabilityMap', 'r_thalamus_ProbabilityMap', 'l_accumben_ProbabilityMap', 'r_accumben_ProbabilityMap', 'l_globus_ProbabilityMap', 'r_globus_ProbabilityMap', 'trainModelFile_txtD0060NT0060_gz'], mandatory_inputs=True), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration, "composite_transform", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "atlasToSubjectTransform")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "template_t1", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "template_t1")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "rho", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "rho")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "phi", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "phi")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "theta", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "theta")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "l_caudate_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "l_caudate_ProbabilityMap")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "r_caudate_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "r_caudate_ProbabilityMap")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "l_hippocampus_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "l_hippocampus_ProbabilityMap")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "r_hippocampus_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "r_hippocampus_ProbabilityMap")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "l_putamen_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "l_putamen_ProbabilityMap")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "r_putamen_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "r_putamen_ProbabilityMap")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "l_thalamus_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "l_thalamus_ProbabilityMap")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "r_thalamus_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "r_thalamus_ProbabilityMap")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "l_accumben_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "l_accumben_ProbabilityMap")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "r_accumben_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "r_accumben_ProbabilityMap")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "l_globus_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "l_globus_ProbabilityMap")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "r_globus_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "r_globus_ProbabilityMap")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_BAtlas, "trainModelFile_txtD0060NT0060_gz", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "trainModelFile_txtD0060NT0060_gz")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "ds_container", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "ds_container")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "t1_average", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "T1Volume")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "posteriorImages", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "posteriorDictionary")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "inputLabels", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "RegistrationROI")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.BRAINSCutWorkflow.99_splitContainer
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_99_splitContainer = Node(Function(input_names=['container'], output_names=['projectid', 'subjectid', 'sessionid']), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_99_splitContainer")
def splitContainer(container):
import os.path
projectid, subjectid, sessionid = os.path.split(container)
return projectid, subjectid, sessionid
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_99_splitContainer.inputs.function_str = getsource(splitContainer)
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_99_splitContainer.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "ds_container", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_99_splitContainer, "container")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.BRAINSCutWorkflow.GADT1
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_GADT1 = Node(GradientAnisotropicDiffusionImageFilter(), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_GADT1")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_GADT1.inputs.conductance = 1.0
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_GADT1.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_GADT1.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_GADT1.inputs.numberOfIterations = 5
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_GADT1.inputs.outputVolume = 'GADT1.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_GADT1.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_GADT1.inputs.timeStep = 0.025
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "T1Volume", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_GADT1, "inputVolume")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.BRAINSCutWorkflow.MakeCandidateRegion
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_MakeCandidateRegion = Node(Function(input_names=['posteriorDictionary', 'candidateRegionFileName'], output_names=['outputCandidateRegionFileName']), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_MakeCandidateRegion")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_MakeCandidateRegion.inputs.candidateRegionFileName = 'RF12_CandidateRegionMask.nii.gz'
def MakeInclusionMaskForGMStructures(posteriorDictionary, candidateRegionFileName):
import SimpleITK as sitk
AIR_FN = posteriorDictionary['AIR']
CSF_FN = posteriorDictionary['CSF']
VB_FN = posteriorDictionary['VB']
WM_FN = posteriorDictionary['WM']
AIR_PROB = sitk.ReadImage(AIR_FN)
CSF_PROB = sitk.ReadImage(CSF_FN)
VB_PROB = sitk.ReadImage(VB_FN)
WM_PROB = sitk.ReadImage(WM_FN)
AIR_Region = sitk.BinaryThreshold(AIR_PROB, 0.51, 1.01, 1, 0)
CSF_Region = sitk.BinaryThreshold(CSF_PROB, 0.51, 1.01, 1, 0)
VB_Region = sitk.BinaryThreshold(VB_PROB, 0.51, 1.01, 1, 0)
WM_Region = sitk.BinaryThreshold(WM_PROB, 0.99, 1.01, 1, 0) # NOTE: Higher tolerance for WM regions!
outputCandidateRegion = sitk.BinaryThreshold(AIR_Region + CSF_Region + VB_Region + WM_Region, 1, 100, 0, 1) # NOTE: Inversion of input/output definitions
## Now write out the candidate region name.
import os
outputCandidateRegionFileName = os.path.realpath(candidateRegionFileName)
sitk.WriteImage(outputCandidateRegion, outputCandidateRegionFileName)
return outputCandidateRegionFileName
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_MakeCandidateRegion.inputs.function_str = getsource(MakeInclusionMaskForGMStructures)
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_MakeCandidateRegion.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "posteriorDictionary", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_MakeCandidateRegion, "posteriorDictionary")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.BRAINSCutWorkflow.DenoisedT1
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_DenoisedT1 = Node(GradientAnisotropicDiffusionImageFilter(), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_DenoisedT1")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_DenoisedT1.inputs.conductance = 0.4
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_DenoisedT1.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_DenoisedT1.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_DenoisedT1.inputs.numberOfIterations = 5
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_DenoisedT1.inputs.outputVolume = 'DenoisedT1.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_DenoisedT1.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_DenoisedT1.inputs.timeStep = 0.0625
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "T1Volume", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_DenoisedT1, "inputVolume")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.BRAINSCutWorkflow.IQR_NORM_SEP_RF12_BRAINSCut
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut = Node(RF12BRAINSCutWrapper(), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.outputBinaryLeftAccumben = 'subjectANNLabel_l_accumben.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.outputBinaryLeftCaudate = 'subjectANNLabel_l_caudate.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.outputBinaryLeftGlobus = 'subjectANNLabel_l_globus.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.outputBinaryLeftHippocampus = 'subjectANNLabel_l_hippocampus.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.outputBinaryLeftPutamen = 'subjectANNLabel_l_putamen.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.outputBinaryLeftThalamus = 'subjectANNLabel_l_thalamus.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.outputBinaryRightAccumben = 'subjectANNLabel_r_accumben.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.outputBinaryRightCaudate = 'subjectANNLabel_r_caudate.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.outputBinaryRightGlobus = 'subjectANNLabel_r_globus.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.outputBinaryRightHippocampus = 'subjectANNLabel_r_hippocampus.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.outputBinaryRightPutamen = 'subjectANNLabel_r_putamen.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.outputBinaryRightThalamus = 'subjectANNLabel_r_thalamus.nii.gz'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.trainingVectorFilename = 'trainingVectorFilename.txt'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.vectorNormalization = 'IQR'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut.inputs.xmlFilename = 'BRAINSCutSegmentationDefinition.xml'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "template_t1", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "inputTemplateT1")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "rho", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "inputTemplateRhoFilename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "phi", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "inputTemplatePhiFilename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "theta", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "inputTemplateThetaFilename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "l_caudate_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "probabilityMapsLeftCaudate")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "r_caudate_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "probabilityMapsRightCaudate")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "l_hippocampus_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "probabilityMapsLeftHippocampus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "r_hippocampus_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "probabilityMapsRightHippocampus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "l_putamen_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "probabilityMapsLeftPutamen")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "r_putamen_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "probabilityMapsRightPutamen")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "l_thalamus_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "probabilityMapsLeftThalamus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "r_thalamus_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "probabilityMapsRightThalamus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "l_accumben_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "probabilityMapsLeftAccumben")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "r_accumben_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "probabilityMapsRightAccumben")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "l_globus_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "probabilityMapsLeftGlobus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "r_globus_ProbabilityMap", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "probabilityMapsRightGlobus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, ('trainModelFile_txtD0060NT0060_gz', ChangeModelPathDirectory), BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "modelFilename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, ('atlasToSubjectTransform', getListIndex, (0,)), BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "deformationFromTemplateToSubject")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_DenoisedT1, "outputVolume", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "inputSubjectT1Filename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_MakeCandidateRegion, "outputCandidateRegionFileName", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "candidateRegion")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.BRAINSCutWorkflow.labelMergeNode
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode = Node(Merge(numinputs=12), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode.inputs.axis = 'vstack'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode.inputs.no_flatten = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "outputBinaryLeftCaudate", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode, "in1")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "outputBinaryRightCaudate", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode, "in2")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "outputBinaryLeftPutamen", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode, "in3")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "outputBinaryRightPutamen", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode, "in4")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "outputBinaryLeftHippocampus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode, "in5")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "outputBinaryRightHippocampus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode, "in6")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "outputBinaryLeftThalamus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode, "in7")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "outputBinaryRightThalamus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode, "in8")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "outputBinaryLeftAccumben", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode, "in9")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "outputBinaryRightAccumben", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode, "in10")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "outputBinaryLeftGlobus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode, "in11")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "outputBinaryRightGlobus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode, "in12")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.BRAINSCutWorkflow.ComputeOneLabelMap
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap = Node(Function(input_names=['listOfImages', 'LabelImageName', 'CSVFileName', 'posteriorDictionary', 'projectid', 'subjectid', 'sessionid'], output_names=['outputLabelImageName', 'outputCSVFileName', 'CleanedLeftCaudate', 'CleanedRightCaudate', 'CleanedLeftHippocampus', 'CleanedRightHippocampus', 'CleanedLeftPutamen', 'CleanedRightPutamen', 'CleanedLeftThalamus', 'CleanedRightThalamus', 'CleanedLeftAccumben', 'CleanedRightAccumben', 'CleanedLeftGlobus', 'CleanedRightGlobus']), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap.inputs.CSVFileName = 'allLabels_seg.csv'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap.inputs.LabelImageName = 'allLabels.nii.gz'
def CreateLabelMap(listOfImages, LabelImageName, CSVFileName, posteriorDictionary, projectid, subjectid, sessionid):
"""
A function to create a consolidated label map and a
csv file of volume measurements.
"""
import SimpleITK as sitk
import os
import csv
def CleanUpSegmentationsWithExclusionProbabilityMaps(initial_seg, probMapOfExclusion, percentageThreshold=0.85):
"""This function is used to clean up grey matter sub-cortical segmentations
by removing tissue that is more than 85% chance of being either WM or CSF
The inputs are the initial segmentation, the WM Probability, and the CSF Probability
"""
seg = sitk.Cast(initial_seg, sitk.sitkUInt8)
print "AA", initial_seg
# print "BB", dict(sitk.Statistics(seg))
exclude_Mask = sitk.Cast(sitk.BinaryThreshold(probMapOfExclusion, percentageThreshold, 1.0, 0, 1), sitk.sitkUInt8)
# print "CC", dict(sitk.Statistics(exclude_Mask))
cleanedUpSeg = seg * exclude_Mask
# print "DD", dict(sitk.Statistics(cleanedUpSeg))
return cleanedUpSeg
def CleanUpGMSegmentationWithWMCSF(initial_seg_fn, posteriorDictionary, WMThreshold, CSFThreshold):
initial_seg = sitk.Cast(sitk.ReadImage(initial_seg_fn), sitk.sitkUInt8)
#WM_FN = posteriorDictionary['WM']
#WM_PROB = sitk.ReadImage(WM_FN)
#WM_removed = CleanUpSegmentationsWithExclusionProbabilityMaps(initial_seg, WM_PROB, WMThreshold)
CSF_FN = posteriorDictionary['CSF']
CSF_PROB = sitk.ReadImage(CSF_FN)
CSF_removed = CleanUpSegmentationsWithExclusionProbabilityMaps(initial_seg, CSF_PROB, CSFThreshold)
return CSF_removed
orderOfPriority = [
"l_caudate",
"r_caudate",
"l_putamen",
"r_putamen",
"l_hippocampus",
"r_hippocampus",
"l_thalamus",
"r_thalamus",
"l_accumben",
"r_accumben",
"l_globus",
"r_globus"
]
valueDict = {
"l_caudate": 1,
"r_caudate": 2,
"l_putamen": 3,
"r_putamen": 4,
"l_hippocampus": 5,
"r_hippocampus": 6,
"l_thalamus": 7,
"r_thalamus": 8,
"l_accumben": 9,
"r_accumben": 10,
"l_globus": 11,
"r_globus": 12
}
cleaned_labels_map = dict()
labelImage = None
print "ZZZ"
x = 0
for segFN in listOfImages:
x = x + 1
print x, segFN
## Clean up the segmentations
curr_segROI = CleanUpGMSegmentationWithWMCSF(segFN, posteriorDictionary, 0.85, 0.85)
print "Y"
curr_segROI.GetSize()
remove_pre_postfix = segFN.replace(".nii.gz", "")
remove_pre_postfix = os.path.basename(remove_pre_postfix.replace("subjectANNLabel_", "").replace("_seg", ""))
remove_pre_postfix = os.path.basename(remove_pre_postfix.replace("ANNContinuousPrediction", "").replace("subject", ""))
structName = remove_pre_postfix.lower()
cleaned_fileName = os.path.join(os.path.dirname(segFN), "cleaned_" + structName + "_seg.nii.gz")
print "=" * 20, structName, " ", cleaned_fileName
cleaned_labels_map[structName] = cleaned_fileName
sitk.WriteImage(curr_segROI, cleaned_fileName)
if labelImage is None:
labelImage = curr_segROI * valueDict[structName]
else:
not_mask = sitk.Not(curr_segROI)
## Clear out an empty space for the next mask to be inserted
labelImage *= not_mask
## Add in the mask image with it's proper label
labelImage = labelImage + curr_segROI * valueDict[structName]
sitk.WriteImage(labelImage, LabelImageName)
ls = sitk.LabelStatisticsImageFilter()
ls.Execute(labelImage, labelImage)
ImageSpacing = labelImage.GetSpacing()
csvFile = open(CSVFileName, 'w')
dWriter = csv.DictWriter(csvFile, ['projectid', 'subjectid', 'sessionid', 'Structure', 'LabelCode', 'Volume_mm3'], restval='', extrasaction='raise', dialect='excel')
dWriter.writeheader()
writeDictionary = dict()
for name in orderOfPriority:
value = valueDict[name]
if ls.HasLabel(value):
# print "Displaying: ", name, value
# myMeasurementMap = ls.GetMeasurementMap(value)
# dictKeys = myMeasurementMap.GetVectorOfMeasurementNames()
# dictValues = myMeasurementMap.GetVectorOfMeasurementValues()
# measurementDict = dict(zip(dictKeys, dictValues))
structVolume = ImageSpacing[0] * ImageSpacing[1] * ImageSpacing[2] * ls.GetCount(value) # measurementDict['Count']
writeDictionary['Volume_mm3'] = structVolume
writeDictionary['Structure'] = name
writeDictionary['LabelCode'] = value
# writeDictionary['FileName']=os.path.abspath(LabelImageName)
writeDictionary['projectid'] = projectid
writeDictionary['subjectid'] = subjectid
writeDictionary['sessionid'] = sessionid
dWriter.writerow(writeDictionary)
CleanedLeftCaudate = cleaned_labels_map['l_caudate']
CleanedRightCaudate = cleaned_labels_map['r_caudate']
CleanedLeftHippocampus = cleaned_labels_map['l_hippocampus']
CleanedRightHippocampus = cleaned_labels_map['r_hippocampus']
CleanedLeftPutamen = cleaned_labels_map['l_putamen']
CleanedRightPutamen = cleaned_labels_map['r_putamen']
CleanedLeftThalamus = cleaned_labels_map['l_thalamus']
CleanedRightThalamus = cleaned_labels_map['r_thalamus']
CleanedLeftAccumben = cleaned_labels_map['l_accumben']
CleanedRightAccumben = cleaned_labels_map['r_accumben']
CleanedLeftGlobus = cleaned_labels_map['l_globus']
CleanedRightGlobus = cleaned_labels_map['r_globus']
return os.path.abspath(LabelImageName), os.path.abspath(CSVFileName), CleanedLeftCaudate, CleanedRightCaudate, CleanedLeftHippocampus, CleanedRightHippocampus, CleanedLeftPutamen, CleanedRightPutamen, CleanedLeftThalamus, CleanedRightThalamus, CleanedLeftAccumben, CleanedRightAccumben, CleanedLeftGlobus, CleanedRightGlobus
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap.inputs.function_str = getsource(CreateLabelMap)
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_inputspec, "posteriorDictionary", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "posteriorDictionary")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_labelMergeNode, "out", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "listOfImages")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_99_splitContainer, "projectid", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "projectid")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_99_splitContainer, "subjectid", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "subjectid")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_99_splitContainer, "sessionid", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "sessionid")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.BRAINSCutWorkflow.outputspec
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec = Node(IdentityInterface(fields=['outputBinaryLeftCaudate', 'outputBinaryRightCaudate', 'outputBinaryLeftHippocampus', 'outputBinaryRightHippocampus', 'outputBinaryLeftPutamen', 'outputBinaryRightPutamen', 'outputBinaryLeftThalamus', 'outputBinaryRightThalamus', 'outputBinaryLeftAccumben', 'outputBinaryRightAccumben', 'outputBinaryLeftGlobus', 'outputBinaryRightGlobus', 'outputLabelImageName', 'outputCSVFileName', 'xmlFilename'], mandatory_inputs=True), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_IQR_NORM_SEP_RF12_BRAINSCut, "xmlFilename", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "xmlFilename")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "outputLabelImageName", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputLabelImageName")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "outputCSVFileName", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputCSVFileName")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "CleanedLeftCaudate", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftCaudate")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "CleanedRightCaudate", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightCaudate")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "CleanedLeftHippocampus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftHippocampus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "CleanedRightHippocampus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightHippocampus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "CleanedLeftPutamen", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftPutamen")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "CleanedRightPutamen", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightPutamen")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "CleanedLeftThalamus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftThalamus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "CleanedRightThalamus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightThalamus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "CleanedLeftAccumben", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftAccumben")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "CleanedRightAccumben", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightAccumben")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "CleanedLeftGlobus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftGlobus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_ComputeOneLabelMap, "CleanedRightGlobus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightGlobus")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.99_MergeStage2BinaryVolumes
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes = Node(Merge(numinputs=12), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes.inputs.axis = 'vstack'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes.inputs.no_flatten = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftAccumben", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes, "in1")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftCaudate", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes, "in2")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftPutamen", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes, "in3")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftGlobus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes, "in4")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftThalamus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes, "in5")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftHippocampus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes, "in6")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightAccumben", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes, "in7")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightCaudate", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes, "in8")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightPutamen", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes, "in9")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightGlobus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes, "in10")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightThalamus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes, "in11")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightHippocampus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes, "in12")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.SnapShotWriter
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SnapShotWriter = Node(BRAINSSnapShotWriter(), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SnapShotWriter")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SnapShotWriter.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SnapShotWriter.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SnapShotWriter.inputs.inputPlaneDirection = [2, 1, 1, 1, 1, 0, 0]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SnapShotWriter.inputs.inputSliceToExtractInPhysicalPoint = [-3.0, -7.0, -3.0, 5.0, 7.0, 22.0, -22.0]
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SnapShotWriter.inputs.outputFilename = 'snapShot.png'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SnapShotWriter.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_mergeAvergeStage2Images, "out", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SnapShotWriter, "inputVolumes")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeStage2BinaryVolumes, "out", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SnapShotWriter, "inputBinaryVolumes")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.CleanedDenoisedSegmentation_DS
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS = Node(DataSink(infields=None), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS.inputs._outputs = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS.inputs.base_directory = '/Shared/sinapse/CACHE/20140714_SessionsWkfl_Results'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS.inputs.parameterization = True
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS.inputs.remove_dest_dir = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS.inputs.substitutions = [('Segmentations', 'CleanedDenoisedRFSegmentations'), ('subjectANNLabel_', ''), ('ANNContinuousPrediction', ''), ('subject.nii.gz', '.nii.gz'), ('_seg.nii.gz', '_seg.nii.gz'), ('.nii.gz', '_seg.nii.gz'), ('_seg_seg', '_seg')]
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftCaudate", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@LeftCaudate")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightCaudate", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@RightCaudate")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftHippocampus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@LeftHippocampus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightHippocampus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@RightHippocampus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftPutamen", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@LeftPutamen")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightPutamen", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@RightPutamen")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftThalamus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@LeftThalamus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightThalamus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@RightThalamus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftAccumben", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@LeftAccumben")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightAccumben", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@RightAccumben")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftGlobus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@LeftGlobus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightGlobus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@RightGlobus")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputLabelImageName", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@LabelImageName")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputCSVFileName", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@CSVFileName")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "ds_container", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "container")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SnapShotWriter, "outputFilename", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_CleanedDenoisedSegmentation_DS, "Segmentations.@outputSnapShot")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.99_MergeSessionSubjectToAtlas
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas = Node(Merge(numinputs=14), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas.inputs.axis = 'vstack'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas.inputs.no_flatten = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftAccumben", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in1")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftCaudate", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in2")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftPutamen", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in3")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftGlobus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in4")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftThalamus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in5")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryLeftHippocampus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in6")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightAccumben", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in7")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightCaudate", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in8")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightPutamen", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in9")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightGlobus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in10")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightThalamus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in11")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_BRAINSCutWorkflow_outputspec, "outputBinaryRightHippocampus", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in12")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "UpdatedPosteriorsList", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in13")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "t1_average", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "in14")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.LinearSubjectToAtlasANTsApplyTransforms
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_LinearSubjectToAtlasANTsApplyTransforms = MapNode(ApplyTransforms(), iterfield=['input_image'], name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_LinearSubjectToAtlasANTsApplyTransforms")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_LinearSubjectToAtlasANTsApplyTransforms.inputs.default_value = 0.0
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_LinearSubjectToAtlasANTsApplyTransforms.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_LinearSubjectToAtlasANTsApplyTransforms.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_LinearSubjectToAtlasANTsApplyTransforms.inputs.interpolation = 'Linear'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_LinearSubjectToAtlasANTsApplyTransforms.inputs.num_threads = -1
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_LinearSubjectToAtlasANTsApplyTransforms.inputs.out_postfix = '_trans'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_LinearSubjectToAtlasANTsApplyTransforms.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeSessionSubjectToAtlas, "out", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_LinearSubjectToAtlasANTsApplyTransforms, "input_image")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "template_t1", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_LinearSubjectToAtlasANTsApplyTransforms, "reference_image")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration, "inverse_composite_transform", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_LinearSubjectToAtlasANTsApplyTransforms, "transforms")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.SubjectToAtlas_DS
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlas_DS = Node(DataSink(infields=None), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlas_DS")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlas_DS.inputs._outputs = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlas_DS.inputs.base_directory = '/Shared/sinapse/CACHE/20140714_SessionsWkfl_Results'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlas_DS.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlas_DS.inputs.parameterization = True
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlas_DS.inputs.remove_dest_dir = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "ds_container", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlas_DS, "container")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_LinearSubjectToAtlasANTsApplyTransforms, "output_image", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_SubjectToAtlas_DS, "SubjectToAtlasWarped.@linear_output_images")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.MultiLabelSubjectToAtlasANTsApplyTransforms_map
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_MultiLabelSubjectToAtlasANTsApplyTransforms_map = MapNode(ApplyTransforms(), iterfield=['input_image'], name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_MultiLabelSubjectToAtlasANTsApplyTransforms_map")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_MultiLabelSubjectToAtlasANTsApplyTransforms_map.inputs.default_value = 0.0
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_MultiLabelSubjectToAtlasANTsApplyTransforms_map.inputs.environ = {}
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_MultiLabelSubjectToAtlasANTsApplyTransforms_map.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_MultiLabelSubjectToAtlasANTsApplyTransforms_map.inputs.interpolation = 'MultiLabel'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_MultiLabelSubjectToAtlasANTsApplyTransforms_map.inputs.num_threads = -1
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_MultiLabelSubjectToAtlasANTsApplyTransforms_map.inputs.out_postfix = '_trans'
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_MultiLabelSubjectToAtlasANTsApplyTransforms_map.inputs.terminal_output = 'stream'
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_99_MergeMultiLabelSessionSubjectToAtlas, "out", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_MultiLabelSubjectToAtlasANTsApplyTransforms_map, "input_image")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "template_t1", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_MultiLabelSubjectToAtlasANTsApplyTransforms_map, "reference_image")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_AtlasToSubjectANTsRegistration, "inverse_composite_transform", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_MultiLabelSubjectToAtlasANTsApplyTransforms_map, "transforms")
# Node: BAW_StandardWorkup_allSessions.sessionWorkflow.segmentation.ClipT1ImageWithBrainMask
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_ClipT1ImageWithBrainMask = Node(Function(input_names=['t1_image', 'brain_labels', 'clipped_file_name'], output_names=['clipped_file']), name="BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_ClipT1ImageWithBrainMask")
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_ClipT1ImageWithBrainMask.inputs.clipped_file_name = 'clipped_from_BABC_labels_t1.nii.gz'
def ClipT1ImageWithBrainMask(t1_image, brain_labels, clipped_file_name):
import os
import sys
import SimpleITK as sitk
## Now clean up the posteriors based on anatomical knowlege.
## sometimes the posteriors are not relevant for priors
## due to anomolies around the edges.
t1 = sitk.Cast(sitk.ReadImage(t1_image), sitk.sitkFloat32)
bl = sitk.Cast(sitk.ReadImage(brain_labels), sitk.sitkFloat32)
bl_binary = sitk.Cast(sitk.BinaryThreshold(bl, 1, 1000000), sitk.sitkFloat32)
clipped = t1 * bl_binary
sitk.WriteImage(clipped, clipped_file_name)
clipped_file = os.path.realpath(clipped_file_name)
return clipped_file
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_ClipT1ImageWithBrainMask.inputs.function_str = getsource(ClipT1ImageWithBrainMask)
BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_ClipT1ImageWithBrainMask.inputs.ignore_exception = False
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "t1_average", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_ClipT1ImageWithBrainMask, "t1_image")
BAW_StandardWorkup_allSessions.connect(BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_inputspec, "inputLabels", BAW_StandardWorkup_allSessions_sessionWorkflow_segmentation_ClipT1ImageWithBrainMask, "brain_labels")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment