さまざまな長さの各ファイルに数千の seq を含む複数の fasta ファイルがあります。各配列の最初の 200 (n) 塩基のみを保持したいと考えています。Perlでこれを行うにはどうすればよいですか?
1755 次
5 に答える
1
シーケンスが長すぎる場合は、興味深い部分のみを保持します。
$/ = '>';
<>;
while (my $seq = <>) {
$seq =~ s/>$//;
$seq =~ s/^(.*)//;
my $id = $1;
$seq =~ s/\n//g;
$seq = substr $seq, 0, 200;
print ">$id\n$seq\n";
}
于 2013-05-02T10:09:57.047 に答える
0
これが私がそれを解決する方法です。誰かがそれを行う別の方法を試すことに興味がある場合は、Fasta_formatterと呼ばれるbiolinuxに含まれるツールを使用して、実際のシーケンスを1行に配置し(-w 0)、@ sudo_Oが言ったようにトリミングし、最後に80文字幅に戻ります。
fasta_formatter -w 0 < FILE | cut -c1-LENGTH | fasta_formatter -w 80 > TRIMMED_FILE
于 2014-05-22T03:42:40.290 に答える