在聚类蛋白质数据中使用 ngram(ngram.NGram.compare 在 R 中等效)
using ngram in clustering protein data (ngram.NGram.compare equivalent in R)
有一些序列数据需要比较。预期输出是距离矩阵,显示每个序列与其他序列的相似程度。以前,我在 Python 中使用 ngram.NGram.compare
,现在我想切换到 R。我找到了 ngram
和 biogram
包,但我无法找到生成预期的输出。
假设这是数据
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
有一些序列数据需要比较。预期输出是距离矩阵,显示每个序列与其他序列的相似程度。以前,我在 Python 中使用 ngram.NGram.compare
,现在我想切换到 R。我找到了 ngram
和 biogram
包,但我无法找到生成预期的输出。
假设这是数据
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