美文网首页
RNAseq数据做聚类树

RNAseq数据做聚类树

作者: 生信云笔记 | 来源:发表于2021-12-26 07:59 被阅读0次

    日常瞎掰

      近日看到一段话,非常的有意思,拿出来与大家一同品味:
    “18岁的你很好,不是因为你,而是因为18岁;28岁的你很好,不是因为28岁,而是因为你;不知不觉中我们就到了需要给年龄赋值的阶段.......”
      轻描淡写中似乎道出了一些当今社会年轻人的压力根源,“不是因为自己想要什么,而是社会赋予地应该要什么.......”

      言归正传,今天来说说如何用RNAseq的数据来做聚类树。为什么会有这样的需求?因为有人特意过来找我们做样本的聚类树,他们测了十几个RNAseq的样本,分成野生型和突变体两大类,每种类型做了三种处理,每种处理做了三个重复,最后想看看这十几个样本的关系远近。当我听到的时候,首先想到是用PCA和聚类热图的方式来展示。可是他们觉得这样看起来不够直接,没有像进化树那样一眼就能知道关系的远近。那就做个聚类树看看吧。

    聚类树

      废话不多说,下面我们用模拟的RNAseq数据来演示如何做聚类树:

    mat <- matrix(rnorm(360),ncol=18)
    colnames(mat) <- paste0('sample',seq(1,18))
    rownames(mat) <- paste0('gene',seq(1,20))
            sample1     sample2    sample3    sample4    sample5
    gene1 -1.302396  0.28176220  0.4711619  1.9287826 -0.4354538
    gene2  1.113912  0.07626671 -0.3509515 -0.8295646  1.3269478
    gene3  1.329852  0.46562396  0.4500004  0.3439561  0.3850029
    gene4 -0.167927  0.03983575 -1.8150466 -0.6601300  0.1458969
    gene5 -2.465123 -2.22629204  0.3528369 -1.4327633  1.3690882
    
    hc <- hclust(dist(t(mat)))
    plot(hc)
    

    结果如下图所示:

      做一个聚类树,上面的几行代码就可以轻松实现,如果你想稍微让图漂亮一些,比如让树的分支下面对齐,可以做一些修改添加一些代码:

    dend <- as.dendrogram(hc)
    plot(dend)
    

    结果如下图所示:

      上面的图基本已经符合聚类树的审美了,如果还想要更个性的一点图,R基础语言实现其他就有点麻烦了,不过咱们可以用别人写好的R包——ggdendro。

    install.packages('ggdendro')
    library(ggdendro)
    ggdendrogram(hc)
    

    结果如下图:

      可以看到用ggdendro包画聚类树也是相当的简单,但有更多的好处是该包出的图是基于ggplot对象,这样就可以根据自己的需要任意修改,这应该是一件很美妙的事。

    结束语

      上面的代码画一个聚类树肯定没有问题了,如果你还想对图做更多的事情,那就不得不提Y叔的R包ggtree了,这可是专门用来处理进化树的工具,不管是注释还是更高级的可视化肯定可以满足你的需求。今天就分享到这么多了~

    相关文章

      网友评论

          本文标题:RNAseq数据做聚类树

          本文链接:https://www.haomeiwen.com/subject/jhaptrtx.html