La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Manejo de archivos en Perl

Presentaciones similares


Presentación del tema: "Manejo de archivos en Perl"— Transcripción de la presentación:

1 Manejo de archivos en Perl

2 Tipos de archivo: Archivos de texto es una secuencia de líneas de caracteres, cada línea de caracteres es separada por marcas de fin de línea, los caracteres son todos aquellos que están incluidos en el código ASCII. Archivo binario codificada en forma binaria para el propósitos de almacenamiento

3 Acceso a archivos en Perl.
Para que Perl pueda manipular un archivo utiliza lo que es denominado "filehandle”, “manejador” ó “file descriptor", este "filehandle" es una referencia hacia el archivo en cuestión. Programa en PERL Archivo de DATOS S.O.

4 Formas de acceder a archivos:
Escritura Agregar Lectura

5 Sintaxis apertura de archivos:
open(MANEJADOR, "modo de acceso + nombre de archivo"); El manejador es el nombre de la conexión entre el programa En Perl y el exterior. Cuando necesitemos acceder al exterior lo haremos a través del manejador dentro del programa. > Permite crear un archivo nuevo e insertar datos >> Permite abrir un archivo para anexar datos. < Permite abrir un archivo para lectura (predeterminado si no utilizamos modo de acceso)

6 Ejemplos apertura de archivos
Apertura para crear archivo: Open(ARCHIVO, ”> resultados.txt"); Apertura para leer archivo: Open(ARCHIVO, ”<resultados.txt"); Open(ARCHIVO, ”resultados.txt"); Para anexar datos: Open(ARCHIVO, ”>>resultados.txt");

7 Ejemplo para crear un archivo nuevo llamado
llamado datos.dat : open(ARCH, ”>datos.dat"); Si existe un archivo con el mismo nombre en el directorio donde se va a crear el archivo, el contenido de ese archivo se borrara y no será posible su recuperación.

8 open(ARCH, ”>datos.dat");
Sintaxis para agregar datos : print MANEJADOR “ texto a agregar al archivo”; Ejemplo: print ARCH“agregando linea \n”; ARCH

9 Al final de la utilización el archivo se cierra
mediante el operador close. Sintaxis: close (MANEJADOR); Ejemplo completo: #!/usr/bin/perl #ejem-4-01.pl open (ARCH,">datos.dat"); print "Ejemplo de escritura en archivo\n"; print ARCH "Esta es la primera linea agregada al archivo \n"; print ARCH "Esta es la primera segunda agregada archivo \n"; close (ARCH);

10 Ejemplo para leer el archivo recien creado llamado datos.dat :
open(ARCH, ”<datos.dat"); open(ARCH, ”datos.dat"); ARCH Una vez iniciado el archivo mediante la rutina open, el “manejador” de archivos permite acceder a los datos mediante el operador <>. Sintaxis: <MANEJADOR>; $linea_leida=<ARCH>;

11 Ejemplo completo: #!/usr/bin/perl #ejem-4-02.pl
open (ARCH,"datos.dat"); print "Ejemplo de lectura de archivos\n"; $linea=<ARCH>; print "LINEA 1 : $linea \n"; print "LINEA 2: $linea \n"; close (ARCH);

12 Ejemplo para agregar datos a un archivo
existente creado anteriormente datos.dat : open(ARCH, ”>>datos.dat"); Agregar

13 Ejemplo completo: #!/usr/bin/perl #ejem-4-03.pl
open (ARCH,">>datos.dat"); print "Ejemplo agregando datos a un en archivo\n"; print ARCH "Vamos a agregar una lina mas \n"; print ARCH "Agregamos otra y cerramos el archivo \n"; close (ARCH);

14 ¿Que pasa si el archivo no existe?
!/usr/bin/perl #ejem-4-02.pl open (ARCH,"datos1.dat"); print "Ejemplo de lectura de archivos\n"; $linea=<ARCH>; print "Primera linea leida : $linea \n"; print "Segunda linea leida : $linea \n"; close (ARCH);

15 Operadores de Archivo:
estos operadores se emplean para verificar en el sistema operativo los permisos de un archivo, o su naturaleza de ejecución, etc. A continuación se muestra los diferentes operadores: -r : indica si el archivo tiene permiso de lectura. -W : indica si el archivo tiene permiso de escritura. -T : indica si el archivo es de tipo texto. -e : indica si el archivo existe. -z : indica si el archivo tiene tamaño 0. -s : indica si el archivo es mayor que 0. -f : indica si el archivo es plano. -d : indica si se trata de un directorio. -M : indica el número dias después de la última modificación -B : indica si el archivo es binario. -t : indica si el archivo esta abierto en un terminal.

16 Ejemplo de apertura de archivo usando operadores:
#!/usr/bin/perl #ejem-4-04.pl $nom_arch="datos.dat"; if (-e "$nom_arch"){ open (ARCH,$nom_arch); print "Ejemplo de lectura de archivos\n"; $linea=<ARCH>; print "LINEA 1 : $linea \n"; print "LINEA 2: $linea \n"; close (ARCH); }else{ print "No existe el archivo $nom_arch\n"; }

17 Ejemplo de apertura de archivo usando operadores:
#!/usr/bin/perl #ejem-4-05.pl $nom_arch="datos.dat"; if (-e "$nom_arch"){ if (-r $nom_arch){ open (ARCH,$nom_arch); print "Ejemplo de lectura de archivos\n"; $linea=<ARCH>; print "LINEA 1 : $linea \n"; print "LINEA 2: $linea \n"; close (ARCH); }else{ print "El archivo $nom_arch si existe pero no tiene permisos de lectura \n"; }#fin if print "No existe el archivo \n"; }#fin otro if

18 die Toma como argumento una cadena y sale
Otra forma común de terminar un programa al producirse un error al abrir el archivo es mediante la función die, die Toma como argumento una cadena y sale inmediatamente del programa viendo esta cadena como mensaje de error. Ejemplo para salir del programa enviando Un mensaje de error se utilizaría como sigue : open(ARCH, ”>datos.dat")||die “no puedo abrir archivo”;

19 Ejemplo de apertura de archivo utilizando die:
#!/usr/bin/perl #ejem-4-06.pl open (ARCH,"datos.dat")||die "no puedo abrir archivo datos.dat"; print "Ejemplo de lectura de archivos\n"; $linea=<ARCH>; print "LINEA 1 : $linea \n"; print "LINEA 2: $linea \n"; close (ARCH);

20 Lectura secuencial de un archivo mediante la
estructura de control while: #!/usr/bin/perl #ejem-4-07.pl $nom_arch="datos.dat"; open (ARCH,"$nom_arch")||die "No puedo abrir archivo $nom_arch\n"; print "Ejemplo de lectura de archivos\n"; while($linea=<ARCH>){ chomp $linea; print "LINEA : $linea \n"; } close (ARCH);

21 Lectura secuencial de un archivo mediante la
estructura de control foreach: #!/usr/bin/perl #ejem-4-08.pl $nom_arch="datos.dat"; open (ARCH,"$nom_arch")||die "No puedo abrir archivo $nom_arch\n"; @lista=<ARCH>; print "Ejemplo de lectura de archivos\n\n"; print "Primero imprimimos lista completa\n"; print print "\nAhora recorremos la lista \n\n"; foreach $linea chomp $linea; print "LINEA : $linea \n"; } close (ARCH);

22 Este es un archivo de texto solo Utilizado para Demostrar como
$linea=<ARCH>; Este es un archivo de texto solo Utilizado para Demostrar como Funciona de mal El power point De micosoft Valor de $linea

23 Este es un archivo de texto solo Utilizado para Demostrar como
$linea=<ARCH>; Este es un archivo de texto solo Utilizado para Demostrar como Funciona de mal El pouer point De micosoft Valor de $linea “Este es un archivo”

24 Este es un archivo de texto solo Utilizado para Demostrar como
$linea=<ARCH>; Este es un archivo de texto solo Utilizado para Demostrar como Funciona de mal El pouer point De micosoft Valor de $linea “de texto solo”

25 Este es un archivo de texto solo Utilizado para Demostrar como
$linea=<ARCH>; Este es un archivo de texto solo Utilizado para Demostrar como Funciona de mal El pouer point De micosoft Valor de $linea “Utilizado para”

26 Este es un archivo de texto solo Utilizado para Demostrar como
$linea=<ARCH>; Este es un archivo de texto solo Utilizado para Demostrar como Funciona de mal El pouer point De micosoft Valor de $linea “Demostrar como”

27 Este es un archivo de texto solo Utilizado para Demostrar como
$linea=<ARCH>; Este es un archivo de texto solo Utilizado para Demostrar como Funciona de mal El pouer point De micosoft Valor de $linea “Funciona de mal”

28 Este es un archivo de texto solo Utilizado para Demostrar como
$linea=<ARCH>; Este es un archivo de texto solo Utilizado para Demostrar como Funciona de mal El pouer point De micosoft Valor de $linea “El pouer point”

29 Este es un archivo de texto solo Utilizado para Demostrar como
$linea=<ARCH>; Este es un archivo de texto solo Utilizado para Demostrar como Funciona de mal El pouer point De micosoft Valor de $linea “De micosoft”

30 Ejercicio 1: Leer 10 nombres del teclado y grabarlos en un archivo de texto. Ejercicio 2: Leer el archivo de texto generado anteriormente Ejercicio 3: Leer 5 nombres del teclado y anexarlos al archivo generado anteriormente.

31 # Abrir una consola y ejecutar los siguientes comandos:
* ftp * open ftp.ncbi.nih.gov # Como login, usar "anonymous" # Como password, usar su direccion de correo # Entraremos en el directrio raiz del servidor FTP del NCBI. # Seguimos ejecutando comandos: * ls (para hacer un listado) * cd genomes * cd Bacteria * ls * get README (para bajarnos un fichero con información sobre el directorio) * cd Nombre_bacteria_descargar # Aparecen varios ficheros, cuyos nombres contienen el número de acceso del genoma NC_000???. * get NC_000???.gbk (para bajarse la entrada completa en formato GenBank). * get NC_000???.fna (para bajarse la secuencia en formato FASTA). * get NC_000???.ptt (para bajarse una tabla con las coordenadas de todas las ORFs, la Protein Translation Table). * get NC_000???.faa (para bajarse un fichero con la traducción de todas las ORFs, en formato FASTA). # bye (para cerrar la conexion) # Los ficheros que nos hemos bajado debieran estar en nuestro directorio personal y estar en formato texto

32 Mediante un navegador, en la barra de direcciones
colocar la direccion del servidor de ftp de NCBI : ftp://ftp.ncbi.nih.gov Ingresar en ->genomas ->Bacteria ->Escherichia_coli_K12 Descargar : NC_ faa (Genes traducidos) NC_ gbk (Genoma con anotaciones)

33 Ejemplo extraer la secuencia de nucleótidos Del genoma de Ecoli_k12:
#!/usr/bin/perl #ejem-4-09.pl open (ARCH,"Ecoli_k12.gbk")||die "No puedo abrir archivo \n"; open (ARCHSAL,">Ecoli_k12.genoma")||die "No puedo generar Ecoli_k12.genoma\n"; $bandera=0; while ($linea=<ARCH>){ if($linea =~ "ORIGIN"){ $bandera=1; } if($bandera==1){ print "$linea"; print ARCHSAL "$linea"; close (ARCH); close (ARCHSAL)

34 Ejercicio : Modificar el programa anterior para que extraiga en una sola cadena el genoma completo de E_coli_k12

35 Ejemplo extraer la secuencia de nucleótidos Del genoma de Ecoli_k12:
#eje_4_09-2.pl open (ARCH,"Ecoli_k12.gbk")||die "No puedo abrir archivo \n"; open (ARCHSAL,">Ecoli_k12.genoma")||die "No puedo generar Ecoli_k12.genoma\n"; $bandera=0; while ($linea=<ARCH>){ if($linea =~ "ORIGIN"){ $bandera=1; } if($bandera==1){ print "$linea"; @arr=split (/\s+/,$linea); print if (!($linea =~ "ORIGIN")){ print ARCHSAL "$arr[2]$arr[3]$arr[4]$arr[5]$arr[6]$arr[7]"; close (ARCH);

36 Ejemplo leer un archivo en formato fasta, obtener
Contenido de GCs de cada secuencia: Un archivo en formato fasta consiste en líneas que inician con el símbolo “>” seguidas por la descripción de la secuencia, las siguientes líneas contienen la secuencia de nucleótidos o aminoácidos, así sucesivamente con las siguientes descripciones y secuencias. Un ejemplo de formato fasta seria: >Nombre de la secuencia Gcgagcgcgccgaggtgtgcacgcatgtagcatgctagctgtcgagagcactgacgtacgtacgtag Ccggccgagatcaggcgatgcatgcgcagggagcagcgagcgacgagcacagcatgctagctagat gcatgctacgtaggcagccgccgagagacgatggagctgc

37 Ejemplo : Del archivo fasta del genoma de
Ecoli_k12 que contiene los genes traducidos, extraer la descripción de los genes. #!/usr/bin/perl #ejem-4-10.pl open (ARCH,"Ecoli_k12.faa")||die "No puedo abrir archivo Ecoli_k12.faa\n"; while ($linea=<ARCH>){ if($linea =~ ">"){ print "$linea"; } close (ARCH); print "Total de genes $cont \n";

38 Ejercicio para desarrollar en clase:
Modifique el ejemplo anterior para que se impriman todos los genes con función hipotética (predicted ), cuente en total cuantos son.

39 #!/usr/bin/perl #ejem pl open (ARCH,"Ecoli_k12.faa")||die "No puedo abrir archivo Ecoli_k12.faa\n"; while ($linea=<ARCH>){ if(($linea =~ ">")&&($linea =~ "predicted")){ print "$linea"; } close (ARCH); print "Total de genes $cont \n";

40 Mediante el uso del programa blastn, se realizó
la busqueda de la secuencia del gen nagB (Glucosa-6-fosfato-deaminasa) el resultado se presenta en el archivo anexo; obtener las 5 proteínas con evalue mas alto (las 5 mas parecidas).

41 #ejem-4-12.pl $nomarch="blastnnagb.txt"; open(ARCH,"$nomarch")||die "No puedo abrir archivo $nomarch\n"; $flag=0; $cont=0; while($linea=<ARCH>){ if($linea =~ "Sequences producing significant alignments:"){ $flag=1; $linea=<ARCH>; } if ( ($flag==1)and (cont<=5)){ push $cont++; if($cont==5){ close (ARCH); print "Los elementos con evalue mas altos son:\n"; foreach $elemento print "$elemento ";

42 Tarea Desarrolle un programa que del archivo fasta
del genoma de Ecoli_k12 obtenga el total de aminoácidos por gen, y guarde en otro archivo el gi (identificador del gen) , total de aminoácidos, así como también calcule el promedio de aminoácidos por gen del genoma completo.

43

44

45 #!/usr/bin/perl #ejem-4-12.pl $nomarch="blastnnagb.txt"; open(ARCH,"$nomarch")||die "No puedo abrir archivo $nomarch\n"; $flag=0; $cont=0; while($linea=<ARCH>){ if($linea =~ "Sequences producing significant alignments:"){ $flag=1; $linea=<ARCH>; } if ( ($flag==1)and (cont<=5)){ push $cont++; if($cont==5){ close (ARCH); print "Los elementos con evalue mas altos son:\n"; foreach $elemento print "$elemento ";

46 Ejercicio acerca del blast 1:
Modificar el ejemplo anterior para obtener las Proteínas mas parecidas que no pertenezcan al genoma de Ecoli Ejercicio acerca del blast 2: Modificar el ejemplo anterior para obtener las proteínas con un evalue entre 6e-74 y 2e-42 que no Pertenezcan al genoma de Ecoli


Descargar ppt "Manejo de archivos en Perl"

Presentaciones similares


Anuncios Google