Databases, SQL and Python (2024 edition)

Casi todos los desarrollos que se hacen a día de hoy en bioinformática de una u otra manera hacen uso de datos almacenados en bases de datos “biológicas” o “bioinformáticas”. Una base de datos biológica es un almacén de datos para información derivada de los datos obtenidos experimentos biológicos, ni más ni menos. Y una base de datos bioinformática es un almacén de datos para información derivada de datos biológicos y de programas bioinformáticos. A nivel más técnico, las bases de datos biológicas y bioinformáticas están disponibles generalmente como un conjunto de ficheros planos, cuyo tamaño suele ser enorme.

Además de los archivos de texto, existen otras formas de almacenamiento muy comunes en nuestro campo, hojas de cálculo (generalmente muy mala idea, como explica el siguiente artículo y da ejemplo la siguiente noticia) y las bases de datos relacionales. Los archivos de texto son más fáciles de crear y funcionan bien con el control de versiones, pero entonces tendríamos que construir herramientas de búsqueda y análisis nosotros mismos. Las hojas de cálculo son buenas para hacer análisis simples, pero no manejan bien conjuntos de datos grandes o complejos. Sin embargo, las bases de datos incluyen herramientas poderosas para búsqueda y análisis, y pueden manejar conjuntos de datos grandes y complejos.

A lo largo de las siguientes lecciones, se explicará qué es un gestor de base de datos, cómo se insertan datos, cómo se consultan esos datos y cómo se puede hacer todo esto de forma automática gracias a la programación en un lenguaje como Python.

Prerrequisitos

Día 1 - Uso de la shell de SQLite

Lunes, 13 de enero 2025

18:00 Configuración
18:15 Familiarización con la shell SQLite
  1.- Entrar a la shell de SQLite
  2.- Ver las tablas que hay en una base de datos.
19:30 Nuestra primera base de datos
  1.- Cómo ejecutar un script de SQL.
  2.- Cómo guardar los resultados en un fichero.
20:59 FIN

Día 2 - Manipulación de datos y transacciones

Martes, 14 de enero 2025

18:00 Manipulación de datos
  1.- Claves únicas
  1.- Claves externas
  2.- Insercción de datos biológicos de UniProt
20:15 Transacciones
  3.- Uso de las transacciones
  4.- BEGIN; ROLLBACK; COMMIT
20:59 FIN

Día 3 - Acceso programático y consultas de agregación

Miércoles, 15 de enero 2025

18:00 Acceso programático en Python.
  1.- Insercción de organismos completos.
  2.- Recuperación de datos mediante python.
19:30 Consultas de agregación
20:59 FIN

Día 4 - Nuevas tablas

Jueves, 16 de enero 2025

18:00   1.- ¿Qué es clinvar?
18:15 Creación de tablas para ClinVar
  1.- Inserción de tablas a un base de datos existente.
  2.- Inserción de datos a un base de datos existente.
  3.- Creación de referencias entre tablas.
20:59 FIN

Día 5 - Creación de un script desde cero

Viernes, 17 de enero 2025

18:00 Programación en Python
  1.- Creación de un script de python desde 0.
19:00 Dudas y preguntas
20:00 Presentación del trabajo final de la asignatura
20:59 FIN

Enunciado Trabajo Final

Entrega: 31 de marzo de 2025

18:00 Enunciado