def rename_into_caps(in_bids_dwi, fname_dwi, fname_bval, fname_bvec,
                     fname_brainmask):
    """
    Rename the outputs of the pipelines into CAPS format namely:
    <source_file>_space-T1w_preproc[.nii.gz|bval|bvec]

    Args:
        in_bids_dwi (str): Input BIDS DWI to extract the <source_file>
        fname_dwi (str): Preprocessed DWI.
        fname_bval (str): Preprocessed DWI.
        fname_bvec (str): Preprocessed DWI.
        fname_brainmask (str): B0 mask.

    Returns:
        The different outputs in CAPS format
    """
    import os

    from nipype.interfaces.utility import Rename
    from nipype.utils.filemanip import split_filename

    # Extract <source_file> in format sub-CLNC01_ses-M00_[acq-label]_dwi
    _, source_file_dwi, _ = split_filename(in_bids_dwi)

    # Extract base path from fname:
    base_dir_dwi, _, _ = split_filename(fname_dwi)
    base_dir_bval, _, _ = split_filename(fname_bval)
    base_dir_bvec, _, _ = split_filename(fname_bvec)
    base_dir_brainmask, _, _ = split_filename(fname_brainmask)

    # Rename into CAPS DWI :
    rename_dwi = Rename()
    rename_dwi.inputs.in_file = fname_dwi
    rename_dwi.inputs.format_string = os.path.join(
        base_dir_dwi, source_file_dwi + "_space-b0_preproc.nii.gz")
    out_caps_dwi = rename_dwi.run()

    # Rename into CAPS bval :
    rename_bval = Rename()
    rename_bval.inputs.in_file = fname_bval
    rename_bval.inputs.format_string = os.path.join(
        base_dir_bval, source_file_dwi + "_space-b0_preproc.bval")
    out_caps_bval = rename_bval.run()

    # Rename into CAPS DWI :
    rename_bvec = Rename()
    rename_bvec.inputs.in_file = fname_bvec
    rename_bvec.inputs.format_string = os.path.join(
        base_dir_bvec, source_file_dwi + "_space-b0_preproc.bvec")
    out_caps_bvec = rename_bvec.run()

    # Rename into CAPS DWI :
    rename_brainmask = Rename()
    rename_brainmask.inputs.in_file = fname_brainmask
    rename_brainmask.inputs.format_string = os.path.join(
        base_dir_brainmask, source_file_dwi + "_space-b0_brainmask.nii.gz")
    out_caps_brainmask = rename_brainmask.run()

    return out_caps_dwi.outputs.out_file, out_caps_bval.outputs.out_file, \
        out_caps_bvec.outputs.out_file, out_caps_brainmask.outputs.out_file
Пример #2
0
def rename_into_caps(
    in_bids_pet,
    fname_pet,
    fname_trans,
    suvr_reference_region,
    uncropped_image,
    fname_pet_in_t1w=None,
):
    """
    Rename the outputs of the pipelines into CAPS format.
    Args:
        in_bids_pet (str): Input BIDS PET to extract the <source_file>
        fname_pet (str): Preprocessed PET file.
        fname_trans (str): Transformation file from PET to MRI space
        suvr_reference_region (str): SUVR mask name for file name output
        uncropped_image (bool): Pipeline argument for image cropping
        fname_pet_in_t1w (bool): Pipeline argument for saving intermediate file
    Returns:
        The different outputs in CAPS format
    """
    import os

    from nipype.interfaces.utility import Rename
    from nipype.utils.filemanip import split_filename

    _, source_file_pet, _ = split_filename(in_bids_pet)

    # Rename into CAPS PET:
    rename_pet = Rename()
    rename_pet.inputs.in_file = fname_pet
    if not uncropped_image:
        suffix = f"_space-MNI152NLin2009cSym_desc-Crop_res-1x1x1_suvr-{suvr_reference_region}_pet.nii.gz"
        rename_pet.inputs.format_string = source_file_pet + suffix
    else:
        suffix = f"_space-MNI152NLin2009cSym_res-1x1x1_suvr-{suvr_reference_region}_pet.nii.gz"
        rename_pet.inputs.format_string = source_file_pet + suffix
    out_caps_pet = rename_pet.run().outputs.out_file

    # Rename into CAPS transformation file:
    rename_trans = Rename()
    rename_trans.inputs.in_file = fname_trans
    rename_trans.inputs.format_string = source_file_pet + "_space-T1w_rigid.mat"
    out_caps_trans = rename_trans.run().outputs.out_file

    # Rename intermediate PET in T1w MRI space
    if fname_pet_in_t1w is not None:
        rename_pet_in_t1w = Rename()
        rename_pet_in_t1w.inputs.in_file = fname_pet_in_t1w
        rename_pet_in_t1w.inputs.format_string = (source_file_pet +
                                                  "_space-T1w_pet.nii.gz")
        out_caps_pet_in_t1w = rename_pet_in_t1w.run().outputs.out_file
    else:
        out_caps_pet_in_t1w = None

    return out_caps_pet, out_caps_trans, out_caps_pet_in_t1w
