Non-covalent macromolecular interactions of proteins with lipids, nucleic acids, small ligands, and other proteins underlie a vast majority of biological processes. The transient nature of these interactions makes it difficult to use traditional methods to detect specific non-covalent macromolecular interactions. Ubiquitination is one such macromolecular interaction cascade that results in the addition of ubiquitin to a wide variety of substrate proteins. The addition of ubiquitin represents an important regulatory mechanism in the cell to modulate global protein levels and specific signal transduction cascades. Ubiquitination of a substrate protein occurs as a result of a pyramidal cascade involving the sequential action of three classes of E1, E2, and E3 proteins. In general, a small number of E1-activating enzymes transfer ubiquitin to a limited number of E2-conjugating enzymes that in turn function together with a large number of E3-ubiquitin ligases to ubiquitinate a variety of substrate proteins. In humans for example, only two E1 enzymes can transfer ubiquitin to more than three-dozen E2-ubiquitin conjugating enzymes, which in turn can partner with several hundred E3-ligases to ubiquitinate thousands of target substrates. The pervasive use of ubiquitination as a regulatory mechanism in the cell, coupled with the transient nature of the interaction between E3-ligases and their respective substrates, presents the unique challenge of accurately identifying the appropriate E3-ligase/substrate pairs to better understand normal and pathological cellular processes.