erreur bioperl avec fichier FASTA
Bonjour,
J'ai un fichier contenant le nom des séquences d’intérêt et un fichier multi-fasta.Je doit récupérer les séquences au format dont les noms sont dans mon fichier. Pour cela, j'ai fait le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| #!/usr/bin/perl
use strict;
use warnings ;
use Getopt::Long;
use Bio::SearchIO;
use Bio::SeqIO;
use Carp;
use Bio::Seq;
my ($noblast,$fasta,$ligne1,$ligne2,@no_hit,$taille,$description,@cols);
GetOptions( "noblast:s" => \$noblast,
"fasta:s" => \$fasta);
open(FILE,$noblast) || die "pb avec le fichier $noblast !\n";
while ($ligne1 = <FILE>){
push (@no_hit,$ligne1);
}
close (FILE);
$taille=@no_hit;
my $in = Bio::SeqIO-> new(
-file => $fasta ,
-format => 'fasta'
);
for (my $i=1;$i<$taille;$i++){
my $regex = qr/$no_hit[$i]/;
while ( my $seq = $in->next_seq() ) {
my $entete = $seq->display_name . $seq->desc;
if ( $entete =~ m{$regex }i ) {
print ">$entete\n$seq\n";
}
}
} |
Et lorsque que je le lance l'erreur suivante apparaît dans le terminal
Citation:
MSG: file argument provided, but with an undefined value
STACK: Error::throw
STACK: Bio::Root::Root::throw /tools/perl5/modules/lib/perl5/Bio/Root/Root.pm:472
STACK: Bio::SeqIO::new /tools/perl5/modules/lib/perl5/Bio/SeqIO.pm:368
STACK: /home/*****/bin/fasta_no_hits.pl:24
Je n'arrive pas a trouver pourquoi j'ai cette erreur qui s'affiche. Quelqu'un connaîtrait il la réponse?
Merci