私は正規表現検索を実行しています。ヒットのみをfasta形式(2行のデータ:ニンジン ">"の後にヒットし、2行目ニンジンなしで、まだヒット情報を含んでいる)。
出力マルチファスタファイルを正常に生成できますが、ヒットしたかどうかにかかわらず、ニンジンと改行は出力ファイルに含まれています。空白の正規表現ヒットを配列から削除する
生成される出力:
>
>
>TAGCTAGC
TAGCTAGC
>
>GCTAGCTA
GCTAGCTA
所望の出力:
>TAGCTAGC
TAGCTAGC
>GCTAGCTA
GCTAGCTA
はここに私のコードです:
#!/usr/bin/perl
use warnings;
use strict;
open(CLUSTER, ">", "SequencesToCluster.txt") or die $!;
my @TrimmedSequences;
my @ArrayofFiles = glob ("~/BLASTdb/Individual_Sequences_*");
foreach my $file (@ArrayofFiles){
open (my $sequence, $file) or die "can't open file: $!";
while (my $line = <$sequence>){
if ($line !~/^>/){
my $seq = $line;
$seq =~ s/\R//g;
$seq =~ m/([TAGC]{16})(CGGAGCTTTA|GCCATTTCT|TAAAGCTCCG|AGAAATGGGC/;
push(@TrimmedSequences, ">", $1, "\n", $1, "\n");
}
}
}
#Here I believe I need to manipulate the array to get rid of blank fastas
print CLUSTER @TrimmedSequences;
内側のwhileループで '$ 1'が定義されていることを確認して、最初に空行をプッシュしないでください。 –
あなたの最後の '$ seq =〜'は1つの ')' –
が見つからないようです。入力ミスを申し訳ありません。良いキャッチ。 – Rob