• Publicidad

Fichero FASTA

Perl aplicado a la bioinformática

Fichero FASTA

Notapor afry » 2008-07-05 13:54 @620

Hola, estoy trabajando con un fichero FASTA que contiene una secuencia de ADN y he de localizar todos los codones de inicio (ATG) e indicar su posición. El problema es que no sé muy bien cómo hacerlo.
Gracias
afry
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2008-07-05 13:43 @613

Publicidad

Notapor explorer » 2008-07-05 19:35 @858

Bienvenido a los foros de Perl en Español, afry.

Supongamos que tenemos el siguiente fichero en formato FASTA
Código: Seleccionar todo
> sample dna | (This is a typical fasta header.)
agatggcggcgctgaggggtcttgggggctctaggccggccacctactgg
tttgcagcggagacgacgcatggggcctgcgcaataggagtacgctgcct
gggaggcgtgactagaagcggaagtagttgtgggcgcctttgcaaccgcc
tgggacgccgccgagtggtctgtgcaggttcgcgggtcgctggcgggggt
cgtgagggagtgcgccgggagcggagatatggagggagatggttcagacc
cagagcctccagatgccggggaggacagcaagtccgagaatggggagaat
gcgcccatctactgcatctgccgcaaaccggacatcaactgcttcatgat
cgggtgtgacaactgcaatgagtggttccatggggactgcatccggatca
ctgagaagatggccaaggccatccgggagtggtactgtcgggagtgcaga
gagaaagaccccaagctagagattcgctatcggcacaagaagtcacggga
gcgggatggcaatgagcgggacagcagtgagccccgggatgagggtggag
ggcgcaagaggcctgtccctgatccagacctgcagcgccgggcagggtca
gggacaggggttggggccatgcttgctcggggctctgcttcgccccacaa
atcctctccgcagcccttggtggccacacccagccagcatcaccagcagc
agcagcagcagatcaaacggtcagcccgcatgtgtggtgagtgtgaggca
tgtcggcgcactgaggactgtggtcactgtgatttctgtcgggacatgaa
gaagttcgggggccccaacaagatccggcagaagtgccggctgcgccagt
gccagctgcgggcccgggaatcgtacaagtacttcccttcctcgctctca
ccagtgacgccctcagagtccctgccaaggccccgccggccactgcccac
ccaacagcagccacagccatcacagaagttagggcgcatccgtgaagatg
agggggcagtggcgtcatcaacagtcaaggagcctcctgaggctacagcc
acacctgagccactctcagatgaggaccta

Entonces con el siguiente programa
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;
use warnings;

# Leer el fichero
open FICHERO, '<kk.fast' or die "$!\n";
my @lineas = <FICHERO>;
close FICHERO;

# Eliminamos las líneas que no nos interesan
# y creamos la secuencia
my $secuencia;
foreach ( @lineas ) {
    next if /^\s*$/;    # descartamos las líneas en blanco
    next if /^\s*#/;    # descartamos las líneas con comentarios
    next if /^>/;       # descartamos las líneas de cabecera

    $secuencia .= $_;
}
$secuencia =~ s/\s//g;  # quitamos todos los espacios

# Hacemos la búsqueda de los codones de inicio
my $posicion = -1;

do {
    $posicion = index( $secuencia, 'atg', $posicion+1 );
    if ( $posicion != -1 ) {
        print "Encontrado en la posicion $posicion\n";
    }
} while $posicion != -1 ;

__END__
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

El resultado es
Código: Seleccionar todo
Encontrado en la posicion 2
Encontrado en la posicion 69
Encontrado en la posicion 228
Encontrado en la posicion 238
Encontrado en la posicion 262
Encontrado en la posicion 289
Encontrado en la posicion 298
Encontrado en la posicion 345
Encontrado en la posicion 367
Encontrado en la posicion 379
Encontrado en la posicion 408
Encontrado en la posicion 505
Encontrado en la posicion 511
Encontrado en la posicion 538
Encontrado en la posicion 618
Encontrado en la posicion 729
Encontrado en la posicion 749
Encontrado en la posicion 795
Encontrado en la posicion 997
Encontrado en la posicion 1069


En estos foros hay más ejemplos de tratamiento de secuencias. Usa el enlace 'Busca' y busca por 'BioPerl'. Por ejemplo: viewtopic.php?t=722
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
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 0 invitados