Пример #1
0
    def run_command(self, args):
        from clinica.iotools.converters.adni_to_bids.adni_to_bids import AdniToBids
        from os.path import exists, join
        from clinica.utils.stream import cprint
        from colorama import Fore
        from time import sleep

        adni_to_bids = AdniToBids()

        # Check dcm2nii and dcm2niix dependencies
        adni_to_bids.check_adni_dependencies()

        if 'fMRI' in args.modalities and not exists(join(args.clinical_data_directory, 'IDA_MR_Metadata_Listing.csv')):
            cprint(Fore.RED + '[Warning] We could not detect file IDA_MR_Metadata_Listing.csv in your clinical data folder.'
                   + ' Therefore, fMRI conversion is disabled.' + Fore.GREEN
                   + '\nADNI conversion will start in a few seconds...' + Fore.RESET)
            # Enough time for the user to read the message
            sleep(7)
            args.modalities.remove('fMRI')

        if not args.clinical_data_only:
            adni_to_bids.convert_images(self.absolute_path(args.dataset_directory),
                                        self.absolute_path(args.clinical_data_directory),
                                        self.absolute_path(args.bids_directory),
                                        args.subjects_list,
                                        args.modalities)

        adni_to_bids.convert_clinical_data(self.absolute_path(args.clinical_data_directory),
                                           self.absolute_path(args.bids_directory))
Пример #2
0
def test_run_Adni2Bids(cmdopt):
    from os.path import abspath, dirname, join

    from clinica.iotools.converters.adni_to_bids.adni_to_bids import AdniToBids

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

    clean_folder(join(root, "out", "bids"), recreate=True)

    adni_to_bids = AdniToBids()
    adni_to_bids.check_adni_dependencies()

    dataset_directory = join(root, "in", "unorganized_data")
    clinical_data_directory = join(root, "in", "clinical_data")
    bids_directory = join(root, "out", "bids")
    subjects_list = join(root, "in", "subjects.txt")
    modalities = ["T1", "PET_FDG", "PET_AMYLOID", "PET_TAU", "DWI", "FLAIR", "fMRI"]
    adni_to_bids.convert_images(
        dataset_directory,
        clinical_data_directory,
        bids_directory,
        subjects_list,
        modalities,
    )
    adni_to_bids.convert_clinical_data(clinical_data_directory, bids_directory)
    # Generate tree of output files
    compare_folders(join(root, "out"), join(root, "ref"), shared_folder_name="bids")
    clean_folder(join(root, "out", "bids"), recreate=True)
Пример #3
0
def test_run_Adni2Bids(cmdopt):
    from clinica.iotools.converters.adni_to_bids.adni_to_bids import AdniToBids
    from os.path import dirname, join, abspath

    root = join(dirname(abspath(__file__)), pardir, 'data', 'Adni2Bids')

    clean_folder(join(root, 'out', 'bids'), recreate=True)

    adni_to_bids = AdniToBids()
    adni_to_bids.check_adni_dependencies()

    dataset_directory = join(root, 'in', 'unorganized_data')
    clinical_data_directory = join(root, 'in', 'clinical_data_25-04-19')
    bids_directory = join(root, 'out', 'bids')
    subjects_list = join(root, 'in', 'subjects.txt')
    modalities = [
        'T1', 'PET_FDG', 'PET_AMYLOID', 'PET_TAU', 'DWI', 'FLAIR', 'fMRI'
    ]
    adni_to_bids.convert_images(dataset_directory, clinical_data_directory,
                                bids_directory, subjects_list, modalities)
    adni_to_bids.convert_clinical_data(clinical_data_directory, bids_directory)
    # Generate tree of output files
    compare_folders(join(root, 'out'),
                    join(root, 'ref'),
                    shared_folder_name='bids')
    clean_folder(join(root, 'out', 'bids'), recreate=True)
