A question about MA and RG lists and normalization with two channel agilent arrays.
1
0
Entering edit mode
@richard-green-4701
Last seen 10.2 years ago
If I load and normalize some two channel arrays library(limma) setwd("/vol04/microarray/vineet_study/run_data2") files <- dir(pattern="*.txt") RG <- read.maimages(files=dir(),source="agilent", columns=list(G="gMeanSignal",Gb="gBGMedianSignal",R="rMeanSignal",Rb=" rBGMedianSignal"), annotation = c("Row", "Col","FeatureNum", "GeneName", "ControlType","ProbeName")) targets <- readTargets("/vol04/microarray/vineet_study/targets.txt") RG<- backgroundCorrect(RG, method="none") MA <- normalizeWithinArrays(RG, method="loess") E2.avg <- avereps(MA, ID=MA$genes$ProbeName) and I want to generate ratios of Cy5/Cy3 and Cy3/Cy5 I could convert my MA back to and RG E2.avg_RG <- RG.MA(E2.avg) if I do that it will create two unlogged channels again. question 1 are the intensities still normalized? which channel is Cy3 and Cy5? Would the following generate a log ratio of my normalized data(for the first 12 samples)? Cy5Cy3_RvsG <- log2(E2.avg_RG$R[,1:12]/E2.avg_RG$G[,1:12]) Any advice folks have is appreciated. Thanks -Rich [[alternative HTML version deleted]]
convert convert • 1.7k views
ADD COMMENT
0
Entering edit mode
Marcus Davy ▴ 390
@marcus-davy-5153
Last seen 6.7 years ago
When you run avereps() on an MAList you are calling avereps.MAList <- function (x, ID = NULL) { if (is.null(ID)) { ID <- x$genes$ID if (is.null(ID)) ID <- rownames(x) if (is.null(ID)) stop("Cannot find probe IDs") } y <- x y$M <- avereps(x$M, ID = ID) y$A <- avereps(x$A, ID = ID) other <- names(x$other) for (a in other) y$other[[a]] <- avereps(x$other[[a]], ID = ID) y$weights <- avereps(x$weights, ID = ID) y$genes <- x$genes[!duplicated(ID), ] y$printer <- NULL y } <environment: namespace:limma=""> If you transform from a MAList to a RGList with RG.MA RG.MA function (object) { object$R <- 2^(object$A + object$M/2) object$G <- 2^(object$A - object$M/2) object$M <- NULL object$A <- NULL new("RGList", unclass(object)) } <environment: namespace:limma=""> The RG intensities in your case are normalized and back transformed. The dyes are; Cy3 => Green dye Cy5 => Red dye. Your expression on the first 12 probes is effectively calculating M log2(E2.avg_RG$R[,1:12]/E2.avg_RG$G[,1:12]) or log2(E2.avg_RG$R[,1:12]) - log2(E2.avg_RG$G[,1:12]) where M = log2(R) - log2(G) You could verify this with a sanity check, something like; Cy5Cy3_RvsG <- log2(E2.avg_RG$R[,1:12]/E2.avg_RG$G[,1:12]) identical(E2.avg$M[1:12,] , Cy5Cy3_RvsG) Marcus On Sun, Mar 18, 2012 at 11:19 AM, Richard Green <greener@uw.edu> wrote: > If I load and normalize some two channel arrays > > library(limma) > > setwd("/vol04/microarray/vineet_study/run_data2") > > files <- dir(pattern="*.txt") > > RG <- read.maimages(files=dir(),source="agilent", > > columns=list(G="gMeanSignal",Gb="gBGMedianSignal",R="rMeanSignal",Rb ="rBGMedianSignal"), > annotation = c("Row", "Col","FeatureNum", "GeneName", > "ControlType","ProbeName")) > > targets <- readTargets("/vol04/microarray/vineet_study/targets.txt") > > RG<- backgroundCorrect(RG, method="none") > > MA <- normalizeWithinArrays(RG, method="loess") > > E2.avg <- avereps(MA, ID=MA$genes$ProbeName) > > and I want to generate ratios of Cy5/Cy3 and Cy3/Cy5 > > I could convert my MA back to and RG > > E2.avg_RG <- RG.MA(E2.avg) > > if I do that it will create two unlogged channels again. > > question 1 are the intensities still normalized? which channel is Cy3 and > Cy5? > > Would the following generate a log ratio of my normalized data(for the > first 12 samples)? > > Cy5Cy3_RvsG <- log2(E2.avg_RG$R[,1:12]/E2.avg_RG$G[,1:12]) > > Any advice folks have is appreciated. > > Thanks > > -Rich > > [[alternative HTML version deleted]] > > _______________________________________________ > Bioconductor mailing list > Bioconductor@r-project.org > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: > http://news.gmane.org/gmane.science.biology.informatics.conductor > [[alternative HTML version deleted]]
ADD COMMENT
0
Entering edit mode
Thanks Marcus ! Appreciate it -Rich On Mar 17, 2012, at 5:31 PM, Marcus Davy <mdavy86@gmail.com> wrote: > When you run avereps() on an MAList you are calling > > avereps.MAList <- > function (x, ID = NULL) > { > if (is.null(ID)) { > ID <- x$genes$ID > if (is.null(ID)) > ID <- rownames(x) > if (is.null(ID)) > stop("Cannot find probe IDs") > } > y <- x > y$M <- avereps(x$M, ID = ID) > y$A <- avereps(x$A, ID = ID) > other <- names(x$other) > for (a in other) y$other[[a]] <- avereps(x$other[[a]], ID = ID) > y$weights <- avereps(x$weights, ID = ID) > y$genes <- x$genes[!duplicated(ID), ] > y$printer <- NULL > y > } > <environment: namespace:limma=""> > > If you transform from a MAList to a RGList with RG.MA > > RG.MA > function (object) > { > object$R <- 2^(object$A + object$M/2) > object$G <- 2^(object$A - object$M/2) > object$M <- NULL > object$A <- NULL > new("RGList", unclass(object)) > } > <environment: namespace:limma=""> > > The RG intensities in your case are normalized and back transformed. > > The dyes are; > Cy3 => Green dye > Cy5 => Red dye. > > Your expression on the first 12 probes is effectively calculating M > > log2(E2.avg_RG$R[,1:12]/E2.avg_RG$G[,1:12]) > > or > > log2(E2.avg_RG$R[,1:12]) - log2(E2.avg_RG$G[,1:12]) > > where M = log2(R) - log2(G) > > You could verify this with a sanity check, something like; > > Cy5Cy3_RvsG <- log2(E2.avg_RG$R[,1:12]/E2.avg_RG$G[,1:12]) > identical(E2.avg$M[1:12,] , Cy5Cy3_RvsG) > > > Marcus > > > On Sun, Mar 18, 2012 at 11:19 AM, Richard Green <greener@uw.edu> wrote: > If I load and normalize some two channel arrays > > library(limma) > > setwd("/vol04/microarray/vineet_study/run_data2") > > files <- dir(pattern="*.txt") > > RG <- read.maimages(files=dir(),source="agilent", > columns=list(G="gMeanSignal",Gb="gBGMedianSignal",R="rMeanSignal",Rb ="rBGMedianSignal"), > annotation = c("Row", "Col","FeatureNum", "GeneName", > "ControlType","ProbeName")) > > targets <- readTargets("/vol04/microarray/vineet_study/targets.txt") > > RG<- backgroundCorrect(RG, method="none") > > MA <- normalizeWithinArrays(RG, method="loess") > > E2.avg <- avereps(MA, ID=MA$genes$ProbeName) > > and I want to generate ratios of Cy5/Cy3 and Cy3/Cy5 > > I could convert my MA back to and RG > > E2.avg_RG <- RG.MA(E2.avg) > > if I do that it will create two unlogged channels again. > > question 1 are the intensities still normalized? which channel is Cy3 and > Cy5? > > Would the following generate a log ratio of my normalized data(for the > first 12 samples)? > > Cy5Cy3_RvsG <- log2(E2.avg_RG$R[,1:12]/E2.avg_RG$G[,1:12]) > > Any advice folks have is appreciated. > > Thanks > > -Rich > > [[alternative HTML version deleted]] > > _______________________________________________ > Bioconductor mailing list > Bioconductor@r-project.org > https://stat.ethz.ch/mailman/listinfo/bioconductor > Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor > [[alternative HTML version deleted]]
ADD REPLY
0
Entering edit mode
Checking slide samples would be Cy5Cy3_RvsG <- log2(E2.avg_RG$R[,1:12]/E2.avg_RG$G[,1:12]) identical(E2.avg$M[,1:12] , Cy5Cy3_RvsG) Marcus On Sun, Mar 18, 2012 at 1:31 PM, Marcus Davy <mdavy86@gmail.com> wrote: > When you run avereps() on an MAList you are calling > > avereps.MAList <- > function (x, ID = NULL) > { > if (is.null(ID)) { > ID <- x$genes$ID > if (is.null(ID)) > ID <- rownames(x) > if (is.null(ID)) > stop("Cannot find probe IDs") > } > y <- x > y$M <- avereps(x$M, ID = ID) > y$A <- avereps(x$A, ID = ID) > other <- names(x$other) > for (a in other) y$other[[a]] <- avereps(x$other[[a]], ID = ID) > y$weights <- avereps(x$weights, ID = ID) > y$genes <- x$genes[!duplicated(ID), ] > y$printer <- NULL > y > } > <environment: namespace:limma=""> > > If you transform from a MAList to a RGList with RG.MA > > RG.MA > function (object) > { > object$R <- 2^(object$A + object$M/2) > object$G <- 2^(object$A - object$M/2) > object$M <- NULL > object$A <- NULL > new("RGList", unclass(object)) > } > <environment: namespace:limma=""> > > The RG intensities in your case are normalized and back transformed. > > The dyes are; > Cy3 => Green dye > Cy5 => Red dye. > > Your expression on the first 12 probes is effectively calculating M > > log2(E2.avg_RG$R[,1:12]/E2.avg_RG$G[,1:12]) > > or > > log2(E2.avg_RG$R[,1:12]) - log2(E2.avg_RG$G[,1:12]) > > where M = log2(R) - log2(G) > > You could verify this with a sanity check, something like; > > Cy5Cy3_RvsG <- log2(E2.avg_RG$R[,1:12]/E2.avg_RG$G[,1:12]) > identical(E2.avg$M[1:12,] , Cy5Cy3_RvsG) > > > Marcus > > > On Sun, Mar 18, 2012 at 11:19 AM, Richard Green <greener@uw.edu> wrote: > >> If I load and normalize some two channel arrays >> >> library(limma) >> >> setwd("/vol04/microarray/vineet_study/run_data2") >> >> files <- dir(pattern="*.txt") >> >> RG <- read.maimages(files=dir(),source="agilent", >> >> columns=list(G="gMeanSignal",Gb="gBGMedianSignal",R="rMeanSignal",R b="rBGMedianSignal"), >> annotation = c("Row", "Col","FeatureNum", "GeneName", >> "ControlType","ProbeName")) >> >> targets <- readTargets("/vol04/microarray/vineet_study/targets.txt") >> >> RG<- backgroundCorrect(RG, method="none") >> >> MA <- normalizeWithinArrays(RG, method="loess") >> >> E2.avg <- avereps(MA, ID=MA$genes$ProbeName) >> >> and I want to generate ratios of Cy5/Cy3 and Cy3/Cy5 >> >> I could convert my MA back to and RG >> >> E2.avg_RG <- RG.MA(E2.avg) >> >> if I do that it will create two unlogged channels again. >> >> question 1 are the intensities still normalized? which channel is Cy3 and >> Cy5? >> >> Would the following generate a log ratio of my normalized data(for the >> first 12 samples)? >> >> Cy5Cy3_RvsG <- log2(E2.avg_RG$R[,1:12]/E2.avg_RG$G[,1:12]) >> >> Any advice folks have is appreciated. >> >> Thanks >> >> -Rich >> >> [[alternative HTML version deleted]] >> >> _______________________________________________ >> Bioconductor mailing list >> Bioconductor@r-project.org >> https://stat.ethz.ch/mailman/listinfo/bioconductor >> Search the archives: >> http://news.gmane.org/gmane.science.biology.informatics.conductor >> > > [[alternative HTML version deleted]]
ADD REPLY

Login before adding your answer.

Traffic: 665 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6