Как я могу найти половину максимальной ширины? - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь разработать программу, которая измеряет ширину пика на половине высоты. Данные взяты из CSV-файла с 6000 точками данных. Я работаю в биотехнологической компании, поэтому не могу дать много информации о данных.

Это действительно один пик, который я пытаюсь проанализировать. Пиковое изображение ниже

Пик

Я попробовал метод сплайна, используя 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')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...