RODS(1)
π
RODS(1) β the rods page, bestie edition π
okay so this is the manual for rods, from the General Commands Manual section 1, and she's a Raster3D preprocessor for ball-and-stick models. yes you read that right, we're doing molecular rendering and we're doing it fabulously πΈ
β¨ NAME β¨
rods β Raster3D preprocessor for ball-and-stick models π§
π SYNOPSIS π
rods [-h] [-b] [-radius R] [-Bcolor Bmin Bmax]
So like, rods reads a file describing atom colours and/or a PDB coordinate file, and it produces a file containing Raster3D descriptor records. The file rods spits out may be fed directly to render, or you can combine it with descriptor files produced by other Raster3D utilities. mix and match, it's giving collab energy π«Ά
π EXAMPLES π
Wanna describe a simple bonds-only model coloured by residue type? Say less:
cat mycolours.pdb protein.pdb | rods | render > mypicture.png
Wanna render that same molecule as ball-and-stick instead? Obsessed:
cat mycolours.pdb protein.pdb | rods -b | render > mypicture.png
π OPTIONS π
-hβ Suppress the header records in the output. By defaultrodsproduces an output file that starts with header records containing a default set of scaling and processing options. The-hflag suppresses those header records so your output file contains only object descriptors. This one is lowkey useful for producing files that describe only part of a scene, which you then combine later with descriptor files produced by other programs. very modular of you π-bβ By defaultrodsdescribes bonds only; the-bflag makes it include spheres at the atom positions too, giving you that ball-and-stick representation. the glow-up fr fr β¨-radius Rβ By defaultrodsdraws bonds as cylinders with a0.2Aradius. Theradiusoption lets you change that cylindrical radius. pick your vibe.-Bcolor Bmin Bmaxβ Assign colors based on B values instead of from atom or residue types. Atoms withB <= Bminget colored dark blue; atoms withB >= Bmaxget colored light red; atoms withBmin < B < Bmaxget colors shading smoothly through the spectrum from blue to red. it's giving gradient π
π DESCRIPTION π
The input to rods is a single text file containing colour information and atomic coordinates in PDB data bank format. Coordinates are output as Raster3D descriptor records, with colours and sphere radii assigned according to the COLO records described below. Ball-and-stick figures have atoms drawn at 0.2 * VanderWaals radius, connected by rods with a default 0.2A cylindrical radius. Bonds are drawn for atoms which lie closer to each other than 0.6 * (sum of VanderWaals radii). 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 the file setup.matrix (if it exists), or to the Eulerian angles contained in the file setup.angles (if it exists). no cap.
Colours are assigned to atoms using a matching process, using COLOUR records prepended to the input PDB file. If no COLOUR records are present in the input file, atoms receive default CPK colors: C=grey, O=red, N=blue, S=yellow, P=green, other=magenta. iconic defaults, honestly.
Raster3D uses a pseudo-PDB record type with the same basic layout as the above, but with COLO in the first 4 columns. Here's the column tea β:
- Columns
1 - 4βCOLO - Columns
7 - 30β Mask (described below) - Columns
31 - 38β Red component - Columns
39 - 46β Green component - Columns
47 - 54β Blue component - Columns
55 - 60β van der Waals radius in Angstroms - Columns
61 - 80β Comments
Note that the Red, Green, and Blue components sit in the same positions as the X, Y, and Z components of an ATOM or HETA record, and the van der Waals radius goes in place of the Occupancy. The Red, Green, and Blue components must all be in the range 0 to 1. yes that's a hard requirement, not a suggestion π
The Mask field is used in the matching process like this: first the program reads in and stores all the ATOM, HETA, and COLO records in input order. Then it goes through each stored ATOM/HETA record in turn, and searches for a COLO record that matches the ATOM/HETA record in all of columns 7 through 30. The first such COLO record to be found determines the colour and radius of the atom. first come, first served, periodt.
So that one COLO 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 used as a wildcard. I.e. a # in a COLO record matches any character in the corresponding column in an ATOM or HETA record. All other characters must match literally to count as a match. Note that the very last COLO 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 COLO record β that's your catch-all bestie, don't skip it π This idea of matching masks for colour specifications is due to Colin Broughton. king behaviour π
π¦ ENVIRONMENT π¦
The files setup.matrix and setup.angles, if they exist, affect the header records produced by rods. yes, they can just... show up and change things. main character energy.
β SOURCE β
web URL:
http://www.bmsc.washington.edu/raster3d/raster3d.html
contact:
Ethan A Merritt
University of Washington, Seattle WA 98195
merritt@u.washington.edu
πΈ SEE ALSO πΈ
render(l), ribbon(l), balls(l) β the whole friend group π«Ά
π AUTHORS π
Ethan A Merritt
and that's the whole page, bestie!! π this one's Raster3D, dated 8 May 1999, so it's vintage and we love her for it. slay, stay rendered, and always match your masks. π β¨
π¦ where this page comes from
- debian bookworm: raster3d 3.0-7-2+b1 Β· Artistic-1.0-Perl
- debian trixie: raster3d 3.0-7-2+b2 Β· Artistic-1.0-Perl
- ubuntu jammy: raster3d 3.0-7-2 Β· Artistic-1.0-Perl
- ubuntu noble: raster3d 3.0-7-2build1 Β· Artistic-1.0-Perl
- ubuntu questing: raster3d 3.0-8-1
- ubuntu resolute: raster3d 3.0-8-3 Β· Artistic-1.0-Perl
- ubuntu stonking: raster3d 3.0-8-3 Β· Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms