diff --git a/AutoWorkup/PipeLineFunctionHelpers.py b/AutoWorkup/PipeLineFunctionHelpers.py index e1ff2ab4..4863c6b4 100644 --- a/AutoWorkup/PipeLineFunctionHelpers.py +++ b/AutoWorkup/PipeLineFunctionHelpers.py @@ -19,7 +19,7 @@ def convertToList(element): return [ element ] -def MakeInclusionMaskForGMStructures( posteriorDictionary ): +def MakeInclusionMaskForGMStructures( posteriorDictionary, candidateRegionFileName ): import SimpleITK as sitk AIR_FN=posteriorDictionary['AIR'] @@ -38,8 +38,12 @@ def MakeInclusionMaskForGMStructures( posteriorDictionary ): 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 outputCandidateRegion + return outputCandidateRegionFileName def makeListOfValidImages(imageFile): if imageFile is None: diff --git a/AutoWorkup/WorkupT1T2BRAINSCut.py b/AutoWorkup/WorkupT1T2BRAINSCut.py index e38668ff..bac9a39e 100644 --- a/AutoWorkup/WorkupT1T2BRAINSCut.py +++ b/AutoWorkup/WorkupT1T2BRAINSCut.py @@ -198,11 +198,12 @@ def CreateBRAINSCutWorkflow(projectid, cutWF.connect(inputsSpec, 'T1Volume', RF12BC, 'inputSubjectT1Filename') from PipeLineFunctionHelpers import MakeInclusionMaskForGMStructures; - makeCandidateRegionNode = pe.Node(interface=Function(['posteriorDictionary'], - ['outputCandidateRegion'], + makeCandidateRegionNode = pe.Node(interface=Function(['posteriorDictionary','candidateRegionFileName'], + ['outputCandidateRegionFileName'], function=MakeInclusionMaskForGMStructures), name="MakeCandidateRegion") + makeCandidateRegionNode.inputs.candidateRegionFileName = "RF12_CandidateRegionMask.nii.gz" cutWF.connect(inputsSpec,'posteriorDictionary',makeCandidateRegionNode,'posteriorDictionary') - cutWF.connect(makeCandidateRegionNode,'outputCandidateRegion', RF12BC,'candidateRegion') + cutWF.connect(makeCandidateRegionNode,'outputCandidateRegionFileName', RF12BC,'candidateRegion') if not t1Only: cutWF.connect(inputsSpec, 'T2Volume', RF12BC, 'inputSubjectT2Filename')