久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

limma包的使用技巧

 ky之路 2020-08-11

limmar package是一個功能比較全的包,,既含有cDNA芯片的RAW data輸入、前處理(歸一化)功能,,同時也有差異化基因分析的“線性”算法(limma: Linear Models for Microarray Data),,特別是對于“多因素實驗(multifactor designed experiment)”。limmar包的可擴展性非常強,,單通道(one channel)或者雙通道(tow channel)數(shù)據(jù)都可以分析差異基因,,甚至也包括了定量PCR和RNA-seq(第一次見分析microarray的包也能處理RNA-seq)。

limmar package是一個集大成的包,,對載入數(shù)據(jù),、數(shù)據(jù)前處理(背景矯正、組內(nèi)歸一化和組間歸一化都有很多種選擇方法),、差異基因分析都有很多的選擇,。而且,所設(shè)計的線性回歸和經(jīng)驗貝葉斯方法找差異基因非常值得學(xué)習(xí),。

1. 讀入樣本信息
使用函數(shù)讀readTargets(file="Targets.txt", path=NULL, sep="\t", row.names=NULL, quote="\"",...),。這個函數(shù)其實是一個包裝了的read.table(),讀入的是樣本的信息,,創(chuàng)建的對象類似于marray包的marrayInfos和Biobase包的AnnotatedDataFrame,。

