python - 无法访问biopython成对对齐中的各个对齐字符串

标签 python alignment sequence biopython pairwise

我正在尝试访问由biopython中的成对对齐器生成的对齐对象中的各个字符串,但没有到达任何地方。我正在谈论已经对齐的序列,显示出间隙,如 print(alignment) 给出的那样,但试图单独获取它们甚至切片。文档规定这是可能的,但我遇到了错误。

from Bio import Align
aligner = Align.PairwiseAligner(mode='global',gap_score=-5)
my_target= 'CAGGTGCAGCTGGTGCAGAGCGGCGCGGAAGTGAAAAAACCGGGCAGCAGCG'
my_query='CAGTGCAGCTGGTGCAGAGCGACGCGGAAGTGAAAAAACCGGGAGCAGCG'
aln= aligner.align(my_target,my_query)
print(aln[0])

结果是:

CAGGTGCAGCTGGTGCAGAGCGGCGCGGAAGTGAAAAAACCGGGCAGCAGCG
|||-||||||||||||||||||.|||||||||||||||||||||-|||||||
CAG-TGCAGCTGGTGCAGAGCGACGCGGAAGTGAAAAAACCGGG-AGCAGCG

现在,我想单独获取底行中的“查询”序列。 我可以访问 aln[0].query 但这似乎只是裸查询序列没有对齐(有间隙)。

文档规定对齐对象应该是可迭代的以对其进行切片,但这根本不起作用。

我得到的是:

aln.alignment[1]

File c:\Anaconda3\lib\site-packages\Bio\Align\__init__.py:1024, in PairwiseAlignment.__getitem__(self, key)
   1022     raise NotImplementedError
   1023 if isinstance(key, int):
-> 1024     raise NotImplementedError
   1025 if isinstance(key, tuple):
   1026     try:

NotImplementedError:

文档:

enter image description here

我希望得到一些帮助和指点。 干杯。

最佳答案

回答自己的问题。 在biopython 1.81和python 3.11.3中,对齐对象似乎是可迭代的,并且每次迭代都可以进一步迭代以访问显示删除/插入的对齐字符串。 所以在我正在做的原始问题的代码中:

aln[0][1]

获取:

CAG-TGCAGCTGGTGCAGAGCGACGCGGAAGTGAAAAAACCGGG-AGCAGCG

或分割字符串:

aln[0][1][start:stop]  

它在 python 3.9.12 中不起作用(尝试 aln[0][N] 时出现“未实现”错误),N 为 0 或 1。

关于python - 无法访问biopython成对对齐中的各个对齐字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76359855/

相关文章:

latex - 仅用一个数字对多个方程进行编号

javascript - 按顺序将类添加到项目列表

python - 异步内核启动后返回 pyCUDA 中的主机代码

python - 如何在 Python 项目中从 Sphinx 的搜索索引中隐藏 _static 目录?

python - Python 3 中的过滤对象错误

x86 - IA32 机器 x86 上的对齐

python - 如何检索通过 multiprocessing.Process 调用的函数返回的多个值

html - 将 "Widgets"样式设置为内联并在较小的屏幕下彼此下方

image - 与图像序列相比, Sprite 表的优缺点是什么?

windows - FFMPEG 输出帧名称问题