balls [-h]balls reads a file describing atom colours and/or a PDB coordinate file and produces a stream of Raster3D object descriptors on stdout, one sphere for each atom in the input file. The file produced by balls may be fed directly to render or it may be combined with descriptor files produced by other Raster3D utilities.
cat mycolours.pdb protein.pdb | balls | render > mypicture.pngTo include a pre-selected view matrix with the same model:
cp view1.matrix setup.matrix cat mycolours.pdb protein.pdb | balls | render > mypicture.pngTo prepend header records describing a pre-selected scale and view:
cat mycolours.pdb protein.pdb | balls -h > balls.r3d cat header.r3d balls.r3d | render > mypicture.png
By default the output file contains a set of header records as required by the render program. The header is constructed to include a TMAT matrix corresponding to the transformation matrix contained in file setup.matrix (if it exists), or to the Eulerian angles contained in file setup.angles (if it exists).
Colours are assigned to atoms using a matching process, using COLOUR records prepended to the input PDB file. Raster3D uses a pseudo-PDB record type with COLO in the first 4 columns:
The Mask field is used in the matching process as follows. First the program reads in and stores all the ATOM, HETA, and COLOUR records in input order. Then it goes through each stored ATOM/HETA record in turn, and searches for a COLOUR record that matches the ATOM/HETA record in all of columns 7 through 30. The first such COLOUR record to be found determines the colour and radius of the atom.
In order that one COLOUR record can provide colour and radius specifications for more than one atom (e.g., based on residue or atom type, or any other criterion for which labels can be given somewhere in columns 7 through 30), the # symbol is treated as a wildcard. I.e., a # in a COLOUR record matches any character found in the corresponding column in an ATOM or HETA record. All other characters must match exactly. Note that the very last COLOUR record in the input should have # symbols in all of columns 7 through 30 in order to provide a colour for any atom whose ATOM/HETA record fails to match any previous COLOUR record. This idea of matching masks for colour specifications is due to Colin Broughton.
Several files of COLOUR records, including one based on Bob Fletterick's ``Shapely Models'' and another mimicking CPK model parts, are provided as samples.