2016-09-01 8 views
1

これは簡単なことですが、私は非常に限られたバイオインフォマティクス経験を持っています。複数のFastaアラインメントファイルの注文方法

私は同じ12種の異なる遺伝子のアライメントを含む多くの-100,000-FASTAファイルを持っています。各ファイルには、次のようなものになります。同じように命じている

>dmel 
ACTTTTGATACAATTAAC 
>dsim 
AATCCCAGACAAATTAAG 
>dsec 
AGTTTTGCAATGGTAAAT 
>dere 
TGGAATATTAGACGAATT 
... 

ないファイルのすべてを、私はそれらすべてのようにしたいと思います。アルファベット順に並べ替えることができれば簡単ですが、すべてのファイルが同じように並べ替えられている限り、どのように並べられても問題ありません。アルファベット順は次のようにする必要があります。

>dere 
TGGAATATTAGACGAATT 
>dmel 
ACTTTTGATACAATTAAC 
>dsec 
AGTTTTGCAATGGTAAAT 
>dsim 
AATCCCAGACAAATTAAG 
... 

これを自動的に行うスクリプトは大変ありがたいです。

編集:問題のあるsedを使用しているシェルスクリプトを使用しています。これは、ファイルの数がそれほど大きくない場合に機能しますが、この特定のケースでは異なる名前の重複ファイルが作成されます。スクリプトが読み:

#!/bin/bash 
echo 
for i in {0..114172}; do 
#sed -e '$ d' bloque.fasta.trim$i >b0.fasta.trim 
#sed -e 's/ /ñ/g' <b0.fasta.trim >b1.fasta.trim 
sed -e 's/ /ñ/g' <bloque.fasta.trim$i >b1.fasta.trim 
tr "\n" " " <b1.fasta.trim >b2.fasta.trim 
sed -e 's/ //g' <b2.fasta.trim>b3.fasta.trim 
sed -e 's/>/\n>/g' <b3.fasta.trim>b4.fasta.trim 
sed '1d' b4.fasta.trim >b5.fasta.trim 
sort b5.fasta.trim >b6.fasta.trim 
sed -e 's/ñ/\n/g' <b6.fasta.trim>b7.fasta.trim$i 
done 

非命じたファイルがbloque.fasta.trimと呼ばれ、このスクリプトは1つのB7を作成する必要がありb7.fasta.trim $と呼ばれるファイルの束を作成します。各bloqueのファイル。ファイル。問題は、ファイルを複製して別の名前を付けることがあることです。私は重複の間違いを起こさない、より簡単なアプローチが最も確実だろう。

+1

BioStarまたはSEQanswersを試してください。スタックオーバーフローの解決策が必要な場合は、プログラミング言語を記述し、コーディングの試みを示す必要があります。 –

+0

OK、私の投稿を編集して、うまく機能するsedスクリプトを表示しました。 – NKGon

答えて

1

Any script that does this automatically would be much appreciated.

これは正確にあなたが望むものなのかどうかわかりませんが、biopythonを使用してfastaファイルを分類するのは簡単です。

まず、モジュールのインストール:

:その後 fasta_sorter.py

from Bio import SeqIO 
import sys 

infile = sys.argv[1] 

records = SeqIO.parse(open(infile, 'r'), 'fasta') 

records_dict = SeqIO.to_dict(records) 

for rec in sorted(records_dict): 
    print ">%s\n%s" % (rec, records_dict[rec].seq) 

、あなたとあなたの各ファイルを並べ替えることができます。ファイル、例えばこのコードを書き、今

# If using debian/ubuntu 
sudo apt-get install python-biopython 

# If other operational system, install pip and 
pip install biopython 

python fasta_sorter.py /path/to/your.fasta > file.sorted.fasta 

forループに入れることができます。

+0

ありがとうございました。これは、約2時間をかなり長い時間がかかったし、それが(最後の最新の呼び出し)各ファイル トレースバックのために、次のエラーメッセージを与えた:オープン(= SeqIO.parse レコードに ファイル「fasta_sorter.py」、6行目を、 (infile、 'r')、 'fasta') IOError:[Errno 2]このようなファイルやディレクトリはありません: 'bloque.fasta.trim114172' – NKGon

+0

@NKGon、ソーターへの入力としてファイルを使用していないようです。例:bloque.fasta.trim114172 – taniguti

+0

私はそう思っていましたが、ファイルはそこにあり、出力ファイルも作成されました。私は説明がありませんが、何とかそれは動作します。 – NKGon