在聚类蛋白质数据中使用 ngram(ngram.NGram.compare 在 R 中等效)

using ngram in clustering protein data (ngram.NGram.compare equivalent in R)

有一些序列数据需要比较。预期输出是距离矩阵,显示每个序列与其他序列的相似程度。以前,我在 Python 中使用 ngram.NGram.compare,现在我想切换到 R。我找到了 ngrambiogram 包,但我无法找到生成预期的输出。

假设这是数据

a <- c("ham","bam","comb")

输出应该是这样的(每一项之间的距离):

#      ham    bam   comb
#ham    0     0.5   0.83
#bam   0.5     0     0.6
#comb  0.83   0.6     0

它是输出的等效 Python 代码:

a = ["ham","bam","comb"]
import ngram
[(1 - ngram.NGram.compare(a[i],a[j],N=1))  
                          for i in range(len(a)) 
                          for j in range((i+1),len(a)) ]

您可以使用 stringdist 包中的 stringdistmatrix。查看 stringdist-metrics 文档,了解哪些指标可用。

a <- c("ham","bam","comb")
stringdist::stringdistmatrix(a, a, method = "jaccard")

          [,1] [,2]      [,3]
[1,] 0.0000000  0.5 0.8333333
[2,] 0.5000000  0.0 0.6000000
[3,] 0.8333333  0.6 0.0000000