Vés al contingut

Programació Aplicada III

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

Altres

Hores setmanals

Teoria
2
Problemes
2
Laboratori
0
Aprenentatge dirigit
0
Aprenentatge autònom
6

Competències

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àsic

    Complementari

    Capacitats prèvies

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