Over the years, I have made a myriad of little digital movies. Mostly of molecular graphics. Some to satisfy my own curiosity, others to prove a point, and a few for just plain fun. I have assembled most of them here, with a brief description about how they were made, and what you are looking at. I also have a little section on how to make your own movies.


X-ray Diffraction

This movie is a compilation of actual x-ray diffraction data from a crystal of GCN4-N16A peptide in P3121. Each frame is a 1-degree oscillation. I find this movie useful for showing people how Bragg planes intersecting the Ewald sphere make circles of spots, and how you can see that the lattice is hexagonal, and that you can tell if and when the dataset is complete.

The Importance of Resolution

This movie displays a calculated electron density map, contoured at 1 sigma, as the resolution limit is adjusted slowly from 0.5A to 6A. The resolution limit was implemented by applying an overall B-factor to the map using B=79*(resolution/3)2. Even empirically, this equation seems to define the resolution limit to which a map, calucalted with this B, can be cut-off without distortion. The phases are perfect, and so are the amplitudes (R-factor = 0.0%) for all the resolutions displayed. Note that, even for a perfect map, you expect side chains to poke out of density at 3.5A.

The Importance of R-factor

This movie displays the effect of calculating a map with "wrong" amplitudes. The effect is analogous to calculating a map for a "wrong" molecular replacement solution, with a given R-factor. The images in this movie represent the slow changing of all the Fs to a different set of randomly selected values while holding the phases constant. It is interesting to note that the map hardly changes at all until the R-factor gets higher than 30%. The maximum R-factor you can get for two random data sets is 75%, which is the end of the movie. Kinda spookey how it still looks tracable, isn't it? The resolution here is 1.5A, and the phases are always perfect.

The Importance of Phase

This movie displays the effect of calculating a map with "wrong" phases. The "figure of merit" (cosine of the error in the phase) is displayed as "m". The images in this movie were calculated by mergeing a perfect calculated map with another map, calculated with the same amplitudes, but with phases obtained from a model with randomly positioned atoms. Mergeing these two maps always preserves the amplitudes, but changes the phases slowly to a new set of values. At what point do you think the map becomes untracable? The resolution here is 1.5A, and the R-factor is always 0.0%.

The Importance of Data Completeness

So, what happens if some data are missing? A common complaint about the Rfree calculation is that 5-10% of the data get thrown out, and you're short on data as it is. This movie consists of maps calculated with a certain percentage of data removed, at random, the same way the Rfree flags would be calculated, and the overall data completeness is displayed. Note that this is somewhat extreme, because most people use sigmaA-weighted maps these days, which "fill-in" missing data with the calculated values. The resolution here is 1.5A, and the R-factor is still 0.0%, and the phases are perfect.

The Importance of Overloads

The previous movie might convince us that even 70% complete data is still acceptable. However, what if the missing data were systematic in some way, instead of being random? For example, it is quite common in data collection to have several of the brightest spots "overloaded" on each diffraction image. Usually, these overloaded spots must be left out of the data set, especially on CCD-type detectors, where severe nonlinearities are incurred by overloaded spots. The results can be deceptive! The end of this movie represents a 95% complete data set, but the map certainly looks strange compared to a 95% randomly-deleted data set. The beginning of this movie displays the number of overloads, but then switches to % overloads when the number becomes significantly large. The moral of the story is: collect a short-exposure data set too! The resolution here is 1.5A. The R-factor is 0.0%, and the phases are perfect.

The Importance of Low-resolution Data

This movie presents another kind of systematic error: missing low-resolution data. This kind of error is incurred by having your x-ray beam stopper either too big or too close to your crystal. You might expect this movie to look a lot like the previous one, but it doesn't. There is basically no change in the map until a lo-res cutoff of 6A, and then all hell breaks loose. You might conclude from this movie that you shouldn't bother collecting low-resolution data, but the importance of lo-res spots for solvent-flattening and phase extension are pretty well established, and low-angle data should still be collected for those reasons. The outer resolution limit here is 1.5A.

Completeness in Oscillation Photography

Another kind of systematically incomplete data results from missing or decayed data at the end of an oscillation data collection wedge. This is what you get when you either mis-calculate your collection strategy (or guess the wrong space group), or your crystal decays before you can get a complete data set. This movie was made by simulating an actual data collection run (using a crystal orientation matrix from a real data set), and calculating maps with the "observed" data at that point. Each "jump" you see in the map represents a 1-degree oscillation being added to the data set. The moral of this story seems to be that you need a much higher completeness for real-world data than for randomly deleted data for an interpretable map. The resolution here is 1.5A.


Model refinement

This is a movie made of an acual refinement run of one of my structures. The tan map is the 2Fo-Fc at 1 sigma, the green is Fo-Fc at 3 sigma, and the red is Fc-Fo at 3 sigma. The model is colored by B-factor: blue is coldest, red is hottest. All the maps are updated with each refinement step. It is interesting to see how the map evolves and the model moves around. It's a pain to make, but I have disovered some very interesting things in movies like this. For example, sometimes renegade water molecules can smack into your protein, knocking it out of density, and leaving you to wonder why your model won't stay put. It was also fascinating to see how maximum-likelihood refinement, over hundreds of cycles, eventually pulled the lysine side chain on the top right into a blob of nearby density.


Just for Fun...

Y2K movie trailer

This one here is just for fun. It's a mock movie trailer for something we should really all be ashamed of ourselves for being afraid of. Yes, I know there was a "real" "Y2K the Movie" in 1999. In fact, there were several. This was not one of them. I have err... borrowed images and sounds from some of the best movies ever made. It was a lot of fun to make, but I'll warn you, it's kind of big: 15Mb. I have a 3Mb version for those of you who are still stuck with 20th century computers! :)

"Die Hard: With a Pipetteman" movie trailer

This is also just for fun. It's another mock movie trailer that was made for the 1998 MCB Follies at Berkeley. This one is REALLY big: 40Mb. I have a 3Mb version too.

"Overhead" movie trailer

This is the only trailer here that is for an actual movie: "Overhead". The award-winning film that debuted at the prestigious MCB Follies 2000 film festival. From MCB95 Pictures. The trailer is only about: 9Mb. The entire movie can be downloaded from here but it's friggin' huge! (130Mb)


How do you make your own?

The diffraction movie was made using my moviefy program. Converting the resulting SGI movie to MPEG was done using the SGI movieconvert program.

The rocking map movies were done using a combination of o, the CCP4 suite, ImageMagick, and the SGI scrsave program (or the ImageMagick import utility). A shell script was used to generate an o macro for calling the map-generating script, loading the map into o, grabbing the screen image, and labeling the result for each frame of the movie.

The example map-generating script is just for adjusting resolution. It runs a series of CCP4 programs, followed by mapman to make the desired, minimal o map to cover the viewed region in o. It shouldn't be too hard to figure out how to modify it to suit your needs. To use the o macro, you should first launch o manually, load in your pdb file, set up the viewpoint you want, and do any fancy rendering like sketch_cpk and sketch_stick. Then, just run the macro with @example.omac, and walk away. HOWEVER, make sure you use o version 5.x, because 6.x doesn't seem to render the graphics until after the macro is done! Also, make sure nobody puts any windows on top of your o window, and turn off your screen saver too.

If you don't like the o graphics, you can also do this with Biosym's Insight. The trick is to use the Insight "m:Unix" command to execute the screen-grab. I have an example screen-grab script, and an Insight macro generator available to get you started. This script generates an Insight macro. This macro implements a sinusoidal rock of whatever is on the screen, and uses the screen-grab script to make a series of pictures. You can then make a movie of these pictures using the SGI program movieconvert. You can experiment with the different compression formats. For importing molecular graphics into PowerPoint, the RLE compression seems to work best.

It may also be possible to do movies like this with GRASP, but I have not done this. You'll have to learn how to write macros for GRASP.


Back to James Holton's homepage.


This page is not finished. It will never be finished, and neither will yours. Admit it.

James Holton <jmholton@lbl.gov>