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

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