在“大”数据集上计算编辑距离

问题描述 投票:0回答:1

我目前正在尝试为大约 420 个长 DNA 序列(约 2kbp)的相当大的数据集计算 Levenshtein 距离矩阵,因此我无法手动检查它们是否存在编辑距离错误。

详细来说,我想将每个序列与其他序列进行比较,以便我了解我的序列有多远。

我的数据框目前看起来像这样:

Accession Species  c1 c2 Sequence
     123    xxx     y  z  AGCTGTAC
     456    yyy     x  z  CTGATGTC
     789    zzz     y  z  TGCATGCG

理想情况下,我想要这样的东西:

    123 456 789
123  -   y   z
456  x   -   z
789  x   y   -

其中 x、y 和 z 是编辑距离。

我不知道如何开始解决这个问题,到目前为止我最好的选择是

stringdist::stringdistmatrix()
。我应该建立一个循环吗?如果是这样,知道怎么做吗?

r levenshtein-distance dna-sequence edit-distance
1个回答
0
投票

您应该可以直接使用

stringdistmatrix()

dat <- data.frame(sequence = c("AGCTGTAC","CTGATGTC","TGCATGCG", "AGCTGTAC"))
stringdist::stringdistmatrix(dat$sequence, method="lv")
#>   1 2 3
#> 2 4    
#> 3 5 4  
#> 4 0 4 5

创建于 2025-01-08,使用 reprex v2.1.0

© www.soinside.com 2019 - 2024. All rights reserved.