美文网首页«怎么制作生信美图»生信R-作图
宝藏R包tinyarray:常用图表一键收走

宝藏R包tinyarray:常用图表一键收走

作者: 小洁忘了怎么分身 | 来源:发表于2021-09-02 23:59 被阅读0次

    最近抽空整理了以前写的函数,规范tinyarray包,反复检查和优化,调整了好久,终于得到下面的check结果



    今天把他提交到CRAN了(是提交不是接收哈,没有那么快)
    整理了一下安装方式和里面的画图函数供大家参考。

    1.安装方式

    if(!require(tinyarray))devtools::install_github("xjsun1221/tinyarray")
    library(tinyarray)
    

    1.1在线安装

    if(!require(devtools))install.packages("devtools")
    if(!require(tinyarray))devtools::install_github("xjsun1221/tinyarray",upgrade = F)
    

    1.2.本地安装

    https://github.com/xjsun1221/tinyarray

    点击这个页面的绿色按键code然后点击Download ZIP,下载到你的工作目录下,用devtools::install_local("tinyarray-master.zip",upgrade = F,dependencies = T)安装。

    1.3.安装R包过程中可能出现的问题及解决办法

    如果报错说xx包找不到,那就安装它。
    如果报错信息中出现http,404,internet,url等关键词,说明是网络问题,一般来说本地安装即可解决。

    2. 常用图表

    动辄十几二十行的代码,每次复制还要改动,做多了实在是很麻烦,所以我写了一些画图函数,一开始是写着玩,后来发现还挺有用,逐步完善中。
    今天找到了一个非常漂亮的热图配色,虽然是红黄蓝这么简单,但是越看越好看,越看越顺眼呐,就它了,可能很久都不会动这个配色了。

    2.1热图、PCA、t-SNE、箱线图

    先编一个示例数据

    exp <-  matrix(rnorm(3000,sd = 3),nrow = 100)
    colnames(exp) <- paste0("sample",1:30)
    rownames(exp) <- paste0("gene",1:100)
    exp[1:4,1:4]
    #>         sample1   sample2    sample3    sample4
    #> gene1 -2.026503 7.1928419 -6.5887243  1.0267023
    #> gene2  1.098031 1.2868180  1.6771063  0.2968982
    #> gene3 -2.768686 1.0838888 -0.6214766 -1.6120365
    #> gene4  2.113145 0.6692397 -1.3044274 -3.3225924
    exp[,1:10] = exp[,1:10]-runif(10,0,7)
    exp[,21:30] = exp[,21:30]+ runif(10,0,7)
    group_list <- factor(rep(c("A","B","C"),each = 10))
    exp[1:4,1:4]
    #>          sample1   sample2    sample3   sample4
    #> gene1 -6.0031975  3.216147 -10.565419 -2.949992
    #> gene2 -1.7947459 -1.605959  -1.215670 -2.595878
    #> gene3 -5.3604331 -1.507859  -3.213224 -4.203784
    #> gene4 -0.4283194 -1.872225  -3.845892 -5.864057
    table(group_list)
    #> group_list
    #>  A  B  C 
    #> 10 10 10
    

    下面几个图的输入数据都是表达矩阵exp和分组信息group_list(因子),group_list的每个元素需要和表达矩阵的每一列对应。画图代码,已经简单到无以复加啦。

    draw_heatmap(exp,group_list)
    
    
    draw_pca(exp,group_list)
    
    
    draw_tsne(exp,group_list,perplexity = 5)
    
    
    ggheat(t(exp),group_list,show_colnames = F,show_rownames = F)
    
    
    draw_boxplot(exp[1:6,],group_list)
    

    2.2.火山图

    这里的deseq_data是包里的内置数据,是DESeq2差异分析的结果表格。三大R包的差异分析结果绘制火山图,这个函数是都支持的,用pkg参数指定即可。

    head(deseq_data)
    #>                  baseMean log2FoldChange      lfcSE      stat        pvalue
    #> hsa-mir-210    8477.61756       2.999675 0.12351512  24.28589 2.763408e-130
    #> hsa-mir-122      66.55815       6.533945 0.27575590  23.69467 4.091886e-124
    #> hsa-mir-155    1676.87858       3.490095 0.15302583  22.80723 3.887416e-115
    #> hsa-mir-106b    863.34927       1.170438 0.05143452  22.75589 1.254723e-114
    #> hsa-mir-508     128.07750      -4.514783 0.19906028 -22.68048 6.982192e-114
    #> hsa-mir-21   482523.17286       2.168263 0.09914140  21.87041 4.970741e-106
    #>                       padj
    #> hsa-mir-210  1.525401e-127
    #> hsa-mir-122  1.129361e-121
    #> hsa-mir-155  7.152846e-113
    #> hsa-mir-106b 1.731517e-112
    #> hsa-mir-508  7.708340e-112
    #> hsa-mir-21   4.573082e-104
    draw_volcano(deseq_data)
    

    2.3 韦恩图

    输入数据是一个带有元素名字的列表,这几个元素名字会出现在韦恩图里。

    x = list(Deseq2=sample(1:100,30),edgeR = sample(1:100,30),limma = sample(1:100,30))
    draw_venn(x,"test")
    

    2.4 KM-plot

    KM-plot的代码也简化了,需要病人的生存信息,和用于分组的列。其他的参数看帮助文档咯。

    x = survival::lung
    draw_KM(meta = x,group_list = factor(x$sex),event_col = "status")
    

    还有一些用于分析的函数,且听下回分解吧~

    今天这个配色赏心悦目,心情甚好~

    相关文章

      网友评论

        本文标题:宝藏R包tinyarray:常用图表一键收走

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