Example #1
0
    def implement(self):

        tt5 = self.getRegistrationImage("tt5", "register")
        seed_gmwmi = self.getMaskingImage("tt5", ["register", "5tt2gmwmi"])
        brodmann = self.getRegistrationImage("brodmann", "resample")
        norm = self.getRegistrationImage("norm", "resample")

        mask253 = self.getMaskingImage('aparc_aseg', ['253', 'mask'])
        mask1024= self.getMaskingImage('aparc_aseg', ['1024', 'mask'])

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

        bFile = self.getUpsamplingImage('grad', None, 'b')
        mask = self.getRegistrationImage('mask', 'resample')
         
        #tensor part
        tckDet = self.__tckgenTensor(dwi, self.buildName(dwi, 'tensor_det', 'tck'), mask, tt5, seed_gmwmi, bFile, 'Tensor_Det')
        tckDetConnectome = self.__tck2connectome(tckDet, brodmann, self.buildName(tckDet, 'connectome', 'csv'))
        tckDetConnectomeNormalize = self.__normalizeConnectome(tckDetConnectome, self.buildName(tckDetConnectome, 'normalize', 'csv'))
        mriutil.plotConnectome(tckDetConnectomeNormalize, self.buildName(tckDetConnectomeNormalize, None, "png"))

        tckDetRoi = self.__tckedit(tckDet, mask253, self.buildName(tckDet, 'roi','tck'))
        tckDetRoiTrk = mriutil.tck2trk(tckDetRoi, norm , self.buildName(tckDetRoi, None, 'trk'))


        tckProb = self.__tckgenTensor(dwi, self.buildName(dwi, 'tensor_prob', 'tck'), mask, tt5, seed_gmwmi, bFile, 'Tensor_Prob')
        tckProbConnectome = self.__tck2connectome(tckProb, brodmann, self.buildName(tckProb, 'connectome', 'csv'))
        tckProbConnectomeNormalize = self.__normalizeConnectome(tckProbConnectome, self.buildName(tckProbConnectome, 'normalize', 'csv'))
        mriutil.plotConnectome(tckProbConnectomeNormalize, self.buildName(tckProbConnectomeNormalize, None, "png"))

        tckProbRoi = self.__tckedit(tckProb, mask253, self.buildName(tckProb, 'roi','tck'))
        tckProbRoiTrk = mriutil.tck2trk(tckProbRoi, norm , self.buildName(tckProbRoi, None, 'trk'))

        #HARDI part
        csd =  self.getHardimrtrixImage('dwi','csd')
        hardiTck = self.__tckgenHardi(csd, self.buildName(csd, 'hardi_prob', 'tck'), tt5)
        hardiTckConnectome = self.__tck2connectome(hardiTck, brodmann, self.buildName(hardiTck, 'connectome', 'csv'))
        hardiTckConnectomeNormalize = self.__normalizeConnectome(hardiTckConnectome, self.buildName(hardiTckConnectome, 'normalize', 'csv'))
        mriutil.plotConnectome(hardiTckConnectomeNormalize, self.buildName(hardiTckConnectomeNormalize, None, "png"))

        hardiTckRoi = self.__tckedit(hardiTck, mask253, self.buildName(hardiTck, 'roi','tck'))
        tckgenRoiTrk = mriutil.tck2trk(hardiTckRoi, norm , self.buildName(hardiTckRoi, None, 'trk'))


        tcksift = self.__tcksift(hardiTck, csd)
        tcksiftConnectome = self.__tck2connectome(tcksift, brodmann, self.buildName(tcksift, 'connectome', 'csv'))
        tcksiftConnectomeNormalize = self.__normalizeConnectome(tcksiftConnectome, self.buildName(tcksiftConnectome, 'normalize', 'csv'))

        mriutil.plotConnectome(tcksiftConnectomeNormalize, self.buildName(tcksiftConnectomeNormalize, None, "png"))
        tcksiftRoi = self.__tckedit(tcksift, mask253, self.buildName(tcksift, 'roi', 'tck'))
        tcksiftRoiTrk = mriutil.tck2trk(tcksiftRoi, norm , self.buildName(tcksiftRoi, None, 'trk'))

        #create PNG
        if self.get('general', 'vtk_available'):
            mriutil.createVtkPng(tckDetRoiTrk, norm, mask253)
            mriutil.createVtkPng(tckProbRoiTrk, norm, mask253)
            mriutil.createVtkPng(tckgenRoiTrk, norm, mask253)
            mriutil.createVtkPng(tcksiftRoiTrk, norm, mask253)
    def implement(self):

        tt5 = self.getRegistrationImage("tt5", "register")
        seed_gmwmi = self.getMaskingImage("tt5", ["register", "5tt2gmwmi"])
        norm = self.getRegistrationImage("norm", "resample")

        mask253 = self.getMaskingImage('aparc_aseg', ['253', 'mask'])
        mask1024= self.getMaskingImage('aparc_aseg', ['1024', 'mask'])

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

        bFile = self.getUpsamplingImage('grad', None, 'b')
        mask = self.getRegistrationImage('mask', 'resample')


        self.__nbDirections = mriutil.getNbDirectionsFromDWI(dwi)
        if self.__nbDirections <= 45:
            if 'deterministic' in self.get('algorithm'):
                tckDet = self.__tckgenTensor(dwi, self.buildName(dwi, 'tensor_det', 'tck'), mask, tt5, seed_gmwmi, bFile, 'Tensor_Det')
                tckDetRoi = self.__tckedit(tckDet, mask253, self.buildName(tckDet, 'roi','tck'))
                tckDetRoiTrk = mriutil.tck2trk(tckDetRoi, norm, self.buildName(tckDetRoi, None, 'trk'))
                tckDetTrk = mriutil.tck2trk(tckDet, norm, self.buildName(tckDet, None, 'trk'))
                self.__tckDetRoiTrk = tckDetRoiTrk

            if 'probabilistic' in self.get('algorithm'):
                tckProb = self.__tckgenTensor(dwi, self.buildName(dwi, 'tensor_prob', 'tck'), mask, tt5, seed_gmwmi, bFile, 'Tensor_Prob')
                tckProbRoi = self.__tckedit(tckProb, mask253, self.buildName(tckProb, 'roi','tck'))
                tckProbRoiTrk = mriutil.tck2trk(tckProbRoi, norm , self.buildName(tckProbRoi, None, 'trk'))
                tckProbTrk = mriutil.tck2trk(tckProb, norm , self.buildName(tckProb, None, 'trk'))
                self.__tckProbRoiTrk = tckProbRoiTrk

        else:
            if 'hardi' in self.get('algorithm'):
                csd =  self.getHardimrtrixImage('dwi','csd')
                hardiTck = self.__tckgenHardi(csd, self.buildName(csd, 'hardi_prob', 'tck'), tt5)
                hardiTckRoi = self.__tckedit(hardiTck, mask253, self.buildName(hardiTck, 'roi','tck'))
                tckgenRoiTrk = mriutil.tck2trk(hardiTckRoi, norm , self.buildName(hardiTckRoi, None, 'trk'))
                hardiTrk = mriutil.tck2trk(hardiTck, norm, self.buildName(hardiTck, 'None', 'trk'))
                self.__tckgenRoiTrk = tckgenRoiTrk

            if 'sift' in self.get('algorithm'):
                tcksift = self.__tcksift(hardiTck, csd)
                tcksiftRoi = self.__tckedit(tcksift, mask253, self.buildName(tcksift, 'roi', 'tck'))
                tcksiftRoiTrk = mriutil.tck2trk(tcksiftRoi, norm , self.buildName(tcksiftRoi, None, 'trk'))
                tcksiftTrk = mriutil.tck2trk(tcksift, norm, self.buildName(tcksift, 'None', 'trk'))
                self.__tcksiftRoiTrk = tcksiftRoiTrk
