I have the results of a virtual screening experiment using docking simulations with Autodock Vina. The result is a matrix of 7 (proteins) by 28000 (ligands) with the calculated binding energies for each protein/ligand pair:
Ligands - Proteins | Protein1 | Protein2 | Protein3 | Protein4 | Protein5 | Protein6 | Protein7 |
---|---|---|---|---|---|---|---|
Ligand1 | -5.4 | -5.9 | -5.0 | -5.2 | -5.8 | -5.7 | -4.5 |
Ligand2 | -9.5 | -8.6 | -8.9 | -9.0 | -9.2 | -7.1 | -6.4 |
Ligand3 | -9.5 | -8.3 | -8.2 | -9.9 | nan | -6.8 | nan |
Ligand4 | -9.4 | -7.8 | -8.0 | -6.9 | -9.5 | -1.3 | -7.8 |
Ligand5 | -9.3 | -6.9 | -8.5 | -7.9 | -9.2 | -6.8 | -6.9 |
--- | |||||||
Ligand28000 | -6.3 | -7.9 | -5.4 | -2.7 | -10.1 | -9.4 | -3.9 |
nan results are either failed dockings, or positive values.
The scores are not only affected by how well a ligand docks with each protein, but also bigger (higher molecular weight) ligands tend to show better (more negative) scores. However, this is in part an artifact and it does not imply that bigger molecules are better and smaller ones are worse.
Typically, for a virtual screening with just one protein, you would select the top ranking ligands and that would be it (e.g. keep the top 1% and test them). However, this results in some ligands selected for most proteins because they invariably score better due to their size.
In this case, I could also take into account the variability of each ligand because I have observations for different unrelated proteins (i.e. see if a particular ligand systematically binds with better scores across proteins).
Is there any way to take into consideration both factors when selecting the best ligands?
I thought of calculating Z-scores 1) across rows and 2) across columns, and select the ligands for each protein that have less than -1.65 standard deviations (p=0.05) and that also fill the same criteria across proteins. However, there are only 7 observations for each ligand to calculate the Z-scores, and it does not feel correct to give it the same weight to the Z-scores calculated from the 28000 observations for each protein. Plus, in the end, protein docking effect is more important than the ligand effect.
Any suggestions would be greatly appreciated!
Ligand efficiency looks like a promising suggestion. However, upon trying (calculating ∆G/MW or ∆G/n.heavy_atoms) resulted in very small ligands with mediocre or bad energies going to the top (e.g. urea with -3.1 became a Z-score of -8.5 SDs).