Cameron Manual

Introduction

CAMERON was designed and built in the Chemical Crystallography Laboratory, Oxford, by Lisa Pearce, Keith Prout and David Watkin. Many people have contributed ides for improvements, and Louis Ferrugia pioneerd a completely WINDOWS based version.

HOW TO CONTROL THE PROGRAM

The program is controlled by typing commands at the keyboard, by use of a mouse to pick items from a menu, or by using the mouse to manipulate the diagram.

Command Groups

The commands have been collected into groups (twenty-three at present). Each group contains commands and sub-commands which perform related functions or which will act as qualifiers to each other. The command processor will spot invalid combinations of commands and sub-commands and enter error mode. Once in this mode the error can be corrected.

Command groups are used to decide when the user has finished entering all the qualifiers for a particular operation. The qualifiers are assumed to be finished when a command of another group is entered. For example :-

XROT 20 YROT 30 VIEW LINE ALL

XROT, YROT and VIEW are all in the same group but LINE (a command that sets the drawing style) is not. When the command processor reaches the LINE command it will then execute the previous commands ie XROT to VIEW. This is useful because it means that the user does not need to input all the qualifiers on one line, and also because the user does not need to tell the computer when it has finished with an operation - the computer is able to work this out for itself. The input lines :-

XROT 20 YROT 30 VIEW LINE

and

XROT 20
YROT
20 VIEW
LINE

will produce exactly the same results.

If the user wishes to execute a group of commands without entering a command of another group this can be done by sending a blank line to the command processor (ie press the RETURN key twice).

XROT 20 YROT 30 VIEW <RETURN> <RETURN>

will execute the three commands without the need for LINE.

ERROR HANDLING

The command processor is able to check for some errors in the commands input by the user. The computer checks for two types of error:

1. Whether a command / sub-command combination is valid.
2. Whether the arguments supplied after a command are valid and also if there is
the correct number of arguments.

The action taken after an error depends upon the setting of the EDIT flag. If EDIT is OFF, only an error message is displayed. If EDIT is ON, the faulty input can be edited. Once an error has been detected the user can take action and modify the input line so that as many commands as possible can be processed. (If error checking is not carried out at this level, the detection of an error while executing a command will cause that command - and possibly its sub commands - to be lost.)

The user is given three options once an error has been detected.

Abandon

Do not execute any more commands not yet executed.

Edit

The action taken by choosing the second option will depend on the nature of the error. If a word has been input that the computer has not recognised the user will be asked to enter an alternative word. If <return> is used then the word is replaced by a blank space - it is effectively deleted from the input line. If too many arguments are supplied the user is given the opportunity to delete the excess arguments. Alternatively if arguments are missing the user will be asked to input them.

Help

Help information is supplied if the user requests it. This will say what arguments, if any, are required by the current command. Also, if any sub commands are valid in the context of the error these are listed.

For example, the input line

XROT 10 YROT ZROT 15 VIEW

contains an error - an argument is missing after YROT. The program will give the user three options :-

Abandon      Don't execute any of the commands
Edit         The user can supply the needed argument
             and the new line is then processed.
Help         This will display the help information

     This command requires one numeric argument - the angle of rotation in degrees.

The HELP facility

The CAMERON HELP facility can be entered in one of two ways, either once an error has occurred (as described above) or by requesting it directly. This second way of accessing HELP is achieved by entering ‘HELP’ or ‘?’ at any point in the input line. If a command follows ‘HELP’ / ‘?’ then information is given on this command - otherwise information is given on the previous command (if any). If no HELP is available (because the command is not recognised) then the user is supplied with general HELP information. The only difference between ‘HELP’ and ‘?’ is in the detail of the information supplied. Each command comes with a help information line. Entering ‘?’ will provide the user with the information line for the command on which you have requested HELP and a list of the sub-commands that are valid at this point. Entering ‘HELP’ gives the same information except that the help line for each of the sub-commands shown is also listed. ‘HELP’ will therefore provide the user with more detailed information than ‘?’ will.

Once the HELP information has been read the user may ‘Continue’ or ‘Abort’. The later two options are the same as for Error Handling and are described above. ‘Continue’ simply removes the word ‘HELP’ or ‘?’ (and any following words) from the input line and the user can carry on as before.

Mouse Activation

The Mouse can be used to pick out atoms (and elements if a KEY is present). In some cases this is much quicker than typing on the keyboard - especially if the user does not know the names of the atoms concerned. The mouse cursor (an arrow) is present once an appropriate output device has been chosen.

For some commands the mouse is used for functions other than atom/element picking. In such cases - eg text positioning and labelling - the mouse is activated by typing MOUSE as a separate command.

General Input Syntax

When the atoms are in their initial state (ie no symmetry operators have been applied) they are referred to by their normal atom or element names. With commands that allow elements to be affected eg COLOUR, BALL you may use a ‘*’ to refer to ALL atoms. For example CONNECT O * 0.0 3.0 will find all bonds between oxygen and any other atom within 3 angstroms. A ‘*’ can also be used to refer to GROUP names (see DEFGROUP later).

Once pack operations have been carried out the atoms are identified differently. During PACK and ENCLOSURE the user is provided with information similar to :-

2 additional symmetry generated units.

The atoms generated will be referred to by suffixing their packnumber eg O1_2. These numbers can be shown by using LABEL GENERATED. Therefore, consider an asymmetric unit which contains N1 and O2. The following will be available after packing:-

N1_1      the single atom
N1        all N1 atoms in the packed structure
N         all the nitrogen atoms
N_2       all the nitrogen atoms with pack number 2
*_1       all the atoms with pack number 2

These pack numbered atom identifiers are produced by mouse clicking on the atoms concerned. The symmetry operation used to generate the atoms can be found from INFO PACKNUMBER. The operators are also written to the CRYSTALS listing file

When CAMERON is parsing the commands input it checks to see whether the next work on the line is a command or not. Only the first 4 characters of each word are significant. Therefore, the processor will not know the difference between the command COLOUR and the file COLOUR.PST. If you require the later then it must be enclosed in quotes - eg COPY “COLOUR.PST”.

How To Get Started

There is a basic ‘startup’ procedure that can be followed in order to get a picture on to the screen. The following steps are required :-

