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

时间:2018-03-12 12:04:26

标签: python r sequence n-gram protein-database

有一些序列数据需要比较。预期输出是距离矩阵,其显示每个序列与其他序列的相似程度。以前,我在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)) ]

1 个答案:

答案 0 :(得分:1)

您可以使用stringdistmatrix包中的stringdist。查看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