Beispiel #1
0
def test_run_T1VolumeCreateDartel(cmdopt):
    from os.path import dirname, join, abspath
    import shutil
    from clinica.pipelines.t1_volume_create_dartel.t1_volume_create_dartel_pipeline import T1VolumeCreateDartel

    working_dir = cmdopt
    root = dirname(abspath(join(abspath(__file__), pardir)))
    root = join(root, 'data', 'T1VolumeCreateDartel')

    # Remove potential residual of previous UT
    clean_folder(join(working_dir, 'T1VolumeCreateDartel'))
    clean_folder(join(root, 'out', 'caps'), recreate=False)
    shutil.copytree(join(root, 'in', 'caps'), join(root, 'out', 'caps'))

    parameters = {'group_id': 'UnitTest'}
    # Instantiate pipeline
    pipeline = T1VolumeCreateDartel(bids_directory=join(root, 'in', 'bids'),
                                    caps_directory=join(root, 'out', 'caps'),
                                    tsv_file=join(root, 'in', 'subjects.tsv'),
                                    base_dir=join(working_dir,
                                                  'T1VolumeCreateDartel'),
                                    parameters=parameters)
    pipeline.build()
    pipeline.run(plugin='MultiProc',
                 plugin_args={'n_procs': 4},
                 bypass_check=True)

    # Check output vs ref
    out_data_template = join(
        root,
        'out/caps/groups/group-UnitTest/t1/group-UnitTest_template.nii.gz')
    ref_data_template = join(root, 'ref/group-UnitTest_template.nii.gz')
    assert likeliness_measure(out_data_template, ref_data_template,
                              (1e-3, 0.1), (1e-2, 0.1))

    subjects = [
        'sub-ADNI011S4105', 'sub-ADNI023S4020', 'sub-ADNI035S4082',
        'sub-ADNI128S4832'
    ]
    out_data_forward_def = [
        join(
            root, 'out', 'caps', 'subjects', sub, 'ses-M00', 't1', 'spm',
            'dartel', 'group-UnitTest', sub +
            '_ses-M00_T1w_target-UnitTest_transformation-forward_deformation.nii.gz'
        ) for sub in subjects
    ]
    ref_data_forward_def = [
        join(
            root, 'ref', sub +
            '_ses-M00_T1w_target-UnitTest_transformation-forward_deformation.nii.gz'
        ) for sub in subjects
    ]

    for i in range(len(out_data_forward_def)):
        assert likeliness_measure(out_data_forward_def[i],
                                  ref_data_forward_def[i], (1e-3, 0.25),
                                  (1e-2, 0.1))

    # Remove data in out folder
    clean_folder(join(root, 'out', 'caps'), recreate=False)
    def run_command(self, args):
        """
        """
        from tempfile import mkdtemp
        from clinica.utils.stream import cprint
        from clinica.pipelines.t1_volume_create_dartel.t1_volume_create_dartel_pipeline import T1VolumeCreateDartel

        pipeline = T1VolumeCreateDartel(bids_directory=self.absolute_path(args.bids_directory),
                                        caps_directory=self.absolute_path(args.caps_directory),
                                        tsv_file=self.absolute_path(args.subjects_sessions_tsv),
                                        group_id=args.group_id)

        pipeline.parameters.update({'dartel_tissues': args.dartel_tissues})

        if args.working_directory is None:
            args.working_directory = mkdtemp()
        pipeline.base_dir = self.absolute_path(args.working_directory)

        if args.n_procs:
            pipeline.run(plugin='MultiProc',
                         plugin_args={'n_procs': args.n_procs})
        else:
            pipeline.run()

        cprint("The " + self._name + " pipeline has completed. You can now delete the working directory (" + args.working_directory + ").")
def test_instantiate_T1VolumeCreateDartel():
    from clinica.pipelines.t1_volume_create_dartel.t1_volume_create_dartel_pipeline import T1VolumeCreateDartel
    from os.path import dirname, join, abspath

    root = dirname(abspath(join(abspath(__file__), pardir)))
    root = join(root, 'data', 'T1VolumeCreateDartel')
    pipeline = T1VolumeCreateDartel(bids_directory=join(root, 'in', 'bids'),
                                    caps_directory=join(root, 'in', 'caps'),
                                    tsv_file=join(root, 'in', 'subjects.tsv'),
                                    group_id='UnitTest')

    pipeline.build()
Beispiel #4
0
def test_instantiate_T1VolumeCreateDartel(cmdopt):

    from clinica.pipelines.t1_volume_create_dartel.t1_volume_create_dartel_pipeline import (
        T1VolumeCreateDartel, )

    input_dir = Path(cmdopt["input"])
    root = input_dir / "T1VolumeCreateDartel"

    parameters = {"group_label": "UnitTest"}
    pipeline = T1VolumeCreateDartel(
        bids_directory=fspath(root / "in" / "bids"),
        caps_directory=fspath(root / "in" / "caps"),
        tsv_file=fspath(root / "in" / "subjects.tsv"),
        parameters=parameters,
    )
    pipeline.build()
Beispiel #5
0
def test_instantiate_T1VolumeCreateDartel():
    from os.path import abspath, dirname, join

    from clinica.pipelines.t1_volume_create_dartel.t1_volume_create_dartel_pipeline import (
        T1VolumeCreateDartel, )

    root = dirname(abspath(join(abspath(__file__), pardir)))
    root = join(root, "data", "T1VolumeCreateDartel")

    parameters = {"group_label": "UnitTest"}
    pipeline = T1VolumeCreateDartel(
        bids_directory=join(root, "in", "bids"),
        caps_directory=join(root, "in", "caps"),
        tsv_file=join(root, "in", "subjects.tsv"),
        parameters=parameters,
    )
    pipeline.build()
