數(shù)據(jù)提取及ggplot2畫圖

以CLL數(shù)據(jù)包為例:

1爹梁、提取所需數(shù)據(jù)

suppressPackageStartupMessages(library(CLL))
data(sCLLex)
sCLLex  #直接查看數(shù)據(jù)集(S4對象)中的信息
exprSet=exprs(sCLLex)   
##sCLLex是依賴于CLL這個package的一個對象
pdata=pData(sCLLex)
group_list=as.character(pdata[,2]) #pdata[,2]提取后為因子,需轉(zhuǎn)為字符串
exprSet[1:5,1:5]  #當基因集較大時念链,查看部分數(shù)據(jù)可減少內(nèi)存消耗
gpl = sCLLex@annotation  #獲取平臺信息及注釋包

2、安裝注釋包

#BiocManager::install('hgu95av2.db')  #安裝注釋包
library(hgu95av2.db)
ls("package:hgu95av2.db") #查看注釋包的內(nèi)容

ids=toTable(hgu95av2SYMBOL)  #toTable可將Bimap對象轉(zhuǎn)為數(shù)據(jù)框結(jié)構(gòu)
save(ids,exprSet,pdata,file = 'input.Rdata')

3掂墓、探索探針與基因symbol的對應(yīng)關(guān)系

length(unique(ids$symbol))  #查看共有多少個symbol,一般有多個探針對應(yīng)一個symbol
tail(sort(table(ids$symbol)))  ##查看基因?qū)?yīng)最多多少個探針
table(sort(table(ids$symbol)))  #顯示總的symbol對應(yīng)的探針數(shù)量并table

plot(table(sort(table(ids$symbol))))

table(rownames(exprSet) %in% ids$probe_id)  #注意兩個數(shù)據(jù)集的先后順序跨嘉,%in%表示前者中的變量與后者一一比較,返回布爾值

4祠乃、對數(shù)據(jù)進行篩選,去重:

exprSet=exprSet[rownames(exprSet) %in% ids$probe_id,]  #取得與注釋包交集后的表達矩陣
dim(exprSet)

ids=ids[match(rownames(exprSet),ids$probe_id),]  #match相當于%in%亮瓷,可以匹配返回邏輯值,也可以將前者數(shù)據(jù)的順序匹配給后者,使表達矩陣中的probe_id順序與ids中的一致
identical(ids$probe_id,rownames(exprSet))  #identical判斷兩個對象是否一致
dat=exprSet
ids$median=apply(dat,1,median) #ids新建median這一列嘱支,列名為median挣饥,同時對dat這個矩陣按行操作,取每一行的中位數(shù)亮靴,將結(jié)果給到median這一列的每一行
ids=ids[order(ids$symbol,ids$median,decreasing = T),]#先對ids$symbol排序于置,在此基礎(chǔ)上按照ids$median中位數(shù)從大到小排列的順序排序,將對應(yīng)的行賦值為一個新的ids
ids=ids[!duplicated(ids$symbol),]#將symbol這一列取取出重復(fù)項八毯,'!'為否,即取出不重復(fù)的項话速,去除重復(fù)的gene ,保留每個基因最大表達量結(jié)果
dat=dat[ids$probe_id,] #新的ids取出probe_id這一列泊交,將dat按照取出的這一列中的每一行組成一個新的dat
rownames(dat)=ids$symbol#把ids的symbol這一列中的每一行給dat作為dat的行名
dat[1:4,1:4]  #保留每個基因ID第一次出現(xiàn)的信息
dim(dat)

5、選擇對應(yīng)的數(shù)據(jù)作圖(基礎(chǔ)作圖):

exprSet=dat
#第一個樣本的所有基因的表達量作圖
boxplot(exprSet[,1])  #箱線圖
p<-hist(exprSet[,1]) #直方圖
barplot(exprSet[,1]) #條形圖
plot(density(exprSet[,1]))  #單獨核密度圖
polygon(density(exprSet[,1]),col="red", border="blue")  #多邊形繪制

6廓俭、ggplot2作圖:

library(reshape2)
exprSet_L=melt(exprSet)
colnames(exprSet_L)=c('probe','sample','value')
exprSet_L$group=rep(group_list,each=nrow(exprSet))
head(exprSet_L)

##繪圖
### ggplot2 
library(ggplot2)
p=ggplot(exprSet_L,
         aes(x=sample,y=value,fill=group))+geom_boxplot()
print(p)  ##箱線圖,fill映射到group
p=ggplot(exprSet_L,aes(x=sample,y=value,fill=group))+geom_violin()+theme(axis.text.x = element_text(angle = 45, hjust = 1, vjust = 1))  #小提琴圖研乒,theme(axis.text.x = element_text() 調(diào)整x軸刻度文字的角度
print(p)
p=ggplot(exprSet_L,aes(value,fill=group))+geom_histogram(bins = 200)+facet_wrap(~sample, nrow = 4)  #直方圖,用sample對值進行分面facet_wrap
print(p)
p=ggplot(exprSet_L,aes(value,col=group))+geom_density()+facet_wrap(~sample, nrow = 4)  #密度圖宽菜,facet_wrap分面
print(p) 
p=ggplot(exprSet_L,aes(value,col=group))+geom_density()  
print(p)
p=ggplot(exprSet_L,aes(x=sample,y=value,fill=group))+geom_boxplot()
p=p+stat_summary(fun="mean",geom="point",shape=23,size=3,fill="red") #在箱線圖框內(nèi)加均值的點
p=p+theme_set(theme_set(theme_bw(base_size=20)))
p=p+theme(text=element_text(face='bold'),axis.text.x=element_text(angle=30,hjust=1),axis.title=element_blank())  #將圖中的全部文本字體設(shè)為粗體,x軸標簽設(shè)為30度傾斜铅乡,將坐標軸的標簽文字關(guān)閉
print(p)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者犬庇。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市臭挽,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌欢峰,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纽帖,死亡現(xiàn)場離奇詭異举反,居然都是意外死亡,警方通過查閱死者的電腦和手機火鼻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來魁索,“玉大人,你說我怎么就攤上這事粗蔚。” “怎么了鹏控?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長抖僵。 經(jīng)常有香客問我,道長裆针,這世上最難降的妖魔是什么刨摩? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任澡刹,我火速辦了婚禮,結(jié)果婚禮上罢浇,老公的妹妹穿的比我還像新娘。我一直安慰自己沐祷,他們只是感情好,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布胞锰。 她就那樣靜靜地躺著,像睡著了一般嗅榕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凌那,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天吟逝,我揣著相機與錄音,去河邊找鬼块攒。 笑死,一個胖子當著我的面吹牛局蚀,可吹牛的內(nèi)容都是我干的麦锯。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼鹅巍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了骆捧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤敛苇,失蹤者是張志新(化名)和其女友劉穎顺呕,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體株茶,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡图焰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了技羔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡鳖粟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拙绊,到底是詐尸還是另有隱情,我是刑警寧澤时呀,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站谨娜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏趴梢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一坞靶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧彰阴,春花似錦、人聲如沸尿这。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至叨橱,卻和暖如春断盛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背愉舔。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留屑宠,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓躺翻,卻偏偏與公主長得像,于是被迫代替她去往敵國和親卫玖。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348