Créditos
3
Tipos
- MEI: Optativa
- MIRI: Optativa
- MDS: Optativa
Requisitos
Esta asignatura no tiene requisitos
, pero tiene capacidades previas
Departamento
CS
Profesorado
Responsable
- Santiago Marco Sola ( santiago.marco@upc.edu )
Horas semanales
Teoría
2
Problemas
1
Laboratorio
1
Aprendizaje dirigido
0
Aprendizaje autónomo
8.5
Competencias
Dirección y gestión
Específicas
Genéricas
Uso solvente de los recursos de información
Básicas
Objetivos
Contenidos
-
Tecnologías de secuenciación y análisis del genoma
Se presenta una visión general de las tecnologías modernas de secuenciación de ADN y de las características computacionales de los datos genómicos. Se presentan las principales tareas del análisis genómico, incluyendo el mapeo de secuencias, el variant calling y el ensamblaje de secuencias. Estos problemas motivan la abstracción de las secuencias biológicas como cadenas y ponen de relieve los retos algorítmicos y computacionales que plantean los conjuntos de datos a escala genómica. -
Algoritmos de búsqueda exacta de patrones
Se estudia el problema de la búsqueda exacta como tarea algorítmica fundamental. Se presentan algoritmos clásicos para ilustrar distintos paradigmas de diseño, incluyendo el preprocesamiento basado en prefijos, las estrategias heurísticas de salto, las técnicas de hashing y el paralelismo a nivel de bit. Se hace énfasis en la corrección, la complejidad temporal y las consideraciones prácticas de rendimiento. -
Estructuras de datos para la indexación de texto
Este bloque se centra en estructuras de datos que permiten una búsqueda eficiente de patrones sobre textos de gran escala, con especial atención a aplicaciones genómicas. Se cubren estrategias de indexación basadas en hashing y en k-mers, estructuras de árboles lexicográficos, árboles de sufijos y arrays de sufijos, así como índices comprimidos de texto completo basados en la transformada de Burrows-Wheeler. -
Algorithmos de búsqueda aproximada de patrones
Este bloque presenta la búsqueda aproximada de patrones de texto, donde se permiten diferencias. El bloque introduce modelos de distancia y error, seguidos de técnicas de filtrado y seeding para reducir el espacio de búsqueda. Se presentan métodos asistidos por índice, estimación de similitud mediante sketches, algoritmos de verificación y estrategias de chaining como componentes clave de los algoritmos y herramientas modernas de búsqueda aproximada. -
Alineamiento de secuencias
Este bloque aborda el alineamiento de secuencias como tarea fundamental en bioinformática y análisis genómico. Se introducen técnicas de programación dinámica para calcular la distancia de edición y otros modelos de alineamiento, incluyendo gap-affine. Se estudian modalidades clásicas de alineamiento y optimizaciones algorítmicas avanzadas, con atención a la eficiencia espacial, al sparse dynamic programming y a métodos output-sensitive, como el Wavefront Alignment Algorithm. -
Grafos de secuencia y pangenómica
La asignatura concluye con una introducción a representaciones basadas en grafos para modelar variación genómica. Se discuten grafos de secuencia, modelos de pangenoma y su relación con las referencias lineales. Se introduce el problema de alineamiento de secuencias sobre grafos, destacando los retos y las oportunidades algorítmicas que surgen al extender técnicas de alineamiento a estas representaciones.
Actividades
Actividad Acto evaluativo
Teoría
2h
Problemas
1h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h
Teoría
2h
Problemas
1h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h
Teoría
3h
Problemas
1h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h
Teoría
2h
Problemas
1h
Laboratorio
1h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h
Teoría
2h
Problemas
1h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h
Teoría
1h
Problemas
1h
Laboratorio
1h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Presentación de algoritmos y estructuras de datos avanzadas
Objetivos: 1
Semana: 7 (Fuera de horario lectivo)
Teoría
0h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Metodología docente
La asignatura combina clases, sesiones de resolución de problemas y trabajo autónomo para desarrollar tanto la comprensión teórica como las competencias prácticas. Durante las clases, el profesorado introduce conceptos algorítmicos, estructuras de datos y técnicas clave para la genómica y la pangenómica, apoyándose en ejemplos ilustrativos y en la discusión de compromisos de complejidad y rendimiento.Las sesiones de problemas se dedican a la resolución guiada de ejercicios, en los que el estudiante trabaja sobre problemas algorítmicos relacionados con los contenidos del curso. Estas sesiones enfatizan el razonamiento, la corrección y el análisis, y el alumnado recibe supervisión y retroalimentación continuas.
El estudio independiente y el trabajo de proyecto desempeñan un papel central en la asignatura. Se espera que el estudiante lea y analice literatura científica, prepare una presentación oral de un artículo seleccionado y desarrolle un proyecto aplicado de programación que consolide las técnicas estudiadas a lo largo del curso.
Método de evaluación
La evaluación de la asignatura es continua.El componente principal, que representa el 80% de la nota final, consiste en una presentación oral y defensa de un artículo de investigación sobre temas tratados en la asignatura. Se espera que el estudiante lea, analice y presente de forma crítica, de manera autónoma, una contribución de nivel investigador que demuestre comprensión de las ideas algorítmicas subyacentes, las decisiones metodológicas y su relevancia para el análisis de secuencias a escala genómica.
El segundo componente, que representa el 20% restante, consiste en un proyecto de programación, en el que el estudiante diseña e implementa de forma autónoma una solución aplicada y experimental que ponga en práctica las técnicas algorítmicas trabajadas a lo largo del curso.
Bibliografía
Básico
-
Genome-scale algorithm design : bioinformatics in the era of high-throughput sequencing
- Mäkinen, Veli; Belazzougui, Djamal; Cunial, Fabio; Tomescu, Alexandru I,
Cambridge University Press,
2023.
ISBN: 9781009341233
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991005219277706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Algorithms on strings, trees, and sequences : computer science and computational biology
- Gusfield, Dan,
Cambridge University Press,
1997.
ISBN: 0521585198
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991001989459706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
Biological sequence analysis : probabilistic models of proteins and nucleic acids
- Durbin, Richard,
Cambridge University Press,
1998.
ISBN: 0521629713
https://ebookcentral-proquest-com.recursos.biblioteca.upc.edu/lib/upcatalunya-ebooks/detail.action?pq-origsite=primo&docID=320915
Complementario
-
Bioinformatics : sequence and genome analysis
- Mount, David W,
Cold Spring Harbor Laboratory Press,
cop. 2004.
ISBN: 0879696877
https://discovery.upc.edu/discovery/fulldisplay?docid=alma991002934579706711&context=L&vid=34CSUC_UPC:VU1&lang=ca -
An Introduction to bioinformatics algorithms
- Jones, Neil C; Pevzner, Pavel A,
MIT Press,
cop. 2004.
ISBN: 0262101068
https://ebookcentral-proquest-com.recursos.biblioteca.upc.edu/lib/upcatalunya-ebooks/detail.action?pq-origsite=primo&docID=3338847
Capacidades previas
No se requieren conocimientos previos de bioinformática. Disponer de nociones básicas de biología molecular, genética o genómica puede ser útil, pero todo el contexto biológico necesario se introducirá durante el curso.Se espera que el estudiantado tenga conocimientos básicos de informática, incluidos algoritmos y estructuras de datos elementales. Además, el estudiante debe sentirse cómodo programando en al menos un lenguaje de programación de uso general (p.ej., Python, C, C++, Java o Rust). No es necesario tener experiencia previa en computación de altas prestaciones, arquitectura de computadores o ingeniería de rendimiento, aunque una comprensión básica de estos aspectos puede resultar beneficiosa en la parte de implementación y optimización de la asignatura.
Se requiere un alto interés y motivación por los algoritmos y las estructuras de datos.