Beispiel #1
0
    def meetRequirement(self):

        images = Images(
            (self.getDenoisingImage("dwi", 'denoise'), 'denoise'),
            (self.getPreparationImage("dwi"), 'diffusion weighted'))

        if not images.isAtLeastOneImageExists():
            return False

        images = Images(
            (self.getParcellationImage('norm'), 'freesurfer normalize'),
            (self.getParcellationImage('mask'), 'freesurfer mask'),
            (self.getPreparationImage('grad', None, 'bvals'),
             'gradient .bvals encoding file'), (self.getPreparationImage(
                 'grad', None, 'bvecs'), 'gradient .bvecs encoding file'),
            (self.getPreparationImage('grad', None,
                                      'b'), 'gradient .b encoding file'))

        # if fieldmap available
        if Images(self.getPreparationImage("mag"),
                  self.getPreparationImage("phase")).isAllImagesExists():
            images.append((self.getParcellationImage('anat', 'freesurfer'),
                           "freesurfer anatomical"))

        return images
Beispiel #2
0
    def qaSupplier(self):
        """Create and supply images for the report generated by qa task

        """
        qaImages = Images()

        #Information on denoising algorithm
        information = 'Denoising was done using the {} algorithm'.format(self.algorithm)

        if self.matlabWarning:
            information = "Algorithm `aonlm` or `lpca` was set for the " \
                    "denoising, but Matlab is not available for this server. "\
                    "Please install and configure Matlab or set `ignore: True`"\
                    " into the [denoising] section of your config.cfg file."
            qaImages.extend(Images((False, 'Denoised diffusion image')))

        qaImages.setInformation(information)

        #Get images
        dwi = self.getPreparationImage("dwi")
        dwiDenoised = self.getImage('dwi', 'denoise')
        brainMask = self.getImage('mask', 'resample')
        b0 = self.getImage('b0')
        noiseMask = self.getImage('dwi', 'noise_mask')

        #Build qa images
        if dwiDenoised:

            dwiDenoisedQa = self.plot4dVolume(dwiDenoised, fov=brainMask)
            qaImages.append((dwiDenoisedQa, 'Denoised diffusion image'))

            dwiCompareQa = self.compare4dVolumes(
                    dwi, dwiDenoised, fov=brainMask)
            qaImages.append((dwiCompareQa, 'Before and after denoising'))

            if self.algorithm == "nlmeans":
                if self.sigmaVector != None:
                    sigmaQa = self.plotSigma(self.sigmaVector, dwiDenoised)
                    qaImages.append(
                            (sigmaQa, 'Sigmas from the nlmeans algorithm'))

                if noiseMask:
                    noiseMaskQa = self.plot3dVolume(
                            b0, edges=noiseMask, fov=noiseMask)
                    qaImages.append(
                            (noiseMaskQa, 'Noise mask from the nlmeans algorithm'))

        return qaImages
