The Structure3D class includes two datatypes, which are closely related: ModelStructure and XRayStructure. Note that ModelStructure is the most well-defined; XRayStructure is present mainly as a legacy feature [the author used to use this extensively during his PhD years, but now computed structures are a much more important aspect]. Although both very similar, the ModelStructure Panel is designed for building and editing 3D structures, as well as viewing and outputting.
ModelStructures are typically built from scratch or perhaps imported and tidied up. The content of a ModelStructure can be made into a suitable starting point for a computation, for which it is ultimately designed. An XRayStructure must be imported from an external source, whereby the atom positions and unit cell dimensions are already defined.
The display style of a 3D structure can be changed by clicking on the appropriate tool button; styles include Lines, Circles, Balls, faux-3D, and Greyscale Presentation. The default (as shown above) is faux-3D.
An important part of conceptualising any 3D structure is the ability to rotate through space. Regardless of the tool selected, dragging with the middle or right mouse button rotates the structure: the middle button rotates about the Z-axis, and the right button about the X- and Y-axes.
The status bar at the bottom of the panel provides useful information much of the time, including atom properties & positions, bond lengths, torsion angles etc.
There is no zoom/unzoom feature; it is assumed that structures will not be so large as to make such a feature necessary.
The following is a description of the buttons available on the toolbar for the ModelStructure Panel. The XRayStructure Panel is similar, with fewer options.
The Cursor tool has a number of functions, including selecting, rotating and moving atoms. Besides the whole-structure-rotation mouse movements described above which apply regardless of which tool is selected, the following actions are available to the Cursor tool:
Left single click: Selects the underlying atom, or deselects all if there is none. If the shift button is held, will do toggle the selection on/off for the underlying atom.
Left double click: Selects and edits the underlying atom.
Left button drag marquis: Selects just the atoms in the box. If the shift button is held down, the selection is additive.
If there are selected atoms, holding the alt key and dragging with the left button will translate the selected atoms along the X & Y axes. Doing likewise with the ctrl key will do the same, only the atoms will be duplicated to the new position rather than being moved.
Rotating selection: If there are atoms selected, the following mouse combinations will perform rotations just on the selected atoms rather than the whole structure. Ctrl+middle: rotate selection about the Z-axis at the origin; Alt+middle: rotate selection about the Z-axis, using the centre of gravity of the selected atoms as the midpoint; Ctrl+right: rotate selection about the X,Y-axes at the origin; Alt+right: rotate about the X,Y-axes, using the centre of gravity as the midpoint.
The Erasor tool is for quickly deleting atoms and bonds one at a time.
Reverses the previous action. Note that multistep actions such as dragging or rotating are condensed into a single undo level.
The reverse of Undo.
Displays the structure as lines, coloured according to the atoms they are connected to. There is no 3D effect. Bond order is shown.
As for Lines, except each atom is represented by an open circle, showing the location and a proportional idea of covalent radius.
A simple representation with solid atoms and bonds, but no aesthetic 3D effects, although foreground entities do properly obscure background entities. Note that bond order is not represented.
A solid-style representation which uses a simple but effective and fast impression of light shadowing. This is the default display style. The bond orders are not represented.
Style: Greyscale Presentation
A rather unusual mode which is designed for displaying structures on black & white pages, by using a shape & shading combination for each of the atoms, and also displaying the element and label. This is particularly effective for printing out X-ray structures of inorganic compounds when a colour printer is not readily available.
When the Add Atom tool is selected, a particular element is nominated (defaults to "C"). The element can be changed by right-clicking on the tool.
Left-clicking on an empty part of the Panel will result in a new atom of the selected type being added. Left-clicking on an existing atom and dragging to a new position will result in a new atom, and a single bond. If the former case, the Z-coordinate is always zero, and in the latter case it is set to that of the atom to which it is connected.
When the left-button is used to connect two atoms together, a new bond is formed. If there is a bond already between these, it is replaced with the new bond type.
The bond type defaults to single, but may be selected by right-clicking on the tool.
Note that the 3D structure panels attach importance to the idea of "groups", although they are automatically maintained. A group is a collection of atoms which are connected. Linking two groups together with this tool will cause them to be condensed into one group, since they will now be connected.
Selecting this tool and clicking on an atom will cause a hydrogen and a bond to the hydrogen to be created. The position of the hydrogen will be determined as being the furthest away from existing atoms. Although hardly accurate, it is a suitably convenient starting point.
Selecting the Template tool for the first time, or right-clicking on the button, brings up the selection of available 3D templates. Once one is selected, it may then be placed by left-clicking on the structure section of the panel. Template atoms which are close to existing atoms will be merged. The default selection is relatively minimal, but it is easy to extend by adding new structures within the templates/ Collection in the local Realm.
This is Xykron's molecular mechanics feature. The underlying algorithm is homegrown, and very empirical. It is intended to be able to take any badly drawn structure (including one pasted from a 2D diagram) and rearrange it so that all the bond lengths and angles are at least sensible, if not at all accurate.
The primary concepts involved in the so-called OptiClean algorithm are (1) ideal bond length being the sum of the covalent radii/with a fudge factor for bond order, (2) preferring to keep nonbonded atoms as far from each other as possible, (3) preferred geometries for certain atoms, such as nitrogen(III) having a tetrahedral structure with one missing, (4) specialised rules, such as enforcement of planarity for aromatic and polyaromatic structures.
The refinement of this algorithm has been somewhat trained to the sorts of structures that the author is interested in, and it is certainly not guaranteed to produce good results for any input; however, it is a work in progress, and is frequently improved upon.
This algorithm has been observed to generally produce results that are suitable for an entry-level ab initio optimisation (e.g. HF/STO-2G or STO-3G).
Copies the selected atoms (and bonds between them) to the clipboard.
Copies to the clipboard, and deletes.
Pastes either 2D or 3D structure fragments into the current structure.
Importing 2D fragments in this way goes to a little extra effort: wedge bonds are moved up/down, in order to preserve any depicted chirality; implied hydrogens are calculated, and drawn in. (The 3D structure panels do not recognise or use implied hydrogens.) A run through the Cleanup/Optimise tool is recommended.
Edit Selected Atoms
If one or more atoms is selected, this tool will open up a dialog like that shown. (Or if the Cursor tool/double click action is invoked). The properties which are available for atoms are few and simple: Element, Label, and (X,Y,Z).
It is worthy of note that this differs from the DiagramStructure atom/point editing dialog, which allows a number of additional properties to be set. The reason is that the 3D Panels are designed to be input/output data for computation or crystallography. There is no concept of implied hydrogens which are not recognised, and it is not valid to assign integer charges to individual atoms (although they can be assigned to groups, see below). Similarly valence is irrelevant, and isotopes are not handled at the present time. (Note that the fact that bond order is recorded is noted an inconsistency, but this is useful information for molecular mechanics). Information such as partial charges, computed bond orders etc are determined and displayed elsewhere.
Select Next Group
A neutral molecule will have just one single group, but an ionic salt will contain at least two, and a lattice perhaps many. This tool will make an informed guess as to which (if any) group is presently selected, then select all the atoms in the next group. This is merely a convenience feature.
The properties of whole groups of atoms (clusters of atoms which do not share any bonds between them) are edited with this tool. Charge and Spin for 3D data is defined at the group level (as opposed to 2D data, where it is defined for individual atoms). The charge does not need to be integral, though it usually is. Spin refers to "2S", or perhaps rather inaccurately, the total number of unpaired electrons.
Note that as inputs for computational packages, the assignment of charge & spin to individual groups is irrelevant, and only the total is important; for overall-neutral salts, entering the charge is optional, but for ions which have a net charge, it is very important (e.g. "Na+ Cl-" is the same as "Na Cl", but isolated "HCO2-" not equivalent to "HCO2").
Define Molecular Symmetry
In order to assist with enforcing symmetry for any particular reason (including the option to specify a point group to a computational package such as Xentark), it is possible to define stereochemistry elements within the 3D structure Panels, which are enforced: any structural change will force symmetry twins to be be updated, and rotation will be restricted to some extent.
Supported symmetry elements are: inversion centre, mirror planes on any combination of the 3 axes, and rotational symmetry of arbitrary order. An estimate of the point group is also provided, which may be defaulted to when preparing a CompParams Property.
The symmetry restrictions will be displayed on the main Panel. An inversion centre shuts down all rotation; a single mirror plane restricts rotation to the axis perpendicular to the plane, and a rotation axis only to its own axis. Any two mirror planes or rotation axes, or incompatible combination thereof, shuts down rotation entirely.
Adding or moving atoms causes new atoms to be generated/symmetry atoms to also be moved, as necessary. Note however that when new atoms are created, bonds are not; this must be done manually. Note also that the Cleanup/Optimise algorithm is symmetry aware, and will behave properly.
Several useful tools are provided in a submenu. They include:
Sanity Check: Performs some checks to make sure there is nothing glaringly wrong with the structure (e.g. atoms with the same coordinates, two bonds between the same atoms, etc). Most of these are not permitted by the structure editors, but there are ways to introduce problems, such as by importing.
Auto Bond: There are some circumstances where structures arrive with no bond information. This feature will link up any two atoms which are within their covalent radii.
Centre: Moves the structure to its centre of gravity.
Rotate Flatten: Spins the structure around its axes until what appears to be the "flattest" orientation is attained. This is particularly useful for planar structures, like aromatics. The criteria for "flatness" is proximity of atoms to the XY-plane.
Orthogonal Rotations: Rotating by +/- 90° on any of the axes is possible. This is most useful when there are symmetry elements defined which disallow freeform rotation.
The standard presentation methods work for 3D structures (postscript, Qt-metafile and SVG). The currently selected display-style is honoured, although the black background used onscreen is not imposed.
Import and Export
Presently, the 3D structure types do not support explicit importing or exporting of data content, although CRK-style XML fragments can be moved via the clipboard. Filters for external formats will be added in due course.
The ModelStructure data type may be used as a final destination for information, i.e. storage, viewing, analysis and presentation is all that is needed. It is, however, a vital prerequisite for the CompParams data type, since 3D coordinates are required for any ab initio computation; in a typical structure optimisation, the ModelStructure Property is linked by path, and updated as the optimisation proceeds.
|Prev: Structure2D Class||Back to Contents||Next: Spectrum Class|