Je dois éliminer les $seq->display_id contenant une des valeurs de @a_list_delete.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 my @a_list_delete = qw [AY987735 AY987728 AY987737 AY987727 AY987758 AY987761]; my $expreg = $a_list_delete[0]; for (my $i=1; $i<@a_list_delete; $i++){ $expreg .= '|'.$a_list_delete[$i]; } my $in_nuc = Bio::SeqIO->new(-file => $path.$infile_nucleotideDB, '-format' => 'Fasta'); while ( my $seq = $in_nuc->next_seq()){ if($seq->display_id !~ /$expreg/o){ push (@{$h_acc{$seq->seq}}, $seq->display_id); } else{ print "suppression de ".$seq->display_id."\n"; } }
$seq->display_id à la forme Aeromonas_caviae_AY987727, Aeromonas_hydrophila_AY987737 dont la 3ième partie peut être contenue dans @a_list_delete.
Utiliser une expression régulière est-elle la meilleure façon de procéder?
Merci,
Partager