如何找到全宽半最大值?

时间:2019-05-10 17:30:15

标签: python pandas numpy scipy

我正在尝试设计一个程序来测量半高处的峰宽。数据来自具有6000个数据点的csv文件。我在一家生物技术公司工作,所以我无法真正提供有关数据的太多信息。

我要分析的确实是一个高峰。峰值图像在下面

Peak

我尝试使用UnivaraiteSpline进行样条线方法。我遇到的问题是一半高度的距离似乎不正确。峰值的高度在点3762,距离据说是126,但该图似乎距离较远。

我一般的方法是校正基线,然后通过将所有点除以最大强度来对数据进行归一化。

import pandas as pd
import numpy as np
from scipy.signal import peak_widths

data = pd.read_csv(r'file.csv')
df = pd.DataFrame(data)
y = df.iloc[2: , 3]
x = df.index[2: ]

#Baseline Correction
baseCorr = float(df.iloc[3001, 3])
y_corr = y.astype(np.float64) - baseCorr

#Normalize
y_norm = y_corr / np.max(y_corr)
xmax = x[np.argmax(y_norm)]

#Full width half max
fwhm = peak_widths(y_norm, peaks, rel_height = 0.5)

TypeError:无法安全地将peaks强制转换为dtype('intp')

0 个答案:

没有答案