¿Qué algoritmos se utilizan para hacer herramientas bioinformáticas?

La mayoría de las herramientas bioinformáticas están relacionadas con el procesamiento de cadenas (para buscar, extraer y alinear datos biológicos, como secuencias de ADN), o el aprendizaje automático (para hacer predicciones estadísticas más complejas).

Procesamiento de cadenas:

Dos de los algoritmos más comunes utilizados son el algoritmo Needleman-Wunsch y BLAST . Muchos otros algoritmos utilizados son derivados o variaciones de estos algoritmos.

Needleman-Wunsch es un algoritmo de programación dinámico que encuentra la alineación global de mayor puntuación entre dos secuencias. Se puede aplicar a secuencias de nucleótidos o aminoácidos, y funciona puntuando una secuencia por el número de coincidencias / inserciones / deleciones requeridas. El algoritmo genera una matriz 2D de puntuaciones como la siguiente:


Una variación de Needleman-Wunsch para la alineación local conocida como el algoritmo Smith-Waterman es en realidad solo una versión generalizada del problema de subsecuencia común más largo, por lo que esto puede parecer familiar.

BLAST es algo similar, y se usa principalmente para encontrar alineamientos locales dada alguna secuencia de consulta inicial. Sin embargo, la principal diferencia con BLAST es que utiliza una heurística y no siempre genera la solución más óptima. Sin embargo, todavía se usa ampliamente porque es extremadamente rápido.

Aprendizaje automático:

Para problemas más complejos, los algoritmos de aprendizaje automático a menudo se usan para crear modelos que predicen datos biológicos específicos. Este es un campo mucho más amplio, y hay una gran cantidad de algoritmos utilizados en este caso, pero uno común es un modelo de Markov oculto .

Analizar cómo los datos biológicos cambian con el tiempo es un campo de investigación importante, y uno que a menudo surge es cómo el genoma se ve afectado por las mutaciones a lo largo del tiempo. Dado que una secuencia de ADN está compuesta de 4 nucleótidos (A, T, C, G), podemos representar cada uno de esos nucleótidos como estados diferentes y crear un modelo de Markov oculto, donde estimamos la tasa de mutación de un nucleótido a otro, y determine cuál podría ser el estado final más probable durante un período de tiempo determinado:

Además de eso, hay mucho más, especialmente a medida que el campo del aprendizaje automático continúa creciendo, por lo que definitivamente veremos una mayor variedad de algoritmos utilizados en las herramientas de bioinformática a medida que pase el tiempo.

Además de los algoritmos dinámicos utilizados en la alineación y sus variaciones de alineaciones por pares y múltiples (sumas de alineación por pares), podría agregar algoritmos de mapeo y ensamblaje, las transformaciones de madrigueras son esenciales en el mapeo y los gráficos de bruijn del ensamblaje del genoma de novo.

http://www.nature.com/nbt/journa