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
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.004 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