Practica 2 informatica (2015)

Apunte Español
Universidad Universidad Autónoma de Barcelona (UAB)
Grado Genética - 2º curso
Asignatura Técnicas instrumentales
Año del apunte 2015
Páginas 10
Fecha de subida 22/03/2015
Descargas 27

Vista previa del texto

LAB IV. TI PRACTICA 2 ACTIVITAT 1  ESCALARS Activitat 1.1: Crea un programa perquè emmagatzemi la seqüència de DNA que hi ha a continuació en una variable. Seqüència de DNA: ATGAAATTCTTCCTGCTGCTTTCCCTCATTGGATTCTGCTGGGCCCAATAGCTATAGT $seq1="ATGAAATTCTTCCTGCTGCTTTCCCTCATTGGATTCTGCTGGGCCCAATAGCTATAGT"; Activitat 1.2: Guarda les dues seqüències de DNA següents en dues variables escalars i escriu-les a la pantalla. A continuació, crea una tercera variable que contingui les dues primeres concatenades. Escriu també el resultat. Recorda que l'operador "." ens serveix per a concatenar cadenes.Primera seqüència de DNA: ATGAAATTCTTCCTGCTGCTTTCCCTCATTGGATTCTGCTGGGCCCAATAGCTATAGT Segona seqüència de DNA: AAAGTCTATGTTGGCAATGATGGCAAAGCTCACTTTTCTAAATTGCTAGTAGTCAGTA Activitat 1.3: Calcula la longitud de les cadenes anteriors. Per calcular la longitud d'una variable es pot fer servir la funció length. Comprova que has generat correctament la cadena concatenada utilitzant els operadors aritmètics, és a dir, sumant la longitud de les dues seqüències de DNA proporcionades prèviament. 116 és la suma dels dos.
LAB IV. TI PRACTICA 2  MATRIUS Activitat 2.1: Declara una matriu de quatre elements: A, C, G, T i accedeix a cadascun dels seus elements per separat, fent que l'output sigui: Primer element: A ; Segon element: C ; Tercer element: G ; Quart element: T Compta el número d’elements de la matriu i guarda el valor a una variable. Com has comptat el número d’elements? De les diferents opcions que hi ha, totes ens donen el mateix resultat? 4. Si es fa amb lenght només surt 1, donat que compte el número total de posicions.
LAB IV. TI PRACTICA 2 Activitat 2.2 (TEORIA): Un cop assignats els valors dins d'una matriu aquests poden ser modificats. Associa cadascuna d'aquestes funcions a l'acció que realitzen.
1.- Notació especial per conèixer l'últim índex de la matriu. $# 2.- Afegeix un element a l’inici de la matriu. unshift 3.- Afegeix un element al final de la matriu Push 4.- Treu el primer element de la matriu. S'assigna a una variable escalar si s’indica. shift 5.- Treure l'últim element de la matriu. S'assigna a una variable escalar si s’indica. pop 6.- Inverteix l'ordre dels elements de la matriu. reverse  MATRIUS ASSOCIATIVES Activitat 3.1: Declara un hash de purines i un altre de pirimidines. Donada una base determinada, imprimeix el seu valor associat.
ACTIVITAT 2  ENTRADA DES DEL TECLAT Activitat 1.1: Crea un programa que mostri els 2 primers paràmetres que es passin a l’hora d’executar el programa. Fes diverses proves a l’hora d’executar-lo.
LAB IV. TI PRACTICA 2 Activitat 1.2: Crea un programa que demani el nom d’un gen. Una vegada l’usuari hagi introduït el nom del gen, el programa l’ha de mostrar.
 LECTURA I ESCRIPTURA D’ARXIUS Activitat 2.1: Descarrega’t l’arxiu amb la seqüència del gen Hs6st de Drosophila melanogaster. Obre el fitxer i guarda'l en una variable. Imprimeix el contingut de la variable per pantalla. Què conté la variable escalar? Si el guardem en una variable, serà en una matriu. Si després poséssim una variable escalar amb la posició, sortiria la línia que correspongués a l’element guardat.
De fet, si ho guardéssim de primeres en una escalar sortiria el següent: Per tant, a nosaltres en interessa això: LAB IV. TI PRACTICA 2 Activitat 2.2: Obre l'arxiu anterior i guarda el seu contingut en un matriu. (No ho facis a continuació de l’activitat anterior). Què conté cada posició de la matriu? Cada posició de la matriu conté una línia del document, que en aquest cas són seqüències de DNA. Com es veu en el requadre, mostrem la posició 1.
ACTIVITAT 3 (ENTREGA) Activitat 3.1:  Obre el fitxer original de la seqüència del gen Hs6st i guarda el contingut en una matriu.
open (F2, "hs6st.fasta") or die "error"; print F2 "archivo\n"; @DNA= <F2>; print "@DNA es la matriz \n"; close (F2); Com es pot veure, el fet de posar "or die" ens indica que, en el cas que no es trobi l'arxiu, sigui indicar amb el terme "error".
Així mateix, la matriu @DNA guardarà el contingut de dit arxiu, gràcies a l'equivalència del seu FILEHANDLE.
Per últim, tanquem el programa un cop guardat per tal de no impedir possibles modificacions, així com consumir recursos innecessaris.
Aquí s’ha fet amb shift.
LAB IV. TI PRACTICA 2  Elimina la primera posició de la matriu, però guarda’t el seu contingut.
$primera_posicio=$DNA[0]; print "$primera_posicio\n\n"; shift @DNA; print "@DNA li hem tret posicio 0\n"; Per guardar el contingut, creem una variable escalar amb l'element 0, el qual correspon a la primera posició en el cas de documents FASTA recordem que seran noms o indicadors del que hi ha, (s'indica amb > al principi de la línia de comanda que és d'aquest tipus).A continuació, amb la funció shift realitzem la segona part de l'apartat.
 Transforma la resta de la matriu a una variable escalar sense cap tipus de connectors entre posicions. (Pots eliminar tots els salt de línia alhora executant la funció chomp sobre la matriu).
chomp @DNA; $escalarDNA=join ('', @DNA); print "$escalarDNA es la matriu convertida en escalar\n"; En definitiva, amb la funció join transformen una matriu en una variable escalar.
Després de fer chomp, es guarda en una varibale escalar, com es pot veure a continuació.
LAB IV. TI PRACTICA 2  Crea un hash on la clau (key) sigui el nom del gen i el valor (value) sigui la seqüència.
Imprimeix el valor en un nou arxiu.
%hashDNA = ('hs6st' => $escalarDNA); open (F,'>seqgen.txt') or die "ERROR"; open (F,'>>seqgen.txt') or die "ERROR"; print F "$hashDNA{hs6st}"; Per posar la seqüència com a valor, definitivament usarem la variable escalar abans emprada.
Així mateix, cal recordar que amb > dins de la funció open es permet crear arxius, mentre que >> indica que, a més, es poden modificar.
LAB IV. TI PRACTICA 2 Activitat 3.2  opcional  Obre el fitxer obtingut a l’activitat 3.1 i guarda el contingut en una matriu.
Com en el cas anterior: open (F, 'seqgen.txt') or die "error al obrir"; @secuencia= <F>; close(F); print "@secuencia \n";  Comprova si s’ha omplert més d’un element.
Una de les maneres de comprovar-ho és mitjançant una variable escalar a la qual se li ha assignat la matriu. Això es degut a que es dita escalar mostrà el número de posicions (1 dada). Així doncs: $sec= @secuencia; print "$sec \n"; LAB IV. TI PRACTICA 2  Transforma el primer element en una nova matriu fent que cada nucleòtid sigui un element de la matriu.
Per fer-ho, s'usa l'acció contrària a join, split.
@nucleotido= split ('', $secuencia[0]); print "@nucleotido \n";  Imprimeix els tres primers nucleòtids de la seqüència.
Seguint amb la matriu anterior: print "$nucleotido[0], $nucleotido[1] i $nucleotido[2] son els tres primers elements\n "; LAB IV. TI PRACTICA 2  Genera una variable escalar on cada nucleòtid estigui separat per un espai.
$gen2= join (' ', @nucleotido); print "$gen2 \n"; Simplement, on indica connectors (''), situem entremig de les comes simples un espaiador.
...