I have a list of genes and I am checking certain factors for each gene. I have individual scoring system for each factor for each gene. My final table/matrix looks like this:

Gene    Factor1    Factor2    Factor3    Factor4
ALS     0.006      1.0        2.3        0.8
NCLS    0.09       0.8        1.8        0.18
MLB     0.4        0.0        1.8        0.78
BJ      1.1        0.0        0.75       0.18

The scores for each factor are independent and comparable to scores within that factor only, i.e., 1.1 is very good for factor1, but may not be so good for factor3. However, for any given factor, the higher the number the better.

What I am trying to achieve is a ranking of genes. From the example, ALS and MLB should be on the top because for ALS, factors 2-4 have highest values, for MLB, factor2 is 0 but other factors have high values.

Can you suggest what statistics can be used on matrices like this to create a ranking and level of significance? Can I normalize the scores for each factor by calculating Standard Score/z-score (even though all of them don't follow a normal distribution)? What other normalization can be done? Can I instead rank the genes independently for each factor, and then somehow combine the ranks to create a final ranking?


1 Answer 1


Let $r_{g,i}$ be the rank of gene $g$ in ranking $i$ (out of a total of $k$ rankings). Then a statistic which pools these ranks together is the rank product statistic, which is just the geometric mean of the ranks:

$$RP(g) = \left(\prod_{i=1}^k r_{g,i}\right)^{\frac{1}{k}}$$

The rank product statistic was mainly developed to pool together independent replicates, but I think it should work nicely for your use case as well, since you claim that the different scores are independent.

There also exists a R package, which implements this statistic (as well as calculates significance/p-values), though I have never used it.

  • $\begingroup$ How would I deal with negative rank values? or rank values that are zero? $\endgroup$
    – texNewbie
    Apr 5 at 15:32

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.