Beispiel #3
0
    def implement(self):

        dwi = self.getBackupImage('dwi')
        bEncs = self.getBackupImage('grad', None, 'b')
        bVals = self.getBackupImage('grad', None, 'bvals')
        bVecs = self.getBackupImage('grad', None, 'bvecs')

        (bEncs, bVecs,
         bVals) = self.__produceEncodingFiles(bEncs, bVecs, bVals,
                                              dwi)  # Convert bvecs bval

        expectedLayout = self.get('stride_orientation')
        if not mriutil.isDataStridesOrientationExpected(dwi, expectedLayout) \
                and self.get("force_realign_strides"):

            self.warning("Reorienting strides for image {}".format(dwi))
            self.__stride4DImage(dwi, bEncs, bVecs, bVals, expectedLayout)

        else:
            self.info("Linking {} to {}".format(
                dwi, util.symlink(dwi, self.workingDir)))

        images = Images(
            (self.getBackupImage('anat'), 'high resolution'),
            (self.getBackupImage('b0_pa'), 'B0 posterior to anterior'),
            (self.getBackupImage('b0_ap'), 'B0 anterior to posterior'),
            (self.getBackupImage('mag'), 'MR magnitude'),
            (self.getBackupImage('phase'), 'MR phase '),
            (self.getBackupImage('aparc_aseg'), 'parcellation'),
            (self.getBackupImage('anat',
                                 'freesurfer'), 'freesurfer anatomical'),
            (self.getBackupImage('lh_ribbon'), 'left hemisphere ribbon'),
            (self.getBackupImage('rh_ribbon'), 'right hemisphere ribbon'),
            (self.getBackupImage('brodmann'), 'brodmann'),
        )

        for image, description in images.getData():
            if image:
                if not mriutil.isDataStridesOrientationExpected(image, expectedLayout) \
                        and self.get("force_realign_strides"):
                    self.info(
                        mriutil.stride3DImage(image,
                                              self.buildName(image, "stride"),
                                              expectedLayout))
                else:
                    self.info("Found {} image, linking {} to {}".format(
                        description, image,
                        util.symlink(image, self.workingDir)))

        for directory in [
                os.path.join(self.backupDir, directory)
                for directory in os.listdir(self.backupDir)
                if os.path.isdir(os.path.join(self.backupDir, directory))
        ]:
            if mriutil.isAfreesurferStructure(directory):
                self.info(
                    "{} seem\'s a valid freesurfer structure: linking to {} directory"
                    .format(directory, self.workingDir))
                util.symlink(directory, self.workingDir,
                             self.get("parcellation", "id"))
Beispiel #4
0
    def qaSupplier(self):
        """Create and supply images for the report generated by qa task

        """
        #Get images
        b0 = self.getUpsamplingImage('b0', 'upsample')
        brainMask = self.getRegistrationImage('mask', 'resample')
        brodmann = self.getImage('brodmann', 'resample')
        aal2 = self.getImage('aal2', 'resample')
        networks7 = self.getImage('networks7', 'resample')

        #Build qa images
        brodmannQa = self.plot3dVolume(b0, segOverlay=brodmann, fov=brainMask)
        aal2Qa = self.plot3dVolume(b0, segOverlay=aal2, fov=brainMask)
        networks7Qa = self.plot3dVolume(b0,
                                        segOverlay=networks7,
                                        fov=brainMask)

        qaImages = Images(
                (brodmannQa, 'Brodmann segmentation on upsampled b0'),
                (aal2Qa, 'Aal2 segmentation on upsampled b0'),
                (networks7Qa, 'Resting state sevens networks segmentation ' \
                        'on upsampled b0'))

        return qaImages
Beispiel #5
0
    def isDirty(self):

        images = Images()

        dwi = self.getUpsamplingImage('dwi', 'upsample')

        if mriutil.getNbDirectionsFromDWI(dwi) <= 45 and not self.get(
                'forceHardi'):
            if 'deterministic' in self.get('algorithm'):
                images.append((
                    self.getImage('dwi', 'tensor_det', 'trk'),
                    "deterministic tensor connectome matrix from a streamlines"
                ))

            if 'probabilistic' in self.get('algorithm'):
                images.append((
                    self.getImage('dwi', 'tensor_prob', 'trk'),
                    "probabilistic tensor connectome matrix from a streamlines"
                ))

        else:
            images.append(
                (self.getImage('dwi', 'hardi_prob', 'trk'),
                 "tckgen hardi probabilistic streamlines tractography"))

            if self.get('sift'):
                images.append((self.getImage('dwi', 'tcksift',
                                             'trk'), 'tcksift'))

        return images