Example #3
0
    def implement(self):

        tt5 = self.getRegistrationImage("tt5", "register")
        seed_gmwmi = self.getMaskingImage("tt5", ["register", "5tt2gmwmi"])
        norm = self.getRegistrationImage("norm", "resample")

        mask253 = self.getMaskingImage('aparc_aseg', ['253', 'mask'])
        # mask1024= self.getMaskingImage('aparc_aseg', ['1024', 'mask'])

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

        bFile = self.getUpsamplingImage('grad', None, 'b')
        mask = self.getRegistrationImage('mask', 'resample')

        # If step is None set Step = voxelSize/2

        if self.get('step') == 'None':
            voxelSize = [float(x) for x in self.get('methodology', 't1_voxelsize')[1:-1].split(',')]
            self.set('step', str(float(voxelSize[0]) * 0.5))
            self.set('angle', str(90 * float(self.get('step')) / float(voxelSize[0])))

        self.__nbDirections = mriutil.getNbDirectionsFromDWI(dwi)
        if self.__nbDirections <= 45 and not self.get('forceHardi'):

            self.set('methodReconstruction', 'tenseur')

            if 'deterministic' in self.get('algorithm'):
                tckDet = self.__tckgenTensor(
                        dwi, self.buildName(dwi, 'tensor_det', 'tck'),
                        mask, tt5, seed_gmwmi, bFile, 'Tensor_Det')
                tckDetTrk = mriutil.tck2trk(
                        tckDet, norm, self.buildName(tckDet, None, 'trk'))
                tckDetRoi = self.__tckedit(
                        tckDet, mask253, self.buildName(tckDet, 'roi', 'tck'))
                tckDetRoiTrk = mriutil.tck2trk(
                        tckDetRoi, norm, self.buildName(tckDetRoi, None, 'trk'))
                self.__tckDetRoiTrk = tckDetRoiTrk

                self.set('algorithm', 'Determinist')  # Set Method tractography Det

            elif 'probabilistic' in self.get('algorithm'):
                tckProb = self.__tckgenTensor(
                        dwi, self.buildName(dwi, 'tensor_prob', 'tck'),
                        mask, tt5, seed_gmwmi, bFile, 'Tensor_Prob')
                tckProbTrk = mriutil.tck2trk(
                        tckProb, norm , self.buildName(tckProb, None, 'trk'))
                tckProbRoi = self.__tckedit(
                        tckProb, mask253, self.buildName(tckProb, 'roi', 'tck'))
                tckProbRoiTrk = mriutil.tck2trk(
                        tckProbRoi, norm , self.buildName(tckProbRoi, None, 'trk'))
                self.__tckProbRoiTrk = tckProbRoiTrk

                self.set('algorithm', 'Probabilist')  # Set Method tractography Prob

        else:
            csd =  self.getHardimrtrixImage('dwi', 'csd')
            hardiTck = self.__tckgenHardi(
                    csd, self.buildName(csd, 'hardi_prob', 'tck'), tt5)
            hardiTrk = mriutil.tck2trk(
                    hardiTck, norm, self.buildName(hardiTck, None, 'trk'))
            hardiTckRoi = self.__tckedit(
                    hardiTck, mask253, self.buildName(hardiTck, 'roi', 'tck'))
            tckgenRoiTrk = mriutil.tck2trk(
                    hardiTckRoi, norm , self.buildName(hardiTckRoi, None, 'trk'))
            self.__tckgenRoiTrk = tckgenRoiTrk

            self.set('methodReconstruction', 'hardi')
            self.set('algorithm', 'Probabilist')

            if self.get('sift'):
                tcksift = self.__tcksift(hardiTck, csd)
                tcksiftTrk = mriutil.tck2trk(
                    tcksift, norm, self.buildName(tcksift, None, 'trk'))
                tcksiftRoi = self.__tckedit(
                    tcksift, mask253, self.buildName(tcksift, 'roi', 'tck'))
                tcksiftRoiTrk = mriutil.tck2trk(
                    tcksiftRoi, norm , self.buildName(tcksiftRoi, None, 'trk'))
                self.__tcksiftRoiTrk = tcksiftRoiTrk
