おそらく簡単な質問ですが、MultipleSeqAlignmentオブジェクトの単純なリストを作成するのに問題があります。Biopythonで複数シーケンスアライメントオブジェクトのリストを作成するにはどうすればいいですか?
from Bio import AlignIO
import Bio.Align
#Read multi-aligned fasta file
alignment = AlignIO.read(sys.argv[1], "fasta")
#some testing values
first_POI = 10 #base position
major = "a" #major allele
minor = "g" #minor allele
#create lists of sequence ids that are major or minor allele
align_major = Bio.Align.MultipleSeqAlignment([])
align_minor = Bio.Align.MultipleSeqAlignment([])
for record in alignment:
if (record.seq[first_POI] == major):
#compile the sequences that have major allele
align_major = align_major + record
elif (record.seq[first_POI] == minor):
#compile sequences with minor allele
align_minor = align_minor + record
私はこのエラーを取得する:
File "FindHaplotypes.py", line 53, in <module>
align_major=align_major+record
File "C:\Python34\lib\site-packages\Bio\Align\__init__.py", line 385, in __add__
raise NotImplementedError
は、だから私はやや混乱していますし、私はすでにBio.Align
からMultipleSeqAlignment
はおそらくBio.AlignIO
のために保存されているオブジェクトと同じタイプではないことを想像することができます。彼らはどちらもMSAを扱っていたので、私は同じであると思った。 AlignIO
オブジェクトについては、文字列のようにそれらを一緒に追加できますが、空のAlignIO
オブジェクトを初期化して上記の方法で一緒に追加する方法がわかりません。以前は、最初のレコードを新しい変数に設定し、それに追加するforループを入力することによって、醜い方法でそれを実行しなければなりませんでした。
注意Bio.AlignIOは、Bio.Align.MultipleSeqAlignmentオブジェクトを返します。 – peterjc
空の 'AlignIO'オブジェクトを初期化して' AlignIO.read'オブジェクトを追加する方法はありますか?それとも正しい方法でやっているのですか?私はオリジナルのコードで、 'Bio.Align'、' Bio.Seq'、 'AlignIO'のために非常に多くの異なるライブラリをインポートしていたと思います。 – nchuang