I'm trying to implement my own virtual screening software in javascript (to be run on a web browser). In particular my project wants to identify compounds that bind well to a certain nucleic acid structure and would reveal quite a bit about the function and behavior of this relatively obscure molecule (PDB code 3IBK).
I came up with this project on my own, and as a result of having no lab mentors my knowledge in statistical mechanics and molecular simulation is patchy at best. However I'm willing to work very hard and study up whatever need be. I've asked a couple questions on Blue Obelisk but in the end, sciencebuddies experts tend to be much more open and willing to explain stuff in detail.
Please correct me if any of my reasoning below is incorrect or patchy.
So I've read from a lot of papers that virtual screening consists of 3 main parts.
1. docking - searching the conformational space of the receptor with the ligand, usually accounting for flexibility
2. scoring - function to evaluate free binding energy of a particular ligand pose
3. The best-binding molecules are the ones with the lowest energy determined by the score. Not always but this is a common evaluation?
I'm using the ChemDoodle Web Components API to represent my molecules, as it already provides a nice data model for defining molecules, their coordinates and accessing/setting bond lengths, along with a few cheminformatics algorithms. See picture http://cl.ly/9w9J to get a kind of the idea of what the data looks like: (JSON)
I don't think any textbook or paper actually describes the implementation process in code or even pseudocode, so I'd like to ask if my reasoning below is correct, and what other things I need to insert.
1. Subject ligand and receptor to molecular mechanics minimization, done separately. This will produce 'good' bond lengths and angles.
2. Construct minimized ligand and receptor in 3D Cartesian space, with the ligand close to a target site on the ligand. A key objective of my project is find RNA-selective compounds over DNA because I am looking for a ligand that binds selectively to the RNA quadruplex over the DNA quadruplex.
3. Using Metropolis Monte Carlo conformational search, translate the ligand around the region, also change global rotation of the ligand and torsion angles. Restrict ligand to only search in a particular area of interest reduce some degrees of freedom.
3.1: How do I decide which parameters to change in a given Monte Carlo iterative step?
4. Scoring function checks binding energy of each iteration of the Monte Carlo algorithm.
4.1: I know that some studies use a separate function for ranking poses and ranking ligands, but I'll stick with just one for now.
4.2: I'm not going to count on an 'easier' way out with an empirical scoring function, so I'll assume that I'm going to have to implement a force field of some sort. Aside from the force field coming into play during scoring, where else will I need it?
Please let me know if I missed anything in the overal design of things.
Thanks so much! More than 3 years later, science buddies is still my favorite resource.
- Eric