Beispiel #6
0
    def qaSupplier(self):
        """Create and supply images for the report generated by qa task

        """
        #Get images
        b0 = self.getUpsamplingImage('b0', 'upsample')
        brainMask = self.getImage('mask', 'resample')
        aparcAseg = self.getImage('aparc_aseg', 'resample')
        wmparc = self.getImage('wmparc', 'resample')
        tt5 = self.getImage('tt5', 'resample')

        #Build qa images
        brainMaskQa = self.plot3dVolume(b0, edges=brainMask, fov=brainMask)
        aparcAsegQa = self.plot3dVolume(b0,
                                        segOverlay=aparcAseg,
                                        fov=brainMask)
        wmparcQa = self.plot3dVolume(b0, segOverlay=wmparc, fov=brainMask)
        tt5Qas = self.plot4dVolumeToFrames(tt5, fov=brainMask)

        qaImages = Images(
            (brainMaskQa, 'Brain mask on upsampled b0'),
            (aparcAsegQa, 'aparcaseg segmentation on upsampled b0'),
            (wmparcQa, 'white matter segmentation on upsampled b0'),
            (tt5Qas[0], 'Cortical grey matter'),
            (tt5Qas[1], 'Sub-cortical grey matter'),
            (tt5Qas[2], 'White matter'),
            (tt5Qas[3], 'CSF'),
            (tt5Qas[4], 'Pathological tissue'),
        )

        return qaImages
Beispiel #7
0
    def qaSupplier(self):
        """Create and supply images for the report generated by qa task

        """
        anat = self.getImage('anat', 'freesurfer')  # Get freesurfer anat
        norm = self.getImage('norm')
        brainMask = self.getImage('mask')
        aparcAseg = self.getImage('aparc_aseg')
        wmparc = self.getImage('wmparc')
        tt5 = self.getImage('tt5')

        # Build qa images
        anatQa = self.plot3dVolume(anat, fov=brainMask)
        brainMaskQa = self.plot3dVolume(norm, edges=brainMask, fov=brainMask)
        aparcAsegQa = self.plot3dVolume(anat,
                                        segOverlay=aparcAseg,
                                        fov=aparcAseg)
        wmparcQa = self.plot3dVolume(anat, segOverlay=wmparc, fov=wmparc)
        tt5Qas = self.plot4dVolumeToFrames(tt5, fov=brainMask)

        qaImages = Images(
            (anatQa, 'High resolution anatomical image from Freesurfer'),
            (brainMaskQa, 'Brain mask on norm from Freesurfer'),
            (aparcAsegQa, 'Aparc aseg segmentation from Freesurfer'),
            (wmparcQa, 'White matter segmentation from Freesurfer'),
            (tt5Qas[0], 'Cortical grey matter'),
            (tt5Qas[1], 'Sub-cortical grey matter'),
            (tt5Qas[2], 'White matter'),
            (tt5Qas[3], 'CSF'),
            (tt5Qas[4], 'Pathological tissue'),
        )

        return qaImages
Beispiel #8
0
 def isDirty(self):
     return Images(
         (self.getImage('dwi', None, 'txt'),
          "response function estimation text file"), (self.getImage(
              'dwi', 'csd'), "constrained spherical deconvolution"),
         (self.getImage('dwi', 'nufo'), 'nufo'),
         (self.getImage('dwi', 'fixel_peak', 'msf'), 'fixel peak image'))
Beispiel #9
0
    def qaSupplier(self):
        """Create and supply images for the report generated by qa task

        """
        qaImages = Images()

        #Get images
        b0 = self.getUpsamplingImage('b0', 'upsample')
        whiteMatter = self.getImage("tt5", ["resample", "wm", "mask"])
        interfaceGmWm = self.getImage("tt5", ["register", "5tt2gmwmi"])
        area253 = self.getImage('aparc_aseg', ['253', 'mask'])
        area1024 = self.getImage('aparc_aseg', ['1024', 'mask'])

        #Build qa images
        tags = (
            (whiteMatter, 'resample white segmented mask'),
            #(interfaceGmWm, 'grey matter, white matter interface'),
            #(area253, 'area 253 from aparc_aseg atlas'),
            #(area1024, 'area 1024 from aparc_aseg atlas'),
        )
        for image, description in tags:
            imageQa = self.plot3dVolume(b0, edges=image, fov=image)
            qaImages.append((imageQa, description))

        return qaImages
