成对序列比对bio python中的核苷酸分离物

时间:2016-03-21 21:55:15

标签: bioinformatics biopython

我的RNA序列含有不同的修饰核苷酸和残基。其中一些例如N79, 8XU, SDG, I

我想使用biopython的pairwise2.align.localms成对对齐它们。是否有可能不是作为字符串而是作为列表输入,以便准确地考虑这些修改后的基数?

正确的技术是什么?

2 个答案:

答案 0 :(得分:4)

Biopython的pairwise2模块适用于字母串,可以是任何字母 - 例如:

>>> from Bio import pairwise2
>>> from Bio.pairwise2 import format_alignment
>>> for a in pairwise2.align.localms("ACCGTN97CT", "ACCG8DXCT", 2, -1, -.5, -.1):
...     print(format_alignment(*a))
... 
ACCG--TN97CT
||||||||||||
ACCG8DX---CT
  Score=9.7

ACCGTN97--CT
||||||||||||
ACCG---8DXCT
  Score=9.7

您可以根据需要设置匹配/不匹配分数。但是,这假设每个字母都是一个单独的元素。

在您的问题中,您的示例N79是否是一个修改过的核苷酸,或三个?如果你想把N79作为一个基础来看待它似乎是可能的:我不认为这是故意的(所以我不想依赖这种行为),但我可以把pairwise2用于工作字符串列表:

>>> for a in pairwise2.align.localms(["A", "C", "C", "G", "T", "N97", "C", "T"], ["A", "C", "C", "G", "8DX", "C", "T"], 2, -1, -.5, -.1, gap_char=["-"]):
...     print(format_alignment(*a))                                                                                                                  ... 
['A', 'C', 'C', 'G', 'T', 'N97', 'C', 'T']
||||||||
['A', 'C', 'C', 'G', '8DX', '-', 'C', 'T']
  Score=10.5

['A', 'C', 'C', 'G', 'T', 'N97', 'C', 'T']
||||||||
['A', 'C', 'C', 'G', '-', '8DX', 'C', 'T']
  Score=10.5

请注意,默认的format_alignment函数不能很好地显示它。

答案 1 :(得分:1)

很抱歉添加了另一个答案,但我的声誉不足以仅添加评论......

详细说明peterjc的答案,接受列表作为输入是dstream.count().foreachRDD { rdd => val count = rdd.first() } 的预期行为(现在我明白它可能对......有什么好处。)。

你是对的,它也与pairwise2参数有关:由于你将序列应用为列表,因此间隙字符也必须定义为列表(gap_char)。