Example #4
0
    def implement(self):

        tt5 = self.getRegistrationImage("tt5", "register")
        seed_gmwmi = self.getMaskingImage("tt5", ["register", "5tt2gmwmi"])
        norm = self.getRegistrationImage("norm", "resample")

        mask253 = self.getMaskingImage('aparc_aseg', ['253', 'mask'])
        # mask1024= self.getMaskingImage('aparc_aseg', ['1024', 'mask'])

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

        bFile = self.getUpsamplingImage('grad', None, 'b')
        mask = self.getRegistrationImage('mask', 'resample')

        # If step is None set Step = voxelSize/2

        if self.get('step') == 'None':
            voxelSize = [
                float(x) for x in self.get('methodology', 't1_voxelsize')
                [1:-1].split(',')
            ]
            self.set('step', str(float(voxelSize[0]) * 0.5))
            self.set('angle',
                     str(90 * float(self.get('step')) / float(voxelSize[0])))

        self.__nbDirections = mriutil.getNbDirectionsFromDWI(dwi)
        if self.__nbDirections <= 45 and not self.get('forceHardi'):

            self.set('methodReconstruction', 'tenseur')

            if 'deterministic' in self.get('algorithm'):
                tckDet = self.__tckgenTensor(
                    dwi, self.buildName(dwi, 'tensor_det', 'tck'), mask, tt5,
                    seed_gmwmi, bFile, 'Tensor_Det')
                tckDetTrk = mriutil.tck2trk(
                    tckDet, norm, self.buildName(tckDet, None, 'trk'))
                tckDetRoi = self.__tckedit(
                    tckDet, mask253, self.buildName(tckDet, 'roi', 'tck'))
                tckDetRoiTrk = mriutil.tck2trk(
                    tckDetRoi, norm, self.buildName(tckDetRoi, None, 'trk'))
                self.__tckDetRoiTrk = tckDetRoiTrk

                self.set('algorithm',
                         'Determinist')  # Set Method tractography Det

            elif 'probabilistic' in self.get('algorithm'):
                tckProb = self.__tckgenTensor(
                    dwi, self.buildName(dwi, 'tensor_prob', 'tck'), mask, tt5,
                    seed_gmwmi, bFile, 'Tensor_Prob')
                tckProbTrk = mriutil.tck2trk(
                    tckProb, norm, self.buildName(tckProb, None, 'trk'))
                tckProbRoi = self.__tckedit(
                    tckProb, mask253, self.buildName(tckProb, 'roi', 'tck'))
                tckProbRoiTrk = mriutil.tck2trk(
                    tckProbRoi, norm, self.buildName(tckProbRoi, None, 'trk'))
                self.__tckProbRoiTrk = tckProbRoiTrk

                self.set('algorithm',
                         'Probabilist')  # Set Method tractography Prob

        else:
            csd = self.getHardimrtrixImage('dwi', 'csd')
            hardiTck = self.__tckgenHardi(
                csd, self.buildName(csd, 'hardi_prob', 'tck'), tt5)
            hardiTrk = mriutil.tck2trk(hardiTck, norm,
                                       self.buildName(hardiTck, None, 'trk'))
            hardiTckRoi = self.__tckedit(
                hardiTck, mask253, self.buildName(hardiTck, 'roi', 'tck'))
            tckgenRoiTrk = mriutil.tck2trk(
                hardiTckRoi, norm, self.buildName(hardiTckRoi, None, 'trk'))
            self.__tckgenRoiTrk = tckgenRoiTrk

            self.set('methodReconstruction', 'hardi')
            self.set('algorithm', 'Probabilist')

            if self.get('sift'):
                tcksift = self.__tcksift(hardiTck, csd)
                tcksiftTrk = mriutil.tck2trk(
                    tcksift, norm, self.buildName(tcksift, None, 'trk'))
                tcksiftRoi = self.__tckedit(
                    tcksift, mask253, self.buildName(tcksift, 'roi', 'tck'))
                tcksiftRoiTrk = mriutil.tck2trk(
                    tcksiftRoi, norm, self.buildName(tcksiftRoi, None, 'trk'))
                self.__tcksiftRoiTrk = tcksiftRoiTrk