rect函数_R函数不会写,quot;抄quot;总会吧!
前面我們簡單的介紹了R函數。有些人可能會說,我現在的R水平有限,還不足以寫出很高級的函數,該怎么辦?俗話說前人栽樹后人乘涼,他山之石可以攻玉,魯迅同志也提出過“拿來”主義。已經有前人,高手寫出了很多很實用,很強大的R函數,你直接拿來用就可以了。如果你很好學,也可以把人家的函數源代碼拿來學習,其實這也是一種學習R的很好的方法。你如果完全讀懂了原作者的函數,你還可以稍作修改用作他用,甚至可以讓這個函數功能更加強大。
下面給大家舉個具體的例子,火山圖大家可能都不陌生,是一種展示差異表達分析結果的常用可視化方式。
在R的GDCRNATools包中就內置了一個專門畫火山圖的函數,叫做gdcVolcanoPlot。我們有兩種方法可以獲取這個函數的源代碼。
1.通過下面的鏈接來獲取gdcVolcanoPlot的源代碼
https://rdrr.io/bioc/GDCRNATools/src/R/gdcDEGVisulization.R
2.從Bioconductor官網上去下載這個R包的所有源代碼,
http://www.bioconductor.org/packages/release/bioc/html/GDCRNATools.html
注意一定要下載tar.gz格式的文件。.zip格式的文件是windows系統下的R安裝包,都是已經編譯過的,你是無法看到源代碼的。
解壓之后你就看到所有函數的源代碼
我們要找的gdcVolcanoPlot的源代碼就在gdcDEGVisulization.R這個文件中。
我們照"抄"gdcVolcanoPlot這個函數,接下來我們就可以用這個函數來繪制火山圖了。
gdcVolcanoPlot<-function (deg.all, fc = 2, pval = 0.01) {geneList <- deg.allgeneList$threshold <- c()geneList$threshold[geneList$logFC > log(fc, 2) & geneList$FDR < pval] <- 1geneList$threshold[geneList$logFC >= -log(fc, 2) & geneList$logFC <= log(fc, 2) | geneList$FDR >= pval] <- 2geneList$threshold[geneList$logFC < -log(fc, 2) & geneList$FDR < pval] <- 3geneList$threshold <- as.factor(geneList$threshold)lim <- max(max(geneList$logFC), abs(min(geneList$logFC))) + 0.5volcano <- ggplot(data = geneList, aes(x = logFC, y = -log10(FDR)))volcano + geom_point(aes(color = threshold), alpha = 1, size = 0.8) + xlab("log2(Fold Change)") + ylab("-log10(FDR)") + scale_colour_manual(values = c("red", "black", "green3")) + xlim(c(-lim, lim)) + geom_vline(xintercept = c(-log(fc, 2), log(fc, 2)), color = "darkgreen", linetype = 3) + geom_hline(yintercept = -log(pval, 10), color = "darkgreen", linetype = 3) + theme_bw() + theme(axis.line = element_line(colour = "black"), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), panel.border = element_rect(colour = "black"), panel.background = element_blank()) + theme(legend.position = "none") + theme(axis.text = element_text(size = 14), axis.title = element_text(size = 16)) } ?接下來我們來畫火山圖,數據是從DEGAll.rda這個文件中來,具體如何生成這個文件和如何使用這個文件可以參考R的save,load函數和 .rda文件。加載之后你就會有DEGall這個變量了,里面存放的是差異表達分析之后的結果。畫火山圖需要用到logFC,FDR。
load("DEGAll.rda") #這里用到ggplot2這個包來畫圖 library(ggplot2) gdcVolcanoPlot(DEGAll)你就會得到下面這張火山圖,是不是很方便,不會寫函數一樣可以畫火山圖。
Reference:
1.R的save,load函數和 .rda文件
2.R函數
DEGAll.rda文件的獲取方式請參考下面這篇文章
https://mp.weixin.qq.com/s?__biz=MzI4ODE0NTE3OA==&mid=2649206010&idx=1&sn=976c0bf7081f82527a47f758b7cbf909&chksm=f3d1e68fc4a66f996d87c44551ceafc7d4e5bc19b368499a474dedeb3a471456362b5108d23a&token=1910394879&lang=zh_CN#rd?mp.weixin.qq.com 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的rect函数_R函数不会写,quot;抄quot;总会吧!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股票缩量上涨时有什么特点?
- 下一篇: 股票账户里没有钱可以申购新股吗?