1

さまざまな長さの各ファイルに数千の seq を含む複数の fasta ファイルがあります。各配列の最初の 200 (n) 塩基のみを保持したいと考えています。Perlでこれを行うにはどうすればよいですか?

4

5 に答える 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 に答える