受全局 DNA 序列比对启发的字符串比对
Posted
技术标签:
【中文标题】受全局 DNA 序列比对启发的字符串比对【英文标题】:string alignment inspired by global DNA sequence allignment 【发布时间】:2022-01-23 05:50:01 【问题描述】:我想做类似的事情:
library(Biostrings)
s1 <-DNAString("ACTTCACCAGCTCCCTGGCGGTAAGTTGATCAAAGGAAACGCAAAGTTTTCACTTCACCAGCTCCCTGGCGGTAAGTTGATCAAAGGAAACGCAAAGTTTTCAAGAAGACTTCACCAGCTCCCTGGCGGTAAGTTGATCAAAGGAAACGCAAAGTTTTCAAG")
s2 <-DNAString("GTTTCACTACTTCCTTTCGGGTAAGTAAATATATGTTTCACTACTTCCTTTCGGGTAAGTGTTTCACTACTTCCTTTCGGGTAAGTAAATATATAAATATATAAAAATATAATTTTCATCAAATATATAAATATATAAAAATATAATTTTCATCAAATATATAAAAATATAATTTTCATC")
pairwiseAlignment(s1,s2)
但使用这样的字符串:
x123 x4531 等
而不是 DNA 字母字符。有没有人知道在 R 甚至 Python 中实现这一目标的包。谢谢!
【问题讨论】:
你能澄清你的字符串是什么意思吗?您是否正在寻找使用任意字母而不是核苷酸/氨基酸的对齐器/字符串比较方法? 请提供你想要的函数的输出 错配总是会产生同样的影响,还是你想要一个像评分矩阵一样的花朵? 感谢@Chris_Rands。请参阅我对您的回答的评论。 【参考方案1】:Biopython's Align
模块可以接受您选择的字母,例如
>>> from Bio import Align
>>> aligner = Align.PairwiseAligner()
>>> aligner.mode = "global"
>>> aligner.alphabet
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> aligner.alphabet += "1234567890"
>>> alignments = aligner.align("X123Y", "B12XYXYXYX")
>>> print(alignments[0])
X-123-Y-----
--||--|-----
-B12-XYXYXYX
【讨论】:
谢谢。唯一的问题是我需要的不仅仅是字母表中的字符来捕获 100 个字符串。 @cs0815 可以修改aligner.alphabet
包含其他字符吗?
谢谢。我今天将仔细研究一下。我的理解是,字母表只有“1 个字符元素”——不幸的是,我有 100 个唯一字符(又名字符串),例如:abcd123 和 abcd1234,因此每个元素有几个字符。我还能在这个用例中使用 aligner.alphabet 吗?谢谢!以上是关于受全局 DNA 序列比对启发的字符串比对的主要内容,如果未能解决你的问题,请参考以下文章