2. 讀入探針密度數(shù)據(jù) 
marray包一致,Bioconductor不能讀入原始的TIFF圖像文件,,只能輸出掃描儀輸入的,、轉(zhuǎn)換成數(shù)字信號的文本文件。使用函數(shù)read.maimages(files=NULL, source="generic", path=NULL, ext=NULL, names=NULL, columns=NULL, other.columns=NULL, annotation=NULL, green.only=FALSE, wt.fun=NULL, verbose=TRUE, sep="\t", quote=NULL, ...)
參數(shù)說明:files需要通過函數(shù)dir(pattern = "Mypattern")配合正則表達式篩選(規(guī)范命名很重要),同時該函數(shù)可以讀入符合格式的壓縮過的文件,,比如*.txt.gz的文件,,這極大的減小的數(shù)據(jù)儲存大小;source的取值分為兩類,,一類是“高富帥”,,比如“agilent”、“spot”等等(下表),,它們是特定掃描儀器的特定輸出格式,;如果不幸是“屌絲”,即格式是自己規(guī)定的,,可以選定source="generic",,這時需要規(guī)定columns;任何cDNA文件都要有R/G/Rb/Gb四列(Mean或者Median),;annotation可以規(guī)定哪些是注釋列,;wt.fun用于對點樣點進行質(zhì)量評估,取值為0表示這些點將在后續(xù)的分析中被剔除,,取值位1表示需要保留,,對點樣點的評估依賴于圖像掃描軟件的程序設(shè)定,比如SPOT和GenePix軟件,,查看QualityWeights(現(xiàn)成函數(shù)或者自己寫函數(shù)),。
讀入單通道數(shù)據(jù):讀入單通道數(shù)據(jù),可以設(shè)定green.only = TRUE即可,,然后對應(yīng)讀入columns = list(G = "Col1", Gb = "Col2"),。
讀入的數(shù)據(jù),如果是單通道,,則成為EListRaw class,;如果是雙通道,則是RGList class,。
數(shù)據(jù)操作:
cbind():合并數(shù)據(jù),;
[”:分割數(shù)據(jù);
RGList class有的names是 "R",,"G",,"Rb","Gb",,"weights",,"printer","genes",,"targets",,"notes":  R/G/Rb/Gb分別紅和綠的前景和背景噪音,;weight是掃描軟件的質(zhì)量評估;printer是點樣規(guī)則(printer layout),;genes是基因注釋,;target是樣本注釋;notes是一般注釋,??梢酝ㄟ^myRGList$names進行相應(yīng)的取值和賦值
limma包的使用技巧

3. 前處理
cDNA芯片前處理的流程是:背景去除(background correction)--> 組內(nèi)歸一化(with-array normalization)--> 組間歸一化(between-array normalization),。最后一步組間歸一化可選,,注意trade-off原則。
3.1 背景去除: 
backgroundCorrect(RG, method="auto", offset=0, printer=RG$printer, normexp.method="saddle", verbose=TRUE)
RG:可以是EListRaw,,也可以是RGList class,;
method:取“auto”,,none”,“subtract”,,"half",,"minimum","movingmin",,"edwards"或者"normexp",;
normexp.method:在method取“normexp”時,可以取"saddle",,"mle",,"rma"或者"rma75"。
作者建議使用“mle”或者“saddle”,,兩個運行速度也差不多,。如果數(shù)據(jù)中含有“形態(tài)背景估計(morphological background estimates)”,比如SPOT和GenePix圖像處理軟件,,那么method = "subtract"也就較好的表現(xiàn),。
3.2 組內(nèi)歸一化
normalizeWithinArrays(object, layout, method="printtiploess", weights=object$weights, span=0.3, iterations=4, controlspots=NULL, df=5, robust="M", bc.method="subtract", offset=0)
method:"none","median",,"loess","printtiploess",,"composite",,"control"和"robustspline"。初始值設(shè)定為“printtiploess”,,但是對于Agilent芯片或者小樣本芯片(每個“點樣塊”少于150個探針),。可用選用的loess或者robustspline,。“l(fā)oess歸一化方法假設(shè)了有相當大的一部分探針沒有發(fā)生差異化表達,,而不是上調(diào)或者下調(diào)的基因數(shù)差不多或者差異化程度圍繞著0波動,。”(參考文獻1),。需要注意,組內(nèi)歸一化只是對單張芯片的M值進行了規(guī)整(不影響A值),,但是對與組間各個通道沒有進行比較,。
weight:是圖像處理軟件對探針權(quán)重的標記,,如果使用weight,,那么在歸一化過程中weight為0的探針不會影響其他探針,這并不意味著這些探針會被剔除,,它們同樣會被歸一化,,也會出現(xiàn)在歸一化的結(jié)果中,。如果不想使用,,那么weight設(shè)為NULL。
iterations:設(shè)定loess的循環(huán)數(shù),,循環(huán)數(shù)越多,,結(jié)果越強健(robust),。
3.3 組間歸一化
normalizeBetweenArrays(object, method=NULL, targets=NULL, cyclic.method="fast", ...)
method:“none",,"scale","quantile",,"Aquantile",,"Gquantile",“Rquantile”,,“Tquantile”,,“cyclicloess”?!皊cale”對log-ratio數(shù)值進行歸一化,;“quantile”對密度(intensity)進行歸一化;“Aquantile”對A數(shù)值進行歸一化,,不調(diào)正M數(shù)值,;"Gquantile"和“Rquantile”則分別對Green和Red通道進行歸一化,適用于Green或者Red為“參考標準(common reference)”的樣品,;“Tquantile”表示樣品分開歸一化或者Green和Red一先一后進行歸一化,。
以下是一個cDNA芯片的密度圖,分別為原始,、去背景(method = "normexp", normexp.method="mle"),、組內(nèi)歸一化(method = "robustspline")和組間歸一化(method = “quantile”),使用plotDensities()繪制,。
limma包的使用技巧limma包的使用技巧

limma包的使用技巧limma包的使用技巧

4. 線性模型設(shè)計(linear model desigh)
“線性模型”主要分析差異化表達基因,,使用這種方法需要準備兩個矩陣:“實驗設(shè)計矩陣(design matrix)”和“對比矩陣(contrast matrix)”?!皩嶒炘O(shè)計矩陣”主要用于每張芯片上用的RNA樣品種類,,“對比矩陣”主要用于規(guī)定實驗組和對照組。
“實驗設(shè)計矩陣”:列表示RNA樣品種類,,對于oligo芯片或者使用common reference的cDNA芯片(簡稱第一類),,列數(shù)與不同RNA樣品數(shù)恰好相同;行數(shù)等于芯片數(shù),。對于不同染料對應(yīng)不同樣品的cDNA芯片(簡稱第二類),,列數(shù)比RNA樣品數(shù)恰好少一,,行數(shù)等于芯片數(shù)(如要要衡量染料效應(yīng)(dye effect),,則列數(shù)與第一類相同)。對于第一類芯片,,使用model.matrix()函數(shù)創(chuàng)建“實驗設(shè)計矩陣”:比如oligo芯片model.matrix(~ 0+factor(c(1,1,1,2,2,3,3,3)))表示三類RNA樣品,;對于cDNA芯片,modelMatrix(targets,ref="EGFP")創(chuàng)建以“EGFP”為common reference的矩陣,。對于第二類芯片,,需要手動創(chuàng)建。
“對比矩陣”通過函數(shù)makeContrasts()函數(shù)創(chuàng)建,。
使用步驟:創(chuàng)建“實驗設(shè)計矩陣” --> lmFit() --> 創(chuàng)建“對比矩陣”(此步可選,,如正交實驗) --> contrasts.fit()(接上步,可選)--> eBayes() --> topTable(),。文檔詳細列出了各種各樣的例子,。
 比較有用的例子:
4.1 交換染料的技術(shù)重復(fù)
===========================================================================
> beta7pq$targets
   FileNames SubjectID  Cy3  Cy5 Date of Blood Draw Date of Scan
1 6Hs.195.1.gpr     1 b7 - b7 +     2002.10.11  2003.07.25
2  6Hs.168.gpr     3 b7 + b7 -     2003.01.16  2003.08.07
3  6Hs.166.gpr     4 b7 + b7 -     2003.01.16  2003.08.07
4 6Hs.187.1.gpr     6 b7 - b7 +     2002.09.16  2003.07.18
5  6Hs.194.gpr     8 b7 - b7 +     2002.09.18  2003.07.25
6 6Hs.243.1.gpr     11 b7 + b7 -     2003.01.13  2003.08.06
     Labels
1 6Hs.195.1.gpr
2  6Hs.168.gpr
3  6Hs.166.gpr
4 6Hs.187.1.gpr
5  6Hs.194.gpr
6 6Hs.243.1.gpr
# 假定這六張芯片每兩兩做技術(shù)重復(fù)
> design <- c(1, -1, -1, 1, 1, -1)
> corfit <- duplicateCorrelation(beta7pq, design, ndups=1, block = c(1, 1, 2, 2, 3, 3), weight = NULL)
> fit <- lmFit(beta7pq, design, block = c(1, 1, 2, 2, 3, 3), cor = corfit$consensus)
> fit <- eBayes(fit)
> topTable(fit, adjust = "dfr")
      P.Value  adj.P.Val     B
6647  4.870266e-07 0.01129122 5.341680
11025 1.507433e-06 0.01747417 4.663784
4910  9.223463e-06 0.04706320 3.434271
11470 1.054914e-05 0.04706320 3.336518
7832  1.182200e-05 0.04706320 3.252921
22582 1.217992e-05 0.04706320 3.230931
20812 1.939031e-05 0.05662524 2.882772
1755  2.042581e-05 0.05662524 2.843204
21405 2.743542e-05 0.05662524 2.616544
11717 2.833754e-05 0.05662524 2.591458
# 也可以采用以下方法
> design <- modelMatrix(beta7pq$targets, ref = "b7 -")
> design <- cbind(Dye = 1, desigh)
> fit <- lmFit(beta7pq, design)
> colnames(design)[2] <- "b7"
> cont.matrix <- makeContrasts(MUvsWT = b7/2, levels = design)
> fit2 <- contrasts.fit(fit, cont.matrix)
> fit2 <- eBayes(fit2)
> topTable(fit2, adjust = "fdr")
    P.Value  adj.P.Val     B
6647  8.351055e-07 0.01936109 4.430939
11025 3.555781e-06 0.02976803 3.700994
11431 3.851970e-06 0.02976803 3.656632
6211  6.431916e-06 0.03727939 3.362305
11470 2.201258e-05 0.09075900 2.586146
4910  2.495165e-05 0.09075900 2.501700
1755  3.124884e-05 0.09075900 2.347645
7832  3.131780e-05 0.09075900 2.346120
11987 5.008082e-05 0.12764486 2.014907
21859 5.505731e-05 0.12764486 1.946501
#  兩者有些不同,原因可能是第一種方法是專門為“對稱”的cDNA芯片設(shè)計,,而第二種是為非對稱設(shè)計,。
===========================================================================
4.2 類型2的芯片
參考文獻8.4和8.5節(jié)。其中用到了model.matrix()這個函數(shù),,什么意思,?
4.3 正交實驗
參考文獻8.6和8.7節(jié),。
4.4 將兩個通道分開分析
參考文獻8.8節(jié)

5. 做圖
5.1 背景和前景
imageplot(z, layout, low = NULL, high = NULL, ncolors = 123, zerocenter = NULL, zlim = NULL, mar=c(2,1,1,1), legend=TRUE, ...)
z:可以定義R/Rb/G/Gb,也可以是導(dǎo)數(shù),;
low/high:規(guī)定顏色,,比如low = "white" , high = "red"
下圖是一張芯片的綠色前景圖、紅色背景圖和log-ratio圖(M值圖):
=======================================================
> imageplot(log2(beta7$G[, 1]), beta7$printer, low = "white", high = "green")
> imageplot(log2(beta7$Rb[, 1]), beta7$printer, low = "white", high = "red")
> imageplot(beta7q$M[, 1], beta7$printer)
=======================================================
limma包的使用技巧limma包的使用技巧limma包的使用技巧
也可以使用imageplot3by2(RG, z="Gb", prefix=paste("image",z,sep="-"), path=NULL, zlim=NULL, common.lim=TRUE, ...),,將圖以3*2的格式六個一組保存成圖片,。
5.2 M-A圖
使用plotMA(MA, array=1, xlab="A", ylab="M", main=colnames(MA)[array], xlim=NULL, ylim=NULL, status, values, pch, col, cex, legend=TRUE, zero.weights=FALSE, ...)畫單個MA圖。但這個函數(shù)有些問題,,有時畫不出,。所以,完全可以自己來畫,,比如:
==========================================================
# plot the MAplot befor normalization
> M <- log2((beta7$R[, 1]-beta7$Rb[, 1])/(beta7$G[, 1]-beta7$Gb[, 1]))
> A <- (log2((beta7$R[, 1]-beta7$Rb[, 1]))+log2((beta7$G[, 1]-beta7$Gb[, 1])))/2
> plot(A, M, cex = 0.5)
# we can also plot the MAplot above using marray package
> beta7ma <- as(beta7, "marrayRaw")
> plot(maA(beta7ma)[,1], maM(beta7ma)[, 1])
# plot the MAplot after normalization
> plot(beta7q$A[, 1], beta7q$M[, 1], cex = 0.5)
===========================================================
limma包的使用技巧limma包的使用技巧

使用plotPrintTipLoess(object,layout,array=1,span=0.4,...)畫print-tip的MA圖,,下圖分別是歸一化前和后的print-tip的MA圖。
limma包的使用技巧

limma包的使用技巧
使用boxplot()畫盒箱圖,,使用plotDensity()畫密度曲線圖,。下圖為原始數(shù)據(jù)、組內(nèi)歸一化(method = "normexp", normexp.method="mle")和組建歸一化(method = "scale")的盒箱圖,。
limma包的使用技巧

limma包的使用技巧

limma包的使用技巧
最后,,還可以使用 volcanoplot(fit, coef=1, highlight=0, names=fit$genes$ID, xlab="Log Fold Change", ylab="Log Odds", pch=16, cex=0.35, ...)畫“火山圖”(highlight標記前N個差異基因);
使用vennDiagram(object, include="both", names, mar=rep(1,4), cex=1.5, lwd=1, circle.col, counts.col, show.include, ...)畫“韋恩圖”,;
使用plotMDS()繪制多緯標度圖(multidimensional scaling plot, MDS),。




參考文獻:limma: Linear Models for Microarray Data User’s Guide

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多