What Are Usual Logfc Values In Differential Ge Analysis?
2
1
Entering edit mode
11.0 years ago
munch ▴ 310

Hello, I want compare GE from experiment A (three replicates) with experiment B (three replicates)

Here is my workflow:

library(limma) 
celFiles <- list.celfiles(path_to_cel_files,full.names=TRUE)
affyExpressionFS <- read.celfiles(celFiles)
eset <- rma(affyExpressionFS, background = TRUE, normalize = TRUE)
stress <- c(1,1,1,0,0,0) # first three replicates (case)
control <- c(0,0,0,1,1,1) # last three replicates (control)
design <- cbind(stress, control) # first term is numerator, second denominator of the ratio
fit <- lmFit(eset, design)
cont.matrix <- makeContrasts(STvsCO=stress-control, levels=design)
fit2 <- contrasts.fit(fit, cont.matrix)
fit2 <- eBayes(fit2)
tab <- topTable(fit2, adjust = "BH", confin =T , number = 1000, sort.by="logFC")

The problem is, that the highest absolute logFC value is 1.4 which seems very low. Which logFC values are normal for such comparisons?

My top candidates look like this:

ID       logFC        AveExpr        t            P.Value        adj.P.Val    B               
8047174    1.410216184    8.394967474    3.253590303    0.012932418    0.596479114    -2.705225672
8126784    1.281783565    5.991972071    3.246829585    0.013058101    0.596479114    -2.711771396

Thank you

gene-expression limma • 6.7k views
ADD COMMENT
1
Entering edit mode

May I ask what do you like compare in both the experiments?

If you would like to compare genes that are significantly deferentially expressed in both the experiments, you may consider filitering the data based on significance... P Value...

ADD REPLY
0
Entering edit mode

thats the next problem. After multiple testing correction no gene is significant.

ADD REPLY
4
Entering edit mode
11.0 years ago
Irsan ★ 7.8k

In extreme cases (tumors vs healthy tissue) I have seen logFC-values of 7 (both positive and negative). The fact that you do not see any significant differences between your stress and control samples possibly means that there are no big differences between your samples. Try doing a PCA on your samples and plot your samples in a 3-dimensional scatterplot where x.y and z-axis are principal component 1, principal component 2 and principal component 3 (PC1, PC2, PC3) and color the six samples by stress/control. Do you see that stress and control samples are plotted seperately from each other?

pca <- prcomp(t(exprs(eset)),scale=TRUE)

library(scatterplot3d) 
yourColors <- c("red","red","red","blue","blue","blue")
plotPCA <- scatterplot3d(pca$x[,1:3],pch=20,color = yourColors)
label.coord <- plotPCA$xyz.convert(pca$x[,1], pca$x[,2], pca$x[,3])
text(label.coord$x, label.coord$y, labels=row.names(pca$x),pos=4, cex=.5)
ADD COMMENT
0
Entering edit mode

Thank you! They seem only partly seperated.

pca

I have changed the code to handle the problem when the variance is zero and to prevent the Error cannot rescale a constant/zero column to unit variance:

library(scatterplot3d) 
pca_matrix <- t(exprs(eset))
variances <- apply(pca_matrix, 2, var) # variance for each column
zerovar <- which(variances == 0) 
pca_matrix.2 <- pca_matrix[,-zerovar] # delete columns where variance is zero
pca <- prcomp(pca_matrix.2,scale=TRUE)
yourColors <- c("red","red","red","blue","blue","blue")
plotPCA <- scatterplot3d(pca$x[,1:3],pch=20, color = yourColors,angle=45)
label.coord <- plotPCA$xyz.convert(pca$x[,1], pca$x[,2], pca$x[,3])
text(label.coord$x, label.coord$y, labels=row.names(pca$x),pos=4, cex=.5)
ADD REPLY
1
Entering edit mode

Nice, some also prefer type="h" in scatterplo3d.

ADD REPLY
1
Entering edit mode
11.0 years ago
k.nirmalraman ★ 1.1k

if you are particularly interested in checking the fold change for a particular gene of interest, then logFC. There is nothing exactly like normal logFC in my opinion and that totally depends on how does your experimental condition influence the expression and thus the fold change is inferred.

ADD COMMENT

Login before adding your answer.

Traffic: 2493 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