複数のfastaシーケンスを組み合わせる[閉じる]

複数のfastaシーケンスを組み合わせる[閉じる]

このファイルには最大500個のシーケンスがあり、そのうちのいくつかは同じ名前でコピーを1つにマージしたいと思います。

file 1

>1
aa
>2
cc
>3
tt
>4
atc
>2
tag
>1
gg

outfile 

>1
aagg
>2
cctag
>3
tt
>4
atc

ベストアンサー1

これはAwkスクリプトです:

#!/usr/bin/awk -f

/^>/    { header = $0 }
!/^>/   { sequence[header] = sequence[header] $0 }

END {
    for (head in sequence) {
        printf("%s\n%s\n", head, sequence[head])
    }
}

Fastaファイル全体をメモリに解析し、すべてのシーケンスデータを同じヘッダーに関連付けます。最後にデータを出力します。

このアプローチは次のとおりです。悪い大きなFastaファイルでは、ゲノムサイズファイルで完全に(メモリ不足)クラッシュが発生します。このような場合、より良いアプローチを見つけるには、解析されたデータを最後のリンクファイルに保存することをお勧めします。それでもこれを実装するつもりはありませんでした。

スクリプトを実行します。

$ awk -f ./script.awk file.fa
>1
aagg
>2
cctag
>3
tt
>4
atc

おすすめ記事