1)      Load in a spacegroup if required
2)      Load in the unit cell dimensions
3)      Load in the atomic coordinates
4)      Select an output device
5)      Set the atom drawing style to BALL
6)      Draw a picture

This can be accomplished with the following commands, which are illustrated for a compound which has a spacegroup P 21, unit cell parameters a=6.0, b=7.0, c=8.0, alpha=90, beta=115, gamma=90. The atomic coordinates are held in a “list5” type file NIGEL.L5.

SPACEGROUP P 21
INPUT
CELL 6 7 8 90 115 90
LIST5 NIGEL.L5
DEVICE VGA
BALL ALL
FILL
VIEW

From here the view direction can be controlled via XROT, YROT, ZROT or CURSOR. If you require a picture of all the atoms in the unit cell, and the unit cell also displayed, the commands are :-

PACK CELL
INCLUDE CELL
VIEW

Data Input

At present data is read from CRYSTALS generated LIST5 files and CSSR files (see the CRYSTALS manual).

Input of CRYSTALS List 5 files

These files do not contain information on the dimensions of the unit cell. It is therefore necessary to use CELL to enter this information prior to the reading of the list 5 file.

INPUT

CELL

The syntax of this sub-command is :-

INPUT CELL a b c alpha beta gamma

ie we require six arguments - cell dimensions in angstroms and angles in degrees. Their values are assigned as shown above.

LIST5

This command requires as its argument the name of the file that contains the atomic coordinates. The syntax is :-

LIST5 filename.L5

NB The LIST5 command will not be accepted without the previous command CELL.

CSSR

CSSR files are input by using INPUT CSSR. As with LIST5 files above it is advisable to input the symmetry information before inputting the atomic coordinates.

Related commands : OBEY, OUTPUT

Outputting Data

OUTPUT

CAMERON outputs data in CRYSTALS LIST5 and CSSR format.

LIST5

This outputs a crystals list5. It must be followed by a filename. The list5 will contain LIST1 unit cell information at the end - such a file can be re-read by CAMERON with no problem.

CSSR

FRACT

ORTH

These subcommands are needed to specify the coodinate type for the CSSR file ie orthogonal or fractional. The command is followed by the filename of the output file.

Example:
OUPUT CSR FRACT mydata.css

Related commands : INPUT

Editing The Atom List

The user is able to edit the names and elemental types of the atoms in the current list. The following commands are available -

RENAME

The syntax is:

RENAME at1 at2
or:
RENAME el1 el2.

Arguments are entered in pairs - the first is renamed to the second - and must be like with like. i.e. you cannot rename an atom to an element or vice versa.

RETYPE

This allows the user to change the element of a list of atoms.

ATOMS

The syntax is -

RETYPE element ATOM at1 at2 at3

Obeying Files

OBEY

If required the user is able to hand over control of CAMERON to an external file. This is particulary useful if a set of operations is to be carried out on a number of pictures because the file need only be generated once and then it can be used over and over again. At the present time CAMERON is able to read files is its own format - ie in with the same syntax as the commands input at the keyboard - or it can read a SNOOPI.INI file as output by CRYSTALS. The syntax is :-

OBEY nnn.nn

Note that any commands entered after OBEY (on the same line) are ignored. This is to allow for possible errors in the OBEY file - errors will cause the OBEYed file to be closed. OBEY files may themselves contain the names of other files to be OBEYed.

Related commands : LOG

Archiving And Retrieving Views

The user can archive the present structure view on disk or retrieve a previously archived view from disk. At present only structure views residing in the same directory as the crfilev2.dsc (the working directory) can be retrieved. Equally well, views can only be archived in the working directory. As an alternative to the line commands, the user may choose the commands that are available in the pull-down menu ‘File’. The following commands are available -

ARCHIVE

The syntax is:

ARCHIVE "foo.foo"

Note that the quotes (”) are necessary to avoid confusion with non-existing sub-commands to this command. The filename must not exceed 12 characters.

RETRIEVE

The syntax is:

RETRIEVE "foo.foo"

Note that the quotes (”) are necessary to avoid confusion with non-existing sub-commands to this command. The filename must not exceed 12 characters.

Graphical Output Devices

The user has to specify a graphical output device before the command VIEW can be used. This is done with the command SCREEN. Note that if the title screen file CAMERON.SRT is present the screen is automatically set to VGA.

SCREEN

The following devices are currently supported:-

VGA

This sends the output to a VGA monitor eg to a PC graphics screen.

EGA

This sends the output to an EGA monitor.

SIGMA

This sends the output to a SIGMA terminal.

TEK

This is used for VAX terminals with Tektronics 4010 emulation.

HARDCOPY

If hardcopy output is required the user must specify a separate device which is then drawn to using COPY. Those available are :-

POSTSCRIPT

The graphical output is sent to a file in POSTSCRIPT format so that it can be printed on a postscript printer.

ENCAPPOST

The graphical output will be sent to a file in the same way as with POSTSCRIPT, the only difference is that the resulting file will be in Encapsulated form so that it can be incorporated into other packages eg Word Perfect (using the Graphics range of commands).

CPOST

This generates a file in Colour Postscript (Level 1) format.

CENCAP

This generates an colour encapsulated postscript file.

Related commands : VIEW, COPY

View Direction Control

One of the most important features of a graphics package is the ease with which a required molecular view can be obtained. CAMERON contains a large number of options which allow the user to control the view direction.

BASIC CONTROL

Five commands are available to control the view direction by applying rotations to the molecule. These rotations are applied cumulatively - rotating about the x axis by 20 degrees then by -10 degrees will result in an overall rotation of 10 degrees relative to the starting point.

XROT

This command is used to apply a rotation of n degrees about the

x-axis which lies horizontally across the screen. The syntax is:

XROT n

YROT

ZROT

These two commands are identical to XROT except for the axis about which the rotation is carried out. The y-axis lies vertically up the screen and the z-axis is perpendicular to the screen.

ROT

This command is a ‘shorthand’ for the previous three commands as it allows you to apply three successive rotations by entering only one command. The syntax is :-

ROT x y z

