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
Miquel Angel Senar Rosell (
)
Altres
Abraham De la Rosa Ibarra (
)
Alexis Molina Martinez de los Reyes (
)
Elisa Heymann Pignolo (
)
Gabriel Valiente Feruglio (
)
Quim Aguado Puig (
)
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:
K3,
K4,
S7,
C6,
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:
K3,
K4,
K5,
S2,
S7,
C6,
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:
K3,
S7,
S8,
C6,
Continguts
Introducció
Conceptes bàsics de Python, control de flux, funcions, llistes, diccionaris i dades estructurades
Estructures de dades avançades i manipulació de cadenes.
Seqüències, cadenes i dades genòmiques, Manipulació bàsica de seqüencies genòmiques, kmers i motifs.
Iteradors, "Comprehensions" i Generadors
Iteradors i "comprehensions" sobre col·leccions. Principis i funcionament de Generadors.
Cerca de patrons i expressions regulars
Cercar patrons. Trobar patrons amb expressions regulars. Creació i associació d'objectes regex.
Fitxers i gestió d'excepcions
Operacions bàsiques amb fitxers. Gestió d'excepcions. Dades genòmiques i formats de fitxers habituals en Bioinformàtica.
Decoradors i principis de programació funcional
Definició i ús de decoradors. Ús de funcions especials: map, filter, reduce, lambdas, zip, unzip, logging
Alineament de seqüències: definicions i mètodes bàsics
Algoritmes d'alineament i programació dinàmica. Programari d'alineament i estadístiques d'alineament.
Extensions de Python
Móduls de Python per a interacció amb el SO i manipulació de carpetes, interfícies de programa (arguments en linea de comandes), Biopython.
Anàlisi de dades avançat
Numpy, Pandas, Matplotlib
Activitats
ActivitatActe avaluatiu
Introducció
Resolució de problemes amb Python Objectius:12 Continguts:
Estructures de dades avançazades i manipulació de cadenes
Representació de seqüències i dades genòmiques. Operacions habituals en cadenes: indexació, unió, divisió, búsqueda i inserció 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:
Ús d'iteradors, "comprehensions" i generadors Objectius:1235
Teoria
2h
Problemes
2h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h
Anàlisi de dades avançat
Treball amb mòduls habituals per a l'anàlisi de grans conjunts de dades Objectius:135
Teoria
6h
Problemes
6h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
18h
Extensions de Python
Treball amb mòduls habituals que extenen la funcionalitat de Python per interactuar amb el món exterior i amb dades bioinformàtiques. Objectius:1235
Teoria
6h
Problemes
6h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
18h
Metodologia docent
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
Els alumnes que suspenen l'assignatura poden anar a l'examen de reavaluació ER. En aquest cas, la nota de ER substituirà la nota de l'examen final EF en la fórmula de dalt de càlcul de la nota final.