def _run_interface(self, runtime): from dipy.reconst import shm from dipy.data import get_sphere from dipy.reconst.peaks import peaks_from_model gtab = self._get_gradient_table() img = nb.load(self.inputs.in_file) data = img.get_data() affine = img.affine mask = None if isdefined(self.inputs.mask_file): mask = nb.load(self.inputs.mask_file).get_data() # Fit it model = shm.QballModel(gtab, 8) sphere = get_sphere('symmetric724') peaks = peaks_from_model(model=model, data=data, relative_peak_threshold=.5, min_separation_angle=25, sphere=sphere, mask=mask) apm = shm.anisotropic_power(peaks.shm_coeff) out_file = self._gen_filename('apm') nb.Nifti1Image(apm.astype("float32"), affine).to_filename(out_file) IFLOGGER.info('APM qball image saved as %s', out_file) return runtime
""" As one can see from its shape, the selected data contains a total of 67 volumes of images corresponding to all the diffusion gradient directions of the selected b-values and call the ``mppca`` as follows: """ denoised_arr = mppca(data, mask=mask, patch_radius=2) """ Now we will use the denoised array (``denoised_arr``) obtained from ``mppca`` in the rest of the steps in the tutorial. As for the next step, we generate the anisotropic powermap introduced by [DellAcqua2014]_. To do so, we make use of the Q-ball Model as follows: """ qball_model = shm.QballModel(gtab, 8) """ We generate the peaks from the ``qball_model`` as follows: """ peaks = dp.peaks_from_model(model=qball_model, data=denoised_arr, relative_peak_threshold=.5, min_separation_angle=25, sphere=sphere, mask=mask) ap = shm.anisotropic_power(peaks.shm_coeff) plt.matshow(np.rot90(ap[:, :, 10]), cmap=plt.cm.bone) #plt.savefig("anisotropic_power_map.png")