首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从R中的模糊字符串匹配返回实际匹配

如何从R中的模糊字符串匹配返回实际匹配
EN

Stack Overflow用户
提问于 2015-11-01 03:15:13
回答 1查看 61关注 0票数 0

我有大量的DNA序列,我需要能够匹配那些具有特定字符串的序列。然而,目标有一些变化,所以我使用模糊匹配进行匹配。我希望得到实际的匹配结果,而不是整个序列。agrep不会这样做。有没有人知道有什么包是这样的?

数据帧RepeatAlusSequencesdf示例

代码语言:javascript
复制
>chr1:61695-62229      aattccaagagtattattgcaccaaaaggcatggacttaaaattcttgatacatgatttcaaaatattttctttaaggtttgaatcagtctatattccctccagcagcgtataaaagtgccaatttctctgatccttagccagtttgggtaataataattgtaaaacttttttttctttttttttgagacagagtctccctctgtcgccaggctgaagtgcagtggcgcaatctcggctcactgcaacctccgcctcccggggtcaagctattctcctgcctcagcctcccaagtagctgggactacaggcatgcaccaccatgcccagctaatttttgttatttttagtagagatggagtttccccatgttggacaggatggtctcgatctcttgacctcgtgatccaccctcctcggcctcccaaagtgctgggataacaggcgtgaacaaccatgcccggcctgtaaaactttttcctaatttaacagaaaaataatagtattatattttatcatatttctttgatttcta

>chr1:101718-102194   taaaaataaatgtattaagtatgaacaacaaaaaagctagtaaaggttgaacaacaactatccttaggaaagtggaaataatgtattaataaatatgaaagcaggctagccacggtgactcacatctgtaatcccagcactttgggaggctgaggcaggcagatcacctgaggtcaggagttccagaccagcctggccaacatggtgaaatcttgtctctcctacaaatacaaaaactagccaggcttggttgtgcactcctgtaattcgagctacttgggaggctgaggcaggagaatctcttgaacctgagaggcagaggttgcagtgagccaagatcatgccactgcactccagctggggcaacagagtgacactccatctcaaaataaataaataagaaagcagaaactaataaactagaaaacagaaacatagaactaatttataaatcaaagcactatgccttgaaaaga

我使用的代码如下:

代码语言:javascript
复制
RepeatAlusSequencesdfMatch <- RepeatAlusSequencesdf[agrep("aacctcaaagactggcctca", RepeatAlusSequencesdf[,2],ignore.case = TRUE, max.distance = 0.3), ]

我喜欢返回的内容:

代码语言:javascript
复制
aacctcaaagactggcctca
aacctcattgactggcctca

而不是整个序列

EN

回答 1

Stack Overflow用户

发布于 2015-11-01 04:21:04

可能有一个专门的包可以做到这一点,但这是可行的:我创建了一个与您要匹配的字符串长度相同的子字符串的向量。然后我使用agrep来识别匹配的子字符串。

代码语言:javascript
复制
#long string
s1<-"aattccaagagtattattgcaccaaaaggcatggacttaaaattcttgatacatgatttcaaaatattttctttaaggtttgaatcagtctatattccctccagcagcgtataaaagtgccaatttctctgatccttagccagtttgggtaataataattgtaaaacttttttttctttttttttgagacagagtctccctctgtcgccaggctgaagtgcagtggcgcaatctcggctcactgcaacctccgcctcccggggtcaagctattctcctgcctcagcctcccaagtagctgggactacaggcatgcaccaccatgcccagctaatttttgttatttttagtagagatggagtttccccatgttggacaggatggtctcgatctcttgacctcgtgatccaccctcctcggcctcccaaagtgctgggataacaggcgtgaacaaccatgcccggcctgtaaaactttttcctaatttaacagaaaaataatagtattatattttatcatatttctttgatttcta"
my.string <-"aacctcaaagactggcctca"
substrings <-substring(s1,seq(1,nchar(s1)-nchar(my.string)+1,1),seq(nchar(my.string),nchar(s1),1))
agrep(my.string, substrings,ignore.case = TRUE, max.distance = 0.35,value = TRUE)

[1] "caccaaaaggcatggactta" "accaaaaggcatggacttaa"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33455556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档