El mayor fallo que le achaco a este libro es que está muy poco actualizado desde 2001 que es de cuando data la primera edición. Al leer el texto se nota en algunas partes que haría falta alguna revisión.
Mi intención cuando lo compré era leer algo que me introdujera en la bioinformática y refrescar un poco el
, que de no usarse las cosas se oxidan.
El
que se trata en el libro es muy básico, como cabía esperar, ya que el libro está orientado para biólogos (o similares) sin apenas conocimientos de informática –aunque alguno sí: tener instalado un Unix, aunque sea MacOS X, sí se hace necesario. Apenas se profundiza en el lenguaje, pero realmente para mí tampoco era esa la intención (para eso probablemente el Programming Perl de Larry Wall, o el de Damian Conway sean más adecuados). Creo que para un biólogo sí puede ser un texto recomendable, ya que presenta una serie de ejemplos en
muy bien comentados, y desde mi punto de vista es fácil de seguir –igual que para un biólogo un texto de bioquímica también le será fácil de asimilar :).
De los trece capítulos del libro los seis primeros tratan de introducir
: expresiones regulares, variables, subrutinas, el depurador, acceso a ficheros, etc.
Además en la web del libro están todos los ejercicios resueltos, así como una librería de funciones útiles para la bioinformática (al menos para empezar, porque gran parte de esas funciones ya están en Bioperl).
Y la bioinformática: el texto sirve para introducirse un poquito en qué es lo que se hace, aunque dada mi falta de conocimientos en biología se me queda un tanto cojo. En el libro se menciona el paso de ADN a proteína. Presenta varios métodos para realizar el proceso, para que el lector se familiarice con
y que vea cómo se trabaja con expresiones regulares y conozca las hashes de
.
De ADN a proteína
Biológicamente una cadena de ADN es una secuencia de bases nucleotídicas, y bases nucleotídicas hay cinco: adenina, timina, uracilo guanina y citosina, de las cuales en el ADN están todas presentes a excepción del uracilo (que reemplaza a la timina en el ARN).
Estas secuencias en perl se representan como cadenas de caracteres, así una cadena de ADN que sea adenina, citosina y guanina se representa como
.
Cada tres bases forman lo que se llama un codón, y cada codón codifica un aminoácido. Habiendo cuatro bases y tres bases por codón, un codón podría tener hasta 64 valores diferentes (i.e. codificar 64 aminoácidos diferentes). Sin embargo, en la naturaleza sólo hay 20 aminoácidos, por lo que parte de esas secuencias no tienen significado (código degenerado), otras tienen el mismo significado (p.ej. UUU y UUC codifican la dos la fenilalanina), y otras simplemente son códigos de parada: le indican a la maquinaria celular que la cadena ha llegado al final.
En la célula quien hace las tareas son las proteínas: las proteínas son quienes componen mayoritariamente la máquina celular, las que hacen que esa maquinaria trabaje, y en definitiva son las que dirijen el cotarro. Qué proteínas se deben fabricar y cuándo es tarea de los genes: cuando un gen se expresa se inicia un proceso de transcripción que da lugar a una cadena de ARN mensajero a partir de una cadena de ADN. Ese ARN mensajero (ARNm) pasa por un proceso de traducción en los ribosomas de la célula. Los ribosomas toman codones de ARNm y por cada codón el aminoácido señalado por el codón. El ribosoma va uniendo estos aminoácidos y formando una cadena: la proteína. Posteriormente esa proteína se pliega, según condiciones de temperatura y pH se pliega de una manera o de otra, y según cómo se pliege realizará su función de una manera o de otra, o no la realizará.
En definitiva, este proceso de transcripción y traducción a efectos computacionales no deja de ser una simple sustitución de cada tres caracteres (sin solapamiento) de una cadena de ADN por su caracter correspondiente, si lo hay, que represente un aminoácido. Por ejemplo, la cadena
pasa a ser
. Las equivalencias entre codones y aminoácidos son casi universales: en todos los organismos son las mismas (la excepción la suponen las mitocondrias y algunos protistas).
Realizar esta traducción en
es trivial. En el BPfB se presentan tres métodos: uno usa hashes en plan
, los otros dos usan expresiones regulares:
El GenBank y el PDB
También toca el tema de las bases de datos que guardan información biológica: el GenBank y el Protein Data Bank, aunque sin profundizar en la interfaz de
con las bases de datos más allá de los
El GenBank es una de las bases de datos donde se almacenan genes. Hay una especificación de formato para los ficheros GenBank, y entre otros datos almacena la posición del gen, la especie a la que pertenece el gen, el ADN del gen, la transcripción de ese ADN y unas cuantas anotaciones más.
El Protein Data Bank guarda información similar pero para las proteínas: qué cadena de aminoácidos, y qué atomos y en qué posición están esos átomos. La posición de esos átomos es muy importante, así como la forma que adquiere la proteína, ya que de ello depende su función. Además determinar esta forma es computacionalmente muy costoso ya que se trata de un problema intratable (aunque en el PDB se obtiene mediante cristalografía de rayos X y resonancia magnética nuclear).
El penúltimo capítulo se dedica a BLAST. BLAST es un programa que sirve para comprobar el alineamiento de distintas secuencias de ADN, y así comprobar la similitud entre las secuencias. Hay varias versiones, hay versiones que comprueban cadenas de nucleótidos con cadenas de nucleótidos, otras cadenas de nucleótidos con aminoácidos, etc. La similitud se comprueba de manera estadística, y de hecho viene comentada en un paper del año 1990.