Пример #3
0
 def __init__(self, in_file='path', format_string='', **options):
     from nipype.interfaces.utility import Rename
     rename = Rename()
     rename.inputs.in_file = in_file
     rename.inputs.format_string = format_string
     for ef in options:
         setattr(rename.inputs, ef, options[ef])
     self.res = rename.run()
Пример #4
0
def rename_into_caps(
    in_bids_dwi,
    fname_dwi,
    fname_bval,
    fname_bvec,
    fname_brainmask,
    fname_magnitude,
    fname_fmap,
    fname_smoothed_fmap,
):
    """Rename the outputs of the pipelines into CAPS.

    Args:
        in_bids_dwi (str): Input BIDS DWI to extract the <source_file>
        fname_dwi (str): Preprocessed DWI file.
        fname_bval (str): Preprocessed bval.
        fname_bvec (str): Preprocessed bvec.
        fname_brainmask (str): B0 mask.
        fname_smoothed_fmap (str): Smoothed (calibrated) fmap on b0 space.
        fname_fmap (str): Calibrated fmap on b0 space.
        fname_magnitude (str): Magnitude image on b0 space.

    Returns:
        Tuple[str, str, str, str, str, str, str]: The different outputs in CAPS format.
    """
    import os

    from nipype.interfaces.utility import Rename
    from nipype.utils.filemanip import split_filename

    # Extract <source_file> in format sub-CLNC01_ses-M00_[acq-label]_dwi
    _, source_file_dwi, _ = split_filename(in_bids_dwi)

    # Extract base path from fname:
    base_dir_dwi, _, _ = split_filename(fname_dwi)
    base_dir_bval, _, _ = split_filename(fname_bval)
    base_dir_bvec, _, _ = split_filename(fname_bvec)
    base_dir_brainmask, _, _ = split_filename(fname_brainmask)
    base_dir_smoothed_fmap, _, _ = split_filename(fname_smoothed_fmap)
    base_dir_calibrated_fmap, _, _ = split_filename(fname_fmap)
    base_dir_magnitude, _, _ = split_filename(fname_magnitude)

    # Rename into CAPS DWI:
    rename_dwi = Rename()
    rename_dwi.inputs.in_file = fname_dwi
    rename_dwi.inputs.format_string = os.path.join(
        base_dir_dwi, f"{source_file_dwi}_space-b0_preproc.nii.gz")
    out_caps_dwi = rename_dwi.run()

    # Rename into CAPS bval:
    rename_bval = Rename()
    rename_bval.inputs.in_file = fname_bval
    rename_bval.inputs.format_string = os.path.join(
        base_dir_bval, f"{source_file_dwi}_space-b0_preproc.bval")
    out_caps_bval = rename_bval.run()

    # Rename into CAPS bvec:
    rename_bvec = Rename()
    rename_bvec.inputs.in_file = fname_bvec
    rename_bvec.inputs.format_string = os.path.join(
        base_dir_bvec, f"{source_file_dwi}_space-b0_preproc.bvec")
    out_caps_bvec = rename_bvec.run()

    # Rename into CAPS brainmask:
    rename_brainmask = Rename()
    rename_brainmask.inputs.in_file = fname_brainmask
    rename_brainmask.inputs.format_string = os.path.join(
        base_dir_brainmask, f"{source_file_dwi}_space-b0_brainmask.nii.gz")
    out_caps_brainmask = rename_brainmask.run()

    # Rename into CAPS magnitude:
    rename_magnitude = Rename()
    rename_magnitude.inputs.in_file = fname_magnitude
    rename_magnitude.inputs.format_string = os.path.join(
        base_dir_magnitude, f"{source_file_dwi}_space-b0_magnitude1.nii.gz")
    out_caps_magnitude = rename_magnitude.run()

    # Rename into CAPS fmap:
    rename_calibrated_fmap = Rename()
    rename_calibrated_fmap.inputs.in_file = fname_fmap
    rename_calibrated_fmap.inputs.format_string = os.path.join(
        base_dir_calibrated_fmap, f"{source_file_dwi}_space-b0_fmap.nii.gz")
    out_caps_fmap = rename_calibrated_fmap.run()

    # Rename into CAPS smoothed fmap:
    rename_smoothed_fmap = Rename()
    rename_smoothed_fmap.inputs.in_file = fname_smoothed_fmap
    rename_smoothed_fmap.inputs.format_string = os.path.join(
        base_dir_smoothed_fmap,
        f"{source_file_dwi}_space-b0_fwhm-4_fmap.nii.gz")
    out_caps_smoothed_fmap = rename_smoothed_fmap.run()

    return (
        out_caps_dwi.outputs.out_file,
        out_caps_bval.outputs.out_file,
        out_caps_bvec.outputs.out_file,
        out_caps_brainmask.outputs.out_file,
        out_caps_magnitude.outputs.out_file,
        out_caps_fmap.outputs.out_file,
        out_caps_smoothed_fmap.outputs.out_file,
    )
