• Publicidad

bioinfo: Vectores de sufijos para buscar patrones

Perl aplicado a la bioinformática

bioinfo: Vectores de sufijos para buscar patrones

Notapor explorer » 2011-03-24 15:54 @704

«hemos aprendido las ventajas de usar vectores de sufijos (suffix arrays) para el problema de buscar patrones o subcadenas exactas en textos muy largos, como son las secuencias genómicas. Pero, ¿qué es un vector de sufijos? Trataré de explicarlo con el siguiente código en Perl:»

Artículo
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Re: bioinfo: Vectores de sufijos para buscar patrones

Notapor explorer » 2011-03-24 20:15 @885

Creo entender que el autor ha querido expresar en Perl un algoritmo de búsqueda para mostrarlo y entenderlo mejor, pero supongo que no es de aplicación en el mundo real, sino hacerlo con otros lenguajes que generen una solución compilada.

Perl es muy lento realizando esa tarea: haciendo un Bechmark, me sale que es de 20 a 30 veces más lento que usando index() (o rindex()).

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. sub match_pattern {
  2.     my($pat,$seq) = @_;
  3.     my $pos = -1;
  4.     while (-1 != ($pos = index $seq, $pat, ++$pos)) {  # buscamos $pat en $seq a partir de la siguiente posición a $pos
  5.         say "Encontrado en posición $pos";
  6.     }
  7. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Y esa ventaja es con el tamaño de la secuencia del ejemplo. Si el tamaño de la secuencia aumenta, mucho más aumenta la diferencia, a causa del tiempo empleado en la ordenación.

Se podría aumentar la prestación de make_suffix_array() usando alguna maniobra Orcish para evitar la ejecución de demasiadas funciones substr().

De todas formas, se agradece muchísimo mostrar algoritmos en código Perl, pues de todos ellos aprendemos bastante.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Bioinformática

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado