Algorithm 2 takes X and Y as input parameters and returns Y′, which is a modified version of Y. Like Algorithm 1, Algorithm 2 creates a repository of kinome array measurements. For all t (1≤t≤m), if t∉peptideIndex , then yt′ must not be differentially phosphorylated and therefore yt′=yt. For each t∈peptideIndex, to phosphorylate a peptide Algorithm 2 tries to select a ri,j∈R where ri,j has an upward fold-change bigger than T in comparison to xt, and to dephosphorylate a peptide, tries to select a ri,j∈R where ri,j has a downward fold-change less than 1T in comparison to xt. The entire set of the l replicates, i.e., xt, is replaced by the set of l replicates of the chosen replacement peptide, ri,j, which includes raw foreground and background intensity values.