Top page

Syntax summary

This is a summary of the MolScript input file syntax. It is a simplification of the actual yacc grammar (file molscript.y), which describes the syntax in a condensed form using a Backus-Naur Form (BNF) notation. Undocumented features are omitted.

input_file: [title string] plot {plot} ;

plot: {macro_def} plot {header_command} {body_command} end_plot ;

macro_def: macro macro_id commands end_macro ;

header_command: < noframe
                | frame < on | off > ';'
                | area number number number number ';'
                | background colour ';'
                | window number ';'
                | slab number ';'
                | headlight < on | off > ';'
                | shadows < on | off > ';'
                | fog number ';'
                >

body_command: < read mol_id filename ';'
              | read mol_id inline-PDB ';'
              | copy mol_id atom_selection ';'
              | delete mol_id ';'
              | comment string ';'
              | debug string ';'
              | transform atom_selection {by xform} ';'
              | store-matrix ';'
              | macro_def ';' >
              | set parameter_spec {',' parameter_spec} ';'
              | ball-and-stick atom_selection [atom_selection] ';'
              | bonds atom_selection [atom_selection] ';'
              | coil residue_selection ';'
              | cylinder residue_selection ';'
              | cpk atom_selection ';'
              | double-helix residue_selection ';'
              | helix residue_selection ';'
              | label vector string ';'
              | label atom_selection string ';'
              | line vector to vector {to vector} ';'
              | object filename ';'
              | object inline ';'
              | strand residue_selection ';'
              | turn residue_selection ';'
              | viewpoint id origin vector number ';'
              | directionallight vector ';'
              | directionallight from vector to vector ';'
              | pointlight vector ';'
              | spotlight vector vector number ';'
              | spotlight from vector to vector number ';'
              | anchor id [description string] {parameter string}
                  '{' basic_commands '}' ';'
              | level-of-detail
                  { number '{' basic_commands '}' }
                  '{' basic_commands '}' ';'
              | viewpoint id from vector to vector [number] ';'
              >

atom_selection: < not atom_selection
                | require atom_selection {',' atom_selection}
                    and atom_selection
                | either atom_selection {',' atom_selection}
                    or atom_selection
                | atom atom_id
                | res-atom residue_name atom_id
                | occupancy number number
                | b-factor number number
                | in residue_selection
                | sphere vector number
                | close atom_selection number
                | peptide
                | backbone
                | hydrogens
                >

residue_selection: < not residue_selection
                   | require residue_selection {',' residue_selection}
                       and residue_selection
                   | either residue_selection {',' residue_selection}
                       or residue_selection
                   | molecule mol_id
                   | model integer
                   | from residue_name to residue_name
                   | residue residue_name
                   | type residue_type
                   | chain chain_id
                   | contains atom_selection
                   | amino-acids
                   | waters
                   | nucleotides
                   | ligands
                   | segid segment_id
                   >
Top page