Beispiel #6
0
def run_T1VolumeCreateDartel(
    input_dir: Path, output_dir: Path, ref_dir: Path, working_dir: Path
) -> None:
    import shutil

    from clinica.pipelines.t1_volume_create_dartel.t1_volume_create_dartel_pipeline import (
        T1VolumeCreateDartel,
    )

    # Copy necessary data from in to out
    shutil.copytree(input_dir / "caps", output_dir / "caps", copy_function=shutil.copy)

    parameters = {"group_label": "UnitTest"}
    # Instantiate pipeline
    pipeline = T1VolumeCreateDartel(
        bids_directory=fspath(input_dir / "bids"),
        caps_directory=fspath(output_dir / "caps"),
        tsv_file=fspath(input_dir / "subjects.tsv"),
        base_dir=fspath(working_dir),
        parameters=parameters,
    )
    pipeline.build()
    pipeline.run(plugin="MultiProc", plugin_args={"n_procs": 4}, bypass_check=True)

    # Check output vs ref
    out_data_template = fspath(
        output_dir / "caps/groups/group-UnitTest/t1/group-UnitTest_template.nii.gz"
    )
    ref_data_template = fspath(ref_dir / "group-UnitTest_template.nii.gz")
    assert likeliness_measure(
        out_data_template, ref_data_template, (1e-3, 0.1), (1e-2, 0.1)
    )

    subjects = [
        "sub-ADNI011S4105",
        "sub-ADNI023S4020",
        "sub-ADNI035S4082",
        "sub-ADNI128S4832",
    ]
    out_data_forward_def = [
        fspath(
            output_dir
            / "caps"
            / "subjects"
            / sub
            / "ses-M00"
            / "t1"
            / "spm"
            / "dartel"
            / "group-UnitTest"
            / (
                sub
                + "_ses-M00_T1w_target-UnitTest_transformation-forward_deformation.nii.gz"
            )
        )
        for sub in subjects
    ]
    ref_data_forward_def = [
        fspath(
            ref_dir
            / (
                sub
                + "_ses-M00_T1w_target-UnitTest_transformation-forward_deformation.nii.gz"
            )
        )
        for sub in subjects
    ]

    for i in range(len(out_data_forward_def)):
        assert likeliness_measure(
            out_data_forward_def[i], ref_data_forward_def[i], (1e-3, 0.25), (1e-2, 0.1)
        )
Beispiel #7
0
def test_run_T1VolumeCreateDartel(cmdopt):
    import shutil
    from os.path import abspath, dirname, join

    from clinica.pipelines.t1_volume_create_dartel.t1_volume_create_dartel_pipeline import (
        T1VolumeCreateDartel, )

    working_dir = cmdopt
    root = dirname(abspath(join(abspath(__file__), pardir, pardir)))
    root = join(root, "data", "T1VolumeCreateDartel")

    # Remove potential residual of previous UT
    clean_folder(join(working_dir, "T1VolumeCreateDartel"))
    clean_folder(join(root, "out", "caps"), recreate=False)
    shutil.copytree(join(root, "in", "caps"), join(root, "out", "caps"))

    parameters = {"group_label": "UnitTest"}
    # Instantiate pipeline
    pipeline = T1VolumeCreateDartel(
        bids_directory=join(root, "in", "bids"),
        caps_directory=join(root, "out", "caps"),
        tsv_file=join(root, "in", "subjects.tsv"),
        base_dir=join(working_dir, "T1VolumeCreateDartel"),
        parameters=parameters,
    )
    pipeline.build()
    pipeline.run(plugin="MultiProc",
                 plugin_args={"n_procs": 4},
                 bypass_check=True)

    # Check output vs ref
    out_data_template = join(
        root,
        "out/caps/groups/group-UnitTest/t1/group-UnitTest_template.nii.gz")
    ref_data_template = join(root, "ref/group-UnitTest_template.nii.gz")
    assert likeliness_measure(out_data_template, ref_data_template,
                              (1e-3, 0.1), (1e-2, 0.1))

    subjects = [
        "sub-ADNI011S4105",
        "sub-ADNI023S4020",
        "sub-ADNI035S4082",
        "sub-ADNI128S4832",
    ]
    out_data_forward_def = [
        join(
            root,
            "out",
            "caps",
            "subjects",
            sub,
            "ses-M00",
            "t1",
            "spm",
            "dartel",
            "group-UnitTest",
            sub +
            "_ses-M00_T1w_target-UnitTest_transformation-forward_deformation.nii.gz",
        ) for sub in subjects
    ]
    ref_data_forward_def = [
        join(
            root,
            "ref",
            sub +
            "_ses-M00_T1w_target-UnitTest_transformation-forward_deformation.nii.gz",
        ) for sub in subjects
    ]

    for i in range(len(out_data_forward_def)):
        assert likeliness_measure(out_data_forward_def[i],
                                  ref_data_forward_def[i], (1e-3, 0.25),
                                  (1e-2, 0.1))

    # Remove data in out folder
    clean_folder(join(root, "out", "caps"), recreate=False)
    clean_folder(join(working_dir, "T1VolumeCreateDartel"), recreate=False)