Skip to content

Commit 9b8b883

Browse files
committed
Merge branch 'enh/antsupdate' of github.com:mgxd/mindboggle into enh/antsupdate
2 parents c4dca80 + c48bc2f commit 9b8b883

File tree

3 files changed

+33
-255
lines changed

3 files changed

+33
-255
lines changed

install/install_mindboggle.sh

Lines changed: 0 additions & 243 deletions
This file was deleted.

mindboggle/mindboggle

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,10 @@ def first_string_containing_substring(substring, List):
348348
first_matching_string = [x for x in List if substring in x][0]
349349
return first_matching_string
350350

351+
# Ensure provenance configuration is inherited by workflow
352+
if args.prov:
353+
config.enable_provenance()
354+
351355
# ============================================================================
352356
#
353357
# Initialize workflow inputs and outputs
@@ -2361,11 +2365,10 @@ if __name__ == '__main__':
23612365
time0 = time()
23622366

23632367
# ------------------------------------------------------------------------
2364-
# Workflow configuration: provenance tracking, content hashing, etc.:
2368+
# Workflow configuration: content hashing, crashfiles, etc.:
23652369
# ------------------------------------------------------------------------
2366-
if args.prov:
2367-
config.enable_provenance()
23682370
mbFlow.config['execution']['hash_method'] = 'content'
2371+
mbFlow.config['execution']['crashfile_format'] = 'txt'
23692372
# mbFlow.config['execution']['use_relative_paths'] = True
23702373

23712374
# ------------------------------------------------------------------------

mindboggle/mindboggle123

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ from nipype.interfaces.utility import Merge
3838
from nipype.interfaces.freesurfer import ReconAll
3939
from nipype.interfaces.ants.segmentation import CorticalThickness
4040
from nipype.interfaces.ants import (ApplyTransforms, AntsJointFusion,
41-
LabelGeometry, Registration)
41+
LabelGeometry, Registration,
42+
MultiplyImages)
4243
from nipype.utils.misc import human_order_sorted
4344

4445

@@ -108,7 +109,7 @@ def SegOptions(option):
108109
raise argparse.ArgumentError('ants_seg value must be one of "quick" or "fusion".')
109110
adv_args.add_argument("--ants_seg", dest="seg",
110111
default="quick", type=SegOptions,
111-
help="Use ANTs 'quick' or 'long' to label subcortical structures")
112+
help="Use ANTs 'quick' or 'fusion' to label subcortical structures")
112113
adv_args.add_argument("--ants_segN", dest="segN", type=int,
113114
help="Number of images to use for joint fusion (2-20)")
114115
adv_args.add_argument("--mb_num_threads", dest="mb_num_threads",
@@ -129,6 +130,10 @@ TDIR = args.template
129130
if args.skip_freesurfer and args.skip_ants:
130131
print("Use only one of the skip arguments: --skip_freesurfer, --skip_ants.")
131132

133+
# Ensure provenance configuration is inherited by workflow
134+
if args.prov:
135+
config.enable_provenance()
136+
132137
# ----------------------------------------------------------------------------
133138
# Initialize workflow inputs and outputs
134139
# ----------------------------------------------------------------------------
@@ -327,12 +332,13 @@ else:
327332
# -----------------------------------------------------
328333
merge_transforms = Node(Merge(2), name="merge_transforms")
329334
transformer_nn = Node(ApplyTransforms(), name="transformer_nn")
330-
transformer_nn.inputs.reference_image = IMAGE
331335
transformer_nn.inputs.dimension = 3
332336
transformer_nn.inputs.invert_transform_flags = [False, False]
333337
transformer_nn.inputs.input_image = '/opt/data/OASIS-TRT-20_jointfusion_DKT31_CMA_labels_in_OASIS-30_v2.nii.gz'
334338
transformer_nn.inputs.interpolation = 'NearestNeighbor'
335339

340+
mbFlow.connect(corticalthickness, 'BrainSegmentationN4',
341+
transformer_nn, 'reference_image')
336342
mbFlow.connect(corticalthickness, 'TemplateToSubject1GenericAffine',
337343
merge_transforms, 'in1')
338344
mbFlow.connect(corticalthickness, 'TemplateToSubject0Warp',
@@ -378,22 +384,36 @@ else:
378384
if args.num_threads and args.num_threads > 1:
379385
reg.inputs.num_threads = args.num_threads
380386

381-
transformer_nn = MapNode(ApplyTransforms(), iterfield=['input_image'],
387+
transformer_nn = MapNode(ApplyTransforms(),
388+
iterfield=['input_image', 'transforms'],
382389
name="transformer_nn")
383-
transformer_nn.inputs.reference_image = IMAGE
384390
transformer_nn.inputs.dimension = 3
385391
transformer_nn.inputs.input_image = labels[:N]
386392
transformer_nn.inputs.interpolation = 'NearestNeighbor'
387393

388394
labeler = Node(AntsJointFusion(), name='labeler')
389395
labeler.inputs.dimension = 3
390-
labeler.inputs.target_image = [IMAGE]
391396
labeler.inputs.out_label_fusion = 'label.nii.gz'
392397
if args.num_threads and args.num_threads > 1:
393398
labeler.inputs.num_threads = args.num_threads
394399

400+
def tolist(x):
401+
return [x]
402+
403+
mask_brain = Node(MultiplyImages(dimension=3,
404+
output_product_image='brain.nii.gz'
405+
),
406+
name='mask_brain')
395407
mbFlow.connect(corticalthickness, 'BrainSegmentationN4',
408+
mask_brain, 'first_input')
409+
mbFlow.connect(corticalthickness, 'BrainExtractionMask', mask_brain,
410+
'second_input')
411+
mbFlow.connect(mask_brain, 'output_product_image',
396412
reg, 'fixed_image')
413+
mbFlow.connect(mask_brain, 'output_product_image',
414+
transformer_nn, 'reference_image')
415+
mbFlow.connect(mask_brain, ('output_product_image', tolist),
416+
labeler, 'target_image')
397417
mbFlow.connect(reg, 'composite_transform', transformer_nn, 'transforms')
398418
mbFlow.connect(corticalthickness, 'BrainExtractionMask', labeler,
399419
'mask_image')
@@ -429,10 +449,8 @@ if __name__ == '__main__':
429449
time0 = time()
430450

431451
# --------------------------------------------------------------------
432-
# Workflow configuration: provenance tracking, content hashing, etc.:
452+
# Workflow configuration: content hashing, crashfiles, etc.:
433453
# --------------------------------------------------------------------
434-
if args.prov:
435-
config.enable_provenance()
436454
mbFlow.config['execution']['hash_method'] = 'content'
437455
# mbFlow.config['execution']['use_relative_paths'] = True
438456
mbFlow.config['execution']['crashfile_format'] = 'txt'

0 commit comments

Comments
 (0)