• Publicidad

Significado código

Perl aplicado a la bioinformática

Significado código

Notapor principiante » 2009-08-17 05:44 @281

Alguien me puede explicar qué significa el siguiente código:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$extracto=~s/($NUMEROS)\.\.($NUMEROS)/substr($secuencia,$1-1,$2-$1+1)/g;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


donde $extracto almacena caracteres del tipo
union(60..67,400..567,500..523)inversa(join(675..679,789..797))

y $secuencia es una cadena de DNA.

Y $NUMEROS está definida como $NUMEROS = qr/\d+/;

¿A qué se refieren las variables $1 y $2?
principiante
Perlero nuevo
Perlero nuevo
 
Mensajes: 27
Registrado: 2009-08-16 12:11 @549

Publicidad

Re: Significado código

Notapor explorer » 2009-08-17 05:59 @291

El código es mío, así que te respondo yo :)

$NUMEROS es una expresión regular. Sirve para cazar números.

Los $1 y $2 se refieren a los paréntesis que están dentro de la expresión regular. Como son así: ($NUMEROS) quiere decir que estamos capturando los números de los rangos indicados en el $extracto.

Lo que hace la línea
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$extracto=~s/($NUMEROS)\.\.($NUMEROS)/substr($secuencia,$1-1,$2-$1+1)/ge;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

es: para todo lo largo (/g) del $extracto, buscamos dos números separados por '..'. Cuando los encontremos, los sustituimos (s///) por la ejecución (/e, que te faltaba) de la instrucción substr($secuencia,$1-1,$2-$1+1), es decir, extraemos de la $secuencia de ADN los nucleótidos que corresponden al rango de números capturados antes. $1-1 se refiere a la primera posición de inicio del rango (en Perl, los índices dentro de cadenas empiezan en 0). Y $2-$1+1 se refiere a la longitud que vamos a extraer (posición final - posición inicial + 1). Posición inicial y longitud son los parámetros que necesita la función substr().

La consecuencia es que el rango de números es sustituido por la secuencia de ADN que representan.
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 3 invitados

cron