2011-08-09 9 views
1

私は、Clustalwの複数配列アラインメントからBiopythonで位置加重マトリックス(PWM)を生成しようとしています。ギャップのあるアラインメントを行うたびに、「間違ったアルファベット」エラーが表示されます。ドキュメンテーションを読んでから、私はGapped Alphabetを使ってギャップのあるアラインメントの ' - '文字を扱う必要があると思う。しかし、私がこれを行うと、それはまだエラーを解決しません。誰もがこのコードの問題を見たり、ギャップのあるClustalアラインメントからPWMを生成する良い方法を持っていますか?Biopythonのギャップアライメントを使用したPWM

from Bio.Alphabet import Gapped 
alignment = AlignIO.read("filename.clustalw", "clustal", alphabet=Gapped) 
m = Motif.Motif() 
for a in alignment: 
    m.add_instance(a.seq) 
m.pwm() 
+0

あなたはBIOSTARに質問をする必要がありますhttp://biostar.stackexchange.com/ – Pierre

+0

おかげで、行います。 – RossCampbell

+0

biostarにあなたの質問へのリンクを追加できますか? – peterjc

答えて

-1

ですから、これらのギャップアラインメントを作るためにCLUSTALを使用したいですか?私はPerlを使っていますが、あなたはPythonを使用していますが、ロジックは基本的に同じです。 BioPerl/Biopythonを使用する代わりに、実行可能ファイルへのシステムコールを使用します。私はclustalw2実行可能ファイルが、アルファベットを呼び出す必要なくギャップのあるアライメントを処理すると信じています。 100%は確かではありませんが、これは私が使うスクリプトです。あなたのalligmentsファイルを含むディレクトリを作成します(私は.fastaを使用しますが、システムコールのフラグを変更して他のものを受け入れることができます)。これは私のPerlスクリプトです。コンピュータ上のクラスタの場所と一致するように最終行の実行可能パスを変更する必要があります。これが少し助けてくれることを願います。副次的なことは、多くの整列を非常に素早く行うためには良いことですが、これは私が使用するものですが、いくつかのファイルを整列させたい場合は、ディレクトリ全体の作成をスキップして、ファイルパスであり、ディレクトリパスではありません。

#!/usr/bin/perl 


use warnings; 

print "Please type the list file name of protein fasta files to align (end the directory path with a/or this will fail!): "; 
$directory = <STDIN>; 
chomp $directory; 

opendir (DIR,$directory) or die $!; 

my @file = readdir DIR; 
closedir DIR; 

my $add="_align.fasta"; 

foreach $file (@file) { 
    my $infile = "$directory$file"; 
(my $fileprefix = $infile) =~ s/\.[^.]+$//; 
my $outfile="$fileprefix$add"; 
system "/Users/Wes/Desktop/eggNOG_files/clustalw-2.1-macosx/clustalw2 -INFILE=$infile -OUTFILE=$outfile -OUTPUT=FASTA -tree"; 
} 

乾杯、 ウェス

関連する問題