Пример #4
0
def run_adni2bids(input_dir: PathLike, output_dir: PathLike,
                  ref_dir: PathLike) -> None:
    from clinica.iotools.converters.adni_to_bids.adni_to_bids import AdniToBids

    # Arrange
    clinical_data_directory = input_dir / "clinical_data"
    dataset_directory = input_dir / "unorganized_data"
    subjects_list = input_dir / "subjects.txt"
    modalities = [
        "T1", "PET_FDG", "PET_AMYLOID", "PET_TAU", "DWI", "FLAIR", "fMRI"
    ]
    # Act
    adni_to_bids = AdniToBids()
    adni_to_bids.check_adni_dependencies()
    adni_to_bids.convert_images(
        dataset_directory,
        clinical_data_directory,
        output_dir / "bids",
        subjects_list,
        modalities,
    )
    adni_to_bids.convert_clinical_data(clinical_data_directory,
                                       output_dir / "bids")
    # Assert
    compare_folders(output_dir / "bids", ref_dir / "bids", output_dir)
Пример #5
0
    def run_command(self, args):
        from colorama import Fore

        from clinica.iotools.converters.adni_to_bids.adni_to_bids import AdniToBids
        from clinica.utils.exceptions import ClinicaParserError

        adni_to_bids = AdniToBids()

        # Check dcm2nii and dcm2niix dependencies
        adni_to_bids.check_adni_dependencies()

        if args.clinical_data_only and args.force_new_extraction:
            raise ClinicaParserError(
                f"{Fore.RED}\n[Error] Arguments clinical_data_only and force_new_extraction are mutually exclusive.{Fore.RESET}"
            )

        if not args.clinical_data_only:
            adni_to_bids.convert_images(
                self.absolute_path(args.dataset_directory),
                self.absolute_path(args.clinical_data_directory),
                self.absolute_path(args.bids_directory),
                args.subjects_list,
                args.modalities,
                args.force_new_extraction,
            )

        adni_to_bids.convert_clinical_data(
            self.absolute_path(args.clinical_data_directory),
            self.absolute_path(args.bids_directory),
        )
Пример #6
0
    def run_command(self, args):
        from clinica.iotools.converters.adni_to_bids.adni_to_bids import AdniToBids
        adni_to_bids = AdniToBids()

        # Check dcm2nii and dcm2niix dependencies
        adni_to_bids.check_adni_dependencies()

        if not args.clinical_data_only:
            adni_to_bids.convert_images(
                self.absolute_path(args.dataset_directory),
                self.absolute_path(args.clinical_data_directory),
                self.absolute_path(args.bids_directory), args.subjects_list,
                args.modalities)

        adni_to_bids.convert_clinical_data(
            self.absolute_path(args.clinical_data_directory),
            self.absolute_path(args.bids_directory))
Пример #7
0
def cli(
    dataset_directory: str,
    clinical_data_directory: str,
    bids_directory: str,
    subjects_list: Optional[str] = None,
    clinical_data_only: bool = False,
    force_new_extraction: bool = False,
    modalities: List[str] = ALL_MODALITIES,
) -> None:
    """ADNI to BIDS converter.

    Convert the imaging and clinical data of ADNI (http://adni.loni.usc.edu/), located in DATASET_DIRECTORY and
    CLINICAL_DATA_DIRECTORY respectively, to a BIDS dataset in the target BIDS_DIRECTORY.
    """
    from clinica.iotools.converters.adni_to_bids.adni_to_bids import AdniToBids
    from clinica.utils.exceptions import ClinicaParserError

    adni_to_bids = AdniToBids()
    adni_to_bids.check_adni_dependencies()

    if clinical_data_only and force_new_extraction:
        raise ClinicaParserError(
            "Arguments `clinical_data_only` and `force_new_extraction` are mutually exclusive."
        )

    if not clinical_data_only:
        adni_to_bids.convert_images(
            dataset_directory,
            clinical_data_directory,
            bids_directory,
            subjects_list,
            modalities,
            force_new_extraction,
        )

    adni_to_bids.convert_clinical_data(
        clinical_data_dir=clinical_data_directory,
        out_path=bids_directory,
        clinical_data_only=clinical_data_only,
        subjects_list_path=subjects_list,
    )