 If you're not taking the labs in Stockholm, it will help you to have some information about the programs we used and even if you do, this might help you prepare it for it. So first we're going to need a code to perform MD simulations. There are several out there, but we're going to use one called Gromax that we have developed in my lab for almost 20 years now. It's simply easier to teach somebody a code you know in and out. There is nothing wrong with other codes, but we like this one for obvious reasons. You can download this for free at Gromax.org or if you're in any modern Linux distribution, you can likely just apt-get it or jump-get it. It's delivered by default in most major Linux distributions at least. The reason why we like to work with a code is that you gradually learn a code in and out and because these codes are open source, not just Gromax, you can actually look at the algorithms that I've gone through here and see how they're implemented in practice. It's more complicated than real codes, but fundamentally the equations are roughly the ones I showed you. The other codes I would recommend, you can use amber, NAMD, both of them are slightly more common in the US while Gromax tends to dominate in Europe and Asia I think. We're friends. All these codes have both warts and various strengths and you should take a full MD class if you want to go into details between them. Over the years this became a story that we moved on from being students to PIs and eventually becoming more and more involved with high-performance computing and that's instructive to at least share with you. When I was a post-doc or a student, we built clusters with 20 computers, 20 processors, 20 cores. Each processor only had one core. That was an amazing computational resource that I've been chronicing of Hermann Berenson here. When I was a post-doc at Stanford, we invested in a 300 core computer. That's an amazingly big. It took an entire server room and then a few years later, probably 10 years ago now, we are going to access this cake computer in Japan which was like 800,000 processors unheard of, 80,000 processors at least. Titan, one of the largest processors when we started using graphics processor units and eventually we became more and more involved in the HPC part of this developing these tools for everyone else in the world and the latest toy we're having access to now is Fugaku together with Riken where they have a person dedicated to optimizing Gromax for this resource. This is almost an XFLOP machine. Why is this important? Well, what this has meant is that Gromax is now one of the most widely used open source tools in the world in HPC. At least 5% of the cycles on all these supercomputers worldwide are actually used for Gromax, which is pretty amazing. Not so much for Gromax as a program, but for the concepts in this class, molecular biophysics and simulations have become mainstream, not just a niche that theoretical physicists work on anymore. So when you work with the simulation in practice, it will vary little from program to program. But typically you would start from a structure, say PDB file, and then you somehow prepare this graphically or not. This would separate the system into at least two different things. The first one would be all the constant stuff, all the names of the atoms, the chains, partial charges, things I mentioned, things that will not change during a simulation. And this is also where we're going to add in all those parameters for a force field that you choose. There are many different ones. You will pick a few in the lab. The other part is going to be the stuff that will typically change during a simulation. The specific starting state we have, the coordinates. We will assign a set of velocities from the Maxwell-Boltzmann distribution corresponding to, say, 300 Kelvin. And it makes sense to keep this separate because this is going to vary while if I repeat the simulation 100 times, this part is going to be constant. In addition, if I actually want to do anything, I have to tell the program what I want to do. Some sort of file with parameters telling you run a simulation or run an energy minimization or run a free energy calculation. It's going to be a relatively short text file. And then at some point, again, it depends a little bit on the program, you're going to combine these different parts together. In Gromax, we like to prepare that and create a package run input file. That might seem awkward if you're just doing this on a laptop, but if you're going to execute this on a supercomputer, that job will have to wait in line in a queue. And it might start at 4 a.m. in the morning. And you don't want to get a mail the next day saying that there was an error when we started this. Please try again. It's much nicer to get the error when I'm preparing the simulation. And once this is done, I know that it will just execute. But for that reason, these programs tend to be picky, picky, picky. You will get the errors here so that later when things are fine, you can just push this in a queue, have it run the simulation, and then you're going to have results to analyze. Those results can be pretty boring, though. They're just raw coordinate numbers, X, Y, Z coordinates as a function of time, and maybe energies. These programs are made to run at supercomputers, not to visualize things for you. But to visualize and understand, there is another program I can strongly recommend. VND, Vigil Molecular Dynamics, developed by friends of us at the University of Illinois, Banner-Champaign, in particular, John Stone, who is a pure wizard. It's freely available. You can download it. You just have to register, but they're not going to send you spam. This is a program that you can use to, say, decide to plot the protein as a surface or plot all the atoms. And then John has written a huge number of amazingly beautiful rendering functionalities. You can turn this into a semi-translucent glass or everything. He's better than I am at rendering. You can also choose whether you would like to, say, emphasize the secondary structure or the healers sheets elements. See sidechains. There is a ton of menus here. You can do absolutely anything and create drop-dead gorgeous plots and, say, zoom in and use a different representation for a group that is binding or something. I am gradually getting more used to VND. A long time ago I used to use a program called Pymol. There's nothing wrong with Pymol, but Pymol is no longer freely available. The full-featured version of Pymol you need a license for, and I'm simply, I don't want to bother with license. It makes life complicated. Depending on your institution you might have access to an educational Pymol license or there is a completely free open-source version that you can compile from scratch, but otherwise I would favor VND today. It's easier and John has provided beautiful versions both from Mac, Windows and Linux. And that's it. Now you're ready to start doing simulations.