From e2571dc2709a1f73c45163f7820d9e42f2f22aad Mon Sep 17 00:00:00 2001 From: Satrajit Ghosh Date: Mon, 19 Feb 2018 10:48:45 -0500 Subject: [PATCH 1/5] fix: create both workflow options --- nipype/workflows/dmri/fsl/tbss.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/nipype/workflows/dmri/fsl/tbss.py b/nipype/workflows/dmri/fsl/tbss.py index d055bbd31b..ac45323c7e 100644 --- a/nipype/workflows/dmri/fsl/tbss.py +++ b/nipype/workflows/dmri/fsl/tbss.py @@ -387,8 +387,14 @@ def create_tbss_all(name='tbss_all', estimate_skeleton=True): ------- >>> from nipype.workflows.dmri.fsl import tbss - >>> tbss = tbss.create_tbss_all('tbss') + >>> tbss = tbss.create_tbss_all('tbss', estimate_skeleton=True) >>> tbss.inputs.inputnode.skeleton_thresh = 0.2 + >>> tbss.inputs.inputnode.fa_list = ['s1_wrapped_FA.nii', 's2_wrapped_FA.nii', 's3_wrapped_FA.nii'] + + >>> tbss = tbss.create_tbss_all('tbss', estimate_skeleton=False) + >>> tbss.inputs.inputnode.skeleton_thresh = 0.2 + >>> tbss.inputs.inputnode.fa_list = ['s1_wrapped_FA.nii', 's2_wrapped_FA.nii', 's3_wrapped_FA.nii'] + Inputs:: From 40aa316c0810011025a70e40abc6f0748374c27b Mon Sep 17 00:00:00 2001 From: Satrajit Ghosh Date: Mon, 19 Feb 2018 10:49:17 -0500 Subject: [PATCH 2/5] tst: remove workflows/dmri/fsl regression tests from pytests --- .circleci/test_py2_pytest.sh | 2 +- .circleci/test_py3_pytest.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.circleci/test_py2_pytest.sh b/.circleci/test_py2_pytest.sh index 6ea0ddedfc..df1489d240 100644 --- a/.circleci/test_py2_pytest.sh +++ b/.circleci/test_py2_pytest.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker run --rm=false -t -v $WORKDIR:/work -v $HOME/examples:/data/examples:ro -w /work -e CI_SKIP_TEST=1 -e NIPYPE_RESOURCE_MONITOR=1 -e FSL_COURSE_DATA="/data/examples/nipype-fsl_course_data" "${DOCKER_IMAGE}:py27" /usr/bin/run_pytests.sh +docker run --rm=false -t -v $WORKDIR:/work -v $HOME/examples:/data/examples:ro -w /work -e CI_SKIP_TEST=1 -e NIPYPE_RESOURCE_MONITOR=1 "${DOCKER_IMAGE}:py27" /usr/bin/run_pytests.sh diff --git a/.circleci/test_py3_pytest.sh b/.circleci/test_py3_pytest.sh index 545f430308..b93208f395 100644 --- a/.circleci/test_py3_pytest.sh +++ b/.circleci/test_py3_pytest.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker run --rm=false -t -v $WORKDIR:/work -v $HOME/examples:/data/examples:ro -w /work -e CI_SKIP_TEST=1 -e NIPYPE_RESOURCE_MONITOR=1 -e FSL_COURSE_DATA="/data/examples/nipype-fsl_course_data" "${DOCKER_IMAGE}:py36" /usr/bin/run_pytests.sh +docker run --rm=false -t -v $WORKDIR:/work -v $HOME/examples:/data/examples:ro -w /work -e CI_SKIP_TEST=1 -e NIPYPE_RESOURCE_MONITOR=1 "${DOCKER_IMAGE}:py36" /usr/bin/run_pytests.sh From 951bacd613da072ec3cae213528fbf20c2ddd5a9 Mon Sep 17 00:00:00 2001 From: Satrajit Ghosh Date: Mon, 19 Feb 2018 11:24:35 -0500 Subject: [PATCH 3/5] fix: rename variable to not reflect imported module --- nipype/workflows/dmri/fsl/tbss.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/nipype/workflows/dmri/fsl/tbss.py b/nipype/workflows/dmri/fsl/tbss.py index ac45323c7e..e601b9b3fb 100644 --- a/nipype/workflows/dmri/fsl/tbss.py +++ b/nipype/workflows/dmri/fsl/tbss.py @@ -387,13 +387,13 @@ def create_tbss_all(name='tbss_all', estimate_skeleton=True): ------- >>> from nipype.workflows.dmri.fsl import tbss - >>> tbss = tbss.create_tbss_all('tbss', estimate_skeleton=True) - >>> tbss.inputs.inputnode.skeleton_thresh = 0.2 - >>> tbss.inputs.inputnode.fa_list = ['s1_wrapped_FA.nii', 's2_wrapped_FA.nii', 's3_wrapped_FA.nii'] + >>> tbss_wf = tbss.create_tbss_all('tbss', estimate_skeleton=True) + >>> tbss_wf.inputs.inputnode.skeleton_thresh = 0.2 + >>> tbss_wf.inputs.inputnode.fa_list = ['s1_wrapped_FA.nii', 's2_wrapped_FA.nii', 's3_wrapped_FA.nii'] - >>> tbss = tbss.create_tbss_all('tbss', estimate_skeleton=False) - >>> tbss.inputs.inputnode.skeleton_thresh = 0.2 - >>> tbss.inputs.inputnode.fa_list = ['s1_wrapped_FA.nii', 's2_wrapped_FA.nii', 's3_wrapped_FA.nii'] + >>> tbss_wf = tbss.create_tbss_all('tbss', estimate_skeleton=False) + >>> tbss_wf.inputs.inputnode.skeleton_thresh = 0.2 + >>> tbss_wf.inputs.inputnode.fa_list = ['s1_wrapped_FA.nii', 's2_wrapped_FA.nii', 's3_wrapped_FA.nii'] Inputs:: From 4a71c12a5ef0f536cd356644b6fdbc9676d249bd Mon Sep 17 00:00:00 2001 From: Satrajit Ghosh Date: Mon, 19 Feb 2018 12:14:49 -0500 Subject: [PATCH 4/5] fix: tbss3 should warn and return workflow when FSL not available --- nipype/workflows/dmri/fsl/tbss.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nipype/workflows/dmri/fsl/tbss.py b/nipype/workflows/dmri/fsl/tbss.py index e601b9b3fb..22a1540ea9 100644 --- a/nipype/workflows/dmri/fsl/tbss.py +++ b/nipype/workflows/dmri/fsl/tbss.py @@ -264,8 +264,11 @@ def create_tbss_3_postreg(name='tbss_3_postreg', estimate_skeleton=True): # $FSLDIR/bin/fslmaths $FSLDIR/data/standard/FMRIB58_FA_1mm -mas mean_FA_mask mean_FA maskstd = pe.Node( fsl.ImageMaths(op_string="-mas", suffix="_masked"), name="maskstd") - maskstd.inputs.in_file = fsl.Info.standard_image( - "FMRIB58_FA_1mm.nii.gz") + if fsl.no_fsl(): + warn('NO FSL found') + else: + maskstd.inputs.in_file = fsl.Info.standard_image( + "FMRIB58_FA_1mm.nii.gz") # $FSLDIR/bin/fslmaths mean_FA -bin mean_FA_mask binmaskstd = pe.Node( From 6a026ac22e50852ab065925da5964cc52180c305 Mon Sep 17 00:00:00 2001 From: Satrajit Ghosh Date: Mon, 19 Feb 2018 12:44:52 -0500 Subject: [PATCH 5/5] fix: tbss3 should warn and return workflow when FSL not available --- nipype/workflows/dmri/fsl/tbss.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/nipype/workflows/dmri/fsl/tbss.py b/nipype/workflows/dmri/fsl/tbss.py index 22a1540ea9..3aef3e734a 100644 --- a/nipype/workflows/dmri/fsl/tbss.py +++ b/nipype/workflows/dmri/fsl/tbss.py @@ -284,8 +284,11 @@ def create_tbss_3_postreg(name='tbss_3_postreg', estimate_skeleton=True): (maskgroup, maskgroup2, [("out_file", "in_file")]), (binmaskstd, maskgroup2, [("out_file", "in_file2")])]) - outputnode.inputs.skeleton_file = fsl.Info.standard_image( - "FMRIB58_FA-skeleton_1mm.nii.gz") + if fsl.no_fsl(): + warn('NO FSL found') + else: + outputnode.inputs.skeleton_file = fsl.Info.standard_image( + "FMRIB58_FA-skeleton_1mm.nii.gz") tbss3.connect([(binmaskstd, outputnode, [('out_file', 'groupmask')]), (maskstd, outputnode, [('out_file', 'meanfa_file')]), (maskgroup2, outputnode, [('out_file',