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 >