Beispiel #10
0
    def meetRequirement(self):
        """Validate if all requirements have been met prior to launch the task

        Returns:
            True if all requirement are meet, False otherwise
        """
        return Images((self.getParcellationImage('anat', 'freesurfer'), 'anatomical'))
Beispiel #11
0
    def isDirty(self):
        """Validate if this tasks need to be submit for implementation

        """
        return Images(
                (os.path.join(self.workingDir, 'index.html'), 'QA index.html'),
                (os.path.join(self.workingDir, self.config.get('qa', 'jquery')), 'Jquery library'))
Beispiel #12
0
 def isDirty(self):
     return Images(
         (self.getImage('brodmann',
                        'resample'), 'brodmann atlas  resample'),
         (self.getImage('aal2', 'resample'), 'aal2 atlas resample'),
         (self.getImage('networks7', 'resample'),
          'Resting state sevens networks atlas resample'))
Beispiel #13
0
 def meetRequirement(self):
     return Images(
         (self.getPreparationImage('dwi'), 'diffusion weighted'),
         (self.getCorrectionImage('mask', 'corrected'), 'brain mask'),
         (self.getMaskingImage('aparc_aseg', ['253', 'mask']),
          'Corpus Callusum mask from the masking task'),
         (self.getCorrectionImage('b0', 'corrected'), 'B0'))
Beispiel #14
0
 def meetRequirement(self):
     return Images(
         (self.getUpsamplingImage('dwi', 'upsample'), 'diffusion weighted'),
         (self.getUpsamplingImage('grad', None,
                                  'b'), "gradient encoding b file"),
         (self.getMaskingImage('tt5', ['resample', 'wm', 'mask']),
          'white matter segmented mask'),
         (self.getRegistrationImage('mask', 'resample'), 'brain mask'))
Beispiel #15
0
 def meetRequirement(self):
     return Images(
         self.getUpsamplingImage('b0', 'upsample'),
         self.getRegistrationImage("freesurfer_dwi",
                                   ["transformation", "mrtrix"], "mat"),
         self.getRegistrationImage("freesurfer_dwi", "transformation",
                                   "mat"), self.getAtlasImage("brodmann"),
         self.getAtlasImage("aal2"), self.getAtlasImage("networks7"))
Beispiel #16
0
 def meetRequirement(self):
     return Images(
         (self.getUpsamplingImage('dwi', 'upsample'),
          "upsampled diffusion"), (self.getUpsamplingImage(
              'grad', None, 'bvals'), "gradient value bvals encoding file"),
         (self.getUpsamplingImage(
             'grad', None, 'bvecs'), "gradient vector bvecs encoding file"),
         (self.getRegistrationImage('mask', 'resample'), 'brain  mask'))
Beispiel #17
0
    def isDirty(self):

        return Images(
            (self.getImage('grad', None, 'bvals'),
             'gradient .bvals encoding file'), (self.getImage(
                 'grad', None, 'bvecs'), 'gradient .bvecs encoding file'),
            (self.getImage('grad', None, 'b'), 'gradient .b encoding file'),
            (self.getImage('anat'), 'high resolution'),
            (self.getImage('dwi'), 'diffusion weighted'))
Beispiel #18
0
    def meetRequirement(self, result=True):
        """Validate if all requirements have been met prior to launch the task

        """
        return Images(
            (self.getUpsamplingImage('dwi', 'upsample'), 'diffusion weighted'),
            (self.getRegistrationImage('mask', 'resample'), 'brain mask'),
            (self.getUpsamplingImage('grad', None, 'bvals'),
             '.bvals gradient encoding file'), (self.getUpsamplingImage(
                 'grad', None, 'bvecs'), '.bvecs gradient encoding file'))
