def fit_water(self, line_broadening=5, zerofill=100, filt_method=None, min_ppm=-5.0, max_ppm=5.0): """ """ # Get the water spectrum as well: f_hz, w_spectra = ana.get_spectra(self.water_fid, line_broadening=line_broadening, zerofill=zerofill, filt_method=filt_method) f_ppm = ut.freq_to_ppm(f_hz) # Averaging across echos: self.water_spectra = np.mean(w_spectra, 1) model, signal, params = ana.fit_lorentzian(self.water_spectra, self.f_ppm, lb=min_ppm, ub=max_ppm) # Store the params: self.water_model = model self.water_signal = signal self.water_params = params self.water_idx = ut.make_idx(self.f_ppm, min_ppm, max_ppm) mean_params = stats.nanmean(params, 0) self.water_auc = self._calc_auc(ut.lorentzian, params, self.water_idx)
def fit_naa(self, reject_outliers=3.0, fit_lb=1.8, fit_ub=2.4, phase_correct=True): """ Fit a Lorentzian function to the NAA peak at ~ 2 ppm. Example of fitting inverted peak: Foerster et al. 2013, An imbalance between excitatory and inhibitory neurotransmitters in amyothrophic lateral sclerosis revealed by use of 3T proton MRS """ model, signal, params = ana.fit_lorentzian(self.diff_spectra, self.f_ppm, lb=fit_lb, ub=fit_ub) # Store the params: self.naa_model = model self.naa_signal = signal self.naa_params = params self.naa_idx = ut.make_idx(self.f_ppm, fit_lb, fit_ub) mean_params = stats.nanmean(params, 0) self.naa_auc = self._calc_auc(ut.lorentzian, params, self.naa_idx)