【问题标题】:DBScan tabulating ResultsDBScan 制表结果
【发布时间】:2020-08-10 21:19:23
【问题描述】:

我正在处理测序数据,我希望使用 DBscan 使用等位基因频率参数创建集群,这基本上是 0-100% 发生的基因突变。我正在比较每个患者的两个时间点,这给了我 x 和 y 参数。我玩过 eps 和 minPts 值,这很好,但我遇到的问题是将我得到的数据制成表格。

所以我想知道程序正在创建的集群中有哪些基因。我查看了 DBscan 的文档,但似乎在任何地方都找不到相关代码。话虽如此,我对 R 完全是个业余爱好者,所以我可能错过了一些非常简单的东西。

我正在使用“dbscan”包 这就是我运行的

#Curating df to have relevant columns plus gene names, and transforming to matrix
dbscanplot.1 <- Curated.1 %>% select(Gene.Symbol.y, Diag.Allele.Fraction, Rel.Allele.Fraction)

#removing gene names to create matrix
dbscanplotMATRIX.1 <- as.matrix(dbscanplot.1[,2:3])

#running dbscan
kNNdistplot(dbscanplotMATRIX.1, k = 5)
abline(h=5, col = "red", lty=2)

pairs(dbscanplotMATRIX.1, col = res$cluster + 1L)

fr <- frNN(dbscanplotMATRIX.1, eps = 1.3)
dbscan(fr, minPts = 3)

#plotting data
plot(dbscanplotMATRIX.1, col=res$cluster)
points(dbscanplotMATRIX.1[res$cluster==0,], pch = 3, col = "grey")

我想知道每个簇中有哪些基因,所以我会操纵"dbscan(fr, minPts = 3)" 行?

我已经尝试过db$cluster 之前的推荐,但生成的数据令人困惑,因为有超过一千个数据点正在分析。

一个例子是:
[1] 0 1 2 3 0 4 0 0 2 2 2 5 2 2 2 0 2 0 1 0 4 0 4 2 4 4 2 2 0 2 0 4 2 4 4 6 7 4

但有大量数据点。我想我想知道是否可以将生成的数据与基因名称相匹配。

编辑:我想我已经在 Michael Hasler 的帮助下解决了我的问题。我将 dbscan 结果导出为整数,然后将新列添加到我的原始数据框中。它似乎与数据框结果匹配。

clusters<-res$cluster
dbscanplot.1["Cluster"] <- clusters

抱歉,这是一个非常简单的解决方案,但我是一个完全的新手!

感谢您的帮助!

【问题讨论】:

    标签: r dbscan


    【解决方案1】:

    来自文档? dbscan

     Value:
    
     An object of class 'dbscan_fast' with the following components:
       eps : value of the eps parameter.
       minPts : value of the minPts parameter.
       cluster : A integer vector with cluster assignments. Zero indicates
          noise points.
    

    因此,您可以通过以下方式在代码中获取集群分配:

    db <-dbscan(fr, minPts = 3)
    db$cluster
    

    【讨论】:

    • 我之前做过,问题是我正在分析的数据有超过一千个点,并且生成的结果数据非常庞大,有没有办法结合集群信息有基因符号吗?
    猜你喜欢
    • 2019-08-13
    • 2011-10-13
    • 2013-04-01
    • 2016-06-25
    • 2020-10-04
    • 2014-07-10
    • 2020-03-13
    • 2015-06-01
    • 1970-01-01
    相关资源
    最近更新 更多