Пример #5
0
def rename_into_caps(
    in_caps_dwi,
    in_norm_fa,
    in_norm_md,
    in_norm_ad,
    in_norm_rd,
    in_b_spline_transform,
    in_affine_matrix,
):
    """Rename different outputs of the pipelines into CAPS format.

    Returns:
        The different outputs with CAPS naming convention
    """
    from nipype.interfaces.utility import Rename

    from clinica.pipelines.dwi_dti.dwi_dti_utils import (
        extract_bids_identifier_from_caps_filename, )

    bids_identifier = extract_bids_identifier_from_caps_filename(in_caps_dwi)

    # CAPS normalized FA
    rename_fa = Rename()
    rename_fa.inputs.in_file = in_norm_fa
    rename_fa.inputs.format_string = (
        f"{bids_identifier}_space-MNI152Lin_res-1x1x1_FA.nii.gz")
    out_caps_fa = rename_fa.run()
    # CAPS normalized MD
    rename_md = Rename()
    rename_md.inputs.in_file = in_norm_md
    rename_md.inputs.format_string = (
        f"{bids_identifier}_space-MNI152Lin_res-1x1x1_MD.nii.gz")
    out_caps_md = rename_md.run()
    # CAPS normalized AD
    rename_ad = Rename()
    rename_ad.inputs.in_file = in_norm_ad
    rename_ad.inputs.format_string = (
        f"{bids_identifier}_space-MNI152Lin_res-1x1x1_AD.nii.gz")
    out_caps_ad = rename_ad.run()
    # CAPS normalized RD
    rename_rd = Rename()
    rename_rd.inputs.in_file = in_norm_rd
    rename_rd.inputs.format_string = (
        f"{bids_identifier}_space-MNI152Lin_res-1x1x1_RD.nii.gz")
    out_caps_rd = rename_rd.run()
    # CAPS B-spline transform
    rename_b_spline = Rename()
    rename_b_spline.inputs.in_file = in_b_spline_transform
    rename_b_spline.inputs.format_string = (
        f"{bids_identifier}_space-MNI152Lin_res-1x1x1_deformation.nii.gz")
    out_caps_b_spline_transform = rename_b_spline.run()
    # CAPS Affine matrix
    rename_affine = Rename()
    rename_affine.inputs.in_file = in_affine_matrix
    rename_affine.inputs.format_string = (
        f"{bids_identifier}_space-MNI152Lin_res-1x1x1_affine.mat")
    out_caps_affine_matrix = rename_affine.run()

    return (
        out_caps_fa.outputs.out_file,
        out_caps_md.outputs.out_file,
        out_caps_ad.outputs.out_file,
        out_caps_rd.outputs.out_file,
        out_caps_b_spline_transform.outputs.out_file,
        out_caps_affine_matrix.outputs.out_file,
    )
Пример #6
0
def rename_into_caps(in_caps_dwi,
                     in_norm_fa, in_norm_md, in_norm_ad, in_norm_rd,
                     in_b_spline_transform, in_affine_matrix):
    """
    Rename the outputs of the pipelines into CAPS format namely:
    <source_file>_space-T1w_preproc[.nii.gz|bval|bvec]

    Args:

    Returns:
        The different outputs in CAPS format
    """
    from nipype.utils.filemanip import split_filename
    from nipype.interfaces.utility import Rename
    import os

    from clinica.pipelines.dwi_processing_dti.dwi_processing_dti_utils import extract_bids_identifier_from_caps_filename

    bids_identifier = extract_bids_identifier_from_caps_filename(in_caps_dwi)

    # Extract base path from fname:
    base_dir_norm_fa, _, _ = split_filename(in_norm_fa)
    base_dir_norm_md, _, _ = split_filename(in_norm_md)
    base_dir_norm_ad, _, _ = split_filename(in_norm_ad)
    base_dir_norm_rd, _, _ = split_filename(in_norm_rd)
    base_dir_b_spline_transform, _, _ = split_filename(in_b_spline_transform)
    base_dir_affine_matrix, _, _ = split_filename(in_affine_matrix)

    # Rename into CAPS FA:
    rename_fa = Rename()
    rename_fa.inputs.in_file = in_norm_fa
    rename_fa.inputs.format_string = os.path.join(
        base_dir_norm_fa,
        bids_identifier + "_space-MNI152Lin_res-1x1x1_fa.nii.gz")
    out_caps_fa = rename_fa.run()

    # Rename into CAPS MD:
    rename_md = Rename()
    rename_md.inputs.in_file = in_norm_md
    rename_md.inputs.format_string = os.path.join(
        base_dir_norm_md,
        bids_identifier + "_space-MNI152Lin_res-1x1x1_md.nii.gz")
    out_caps_md = rename_md.run()

    # Rename into CAPS AD:
    rename_ad = Rename()
    rename_ad.inputs.in_file = in_norm_ad
    rename_ad.inputs.format_string = os.path.join(
        base_dir_norm_ad,
        bids_identifier + "_space-MNI152Lin_res-1x1x1_ad.nii.gz")
    out_caps_ad = rename_ad.run()

    # Rename into CAPS RD:
    rename_rd = Rename()
    rename_rd.inputs.in_file = in_norm_rd
    rename_rd.inputs.format_string = os.path.join(
        base_dir_norm_rd,
        bids_identifier + "_space-MNI152Lin_res-1x1x1_rd.nii.gz")
    out_caps_rd = rename_rd.run()

    # Rename into CAPS B-spline transform:
    rename_b_spline = Rename()
    rename_b_spline.inputs.in_file = in_b_spline_transform
    rename_b_spline.inputs.format_string = os.path.join(
        base_dir_b_spline_transform,
        bids_identifier + "_space-MNI152Lin_res-1x1x1_deformation.nii.gz")
    out_caps_b_spline_transform = rename_b_spline.run()

    # Rename into CAPS Affine Matrix:
    rename_affine = Rename()
    rename_affine.inputs.in_file = in_affine_matrix
    rename_affine.inputs.format_string = os.path.join(
        base_dir_affine_matrix,
        bids_identifier + "_space-MNI152Lin_res-1x1x1_affine.mat")
    out_caps_affine_matrix = rename_affine.run()

    from clinica.utils.stream import cprint
    cprint("Renamed files:")
    cprint(out_caps_fa.outputs.out_file)
    cprint(out_caps_md.outputs.out_file)
    cprint(out_caps_ad.outputs.out_file)
    cprint(out_caps_rd.outputs.out_file)
    cprint(out_caps_b_spline_transform.outputs.out_file)
    cprint(out_caps_affine_matrix.outputs.out_file)

    return out_caps_fa.outputs.out_file, out_caps_md.outputs.out_file,\
        out_caps_ad.outputs.out_file, out_caps_rd.outputs.out_file, \
        out_caps_b_spline_transform.outputs.out_file, \
        out_caps_affine_matrix.outputs.out_file