Programació Aplicada III

Esteu aquí

Crèdits
6
Tipus
Obligatòria
Requisits
Aquesta assignatura no té requisits, però té capacitats prèvies
Departament
CS;UAB
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

  1. Entendre com construir un programa i utilitzar eines addicionals per resoldre problemes que utilitzen dades bioinformàtiques.
    Competències relacionades: K3, K4, S7, C6,
  2. 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,
  3. 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,
  4. 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,
  5. 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

  1. Introducció
    Conceptes bàsics de Python, control de flux, funcions, llistes, diccionaris i dades estructurades
  2. 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.
  3. Iteradors, "Comprehensions" i Generadors
    Iteradors i "comprehensions" sobre col·leccions. Principis i funcionament de Generadors.
  4. Cerca de patrons i expressions regulars
    Cercar patrons. Trobar patrons amb expressions regulars. Creació i associació d'objectes regex.
  5. Fitxers i gestió d'excepcions
    Operacions bàsiques amb fitxers. Gestió d'excepcions. Dades genòmiques i formats de fitxers habituals en Bioinformàtica.
  6. Decoradors i principis de programació funcional
    Definició i ús de decoradors. Ús de funcions especials: map, filter, reduce, lambdas, zip, unzip, logging
  7. 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.
  8. 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.
  9. Anàlisi de dades avançat
    Numpy, Pandas, Matplotlib

Activitats

Activitat Acte avaluatiu


Introducció

Resolució de problemes amb Python
Objectius: 1 2
Continguts:
Teoria
2h
Problemes
2h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

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: 1 2 3
Continguts:
Teoria
2h
Problemes
2h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Cerca de patrons i expressions regulars

Trobar patrons de text sense expressions regulars. Trobar patrons amb expressions regulars. Ús d'objectes d'expressió regular a Python.
Objectius: 2 3 4
Continguts:
Teoria
4h
Problemes
4h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h

Fitxers i gestió d'excepcions

Treball amb fitxers usant diferents formats que contenen informació habitual en bioinformàtica
Objectius: 1 2 3
Continguts:
Teoria
2h
Problemes
2h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Decoradors i principis de programació funcional

Treball amb conceptes relacionats amb programació funcional
Objectius: 1 2 3
Continguts:
Teoria
2h
Problemes
2h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
6h

Alineament de seqüències: definicions i mètodes bàsics

Treball amb algorismes bàsics per resoldre el problema d'alineament de seqüències
Objectius: 1 2 4 5
Continguts:
Teoria
4h
Problemes
4h
Laboratori
0h
Aprenentatge dirigit
0h
Aprenentatge autònom
12h

Iteradors, "Comprehensions" i Generadors

Ús d'iteradors, "comprehensions" i generadors
Objectius: 1 2 3 5
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: 1 3 5
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: 1 2 3 5
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.

Bibliografia

Bàsica:

Complementaria:

Capacitats prèvies

Programació Aplicada I
Programació Aplicada II
Introducció a la Bioinformàtica