我的R學習領(lǐng)路人是北大生信在讀博士孟浩巍,學習R是從參加他的知乎live課程《R入門與基礎(chǔ)繪圖系統(tǒng)》開始的冠骄,從第一次講座時間到現(xiàn)在雖然才過去不到一周攒读,但我已經(jīng)可以把R當做一個不太好用的excel來進行簡單的圖形繪制了片排。接下來對我的課程學習進行小結(jié)分享寨腔,并做一下接下來的學習規(guī)劃。
1. 知乎live課程收獲
早在第一次生信入門課上就對R有了些許的了解率寡,知道它是一個強大的繪圖與統(tǒng)計工具迫卢,便決定好好學習它。雖然很多人都先推薦學linux系統(tǒng)冶共,學其他一門腳本語言乾蛤,但抱著對它用來作圖的極大興趣每界,我竟然現(xiàn)在windows系統(tǒng)上裝上了它,這一用起來就有些一發(fā)不可收拾了:它的功能太強大了家卖,它的繪圖太便捷了眨层。
R語言的由來:
R語言由付費的S語言發(fā)展而來的,而S語言誕生于著名的貝爾實驗室上荡。1995年趴樱,兩位R語言之父正式推出R軟件恼策。
R語言的優(yōu)勢和劣勢
R語言的優(yōu)勢在于它的開源裤唠,它優(yōu)秀的跨平臺性鹃操,它支持腳本和批處理甘磨,同時其良好的統(tǒng)計處理、靈活的語言铣墨、便捷的畫圖方法及豐富的R包讓它在生物信息學中有著無可取代的作用浦夷。
盡管如此邑飒,開源的R語言也讓它的維護變得艱難金刁,其說明文檔也相當不規(guī)范,給閱讀帶來了一定的困擾议薪。同時較慢的運算速度尤蛮、極慢的for循環(huán)、較大的內(nèi)存消耗和非命令行條件下只支持單核計算的特點也限制了它的一些應用斯议。
R語言開發(fā)環(huán)境的搭建
目前产捞,我練習的還是基于windows系統(tǒng)下的R,其安裝和運行也很方便哼御。在官網(wǎng)下載對應系統(tǒng)的R語言包安裝即可坯临。同時還需要安裝R Studio,即可構(gòu)建出一個良好的開發(fā)環(huán)境恋昼。
在一切就緒后看靠,有一個小小的設置會讓你的界面更好用,那就是主題配置和高亮函數(shù)液肌。具體操作如下:
主題配置:右上角Tools-Global Options-Appearance-Theme-Cobalt(群主推薦)挟炬;
高亮R函數(shù):Tools-Global Options-Code-Display-Hightlight R function calls -Apply。
關(guān)于R的學習資料嗦哆,主播也給我們推薦了很多谤祖,接下來我將選擇較為容易的R Beginner作為我的入門參考書目,希望自己可以早點做到真正的入門老速。
溫馨小提示:
用R要養(yǎng)成良好習慣粥喜,及時清空環(huán)境變量:rm(list=ls())
Run的快捷方式為ctrl+enter
R包
在R中當需要完成特定的程序功能時,需要用相應的R包來實現(xiàn)橘券。而安裝R包的方式主要有以下兩種:
1.?CRAN:R語言官方發(fā)布的包额湘,模板需要聯(lián)網(wǎng)卿吐,install.packages(“package name”)。
2. Bioconductor:專門做生信分析的R包的集合缩挑,biocLite(“package name”)但两,該網(wǎng)站還有很多優(yōu)秀免費的course可供我們?nèi)W習。
由于R存在交叉調(diào)用且出錯難以辨認的問題供置,下載后安裝會有依賴性問題谨湘,所以推薦在線安裝。
R的繪圖系統(tǒng)
R在繪圖功能很強大芥丧,具體可分為R的基礎(chǔ)繪圖系統(tǒng)和高級繪圖系統(tǒng)紧阔,由于高級繪圖系統(tǒng)很多參數(shù)難以更改,所以主播推薦基礎(chǔ)繪圖续担,它可以做出來更多的定制東西來擅耽。所以我先從基礎(chǔ)繪圖學起,同時簡單了解一下高級繪圖物遇。
基礎(chǔ)繪圖又包括兩類:一是低級繪圖函數(shù)乖仇,如創(chuàng)建畫布、點询兴、線乃沙、多邊形等;二是高級繪圖函數(shù)诗舰,如plot()警儒,boxplot(),hist()眶根,density()等蜀铲。
高級繪圖也包括兩類:一是grid繪圖系統(tǒng),如基于grid繪圖系統(tǒng)開發(fā)的ggplot2等属百;二是lattice繪圖系統(tǒng)记劝。
2. R 的練習
有了以上理論知識,就可以實戰(zhàn)上機了诸老,因為計算機語言的學習光看書是沒用的隆夯,關(guān)鍵是要練習。我跟著主播的步伐别伏,從安裝到開始敲代碼蹄衷,一步一步進行中。
1.簡單操作和基本函數(shù)的練習厘肮。
(1)練習print(“Hello word”)
(2)常用的賦值操作
(3)生成向量
(4)創(chuàng)建序列seq/rep
(5)c函數(shù)合并向量
(6)刪除奇數(shù)位置
(7)創(chuàng)建矩陣
(8)取矩陣一部分
(9)創(chuàng)建數(shù)據(jù)表格式
交作業(yè)了愧口,我的相關(guān)練習代碼如下:
2.基本作圖
有了以上基礎(chǔ)知識,就可以進行簡單圖形的繪制了类茂,如散點圖(plot)耍属,條形圖(barplot)托嚣,直方圖(hist),箱線圖(boxplot)等厚骗。
3.作圖進階
當然示启,一個好的圖片,可能需要幾易其稿领舰,那么我們也來感受一下修圖的樂趣夫嗓。
當我自己做出來這幾幅圖時,突然有了小小的成就感冲秽,真正體會到R語言這一工具的強大舍咖,于是也有了繼續(xù)學習下去的興趣了。
4.其他常用操作锉桑,寫循環(huán)排霉,做判斷,自定義函數(shù)
5.項目實戰(zhàn)
有了以上的基礎(chǔ)民轴,我們可以體驗小項目啦攻柠,主播給我們找了一個真實的RNA-seq數(shù)據(jù),教我們?nèi)绾稳プ隹蒲兄谐R姷膒lot(散點圖)和heatmap(熱圖)后裸。到這里辙诞,真有一種入門了的感覺呢。
具體步驟如下:
(1)安裝heatmap并加載:install.packages("pheatmap") / library(pheatmap)
(2)數(shù)據(jù)導入:read.table轻抱,注意路徑符號“/”,帶標題“header=T”,分隔符為“\t”
(3)差異基因篩選金標準三條均須滿足(涉及:或“|”旦部,且“&”):
a.統(tǒng)計顯著性:p<0.05;
b.表達量變化明顯:log2(fold change)>1or<-1祈搜;
c.有生物學意義:one of the fpkm>1。
(4)繪制箱線圖士八,看表達量分布(distribution)
(5)繪制熱圖容燕,看基因差異變化趨勢。
6.獨立練習
有了以上的數(shù)據(jù)婚度,我迫不及待的找出來自己一部分RNA-seq來練習蘸秘,趁熱打鐵。我的數(shù)據(jù)保存格式為excel蝗茁,教程里并沒有交該類數(shù)據(jù)的導入醋虏,但我學到了如何用google解決問題,并嘗到了甜頭哮翘,順利完成了獨立練習颈嚼。
具體步驟如下:
(1)安裝heatmap并加載(已有):install.packages("pheatmap") / library(pheatmap);
(2)數(shù)據(jù)導入:將excel保存為CSV格式饭寺,讀取方式為read.csv阻课,注意路徑符號“/”,帶標題“header=T”叫挟,分隔符為“\t”
(3)差異基因篩選金標準三條均須滿足(涉及:或“|”,且“&”):
a.統(tǒng)計顯著性:p<0.05;
b.表達量變化明顯:log2(fold change)>1or<-1限煞;
c.有生物學意義:one of the fpkm>1抹恳。
(4)繪制箱線圖,看表達量分布(distribution)
(5)繪制熱圖署驻,看基因差異變化趨勢奋献。
3.總結(jié)與展望
不到一周的學習自己有這么多收獲已經(jīng)很欣喜了,這無不得益于孟主播的精彩直播硕舆。當然秽荞,我深知自己連一只腳都還邁進,還需要進一步去學習去鞏固抚官。但學習中的樂趣和興趣顯然成為自己堅持下去的理由和信心扬跋。接下來,我將開始R beginner的學習凌节,爭取用一周的時間完成該書的閱讀和相關(guān)代碼的練習钦听,期待自己下一周的小結(jié)吧。
本文參考了孟浩巍博士知乎live相關(guān)課程倍奢,在此表示感謝朴上,請勿隨意轉(zhuǎn)載。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?豬豬頭 2018.4.29 于倫敦