最近抽空整理了以前寫的函數(shù)蹲坷,規(guī)范tinyarray包绿聘,反復(fù)檢查和優(yōu)化爬凑,調(diào)整了好久级解,終于得到下面的check結(jié)果
今天把他提交到CRAN了(是提交不是接收哈蝗肪,沒有那么快)
整理了一下安裝方式和里面的畫圖函數(shù)供大家參考。
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.本地安裝
點(diǎn)擊這個(gè)頁面的綠色按鍵code
然后點(diǎn)擊Download ZIP
蠕趁,下載到你的工作目錄下薛闪,用devtools::install_local("tinyarray-master.zip",upgrade = F,dependencies = T)
安裝。
1.3.安裝R包過程中可能出現(xiàn)的問題及解決辦法
如果報(bào)錯(cuò)說xx包找不到俺陋,那就安裝它豁延。
如果報(bào)錯(cuò)信息中出現(xiàn)http,404,internet,url等關(guān)鍵詞,說明是網(wǎng)絡(luò)問題腊状,一般來說本地安裝即可解決诱咏。
2. 常用圖表
動(dòng)輒十幾二十行的代碼,每次復(fù)制還要改動(dòng)缴挖,做多了實(shí)在是很麻煩袋狞,所以我寫了一些畫圖函數(shù),一開始是寫著玩映屋,后來發(fā)現(xiàn)還挺有用苟鸯,逐步完善中。
今天找到了一個(gè)非常漂亮的熱圖配色棚点,雖然是紅黃藍(lán)這么簡單早处,但是越看越好看,越看越順眼吶瘫析,就它了砌梆,可能很久都不會(huì)動(dòng)這個(gè)配色了默责。
2.1熱圖、PCA咸包、t-SNE桃序、箱線圖
先編一個(gè)示例數(shù)據(jù)
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
下面幾個(gè)圖的輸入數(shù)據(jù)都是表達(dá)矩陣exp和分組信息group_list(因子),group_list的每個(gè)元素需要和表達(dá)矩陣的每一列對(duì)應(yīng)烂瘫。畫圖代碼媒熊,已經(jīng)簡單到無以復(fù)加啦。
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是包里的內(nèi)置數(shù)據(jù)忱反,是DESeq2差異分析的結(jié)果表格。三大R包的差異分析結(jié)果繪制火山圖滤愕,這個(gè)函數(shù)是都支持的温算,用pkg參數(shù)指定即可。
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 韋恩圖
輸入數(shù)據(jù)是一個(gè)帶有元素名字的列表间影,這幾個(gè)元素名字會(huì)出現(xiàn)在韋恩圖里注竿。
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的代碼也簡化了,需要病人的生存信息魂贬,和用于分組的列巩割。其他的參數(shù)看幫助文檔咯。
x = survival::lung
draw_KM(meta = x,group_list = factor(x$sex),event_col = "status")
還有一些用于分析的函數(shù)付燥,且聽下回分解吧~
今天這個(gè)配色賞心悅目宣谈,心情甚好~