As structural data was not available for all protein-ligand complexes, the initial configurations were generated by modifying a chemically close protein-ligand crystal structure using open source PyMOL 42 (see SI Text S1 for full details). If alternate states were available in the starting crystal, state A was always retained. Where appropriate, acetyl and N-methyl caps were also added to protein structures using PyMOL. Protons were assigned using protoss , as made available within the ProteinPlus web server . In the case of the PWWP1 domain, missing loop residues were modelled using modeller 9v21 and the DOPE-HR method. Of the 500 generated models, the top 10 models were rescored using the QMEAN scoring function as implemented in SWISS-MODEL , with the final model selected as the best QMEAN-scored model. The PWWP1 N-termini was also truncated at isoleucine 393 to avoid long timescale interactions between residues in the disordered N-termini region and the ligand binding site (see SI Text S2).