This page was generated from
docs/Examples/Fitting_Fermi_Diads/Example1c_HORIBA_Calibration/Step3_FitAll_Together.ipynb.
Interactive online version:
.
3. Fitting diads once you have groups
Once you have divided your diads into groups based on strengths, you need to tweak the fit parameters for each group
Then you can loop through all files in a given group and automatically fit the spectra
[1]:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import joblib
import DiadFit as pf
pf.__version__
[1]:
'1.0.19'
Specifying filetype, and folder as before
[2]:
# This specifies what file type your Raman exported in.
meta_path, spectra_path, spectra_filetype, prefix, str_prefix, spectra_file_ext, meta_file_ext, TruPower=pf.get_settings()
Load in data and fit parameters
This loads in the dataframes of the fit parameters you saved in the other file, by group
At this point you select what group you want to fit (batch = ‘Weak’, ‘Medium’ or ‘Strong’). After running through the entire notebook for one group, come back up here to fit a second group.
[3]:
## load dataframes and numpy arrays
np_x = joblib.load('np_x.sav')
# Select the group you want to fit ('Weak', 'Medium', 'Strong'). After selecting one, go through and select another one and run again from here.
batch='Medium' # Options are Weak, Medium, Strong
if batch=='Weak':
GroupN_df=joblib.load('Weak_df.sav')
if batch=='Medium':
GroupN_df=joblib.load('Medium_df.sav')
if batch=='Strong':
GroupN_df=joblib.load('Strong_df.sav')
Now load one file from this group to tweak parameters for
[4]:
Diad_Files =GroupN_df['filename']
i=0
Lets plot the diad to have a look at it
[5]:
plot1=pf.plot_diad(path=spectra_path, filename=Diad_Files[i], filetype=spectra_filetype)
Now lets inspect the diads and get their approximate positions
As with generic peak, you can exclude 2 segments (e.g. around cosmic rays)
You then specify how many peaks you want to fit on each diad. 1 means just the strong peak, 2 hotbands, and 3 for Diad2 would also fit the C13 peak if present.
The identify_diad_peaks then uses scipy findpeaks to identify the positions of the 2 diads, and any other peaks the user asks for. These are saved, and fed into the later functions for peak fitting.
Choose a model for fitting all peaks
Option of Voigt or PseudoVoigt. We recomend PsuedoVoigt
[6]:
model_name='PseudoVoigtModel'
Fit Diad 1
Tweak the parameters in the config files for each group. E.g. how many peaks (fit_peaks), the background positions, the sigma of the diad, and whether or not you want a gaussian background
[7]:
diad_id_config=pf.diad_id_config(height=50, exclude_range1=[1308, 1309])
diad_id_config
if batch=='Weak':
diad1_fit_config_init=pf.diad1_fit_config(
model_name=model_name, fit_peaks=1,
N_poly_bck_diad1=2, lower_bck_diad1=(1250, 1275),
upper_bck_diad1=(1300, 1350),
diad_sigma=1.1,
x_range_residual=10, x_range_baseline=30,
y_range_baseline=1000,
HB_prom=GroupN_df['HB1_abs_prom'].iloc[i],
diad_prom=GroupN_df['Diad1_abs_prom'].iloc[i])
diad1_fit_config_init
if batch=='Medium':
diad1_fit_config_init=pf.diad1_fit_config(
model_name=model_name, fit_peaks=2,
N_poly_bck_diad1=1, lower_bck_diad1=(1180, 1220),
upper_bck_diad1=(1330, 1350),
diad_sigma=0.6,
x_range_residual=10, x_range_baseline=30,
y_range_baseline=100,
HB_prom=GroupN_df['HB1_abs_prom'].iloc[i],
diad_prom=GroupN_df['Diad1_abs_prom'].iloc[i])
diad1_fit_config_init
if batch=='Strong':
diad1_fit_config_init=pf.diad1_fit_config(
fit_gauss=True, gauss_amp= 2*GroupN_df['HB1_abs_prom'].iloc[i],
model_name=model_name, fit_peaks=2,
N_poly_bck_diad1=1, lower_bck_diad1=(1180, 1220),
upper_bck_diad1=(1330, 1350),
diad_sigma=0.6,
x_range_residual=10, x_range_baseline=30,
y_range_baseline=1000,
HB_prom=GroupN_df['HB1_abs_prom'].iloc[i],
diad_prom=GroupN_df['Diad1_abs_prom'].iloc[i])
diad1_fit_config_init
[7]:
diad1_fit_config(model_name='PseudoVoigtModel', fit_peaks=2, N_poly_bck_diad1=1, lower_bck_diad1=(1180, 1220), upper_bck_diad1=(1330, 1350), fit_gauss=False, gauss_amp=1000, diad_sigma=0.6, diad_sigma_min_allowance=0.2, diad_sigma_max_allowance=5, diad_prom=5486.6404798749, HB_prom=463.8575387194586, x_range_baseline=30, y_range_baseline=100, dpi=200, x_range_residual=10, return_other_params=False)
See what these fit parameters look like for diad1
[8]:
Diad1_fit=pf.fit_diad_1_w_bck(config1=diad1_fit_config_init,
config2=diad_id_config,
path=spectra_path, filename=Diad_Files.iloc[0],
filetype=spectra_filetype, plot_figure=True, close_figure=False,
Diad_pos=GroupN_df['Diad1_pos'].iloc[i],
HB_pos=GroupN_df['HB1_pos'].iloc[i])
Diad1_fit
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Fityk-style Weighted RedChi: 1.3768
Error: 0.01853
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 1.3768478172853087
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
[8]:
| Diad1_Combofit_Cent | Diad1_Voigt_Cent | Diad1_cent_err | Diad1_Voigt_Area | Diad1_Voigt_Sigma | Diad1_Voigt_Gamma | HB1_Cent | HB1_Area | HB1_Sigma | Diad1_Combofit_Height | Diad1_Residual | Diad1_Prop_Lor | Diad1_fwhm | Diad1_refit | Diad1_Asym50 | Diad1_Asym70 | Diad1_Yuan2017_sym_factor | Diad1_Remigi2021_BSF | Diad1_PDF_Model | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1285.527123 | 1285.527273 | 0.018527 | 16313.787676 | 1.108289 | 0 | 1265.419627 | 3360.925389 | 3.308801 | 5619.914259 | 34.965602 | 0.584543 | 2.216578 | Flagged Warnings: | 1.123664 | 1.162602 | 0.274111 | 0.000394 | PseudoVoigtModel |
Update the sigma
The sigma parameter varies quite a lot based on the splitting. Best to update your first guess with what you found for the example file above
[9]:
diad1_fit_config2=diad1_fit_config_init
Fit diad2
[10]:
if batch=='Weak':
diad2_fit_config_init=pf.diad2_fit_config(model_name=model_name,
fit_peaks=1, upper_bck_diad2=(1394, 1399),
lower_bck_diad2=(1370, 1384), diad_sigma=1, N_poly_bck_diad2=1,
x_range_residual=30, y_range_baseline=1000,
x_range_baseline=30,
HB_prom=GroupN_df['HB2_abs_prom'].iloc[i],
diad_prom=GroupN_df['Diad2_abs_prom'].iloc[i])
diad2_fit_config_init
if batch=='Medium':
diad2_fit_config_init=pf.diad2_fit_config(model_name=model_name,
fit_peaks=2,
lower_bck_diad2=(1310, 1340), diad_sigma=1, N_poly_bck_diad2=1,
x_range_residual=30, y_range_baseline=1000,
x_range_baseline=30,
HB_prom=GroupN_df['HB2_abs_prom'].iloc[i],
diad_prom=GroupN_df['Diad2_abs_prom'].iloc[i],
C13_prom=GroupN_df['C13_abs_prom'].iloc[i])
diad2_fit_config_init
if batch=='Strong':
diad2_fit_config_init=pf.diad2_fit_config(model_name=model_name,
fit_peaks=3, fit_gauss=True, gauss_amp= 2*GroupN_df['HB2_abs_prom'].iloc[i],
lower_bck_diad2=(1310, 1340), diad_sigma=1, N_poly_bck_diad2=2,
x_range_residual=30, y_range_baseline=1000,
x_range_baseline=30,
HB_prom=GroupN_df['HB2_abs_prom'].iloc[i],
diad_prom=GroupN_df['Diad2_abs_prom'].iloc[i],
C13_prom=GroupN_df['C13_abs_prom'].iloc[i])
diad2_fit_config_init
diad2_fit_config_init
[10]:
diad2_fit_config(model_name='PseudoVoigtModel', fit_peaks=2, N_poly_bck_diad2=1, lower_bck_diad2=(1310, 1340), upper_bck_diad2=(1440, 1470), fit_gauss=False, gauss_amp=1000, diad_sigma=1, diad_sigma_min_allowance=0.2, diad_sigma_max_allowance=5, diad_prom=9224.272171674049, HB_prom=746.9267532430453, C13_prom=99.33880539027678, x_range_baseline=30, y_range_baseline=1000, plot_figure=True, dpi=200, x_range_residual=30, return_other_params=False)
See what these fit parameters look like for diad2
[11]:
Diad2_fit=pf.fit_diad_2_w_bck(config1=diad2_fit_config_init,
config2=diad_id_config,
path=spectra_path, filename=Diad_Files[i], filetype=spectra_filetype,
plot_figure=True, close_figure=False,
Diad_pos=GroupN_df['Diad2_pos'].iloc[i],
HB_pos=GroupN_df['HB2_pos'].iloc[i],
C13_pos=GroupN_df['C13_pos'].iloc[i])
Diad2_fit.to_clipboard(excel=True)
Diad2_fit
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Fityk-style Weighted RedChi: 4.5358
Error: 0.06310
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 4.535800081424485
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
[11]:
| Diad2_Combofit_Cent | Diad2_Voigt_Cent | Diad2_cent_err | Diad2_Voigt_Area | Diad2_Voigt_Sigma | Diad2_Voigt_Gamma | HB2_Cent | HB2_Area | HB2_Sigma | Diad2_Combofit_Height | Diad2_Residual | Diad2_Prop_Lor | Diad2_fwhm | Diad2_refit | Diad2_Asym50 | Diad2_Asym70 | Diad2_Yuan2017_sym_factor | Diad2_Remigi2021_BSF | Diad2_PDF_Model | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 1388.367133 | 1388.367083 | 0.063099 | 27900.947472 | 0.71464 | 0 | 1409.825158 | 2758.629639 | 1.205366 | 12530.625826 | 65.338726 | 0.982931 | 1.429281 | Flagged Warnings: | 1.207297 | 1.309585 | 0.296285 | 0.000114 | PseudoVoigtModel |
Loop over all the files in the group
This will loop over all the
[12]:
from tqdm import tqdm
plot_figure=True# If False, Means doesnt have to make figures, lot faster.
close_figure=False # If True, wont show figures in notebook, but will still save them in a folder
Diad_Files_i=Diad_Files
df_Merge = pd.DataFrame([])
for i in tqdm(range(0, len(Diad_Files))): #
tqdm.write(f"Processing file: {Diad_Files[i]}")
# For diad1, config file like you had in the previous.
# Only really used to exclude a range (say your spectra has a known spec)
diad_id_config=pf.diad_id_config(exclude_range1=[1308, 1309])
# Here, the prominence are taken from the fitting in the last notebook
diad1_fit_config2.HB_prom=GroupN_df['HB1_abs_prom'].iloc[i]
diad1_fit_config2.diad_prom=GroupN_df['Diad1_abs_prom'].iloc[i]
diad1_fit_config2.gauss_amp=2*GroupN_df['HB1_abs_prom'].iloc[i]
Diad1_fit=pf.fit_diad_1_w_bck(config1=diad1_fit_config2,
config2=diad_id_config, path=spectra_path, filename=GroupN_df['filename'].iloc[i],
filetype=spectra_filetype, plot_figure=plot_figure, close_figure=close_figure,
Diad_pos=GroupN_df['Diad1_pos'].iloc[i],
HB_pos=GroupN_df['HB1_pos'].iloc[i])
## Same for diad2, just also has a C13 peak
diad2_fit_config_init.HB_prom=GroupN_df['HB2_abs_prom'].iloc[i]
diad2_fit_config_init.diad_prom=GroupN_df['Diad2_abs_prom'].iloc[i]
diad2_fit_config_init.gauss_amp= 2*GroupN_df['HB2_abs_prom'].iloc[i]
diad2_fit_config_init.C13_prom=GroupN_df['C13_abs_prom'].iloc[i]
Diad2_fit=pf.fit_diad_2_w_bck(config1=diad2_fit_config_init,
config2=diad_id_config,
path=spectra_path, filename=GroupN_df['filename'].iloc[i],
filetype=spectra_filetype,
plot_figure=plot_figure, close_figure=close_figure,
Diad_pos=GroupN_df['Diad2_pos'].iloc[i],
HB_pos=GroupN_df['HB2_pos'].iloc[i],
C13_pos=GroupN_df['C13_pos'].iloc[i])
# This combines the outputs into a single dataframe
data=pf.combine_diad_outputs(filename=GroupN_df['filename'].iloc[i], prefix=prefix,
Diad1_fit=Diad1_fit, path=spectra_path,
Diad2_fit=Diad2_fit)
df_Merge = pd.concat([df_Merge, data], axis=0).reset_index(drop=True)
0%| | 0/13 [00:00<?, ?it/s]c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Processing file: 10mol_FID_R1_CRR_DiadFit.txt
Fityk-style Weighted RedChi: 1.3768
Error: 0.01853
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 1.3768478172853087
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Fityk-style Weighted RedChi: 4.5358
Error: 0.06310
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 4.535800081424485
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
8%|▊ | 1/13 [00:03<00:39, 3.32s/it]
Processing file: 10mol_FID_R1_FIN_CRR_DiadFit.txt
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Fityk-style Weighted RedChi: 0.8078
Error: 0.01412
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 0.8077958768458289
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
Fityk-style Weighted RedChi: 1.6284
Error: 0.02105
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 1.6284146292988977
15%|█▌ | 2/13 [00:06<00:35, 3.21s/it]
Processing file: 10mol_FID_R2_CRR_DiadFit.txt
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Fityk-style Weighted RedChi: 0.6972
Error: 0.01552
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 0.6971628558675077
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
Fityk-style Weighted RedChi: 1.3623
Error: 0.01744
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 1.3623296920617218
23%|██▎ | 3/13 [00:10<00:34, 3.40s/it]
Processing file: 10mol_FID_R2_FIN_CRR_DiadFit.txt
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
Fityk-style Weighted RedChi: 1.1611
Error: 0.01740
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 1.1610790710047554
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
Fityk-style Weighted RedChi: 1.5167
Error: 0.01618
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 1.5166721014540279
31%|███ | 4/13 [00:13<00:30, 3.34s/it]
Processing file: 10mol_FID_R3_CRR_DiadFit.txt
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
Fityk-style Weighted RedChi: 0.7892
Error: 0.03182
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 0.7892325925605297
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
Fityk-style Weighted RedChi: 0.4181
Error: 0.02100
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 0.41814004181219566
38%|███▊ | 5/13 [00:16<00:25, 3.18s/it]
Processing file: 10mol_FID_R3_FIN_CRR_DiadFit.txt
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
Fityk-style Weighted RedChi: 1.0993
Error: 0.02456
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 1.099296608174778
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
Fityk-style Weighted RedChi: 0.7016
Error: 0.01955
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 0.7015830854088254
46%|████▌ | 6/13 [00:19<00:21, 3.13s/it]
Processing file: 10mol_FIE_R1_CRR_DiadFit.txt
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Fityk-style Weighted RedChi: 1.3466
Error: 0.01940
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 1.3465893506508637
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Fityk-style Weighted RedChi: 6.2327
Error: 0.08461
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 6.232731099055997
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
54%|█████▍ | 7/13 [00:23<00:20, 3.35s/it]
Processing file: 10mol_FIE_R1_FIN_CRR_DiadFit.txt
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Fityk-style Weighted RedChi: 1.3694
Error: 0.01726
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 1.3694494171898683
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
Fityk-style Weighted RedChi: 3.9763
Error: 0.02342
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 3.976276888173818
62%|██████▏ | 8/13 [00:26<00:16, 3.37s/it]
Processing file: 10mol_FIE_R2_CRR_DiadFit.txt
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Fityk-style Weighted RedChi: 1.2413
Error: 0.03216
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 1.241324996841779
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
Fityk-style Weighted RedChi: 1.2611
Error: 0.02592
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 1.2610713962217595
69%|██████▉ | 9/13 [00:29<00:13, 3.30s/it]
Processing file: 10mol_FIE_R2_FIN_CRR_DiadFit.txt
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
Fityk-style Weighted RedChi: 1.4847
Error: 0.01748
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 1.4846696374437511
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Fityk-style Weighted RedChi: 4.7023
Error: 0.03564
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 4.702316377565046
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
77%|███████▋ | 10/13 [00:32<00:09, 3.24s/it]
Processing file: 10mol_FIE_R3_CRR_DiadFit.txt
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:3240: RuntimeWarning: More than 20 figures have been opened. Figures created through the pyplot interface (`matplotlib.pyplot.figure`) are retained until explicitly closed and may consume too much memory. (To control this warning, see the rcParam `figure.max_open_warning`). Consider using `matplotlib.pyplot.close()`.
fig,axes=plt.subplot_mosaic(mosaic=figure_mosaic, figsize=(12, 16))
Fityk-style Weighted RedChi: 7.9142
Error: 0.13112
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 7.914150401741386
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Fityk-style Weighted RedChi: 2.0381
Error: 0.06607
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 2.038131787908118
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
85%|████████▍ | 11/13 [00:35<00:06, 3.18s/it]
Processing file: 10mol_FIE_R3_FIN_CRR_DiadFit.txt
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Fityk-style Weighted RedChi: 1.1489
Error: 0.01961
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 1.1489434795434543
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
Fityk-style Weighted RedChi: 2.9925
Error: 0.02761
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 2.9924974318624145
92%|█████████▏| 12/13 [00:39<00:03, 3.37s/it]
Processing file: 1mol_FIB_R1_CRR_DiadFit.txt
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
Fityk-style Weighted RedChi: 0.9658
Error: 0.04177
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 0.9658269011049919
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
c:\Users\penny\anaconda3\Lib\site-packages\uncertainties\core.py:1024: UserWarning: Using UFloat objects with std_dev==0 may give unexpected results.
warn("Using UFloat objects with std_dev==0 may give unexpected results.")
c:\pythonpackages_outside_box\diadfit_outer\src\DiadFit\diads.py:2570: FutureWarning: Downcasting object dtype arrays on .fillna, .ffill, .bfill is deprecated and will change in a future version. Call result.infer_objects(copy=False) instead. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`
df_out=df_out.fillna(0).infer_objects()
Fityk-style Weighted RedChi: 0.2157
Error: 0.01179
Weighting accounts for 5 averaged acquisitions and fitted baseline.
Reduced Chi-Square 2: 0.21571796290152456
100%|██████████| 13/13 [00:47<00:00, 3.66s/it]
[13]:
# Save parameters to excel
combo=df_Merge
if batch=='Weak':
combo.to_excel('Weak_Diads.xlsx', index=False)
if batch=='Medium':
combo.to_excel('Medium_Diads.xlsx', index=False)
if batch=='Strong':
combo.to_excel('Strong_Diads.xlsx', index=False)
[14]:
combo
[14]:
| filename | Splitting | Split_σ | Diad1_Combofit_Cent | Diad1_cent_err | Diad1_Combofit_Height | Diad1_Voigt_Cent | Diad1_Voigt_Area | Diad1_Voigt_Sigma | Diad1_Residual | ... | Diad1_Asym50 | Diad1_Asym70 | Diad1_Yuan2017_sym_factor | Diad1_Remigi2021_BSF | Diad2_Asym50 | Diad2_Asym70 | Diad2_Yuan2017_sym_factor | Diad2_Remigi2021_BSF | Diad1_PDF_Model | Diad2_PDF_Model | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 10mol_FID_R1_CRR_DiadFit | 102.839810 | 0.065762 | 1285.527123 | 0.018527 | 5619.914259 | 1285.527273 | 16313.787676 | 1.108289 | 34.965602 | ... | 1.123664 | 1.162602 | 0.274111 | 0.000394 | 1.207297 | 1.309585 | 0.296285 | 0.000114 | PseudoVoigtModel | PseudoVoigtModel |
| 1 | 10mol_FID_R1_FIN_CRR_DiadFit | 102.884216 | 0.025348 | 1285.519754 | 0.014120 | 5504.934236 | 1285.519804 | 15356.030676 | 1.086863 | 26.346032 | ... | 1.126543 | 1.172577 | 0.275070 | 0.000395 | 1.182432 | 1.272487 | 0.294361 | 0.000146 | PseudoVoigtModel | PseudoVoigtModel |
| 2 | 10mol_FID_R2_CRR_DiadFit | 102.864238 | 0.023350 | 1285.621099 | 0.015525 | 4828.888698 | 1285.621149 | 13405.092078 | 1.057224 | 27.092946 | ... | 1.176287 | 1.234657 | 0.372750 | 0.000438 | 1.169435 | 1.249032 | 0.307515 | 0.000209 | PseudoVoigtModel | PseudoVoigtModel |
| 3 | 10mol_FID_R2_FIN_CRR_DiadFit | 102.904676 | 0.023760 | 1285.565188 | 0.017403 | 5147.994849 | 1285.565238 | 14861.522773 | 1.109205 | 31.597985 | ... | 1.159091 | 1.206257 | 0.352929 | 0.000431 | 1.160804 | 1.238903 | 0.288815 | 0.000192 | PseudoVoigtModel | PseudoVoigtModel |
| 4 | 10mol_FID_R3_CRR_DiadFit | 102.958563 | 0.038127 | 1285.528786 | 0.031821 | 2624.570956 | 1285.528836 | 7108.489067 | 1.084760 | 34.122887 | ... | 1.124805 | 1.163876 | 0.270767 | 0.000827 | 1.156463 | 1.230464 | 0.270720 | 0.000345 | PseudoVoigtModel | PseudoVoigtModel |
| 5 | 10mol_FID_R3_FIN_CRR_DiadFit | 102.899911 | 0.031391 | 1285.533936 | 0.024560 | 3471.829412 | 1285.533986 | 9701.637454 | 1.086864 | 31.266476 | ... | 1.136223 | 1.187426 | 0.296112 | 0.000626 | 1.167808 | 1.251673 | 0.277072 | 0.000245 | PseudoVoigtModel | PseudoVoigtModel |
| 6 | 10mol_FIE_R1_CRR_DiadFit | 102.869488 | 0.086804 | 1285.462552 | 0.019403 | 4580.616883 | 1285.462602 | 12785.139856 | 1.065018 | 24.485434 | ... | 1.081505 | 1.113501 | 0.173608 | 0.000465 | 1.228995 | 1.340645 | 0.289582 | 0.000109 | PseudoVoigtModel | PseudoVoigtModel |
| 7 | 10mol_FIE_R1_FIN_CRR_DiadFit | 102.915297 | 0.029092 | 1285.738751 | 0.017261 | 4859.132897 | 1285.738801 | 13530.012024 | 1.110128 | 27.341346 | ... | 1.218391 | 1.232402 | 0.484884 | 0.000457 | 1.061157 | 1.089286 | 0.114881 | 0.000222 | PseudoVoigtModel | PseudoVoigtModel |
| 8 | 10mol_FIE_R2_CRR_DiadFit | 102.939611 | 0.041308 | 1285.833822 | 0.032165 | 1906.640135 | 1285.833972 | 5733.972110 | 1.165296 | 23.332984 | ... | 1.175553 | 1.163471 | 0.409142 | 0.001222 | 1.008955 | 1.022396 | 0.019288 | 0.000689 | PseudoVoigtModel | PseudoVoigtModel |
| 9 | 10mol_FIE_R2_FIN_CRR_DiadFit | 102.853601 | 0.039692 | 1285.614469 | 0.017475 | 5545.016800 | 1285.614519 | 15404.187547 | 1.070965 | 27.656281 | ... | 1.186830 | 1.237589 | 0.400177 | 0.000386 | 1.133106 | 1.197875 | 0.213771 | 0.000151 | PseudoVoigtModel | PseudoVoigtModel |
| 10 | 10mol_FIE_R3_CRR_DiadFit | 102.805556 | 0.146830 | 1285.966630 | 0.131125 | 990.938953 | 1285.966780 | 2847.311006 | 1.070947 | 59.079136 | ... | 1.029240 | 1.031805 | 0.062628 | 0.002161 | 1.002833 | 1.040881 | 0.006532 | 0.001491 | PseudoVoigtModel | PseudoVoigtModel |
| 11 | 10mol_FIE_R3_FIN_CRR_DiadFit | 102.873336 | 0.033863 | 1285.697403 | 0.019607 | 3790.954889 | 1285.697553 | 11050.602998 | 1.145043 | 27.440511 | ... | 1.214388 | 1.233333 | 0.490968 | 0.000604 | 1.101142 | 1.153459 | 0.188325 | 0.000284 | PseudoVoigtModel | PseudoVoigtModel |
| 12 | 1mol_FIB_R1_CRR_DiadFit | 102.742115 | 0.043408 | 1285.142542 | 0.041775 | 2049.803853 | 1285.142592 | 5369.494033 | 1.050132 | 37.145947 | ... | 1.079745 | 1.121175 | 0.167485 | 0.001025 | 1.182584 | 1.181818 | 0.410811 | 0.000733 | PseudoVoigtModel | PseudoVoigtModel |
13 rows × 49 columns
This plays a sound when the notebook is done if you have a tendency to procrastinate
[15]:
# !pip install winotify
from winotify import Notification, audio
toast= Notification(app_id="VSCode",title="Notebook completed",
msg="Step3b_Secondary_Peaks is done!",
duration="short")
toast.set_audio(audio.Mail,loop=False)
toast.show()