# Correct way to apply multiple testing correction to GO pair association probabilities

First of all, I am a biologist not a mathematician. Please let me know if you need more details to be able to answer my question. Also, I apologize in advance for the, likely many, math-illiterate mistakes I may make.

GO terms are used to annotate protein function, each term describes a specific function that can be carried out by a protein in a given cell. I have calculated the probability of association for each possible pair of GO terms, based on how often a given protein is annotated to both terms.

Now, I am using this probability to find interactions between proteins annotated to "dissimilar" GO terms. Since I am dealing with very large data sets, I need to apply a multiple testing correction to my probabilities.

A colleague suggested that I should multiply my p-value by the number of tests performed to obtain a corrected e-value:

e-val=p-val x #Tests


My method consists of taking a protein-protein interaction network (for the purposes of this question, this is just a normal, albeit relatively sparse, unweighted graph) and partitioning it into overlapping classes (see disclaimer). I then look for i) nodes that are found at the intersection (i.e. belonging to both) of dissimilarly annotated classes or ii) nodes that, while belonging to neither, connect these classes (ie have edges connecting them to nodes of each class).

My problem is that method i) involves orders of magnitude more tests than method ii):

• i : 46,568,354 tests
• ii: 102,911 tests

Since I am using the same uncorrected p-values for each method, applying this multiple testing correction (multiplying the p-value by the number of tests performed) will give me completely different e-values for the same pair of GO terms, making it impossible to compare the results of these methods to one another.

So, how can I get a comparable e-value?

DISCLAIMER: Yes, I do know that, by definition, a graph partition consists of disjoint classes but my math vocabulary fails me. If someone has a term for a graph "partition" with overlapping classes I would very much like to hear it.

-
 Are the classes the sets of proteins associated with a particular GO term? If so, what you have is basically subsets of the nodes, one subset for each GO term. Just call them subsets instead of partitions. If both methods assess all pairs of GO terms, as you seem to indicate, why are the different number of tests? – Einar Rødland Oct 9 '12 at 1:24 You should explain what the actual question is that you want to answer. The two methods seem to address different questions, so why should they be comparable? Nor is it clear to me in which respect you want to compare them. Furthermore, I tend to get suspicious whenever someone wants to compare P-values or E-values: I know it's common practice in bioinformatics, but in statistics it's considered bad practice since they're not measures of effects of strength of association, but measures of reliability of findings. – Einar Rødland Oct 9 '12 at 1:32 @EinarRødland, no, the classes have nothing to do with the GOs. The graph is partitioned using OCG, a hierarchical ascending algorithm. It starts by building an initial set of overlapping clusters. At each step, two clusters are joined if their union results in a gain (either average or total) in modularity. The algorithm has nothing specific to biological graphs and can be applied to any unweighted graph. Once the "partition" has been obtained, the resulting classes are annotated according to the annotations of their constituent proteins. – terdon Oct 9 '12 at 10:15 @EinarRødland, as for the methods, in both cases I am trying to identify interactions between proteins, nodes, involved in different biological functions. The number of tests is different because in each case I have a different set of candidates. For i) I start with nodes found at the intersection of dissimilarly annotated classes (x) and for ii) with nodes connecting dissimilar classes (y). x and y represent different sets of nodes, therefore a different number of tests will be performed. Finally, I don't want to compare the e-values but the results (list of nodes) obtained by each method. – terdon Oct 9 '12 at 10:22 So, OCG has identified a number of clusters (potentially overlapping) in the graph, which are the classes/subsets of nodes/proteins. Each test in (i) and (ii) then pertains to two clusters and a node matching the respective rules? Sorry, but I still find it very hard to follow what you are doing and what the underlying question is. – Einar Rødland Oct 10 '12 at 14:27