Note that the order of rotation is: rotate about x then y then z. The order of rotation is important - YROT 10 XROT 5 ZROT 15 will NOT produce the same result as ROT 5 10 15 as the rotation matrices are non-commutative.

CURSOR

This command allows the user to control rotation with the cursor keys. Each time a key is struck a rotation of 5 degrees is applied about the relevant axes. After each key stroke the molecule is rotated and then re-drawn. To speed up this process the molecule is drawn in line style during the CURSOR rotation and is not scaled. The set-up prior to CURSOR is restored once rotation is terminated. The keys used are:

Rotation about the x-axis

Positive      up arrow
Negative      down arrow

Rotation about the y-axis

Positive      left arrow
Negative      right arrow

Rotation about the z-axis

Positive      Delete key (PC)
Negative      End key (PC)

Any other key stroke will terminate the CURSOR control and draw the resultant picture.

ORIENTATION COMMANDS

More specific orientation of the molecule can be achieved by relating the view direction to the position of certain atoms within the picture.

PLANE

In some cases it is useful to be able to define a PLANE and then set the view direction to be perpendicular to it. The syntax of this command is :-

PLANE at1 at2 at3 ...

At least 3 atoms must be used to define the plane (element names will not be accepted). If more than 3 are used then the program calculates the best plane through the atoms and projects onto this.

ALL

PLANE ALL will generated a ‘best view’ of the current structure.

FACE

Alternatively you may want to view onto a particular crystallographic face of the unit cell. The syntax for this command is:

FACE h k l

where h k and l are the Miller indices of the FACE in question.

ALONG

It is possible to define the view direction as that looking down an interatomic direction. The direction is specified by inputting :-

ALONG at1 at2

As with PLANE atoms not elements must be used as the arguments. Note that the view direction is calculated as that looking down the at1 - at2 direction ie at1 is the closest of the two. The reverse view will be obtained by requesting ALONG at2 at1. ALONG also has a sub-command associated with it:

AXIS

It is possible to define the view direction as looking along a particular unit cell axis. The syntax of the command is:

ALONG AXIS x

where x is A, B or C.

VERTICAL

HORIZONTAL

These two commands are similar to ALONG except that the at1 - at2 direction is oriented up (VERTICAL) or across (HORIZONTAL) the screen as required.

AXIS

The AXIS sub command may be applied to the HORIZONTAL and VERTICAL commands. This rotates the diagram around the z axis so that the required axis is HORIZONTAL or VERTICAL as specified. This is particularly useful when generating hard copy output.

BISECT

This command requires three arguments, at1 at2 and at3. It will generate a view direction looking along the bisector of the at1-at2-at3 angle. The syntax is:

BISECT at1 at2 at3

where at2 is the apex atom.

PHOTOGRAPHS

PHOTO

ON

OFF

These commands are used to control the PHOTO facility. VIEW displays the user with information about the current scale and displays the mouse cursor once it has finished. PHOTO ON turns off this and waits for a key press before proceeding. This allows the user to obtain a ‘clean’ screen for photographs to be taken.

Related commands : SCREEN, HARDCOPY

Include And Exclude

The commands INCLUDE and EXCLUDE are very useful as they control which atoms are drawn at any one time. The syntax for both of the commands is very similar as they are effectively the reverse of each other.

INCLUDE

EXCLUDE

These commands may be entered on their own and be follow by atom or element names. The syntax is :-

nnCLUDE at1 at2 el1 el2

Once an atom has been EXCLUDED from the picture it is not drawn and it is not included in any calculations eg PACK or ENCLOSURE.

ALL

The ALL sub-command is a ‘blanket’ command that applies the IN/EXCLUDE operation to ALL of the atoms in the current view. Therefore if we want to exclude more atoms than we want to include we can use EXCLUDE ALL to get rid of all of the atoms and then add in those we want by using INCLUDE.

GROUP

The command DEFGROUP is available to define groups of atoms that are to be referred to as a whole. The IN/EXCLUDE command can be used with GROUP to remove or atoms all of the atoms in the group in the picture as required.

FRAGMENT

The user can specify atoms to be IN/EXCLUDEd by defining groups of atoms as fragments. A fragment is defined by a single atom, and consists of all the atoms linked to it by the current CONNECTIVITY TABLE. That is, if atoms are excluded from the picture the bonds ARE NOT broken and FRAGMENT will use bonds involving excluded atoms in its calculations. The user can select this atom by typing or by clicking on it with the mouse. ie. EXCLUDE FRAGMENT C1 will exclude C1, any atoms joined to C1, any atoms joined to those atoms etc.

CELL

It is often useful to see how the atoms being drawn relate to the unit cell. IN/EXCLUDE CELL is used to control the inclusion of the unit cell (in the LINE style) on the picture.

AREA

Choosing INCLUDE or EXCLUDE AREA in the PC version allows the user to draw a polygonal area with the mouse. The polygon is created by clicking with the left button on the position required for the vertices. The polygon is closed by clicking close to the initial position. The mouse cursor is changed to a cross during polygon creation and to an arrow when you are close enough to the initial point for closure to occur. Hitting the <return> key or clicking with the right mouse button will abort the operation.

SELECT

The select option is equivalent to EXCLUDE ALL followed by INCLUDE AREA. The polygonal area is chosen in the same way as described above and all atoms not within that area are excluded.

Generation of Dummy atoms

DUMMY

In certain circumstances it may be useful for the user to be able to generate new ‘dummy’ atoms from the initial atomic coordinates. One example of this is a compound that contains a cyclopentadienyl ring. The bonding in such a system can either be represented as five M - C bonds or as a single bond to the ring’s centre. The syntax for the command is:

INCLUDE DUMMY d

where d is the name of the created atom. This must then be followed by a sub-command which defines the atoms position.

COORDS

This specifies the atoms coordinates in unit cell fractions. The syntax is:

COORDS x y z

CENTROID

Alternatively, the atoms position can be defined relative to others already in the molecule. At least TWO atoms must be entered to define new atoms position and it is placed at the CENTROID of their coordinates. The syntax is:

CENTROID at1 at2 at3 ...

ALL

A further sub-command is available so that the new atom is placed at the centroid of all of the atoms in the molecule. This will prove particulary useful when trying to alter the spacegroup of a structure eg to convert from P 1 to P -1 as the centre of inversion will lie at the newly generated dummy atom whose coordinates are output once they have been calculated.

Example

To create a dummy atom in the centre of a cyclopentadienyl ring you would use:

INCLUDE
DUMMY d1
CENTROID C1 C2 C3 C4 C5

Drawing Style Control

The user is able to choose from three different drawing styles. These are:

LINE

BALL

ELLIPSE

The basic syntax for style control is:

XXXX at1 at2 el1 el2

where XXXX is LINE, BALL or ELLIPSE as required. The user may specify atoms eg C1, C2 and/or elements eg C O to be drawn in the XXXX style. The user may therefore have all three styles present at any one time within the picture. Alternatively the ALL may be used to convert the drawing style of all the atoms present to XXXX. The initial drawing style used is LINE.

The ELLIPSE drawing style is only available if the user has input data that contains information on the temperature factors (isotropic or anisotropic) of the atoms concerned. The ellipse drawing style represents atoms by their thermal ellipsoid. Note that negative eigen values are reset at input to .001* the next largest. If the information available is U[iso] only, a circle is plotted whose radius is scaled according to its value.

These subcommands can be used to specify which atoms are to be affected by the drawing style command.

ALL

FRAGMENT

GROUP

Several other commands are available in addition to the basic style commands.

LINE commands.

There are no extra commands following LINE.

BALL commands.

RADII

The user can specify the drawing radius (in angstroms) of a specified atom or element. The syntax is:

BALL RADII C 0.8 N1 1.1

which will draw all C atoms with a radius of 0.8 angstroms, and the N1 atom with radius of 1.1 angstroms.

DEFAULT

This sets all the radii to their initial covalent values. The syntax is:

BALL RADII DEFAULT.

COVALENT

IONIC

VANDERWAALS

This sets the radii of the specified atoms/elements to the appropriate values. The syntax is:

BALL RADII COVALENT N

The further subcommand ALL can be used - BALL RADII IONIC ALL - to set all atoms if required.

FILL

UNFILL

These are header commands and are used to specify whether the circles drawn in the BALL style are to be filled with colour or not. No arguments are required by these commands.

ELLIPSE commands

TYPE

ELLIPSE may be followed by the sub command TYPE which enables the user to control the type of ellipse used to represent the atom. The syntax is:

ELLIPSE TYPE at/els/all n.

Type ‘n’ can take any of four values:

1  - bounding ellipse only.
2  - bounding ellipse and principal ellipses.
     This is the default representation.
3  - as 2 but excluding the principle axes.
4  - as 2 but with shading.

ALL

ALL can be used followed by a number to set the ellipse type of all atoms in the drawing.

Note that any use of ELLIPSE TYPE will set all the atoms referred to ellipse type even if they were previously in LINE or BALL. Hence,

ELLIPSE TYPE C 2  will have all carbon atoms drawn in type 2 form.
ELLIPSE TYPE ALL 4 will have all atoms drawn in type 4 form

NEGATIVE

The NEGATIVE sub command requires one argument. If atoms are input with negative temperature factors the atoms temperature factor is reset using the value specified by ELLIPSE NEGATIVE u. The default value of u is 0.01.

PROBABILITY

This is used to specify the size of the ellipsoid probability envelope displayed. It is followed by a percentage value.

Connectivity Control

It is important that the user has complete control over the bonds displayed in a drawing. The CONNECT group of options is a complicated one but has been designed so as to provide to user with a fully flexible set of commands.

CONNECT

CONNECT is used in one of two ways, either on its own or with a modifying sub-command.

CONNECT

The syntax for this command is:

CONNECT X Y dmin dmax

This will create two lists of atoms (one from X and one from Y which may be atoms, elements or * as required) and uses these lists when calculating connectivity. dmin and dmax are in angstroms. The distances between all combinations of the atoms in the two lists are determined. If distances any lie within the specified dmin -> dmax range (and the bonds do not already exist) they will be added into the connectivity lists. To connect up CU1 O bonds for example you could use:

CONNECT CU1 O 0.0 2.0

which would create one list - containing Cu1 only - and another list - containing all of the oxygen atoms - and then search for inter-list bonds. In this way, if any O - O bonds exist within the given range they will NOT be found. Note that if you require connections to be calculated between atoms of the same type you use:

CONNECT X X dmin dmax.

ALL

CONNECT ALL requires two arguments dmin and dmax. The result is identical to CONNECT above except that ALL of the atoms are included in the calculation.

CONNECT ALL 0.0 2.0

will draw all bonds that fall within the 0.0 - 2.0 angstrom range.

DEFAULT

CONNECT DEFAULT requires no arguments. This command does two things:

1)      Reset all of the connectivity radii
        to their initial values
2)      Calculate the connectivity according
        to these radii.

It is effectively a ‘start again’ option as it removes any changes in bonding that have been introduced with the JOIN, REMOVE etc options.

RADII

This is a sub-command of CONNECT and comes immediately after it. It requires the following arguments:

CONNECT RADII X r

where X is the name of an atom or element and r is its new connectivity radius. The connectivity of this atom/element is then redetermined.

COVALENT

IONIC

VANDERWAALS

These subcommands set the specified atoms to appropriate connectivity radii eg CONNECT RADII IONIC N. The further subcommand ALL can be used to set all atoms.

HBONDS

This command enables the user to search for hydrogen bonds within the structure. The syntax is :-

CONNECT HBONDS dmin dmax X Y

dmin/dmax is the range for searching (in angstroms), X/Y are atoms/elements to be included in the search. For a H-bond to be valid it must be bonded to one of the atoms in the list X,Y etc AND be within the range of another of the atoms. For example, if we are searching for H-bonds involving oxygen atoms:

CONNECT HBONDS 0.0 2.5 O

will achieve this. There may well be eg C - H - O linkages within the range but only O - H - O ones will be registered. In this way we can filter the search and set a large value for dmax so that all the H-bonds are discovered without obtaining spurious information. The bond style used for H-bonds is dotted.

INTER

This option is intended to be used after a PACK or ENCLOSURE operation. This will find connections between atoms which have DIFFERENT packnumbers - ie. between assymetric units or between different GROUPS if PACK or ENCLOSURE GROUP has been used. The bonds are in the DOTTED style when generated. The syntax is:

