Chemists have traditionally been mainly concerned with the study of natural molecules, which has led them to give little attention to the means of constructing descriptions of large artificial molecules. Nanotechnology designs will need ways to put together standard components to describe sophisticated systems.
This paper describes software under development that should make it easy to specify complex artificial molecules by simple scripts which describe moieties and how they attach to each other.
Each moiety description includes a list of dangling bonds plus a dihedral angle to specify the orientation of each dangling bond. The relative positions of the atoms in the moiety are specified by the bonds between them and as many dihedral angles as are needed to make it unambiguous.
The scripts are written in Python and use objects from Konrad Hinsen's Molecular Modelling Toolkit, which produces a powerful and flexible language without making the scripts hard to read or reinventing much syntax.
Some example scripts and pdb files they produce are available here. The complete source code for this system will be available through the above link by the time of the conference. I hope to add a GUI and easier ways of defining moieties (Z-matrices or Cartesian coordinates as alternatives to using dihedrals, and easier ways of generating lists of possible dihedrals) by then.
Here is an image of a 5546-atom molecule created by a 45-line script
from 8-carbon diamond(111) groups and hydroxyl groups: