だから私は次のようなfasta(生物学)ファイルを持っています:
>m64093_191209_130050/133911/ccs_64
TTCAGGCTGTGTTCCATTTGATTTAAAATCAAATAATTTCATTCGCGTCAGAACACCTGGTTTCACGACC
ATAAATAATTTACCAGTGAATCGAGGCTCAATTATAGATCCTCGGACGCGAGTTCTCGGTTGACGAGTGG
GATTCGAATTATTTTTCACCGAAAATTTTAGTCGACGAGTTCAGATAAATTTGTTCGGGATAAAATCATC
TGAGTAGGTCGGGCTTCTGAATTTCGTATTCTTGCGAGCAATGAATTTTAAATAATCATCGGACATACCA
ATTTTTGGAACAATAATGTTCCGAACATCCCGAAAATATAGGAAGAGCCCGGATAGATAAAAATAAACAC
各行の長さは最大70文字です。通常、最大50文字の長さでフォーマットするには、次のようにします。
Fold -50 input.fasta > output.fasta # -b と -w args も試みる
しかし、どういうわけかこれはうまくいきません。ファイルは私が見た他の多くのファイルと同じように見えます。これで出力は次のようになります。
>m64093_191209_130050/133911/ccs_64
TTCAGGCTGTGTTCCATTTGATTTAAAATCAAATAATTTCATTCGCGTCA
GAACACCTGGTTTCACGACC
ATAAATAATTTACCAGTGAATCGAGGCTCAATTATAGATCCTCGGACGCG
AGTTCTCGGTTGACGAGTGG
GATTCGAATTATTTTTCACCGAAAATTTTAGTCGACGAGTTCAGATAAAT
TTGTTCGGGATAAAATCATC
TGAGTAGGTCGGGCTTCTGAATTTCGTATTCTTGCGAGCAATGAATTTTA
AATAATCATCGGACATACCA
ATTTTTGGAACAATAATGTTCCGAACATCCCGAAAATATAGGAAGAGCCC
押し出された20文字をカットして下に正しく配置しますが、次の行に接続せずに最大50文字に縮小します。
以前に作成されたfastaファイルに戻りましたが、折りたたみコマンドはまだうまくいきました。新しいファイルの一部をコピーして別のファイルに貼り付けても問題は解決しません。
私が知らないエンコーディングの問題があるようです。誰でも助けることができますか?
乾杯、
編集:良い答えです。ありがとうございます!
ベストアンサー1
あなたの問題はファイルエンコーディングとは関係ありません。このfold
ユーティリティは非常にプリミティブであり、特定の長さの行を切断しますが、接続しません。
fastaヘッダー行を保存するように注意することもできます(つまり、縮小しないでください)。
awk -v W=50 '
/^>/ { if (seq != "") print seq; print; seq = ""; next }
{
seq = seq $1
while (length(seq) > W) {
print substr(seq, 1,W)
seq = substr(seq, 1+W)
}
}
END { if (seq != "") print seq }' file.fa
このawk
コマンドは、ヘッダー行を変更せずにシーケンスを50文字に再フォーマットします。幅50はW
変数で調整可能で、正の整数に設定できます。
コードの最初のブロックはヘッダー行を処理し、前のシーケンスで累積されたシーケンスビット(出力が残っている場合)を出力し、未変更のヘッダー行を出力に渡します。
2番目のブロックは一連の行を累積し、累積シーケンスが十分に長い場合は、累積シーケンスを適切なチャンクとして出力できます。
最後のブロック(END
)は、入力の終わりに達すると残りのシーケンスを出力します。
シーケンスの2つのコピーを含むファイルに対してこのコマンドを実行すると、
>m64093_191209_130050/133911/ccs_64
TTCAGGCTGTGTTCCATTTGATTTAAAATCAAATAATTTCATTCGCGTCA
GAACACCTGGTTTCACGACCATAAATAATTTACCAGTGAATCGAGGCTCA
ATTATAGATCCTCGGACGCGAGTTCTCGGTTGACGAGTGGGATTCGAATT
ATTTTTCACCGAAAATTTTAGTCGACGAGTTCAGATAAATTTGTTCGGGA
TAAAATCATCTGAGTAGGTCGGGCTTCTGAATTTCGTATTCTTGCGAGCA
ATGAATTTTAAATAATCATCGGACATACCAATTTTTGGAACAATAATGTT
CCGAACATCCCGAAAATATAGGAAGAGCCCGGATAGATAAAAATAAACAC
>m64093_191209_130050/133911/ccs_64
TTCAGGCTGTGTTCCATTTGATTTAAAATCAAATAATTTCATTCGCGTCA
GAACACCTGGTTTCACGACCATAAATAATTTACCAGTGAATCGAGGCTCA
ATTATAGATCCTCGGACGCGAGTTCTCGGTTGACGAGTGGGATTCGAATT
ATTTTTCACCGAAAATTTTAGTCGACGAGTTCAGATAAATTTGTTCGGGA
TAAAATCATCTGAGTAGGTCGGGCTTCTGAATTTCGTATTCTTGCGAGCA
ATGAATTTTAAATAATCATCGGACATACCAATTTTTGGAACAATAATGTT
CCGAACATCCCGAAAATATAGGAAGAGCCCGGATAGATAAAAATAAACAC
W
30に変更すると
>m64093_191209_130050/133911/ccs_64
TTCAGGCTGTGTTCCATTTGATTTAAAATC
AAATAATTTCATTCGCGTCAGAACACCTGG
TTTCACGACCATAAATAATTTACCAGTGAA
TCGAGGCTCAATTATAGATCCTCGGACGCG
AGTTCTCGGTTGACGAGTGGGATTCGAATT
ATTTTTCACCGAAAATTTTAGTCGACGAGT
TCAGATAAATTTGTTCGGGATAAAATCATC
TGAGTAGGTCGGGCTTCTGAATTTCGTATT
CTTGCGAGCAATGAATTTTAAATAATCATC
GGACATACCAATTTTTGGAACAATAATGTT
CCGAACATCCCGAAAATATAGGAAGAGCCC
GGATAGATAAAAATAAACAC
>m64093_191209_130050/133911/ccs_64
TTCAGGCTGTGTTCCATTTGATTTAAAATC
AAATAATTTCATTCGCGTCAGAACACCTGG
TTTCACGACCATAAATAATTTACCAGTGAA
TCGAGGCTCAATTATAGATCCTCGGACGCG
AGTTCTCGGTTGACGAGTGGGATTCGAATT
ATTTTTCACCGAAAATTTTAGTCGACGAGT
TCAGATAAATTTGTTCGGGATAAAATCATC
TGAGTAGGTCGGGCTTCTGAATTTCGTATT
CTTGCGAGCAATGAATTTTAAATAATCATC
GGACATACCAATTTTTGGAACAATAATGTT
CCGAACATCCCGAAAATATAGGAAGAGCCC
GGATAGATAAAAATAAACAC
あなたも正しいかもしれません。 。 。興味があるFASTX ツールキットCSHLから。私はこれを直接使用したことがありませんが、「FASTAフォーマッタ(FASTAファイルのシーケンスライン幅の変更)」が含まれているようです。これらのツールの最新バージョンは2014年(非常に古いバージョン)なので、特定のUnixディストリビューションでパッケージを提供しない限り(パッケージリポジトリを確認する)、提供されたプリコンパイルされたバイナリの1つを使用するのではなく、ソースから直接コンパイルすることをお勧めします。