From: Identifying differentially regulated subnetworks from phosphoproteomic data
1: A = z-transformed phosphoproteomic data (n phosphosites, m replicates) |
---|
2: STRING = STRING interaction data |
3: origSN = list of extract subnetworks from STRING using A |
4: flippedSNs = container for flipped subnetwork lists |
5: for all s ∈ Cartesian product {-1, +1}mwithout {(-1,...,-1), (+1, ..., +1)} do |
6: flippedA = multiply values in column (1, ..., i, ..., m) of A with the value at index i in s |
7: add list of extracted subnetworks from STRING using flippedA to flippedSNs |
8: end for |
9: FDR = 1.0 |
10: N = n |
11: while FDR > desired FDR cutoff and N > 0 do |
12: origCount = count subnetworks that are among the N most-regulated ones across all replicates in origSN |
13: flippedCount = 0 |
14: for all flipped lists of subnetworks in flippedSNs do |
15: flippedCount = flippedCount + number of subnetworks from list of flipped subnetworks that are among the N most-regulated ones across all replicates |
16: end for |
17: FDR = (flippedCount/number of lists in flippedSNs)/origCount |
18: N = N - 1 |
19: end while |
20: if N > 0 then |
21: return list of subnetworks that are among the N + 1 most-regulated ones across all replicates in origSN |
22: else |
23: return empty list |
24: end if |