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
| #!/usr/local/bin/perl
use strict;
use warnings;
use Bio::SeqIO;
my $in = Bio::SeqIO->new(-file => "file.txt", '-format' => 'Fasta');
# lecture séquence par séquence
# on récupère l'identifiant et la séquence en même temps
while ( my $seq = $in->next_seq()){
# condition sur l'identifiant
if ($seq->primary_id =~ m/regexp1/){
# fichier de sortie qui sera utiliser
my $out = Bio::SeqIO->new(-file => ">file_out.txt", '-format' => 'Fasta');
# écriture de l'id et de la séquence en même temps
$out->write_seq($seq);
}
# condition sur la séquence
if ($seq->seq =~ m/regexp2/){
# fichier de sortie qui sera utiliser
my $out = Bio::SeqIO->new(-file => ">file_out2.txt", '-format' => 'Fasta');
# écriture de l'id et de la séquence en même temps
$out->write_seq($seq);
}
} |