Beispiel #19
0
 def isDirty(self):
     return Images(
         (self.getImage("dwi", "tensor"), "dipy tensor"),
         (self.getImage('dwi', 'v1'), "selected eigenvector 1"),
         (self.getImage('dwi', 'v2'), "selected eigenvector 2"),
         (self.getImage('dwi', 'v3'), "selected eigenvector 3"),
         (self.getImage('dwi', 'fa'), "fractional anisotropy"),
         (self.getImage('dwi', 'md'), "mean diffusivity MD"),
         (self.getImage('dwi', 'ad'), "selected eigenvalue(s) AD"),
         (self.getImage('dwi', 'rd'), "selected eigenvalue(s) RD"))
Beispiel #20
0
 def meetRequirement(self):
     return Images(
         (self.getRegistrationImage("aparc_aseg", "resample"),
          'resampled parcellation atlas'), (self.getRegistrationImage(
              "aparc_aseg", "register"), 'register parcellation atlas'),
         (self.getRegistrationImage('mask', 'resample'),
          'brain extracted, resampled high resolution'),
         (self.getRegistrationImage('mask', 'register'),
          'brain extracted, register high resolution'),
         (self.getRegistrationImage('tt5', 'resample'), '5tt resample'),
         (self.getRegistrationImage('tt5', 'register'), '5tt register'))
Beispiel #21
0
    def implement(self):

        self.info("Build directories structure for subject: {}".format(
            os.path.basename(self.workingDir)))
        #@TODO add description to that struct
        images = Images((self.getSubjectImage('anat'), ""),
                       (self.getSubjectImage('dwi'), ""),
                       (self.getSubjectImage('mag',), ""),
                       (self.getSubjectImage('phase'), ""),
                       (self.getSubjectImage('aparc_aseg'), ""),
                       (self.getSubjectImage('anat', 'freesurfer'), ""),
                       (self.getSubjectImage('lh_ribbon'), ""),
                       (self.getSubjectImage('rh_ribbon'), ""),
                       (self.getSubjectImage('brodmann'), ""),
                       (self.getSubjectImage('b0_ap'), ""),
                       (self.getSubjectImage('b0_pa'), ""),
                       (self.getSubjectImage('grad', None, 'b'), ""),
                       (self.getSubjectImage('grad', None, 'bvals'), ""),
                       (self.getSubjectImage('grad', None, 'bvecs'), ""),
                       (self.getSubjectImage('tq_dict', None, 'qry'), ""),
                       (self.getSubjectImage('queries', None, 'qry'), ""),
                       (self.getSubjectImage('config', None, 'cfg'), ""),)

        for image, description in images.getData():
            if image:
                self.info("Found {} image: moving it to {} directory".format(
                    description, image, self.workingDir))
                shutil.move(image, self.workingDir)

        directories = []
        for directory in os.listdir(self.subjectDir):
            target = os.path.join(self.subjectDir, directory)
            if os.path.isdir(target):
                directories.append(target)

        for directory in directories:
            if mriutil.isAfreesurferStructure(directory):
                self.info("{} seem\'s a valid freesurfer structure: moving it to {} directory".format(directory, self.workingDir))

                if os.path.islink(directory):
                    os.chdir(self.subjectDir)
                    # We need to chdir because `directory` is in
                    # `self.subjectDir` and we need `os.path.abspath` to
                    # work correctly
                    fsDirName = os.path.basename(directory)
                    linkto = os.path.abspath(os.readlink(directory))
                    newLinkto = os.path.relpath(linkto, self.workingDir)
                    newTarget = os.path.join(self.workingDir, fsDirName)
                    os.symlink(newLinkto, newTarget)
                    os.unlink(directory)
                    os.chdir(self.workingDir)
                else:
                    shutil.move(directory, self.workingDir)
Beispiel #22
0
 def meetRequirement(self):
     return Images(
         (self.getParcellationImage('anat',
                                    'freesurfer'), 'high resolution'),
         (self.getUpsamplingImage('b0', 'upsample'), 'b0 upsampled'),
         (self.getParcellationImage('aparc_aseg'), 'parcellation'),
         (self.getParcellationImage('wmparc'), 'parcellation'),
         (self.getParcellationImage('rh_ribbon'),
          'right hemisphere, ribbon'),
         (self.getParcellationImage('lh_ribbon'), 'left hemisphere ribbon'),
         (self.getParcellationImage('tt5'), '5tt'),
         (self.getParcellationImage('mask'), 'brain mask'))
