El curso presenta técnicas algorítmicas básicas que se aplican en problemas de Bioinformática, con una visión de las fortalezas y limitaciones de dichas técnicas. También describe elementos de datos comunes y formatos utilizados para representar datos biológicos. Durante el curso los estudiantes adquirirán los conocimientos necesarios para abordar problemas de programación de naturaleza biológica de pequeña y mediana complejidad, realizando elecciones sensatas de paquetes estándar o implementaciones algorítmicas pragmáticas para problemas específicos.
Al final del curso, los estudiantes:
1. Conocerán los conceptos básicos de programación, algorítmica y gestión de la información en la resolución de problemas de carácter biológico a través de programas informáticos.
2. Serán capaces de utilizar los principales esquemas algorítmicos y algunas de sus variantes que aparecen frecuentemente en problemas comunes de Bioinformática
3. Reconocerán los casos de aplicación de los principales métodos utilizados en Bioinformática para acceder a datos almacenados en ordenadores, con especial atención a los mecanismos eficientes de tratamiento de secuencias.
4. Sabrán integrar el acceso a grandes bases de datos biológicas con el acceso a otras estructuras de información locales y combinarlos adecuadamente con los conceptos algorítmicos necesarios.
5. Sabrán cómo interactuar con herramientas externas y utilizar bibliotecas comunes que amplían la funcionalidad y mejoran el rendimiento de los programas Python.
El lenguaje de programación utilizado en este curso es Python, el cual se complementará con el uso ocasional de herramientas del Sistema Operativo o aplicaciones externas.
Profesorado
Responsable
Alexis Molina Martinez de los Reyes (
)
Gabriel Valiente Feruglio (
)
Miquel Angel Senar Rosell (
)
Horas semanales
Teoría
2
Problemas
2
Laboratorio
0
Aprendizaje dirigido
0
Aprendizaje autónomo
6
Resultados de aprendizaje
Resultados de aprendizaje
Conocimientos
K3 - Identificar los fundamentos matemáticos, las teorías informáticas, los esquemas algorítmicos y los principios de organización de la información aplicables al modelado de sistemas biológicos y a la resolución eficiente de problemas bioinformáticos mediante el diseño de herramientas computacionales.
K4 - Integrar los conceptos ofrecidos por los lenguajes de programación de mayor uso en el ámbito de las Ciencias de la Vida para modelar y optimizar estructuras de datos y construir algoritmos eficientes, relacionándolos entre sí y con sus casos de aplicación.
K5 - Identificar la naturaleza de las variables biológicas que es preciso analizar, así como los modelos matemáticos, los algoritmos y las pruebas estadísticas adecuadas para desarrollar y evaluar análisis estadísticos y herramientas computacionales.
Habilidades
S2 - Analizar computacionalmente secuencias de ADN, ARN y proteínas, incluyendo análisis comparativos de genomas, usando la computación, las matemáticas y la estadística como herramientas básicas de la bioinformática.
S7 - Implementar métodos de programación y análisis de datos orientados a partir de la elaboración de hipótesis de trabajo, dentro del área de estudio.
S8 - Enfrentarse a la toma de decisiones, y defenderlas con argumentos, en la resolución de problemas de las áreas de biología, así como, dentro de los ámbitos adecuados, las ciencias de la salud, las ciencias de la computación y las ciencias experimentales.
Competencias
C6 - Detectar deficiencias en el propio conocimiento y superarlas mediante la reflexión crítica y la elección de la mejor actuación para ampliar este conocimiento.
Objetivos
Comprender cómo construir un programa y utilizar herramientas adicionales para resolver problemas que utilizan datos bioinformáticos.
Competencias relacionadas:
K3,
K4,
S7,
C6,
Comprender el formato y la semántica de las estructuras de datos básicas utilizadas para representar datos biológicos: secuencias, genomas,...
Competencias relacionadas:
K3,
K5,
S2,
C6,
Comprender las operaciones más comunes que se aplican a los archivos de datos bioinformáticos y desarrollar programas para realizarlas.
Competencias relacionadas:
K3,
K4,
K5,
S2,
S7,
C6,
Comprender los principios básicos de los algoritmos que se utilizan para resolver problemas de alineación de secuencias y coincidencia de patrones.
Competencias relacionadas:
K3,
K4,
K5,
S2,
S7,
C6,
Analizar soluciones con respecto al tiempo y el costo de la memoria y utilizar componentes de programación para mejorar el rendimiento.
Competencias relacionadas:
K3,
S7,
S8,
C6,
Contenidos
Introduccióniy resumen de Python
Conceptos básicos de Python, control de flujo, funciones, listas, diccionarios y datos estructurados
Secuencias genómicas y mecanismos de análisis
Secuencias, cadenas y datos genómicos. Formatos de ficheros de secuencias. Bases de datos biológicas. Manipulación de secuencias y datos genómicos: biopython y otras herramientas comunes.
Motifs y kmers
Motifs y kmers. Coincidencia básica de cadenas. Secuencias de consenso. Búsqueda de motifs. Herramientas de descubrimiento de motifs.
Búsqueda de patrones y expresiones regulares
Encontrar patrones. Encontrar patrones con expresiones regulares. Crear y combinar objetos regex.
Manipulación de cadenas de caracteres y alineación de secuencias
Manipulación de cadenas: indexación, unión, corte. Algoritmos de alineación y programación dinámica. Software de alineación y estadísticas de alineación. Datos genómicos y formatos de archivos.
Alineamiento de secuencias múltiples y filogenética.
Formatos de fichero para el alineamiento de múltiples secuencias y métodos de alineamiento de múltiples secuencias. Arboles filogenéticos: representación y funcionamiento básico.
Temas diversos
Interfaz de Python con el sistema operativo y uso de módulos. Mejora de la velocidad de los scripts de Python.
Actividades
ActividadActo evaluativo
Introducción y resumen de Python
Resolución de problemas con Python Objetivos:12 Contenidos:
Secuencias genómicas, motifs y kmers. Mecanismos de analisis
Representación de secuencias y datos genómicos. Formatos de fichero para almacenar datos biológicos. Bases de datos externas. Programas que utilizan Biopython y otras herramientas habituales para manipular biodatos . Objetivos:123 Contenidos:
Encontrar patrones de texto sin expresiones regulares. Encontrar patrones con expresiones regulares. Uso de objectos de expresión regular en Python. Objetivos:234 Contenidos:
Manipulación de cadenas de caracteres y alineamiento de secuencias
Acciones comunes de manipulación de cadenas: indexar, unir, dividir, buscar, insertar. Algoritmos de alineación básicos e implementaciones de programación dinámica. Manipulación de datos genómicos generados con herramientas de alineación. Objetivos:2345 Contenidos:
Alineamiento de secuencias múltiples y filogenética
Métodos comunes utilizados para resolver el problema de alineamiento de secuencias múltiples. Uso de archivos de alineamiento de secuencias múltiples MSA. Representación y funcionamiento básico de árboles filogenéticos. Objetivos:2345 Contenidos:
Interfaz de Python con el sistema operativo y otros módulos externos. Mejora de la velocidad de los programas Python: Cython, numpy,... Objetivos:15 Contenidos:
Durante las sesiones teóricas, el profesor expondrá conceptos de programación, combinándolos con ejemplos y resolución de problemas.
Durante las sesiones de resolución de problemas, los estudiantes trabajarán por sí mismos resolviendo problemas en un sistema informático, bajo la supervisión y asistencia del profesor cuando sea necesario.
Método de evaluación
Habrá dos exámenes: un examen parcial y un examen final.
Además, se realizarán algunas pruebas de problemas evaluables durante las sesiones de problemas, anunciadas con antelación.
Puntuación final = 0,20*NP + 0,80*máx(EF, 0,35*EP+0,65*EF)
dónde:
NP: Puntuación de problemas. Pruebas breves de problemas realizadas durante las sesiones de problemas.
EP: Puntuación del examen parcial
EF: Puntuación del examen final
Bibliografía
Básica:
Python for the Life Sciences. A Gentle Introduction to Python for Life Scientists -
Lancaster, Alexander and Webster, Gordon,
Apress Berkeley, 2019. ISBN: 9781484245224