• Publicidad

Problema de parseo SEQ

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Problema de parseo SEQ

Notapor tacuberto » 2009-03-10 15:51 @702

Tengo un archivo del siguiente tipo:

Código: Seleccionar todo
SEQ  1    KSTYRTPNFDDVLKENNDADKGRSYAYFMVGAMGLLSSAGAKSTVETFIS   50          1EZV
STR        TTTTT  TTTTB  TTTTTHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH               1EZV
REM                                                                        1EZV
REM                .         .         .         .         .               1EZV
SEQ  51   SMTATADVLAMAKVEVNLAAIPLGKNVVVKWQGKPVFIRHRTPHEIQEAN  100          1EZV
STR       H   TTTTT    EEEEGGG TTTEEEEEEETTEEEEEEE  HHHHHHHH               1EZV
REM                                                                        1EZV
REM                .         .         .         .         .               1EZV
SEQ  101  SVDMSALKDPQTDADRVKDPQWLIMLGICTHLGCVPIGEAGDFGGWFCPC  150          1EZV
STR          GGGTTTT  GGG TTTTTEEEEE  TTTTT   EETTTTTT EEETT               1EZV
REM                                                                        1EZV
REM                .         .         .                                   1EZV
SEQ  151  HGSHYDISGRIRKGPAPLNLEIPAYEFDGDKVIVG                 185          1EZV
STR       TTEEETTTT EEE           EEEETTEEEE                               1EZV
REM                                                                        1EZV
CHN  PDB/1EZV.pdb/1EZV.pdb H                                               1EZV
REM                                                                        1EZV
REM                .         .         .         .         .               1EZV
SEQ  1    VTDQLEDLREHFKNTEEGKALVHHYEECAERVKIQQQQPGYADLEHKEDC   50          1EZV
STR          HHHHHHHHHH  HHHHHHHHHHHHHHHHHHHHHHTTTTTTTTTT                  1EZV
REM                                                                        1EZV
REM                .         .                                             1EZV
SEQ  51   VEEFFHLQHYLDTATAPRLFDKLK                             74          1EZV
STR       HHHHHHHHHHHHHHHHTTGGGG                                           1EZV


Necesito extraer solo los primeros "SEQ"..PERO NO ME FUNCIONA la extracción usando:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my (@seq) = grep(/^SEQ /, @stridereport);
    my $largo = length @seq;
   
   
    for (@seq)  {$_ = substr ($_, 10, 50)};
   
 
    #$seq = $seq[0];       #sin esta líneas imprime todos los caracteres de cada proteína
    $seq = join('', @seq); #sin esta línea imprime solo los primeras 50 caracteres de SEQ
    $seq =~ s/(\w+)\s+//;   #sin esta línea imprime la secuencia completa de la proteína pero también imprime las secuencias siguientes...QUE NO QUIERO
     
    $length = length($1) if defined $1;
   
    return ($seq);
}

1;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


¿Alguna idea?
tacuberto
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2009-03-10 15:35 @691

Publicidad

Notapor kidd » 2009-03-10 17:05 @753

Hola,

No sé bien hasta dónde acaba la línea de la secuencia de proteínas, pero de acuerdo a lo que estás haciendo, lo podríamos resumir en:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my @seq = map{ my $data = substr($_,10,50); $data } grep{ /^SEQ / } @stridereport;

print join "\n", @seq;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Que nos da como resultado:

Código: Seleccionar todo
KSTYRTPNFDDVLKENNDADKGRSYAYFMVGAMGLLSSAGAKSTVETFIS
SMTATADVLAMAKVEVNLAAIPLGKNVVVKWQGKPVFIRHRTPHEIQEAN
SVDMSALKDPQTDADRVKDPQWLIMLGICTHLGCVPIGEAGDFGGWFCPC
HGSHYDISGRIRKGPAPLNLEIPAYEFDGDKVIVG
VTDQLEDLREHFKNTEEGKALVHHYEECAERVKIQQQQPGYADLEHKEDC
VEEFFHLQHYLDTATAPRLFDKLK


Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor tacuberto » 2009-03-11 07:12 @342

¡Amigazo!

Exactamente necesito eso, pero solo hasta la parte que dice

...KVIVG"

que es antes del segundo CHN: " CHN PDB/1EZV.pdb/1EZV.pdb H "
tacuberto
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2009-03-10 15:35 @691

Notapor explorer » 2009-03-11 08:40 @402

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;

my $seq;

while ( <DATA> ) {
    last if  /^CHN/;  # ver si tenemos que acabar
    next if !/^SEQ/;  # solo nos interesan las líneas de SEQ

    chomp;

    if (/\d+\s+(\w+)/) {  # extraemos la secuencia usando el primer número como pista
        $seq .= $1;
    }
}

print "$seq\n";

__DATA__
SEQ  1    KSTYRTPNFDDVLKENNDADKGRSYAYFMVGAMGLLSSAGAKSTVETFIS   50          1EZV
STR        TTTTT  TTTTB  TTTTTHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH               1EZV
REM                                                                        1EZV
REM                .         .         .         .         .               1EZV
SEQ  51   SMTATADVLAMAKVEVNLAAIPLGKNVVVKWQGKPVFIRHRTPHEIQEAN  100          1EZV
STR       H   TTTTT    EEEEGGG TTTEEEEEEETTEEEEEEE  HHHHHHHH               1EZV
REM                                                                        1EZV
REM                .         .         .         .         .               1EZV
SEQ  101  SVDMSALKDPQTDADRVKDPQWLIMLGICTHLGCVPIGEAGDFGGWFCPC  150          1EZV
STR          GGGTTTT  GGG TTTTTEEEEE  TTTTT   EETTTTTT EEETT               1EZV
REM                                                                        1EZV
REM                .         .         .                                   1EZV
SEQ  151  HGSHYDISGRIRKGPAPLNLEIPAYEFDGDKVIVG                 185          1EZV
STR       TTEEETTTT EEE           EEEETTEEEE                               1EZV
REM                                                                        1EZV
CHN  PDB/1EZV.pdb/1EZV.pdb H                                               1EZV
REM                                                                        1EZV
REM                .         .         .         .         .               1EZV
SEQ  1    VTDQLEDLREHFKNTEEGKALVHHYEECAERVKIQQQQPGYADLEHKEDC   50          1EZV
STR          HHHHHHHHHH  HHHHHHHHHHHHHHHHHHHHHHTTTTTTTTTT                  1EZV
REM                                                                        1EZV
REM                .         .                                             1EZV
SEQ  51   VEEFFHLQHYLDTATAPRLFDKLK                             74          1EZV
STR       HHHHHHHHHHHHHHHHTTGGGG                                           1EZV
 
Coloreado en 0.001 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


Volver a Básico

¿Quién está conectado?

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

cron