 So in particular with COVID and the SARS-CoV-2 protein available now, there are a ton of groups working on this including us and colleagues. So these are examples from molecular simulations of the spike protein seen from the side and from the top. Again, this is a small protein that creates the small patterns that are crown-like. The part up here is the receptor binding domain, and you see three of them at the top here, and we already know that one's going to bind to the ACE2 receptor on humans. The only question then is that first, how will this stick together? Exactly what will that ACE2 receptor look like, and can I bind a small drug maybe to either the virus or the ACE2 receptor and prevent this from happening? That's a bit of hand waving, so we need to be slightly more concrete. What I would like to find is a way that I can rapidly find the best ways to put two molecules together. And here I'm primarily thinking of the small molecule, the drug I'm going to design. I might think of both the spike protein and the ACE2 receptor as one big complex. This process is called docking. And there are two keywords here. First, I'm going to need to find the best way, and I need to find it. Find means that I'm going to need to search. I will need to test lots of different confirmations. Best means that I'm going to need to score it, so I can write that. There has to be some scoring here. In theory, you could calculate the free energy in a simulation, but as I already hinted, that's going to be too expensive in practice. Second, we need to identify ways to put at least two molecules together here. That means that I will literally have to search by trying to fit the molecule in lots of geometrically different confirmations. And in a way, you almost did that already. Do you remember lab one when you used a Monte Carlo algorithm? You didn't have a continuous energy landscape, but if you test that position or that position or that one or that one or that one. Here, if we just want something that is super fast and that we accept that we might be a bit sloppy, Monte Carlo algorithms might actually work quite well. I'm going to need to find a way to rotate the molecules. I need to decide how much freedom I will allow in the molecule, and this is a complicated balance because the more accurate I do things here. Accuracy sounds good, but the more accurate we do things, the more costly it's going to be. Here, the whole assumption here is that this should be a fast and relatively sloppy method to ensure that it's 1000 times faster than the experiments. So I will not go for accurate here. This requires us to develop two things. First, I need some sort of sampling. For instance, Monte Carlo sampling. I need to generate many different conformations, ways of putting these molecules together or putting the small molecule in the receptor. For instance, rotating it and changing all the bonds in the small molecule. Second, we need some sort of scoring method or ranking method. Given all these different conformations, I need to be able to say which ones are good, which ones are bad. Keep the good ones, try to find even more good ones while we ignore the bad ones. Nothing here requires me to sample properly according to the Boltzmann distribution or anything. I couldn't care less about proper physics. I just want to make sure that I find some good hits in this case. So if sloppy is the middle name, let's be sloppy and see how we can do that.