diff --git a/local_integration_msms.py b/local_integration_msms.py index 55950ed9501ccaa73a3defd5c6030f241b8afcda..1cf1d4ab23cf631307a4e96bfd762bb1ef137bef 100644 --- a/local_integration_msms.py +++ b/local_integration_msms.py @@ -2,7 +2,7 @@ import pyopenms as oms import numpy as np import matplotlib.pyplot as plt import pandas as pd - +import scipy.signal def compute_chromatograms(rt, mz, intensity, start_c, end_c): @@ -92,6 +92,13 @@ def integrate_ms_ms(df, mz_bin, output='temp.png', display = False): plt.clf() return mz_list,int_list +def integrated_mz_int(mz_list,int_list,mz_bin, mz_ref): + min_mz, max_mz = min(mz_ref), max(mz_ref) + res = np.zeros(int((max_mz-min_mz)//mz_bin)+1) + for i in range(len(mz_list)): + res[int((mz_list[i] - min_mz) // mz_bin)] += int_list[i] + return res + if __name__ == "__main__": e = oms.MSExperiment() oms.MzMLFile().load("data/echantillons données DIA/CITAMA-5-AER-d200.mzML", e) @@ -151,6 +158,11 @@ if __name__ == "__main__": plt.savefig('fig/local_inte_res/spec_large_theo_1.png') plt.clf() + int_theo_inte_peak = integrated_mz_int(masses_1, intensities_1, 0.25, mz1) + int_theo_inte_large = integrated_mz_int(masses_1, intensities_1, 0.25, mz1_large) + res_peak_1 = scipy.stats.pearsonr(int_theo_inte_peak, inty1) + res_large_1 = scipy.stats.pearsonr(int_theo_inte_large, inty1_large) + df_large_2 = df[df['MSlevel'] == 2] df_large_2 = df_large_2[619 < df_large_2['MS1_mz_max']] df_large_2 = df_large_2[623 > df_large_2['MS1_mz_min']]