CONNECT INTER O C 0.0 3.0

as for CONNECT itself.

FULL

DOTTED

The CONNECT command can also be used if bonds already exist to alter the style. There are three options:

CONNECT DOTTED at1 at2
CONNECT DOTTED at1 el1
CONNECT DOTTED el1 el2

These change the style of the single bond at1-at2, the style of any el1-at1 bonds and the style of any el1-el2 bonds respectively. Note that in the latter case, el1 and el2 may be the same element ie you can make all C-C bonds dotted.

JOIN

DOTTED

FULL

Another connectivity header command is JOIN. This is a more specific command which is used to make a new bond. The syntax is:

JOIN DOTTED at1 at2
JOIN FULL al1 at2

This will create a new bond between at1 and at2 of the specified type.

REMOVE

This is the reverse command to JOIN. It will break the bond between the specified atoms. The syntax is:

REMOVE at1 at2

DISCONNECT

This command is the reverse of CONNECT.

DISCONNECT C O 0.5 1.5

will get rid of any C-O bonds that are OUTSIDE the range 0.5 - 1.5 angstroms.

ALL

DISCONNECT ALL removes all of the connectivity information.

GROUP

DISCONNECT GROUP is intended primarily for use with disordered structures although other uses can be envisaged. For example a substituent may be ‘flipping’ between two sites generating very short distances between atoms in different groups. It is not possible to DISCONNECT these bonds since some of the distances may appear to be ‘normal’. To get over this, each disordered part is defined as a group (See DEFGROUP) and DISCONNECT GROUP is used to remove any bonds that exist between them. The syntax is:

DISCONNECT GROUP group1 group2

ATOM

This command deletes ALL bonds involving the specified atom. The syntax is:

DISCONNECT ATOM at1

Miscellaneous CONNECT commands

There are three other commands which either relate to connectivity or to how the bond is represented on the output device.

TAPER

This controls the bond tapering. It has an initial value of 2.0. Increasing this increases the tapering of the bonds. This tapering is useful as it introduces a 3-D effect into the drawing. If tapering is not required then entering:

CONNECT TAPER 0.0

will achieve this.

THICKNESS

This command controls the thickness (radius) of the bonds in angstroms. It requires one argument, whose default value is 0.02.

CONNECT THICKNESS 0.04

will double the radius of the bonds as drawn.

TOLERANCE

This sets the tolerance used when determining whether or not a bond exists. The formula used is:

If  dist < ( C1 + C2 ) * tol  then a bond exists

where C1 and C2 are the connectivity radii of the atoms in question. The initial value of ‘tol’ is 1.1 ie the interatomic distance has to be no more than 10% greater than the sum of the two connectivity radii for a bond to be found. The syntax for the command is:

CONNECT TOLERANCE n

Control Of Colour

Within CAMERON it is possible to control the colour of each individual atom and bond and also the colour of the labels.

COLOUR

This is the header command for colour control - it may be followed by atom/element names if required. The syntax is:

COLOUR C BLUE N YELLOW ...

The atom/elements are entered in pairs together with the colour name. A list of the current colours can be obtained by using ‘INFO COLOUR’. There are two sets of colournames - those for normal colour and those for greyscale either may be used interchangeably as once the colour type is altered the colours are translated accordingly.

COLOUR ALL colour

Colours all the atoms the given colour

GROUP

This sets the colour of all of the atoms in a given group. The syntax is:

COLOUR GROUP groupname colourname

FRAGMENT

COLOUR FRAGMENT n col will set the colour of all atoms in the fragment attached to atom n.

BACKGROUND

Sets the background colour.

TEXT

Sets the colour of the title and other annotation text.

MENUTEXT

BUTTON

Selects the colours of the text and buttons in menu mode.

LABCOLOUR

This sets the colour of the labels and requires a single argument - the name of the new colour.

BONDS

Altering the colour of bonds is a more complicated procedure. It is followed by atoms/elements that define the bond and a colourname. These arguments are therefore entered in threes. For example, to make all carbon carbon bonds colour blue and all CU1 to oxygen bonds colour yellow you would use:

COLOUR BONDS C C BLUE CU1 O YELLOW

ALL

There is a further sub-command ALL which changes the colour of ALL of the bonds eg:

COLOUR BONDS ALL PINK

makes all bonds colour PINK.

GROUP

This sub-command requires arguments in pairs - the group name and the new bond colour:

COLOUR BONDS GROUP g1 LGREY

colours all bonds BETWEEN atoms in group g1 (both atoms in a bond must be in the group for its colour to be altered) to colour LGREY.

Example

To have a picture with the following requirements:

All C atoms colour BLUE
All N atoms colour PINK
Cu1 colour YELLOW
All Cu1 - O bonds colour LGREY
All bonds between atoms in group g1 colour RED
All other bonds colour GREEN
All labels colour PURPLE

the commands would be:

COLOUR C BLUE N PINK CU1 YELLOW
BONDS ALL RED
(do this first)
BONDS CU1 O LGREY
GROUP g1 GREEN
LABCOLOUR PURPLE

BACKGROUND

The default background colour is WHITE but this can be changed as required by the COLOUR BACKGROUND colour command.

DEFAULT

The default colours for the elements are as defined in the PROP.CMN file -

B - ORANGE
Br,Cl,F,I - LGREEN
C - GREEN
D,H - LGREY
N - BLUE
O - RED
P - PURPLE
S - YELLOW
SI - DGREY

These colours can be recovered if altered by using COLOUR DEFAULT which returns ALL atoms to their original colours.

NORMAL

GSCALE

These sub-commands allow the user to see how the hardcopy greyscale picture will look. COLOUR GSCALE changes the screen colours to the equivalent greyscale colours. The colour names GREYn (n=1,14) can be used to specify colour changes if required as COLOUR N PURPLE makes little sense on a greyscale picture.

BLACK      BLACK
BLUE       GREY1
GREEN      GREY2
ORANGE     GREY3
RED        GREY4
CYAN       GREY5
MAGENTA    GREY6
LGREY      GREY7
GREY       GREY8
LGREEN     GREY9
LBLUE      GREY10
LRED       GREY11
PINK       GREY12
PURPLE     GREY13
YELLOW     GREY14
WHITE      WHITE