Beispiel #23
0
 def isDirty(self):
     return Images((self.getImage('aparc_aseg'), 'parcellation  atlas'),
                   (self.getImage('wmparc'), 'wm parcellation'),
                   (self.getImage('anat', 'freesurfer'), 'anatomical'),
                   (self.getImage('rh_ribbon'), 'rh_ribbon'),
                   (self.getImage('lh_ribbon'), 'lh_ribbon'),
                   (self.getImage('norm'), 'norm'),
                   (self.getImage('mask'), 'freesurfer brain masks'),
                   (self.getImage("brainstem"), 'Brainstem label'),
                   (self.getImage("lhHipp"), 'Left Hippocampus label'),
                   (self.getImage("rhHipp"), 'Right Hippocampus label'),
                   (self.getImage('tt5'), '5tt'))
Beispiel #24
0
    def qaSupplier(self):
        """Create and supply images for the report generated by qa task
        """
        qaImages = Images()

        information = "Warning: due to storage restriction, streamlines were " \
                      "downsampled. Even if there is no difference in structural " \
                      "connectivity, you should be careful before computing any " \
                      "metrics along these streamlines.\n To run toad without this " \
                      "downsampling, please refer to the documentation."

        if self.defaultQuery:
            # get images
            norm = self.getRegistrationImage("norm", "resample")
            self.__buildNameTractfilteringOutputs()
            # images production
            tags = (
                (self.outputs[0], 'Corpus Callosum', 95, 60, 40, -80, 0, 160),
                (self.outputs[1], 'Inferior Fronto Occipital tract left', 95,
                 80, 40, -90, 0, 90),
                (self.outputs[2], 'Inferior Fronto Occipital tract right', 95,
                 80, 40, -90, 0, -90),
                (self.outputs[3], 'inferior Longitudinal Fasciculus left', 95,
                 80, 40, -90, 0, 90),
                (self.outputs[4], 'Inferior Longitudinal Fasciculus right', 95,
                 80, 40, -90, 0, -90),
                (self.outputs[5], 'Uncinate Fasciculus left', 95, 80, 40, -90,
                 0, 90),
                (self.outputs[6], 'Uncinate Fasciculus right', 95, 80, 40, -90,
                 0, -90),
                (self.outputs[7], 'Corticospinal tract Left', 95, 80, 40, -90,
                 0, 160),
                (self.outputs[8], 'Corticospinal tract right', 95, 80, 40, -90,
                 0, 200),
            )

            for data, description, xSlice, ySlice, zSlice, xRot, yRot, zRot in tags:
                if data is not None:
                    imageQa = self.plotTrk(data, norm, None, xSlice, ySlice,
                                           zSlice, xRot, yRot, zRot)
                    qaImages.append((imageQa, description))
                else:
                    # Add message about QA
                    pass
        else:
            information = """
            Because you didn't choose default queries and dictionnary,
            we are not able to create proper screenshots of the output bundles.
            """
        qaImages.setInformation(information)

        return qaImages
Beispiel #25
0
    def isDirty(self):
        """Validate if this tasks need to be submit for implementation

        """
        return Images(
            (self.getImage('dwi', 'v1'), "1st eigenvector"),
            (self.getImage('dwi', 'v2'), "2rd eigenvector"),
            (self.getImage('dwi', 'v3'), "3rd eigenvector"),
            (self.getImage('dwi', 'ad'), "selected eigenvalue(s) AD"),
            (self.getImage('dwi', 'rd'), "selected eigenvalue(s) RD"),
            (self.getImage('dwi', 'md'), "mean diffusivity"),
            (self.getImage('dwi', 'fa'), "fractional anisotropy"),
            (self.getImage('dwi', 'so'), "raw T2 signal with no weighting"))
