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
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
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