I am looking at levels of genes in a dataset and want to identify genes that do not vary much in terms of their expression level. While I can do this using the coefficient of correlation, calculating the covariance or by looking for number of genes within the botton x percent of genes using median absolute deviation those methods appear to be arbitrary.

What I am interested in is defining a cutoff based on P.values - is there any way of finding out which genes show significantly less variability than would be expected by chance without having external controls to compare it to?

Cheers, Ankur.

  • $\begingroup$ What data do you have access to? Do you have biological/technical replicates? Is this RNA-seq, microarray, or cytometry-based measurement of expression? $\endgroup$
    – vector07
    Apr 1 '14 at 0:15
  • $\begingroup$ It is microarray data for a few hundreds of tumour samples. I am looking to see which expression states are highly conserved and recurrent. The idea is to identify genes that are significantly less variable in terms of expression than expected by chance. $\endgroup$ Apr 9 '14 at 19:35
  • $\begingroup$ Do you have spike-in data for absolute normalization between arrays? If not, your analysis will be almost impossible. There are numerous normalization methods you can use without spike-in data, but they are often predicated on either rank or normalizing by a gene that "doesn't change much" (constitutively active). The former fails spectacularly when there are global changes to expression, and the later fails spectacularly because the choice of a (or even a cluster) of constitutively active genes is arbitrary, unverifiable, and small changes in these references distort the entire array analysis $\endgroup$
    – vector07
    Apr 10 '14 at 17:02
  • $\begingroup$ Nope - the closest I can come to between-array normalisation is to run Combat or something similar for cross-study batch/isva to estimate batch effects and eliminate batch effects as much as possible. $\endgroup$ Apr 10 '14 at 23:36
  • $\begingroup$ Think you're SOL. Things you can probably do pretty well: identify highly differentially expressed genes since their rank will change dramatically. The general assumption behind that approach is that most genes don't change much from experiment to experiment (ie, 5% of genes are up/down regulated when exposed to a certain condition). Since you're interested in genes that don't change, looking for genes whose rank doesn't change much won't be very informative. Only other idea is to pick a gene from each sample and do qPCR to get an absolute reference for each, and normalize to that gene. $\endgroup$
    – vector07
    Apr 11 '14 at 1:34

If you're only interested in checking the variability, it sounds like an analysis of variance would be a good start.

Idea 1: Perform an F-test against the different variances for each control. The null hypothesis is that the two controls come from the same normal distribution, but potentially with different means.

Idea 2: an analysis of variance (ANOVA) on the continuous variable separated into the controls. The idea is to look at the variance of the continuous variable within each class $s_i$ and compare it to the total variance $s_t$. The correlation coefficient for one class compared to the total is then $\eta_i = \sqrt{s_i / s_t}$. The test is then an F-test. There is an assumption of a normal distribution here also.

As for the p-values, they represent the level where you can accept or reject the null hypothesis (the variances are all equal). If the p-value is low (below a 5% level, for example) you reject the null hypothesis and assume that the variables have different variances based on the control groups.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.