PERL en Bioinformática

Un amigo me ha preguntado la razón del uso predominante del lenguaje de programación PERL en el área de la bioinformática. El es fundamentalmente un biólogo dedicado a la preservación de la biodiversidad, pero está familiarizado a este punto con los bioinformáticos y el uso de sus herramientas. En definitiva hay tantos lenguages de programación poderosos y versátiles que él conoce de referencia, el hecho de que PERL es tan especial para la bioinformática, es básicamente su pregunta. Bueno, PERL es tan popular con los bioinformáticos porque es magnífico a la hora de resolver tareas bioinformáticas. Ya sé que esa es la respuesta mas trivial que se puede ofrecer por excelencia a esta pregunta, pero esto no será lo último que hablemos de PERL en este posting. Una de las cosas que hace PERL tan popular para abordar tareas biológicas está precisamente en su origen ecléctico , este lenguage proviene del lenguage de programación C y del Shell de Unix, este origen va a proveer justo la flexiblidad y las herramientas de programación necesarias para resolver problemas de contexto biológico. PERL es básicamente un lenguaje de programación tipo “scripting” que toma elementos de UNIX tales como sed, grep, awk, shell scripting y la dinámica y enfoque del lenguage de programación C. Por muchos años PERL nada tuvo que ver con biología, este lenguaje fué usado fundamentalmente por Administradores de Sistemas Unix para resolver tareas administrativas y posteriormente fue usado para crear CGI “scripts” en aplicaciones web. Solo mucho después PERL se convertiría en la mejor herramienta de programación que la Bioinformática podría contar en su arsenal. Que hace que sea PERL tan especial para la biología computacional? Podría citar algunas razones que hace PERL un magnifico lenguaje de programación. Entre ellas, PERL es portable, al ser un “script”, este “script” va a correr en cualquier plataforma sin cambio o con pequeños cambios. PERL es también flexible, o sea que hay diferentes modos de lograr un mismo propósito y eso ayuda a cualquier programador independientemente de su experiencia. Como lenguaje de programación PERL es relativamente fácil de aprender y eso es algo a apreciar por cualquiera. No creo que ninguna de las razones citadas anteriormente explican el uso predominante de PERL en al ambito biológico, hay solo una particularidad de PERL que solo explica su éxito y uso extendido en la bioinformática.  Esta particularidad es que Perl es un lenguaje orientado y diseñado a la manipulación y presentación de cadenas de caracteres, esta manipulación es simplificada por el importante número de operadores a disposición del usuario que básicamente provienen del Shell de UNIX. El ADN, ARN y demás moléculas biológicas también pueden ser reducidas a cadenas de caracteres en sus componentes fundamentales, caracteres comos A, C, G, T, U que equivalen a elementos constitutivos y  distintivos tales como bases nitrogenadas. Estas secuencias de caracteres que caracterizan a las moléculas les proporcionan su identidad y unicidad. Estamos en presencia de una combinación perfecta, un lenguaje de programación insuperable en la manipulación y presentación de cadenas de caracteres y un paradigma biológico molecular que puede ser reducido también en ultima instancia a simples cadenas de caracteres. Esta es la razón por la cual PERL predomina en el campo de la bioinformática.

Por ejemplo, este simple “script” , convierte una secuencia de ADN contenido en un archivo de entrada a una secuencia de ARN. Es evidente lo simple de este programa para abordar esta tarea relativamente trivial.

# Este script convierte la secuencia de ADN  a secuencia de ARN 

# Mientras ejecuta este script el pregunta por el nombre del archivo de la secuencia de ADN. Si el archivo de  la secuencia no esta disponible en el mismo directorio del script, entre el nombre del archivo conjuntamente con el path: /home/user/sequence/dnafile.txt

print “\n\n\t\#################### DNA 2 RNA #################### \n\n”;
print “Este script convierte tu secuencia de ADN en una secuencia de ARN\n\n”;
print “Entre el nombre del archivo de la secuencia de ADN:= “;
$dnafilename = <STDIN>;
chomp $dnafilename;
unless ( open(DNAFILE, $dnafilename) ) {
    print “No puede abrir archivo \”$dnafilename\”\n\n”;
    goto h;
}
@DNA = <DNAFILE>;
close DNAFILE;
$DNA = join( ”, @DNA);
print “La secuencia original de ADN :=\n\n”;
$DNA =~ s/\s//g;
print “$DNA\n\n”;
$RNA = $DNA;
$RNA =~ s/T/U/g;
$RNA =~ s/t/u/g;
print “Convertiendo de ADN a ARN :=\n\n”;
print “$RNA\n”;
<STDIN>;

3 Responses to PERL en Bioinformática

  1. Humberto Moreno says:

    Rubén,
    Mencionar también que las últimas versiones de PERL son object oriented. Esto también le añade más versatilidad al lenguaje.
    Personalmente nunca he usado PERL porque no me he visto nunca involucrado en ningún proyecto donde lo haya necesitado, pero sí conozco algunos colegas que son fans de PERL y que lo han usado por años.

    Saludos.

    • Ruben Antonio Fernández says:

      Si, si, ese es mi proximo posting, Bioperl produce todo el codigo de clases que representa instancias biologicas. PERL de por si solo es Object Oriented , pero C++ y otros lenguajes tambien lo son, solo PERL tiene un repositorio de clases y tambien algoritmos para problematica biologica. En Bioperl puedes encontrar todo lo necesario para simplificar tu vida , si eres un bioinformatico, algo que no soy, soy un biologo computacional, o sea el uso de matematica y estadisticas en esta area. Recuerdo el STL de C++ que me ensenaron en el curso numero 3 de C++, que simple hacia las cosas , el proximo posting es Bioperl, ya estuve en la noche trabajando en el.

    • Ruben Antonio Fernández says:

      Quiero introducir CPAN antes que Bioperl, no se pero me parece, que esa deba ser la sequencia apropiada, sabes que cuando estaba haciendo el Phd me vi en la situacion absurda de presentar Bioperl a un grupo de experimentados programadores de PERL de la universidad, El Migue se recuerda de mi angustia, en 3 semanas tuve que leer 2 libros, por supuesto los resultados no fueron muy brillantes que digamos

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: