BioPython共有序列,缺口编码为'N',多态性为歧义

时间:2013-05-01 13:46:07

标签: alignment ambiguity biopython consensus

我正在尝试编写代码,以便为文件夹中单个fasta路线的100多个文件中的每一个获得一致序列。首先,我只想获得一个序列的共识(然后我将使用for循环来处理所有序列),但我在使用共识字母表时遇到问题。我的测试fasta对齐是:

>seq1
ACGTACGATCGTTACTCCTA
>seq2
ACGTACGA---TTACTCGTA

我希望达成的共识是:

ACGTACGANNNTTACTCSTA

我希望任何包含空位的列都用'N'表示,任何没有100%相同核苷酸的列都要用歧义代码表示。

我的代码不起作用是:

from Bio import AlignIO
from Bio.Align import AlignInfo
from Bio.Alphabet import IUPAC, Gapped
alphabet = Gapped(IUPAC.ambiguous_dna)

alignment = AlignIO.read(open("fasta_align_for_consensus.fa"), "fasta")
summary_align = AlignInfo.SummaryInfo(alignment)
consensus = summary_align.gap_consensus(threshold = 1.0, ambiguous = 'N', consensus_alpha  \
= alphabet, require_multiple = 2)

对象'模糊'只需要一个字符串,并在共识中的任何位置放置一个'N',其中对齐中存在多态性,我似乎无法解决这个问题。任何关于如何纠正这一点的建议将不胜感激。 谢谢!

1 个答案:

答案 0 :(得分:1)

目前简单的共识方法并不能满足您的需求。听起来你问的是IUPAC模糊代码(可能有一些阈值?)和间隙的特殊处理。您必须自己编写一些代码,可能基于现有方法。