用R和BioConductor進行基因芯片數據分析(五):芯片間歸一化

上次進行了芯片內的歸一化,但是我們的數據來自於10張芯片,爲了讓這10張芯片之間有可比性,需要進行芯片間歸一化。

具體原理就不介紹了。

這裏用到Bioconductor的一個package,叫做limma,以及其中的函數normalizeBetweenArrays()

由於normalizeBetweenArrays()需要log intensity或log ratio作爲輸入,於是先進行log轉化:

#log transformation 
norm_log<-matrix(data = NA, nrow =dim(normed)[1], ncol = dim(normed)[2], byrow = TRUE, dimnames = NULL) 
for (i in 1:dim(normed)[1]){ 
for (j in 1:dim(normed)[2]){ 
norm_log[i,j]<-log(normed[i,j])/log(2) 

}

然後利用函數進行芯片間歸一化:

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

biocLite("limma")

library(limma) 
norm_log_btw_array<-normalizeBetweenArrays(norm_log,method='scale')


normalizeBetweenArrays()函數有許多方法,具體請看幫助。

下面看看效果吧

plot(density(norm_log[,1]),ylim=c(0,1.35),xlab='log intensity') 
for (i in 2:20){ 
lines(density(norm_log[,i]),type='l') 

lines(density(norm_log_btw_array[,1]),type='l',col='green') 
for (i in 2:20){ 
lines(density(norm_log_btw_array[,i]),type='l',col='green') 

text(1.5,c(0.8,1.0),labels=c('BEFORE normalization','AFTER normalization'),col=c('black','green'))

R_bioconductor_genechip_data_process_5

from : http://azaleasays.com/tag/r/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章