最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

科研代碼分享|R的Limma包實現(xiàn)表達譜數(shù)據(jù)標準化和差異基因提取

2022-06-06 15:29 作者:爾云間  | 我要投稿

科研有捷徑,輸入代碼,一鍵獲取科研成果!就是這么省事,來具體看下有多方便!

搜索http://985.so/a9kb查看全部代碼(目前共計50+持續(xù)新增中),也可以點擊右側(cè)【目錄】,可以看到更多有趣的代碼

真香提示:文末可以知道如何獲取代碼~?

在處理高通量數(shù)據(jù)過程中,我們往往需要借助一些表達譜信息進行比對分析,通過不同類型樣本之間的比較,獲得與疾病表型存在顯著相關(guān)性的基因標識。

GEO數(shù)據(jù)庫http://www.ncbi.nlm.nih.gov/geo/為我們提供了大量和疾病相關(guān)的表達譜信息,其包含物種豐富(人,鼠,?植物等),表達譜類型多樣(芯片數(shù)據(jù),甲基化數(shù)據(jù), RNA-seq數(shù)據(jù)等),并且為使用者提供了各種可下載的數(shù)據(jù)資源。其中比較常用的一種下載資源是CEL格式文件,即原始數(shù)據(jù),cel文件就是Affymetrix掃描儀產(chǎn)出的原始數(shù)據(jù)文件,記錄了每個probe 的signal intensity。

這里我們通過從GEO數(shù)據(jù)庫下載的一個樣例,逐步介紹RMA進行CEL表達譜數(shù)據(jù)標準化,以及l(fā)imma算法提取差異表達基因的過程。

首先我們從GEO下載瘢痕瘤的表達譜數(shù)據(jù)GSE7890,下載地址http://www.ncbi.nlm.nih.gov/geo/query/acc.cgiacc=GSE7890,下載CEL文件到本地,解壓,這里默認目錄為F:\。之后調(diào)用R語言的RMA包,標準化過程如下:

直方圖為標準化前后數(shù)據(jù)分布的比較,可以觀察出基因的以2為底對數(shù)轉(zhuǎn)換后的信號值集中在什么區(qū)間

箱式圖為RMA方法消除樣本間差異前后的數(shù)據(jù)比較,紅色圖代表處理前數(shù)據(jù)分布,藍色為處理后數(shù)據(jù)分布,可見RMA方法可以有效去除樣本間差異。

實現(xiàn)代碼如下:

source("http://bioconductor.org/biocLite.R")

biocLite("affy")

biocLite("Biobase")

biocLite("tkWidgets")


library(affy)

AffyData<-ReadAffy(widget=TRUE)?????

exprsSet.RMA<-rma(AffyData)???##用rma方法處理數(shù)據(jù)

exp.RMA<-exprs(exprsSet.RMA)??##?exprsSet.MAS5<-mas5(AffyData)??##用mas5方法處理數(shù)據(jù)

write.exprs(exprsSet.RMA,?file="mydata.txt")??##結(jié)果保存

hist(log2(intensity(AffyData[,4])),breaks=100,col="blue")????##畫芯片數(shù)據(jù)的直方圖,因為實驗數(shù)據(jù)變化范圍大所以取log2,結(jié)果集中在6~8,大于10?的很少,說明樣本僅少部分高表達,與實際吻合。

par(mfrow=c(1,2))

boxplot(AffyData,col="red")

boxplot(data.frame(exp.RMA),col="blue")?##?畫箱式圖,比較數(shù)據(jù)分布情況

plot(exp.RMA[,1:2],log="xy",pch=".",main="all")

plot(pm(AffyData)[,1:2],log="xy",pch=".",main="pm")

plot(mm(AffyData)[,1:2],log="xy",pch=".",main="mm")

plot(exp.RMA[,1:2],pch=".",main="exp.RMA")??##?散點圖評價兩個樣本之間的數(shù)據(jù)差異

library(genefilter)???##?函數(shù)rowSds在genenfliter中

rsd<-rowSds(exp.RMA)???##?計算行的標準差

sel<-order(rsd,decreasing=TRUE)[1:20]??##?選擇表達差異高的top20,order返回行號

heatmap(exp.RMA[sel,],col=rainbow(256))?##?畫熱圖

之后我們獲得了標準化后的表達譜數(shù)據(jù),接下來我們可以利用limma package的算法對表達譜數(shù)據(jù)進行差異基因提取。

需要設(shè)置的參數(shù)包括表達譜數(shù)據(jù)的文件目錄,case組和control組的數(shù)據(jù),以及輸出文件的文件名,這里默認為case_control_limma.txt。那么對于我們的樣例文件,我們將其放置于F:\盤下,case組(treated with**)為9個,control組(treated without**)為10個,實現(xiàn)的代碼如下:

library(limma)

setwd("F:\\")

exp<-read.table("profile_normalized.txt",header=T,sep="\t")

rownames(exp)<-exp[,1]

exp<-exp[2:20]

exp<-as.matrix(exp)


samps<-factor(c(rep("case",9),rep("control",10)))

design?<-?model.matrix(~0+samps)?;

colnames(design)?<-?c("case","control")?

fit?<-?lmFit(exp,?design)?

cont.matrix<-makeContrasts(case-control,levels=design)?

fit2?<-?contrasts.fit(fit,?cont.matrix)?

fit2?<-?eBayes(fit2)?

final<-topTable(fit2,?coef=1,?number=dim(exp)[1],?adjust.method="BH",?sort.by="B",?resort.by="M")

write.table(final,paste("case_control","_limma.txt"),quote=FALSE,sep="\t")

最后輸出的結(jié)果如下圖所示:

表中共包含8列,分別代表探針I(yè)D,校正后P值,校正前P值,t/B統(tǒng)計量,對數(shù)轉(zhuǎn)換的fold change值,gene symbol以及基因名稱。接下來使用者可根據(jù)需要,設(shè)定P值和logFC的閾值,從而提取出顯著差異表達的基因。


當然數(shù)據(jù)標準化和提取差異基因的方法很多,例如Z-score標準化,通過計算均值和標準差進行零均值校正,提出基因固有表達差異的影響也是一種常用的標準化方法,另外還有類似Python語言中preprocessing包中的scale,normalize等方法。

差異基因的提取方法還包括student T test,秩和檢驗,SAM package,甚至更高級一些的機器學習中的feature selection也可以實現(xiàn)這一目的。使用者可根據(jù)需要或數(shù)據(jù)類型進行選擇。


科研代碼分享|R的Limma包實現(xiàn)表達譜數(shù)據(jù)標準化和差異基因提取的評論 (共 條)

分享到微博請遵守國家法律
延寿县| 宜川县| 公主岭市| 盐边县| 栖霞市| 梁山县| 九江市| 咸阳市| 闻喜县| 临城县| 安溪县| 阿图什市| 西丰县| 临澧县| 阿克| 象山县| 黄龙县| 余干县| 武威市| 安仁县| 湘潭县| 固始县| 吉首市| 孝昌县| 龙川县| 钟祥市| 青铜峡市| 轮台县| 西吉县| 洛南县| 黄陵县| 泸水县| 县级市| 宁阳县| 宁河县| 青铜峡市| 宿松县| 西华县| 尼木县| 黄梅县| 西丰县|