Tengo que realizar un script que me permita leer un archivo fasta usando biotools (proporcionado por el usuario en la consola al invocar el programa) y que elimine las N del extremo 5' las del 3', que recorte los dos extremos en un número de nucleótidos indicados por el usuario en la consola al invocar el programa y que me devuelva un archivo con las secuencias recortadas e imprima por pantalla la cabecera del fasta más el tamaño de origen más el tamaño resultante más la diferencia.
He empezado con ello pero estoy atascadísima ya que al intentar eliminar las N con un bucle if(), parece que no me leyera el archivo.
¿Alguien me podría echar una mano?
Esto es lo que llevo hecho hasta ahora y el archivo de salida trimmedfile.fa sale vacío. Si quito el primer bucle if() después del while(), me imprime en el archivo de salida, pero no elimina ninguna N. ¿Alguien me puede ayudar?
Muchas gracias
Using perl Syntax Highlighting
- #!/usr/bin/perl
- # Introduzco los módulos de Perl que voy a necesitar
- use strict;
- use warnings;
- use Getopt::Long;
- use Bio::SeqIO;
- open( OUT, ">trimmedfile.fa" );
- # Declaro los indicadores que voy a obtener con GetOpt al invocar el programa
- my $file;
- my $trim5;
- my $trim3;
- my $help;
- # Asocio los parámetros proporcionados por la consola con las variables declaradas
- GetOptions(
- "file=s" => \$file,
- # "trim5"=>\$trim5,
- # "trim3"=>\$trim3,
- # "help"=>\$help
- );
- # Leo el fichero FASTA con BioPerl
- if ($file) {
- my $seqio = Bio::SeqIO->new( -format => "fasta", -file => "sequences.fa" );
- while ( my $seq = $seqio->next_seq ) {
- # Busco líneas que comiencen con N
- if ( $seq =~ /^N/ ) {
- $seq =~ s/N//; # Pretendo quitar las N. Pendiente ver cómo itero cada línea hasta eliminar todas
- print OUT $seq->display_id() . "\n"; # Imprimir la cabecera
- print OUT $seq->seq . "\n"; # Imprimir la secuencia sin una N al principio
- }
- }
- }
- else {
- # Como no sé ha incluido ningún parámetro o se han incluido parámetros incorrectos ponemos otra ayuda
- print "\nWrong parameters!!!:\n";
- print "\nHelp:\n\nperl $0 -file -trim5 -trim3\n";
- }
- close OUT;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4