El curs presenta tècniques algorítmiques bàsiques que s'apliquen en problemes de Bioinformàtica, amb una visió de les fortaleses i limitacions d'aquestes tècniques. També descriu elements i formats de dades comuns utilitzats per representar dades biològiques. Durant el curs els estudiants adquiriran els coneixements per tractar problemes de programació de naturalesa biològica de complexitat petita i mitjana, fent eleccions algorítmiques pragmàtiques raonables de paquets estàndard o implementacions per a aplicacions específiques.
Al final del curs, els alumnes:
1. Coneixeran els conceptes bàsics de programació, algorítmica i gestió de la informació en la resolució de problemes de caràcter biològic mitjançant programes informàtics.
2. Seran capaços d'utilitzar els principals esquemes algorísmics i algunes de les seves variants que apareixen freqüentment en problemes comuns de Bioinformàtica,
3. Reconeixeran els casos d'aplicació dels principals mètodes utilitzats en Bioinformàtica per accedir a les dades emmagatzemades en ordinadors, amb especial atenció als mecanismes eficients de tractament de seqüències.
4. Sabran integrar l'accés a grans bases de dades biològiques amb l'accés a altres estructures d'informació locals i combinar-les adequadament amb els conceptes algorísmics necessaris.
5. Sabran connectar-se amb eines externes i utilitzar biblioteques comunes que amplien la funcionalitat i milloren el rendiment dels programes Python.
El llenguatge de programació utilitzat en aquest curs és Python, que es complementarà amb l'ús puntual d'eines del Sistema Operatiu o aplicacions externes.
Professorat
Responsable
Alexis Molina Martinez de los Reyes (
)
Gabriel Valiente Feruglio (
)
Miquel Angel Senar Rosell (
)
Hores setmanals
Teoria
2
Problemes
2
Laboratori
0
Aprenentatge dirigit
0
Aprenentatge autònom
6
Resultats d'aprenentatge
Resultats d'aprenentatge
Coneixements
K3 - Identificar els fonaments matemàtics, les teories informàtiques, els esquemes algorísmics i els principis d'organització de la informació aplicables al modelat de sistemes biològics i a la resolució eficient de problemes bioinformàtics mitjançant el disseny d'eines computacionals.
K4 - Integrar els conceptes oferts pels llenguatges de programació de major ús en l'àmbit de les Ciències de la Vida per a modelar i optimitzar estructures de dades i construir algorismes eficients, relacionant-los entre sí i amb els seus casos d'aplicació.
K5 - Identificar la naturalesa de les variables biològiques que cal analitzar, així com els models matemàtics, els algorismes i les proves estadístiques adequades per a desenvolupar i avaluar anàlisis estadístics i eines computacionals.
Habilitats
S2 - Analitzar computacionalment seqüències d'ADN, ARN i proteïnes, incloent anàlisis comparatives de genomes, usant la computació, les matemàtiques i l'estadística com a eines bàsiques de la bioinformàtica.
S7 - Implementar mètodes de programació i anàlisi de dades a partir de l'elaboració d'hipòtesis de treball, dins de l'àrea d'estudi.
S8 - Enfrontar-se a la presa de decisions, i defensar-les amb arguments, en la resolució de problemes de les àrees de biologia, així com, dins dels àmbits adequats, les ciències de la salut, les ciències de la computació i les ciències experimentals.
Competències
C6 - Detectar deficiències en el propi coneixement i superar-les mitjançant la reflexió crítica i l'elecció de la millor actuació per a ampliar aquest coneixement.
Objectius
Entendre com construir un programa i utilitzar eines addicionals per resoldre problemes que utilitzen dades bioinformàtiques.
Competències relacionades:
C6,
K3,
K4,
S7,
Comprendre el format i la semàntica de les estructures de dades bàsiques utilitzades per representar dades biològiques: seqüències, genomes,...
Competències relacionades:
K3,
K5,
S2,
C6,
Conèixer les operacions més habituals que s'apliquen als fitxers de dades bioinformàtiques i desenvolupar programes per realitzar-les.
Competències relacionades:
C6,
K3,
K4,
K5,
S2,
S7,
Comprendre els principis bàsics d'algorisme que s'utilitzen per resoldre problemes d'alineació de seqüències i de concordança de patrons.
Competències relacionades:
K3,
K4,
K5,
S2,
S7,
C6,
Analitzar solucions pel que fa a temps i cost de memòria i utilitzar components de programació per millorar el rendiment.
Competències relacionades:
C6,
K3,
S7,
S8,
Continguts
Introducció i resum de Python
Conceptes bàsics de Python, control de flux, funcions, llistes, diccionaris i dades estructurades
Seqüències genòmiques i mecanismes d'anàlisi
Seqüències, cadenes i dades genòmiques. Formats de fitxer de seqüències. Bases de dades biològiques. Manipulació de seqüències i dades genòmiques: biopython i altres eines comunes.
Motifs i kmers
Motifs i kmers. Concordança bàsica de cadenes. Seqüències de consens. Búsqueda de motifs. Eines de descoberta de motifs.
Cerca de patrons i expressions regulars
Cercar patrons. Trobar patrons amb expressions regulars. Creació i associació d'objectes regex.
Manipulació de cadenes de caràcters i alineació de seqüències
Manipulació de cadenes de caràcters: indexació, unió, tall. Algoritmes d'alineació i programació dinàmica. Programari d'alineació i estadístiques d'alineació. Dades genòmiques i formats de fitxers.
Alineament de seqüències múltiples i filogenètica
Formats de fitxer per alineació de múltiples seqüències i mètodes d'alineament de múltiple seqüències. Arbres filogenètics: representació i funcionament bàsic.
Temes diversos
Interacció de Python amb el sistema operatiu i ús de mòduls. Millora de la velocitat dels scripts de Python.
Activitats
ActivitatActe avaluatiu
Introducció i resum de Python.
Resolució de problemes amb Python Objectius:12 Continguts:
Seqüències genòmiques, motifs i kmers. Mecanismes d'anàlisi
Representació de seqüències i dades genòmiques. Formats de fitxer per emmagatzemar dades biològiques. Bases de dades externes. Programes que utilitzen Biopython i altres eines habituals per manipular biodades. Objectius:123 Continguts:
Trobar patrons de text sense expressions regulars. Trobar patrons amb expressions regulars. Ús d'objectes d'expressió regular a Python. Objectius:234 Continguts:
Manipulació de cadenes de caràcters i alineament de seqüències
Accions habituals de manipulació de cadenes de caràcters: indexació, unió, tall, cerca, inserció. Algorismes bàsics d'alineació i implementacions de programació dinàmica. Manipulació de dades genòmiques generades amb eines d'alineació. Objectius:2345 Continguts:
Alineamiento de seqüències múltiples i filogenètica
Mètodes comuns utilitzats per resoldre el problema d'alineació de múltiples seqüències. Ús de fitxers d'alineament de seqüències múltiples. Representació i funcionament bàsic dels arbres de Filogenètica. Objectius:2345 Continguts:
Interfície Python amb el sistema operatiu i altres mòduls externs. Millora de la velocitat dels programes Python: Cython, numpy,... Objectius:15 Continguts:
Durant les sessions teòriques, el professor exposarà conceptes de programació, combinats amb exemples i resolució de problemes.
Durant les sessions de resolució de problemes, els estudiants treballaran la seva pròpia resolució de problemes en un sistema informàtic, sota la supervisió i assistència del professor quan sigui necessari.
Mètode d'avaluació
Hi haurà dos exàmens: un examen parcial i un examen final
A més, es realitzaran algunes proves de problemes avaluables durant les sessions de problemes, anunciades amb antelació.
Puntuació final = 0,20*NP + 0,80*màx (EF, 0,35*EP+0,65*EF)
on:
NP: Puntuació de problemes. Proves breus de problemes realitzades durant les sessions de problemes
EP: Puntuació de l'examen parcial
EF: Puntuació de l'examen final
Bibliografia
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