I had a quick question on virtual libraries. I'm hoping to perform a virtual screen using a library that contains very small, soluble compounds - think glycerol and smaller (<100MW). As far as I can tell, the majority of virtual libraries contain mostly larger, drug-like compounds. Is anyone aware of any libraries that might contain ideally 10,000+ or so of these tiny soluble compounds?

If not, any idea what the process might be (and how difficult it would be) to construct a custom virtual library enriched for these compounds?

Thank you!!

  • $\begingroup$ Hi, how is the htslib tab relevant here? $\endgroup$
    – Ram RS
    Commented Feb 13, 2021 at 14:22

2 Answers 2


Lipinski and logP

Most datasets will be filtered by the Lipinski rule, plus in the some cases, such as Enamine Real whether they can be bought. One criterion in the Lipinski rule filter is the logP, or octanol-water partition coefficient. This is super important, because a compound that cannot cross the membrane is likely of limited uses —as a consequence prodrugs are a commonly taken approach.

However, albeit obvious, not all datasets in Zinc are filtered by the Lipinski rule, they just need more browsing...


However, you may have a valid reason to eschew logP. Nature tries its best to have intermediate metabolites that have hydrophilic handles attaches, eg. CoA, phosphates and sugars. Therefore, if you want a natural metabolite this is a completely different question. Many of these are not very purchasable, but a PDB-derived dataset of natural ligands will likely be purchasable or easily extractable. Alternatively Zinc has several natural catalogues...

Too small

Glycerol is a 3 carbon molecule and has a MW of 90 Da. Many of the old drugs are small, but not that small. For example aspirin is 180 Da, which is twice the size of glycerol. Lipinski rule says not to go over 500 Da and 250-400 Da is a lovely range. Say you have a perfectly bound glycerol, with a perfect ligand efficiency of -1.5 kcal/mol/atom, that would mean it would bind at –9 kcal/mol in the best case scenario, i.e. it is too small to bind anything with nanomolar affinity and will actually bind a lot of things. Glycerol after all is commonly cocrystallised in protein...

The GDB datasets have enumerated compounds of a given size, but don't go that low.


There will be two further complications that will hinder the accuracy.

  • protonated and deprotonated atoms
  • polarisable groups

The former requires correct conformers, the latter requires a force field that has a Drude particle, e.g. in openMM.

Caveat against sorting by binding score

Also, it should be said that if you sort by binding score (kcal/mol or kJ/mol) you will get bigger compounds (hence the whole point of ligand efficiency) and compounds with high logP. The former is because they will have more contact points to make, the latter is because given that ∆∆G is ∆G_bound - ∆G_unbound, an unbound high-logP compound is highly unhappy in aqueous solution.


ZINC20 is a free database of commercially-available compounds for virtual screening. It contains 1.3M compounds with molecular weight less than 200. https://zinc20.docking.org/

Cartblanche22 is an interface to ZINC22. Here you can find more compounds than ZINC20. https://cartblanche22.docking.org/cartblanche


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.