 Okay, first day on the job I have one billion molecules to test so this is going to need to be fast. Here is entry number one in my database. I won't show you the remaining 999 billion ones. This is a small complicated molecule I won't take it through and explain what it is but it surprisingly reads it. So I can move this in the x, y and z dimension. I can rotate it around all three axes that's already six degrees of freedom. Then I have one bone here I can rotate. I have one bone here I can rotate. There is a small bone here I can rotate and there is a methyl group here I can rotate. I ran out of carbons that's why that carbon is blue. That's four bones I can rotate over plus three rotational degrees of freedom and three translational degrees of freedom. That's not a lot that's just 10 degrees of freedom. But if we start doing the math here if I need to test things over say a few angstroms and I need to do the translation and say half an angstrom step and then I also need to sample each rotation and say 10 degrees. I'm going to end up with the same problem as I had with Leventhal here. That is going to be hundreds of billions of conformations and if I try to do this with molecular dynamics it would take 200 years. Remember this was one molecule out of a billion. I can't do that. This has to be super fast and much sloppier. So the first thing we do is that we throw out the water. No water I accept to accept that we will have to represent that with some physical formula or something. I will have to accept that I can't move my target protein. That's going to have to be a rigid receptor. I know that's incorrect. That means sticking to an exact lock and key hypothesis rather than induced fit. But for now it's all I can afford. It has to be fast. Second maybe I don't need to test with 10 degrees. Maybe I could start by moving 60 degrees at a time or so. And then if one direction appears to be interesting then I can go down to 10 degrees and test things just there. So start by being very sloppy, taking out the things that appear to be good and focus more efforts on the things that appear to be good. Second I can limit this to only test the specific binding site in my target molecule. So normally I know roughly where the binding site is. And this means that I know it is actually the same molecule that way. Then I only need to move this a few angstroms and rotate it a little bit around the binding site because the binding site might also be limiting so that I can't move it 360 degrees around. The way we normally do this in our so-called docking code and you're going to be playing around a little bit with one of them in the homework task three is that we define some sort of grid, a very narrow region. This is just the region we want to test. And either I might try to build the molecule in here or I have some very rough, say, Lennar-Jones sphere to determine roughly how much size it is. Will the molecule I had even fit there? If it doesn't fit, just discard it. There's no point wasting any time on it. I can try to score things very early on how hydrophobic is this molecule. Is it a hydrophobic binding site? Okay, it's worth looking a little bit more in detail. Hydrophobic molecule, hydrophilic binding site? Don't bother. Throw it away. You could even imagine calculating a grid so that we don't have the water and everything but in theory I could take my molecule and define some sort of grid cells and put a property in all grid cells. What do I mean by that? Well, let's say that I have a large protein here and this is my binding site. There is lots of hydrophobic polar groups, maybe a positive group there, a negative group there, etc. Another positive and negative group. But maybe I can define a grid around this binding site, free-dimensional. And on this grid, for every small square on the grid now, I can say that if I were to put the positive charge here, would that be good or bad? Out, right next to a positive charge, that would be really bad. I'm basically calculating the electrostatic potential, but just on grid points. Same thing with the negative one, here it would be really good to put a positive charge. And then I could add some sort of property for hydrogen bond donors or hydrogen bond acceptors. Same thing with hydrophobicity or linear Jones interactions, right? I can tell you, is this full of something already? Is the volume available here or not? This looks like it's a complication, but the point now is instead of testing every single position of every atom, I just have to compare things on the grid. And it turns out that we can even do that with fast Fourier transform methods. So I take my small molecule, push it through a fast Fourier transform, and then immediately compare the entire grids without having to make all the actual rotations and translations. So this is super efficient. In docking, I can frequently test both 1000 and 10,000 molecules per second on one computer. But a supercomputer might have 10,000 processors. So you see, then we're talking about maybe testing a million compounds per second on the molecule. If we test a million per second, I could test 3 billion per hour. And the computer is not limited by the number of compounds we happen to have in the chemistry lab. The computer couldn't theory test any possible molecule out of those 10 to the power of 60. I can't test all of them, but I can test a much, much large number than what's possible in the lab.