• Publicidad

Búsqueda negada de secuencias de aminoácidos

Perl aplicado a la bioinformática

Búsqueda negada de secuencias de aminoácidos

Notapor manuel3180 » 2012-02-27 11:37 @525

Estimados,

Estoy analizando alrededor de 3500 proteínas y me doy con la sorpresa de que algunas proteínas empiezan con otro AMINOÁCIDO (verde) que no es METIONINA (rojo), por ejemplo:

>gen_1
MEDGFGGLDLGK0VERVVERVMVEVVMFIG......

>gen_2
GVBFPDBFBDFBMFDOBDFBBDFBFB......

Entonces, para analizar las que no comienzan con M, traté de modificar algunos scripts en Perl, que se encargan de extraer secuencias, pero sin éxito. Os agradecería que me des una mano en este problema, como verás no tengo 10 secuencias sino 3500 y hacerlas a mano es un gran problema.

Muchas gracias de antemano

Saludos,

Manuel3180
manuel3180
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2011-11-27 23:43 @030

Publicidad

Re: Búsqueda negada de secuencias de aminoácidos

Notapor explorer » 2012-02-27 15:44 @697

Con una expresión regular como /^[^M]/ puedes encontrar las secuencias que comienzan (^) por algo que no es 'M' ([^M]) .

También se puede hacer negando todo el patrón:

$seq !~ /^M/
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Búsqueda negada de secuencias de aminoácidos

Notapor manuel3180 » 2012-02-28 10:05 @461

Estimado explorer:

¿Podrías explicarme la respuesta con el script en cuestión? A manera de entender mejor los comandos que se toman en un script escrito en Perl.

Muchas gracias.

Saludos.
manuel3180
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2011-11-27 23:43 @030

Re: Búsqueda negada de secuencias de aminoácidos

Notapor explorer » 2012-02-28 10:51 @494

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. if ($seq !~ /^M/) {
  2.     print "La secuencia no comienza por 'M'\n";
  3. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Búsqueda negada de secuencias de aminoácidos

Notapor manuel3180 » 2012-02-28 10:54 @496

Muchas gracias
manuel3180
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2011-11-27 23:43 @030

Re: Búsqueda negada de secuencias de aminoácidos

Notapor pvaldes » 2012-03-01 07:59 @374

La solución dada por explorer me parece perfecta en cualquier caso.

Ahora bien, por aportar algo al debate, una alternativa que se me ocurre es saltar la línea si empieza por 'm'
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. next if ~/^M/;
  2. "haz algo con esa cadena, sólo llegarán a ésta línea las que te interesan";
  3.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Esto es ya más una cuestión teórica que un problema real, pero buscar una letra es más sencillo en términos de computación que probar con todas las demás así que en teoría encontrar /^[^M]/ debería ser algo más costoso que encontrar /^M/ y luego descartarla. No sé si me explico.

En tu caso probablemente es irrelevante y la velocidad ganada (si es que se gana) sería inapreciable. Las búsquedas de expresiones regulares en Perl están tan optimizadas que probablemente no haya una ganancia real apreciable para sólo 3000 líneas.

Aparte de eso tienes que valorar la posibilidad de que una proteína se extienda a dos líneas en tu archivo, lo que te podría dar un valor erróneo ocasionalmente (algunas proteínas incompletas) de no controlarse. En ese caso podrías acotar a partir de los '>' probablemente. Quizás si vemos el trabajo que tienes hecho podamos aconsejarte alguna mejora o saber por qué lo que probaste no funcionaba.
pvaldes
Perlero nuevo
Perlero nuevo
 
Mensajes: 129
Registrado: 2011-01-22 12:56 @580

Re: Búsqueda negada de secuencias de aminoácidos

Notapor explorer » 2012-03-01 10:48 @491

pvaldes escribiste:Las búsquedas de expresiones regulares en Perl están tan optimizadas que probablemente no haya una ganancia real apreciable para sólo 3000 líneas.

Con el módulo Benchmark saldrás de dudas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
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 25 invitados

cron