13 de mayo de 2015

Curso de Python para biólogos - Lección 7. Lectura y escritura de archivos

Con Python podemos leer, crear y modificar archivos de texto. Por ejemplo podemos leer un fichero con miles/millones de secuencias de DNA y extraer información del mismo, lo cual sería muy complicado de forma manual. Se verá un ejemplo al final de la lección.

Trabajando con directorios

Antes de empezar a crear y leer archivos, vamos a consultar el directorio de trabajo por defecto de Python con el comando 'os.getcwd', crear un nuevo directorio para trabajar en esta lección con 'os.makedirs' y cambiar el directorio de trabajo por este nuevo directorio ('os.chdir'). Para realizar todo ello primero tenemos que importar el módulo 'import os' (Operating System) que nos proporcionará los métodos mencionados. Un módulo es una extensión de Python y se debe importar para poder trabajar con sus herramientas.

Creación de archivos

Una vez que estamos en el directorio de trabajo deseado, vamos a crear un archivo llamado 'example.txt', para ello usaremos la función 'open' con la opción 'w' que indica escritura (write). El nuevo archivo será un objeto guardado en la variable 'f' y con el método 'write' podremos insertar un texto en el mismo. No debemos olvidar cerrar siempre el archivo después de leer o modificar sus contenidos con el método 'close'. Si abrimos el archivo con nuestro explorador de archivos, veremos el texto que contiene.

Usando un bucle 'for' podemos insertar automáticamente múltiples líneas de texto:

Lectura de archivos

Para leer un archivo, primero debemos abrirlo con la función 'open' y la opción 'r' que indica lectura (read). El método 'read' leerá todo el archivo de una vez si no se especifica ningún argumento. Importante, después de leerlo debemos cerrarlo con la función close.

Una  forma más adecuada de leer un fichero puede ser línea a línea con un bucle 'for', cada línea será almacenada en la variable 'line' en cada iteración.

Existen varias formas alternativas de leer los ficheros, entre ellas los métodos 'read' y 'readline', ambos aceptan especificar el número de caracteres que serán leídos. En próximas lecturas, Python continuará en la posición que terminó la anterior.

Ejercicio. Contar el número de genes codificantes que tiene el genoma de Escherichia coli

Para ello, primero descargaremos el fichero del proteoma de E. coli del siguiente enlace. Después, copiaremos el fichero descargado a nuestro directorio de trabajo. Y por último escribiremos un código en Python que cuente el número de veces que aparece el símbolo '>' al comienzo de una línea, dicho símbolo indica el comienzo de una proteína.

Si hemos hecho todo bien, el número de genes debería ser '4140', o similar (las nuevas versiones del genoma pueden variar ligeramente dicho número). Podemos confirmarlo en la web de KEGG.

Próxima lección

 En la próxima lección se hará una introducción a las expresiones regulares.

3 comentarios:

  1. Cuando tenga tiempo en las próximas semanas intentaré añadir las lecciones finales ;)

    ResponderEliminar
    Respuestas
    1. Muchas gracias! Anteriormente había utilizado MatLAB (Octave es la versión libre) para cosas así, lo más básico. Al principio me costó cogerle el truco, porque uno puede tener la planificación pero a la hora de programarla es diferente. Siempre viene bien aprender cosas nueves!

      Eliminar