Atom Labelling

LABEL

NOLABEL

The LABEL and NOLABEL commands control the atom labelling. They are set up in an identical way to INCLUDE and EXCLUDE and the syntax is identical:

LABEL C1 C2 O
NOLABEL C H1
LABEL ALL
NOLABEL ALL
LABEL GROUP g1 ....

are all valid. Note that atoms will not be labelled if they are not included in the picture.

MOUSE

All atoms will be labelled if the LABEL command has been used for them. The label positions can be altered using the mouse if required. Note that label positions are recalculated if atoms are included or excluded or a change in the view direction has occurred. Therefore, it is advisable that the ‘final’ view is obtained before labels are positioned with the mouse.

Mouse labelling is controlled as follows. The user clicks on a position on the screen (once the message Mouse Labelling activated has been seen). If this position is over a label then the label is replaced by a box of the same size as the label. A red cross is drawn over the atom that the label refers to to aid identification. The mouse is then used to position the TOP LEFT HAND CORNER of the label by a second click. Alternatively, hitting the N key (for Nolabel) will remove the label altogether.

If the mouse is clicked on an atom which is NOT labelled then a label will appear at the atom centre, this label can then be moved as described above.

If at any time the user wishes to view the current picture without releasing the mouse, this can be done by hitting the ‘V’ key.

GENERATED

INITIAL

These commands relate to the pack number display while labelling. Atoms are assigned a pack number after PACK or ENCLOSURE. This number is then displayed as eg N1_5. These numbers are used to refer to atoms and elements as required. INITIAL (the default) will just display N1 while GENERATED shows N1_5.

CELL

Controls the cell labelling.

FRAGMENT

Allows the user to set labels for a given fragment.

FONT

This sets the point size of the font to be used in hardcopy output. It requires one argument.

DEFAULT

This resets the point size to its default value.

TEXT

POSITION

This allows the user to annotate a picture. The syntax is:

TEXT "text string" POSITION x y

The text must be in quotes. x and y are the position of the text in percentages from the top left hand corner of the diagram. After the text is processed it is assigned a number.

NUMBER

The NUMBER command can be used to move a text item after it has been created by using TEXT NUMBER n POSITION x y.

Other Picture Controlling Commands

There are a few other commands in CAMERON which deal with control of the type of picture being used.

MAXIMISE

This command is related to the VIEW commands PLANE, ALONG, VERTICAL etc. In these commands the view direction does not define all of the degrees of freedom of the molecule. It is possible to rotate the molecule further so that as much of is as possible is shown on the screen.

ON

OFF

These two commands switch maximisation calculations ON and OFF. These calculations are slow - especially for large molecules so they are included as an option.

SCALE

DFIX

DUNFIX

These two commands allow the user to control the calculation of picture scale. SCALE FIX sets the scale to its current value and does not recalculate it, irrespective of changes in the number and position of atoms in the picture. SCALE UNFIX reverts to scale calculations.

SET

SCALE SET is followed by a number, the value of the scale to be used for all subsequent pictures. This can be altered with another SCALE SET command or by issuing SCALE UNFIX.

Symmetry Input

Input of symmetry operators

CAMERON is a crystallographically oriented program and hence many of its functions require the use of symmetry operators. There are two methods of inputting the symmetry operators, inputting the Spacegroup symbol and inputting the individual operators themselves.

SPACEGROUP

The SPACEGROUP command is followed by the symbol, which must contain all UPPER CASE letters. If the symbol is in a non-standard setting then the full symbol must be entered. For example P 21 will be interpreted as P 1 21 1 which is the standard setting. If P 21 1 1 is required then the “1’s” must be entered to force the choice of unique axis.

The syntax of the command is:

SPACEGROUP X X X X

where X are “fields” of the symbol, with spaces between fields ie entered as P 21 and NOT P21. The program will then output the operators that have been calculated for the symbol . Note that if a centre of inversion is present the inverted operators will NOT be shown. Also the operators generated from the centring vectors - eg 1/2 1/2 1/2 for body centring - will NOT be shown. The complete list of operators used for packing etc can be found by entering INFO SYMMETRY.

SYMMETRY

The input of symmetry operators can be done “by hand” if required. There are several steps and sub-commands available to do this.

OPERATORS

This sub-command MUST be entered even if only the x y z operator is to be included. The syntax is :-

SYMMETRY OPERATORS x y z -x y+1/2 -z ...

with the operators being entered with the translational part in fractional form ( 1/2 , 1/3 , 1/4 , 2/3 , 1/6 , 5/6 are recognised ) which must come after the x/y/z as required. The fractional part must be linked to the x/y/z part with a + or - sign. Note that NO spaces are allowed within each part of the operator. This is so that ambiguities cannot arise.

CENTRE

This command is used to introduce a centre of inversion into the symmetry information it must be followed by a centring letter (P,A,B,C,I,F,R) or the command VECTORS.

NOCENTRE

This command is used to specify that there is no centre of inversion - the centring vectors are the specified by letter or by using VECTORS.

VECTORS

This command enables the user to introduce centring vectors into the symmetry operators eg for body centring use :-

VECTORS 0 0 0 1/2 1/2 1/2

USE

NOUSE

These commands allow the user to omit certain symmetry operators from the packing calculations. The command is followed by the operator numbers (found using INFO SYMMETRY) of the operators needed.

ALL

This may be used to USE/NOUSE all of the operators. Note that using NOUSE ALL without following it with USE n will result in no atoms being generated after a pack operation!

Example of Space Group Input

In order to end up with the Spacegroup F m m m we require :-

SPACEGROUP F M M M

or

SYMMETRY OPERATORS
X Y Z  -X -Y Z  -X Y -Z  X -Y -Z
CENTRE
VECTORS
0 0 0
0 1/2 1/2
1/2 1/2 0
1/2 0 1/2

Crystal Packing Commands

There are two methods of crystal packing available, PACK and ENCLOSURE. Both use ALL of the symmetry operators in the Spacegroup to generate all of the atoms that lie within a user-defined volume. The commands ADD and MOVE are available if single symmetry operators are required. The difference between the two commands lies in the method of volume definition.

