Thursday 26 October 2017

Moving Average Peak Detection


Actualización: El mejor algoritmo de ejecución hasta el momento es éste. Esta pregunta intenta explorar los métodos robustos disponibles o los algoritmos para detectar picos repentinos en datos en tiempo real de los timeseries. No busco respuestas rápidas y obvias. Me gustaría que cada respuesta proporcionara un enfoque diferente al problema, complementado con las ventajas y desventajas del método propuesto. Considere el siguiente conjunto de datos (formato Matlab, pero no es sobre el lenguaje, sino sobre el algoritmo) Usted puede ver claramente que hay tres picos grandes y algunos picos pequeños. Este conjunto de datos es un ejemplo específico de la clase de conjuntos de datos de la serie de tiempos que trata la pregunta. Esta clase de datasets tiene dos características generales: Hay ruido básico con una media general Hay picos grandes o puntos de datos más altos que se desvían significativamente del ruido. Supongamos asimismo lo siguiente: la anchura de los picos no puede determinarse de antemano, la altura de los picos se desvía claramente de los otros valores que el algoritmo usado debe calcular en tiempo real (cambie con cada nuevo punto de datos). Claramente, para tal situación, Necesita ser construido que dispara señales. Sin embargo, en realidad, este valor límite no puede ser estático y debe determinarse en tiempo real basándose en un algoritmo. Mi pregunta: ¿Cómo puedo calcular estos valores límite en tiempo real ¿Qué son los algoritmos conocidos y aplicables para tales situaciones (no este conjunto de datos específicamente) Además, me gustaría saber lo siguiente: ¿Es posible detectar picos sin demora dadas sólo lo que Se conoce antes de ese tiempo Lo que se necesita saber acerca de un pico para detectarlo (con algún retraso dado) Son muy apreciadas las alternativas fundadas y creativas y las ideas útiles. (Respuestas en cualquier idioma están bien: es sobre el algoritmo) pidió Mar 22 14 a las 20:48 Ah, ya veo. No lo esperaba en el código. Si hubiera visto esta pregunta antes, probablemente obtendría esa respuesta mucho más rápido. De todos modos, mi aplicación que el tiempo era para detectar si el fotosensor está obstruido de la fuente de luz ambiental (es por eso que necesitamos el promedio móvil, ya que la luz ambiente Fuente podría cambiar gradualmente con el tiempo). Creamos esto como un juego en el que debes pasar la mano sobre los sensores según un patrón específico. Un algoritmo nuevo (muy) robusto que utiliza la desviación estándar He construido un algoritmo muy bien que realiza un proceso que indica cuándo los puntos de datos son un número especificado de desviaciones estándar lejos de la media móvil. Sin embargo, cuando se detecta una señal, los puntos de datos posteriores que son también una señal (tan significativamente lejos de la media móvil) no corromperán el umbral de señal. Es decir, el algoritmo crea una nueva media y nueva st. dev. En el que no se utilizan los puntos de datos que son señales. Por lo tanto, el umbral permanece incorrupto y es capaz de identificar correctamente señales futuras también, sin pérdida de rendimiento. Esto funciona muy bien Para mostrar la potencia de este robusto algoritmo, he preparado una demo en la que el usuario puede especificar sus propios datos. Esta demostración muestra tanto cómo funciona el algoritmo y por qué es tan útil. El código completo de Matlab para esta demo: Los parámetros necesarios son: LAG. Lag para la media móvil y el movimiento de st. Dev. DIFF. Número de st. Dev. Lejos de la media para generar una señal de INFLUENCIA. Cuando hay una señal, cuánto es media / st. dev. Influenciado (número entre 0-1) DIRECCIÓN. Cuando la desviación está arriba / abajo / ambos lejos de la media Como se puede ver, he utilizado los ajustes LAG10 DIFF3.5 INFLUENCE0 para esta demo. Siéntase libre de jugar con estos parámetros y estudiar las diferencias en el rendimiento del algoritmo. Explicación original He construido un nuevo algoritmo (de muy buen rendimiento) en el cual el número de desviaciones estándar lejos de la media se utiliza como umbral. La idea básica detrás de ella es la siguiente: Este pequeño algoritmo funciona sorprendentemente bien Especialmente porque no usa la media real y la desviación estándar, pero construye una nueva tal que las señales no influyen / corrompen el umbral de la señal. Muy robusto: ajusta para el ruido pero sigue siendo objetivo hacia altos picos Sólo necesita 2 parámetros de entrada Permite diferentes estructuras de media móvil (Simple, Exponencial, Ponderado, etc.) Necesita estimar la entrada 2 Parámetros, necesidad de especificar el parámetro de influencia Para la pequeña variación general en el ruido, el algoritmo no es muy útil Ejemplos para los datos de la muestra: retraso 30, dif 3, influencia 0 retraso 30, dif 3.5, influencia 0 retraso 30, Influencia 0 Código Código para replicar en Matlab: Una aproximación es detectar picos basados ​​en la siguiente observación: Tiempo t es un pico si (y (t) y (t-1)) ampamp (y (t) y (t1)) Evita los falsos positivos esperando hasta que la tendencia alcista haya terminado. No es exactamente en tiempo real en el sentido de que se perderá el pico de un dt. La sensibilidad puede controlarse exigiendo un margen de comparación. Hay un trade off entre la detección ruidosa y el tiempo de retraso de la detección. Puede enriquecer el modelo añadiendo más parámetros: donde dt y m son parámetros para controlar la sensibilidad frente al retardo de tiempo, aquí está el código para reproducir la gráfica en python: Mediante m 0.5. Usted puede obtener una señal más limpia con sólo un falso positivo: En el procesamiento de señales, la detección de picos se realiza a menudo a través de transformada wavelet. Usted básicamente hace una transformación discreta wavelet en sus datos de series de tiempo. Los cruces de cero en los coeficientes de detalle que se devuelven corresponderán a picos en la señal de la serie temporal. Se obtienen diferentes amplitudes de pico detectadas en diferentes niveles de coeficiente de detalle, lo que proporciona una resolución multi-nivel. Si el valor límite u otros criterios dependen de valores futuros, entonces la única solución (sin una máquina del tiempo, u otro conocimiento de los valores futuros) es retrasar cualquier decisión hasta que uno tenga suficientes valores futuros. Si quieres un nivel por encima de un promedio que se extiende, por ejemplo, 20 puntos, entonces tienes que esperar hasta que tengas al menos 19 puntos por delante de cualquier decisión de máximo, o bien el próximo punto nuevo podría eliminar completamente tu umbral hace 19 puntos . Tu parcela actual no tiene picos. A menos que de alguna manera sepa de antemano que el punto siguiente no es 1e99, que después de reescalar su dimensión Y de las tramas, sería plano hasta ese punto. Respondió Mar 24 14 en 1: 57Consider tener una señal en el dominio del tiempo, y desea suavizar la señal. Media móvil y filtros gaussianos que se utilizan. ¿Cómo elegir qué se utiliza para qué? ¿Cuáles son las condiciones bajo las cuales Gaussian es mejor y las condiciones en las que media móvil es mejor Lo que estoy tratando de hacer con esta señal es, detección de pico inicialmente, luego aplicar pequeñas ventanas en cada parte y figura Los cambios de frecuencia (desplazamientos Doppler) para cada parte para determinar la dirección del movimiento a partir del cambio de frecuencia. Quiero suavizar la señal en el dominio del tiempo sin pérdida de información en el dominio de la frecuencia. Pensé para la parte de calcular hacia fuera los cambios de Doppler, usando STFT sería una buena idea. Si la referencia pudo ser dada a un cierto papel, eso también sería realmente provechoso. Preguntó 29 de septiembre a las 11:12 ¿Cuáles son los algoritmos de detección de pico en existencia tengo datos ruidosos, y me gustaría implementar la detección de pico para estos datos. Los datos están en reversa, en realidad estoy tratando de determinar el fondo. Aquí hay una instantánea de los datos en Excel. Me gusta detectar los dos fondos. Pensé en pasar los datos a través de un filtro de paso bajo y luego hacer una media móvil en la que determinar los picos y dentro del promedio móvil que hago otra búsqueda. Tengo cero fondo DSP esto es sólo un enfoque de sentido común. Me gustaría escuchar lo que recomiendan los expertos. Preguntó Feb 1 12 at 6:17 Ktuncer, hay una serie de métodos que puede utilizar aquí. Un método que yo recomendaría es usar una Transformación de Wavelet Discreta, (DWT), y en particular, mirar la Wavelet de Daubechies. Yo elegiría, por ejemplo, Daub-14 / Daub-Tetra. Básicamente lo que realmente necesita hacer es la tendencia de su señal, y luego desde allí, hacer una selección de min o máximo. Que se deshará de sus outliers. Una transformación wavelet daub-14 / daub-tetra puede ayudarle a hacer esto, y esto ayuda especialmente porque usted no sabe la naturaleza de su señal. (Usando daub-14, puede representar con precisión las señales polinomiales de grado 14/2 7, y parece que no necesitará más que eso). El cálculo de esta transformación wavelet esencialmente comprime su energía en unas pocas indicies. Estas indicaciones representan pesos en vectores base. El resto de los pesos (idealmente) estarán cerca de cero. Cuando usted tiene ruido en su señal (como usted lo hace), esos pesos que eran normalmente cero tienen algunos pesos ahora, pero usted puede cero ellos simplemente y denoise su señal. Una vez que se ha completado, puede hacer una detección de max / min simple. Hay más detalles involucrados, puede enviarme un correo electrónico si desea discutir cómo implementarlo. He hecho un trabajo similar sobre esto antes. EDIT: Aquí están algunas imágenes que ilustran Daub-Tetra Denoiser: Estoy lejos de ser un experto, pero aquí es lo que haría: Usted parece tener una señal de variación lenta superpuesta con fluctuaciones. Los picos que buscas son algunas fluctuaciones más fuertes, así que los detectaría usando eso. Sea X (T) su señal cruda. Tome una media móvil sobre un número adecuado de muestras para crear Y (t) un soporte liso. Si tienes éxito, X-Y debe tener un valor cero. Calcule la desviación estándar sigma de X-Y. Puede detectar sus picos cuando (X-Y) (t) gt alfa veces sigma, siendo alfa típicamente 2, 3, 4. Se puede detectar específicamente un rebasamiento o un rebasamiento eliminando el valor absoluto y usando la prueba apropiada. Es eso lo que buscas user4749: Nombre interesante :) Ok. Así que sí, sigma es la desviación estándar. La utilizamos como medida de la amplitud de la fluctuación. En sus datos, se ve bastante constante en el tiempo, por lo que indica que es el enfoque correcto. La lógica es decir que un pico se detecta cuando es mayor que estas fluctuaciones, por lo que somos robustos en la detección. ¿Haces MATLAB iw que tendría su señal, podríamos al menos marcar los picos muy fácilmente. Ndash Jean-Yves February 2 12 at 19:19 user4749 Básicamente lo que está sucediendo aquí, su Y (t) va a ser la 39 tendencia only39 señal. También significa promedio. Así que ahora estás substrayendo el promedio de tu señal, de la señal. Esa es la parte X (t) - Y (t). Así que ahora lo que queda es tu ruido. Ahora, (asumiendo que su ruido es gaussiano), usted toma su std, ampsigmaamp. Ahora mire todos los valores de abs (X (t) - Y (t)) gt 4sigma. ¿Por qué esto significa básicamente en inglés, quotDiscard 99.99 de todos los valores susceptibles de ser el ruido, y dejar sólo los valores no debido a noisequot. Ndash Mohammad Feb 3 12 at 5:21 La detección de picos tiene bastantes aplicaciones, para señales 1D o multidimensionales. Estos son algunos ejemplos que muestran la variabilidad de estas señales y sus interpretaciones de un pico puede ser: Los datos originales 1D datos Transformada de Hough de una imagen, cada pico corresponde a una línea en la imagen original de autocorrelación de una imagen, cada pico corresponde a un Frecuencia que revela un patrón periódico de correlación cruzada generalizada de una imagen y una plantilla, cada pico corresponde a una aparición de la plantilla en la imagen (podemos estar interesados ​​en detectar sólo el mejor pico o varios picos) resultado de filtrar una imagen para Harris Esquinas, cada pico corresponde a una esquina en la imagen original. Estas son definiciones y técnicas de detección de picos que he encontrado - sin duda hay otros que me olvidé o no sé, y espero que otras respuestas se les cubrirán. Las técnicas de preprocesamiento incluyen el suavizado y el desmontaje. La respuesta de Mohammads es sobre wavelets, y puedes ver varios usos de ellos en la documentación de Mathematicas WaveletThreshold (donde también tomé mis ejemplos de, por cierto). Entonces usted busca para los máximos. Dependiendo de su aplicación, sólo necesita los máximos globales (por ejemplo, el registro de imágenes), algunos máximos locales (por ejemplo, detección de líneas) o muchos máximos locales (detección de puntos clave): Esto puede hacerse de forma iterativa, buscando el valor más alto en los datos Borrar una región alrededor del pico seleccionado, etc. hasta que el valor restante más alto esté por debajo de un umbral. Alternativamente, puede buscar los máximos locales dentro de un cierto tamaño de barrio y mantener sólo aquellos máximos locales cuyos valores están por encima de un umbral. Algunos recomiendan mantener los máximos locales basados ​​en su distancia al resto de los máximos locales. el mejor). El arsenal también ofrece operaciones morfológicas: Los máximos extendidos y la transformación de sombrero superior pueden ser ambos adecuados. Vea los resultados de tres de estas técnicas en una imagen filtrada para las esquinas de Harris: Además, algunas aplicaciones intentan encontrar picos en la resolución del sub-pixel. La interpolación, que puede ser específica de la aplicación, es útil. Por lo que sé, no hay bala de plata, y los datos le dirá qué técnicas funcionan mejor. Será muy agradable tener más respuestas, especialmente. Antecedentes En el análisis de datos proteómicos basados ​​en espectrometría de masas (MS), la detección de picos es un paso esencial para el análisis subsiguiente. Recientemente, ha habido un progreso significativo en el desarrollo de varios algoritmos de detección de picos. Sin embargo, ni una encuesta exhaustiva ni una comparación experimental de estos algoritmos están disponibles. El objetivo principal de este trabajo es proporcionar una encuesta de este tipo y comparar el rendimiento de los métodos de detección de picos basados ​​en un solo espectro. Resultados En general, podemos descomponer un procedimiento de detección de picos en tres partes consecuentes: suavizado, corrección de la línea base y hallazgo de pico. Primero categorizamos los algoritmos de detección de picos existentes de acuerdo con las técnicas utilizadas en las diferentes fases. Tal categorización revela las diferencias y similitudes entre los actuales algoritmos de detección de picos. Entonces, elegimos cinco típicos algoritmos de detección de picos para llevar a cabo un amplio estudio experimental utilizando tanto los datos de simulación y real MALDI MS datos. Conclusión Los resultados de la comparación muestran que el algoritmo basado en wavelet continua proporciona el mejor rendimiento promedio. Antecedentes La investigación de proteomas requiere el análisis de grandes volúmenes de datos de proteínas de alto rendimiento. La Espectrometría de Masas (EM) es una herramienta analítica común en la investigación del proteoma. Puede usarse como una técnica para medir masas de proteínas / péptidos en mezclas complejas obtenidas de muestras biológicas. Esto proporciona un tremendo potencial para estudiar el proteoma de la enfermedad e identificar los objetivos de fármacos directamente al nivel de proteína / péptido 1. En un experimento proteómico típico, a menudo se genera un gran volumen (por ejemplo, 1 GB) de datos MS. Cada uno de los espectros MS consta de dos grandes vectores que corresponden a la relación masa / carga (m / z) y el valor de intensidad, respectivamente. El primer paso en el análisis de datos proteómicos es extraer señales inducidas por péptidos (es decir, picos) a partir de espectros MS crudos. La detección de picos no es sólo un paso de extracción de características, sino también un paso indispensable para la posterior identificación de proteínas, la cuantificación y el descubrimiento de biomarcadores relacionados con la enfermedad [2, 3]. Sin embargo, la detección de pico es una tarea difícil ya que los espectros de masas son a menudo corrompidos por el ruido. Como resultado, se han propuesto diversos algoritmos para facilitar la identificación de picos informativos que corresponden a señales peptídicas verdaderas. Estos algoritmos difieren entre sí en sus principios, implementaciones y rendimiento. Para proporcionar una comparación completa de los algoritmos de detección de picos existentes y extraer criterios razonables para desarrollar nuevos métodos de detección de picos, necesitamos responder a las siguientes preguntas: 1. ¿Cuál es el mecanismo de trabajo de un algoritmo? 2. ¿Cuáles son las diferencias y puntos comunes entre Diferentes algoritmos 3. ¿Cuál es su desempeño en el análisis de datos de MS Para abordar las preguntas anteriores, se estudia el proceso de detección de picos utilizando un marco común: suavizado, corrección de línea base y pico de detección. Esta descomposición nos permite dilucidar mejor los principios fundamentales que subyacen a los diferentes algoritmos de detección de picos. Más importante aún, nos ayuda a identificar claramente las diferencias y similitudes entre los actuales algoritmos de detección de picos. Describimos cada parte en el proceso de detección de picos con especial énfasis en sus detalles técnicos, esperando que esto pueda ayudar a los lectores a implementar sus propios algoritmos de detección de picos. Durante la evaluación, elegimos cinco algoritmos típicos de detección de picos para realizar un estudio experimental comparativo. En los experimentos, se utilizan tanto los datos de simulación y real MALDI MS datos para la comparación de rendimiento. Los resultados muestran que el algoritmo basado en wavelet continua proporciona el mejor rendimiento promedio. La sección 3 proporciona detalles sobre los algoritmos de detección de picos existentes y destaca sus diferencias y similitudes. La sección 3 realiza una comparación de rendimiento en algunos algoritmos típicos de detección de picos usando datos de simulación y MALDI real. . Métodos Proceso de detección de picos Normalmente, las señales peptídicas aparecen como máximos locales (es decir, picos) en espectros MS. Sin embargo, la detección de estas señales sigue siendo difícil debido a las siguientes razones: (1) Algunos péptidos con baja abundancia pueden ser enterrados por el ruido, lo que causa alta tasa de falsos positivos de detección de picos. (2) El ruido químico, ionizante y electrónico a menudo resulta en una curva decreciente en el fondo de los datos de MALDI / SELDI MS, que se conoce como línea de base 4. La existencia de la línea de base produce fuertes sesgos en la detección de picos. Es deseable eliminar la línea de base antes de la detección del pico. Para facilitar la detección de picos, a menudo se utiliza el marco que se muestra en la Figura 1. 1. Debe señalarse que el suavizado y la corrección de la línea base pueden cambiar sus ubicaciones en la tubería. La figura 2 muestra un ejemplo concreto de detección de picos mostrando el resultado después de cada paso de la tubería. Marco de detección de picos. El espectro de masas de entrada se transforma en una lista de picos. Un ejemplo del proceso de detección de picos. (A) un espectro crudo, (b) el espectro después del alisado, (c) el espectro después del alisado y la corrección de la línea de base y (d) resultados finales de detección de picos con picos marcados como círculos. Categorización Los algoritmos de detección de picos existentes pueden categorizarse según los métodos utilizados en cada etapa del proceso de detección de picos. Tabla x200B La Tabla 1 1 enumera algunos métodos populares de análisis de datos de MS y sus funciones de detección de picos. En este documento, utilizamos CWT para denotar MassSpecWavelet y LMS para denotar Local Maximum Search. Las semejanzas y las diferencias entre estos métodos se pueden tratar de la tabla. Aquí se desea destacar lo siguiente: Paquetes de software de código abierto para análisis de datos de MS (1) Los algoritmos de la Tabla x200B Tabla1 1 se eligen según tres criterios: x02022 El software está diseñado principalmente para el procesamiento de datos de MS. X02022 El software es de código abierto. X02022 El software se describe en una publicación. (2) En la Tabla x200B Tabla 1, 1. S1-S7, B1-B5 y P1-P8 indican diferentes métodos de suavizado, métodos de corrección de línea de base y criterios de determinación de pico, respectivamente. Proporcionaremos sus detalles en sub-secciones posteriores. S1: Filtro de media móvil S2: Filtro de Savitzky-Golay S3: Filtro gaussiano S4: Ventana de Kaiser S5: Transformación de Wavelet continua S6: Transformación de Wavelet discreta S7: Transformación de Wavelet discreta no discriminada x02022 Corrección de línea base B1: Monótono mínimo B2: Interpolación lineal B4: Transformación B5: Media móvil de mínimos x02022 Criterio de detección de picos P2: Umbral de detección / intensidad P3: Pendientes de picos P4: Máximo local P7: Criterio basado en modelo Filtros de suavizado Estos métodos usualmente aplican técnicas tradicionales de procesamiento de señales, Golay filtro y Gaussian filtro. Para un espectro de entrada, lo representamos como m / z. X con el primer elemento como vector m / z y el segundo como vector de intensidad (con igual longitud). Para facilitar las descripciones en el procesamiento de la señal, utilizamos además x (t) para denotar la forma continua del vector de intensidad y usamos x n para designar la forma discreta del vector de intensidad. Aquí t y n sirven como variables de indexación. El espectro de entrada es siempre discreto. Utilizamos la forma continua para ser coherente con la descripción original. En aplicaciones reales, usualmente probamos el filtro continuo para obtener su forma discreta. Podemos obtener valores m / z desde el vector m / z fácilmente usando también la variable de indexación correspondiente. Un espectro después de suavizado puede expresarse como y n x n w n para caso discreto yy (t) x (t) w (t) para caso continuo, donde denota operación de convolución. En las ecuaciones anteriores, w n y w (t) son un vector de peso y una función de peso, respectivamente. El uso de diferentes w n y w (t) dará lugar a diferentes filtros. La salida del filtro de media móvil y n lee: y n x n x02217 w n 1 2 k 1 x02211 i x02212 k k x n x02212 i. Donde w n 1 2 k 1. - k x02264 n x02264 k. El número impar 2 k 1 indica el ancho del filtro. Cuanto mayor sea el ancho del filtro, más intenso será el efecto suavizante. S2: Filtro de Savitzky-Golay: El filtro de Saviztky-Golay puede considerarse como un filtro de media móvil generalizado. Realiza un ajuste por mínimos cuadrados de un pequeño conjunto de puntos de datos consecutivos a un polinomio y toma el punto central de la curva polinomial ajustada como salida. El punto de datos suavizado y n después del filtrado de Savitzky-Golay viene dado por la ecuación siguiente: y n x n x02217 w n x02211 i x02212 k k A i x n x02212 i x02211 i x02212 k k A i. Donde w n A n x02211 i x02212 k k A i. - k x02264 n x02264 k. Aquí, A i controla el orden polinomial. La Figura 3 (a) muestra los filtros de Savitzky-Golay con diferentes órdenes polinómicos. Para obtener más información sobre A i. Consulte 6. Filtros de suavizado. En (a), PO significa orden polinomial de ajuste polinomial en el filtro de Savitzky-Golay. En (b), x003c3 es la desviación estándar. En (c), x003b1 determina la forma de la ventana de Kaiser. En (d), a es la escala de la wavelet. Después de una señal x (t) que pasa el filtro gaussiano, la salida dice: y (t) x (t) x02217 w (t) x0222b x02212 x0221e x0221e x (x003c4) w (t x02212 x003c4) d x003c4. Donde w (t) 1 2 x003c0 x003c3 e x02212 t 2 2 x003c3 2. El grado de suavizado se determina por la desviación estándar x003c3. De hecho, podemos ver el filtro gaussiano como un filtro de media móvil ponderada. Este filtro establece factores de peso más grandes para puntos en el centro y factores de peso más pequeños para puntos alejados del centro. La figura 3 (b) muestra filtros gaussianos con diferentes x003c3. Algunos investigadores utilizan la segunda derivada de Gaussian para realizar suavizado. Su argumento es que la segunda derivada de Gauss puede implícitamente eliminar el fondo cuando las señales de suavizado 7, 8. Después de una señal que pasa por una ventana de Kaiser: y n x n x02217 w n x02211 i x02212 x0221e x0221e x i w n x02212 i. Donde w n I 0 (x003b1 1 x02212 (2 n N x02212 1) 2) I 0 (x003b1). 0 x02264 n x02264 N. X003b1 determina la forma de la ventana de Kaiser. Un x003b1 grande indica una ventana aguda de Kaiser. N indica el ancho de la ventana. I 0 es la función de Bessel modificada en orden cero del primer tipo 9. La Figura 3 (c) muestra dos ventanas de Kaiser con diferentes valores de x003b1. S5, S6, S7: Filtros basados ​​en Wavelet Wavelet puede agruparse como transformación de onda continua y transformada de wavelet discreta. La transformada wavelet continua se puede escribir como y (t) x (t) x02217 w (t) 1 a x0222b x02212 x0221e x0221e x (x003c4) x003c8 (t x02212 x003c4 a) d x003c4. Donde w (t) 1a x003c8 (t a). A denota la escala y x003c8 denota la función de la onda de la madre. En el análisis continuo de wavelets, Du et al 10 eligen Wavelet de sombrero mexicano. La wavelet del sombrero mexicano se lee como: x (t) 2 3 x003c0 1/4 (1 x02212 t 2) e x02212 t 2 / 2. Entonces w (t) forma una ola en escala de sombrero mexicano. La figura 3 (d) muestra w (t) con diferentes a. Aquí, a determina el ancho de la wavelet. Con diferentes a. Podemos usar w (t) para modelar picos con diferentes anchos. Esto es especialmente importante para los datos de baja resolución en los que el ancho del pico varía mucho. Los picos con valores m / z más altos tienden a tener una anchura mayor. El uso de filtros de ventana fija no funcionará bien en este caso. La transformada discreta wavelet calcula en escalas y traducciones basadas en la potencia de dos. La figura 4 muestra un método típico para calcular la transformada de onda discreta, donde h n es un filtro de paso alto y g n es un filtro de paso bajo. El procedimiento para calcular la transformada wavelet discreta es el siguiente: El proceso de computar DWT. Aquí x02193 2 significa muestreo descendente por 2, h n es un filtro de paso alto y g n es un filtro de paso bajo. (1) La señal se descompone simultáneamente por un filtro de paso bajo g n y un filtro de paso alto h n. (2) La salida de h n es entonces baja muestreada por dos para generar coeficientes de detalle y la salida de g n es abajo muestreada por dos para generar coeficientes de aproximación. Los coeficientes obtenidos de la salida de h n se denominan coeficientes de nivel uno. (3) La salida de g n pasa por otro grupo de filtro de paso alto y filtro de paso bajo. Los pasos (1) y (2) continúan hasta obtener el último nivel de coeficientes. La ventaja de la transformación discreta wavelet sobre la transformada wavelet continua es su eficiencia, ya que sólo calcula en las escalas y posiciones basadas en la potencia de dos, mientras que la redundancia de la transformada wavelet continua hace más fácil la interpretación de la detección de picos MS 10. La transformada wavelet discreta es variante de cambio. Para lograr la invariancia de cambio, se ha propuesto la transformación discreta de decibelios no decidió 11, 12. Corrección de línea de base La corrección de línea de base es típicamente un proceso de dos pasos: (1) estimar la línea de base y (2) restar la línea de base de la señal. A continuación, se enumeran los detalles de algunos métodos de corrección de línea de base comúnmente utilizados. Dado que la substracción de referencia es sencilla, nos centramos principalmente en el procedimiento de estimación de línea de base en diferentes métodos. B1: Monotone mínimo Este método incluye dos pasos para estimar la línea de base. El primer paso es calcular la diferencia, que se puede utilizar para determinar la pendiente de cada punto. Entonces, este método comienza desde el punto A más a la izquierda en el espectro y continúa el siguiente procedimiento hasta que se alcanza el punto más a la derecha: x02022 Si la pendiente de un punto local A es menor que cero, el punto B más cercano a la derecha de A cuya pendiente Es mayor que cero. Todos los puntos entre A y B sirven como línea de base entre A y B. X02022 Si la pendiente de un punto local A es mayor que cero, se encuentra el punto B más cercano a la derecha de A cuya intensidad es menor que A. La intensidad de cada punto en la línea de base del resultado entre A y B es igual a la intensidad de A. B2: Interpolación lineal La interpolación lineal toma dos pasos para estimar la línea de base: x02022 Divida el espectro bruto en segmentos pequeños y utilice la media, el mínimo o la mediana de los puntos de cada segmento como punto de referencia. X02022 Generar una línea de base para el espectro bruto interpolando linealmente los puntos de referencia en todos los segmentos pequeños. En primer lugar, divide el espectro bruto en segmentos pequeños. Luego, en cada segmento pequeño, calcula el cuantil. Después de eso, estima un predictor en cada segmento pequeño para la estimación de línea de base. El predictor en cada segmento pequeño se obtiene utilizando las siguientes reglas: x02022 Si la intensidad de un punto A es menor que el cuantil en el segmento, entonces la intensidad del punto correspondiente en el predictor es igual a la intensidad de A. X02022 Si la intensidad de un punto es mayor o igual que el cuantil en el segmento, entonces la intensidad del punto correspondiente en el predictor es igual al cuantil. La línea de base se obtiene aplicando la regresión polinomial local ajustándose al predictor. B4: Transformada Wavelet Continua En las regiones locales, las líneas de base son monótonas. La línea de base puede ser modelada como la siguiente función: donde x003c8 a. B (t) 1a x003c8 (t x02212 b a). Debido a que la función wavelet tiene media cero, el segundo término de la ecuación (8) es cero. Si utilizamos una función wavelet simétrica (como la wavelet de Sombrero Mexicano), el primer ítem en la Ecuación (8) también es cero. Por lo tanto, la transformación wavelet continua elimina automáticamente la línea de base. B5: Media móvil de mínimos Este método utiliza dos pasos para estimar la línea de base: x02022 Estima una línea de base aproximada encontrando el mínimo local dentro de una ventana de dos Da para cada punto. X02022 Utilice una ventana móvil para suavizar la línea de base obtenida en el primer paso. Criterios de detección de picos Hay muchos métodos de detección de picos. La mayoría de los métodos detectan picos después de suavizar y corregir la línea de base. Sin embargo, debe tenerse en cuenta que hay un caso especial, CWT no tiene suavizado explícito y los pasos de corrección de línea de base. Du et al. 10 afirman que la línea de base puede ser eliminada si la transformación de onda continua se lleva a cabo en un espectro crudo. Hemos mostrado este hecho en la sección Corrección de la línea de base. A continuación, ilustramos los criterios utilizados por diferentes algoritmos para encontrar similitudes entre los diferentes algoritmos. SNR significa relación señal / ruido. Diferentes métodos definen el ruido de manera diferente. A continuación se presentan dos ejemplos: x02022 El ruido se estima como un cuantil de 95 por ciento de los coeficientes de transformada de onda continua continua (CWT) de la escala uno dentro de una ventana local 10. X02022 El ruido se estima como la mediana de la desviación absoluta (MAD) de los puntos dentro de una ventana 13. P2: umbral de detección / intensidad Este umbral se utiliza para filtrar pequeños picos en regiones planas. En estas regiones, la mediana de la desviación absoluta (MAD) es bastante pequeña, lo que puede dar lugar a grandes SNR. El uso de SNR solo puede identificar muchos puntos ruidosos como picos. Este criterio utiliza la forma de picos para eliminar candidatos de pico falso. Para calcular la pendiente izquierda y la pendiente derecha de un pico, tanto el punto final izquierdo como el extremo derecho del pico necesitan ser identificados. El candidato máximo se descarta si tanto la pendiente izquierda como la pendiente derecha son inferiores a un umbral. El umbral se define como la mitad del nivel de ruido local 14. Un pico es un máximo local de N puntos vecinos. El área de pico se calcula como el área bajo la curva dentro de una pequeña distancia de un candidato máximo. La relación de forma se calcula como el área del pico dividida por el máximo de todas las áreas de pico. La relación de forma de un pico debe ser mayor que un umbral. Las líneas de cresta se obtienen en los siguientes pasos: x02022 Realizar transformación wavelet continua en el espectro crudo. Este paso produce matriz de coeficientes 2-D con tamaño de M x000d7 N. Donde M es el número de escalas y N es la longitud del espectro. X02022 Conecte los coeficientes máximos locales más cercanos de las escalas adyacentes para obtener líneas de cresta. La distancia entre dos puntos adyacentes en una línea de cresta debe ser menor que el tamaño de una ventana. x02022 Use a variable gap to count how many successive times that a local maximal coefficient can not find its nearest counterpart in the next scale. If the gap is larger than a given threshold, the ridge line is dropped. Ridge lines are used in the following ways: x02022 False peaks are removed if the length of their ridge lines are smaller than a given threshold supplied by users. x02022 The width of a peak is proportional to the scale corresponding to the maximum amplitude on the ridge line 10 . A peak candidate is dropped if its width is not in a given range. P7: Model-based criterion The application of this criterion consists of three steps: x02022 Locate the endpoints of both sides for each peak. The left endpoint and right endpoint of a peak define its peak area. x02022 Estimate the centroid for each peak. For m / z axis, the centroid of a peak is computed as intensity-weighted average of points within the peak area 15 . x02022 Use a model function to fit peaks. Different methods choose different model functions to fit peaks. OpenMS 15 chooses asymmetric Lorentzian or sech 2 function while MapQuant 16 uses Gaussian function to fit peaks. The two end points of a peak define its peak area. The intensities of all points within the peak area should be larger than a given noise level. A simple way to locate a peak area is to start from a point with intensity above a given noise level and move to the right until we run into a point with intensity below the noise level. After peak end points have been identified, peak width is computed as the mass difference of right end point and left end point. The peak width should be within a given range. Results and discussion Data Description and Algorithm Selection In comparison, we use one group of simulation data and one group of real MALDI MS data. The low resolution simulation data is downloaded from the website of M. D. Anderson Cancer Center 17 ,18 . The high resolution real data is obtained from Aurum Data Set 19 , which contains known purified and tryptic-digested proteins. For simulation data, the number of true peaks in a spectrum is around 70 on average. The m / z range is between 400 Da and 64800 Da. The mass variation is: x00394 m x02208 0.251 Da . 3.915 Da . The median of SNR is around 0.675. For real data, the number of true peaks in a spectrum varies from 50 and 100. The m / z range is between 800 Da and 3500 Da. The mass variation is: x00394 m x02208 0.016 Da . 0.034 Da . The median of SNR is around 4.854. The reader is referred to additional file 1 for more details on the data. Software programs for LC-MS data analysis consider additional information along the LC-axis during peak detection. In order to obtain a fair comparison, here we only focus on single spectrum based peak detection algorithms. According to this criterion, only five algorithms in Table x200B Table1 1 will remain: Cromwell, CWT, LMS, LIMPIC and PROcess. These algorithms are designed to analyze MALDI MS data. They can also be used to analyze MS/MS data in a spectrum by spectrum manner. It should be noted that these methods are very representative as LC-MS oriented programs also use similar ideas for peak detection along the m / z axis. Evaluation Criteria In simulation data, the list of ground-truth peaks is the input before data generation. In real data, the trypsin-digested theoretical peaks (without adding isotope masses) are used as the ground-truth peaks. In both cases, a detected peak is labeled as a false peak if its mass is not within the x000b1 1 error range of the expected m / z value. Multiple peaks within the error range will be considered as one peak. We use false discovery rate (FDR) and sensitivity to measure the performance of algorithms. False discovery rate is defined as the number of falsely identified peaks divided by the total number of peaks found by algorithms. Sensitivity is defined as the number of correctly identified peaks divided by the total number of true peaks. For two algorithms with the same false discovery rate, the larger the sensitivity, the better the algorithm performance. It is difficult for two algorithms to produce the same false discovery rate. Here we divide false discovery rate into small segments. Such segments have clear interpretations. For example, the FDR 0,0.1 range reveals the algorithms ability to recognize the most abundant (based on SNR) peaks in the spectrum. Every time when we obtain peak lists, both false discovery rates and sensitivity are computed. We group the sensitivity together if the corresponding false discovery rates fall into the same small segment. Then average values of sensitivity in the same group are computed. The average value of sensitivity is used to evaluate the performance of one algorithm in that area. As ground truth is known for both simulation data and real data in this paper, the ROC curve is probably the most informative measure for evaluation of different peak detection methods. However, the false discovery rates of wavelet-based methods are limited to a relatively small range across all possible parameter settings. On one hand, this reflects the robustness of wavelet-based methods. On the other hand, the plot of ROC curve becomes difficult in wavelet-based methods. Here we use the following alternative method to conduct performance comparison: we select four regions of false discovery rate:0, 0.1), 0.2, 0.3), 0.4, 0.5), 0.6, 0.7) and compare sensitivity of different algorithms in these regions using boxplot. Such strategy is capable of providing an overall performance evaluation since it is roughly a discrete ROC curve in four regions. Moreover, the boxplots illustrate the performance variances of different algorithms. Different programs have different parameters to adjust when performing peak detection. Since it is very time consuming to optimize each algorithm using all potential combinations of different parameters, we mainly test combinations of parameters that are related to peak finding and use default values for other parameters. Please refer to additional file 2 for more details. Comparison of Algorithms Using Simulation Data The simulation data is generated using a model that incorporates some characteristics of real MALDI-TOF mass spectrometers: The simulation engine takes a peak list with both m / z values and intensity values as input and generates an artificial spectrum as output. The user-specified peaks are labeled as the ground-truth during data generation, while other peaks are labeled as false peaks in the simulation spectrum. In addition, the simulation engine assumes that the isotopic distribution follows the Bernoulli distribution. It also includes exponential baseline curve and Gaussian additive noise. This data set has 25 groups of data and each group has 100 spectra. Each spectrum has a true peak list provided by data set. We directly use these peak lists as ground truth in our experiment. We use different parameter settings to perform peak detection repeatedly on 100 spectra in the same group, and then compute the average value of sensitivity with corresponding false discovery rates locating in the same small region. For each algorithm, we obtain 25 average values of sensitivity in each small region. Figure x200B Figure5 5 shows the performance of five algorithms. CWT provides the best performance among these algorithms. Our explanation is that the use of wavelets in baseline modeling/correction and the use of ridge lines enable CWT-based algorithm to achieve better performance. Performance of different algorithms at different false discovery rates using simulation data . In this figure, (a), (b), (c) and (d) show the average sensitivity when false discovery rate is around 0.05, 0.25, 0.45 and 0.65, respectively. Comparison of Algorithms Using Aurum Data Aurum Dataset is a high resolution data set, which contains spectra from 246 known, individually purified and trypsin-digested protein samples with an ABI 4700 MALDI TOF/TOF mass spectrometer. In the experiments, we do not use MS/MS data and limit our analysis only to MS spectra. For each MS spectrum, we generate the ground truth peaks in silico using the following parameters: trypsin digestion with a maximum of one missed cleavage, monoisotopic peaks and single charge state. We also consider some typical PTMs (Post-Translational Modifications): carboxyamidomethyl cysteine as the fixed modification and oxidation of methionine as the variable modification. Note that peptides having missed cleavages and PTMs are also used to generate ground-truth peaks. After obtaining the theoretic peak list, we merge identical peaks into one peak and delete peaks whose m / z values are not in the range between 800 Da and 3500 Da. We select 200 spectra, and divide the spectra into eight groups. We perform the same performance test as we did for the simulation data. Figure x200B Figure6 6 shows the performance of these five methods. The noisy nature of real data causes larger performance variations of most methods in this experiment. LIMPIC achieves comparable performance as CWT in Figure 6(b) and outperforms CWT in Figure 6(c). On average, CWT provides the best results. Performance of different algorithms at different false discovery rates using Aurum data . In this figure, (a), (b), (c) and (d) show the average sensitivity when false discovery rate is around 0.05, 0.25, 0.45 and 0.65, respectively. Report of Running Time For high-throughput data analysis, high efficiency is always desirable. In Table x200B Table2, 2. we list the average running time of different algorithms on both simulation data and Aurum data, respectively. We obtain the running time of different algorithms using their original software packages on the same PC. It should be noted that these programs are implemented in different languages. Even without considering the implementation efficiency, complexity comparison is reasonable only for programs implemented in the same language. In this sense, Table x200B Table2 2 only serves as a reference for those readers who are interested in computational cost. Average processing time per spectrum using different programs Parameter Tuning When the false discovery rate is 5, half of true peaks are not detected when 90 of true peaks are detected, many other identified peaks are noise peaks. We use the F 1 measure to measure the performance of an algorithm by compromising between false discovery rate and sensitivity. The F 1 measure is defined as: F 1 2 x000d7 ( 1 x02212 F D R ) x000d7 S e n s i t i v i t y 1 x02212 F D R S e n s i t i v i t y. The larger F 1 is, the better a parameter combination will be. We exhaustively try combination of parameters and count the numbers that a parameter combination provides the maximal F 1. The parameter combination that produces the largest number of maximal F 1 is considered as the best combination. We also test the peak detection precision for each algorithm with its best parameter combination. For readers who are interested in parameter settings, please refer to the additional file 2 for more information. Conclusion In this paper, we provide a comprehensive survey of existing peak detection methods. In addition, we compare performance of five single spectrum based peak detection algorithms. Results show that CWT provides the best performance. The reasons that CWT provides the best performance are two-fold: (1) CWT optimally characterizes the shape of peaks in mass spectra. In a real spectrum, peak width varies a lot 10 . Hence smoothing the spectrum using fixed-window filters may fail. CWT avoids the problem by performing multi-scale smoothing. (2) True peptide-related peaks are more consistent at multiple scales than false positive peaks that are mainly caused by high frequency noise. The concept of forming ridge lines in CWT effiectively removes false positive peaks. Algorithms studied in this paper mainly focus on how to identify peak positions correctly. They ignore how to compute peak abundance, which is very important in some applications (e. g. protein quantification). In our future work, we plan to study the issue of peak detection in LC-MS data. It will be interesting to see if additional information along the LC-axis may help to improve peak detection results. Authors contributions CY performed the implementations and drafted the manuscript. ZH participated in the categorization of related work. WY conceived the study and finalized the manuscript. All authors read and approved the final manuscript. Supplementary Material Data and results . This file lists the data used in this paper and the results for the experiments. Parameter setting . This file gives parameters settings in experiments for each program compared in this work. Acknowledgements We are grateful to the anonymous reviewers for their valuable comments and suggestions, which greatly helped us improve the manuscript. This work was supported with the GRF Grant 621707 from the Hong Kong Research Grant Council, a research proposal competition award RPC07/08.EG25 and a postdoctoral fellowship award from the Hong Kong University of Science and Technology. References Aebersold R, Mann M. Mass spectrometry-based proteomics. Nature. 2003 422 :198207. PubMed Gras R, Mx000fcller M, Gasteiger E, Gay S, Binz PA, Bienvenut W, Hoogland C, Sanchez JC, Bairoch A, Hochstrasser DF, Appel RD. Improving protein identification from peptide mass fingerprinting through a parameterized multi-level scoring algorithm and an optimized peak detection. Electrophoresis. 1999 20 :35353550. PubMed Adam BL, Qu Y, Davis JW, Ward MD, Clements MA, Cazares LH, Semmes OJ, Schellhammer PF, Yasui Y, Feng Z, Wright GL. Serum protein fingerprinting coupled with a pattern-matching algorithm distinguishes prostate cancer from benign prostate hyperplasia and healthy men. Cancer Research. 2002 62 :36093614. PubMed Malyarenko DI, Cooke WE, Adam BL, Malik G, Chen H, Tracy ER, Trosset MW, Sasinowski M, Semmes OJ, Manos DM. Enhancement of sensitivity and resolution of surface-enhanced laser desorption/ionization time-of-flight mass spectrometric records for serum peptides using time-series analysis techniques. Clinical Chemistry. 2005 51 :6574. PMC free article PubMed Oppenheim AV, Schafer RW, Buck JR. Discrete-time signal processing. second. Prentice Hall 1999. Savitzky A, Golay MJE. Smoothing and differentiation of data by simplified least squares procedures. Analytical Chemistry. 1964 36 :16271639. Danielsson R, Bylund D, Markides KE. Matched filtering with background suppression for improved quality of base peak chromatograms and mass spectra in liquid chromatography-mass spectrometry. Analytica Chimica Acta. 2002 454 :167184. Smith CA, Want EJ, Maille GO, Abagyan R, Siuzdak G. XCMS: processing mass spectrometry data for metabolite profiling using nonlinear peak alignment, matching, and identification. Analytical Chemistry. 2006 78 :779787. PubMed Kaiser JF, Schafer RW. On the use of the I 0 - Sinh window for spectrum analysis. IEEE Transactions on Acoustics, Speech, and Signal Processing. 1980 28 :105107. Du P, Kibbe WA, Lin SM. Improved peak detection in mass spectrum by incorporating continuous wavelet transform-based pattern matching. Bioinformatics. 2006 22 :20592065. PubMed Lang M, Guo H, Odegard JE, Burrus CS. Noise reduction using an undecimated discrete wavelet transform. IEEE Signal Processing Letters. 1996 3 :1012. Coombes KR, Tsavachidis S, Morris JS, Baggerly KA, Hung MC, Kuerer HM. Improved peak detection and quantification of mass spectrometry data acquired from surface-enhanced laser desorption and ionization by denoising spectra with the undecimated discrete wavelet transform. Proteomics. 2005 5 :41074117. PubMed Li X, Gentleman R, Lu X, Shi Q, Iglehart JD, Harris L, Miron A. Bioinformatics and Computational Biology Solutions Using R and Bioconductor. Springer 2005. SELDI-TOF mass spectrometry Protein Data pp. 91109. Coombes KR, Fritsche HA, Clarke C, Chen J, Baggerly KA, Morris JS, Xiao L, Hung M, Kuerer HM. Quality control and peak finding for proteomics data collected from nipple aspirate fluid by surface-enhanced laser desorption and ionization. Clinical Chemistry. 2003 49 :16151623. PubMed Lange E, Gropl C, Reinert K, Kohlbacher O, Hildebrandt A. Pac Symp Biocomput. Maui, Hawaii, USA 2006. High-accuracy peak picking of proteomics data using wavelet techniques pp. 243254. PubMed Leptos KC, Sarracino DA, Jaffe JD, Krastins B, Church GM. MapQuant: Open-source software for large-scale protein quantification. Proteomics. 2006 6 :17701782. PubMed Coombes KR, Koomen JM, Baggerly KA, Morris JS, Kobayashi R. Understanding the characteristics of mass spectrometry data through the use of simulation. Cancer Informatics. 2005 1 :4152. PMC free article PubMed Morris JS, Coombes KR, Koomen J, Baggerly KA, Kobayashi R. Feature extraction and quantification for mass spectrometry in biomedical applications using the mean spectrum. Bioinformatics. 2005 21 :17641775. PubMed Falkner JA, Veine DM, Kachman M, Walker A, Strahler JR, Andrews PC. Validated MALDI-TOF/TOF mass spectra for protein standards. J Am Soc Mass Spectrom. 2007 18 :850855. PubMed Du P, Sudha R, Prystowsky MB, Angeletti RH. Data reduction of isotope-resolved LC-MS spectra. Bioinformatics. 2007 23 :13941400. PubMed Mantini D, Petrucci F, Pieragostino D, DelBoccio P, Nicola MD, Ilio CD, Federici G, Sacchetta P, Comani S, Urbani A. LIMPIC: a computational method for the separation of protein MALDI-TOF-MS signals from noise. BMC Bioinformatics. 2007 8 :101. PMC free article PubMed Yasui Y, Pepe M, Thompson ML, Adam BL, Wright GL, Qu Y, Potter JD, Winget M, Thornquist M, Feng Z. A data-analytic strategy for protein biomarker discovery:profiling of high-dimensional proteomic data for cancer detection. Biostatistics. 2003 4 :449463. PubMed Bellew M, Coram M, Fitzgibbon M, Igra M, Randolph T, Wang P, May D, Eng J, Fang R, Lin CW, Chen JZ, Goodlett D, Whiteaker J, Paulovich A, McIntosh M. A suite of algorithms for the comprehensive analysis of complex protein mixtures using high-resolution LC-MS. Bioinformatics. 2006 22 :19021909. PubMed Katajamaa M, Miettinen J, Oresic M. MZmine: Toolbox for processing and visualization of mass spectrometry based molecular profile data. Bioinformatics. 2006 22 :634636. PubMed Karpievitch YV, Hill EG, Smolka AJ, Morris JS, Coombes KR, Baggerly KA, Almeida JS. PrepMS: TOF MS data graphical preprocessing tool. Bioinformatics. 2007 23 :264265. PMC free article PubMed Articles from BMC Bioinformatics are provided here courtesy of BioMed CentralWolfram Language Revolutionary knowledge-based programming language. Wolfram Cloud Central infrastructure for Wolframs cloud products amp services. Wolfram Science Technology-enabling science of the computational universe. Computable Document Format Computation-powered interactive documents. Wolfram Engine Software engine implementing the Wolfram Language. Wolfram Natural Language Understanding System Knowledge-based broadly deployed natural language. Wolfram Data Framework Semantic framework for real-world data. Wolfram Universal Deployment System Instant deployment across cloud, desktop, mobile, and more. Wolfram Knowledgebase Curated computable knowledge powering WolframAlpha. Group Abstract Message Boards

No comments:

Post a Comment