Created
July 15, 2014 22:15
-
-
Save dmwelch/a42397c160a046e10f70 to your computer and use it in GitHub Desktop.
testingnipypelimits.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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