PACK

The PACK command allows the user to define a volume to be filled relative to the unit cell. One of two-sub commands is required to define this volume.

CELL

PACK CELL will cause the program to generate all the atoms that lie within the unit cell. This is the default option if no range for packing is input.

WINDOW

PACK WINDOW allows the user to define the volume in terms of the unit cell axes. It is followed by three pairs of numbers.

PACK WINDOW xmin xmax ymin ymax zmin zmax

The values of xmin etc are relative to the unit cell origin. Therefore to define a volume of which contained all of the x axis, all of the y axis and the first half of the z axis we would use:

PACK WINDOW 0.0 1.0 0.0 1.0 0.0 0.5

If more than one unit cell is required negative numbers and numbers exceeding one may be used.

One more sub-command may be entered after the WINDOW or CELL commands. If this command is omitted then the option chosen in the last PACK command will be used. If this is the first time PACK is used then CUT is the default option. Three sub-commands are available:

CUT

CUT will generate all the atoms that lie within the defined volume. ie. the generation is “cut” at the boundary.

COMPLETE

COMPLETE is most useful for molecular crystallographers. It will generate all the asymmetric units that have ANY ATOMS lying with the defined volume.

CENTROID

CENTROID is similar to COMPLETE except that it calculates the centroid of the asymmetric unit (as though all of the atoms have equal weight) and includes only those which have their centroid within the defined volume. This is particulary useful for molecular crystallographers as it creates a picture without the “odd atoms” at the edge of the unit cell.

Dealing with connectivity

There are three other qualifying commands that apply to PACK:

INTRA

INTER

KEEP

These deal with the treatment of connectivity calculations once the PACK has been carried out.

INTRA

This qualifiers means that the connectivity will be calculated within each newly generated asymmetric unit only. Any changes to the bonding - eg with JOIN, REMOVE, CONNECT, COLOUR BONDS - will be undone. This is the fastest option.

INTER

In this case connectivity is calculated once all of the atoms have been generated - therefore if any intra-unit bonds exist they will be found.

KEEP

This is the default option. Connectivity is copied from the unit used to do the packing - this includes colour and style changes if any - into the bond info of the new atoms. This is done for each asymmetric unit as it is generated and is slower than INTRA as it requires more comparisons to be carried out.

EXAMPLES

Therefore, to create a picture containing all of the complete molecules within a cube of side equal to 2 unit cells we need :-

PACK
WINDOW 0.0 2.0 0.0 2.0 0.0 2.0
COMPLETE

Or alternatively,

PACK
WINDOW -1.0 1.0 -1.0 1.0 -1.0 1.0
COMPLETE

ENCLOSURE

The enclosure command is more flexible than PACK as it enables the user to choose the “origin” for the atom generation. The first task is to specify this origin which is either a point in the unit cell or an atom.

Choice of enclosure “origin”

ATOM

If we wish to generate the atoms around Cu1 in order to examine the coordination environment for example we can use:

ENCLOSURE ATOM CU1

POINT

Alternatively we can choose the centre of the unit cell:

ENCLOSURE POINT 0.5 0.5 0.5

The POINT sub-command can be used if an atom does not lie at the point in question eg if we are examining a “hole” within a structure.

Type of volume to be used

There are three different ways of defining the volume of enclosure:

SPHERE

This will generate a sphere of enclosure about the origin. The syntax is:

SPHERE r

where r is the radius in angstroms of the sphere.

e.g. ENCLOSURE ATOM C1 SPHERE 4.0 CUT VIEW

ANORTHIC

This is used to generate an ANORTHIC box ie a box whose sides are parallel to the unit cell axes. As this box is directly related to the unit cell its dimensions are given in fractional coordinates. The syntax is:

ANORTHIC -x +x -y +y -z +z

Therefore, to generate an anorthic box with sides extending one quarter of a unit cell in all six directions from the defined origin we use:

ANORTHIC 0.25 0.25 0.25 0.25 0.25 0.25

ORTHOGONAL

This is used to generate a box whose sides are perpendicular to each other. The z axis lies along the current view direction and the x and y axes lie across and vertically up the screen respectively. The dimensions of this box is defined in a similar way to the ANORTHIC box except that they are given in angstroms. For example, to generate a box that is 4.0 angstroms wide in x, 1 in y and 0.5 in z we would use:

ORTHOGONAL 2.0 2.0 1.0 1.0 0.25 0.25

It is important to note that this volume is related to the CURRENT view direction. The VIEW ALONG AXIS command can be used to orient the picture prior to carrying out this command if required.

CUT

COMPLETE

CENTROID

As with PACK a further sub-command can be used if desired to define the type of boundary handling used. CUT, COMPLETE and CENTROID have the same meanings as described above for PACK.

INTRA

INTER

KEEP

These sub commands have an identical meaning to those described for PACK above.

EXAMPLE

To generate all the atoms that lie within a sphere of radius 5.0 angstroms about a CU1 atom we use:

ENCLOSURE
ATOM CU1
SPHERE 5.0
CUT

To generate all the asymmetric units that have any atoms within a box of side 0.5 units around the unit cell centre we use:-

ENCLOSURE
POINT 0.5 0.5 0.5
ANORTHIC 0.25 0.25 0.25 0.25 0.25 0.25
COMPLETE

And to generate all the atoms that lie inside a box centred on the point 0.25 0.25 0.25 and of sides x=1.0 y=2.0 and z=3.0 angstroms :-

ENCLOSURE
POINT 0.25 0.25 0.25
ORTHOGONAL 0.5 0.5 1.0 1.0 1.5 1.5
CUT

PACKING MORE COMPLICATED STRUCTURES

The PACK and ENCLOSURE commands always work on the initial data- unless a SETUNIT command has been issued. In some cases however, it is more useful for the user to be able to deal with certain sections of the structure separately. This is most likely to occur where there is more than one distinct unit in the asymmetric unit. This is dealt with by the command GROUP.

GROUP

GROUP can be used directly after both PACK and ENCLOSURE. The syntax is:-

PACK GROUP groupname CELL ...
or
PACK GROUP groupname WINDOW ...
etc

