Updated Rasmol

This page contains information about a modified version of Rasmol that I developed for my own purposes. You are welcome to use it. It contains several bug fixes and performance enhancements. If you just want to grab it, start at the top. If you want to know everything that's changed, start at the bottom. :)

Enjoy


3-14-2004
Includes support for bzip2 archives, similarly to pre-existing support for gzip(gz) and "compress"ed(Z) archives. SRPM or patches.


3-13-2004
Fix issues with POV-Ray files. POV-Ray 3.5 choked on them and the perspective/orientation was different between rasmol and the POV-Ray output. SRPM or patches.


11-25-2003
Continuing fixups for reading in element names. The last change partially broke it, but there were other places that were already broken. Grab the new SRPM or patches.


5-26-2003
Discovered a bug in the processing of element names for xyz files (and possibly MDL?) that prevented Rasmol from recognizing element names with more than a single character. This could eventually lead to rasmol crashing. It's fixed in the new SRPM or patches.


New and Improved! You can now get my version as an source RPM. The SRPM will build on Linux machines and contains the original sources plus patches. Enjoy. If you just want the patches, that's ok too.

Here's the home page for the current official version of Rasmol.


I discovered that writing image files in 16-bit display mode was totally busted. The colors looked like the image had been acid-washed. Bad. But I fixed it (it's included in the SRPM and patches above). Hooray.


Now available is Andrew's second version of RasMol 2.7.1. The second version allows you to compile so that Rasmol's bond searching routine will be less confused and significantly faster. In cases where an atom in the CONECT list is less than the ones before it, rasmol basically started from the beginning. Now rasmol will use the index I developed for 2.6b2 to speed up that process. Rasmol will no longer slow down significantly if there are "fake" atoms at the end, or if branch or ring structures prevent the CONECT lists from being 100% in order.

I have implemented the atom index as a compile-time option. If you want to use the atom index feature, you need to compile the program like this:

make EXTRA_DEFINES=-DNDEX

This will allow you to compile without the new code (by using just plain "make") if you want to use pdb files in which the atom list is not ordered (which will confuse the atom index quite a bit).


Here is Andrew's version modified from version 2.7.1. Version 2.7.1 has implemented a method for processing bonds that is faster than mine (under most circumstances). It also compiles on Linux (2.6b2 does not). There is also a command line option in 2.7.1 to turn off bond recalculation when there are not enough bonds listed in the file:

rasmol -noconnect file.pdb

When rasmol reads a CONECT statement from a PDB file, it searches the list of current bonds to see if the bond already exists (this would indicate a double or triple bond). However, version 2.7.1 ignores these double and triple bonds. So, I have deleted the search for these duplicate bonds (it takes a long time for large files). If you list a bond in a PDB file twice, rasmol will try to process it twice, and I don't know what will happen.

However, 2.7.1 (of course) does not have my hack to read 7 digits for atom serial numbers from PDB files. It also seems to have trouble reading gzipped xyz files with multiple frames (for animation in Chime). If the xyz file is either ungzipped with multiple frames or gzipped with one frame, rasmol should work ok. This is actually a problem in 2.6b2 also, and 2.7.1 actually handles it a little bit better. The problem is that rasmol attempts to close the ungzipped file in the middle, which isn't very nice. Fixing this was relatively easy and should not have any adverse affects.


Here can be found Andrew's version of Rasmol with significant modifications. The current version loads large PDB files very fast, does not recalculate bonds if there are fewer than N-1 bonds (where N is the number of atoms) and can handle PDB files with up to 9,999,999 atoms (although RasMol will probably start assigning negative values to atoms after ~2 billion, and reassigning old positive values afer ~4 billion. haven't tested this yet). Traditional PDB files can only go up to 99,999 because only 5 characters are allowed for the atom number. However, the ATOM line looks like:

ATOM  nnnnn  blah blah blah

where the 2 spaces between "ATOM" and "nnnnn" are wasted. My version of rasmol allows those two spaces to be occupied by numbers. The CONECT statement is also changed. Rasmol actually ignores the "CT" on the end of CONECT. My version only ignores it if there are no numbers.

CONECT 2345 2346

still works, but now:

CONE14256321425633

means connect 1425632 and 1425633. Notice that the right edge of the second number has grown. This means that if you have more than one bonded atom, they must be spaced out more:

CONECT 2345 2346  2347

As in traditional PDB files, Rasmol recognizes 4 bonds and 1 hydrogen bond. I haven't tested it with multiple bonds, but it should work.

If you do not want to use 7 digit atom numbers, this handles 5 digit atom number a little bit better.

If anyone wants to send me the source code for Chime, I will gladly modify it as I have Rasmol... :)