Beispiel #26
0
    def __noiseAnalysis(self, dwi, noiseMask, ccMask, qaImages, description):
        """

        """
        snrPng = self.buildName(dwi, 'snr', 'png')
        histPng = self.buildName(dwi, 'hist', 'png')
        self.noiseAnalysis(dwi, noiseMask, ccMask, snrPng, histPng)
        qaImages.extend(
            Images(
                (snrPng,
                 '{} DWI image: SNR for each volume'.format(description)),
                (histPng, '{} DWI image: noise histogram'.format(description)),
            ))
        return qaImages
Beispiel #27
0
 def isDirty(self):
     return Images(
         (self.getImage('anat', 'resample'), 'anatomical resampled'),
         (self.getImage('aparc_aseg', 'resample'),
          'parcellation atlas resample'), (self.getImage(
              'aparc_aseg', 'register'), 'parcellation atlas register'),
         (self.getImage('wmparc', 'resample'),
          'white matter parcellation atlas resample'),
         (self.getImage('wmparc', 'register'),
          'white matter parcellation atlas register'),
         (self.getImage('tt5', 'register'), '5tt image register'),
         (self.getImage('mask', 'register'), 'brain mask register'),
         (self.getImage('tt5', 'resample'), '5tt image resample'),
         (self.getImage('mask', 'resample'), 'brain mask resample'),
         (self.getImage('norm', 'resample'), 'brain  resample'))
Beispiel #28
0
    def meetRequirement(self):
        """Validate if all requirements have been met prior to launch the task
        Returns:
            True if all requirement are meet, False otherwise
        """

        images = Images()

        dwi = self.getUpsamplingImage('dwi', 'upsample')
        nbDirections = mriutil.getNbDirectionsFromDWI(
            dwi)  # Get number of directions

        if nbDirections <= 45 and not self.get('tractographymrtrix',
                                               'forceHardi'):
            postfixTractography = 'tensor_prob'
        else:
            postfixTractography = 'hardi_prob'

        Images((self.getTractographymrtrixImage('dwi', postfixTractography,
                                                'trk'), 'Tractography file'),
               (self.__getAtlas(),
                'Atlas'))  # Check if tractographies are available

        return images
Beispiel #29
0
    def meetRequirement(self):
        images = Images(
            (self.getUpsamplingImage('dwi'), 'diffusion weighted'),
            (self.getUpsamplingImage('grad', None, 'bvals'),
             'gradient .bvals encoding file'), (self.getUpsamplingImage(
                 'grad', None, 'bvecs'), 'gradient .bvecs encoding file'),
            (self.getUpsamplingImage('grad', None,
                                     'benc'), 'gradient .b encoding file'),
            (self.getRegistrationImage('anat', ['freesurfer', 'resample']),
             'freesurfer anatomical resample'), (self.getRegistrationImage(
                 'mask', 'resample'), 'freesurfer mask resample'))

        #@TODO Add all metrics dependencies

        return images
Beispiel #30
0
 def meetRequirement(self):
     #@TODO add brain mask and 5tt as requierement
     return Images(
         (self.getUpsamplingImage('dwi', 'upsample'),
          'upsampled diffusion weighted'), (self.getUpsamplingImage(
              'grad', None, 'b'), '.b gradient encoding file'),
         (self.getRegistrationImage("mask", "resample"), 'mask resampled'),
         (self.getRegistrationImage("norm", "resample"), 'brain resampled'),
         (self.getMaskingImage(
             'aparc_aseg', ['253', 'mask']), 'area 253 from aparc_aseg'),
         (self.getRegistrationImage("tt5", "register"), '5tt register'),
         (self.getMaskingImage(
             'aparc_aseg', ['1024', 'mask']), 'area 1024 from aparc_aseg'),
         (self.getMaskingImage("tt5", ["register", "5tt2gmwmi"]),
          'grey matter, white matter interface'))