This causes the groups to be packed individually, the CENTROID, COMPLETE and CUT commands are applied to the group and not to the asymmetric unit as a whole. Packs are cumulative, unless a PACK/ENCLOSURE is done without the GROUP sub command in which case the previously generated atoms are overwritten. Groups are defined with the command DEFGROUP.

If required, more than one groupname can be packed at once - they are all treated separately. All groups can be packed in turn if PACK GROUP * is used.

UNPACK

This command causes all atoms generated via PACK or ENCLOSURE to be removed from the calculations, drawings etc. It has no sub-commands. It also works with ADD and MOVE generated data.

Distance And Angle Calculations

CAMERON allows the user to calculate distances , angles and torsion angles.

DISTANCE

In order to perform a distance calculation two atoms lists must be generated. The first list is used as a ‘starting atom’ and the second list is for ‘target atoms’. Distances will be calculated between atoms in separate lists BUT NOT within the lists themselves. The list may be generated in two ways:-

DISTANCE N O

generates two lists - both of which can all the N and all the O atoms. In this case N-O, N-N and O-O distances will be found.

FROM

TO

These subcommands allow to specify different starting and target atoms.

DISTANCE FROM N TO O

will only calculated N-O distances. Note that the distance arguments may be either atoms or elements as required.

RANGE

This sets the minimum and maximum ranges for displayed distances. The syntax is :-

DISTANCE RANGE dmin dmax

distances are given in angstroms. If only TWO atoms are present in the atom list then the distance will be outputted irrespective of the range. However, as the full calculation will be carried out first there may be a time delay while the calculation proceeds.

Method of Calculation

The distances output make use of the symmetry operators in order to find distances within the given range. The starting atom coordinates are NOT ALTERED but those of the target atoms are. The symmetry operators (and any suitable translations) are used to move the target atoms around. The output produced is:-

N1_0      O2      2.323
Operator x y z Translations 0 0 1
N1_0      O2_4    1.114
Operator -x y+1/2 -z Translations 0 0 -1

These show the N1 to O2 distances. The first distance relates to an O2 atom which does not currently exist. The operator and translations shown can be used with ADD to generate the atom if required. The second distance is to an atom (O2_4) which does exist. ie. if no pack number is given for the second atom it is not present in the current list.

ANGLE

TORSION

These commands are used to find angles and torsion angles between atoms that are in the current list. They are entered in sets of three (or four) as required.

Information On Data Held Within The Program

CAMERON holds a number of pieces of information while it is running and in some cases it is useful for the user to be able to access this information.

INFORMATION

This command is followed by a sub-command which specifies the type of information wanted.

CELL

Outputs the unit cell parameters.

ATOMS

Outputs the names of atoms stored within the program. It produces two lists - one of atoms currently included and one of atoms currently excluded from the picture.

COLOUR

This outputs the colour names that are available.

SYMMETRY

This command outputs the symmetry operators currently stored.

GROUP

Outputs a list of the currently defined groups and their members.

PACKNUMBERS

Outputs the symmetry operator and translation associated with a given packnumber. The syntax is INFO PACKNUMBER n1 n2 n3.

Group Definitions

For complicated structures it is sometimes useful to define GROUPS of atoms which can be referred to as a whole later. EXCLUDE, INCLUDE, COLOUR BONDS etc can all be used with the GROUP sub-command.

DEFGROUP

This is the main header command and is followed by the name of the group. Note that it is not possible to have group names that begin with GROUP itself - g1, g2 are valid names but group1, group2 are not. Up to twelve characters are allowed to define the group name.

ATOMS

This is followed by a list of atoms/elements to be included in the group.

GROUP

It is possible to have an atom as a member of up to three groups at once. You can therefore add groups into other groups (see Example).

FRAGMENT

The user can include atoms in a group by defining a fragment. The fragment definition requires a single atom. Any atoms joined to it, and any atoms to those etc are made part of the group.

DELETE

You can also remove atoms from groups if required.

Example

Consider an molecule that contains a tri-phenyl phosphine. A use of the DEFGROUP command would be :-

DEFGROUP PHENYL1
ATOMS C1 C2 C3 C4 C5 C6
DEFGROUP PHENYL2
ATOMS C11 C12 C13 C14 C15 C16
DEFGROUP PHENYL3
ATOMS C21 C22 C23 C24 C35 C36
DEFGROUP PPH3
ATOMS P
GROUP PHENYL1 PHENYL2 PHENYL3

If you then realise that there are two phosphorus atoms in the molecule P1 and P2 you can use :-

DEFGROUP PPH3 DELETE P2

to remove P2 as it is not a member of the tri-phenyl phosphine group.

Miscellaneous Commands

RESET

This command allows the user to begin again without having to exit and reload CAMERON. All current flags will be set to their initial states. Note that if a CAMERON.INI file is present it will not be obeyed after a RESET command. The screen will be set to VGA automatically (as on startup) if a CAMERON.SRT file is present.

LOG

The LOG command is used to generate a log of the CAMERON session, this may be OBEYed later if required. LOG must be followed by a filename. If a file is already in use for a log file then the log information will be transferred to the new file.

EDIT

ON

OFF

This sets the edit option which is used when an error is found in an input line. If edit is on (the default) then the user is prompted as described in Chapter 1. If not the computer will bleep and put up the message “Error: Automatic Abandon”, ignore any unexecuted commands and wait for a new input line.

ISSUE

This allows the user to execute a single system command. This command should be enclosed in quotes if it is longer than one word or if it corresponds to a CAMERON command.

PRINT

This allows the user to print a hardcopy file. The file will be closed if it is currently attached to CAMERON via a COPY command. NOTE that the print job will be very slow - it may be quicker to close down CAMERON first.

How To Stop The Program

END

The command END will cause the program to finish.

The command END will cause the program to finish.

Some Useful Ideas

To produce black and white illustrations for papers,try

colour c black
colour h black
colour n black
colour o black
colour bond all white
ball all unfil
ball h fill
colour back grey
ELLIP
C
N
O
ELLIP
TYPE
ALL
4
CONN
TAPER
3
VIEW

To hack up a packing diagram, cutting out most and just keeping a bit, try (all on one line)

EXCLUDE ALL INCLUDE AREA

Then use the mouse to draw round the bit you want to keep.