The Coot User Manual

Table of Contents

Next: , Up: (dir)

Coot User Manual

--- The Detailed Node Listing ---


Mousing and Keyboarding

General Features



Backups and Undo

Coordinate-Related Features

Modelling and Building

Regularization and Real Space Refinement

Map-Related Features


Hints and Usage Tips

Other Programs

Next: , Previous: Top, Up: Top

1 Introduction

This document is the Coot User Manual, giving an overview of the interactive features. Other documentation includes the Coot Reference Manual and the Coot Tutorial. These documents should be distributed with the source code.

Next: , Up: Introduction

1.1 Citing Coot and Friends

If have found this software to be useful, you are requested (if appropriate) to cite:

"Features and Development of Coot" P Emsley, B Lohkamp, W Scott, and K Cowtan Acta Cryst. (2010). D66, 486-501 Acta Crystallographica Section D-Biological Crystallography 66: 486-501

The reference for the REFMAC5 Dictionary is:

REFMAC5 dictionary: "Organization of Prior Chemical Knowledge and Guidelines for its Use" Vagin AA, Steiner RA, Lebedev AA, Potterton L, McNicholas S Long F, Murshudov GN Acta Crystallographica Section D-Biological Crystallography 60: 2184-2195 Part 12 Sp. Iss. 1 DEC 2004"

If using "SSM Superposition", please cite:

"Secondary-structure matching (SSM), a new tool for fast protein structure alignment in three dimensions" Krissinel E, Henrick K Acta Crystallographica Section D-Biological Crystallography 60: 2256-2268 Part 12 Sp. Iss. 1 DEC 2004

The reference for the the Electron Density Server is:

GJ Kleywegt, MR Harris, JY Zou, TC Taylor, A Wählby, TA Jones (2004), "The Uppsala Electron-Density Server", Acta Crystallographica Section D-Biological Crystallography 60, 2240-2249.

Please also cite the primary literature for the received structures.

Next: , Previous: Citing Coot, Up: Introduction

1.2 What is Coot?

Coot is a molecular graphics application. Its primary focus is crystallographic macromolecular model-building and manipulation rather than representation i.e. more like Frodo than Rasmol. Having said that, Coot can work with small molecule (SHELXL) and electron microscopy data, be used for homology modelling, make passably pretty pictures and display NMR structures.

Coot is Free Software. You can give it away. If you don't like the way it behaves, you can fix it yourself.

Next: , Previous: What is Coot?, Up: Introduction

1.3 What Coot is Not

Coot is not:

Next: , Previous: What Coot is Not, Up: Introduction

1.4 Hardware Requirements

The code is designed to be portable to any Unix-like operating system. Coot certainly runs on SGI IRIX64, RedHat Linux of various sorts, SuSe Linux4 and MacOS X (10.2). The sgi Coot binaries should also work on IRIX.

If you want to port to some other operating system, you are welcome 5. Note that your task will be eased by using GNU GCC to compile the programs components.

1.4.1 Mouse

Coot works best with a 3-button mouse and works better if it has a scroll-wheel too (see Chapter 2 for more details) 6.

Next: , Previous: Hardware Requirements, Up: Introduction

1.5 Environment Variables

Coot responds to several environment variables that modify its behaviour.

And of course extension language environment variables are used too:

Normally, these environment variables will be set correctly in the coot shell script.

Next: , Previous: Environment Variables, Up: Introduction

1.6 Command Line Arguments

Rather that using the GUI to read in information, you can use the following command line arguments:

So, for example, one might use:

Next: , Previous: Command Line Arguments, Up: Introduction

1.7 Web Page

Coot has a web page:

There you can read more about the CCP4 molecular graphics project in general and other projects which are important for Coot 8.

Previous: Web Page, Up: Introduction

1.8 Crash

Coot might crash on you - it shouldn't.

Whenever Coot manipulates the model, it saves a backup pdb file. There are backup files in the directory coot-backup 9. You can recover the session (until the last edit) by reading in the pdb file that you started with last time and then use File -> Recover Session....

I would like to know about coot crashing 10 so that I can fix it as soon as possible. If you want your problem fixed, this involves some work on your part sadly.

First please make sure that you are using the most recent version of coot. I will often need to know as much as possible about what you did to cause the bug. If you can reproduce the bug and send me the files that are needed to cause it, I can almost certainly fix it 11 - especially if you use the debugger (gdb) and send a backtrace too12. Note that you may have to source the contents of bin/coot so that the libraries are can be found when the executable dynamically links.

Next: , Previous: Introduction, Up: Top

2 Mousing and Keyboarding

How do we move around and select things?

Left-mouse Drag
Rotate view
Ctrl Left-Mouse Drag
Translates view
Shift Left-Mouse
Label Atom
Right-Mouse Drag
Zoom in and out
Ctrl Shift Right-Mouse Drag
Rotate View around Screen Z axis
Centre on atom
Scroll-wheel Forward
Increase map contour level
Scroll-wheel Backward
Decrease map contour level

See also Chapter Hints and Usage Tips for more help.

Next: , Up: Mousing and Keyboarding

2.1 Next Residue

Next Residue
``Shift'' ``Space''
Previous Residue

See also “Recentring View” (Section Recentring View).

Next: , Previous: Next Residue, Up: Mousing and Keyboarding

2.2 Keyboard Contouring

Use <+> or <-> on the keyboard if you don't have a scroll-wheel.

Next: , Previous: Keyboard Contouring, Up: Mousing and Keyboarding

2.3 Mouse Z Translation and Clipping

Here we can change the clipping and Translate in Screen Z

Ctrl Right-Mouse Drag Up/Down
changes the slab (clipping planes)
Ctrl Right-Mouse Drag Left/Right
translates the view in screen Z

Next: , Previous: Mouse Z Translation, Up: Mousing and Keyboarding

2.4 Keyboard Translation

Keypad 3
Push View (+Z translation)
Keypad .
Pull View (-Z translation)

Next: , Previous: Keyboard Z Translation, Up: Mousing and Keyboarding

2.5 Keyboard Zoom and Clip

Zoom out
Zoom in
Slim clip
Fatten clip

Next: , Previous: Keyboard Zoom and Clip, Up: Mousing and Keyboarding

2.6 Scrollwheel

When there is no map, using the scroll-wheel has no effect. If there is exactly one map displayed, the scroll-wheel will change the contour level of that map. If there are two or more maps, the map for which the contour level is changed can be set using either HID -> Scrollwheel -> Attach scroll-wheel to which map? and selecting a map number or clicking the "Scroll" radio button for the map in the Display Manager.

You can turn off the map contour level changing by the scroll wheel using:

(set-scroll-by-wheel-mouse 0)

(the default is 1 [on]).

Next: , Previous: Scrollwheel, Up: Mousing and Keyboarding

2.7 Selecting Atoms

Several Coot functions require the selecting of atoms to specify a residue range (for example: Regularize, Refine (Section Regularization and Real Space Refinement) or Rigid Body Fit Zone (Section Rigid Body Refinement)). Select atoms with the Left-mouse. See also Picking (Section sec_picking).

Use the scripting function (quanta-buttons) to make the mouse functions more like other molecular graphics programs to which you may be more accustomed 13.

Next: , Previous: Selecting Atoms, Up: Mousing and Keyboarding

2.8 Virtual Trackball

You may not completely like the way the molecule is moved by the mouse movement 14. To change this, try: HID -> Virtual Trackball -> Flat. To do this from the scripting interface: (vt-surface 1) 15.

If you do want screen-z rotation screen-z rotation, you can either use Shift Right-Mouse Drag or set the Virtual Trackball to Spherical Surface mode and move the mouse along the bottom edge of the screen.

Previous: Virtual Trackball, Up: Mousing and Keyboarding

2.9 More on Zooming

The function (quanta-like-zoom) adds the ability to zoom the view using just Shift + Mouse movement 16.

There is also a Zoom slider (Draw -> Zoom) for those without a right-mouse button.

Next: , Previous: Mousing and Keyboarding, Up: Top

3 General Features

The map-fitting and model-building tools can be accessed by using Calculate -> Model/Fit/Refine.... Many functions have tooltips 17 describing the particular features and are documented in Chapter Modelling and Building.

posts the Model/Fit/Refine dialog
posts the Go To Atom Window
posts the Display Control Window

Next: , Up: General Features

3.1 Version number

The version number of Coot can be found at the top of the “About” window (Help -> About).

This will return the version of coot:

$ coot --version

There is also a script function to return the version of coot:


Next: , Previous: Version number, Up: General Features

3.2 Antialiasing

The built-in antialiasing (for what it's worth) can be enabled using:

(set-do-anti-aliasing 1)

The default is 0 (off).

This can also be activated using Edit Preferences -> Others -> Antialiasing -> Yes.

If you have an nVidia graphics card, external antialiasing can be actived setting the environment variable __GL_FSAA_MODE. For me a setting of 5 works nicely and gives a better image than using Coot's built-in antialiasing.

Also for nVidia graphics card users, there is the application nvidia-settings:

Antialiasing Setting -> Override Application Settings and slide the slider to the right. On restarting Coot, it should be in antialias mode 18.

Next: , Previous: Antialiasing, Up: General Features

3.3 Molecule Number

Coot is based on the concept of molecules. Maps and coordinates are different representations of molecules. The access to the molecule is via the molecule number. It is often important therefore to know the molecule number of a particular molecule.

The Molecule Number of a molecule can be found by clicking on an atom of that molecule (if it has coordinates of course). The first number in brackets in the resulting text in the status bar and console is the Molecule Number. The Molecule Number can also be found in Display Control window (Section Display Manager). It is also displayed on the left-hand side of the molecule name in the option menus of the “Save Coordinates” and “Go To Atom” windows.

Next: , Previous: Molecule Number, Up: General Features

3.4 Display Issues

The “graphics” window is drawn using OpenGL. It is considerably smoother (i.e. more frames/sec) when using a 3D accelerated X server.

The view is orthographic (i.e. the back is the same size as the front). The default clipping is about right for viewing coordinate data, but is often a little too “thick” for viewing electron density. It is easily changed (see Section Clipping Manipulation).

Depth-cueing is linear and fixed on.

The graphics window can be resized, but it has a minimum size of 400x400 pixels.

3.4.1 Stereo

Hardware Stereo is an option for Coot (Draw -> Stereo... -> Hardware Stereo -> OK), side-by-side stereo is not an option.

The angle between the stereo pairs (the stereo separation) can be changed to suit your personal tastes using:

(set-hardware-stereo-angle-factor angle-factor)

where angle-factor would typically be between 1.0 and 2.0

3.4.2 Pick Cursor

When asked to pick a residue or atom, the cursor changes from the normal arrow shape to a "pick" cursor. Sometimes it is difficult to see the default pick cursor, so you can change it using the function

(set-pick-cursor-index i)

where i is an integer less than 256. The cursors can be viewed using an external X program:

xfd -fn cursor

3.4.3 Origin Marker

A yellow box called the “origin marker” marks the origin. It can be removed using:

(set-show-origin-marker 0)

Its state can be queried like this:


which returns an number (0 if it is not displayed, 1 if it is).

Next: , Previous: Display Issues, Up: General Features

3.5 Screenshot

A simple screenshot (image dump) can be made using Draw -> Screenshot -> Simple.... Note that in side by side stereo mode you only get the left-hand image.

Next: , Previous: Screenshot, Up: General Features

3.6 Raster3D output

Output suitable for use by Raster3D's “render” can be generated using the scripting function

(raster3d file-name)

where file-name is such as "test.r3d" 19.

There is a keyboard key to generate this file, run “render” and display the image: Function key F8.

You can also use the function


which will create a file coot.r3d, from which “render” produces coot.png. This png file is displayed using ImageMagick's display program (by default). Use something like:

(set! coot-png-display-program "gqview")

to change that to different display program ("gqview" in this case).

(set! coot-png-display-program "open")

would use Preview (by default) on Macintosh.

To change the widths of the bonds and density “lines” use (for example):

(set-raster3d-bond-thickness 0.1)


(set-raster3d-density-thickness 0.01)

Similarly for bones:

(set-raster3d-bone-thickness 0.05)

To turn off the representations of the atoms (spheres):

(set-renderer-show-atoms 0)

Next: , Previous: Raster3D, Up: General Features

3.7 Display Manager

This is also known as “Map and molecule (coordinates) display control”. Here you can select which maps and molecules you can see and how they are drawn 20. The “Display” and “Active” are toggle buttons, either depressed (active) or undepressed (inactive). The “Display” buttons control whether a molecule (or map) is drawn and the “Active” button controls if the molecule is clickable 21 (i.e. if the molecule's atoms can be labeled).

The "Scroll" radio buttons sets which map is has its contour level changed by scrolling the mouse scroll wheel.

By default, the path names of the files are not displayed in the Display Manager. To turn them on:

(set-show-paths-in-display-manager 1)

If you pull across the horizontal scrollbar in a Molecule view, you will see the “Render as” menu. You can use this to change between normal “Bonds (Colour by Atom)”,“Bonds (Colour by Chain)” and “C\alpha” representation There is also available “No Waters” and “C\alpha + ligands” representations.

Next: , Previous: Display Manager, Up: General Features

3.8 The Modelling Toolbar

You might not want to have the right-hand-side vertical toolbar that contains icons for some modelling operations 22 displayed:


to bring it back again:


Next: , Previous: The Modelling Toolbar, Up: General Features

3.9 The file selector

3.9.1 File-name Filtering

The “Filter” button in the fileselection filters the filenames according to extension. For coordinates files the extensions are “.pdb” “.brk” “.mmcif” and others. For data: “.mtz”, “.hkl”, “.phs”, “.cif” and for (CCP4) maps “.ext”, “.msk” and “.map”. If you want to add to the extensions, the following functions are available:

where extension is something like: ".mycif".

If you want the fileselection to be filtered without having to use the "Filter" button, use the scripting function

(set-filter-fileselection-filenames 1)

3.9.2 Filename Sorting

If you like your files initially sorted by date (rather than lexicographically, which is the default) use:


3.9.3 Save Coordinates Directory

Some people prefer that the fileselection for saving coordinates starts in the original directory (rather than the directory from which they last imported coordinates). This option is for them:

(set-save-coordinates-in-original-directory 1)

Next: , Previous: The file selector, Up: General Features

3.10 Scripting

There is an compile-time option of adding a script interpreter. Currently the options are python and guile. It seems possible that in future you will be able to use both in the same executable. The binary distribution of Coot are linked with guile, others with python.

Hundreds of commands are made available for use in scripting by using SWIG, some of which are documented here. Other functions documented less well, but descriptions for them can be found at the end of this manual.

Commands described throughout this manual (such as (vt-surface 1)) can be evaluated directly by Coot by using the “Scripting Window” (Calculate -> Scripting...). Note that you type the commands in the upper entry widget and the command gets echoed (in red) and the return value and any output is displayed in the text widget lower (green). The typed command should be terminated with a carriage return 23. Files 24 can be evaluated (executed) using Calculate -> Run Script....

Note that in scheme (the usual scripting language of Coot), the parentheses are important.

To execute a script file from the command line use the --script filename arguments (except when also using the command line argument --no-graphics, in which case you should use -s filename).

After you have used the scripting window, you may have noticed that you can no longer kill Coot by using Ctrl-C in the console. To recover this ability:


in the scripting window.

Next: , Up: Scripting

3.10.1 Python

* Python Commands

Coot has an (optional) embedded python interpreter. Thus the full power of python is available to you. Coot will look for an initialization script ($HOME/ and will execute it if found. This file should contain python commands that set your personal preferences. Python Commands

The scripting functions described in this manual are formatted suitable for use with guile, i.e.:

(function arg1 arg2...)

If you are using Python instead: the format needs to be changed to:


Note that dashes in guile function names become underscores for python, so that (for example) (raster-screen-shot) becomes raster_screen_shot().

Next: , Previous: Python, Up: Scripting

3.10.2 Scheme

The scheme interpreter is made available by embedding guile. The initialization script used by this interpreter is $HOME/.coot. This file should contain scheme commands that set your personal preferences.

Next: , Previous: Scheme, Up: Scripting

3.10.3 Coot State

The “state” of Coot is saved on Exit and written to a file called 0-coot.state.scm (scheme) (python). This state file contains information about the screen centre, the clipping, colour map rotation size, the symmetry radius, and other molecule related parameters such as filename, column labels, coordinate filename etc..

Use Calculate -> Run Script... to use this file to re-create the loaded maps and models that you had when you finished using Coot 25 last time. A state file can be saved at any time using (save-state) which saves to file 0-coot.state.scm or (save-state-filename "thing.scm") which saves to file thing.scm.

When Coot starts it can optionally run the commands in 0-coot.state.scm.

Use (set-run-state-file-status i) to change the behaviour: i is 0 to never run this state file at startup, i is 1 to get a dialog option (this is the default) and i is 2 to run the commands without question.

Next: , Previous: Coot State, Up: Scripting

3.10.4 Key Binding

“Power users” of Coot might like to write their own functions and bind that function to a keyboard key. How do they do that?

By using the add-key-binding function:

(add-key-binding function-name key function)

where key is a quoted string (note that upper case and lower case keys are distinguished - activate get upper case key binding you need to chord the shift key 26).

for example:

(add-key-binding "Refine Active Residue with Auto-accept" "x" refine-active-residue)

Have a look at the key bindings section on the Coot wiki for several more examples.

Previous: Key Binding, Up: Scripting

3.10.5 User-Defined Functions

“Power users” of Coot might also like to write their own functions that occur after picking an atom (or a number of atoms)

(user-defined-click n_clicks udfunc)

define a function func which runs after the user has made n_clicked atom picks. func is called with a list of atom specifiers - the first member of which is the molecule number.

Next: , Previous: Scripting, Up: General Features

3.11 Backups and Undo

* Redo:: * Restoring from Backup::

By default, each time a modification is made to a model, the old coordinates are written out 27. The backups are kept in a backup directory and are tagged with the date and the history number (lower numbers are more ancient 28). The “Undo” function discards the current molecule and loads itself from the most recent backup coordinates. Thus you do not have to remember to “Save Changes” - coot will do it for you 29.

If you have made changes to more than one molecule, Coot will pop-up a dialog box in which you should set the “Undo Molecule” i.e. the molecule to which the Undo operations will apply. Further Undo operations will continue to apply to this molecule until there are none left. If another Undo is requested Coot checks to see if there are other molecules that can be undone, if there is exactly one, then that molecule becomes the “Undo Molecule”, if there are more than one, then another Undo selection dialog will be displayed.

You can set the undo molecule using the scripting function:

(set-undo-molecule imol)

If for reasons of strange system30 requirements you want to remove the path components of the backup file name you can do so using:

(set-unpathed-backup-file-names 1)

3.11.1 Redo

The “undone” modifications can be re-done using this button. This is not available immediately after a modification 31.

3.11.2 Restoring from Backup

There may be certain circumstances 32 in which you wish to restore from a backup but can't get it by the “Undo” mechanism described above. In that case, start coot as normal and then open the (typically most recent) coordinates file in the directory coot-backup (or the directory pointed to the environment variable COOT_BACKUP_DIR if it was set) . This file should contain your most recent edits. In such a case, it is sensible for neatness purposes to immediately save the coordinates (probably to the current directory) so that you are not modifying a file in the backup directory.

See also Section Crash.

Next: , Previous: Backups and Undo, Up: General Features

3.12 View Matrix

It is sometimes useful to use this to orient the view and export this orientation to other programs. The orientation matrix of the view can be displayed (in the console) using:


Also, the internal representation of the view can be returned and set using:

(view-quaternion) to return a 4-element list

(set-view-quaternion i j k l) which sets the view quaternion.

So the usage of these functions would be something like:

(let ((v (view-quaternion)))
   ;; manipulate v here, maybe
   (apply set-view-quaternion v))

Next: , Previous: View Matrix, Up: General Features

3.13 Space Group and Symmetry

Occasionally you may want to know the space group of a particular molecule. Interactively (for maps) you can see it using the Map Properties button in the Molecule Display Control dialog.

There is a scripting interface function that returns the space group for a given molecule 33:

(show-spacegroup imol)

You can force a space group onto a molecule using the following:

(set-space-group imol space-group)

where space-group is one of the standard CCP4 space group names (e.g. "P 21 21 21").

To show the symmetry operators of a particular molecule use: (get-symmetry imol) which will return a list of strings.

Next: , Previous: Space Group and Symmetry, Up: General Features

3.14 Recentring View

If you don't want smooth recentring (sliding) Edit -> Preferences -> Smooth Recentring -> Off. You can also use this dialog to speed it up a bit (by decreasing the number of steps instead of turning it off).

Next: , Previous: Recentring View, Up: General Features


Coot has a views interface (you might call them ”scenes“) that define a particular orientation, zoom and view centre. Coot and linearly interpolate between the views. The animation play back speed can be set with the ”Views Play Speed“ menu item - default is a speed of 10.

The views interface can be found under the Extensions menu item.

Next: , Previous: Views, Up: General Features

3.16 Clipping Manipulation

The clipping planes (a.k.a. “slab” ) can be adjusted using Edit -> Clipping and adjusting the slider. There is only one parameter to change and it affects both the front and the back clipping planes 34. The clipping can also be changed using keyboard “D” and “F”.

It can also be changed with Ctrl + Right-mouse drag up and down. Likewise the screen-Z can be changed with Ctrl + Right-mouse left and right 35.

One can “push” and “pull” the view in the screen-Z direction using keypad 3 and keypad “.” (see Section Keyboard Z Translation).

Next: , Previous: Clipping Manipulation, Up: General Features

3.17 Background colour

The background colour can be set either using a GUI dialog (Edit$ -> Background Colour) or the function (set-background-colour 0.00 0.00 0.00), where the arguments are 3 numbers between 0.0 and 1.0, which respectively represent the red, green and blue components of the background colour. The default is (0.0, 0.0, 0.0) (black).

Next: , Previous: Background colour, Up: General Features

3.18 Unit Cell

If coordinates have symmetry available then unit cells can be drawn for molecules (Draw -> Cell & Symmetry -> Show Unit Cell?).

Next: , Previous: Unit Cell, Up: General Features

3.19 Rotation Centre Pointer

There is a pink pointer at the centre of the screen that marks the rotation centre. The size of the pointer can be changed using Edit -> Pink Pointer Size... or using scripting commands: (set-rotation-centre-size 0.3).

Next: , Previous: Rotation Centre Pointer, Up: General Features

3.20 Orientation Axes

The green axes showing the orientation of the molecule are displayed by default. To remove them use the scripting function;

(set-draw-axes 0)

Next: , Previous: Orientation Axes, Up: General Features

3.21 Pointer Distances

The Rotation Centre Pointer is sometimes called simply “Pointer”. One can find distances to the pointer from any active set of atoms using “Pointer Distances” (under Measures). If you move the Pointer (e.g. by centering on an atom) and want to update the distances to it, you have to toggle off and on the “Show Pointer Distances” on the Pointer Distances dialog.

Next: , Previous: Pointer Distances, Up: General Features

3.22 Crosshairs

Crosshairs can be drawn at the centre of the screen, using either the <C> key36 in graphics window or Draw -> Crosshairs.... The ticks are at 1.54Å, 2.7Å and 3.8Å.

Next: , Previous: Crosshairs, Up: General Features

3.23 3D Annotations

Positions in 3D space can be annotated with 3D text. The mechanism to do this can be found under Extensions -> Representations -> 3D Annotations. 3D Annotations can be saved to and loaded from a file.

Next: , Previous: 3D Annotations, Up: General Features

3.24 Frame Rate

Sometimes, you might as yourself “how fast is the computer?” 37. Using Calculate -> Frames/Sec you can see how fast the molecule is rotating, giving an indication of graphics performance. It is often better to use a map that is more realistic and stop the picture whizzing round. The output is written to the status bar and the console, you need to give it a few seconds to “settle down”. It is best not to have other widgets overlaying the GL canvas as you do this.

The contouring elapsed time 38 gives an indication of CPU performance.

Previous: Frame Rate, Up: General Features

3.25 Program Output

Due to its “in development” nature (at the moment), Coot produces a lot of “console” 39 output - much of it debugging or “informational”. This will go away in due course. You are advised to run Coot so that you can see the console and the graphics window at the same time, since feedback from atom clicking (for example) is often written there rather than displayed in the graphics window.

Next: , Previous: General Features, Up: Top

4 Coordinate-Related Features

Next: , Up: Coordinate-Related Features

4.1 Reading coordinates

The format of coordinates that can be read by coot is either PDB or mmCIF. To read coordinates, choose File -> Read Coordinates from the menu-bar. Immediately after the coordinates have been read, the view is (by default) recentred to the centre of this new molecule and the molecule is displayed. The recentring of the view after the coordinates have been read can be turned off by unclicking the "Recentre?" radio-button.

To disable the recentring of the view on reading a coordinates file via scripting, use: (set-recentre-on-read-pdb 0). However, when reading a coordinates file from a script it is just as good (if not better) to use (handle-read-draw-molecule-with-recentre filename 0) - the additional 0 means “don't recentre”. And that affects just the reading of filename and not subsequent files.

Note that as of version 0.6.2 Coot can read MDL mol/mol2 files (the atom names are not unique (of course), but at least you can see the coordinates).

4.1.1 A Note on Space Groups Names

Coot uses the space group on the “CRYST1” line of the pdb file. The space group should be one of the xHM symbols listed (for example) in the CCP4 dictionary file syminfo.lib. So, for example, "R 3 2 :H" should be used in preference to "H32".

4.1.2 Read multiple coordinate files

The reading multiple files using the GUI is not available (at the moment). However the following scripting functions are available:


which reads all the “*.pdb” files in the current directory

(multi-read-pdb glob-pattern dir)

which reads all the files matching glob-pattern in directory dir. Typical usage of this might be:

(multi-read-pdb "a*.pdb" ".")

Alternatively you can specify the files to be opened on the command line when you start coot (see Section Command Line Arguments).

4.1.3 SHELX .ins/.res files

SHELX ".res" (and ".ins" of course) files can be read into Coot, either using the GUI File -> Open Coordinates... or by the scripting function:

(read-shelx-ins-file file-name)

where file-name is quoted, such as "thox.ins".

Although Coot should be able to read any SHELX ".res" file, it may currently have trouble displaying the bonds for centro-symmetric structures.

ShelxL atoms with negative PART numbers are given alternative configuration identifiers in lower case.

To write a SHELX ".ins" file:

(write-shelx-ins-file imol file-name)

where imol is the number of the molecule you wish to export.

This will be a rudimentary file if the coordinates were initially from a "PDB" file, but will contain substantial SHELX commands if the coordinates were initially generated from a SHELX ins file.

Next: , Previous: Reading coordinates, Up: Coordinate-Related Features

4.2 Atom Info

Information about about a particular atom is displayed in the text console when you click using middle-mouse. Information for all the atoms in a residue is available using Info -> Residue Info....

The temperature factors and occupancy of the atoms in a residue can be set by using Edit -> Residue Info....

Next: , Previous: Atom Info, Up: Coordinate-Related Features

4.3 Atom Labeling

Use Shift + left-mouse to label atom. Do the same to toggle off the label. The font size is changeable using Edit -> Font Size.... The newly centred atom is labelled by default. To turn this off use:

(set-label-on-recentre-flag 0)

Some people prefer to have atom labels that are shorter, without the slashes and residue name:

(set-brief-atom-labels 1)

To change the atom label colour, use:

(set-font-colour 0.9 0.9 0.9)

Next: , Previous: Atom Labeling, Up: Coordinate-Related Features

4.4 Atom Colouring

The atom colouring system in coot is unsophisticated. Typically, atoms are coloured by element: carbons are yellow, oxygens red, nitrogens blue, hydrogens white and everything else green (see Section Display Manager for colour by chain). However, it is useful to be able to distinguish different molecules by colour, so by default coot rotates the colour map of the atoms (i.e. changes the H value in the HSV 40 colour system). The amount of the rotation depends on the molecule number and a user-settable parameter:

The default value is 31^\circ.

Also one is able to select only the Carbon atoms to change colour in this manner: (set-colour-map-rotation-on-read-pdb-c-only-flag 1).

The colour map rotation can be set individually for each molecule by using the GUI: Edit -> Bond Colours....

Next: , Previous: Atom Colouring, Up: Coordinate-Related Features

4.5 Bond Parameters

The various bond parameters can be set using the GUI dialog Draw -> Bond Parameters or via scripting functions.

The represention style of the molecule that has the active residue (if any) can be changed using the scroll wheel with Ctrl and Shift.

4.5.1 Bond Thickness

The thickness (width) of bonds of individual molecules can be changed. This can be done via the Bond Parameters dialog or the scripting interface:

(set-bond-thickness thickness imol)

where imol is the molecule number.

The default thickness is 3 pixels. The bond thickness also applies to the symmetry atoms of the molecule. The default bond thickness for new molecules can be set using:

(set-default-bond-thickness thick)

where thick is an integer.

There is no means to change the bond thickness of a residue selection within a molecule.

4.5.2 Display Hydrogens

Initially, hydrogens are displayed. They can be undisplayed using

(set-draw-hydrogens mol-no 0) 41

where mol-no is the molecule number.

There is a GUI to control this too, under “Edit -> Bond Parameters”.

4.5.3 NCS Ghosts Coordinates

It is occasionally useful when analysing non-crystallographically related molecules to have “images” of the other related molecules appear matched onto the current coordinates. It is important to understand that these ghosts are for displaying differences of NCS-related molecules by structure superposition, not displaying neighbouring NCS related molecules. As you read in coordinates in Coot, they are checked for NCS relationships and clicking on “Edit -> Bond Parameters -> Show NCS Ghosts” -> “Yes” -> “Apply” will create “ghost” copies of them over the reference chain 42.

Sometimes SSM does not provide a good (or even useful) matrix. In that case, we can specify the residue range ourselves and let the LSQ algorithm provide the matrix. A gui dialog for this operation can be found under Extensions -> NCS -> NCS Ghosts by Residue Range....

The scripting function is used like this:

(manual-ncs-ghosts imol resno-start resno-end ncs-chain-ids)

Typical usage: (manual-ncs-ghosts 0 1 10 (list "A" "B" "C"))

note that in ncs-chain-ids, the NCS master/reference chain-id goes first.

4.5.4 NCS Maps

Coot can use the relative transformations of the NCS-related molecules in a coordinates molecule to transform maps. Use Calculate -> NCS Maps... to do this (note the NCS maps only make sense in the region of the reference chain (see above).

Note also that the internal representation of the map is not transformed. If you try to export a NCS overlay map you will get an untransformed map. A transformed map only makes sense around a given point (and when using transformed maps in Coot, this reference point is changed on the fly, thus allowing map transformations on the fly). [This applies to NCS overlap maps, NCS averaged maps are transformed].

This will also create an NCS averaged map 43.

4.5.5 Using Strict NCS

Coot can use a set of strict NCS matrices to specify NCS which means that NCS-related molecules can appear like convention symmetry-related molecules.

(add-strict-ncs-matrix imol ncs-chain-id ncs-target-chain-id m11 m12 m13 m21 m22 m23 m31 m32 m33 t1 t2 t3)

where ncs-chain-id might be "B", "C" "D" (etc.) and ncs-target-chain-id is "A", i.e. the B, C, D molecules are NCS copies of the A chain.

for icosahedral symmetry the translation components t1, t2, t3 will be 0.

You need to turn on symmetry for molecule imol and set the displayed symmetry object type to "Display Near Chains".

Next: , Previous: Bond Parameters, Up: Coordinate-Related Features

4.6 Download coordinates

Coot provides the possibility to download coordinates from an OCA 44. (e.g. EBI) server 45 (File -> Get PDB Using Code...). A pop-up entry box is displayed into which you can type a PDB accession code. Coot will then connect to the web server and transfer the file. Coot blocks as it does this (which is not ideal) but on a semi-decent internet connection, it's not too bad. The downloaded coordinates are saved into a directory called coot-download.

It is also possible to download mmCIF data and generate a map. This currently requires a properly formatted database structure factors mmCIF file 46.

Next: , Previous: Download coordinates, Up: Coordinate-Related Features

4.7 Get Coordinates and Map from EDS

Using this function we have the ability to download coordinates and view the map from structures in the Electron Density Server (EDS) at Uppsala University. This is a much more robust and faster way to see maps from deposited structures. This function can be found under the File menu item.

This feature was added with the assistance of Gerard Kleywegt. If you use the EDS, please cite GJ Kleywegt, MR Harris, JY Zou, TC Taylor, A Wählby & TA Jones (2004), "The Uppsala Electron-Density Server", Acta Cryst. D60, 2240-2249.

Next: , Previous: Get Coordinates and Map from EDS, Up: Coordinate-Related Features

4.8 Save Coordinates

On selecting from the menus File -> Save Coordinates... you are first presented with a list of molecules which have coordinates. As well as the molecule number, there is the molecule name - very frequently the name of the file that was read in to generate the coordinates in coot initially. However, this is only a molecule name and should not be confused with the filename to which the coordinates are saved. The coordinates filename can be selected using the Select Filename... button.

If your filename ends in .cif, .mmcif or .mmCIF then an mmCIF file will be written (not a “PDB” file).

Next: , Previous: Save coordinates, Up: Coordinate-Related Features

4.9 Setting the Space Group

If for some reason, the pdb file that you read does not have a space group, or has the wrong space group, then you can set it using the following function:

(set-space-group imol symbol)


(set-space-group 0 "P 41 21 2")

Next: , Previous: Setting the Space Group, Up: Coordinate-Related Features

4.10 Anisotropic Atoms

By default anisotropic atom information is not represented 47. To turn them on, use Draw -> Anisotropic Atoms -> Show Anisotropic Atoms? -> Yes, or the command: (set-show-aniso 1).

You cannot currently display thermal ellipsoids 48 for isotropic atoms.

Next: , Previous: Anisotropic Atoms, Up: Coordinate-Related Features

4.11 Symmetry

Coordinates symmetry is “dynamic”. Symmetry atoms can be labeled 49. Every time you recentre, the symmetry coordinates are updated. The information shown contains the atom information and the symmetry operation number and translations needed to generate the atom in that position.

By default symmetry atoms are not displayed.

If you want coot to display symmetry coordinates without having to use the gui, add to your ~/.coot the following:

(set-show-symmetry-master 1)

The symmetry can be represented as C\alphas. This along with representation of the molecule as C\alphas (Section Display Manager) allow the production of a packing diagram.

4.11.1 Missing symmetry

Sometimes (rarely) coot misses symmetry-related molecules that should be displayed. In that case you need to expand the shift search (the default is 1):

(set-symmetry-shift-search-size 2)

This is a hack, until the symmetry search algorithm is improved.

Next: , Previous: Symmetry, Up: Coordinate-Related Features

4.12 Sequence View

The protein is represented by one letter codes and coloured according to secondary structure. These one letter codes are active - if you click on them, they will change the centre of the graphics window - in much the same way as clicking on a residue in the Ramachandran plot.

Next: , Previous: Sequence View, Up: Coordinate-Related Features

4.13 Print Sequence

The single letter code (of the imolth molecule) is written out to the console in FASTA format. Use can use this to cut and paste into other applications:

(print-sequence imol)

Next: , Previous: Print Sequence, Up: Coordinate-Related Features

4.14 Environment Distances

Environment distances are turned on using Info -> Environment Distances.... Contacts to other residues are shown and to symmetry-related atoms if symmetry is being displayed. The contacts are coloured by atom type 50.

Next: , Previous: Environment Distances, Up: Coordinate-Related Features

4.15 Distances and Angles

The distance between atoms can be found using Info -> Distance 51. The result is displayed graphically, and written to the console.

Next: , Previous: Distances and Angles, Up: Coordinate-Related Features

4.16 Zero Occupancy Marker

Atoms of zero occupancy are marked with a grey spot. To turn off these markers, use:

(set-draw-zero-occ-markers 0)

Use an argument of 1 to turn them on.

Next: , Previous: Zero Occupancy Marker, Up: Coordinate-Related Features

4.17 Atomic Dots

You can draw dots round arbitrary atom selections

(dots imol atom-selection dot-density radius) The function returns a handle.

e.g. put a sphere of dots around all atoms of the 0th molecule (it might be a set of heavy atom coordinates) at the default dot density and radius:

(dots 0 "/1" "heavy-atom-sites" 1 1)

You can't change the colour of the dots.

There is no internal mechanism to change the radius according to atom type. With some cleverness you might be able to call this function several times and change the radius according to the atom selection.

There is a function to clear up the dots for a particular molecule imol and dots set identifier dots-handle

(clear-dots imol dots-handle)

There is a function to return how many dots sets there are for a particular molecule imol:

(n-dots-set imol)

Next: , Previous: Atomic Dots, Up: Coordinate-Related Features

4.18 Ball and Stick Representation

Fragments of the molecule can be rendered as a “ball and stick” molecule:

(make-ball-and-stick imol atom-selection bond-thickness sphere-size draw-spheres-flag)

e.g. (make-ball-and-stick 0 "/1/A/10-20" 0.3 0.4 1)

The ball-and-stick representation can be cleared using:

(clear-ball-and-stick imol)

Next: , Previous: Ball and Stick Representation, Up: Coordinate-Related Features

4.19 Mean, Median Temperature Factors

Coot can be used to calculate the mean (average) and median temperatures factors:

(average-temperature-factor imol)

(median-temperature-factor imol)

-1 is returned if there was a problem 52.

Next: , Previous: Mean and Median Temperature Factors, Up: Coordinate-Related Features

4.20 Secondary Structure Matching (SSM)

The excellent SSM alogrithm53 of Eugene Krissinel is available in Coot. The GUI interface is straight-forward and can be found under Calculate -> SSM Superpose. You can specify the specific chains that you wish to match using the "Use Specific Chain" check-button.

There is a scripting level function which gives even finer control:

(superpose-with-atom-selection imol1 imol2 mmdb-atom-selection-string-1 mmdb-atom-selection-string-2 move-copy-flag )

the move-copy-flag should be 1 if you want to apply the transformation to a copy of imol2 (rather than imol2 itself). Otherwise, move-copy-flag should be 0.

mmdb atom selection strings (Coordinate-IDs) are explained in detail in the mmdb manual.

Briefly, the string should be formed in this manner:


e.g. "/1/A/12-130/CA"

<p><a href="">The mmdb manual CoordinateID description</a>.</p>

Next: , Previous: Secondary Structure Matching (SSM), Up: Coordinate-Related Features

4.21 Least-Squares Fitting

There is a simple GUI for this Calculate -> LSQ Superpose...

The scripting interface to LSQ fitting is as follows:

(simple-lsq-match ref-start-resno ref-end-resno ref-chain-id imol-ref mov-start-resno mov-end-resno mov-chain-id imol-mov match-type)


e.g.: (simple-lsq-match 940 950 "A" 0 940 950 "A" 1 'main)

More sophisticated (match molecule number 1 chain “B” on to molecule number 0 chain “A”):

(define match1 (list 840 850 "A" 440 450 "B" 'all))

(define match2 (list 940 950 "A" 540 550 "B" 'main))


(set-match-element match1)

(set-match-element match2)

(lsq-match 0 1) ; match molecule number 1 onto molecule number 0.

Next: , Previous: Least-Squares Fitting, Up: Coordinate-Related Features

4.22 Ligand Overlaying

The scripting function

(overlap-ligands imol-ligand imol-ref chain-id-ref resno-ref)

returns a rotation+translation operator which can be applied to other molecules (and maps). Here, imol-ligand is the molecule number of the ligand (which is presumed to be a a molecule on its own - Coot simply takes the first residue that it finds). imol-ref chain-id-ref resno-ref collectively describe the target position for the moving imol-ligand molecule.

The convenience function

(overlay-my-ligands imol-mov chain-id-mov resno-mov imol-ref chain-id-ref resno-ref)

wraps overlap-ligands.

The GUI for the function can be found under

Extensions -> Modelling -> Supperpose Ligands...

Previous: Ligand Overlaying, Up: Coordinate-Related Features

4.23 Writing PDB files

As well as the GUI option File -> Save Coordinates... there is a scripting options available:

(write-pdb-file imol pdb-file-name)

which writes the imolth coordinates molecule to filename.

To write a specific residue range:

(write-residue-range-to-pdb-file imol chain-id start-resno endresno pdb-file-name)

Next: , Previous: Coordinate-Related Features, Up: Top

5 Modelling and Building

The functions described in this chapter manipulate, extend or build molecules and can be found under Calculate -> Model/Fit/Refine.... When activated, the dialog "stays on top" of the main graphics window 54. Some people think that this is not always desirable, so this behaviour can be undone using:

(set-model-fit-refine-dialog-stays-on-top 0)

Next: , Up: Modelling and Building

5.1 Regularization and Real Space Refinement

Coot will read the geometry restraints for refmac and use them in fragment (zone) idealization - this is called “Regularization”. The geometrical restraints are, by default, bonds, angles, planes and non-bonded contacts. You can additionally use torsion restraints by Calculate -> Model/Fit/Refine... -> Refine/Regularize Control -> Use Torsion Restraints. Truth to tell, this has not been successful in my hands (sadly).

“RS (Real Space) Refinement” (after Diamond, 1971 55) in Coot is the use of the map in addition to geometry terms to improve the positions of the atoms. Select “Regularize” from the “Model/Fit/Refine” dialog and click on 2 atoms to define the zone (you can of course click on the same atom twice if you only want to regularize one residue). Coot then regularizes the residue range. At the end Coot, displays the intermediate atoms in white and also displays a dialog, in which you can accept or reject this regularization. In the console are displayed the \chi^2 values of the various geometrical restraints for the zone before and after the regularization. Usually the \chi^2 values are considerably decreased - structure idealization such as this should drive the \chi^2 values toward zero.

The use of “Refinement” is similar - with the addition of using a map. The map used to refine the structure is set by using the “Refine/Regularize Control” dialog. If you have read/created only one map into Coot, then that map will be used (there is no need to set it explicitly).

Use, for example, (set-matrix 20.0)

to change the weight of the map gradients to geometric gradients. The higher the number the more weight that is given to the map terms 56. The default is 60.0. This will be needed for maps generated from data not on (or close to) the absolute scale or maps that have been scaled (for example so that the sigma level has been scaled to 1.0).

For both “Regularize Zone” and “Refine Zone” one is able to use a single click to refine a residue range. Pressing <A> on the keyboard while selecting an atom in a residue will automatically create a residue range with that residue in the middle. By default the zone is extended one residue either size of the central residue. This can be changed to 2 either side using (set-refine-auto-range-step 2).

Intermediate (white) atoms can be moved around with the mouse (click and drag with left-mouse, by default). Refinement will proceed from the new atom positions when the mouse button is released. It is possible to create incorrect atom nomenclature and/or chiral volumes in this manner - so some care must be taken. Press the <A> key as you left-mouse click to move atoms more “locally” (rather than a linear shear) and <Ctrl> key as you left-mouse click to move just one atom.

In more up to date versions, Coot will display colour patches (something like a traffic light system) representing the chi squared values of each of types of geometric feature refined. Typically “5 greens” is the thing to aim for, the colour changes occurring at chi squared values 2, 5 and 8 (8 being the most red).

To prevent the unintentional refinement of a large number of residues, there is a “heuristic fencepost” of 20 residues. A selection of than 20 residues will not be regularized or refined. The limit can be changed using the scripting function: e.g. (set-refine-max-residues 30).

Next: , Up: Regularization and Real Space Refinement

5.1.1 Dictionary

The geometry description for residues, monomers and links used by Coot are in the standard mmCIF format. Because this format alows multiple comp_ids (residue types) to be described within a cif loop, it is hard to tell when a dictionary entry needs to be overwritten when reading a new file. Therefore Coot makes this extra constraint: that the “chem_comp” loop should appear first in the comp list data item - if this is the case, then Coot can overwrite an old restraint table for a particular comp_id/residue-type when a new one is read.

By default, the geometry dictionary entries for only the standard residues are read in at the start 57. It may be that your particular ligand is not amongst these. To interactively add a dictionary entry use File -> Import CIF Dictionary. Alternatively, you can use the function:

(read-cif-dictionary filename)

and add this to your .coot file (this may be the preferred method if you want to read the file on more than one occasion).

Note: the dictionary also provides the description of the ligand's torsions.

Next: , Previous: Dictionary, Up: Regularization and Real Space Refinement

5.1.2 Sphere Refinement

Sphere refinement selects residues within a certain distance of the residue at the centre of the screen and includes them for real space refinement. In this way, one can select residues that are not in a linear range. This technique is useful for refining disulfide bonds and glycosidic linkages.

To enable sphere refinement, Right-mouse in the vertical toolbutton menu, Manage buttons -> [Tick] Sphere Refine -> Apply. You will need a python-enabled Coot to do this.

The following adds a key binding (Shift-R) that refines resides that are within 3.5Å of the residue at the centre of the screen:

(define *sphere-refine-radius* 3.5)

(add-key-binding "Refine residues in a sphere" "R"
    (lambda ()
      (let* ((rc-spec (list aa-chain-id aa-res-no aa-ins-code))
	     (ls (residues-near-residue aa-imol rc-spec *sphere-refine-radius*)))
	(refine-residues aa-imol (cons rc-spec ls))))))

Next: , Previous: Sphere Refinement, Up: Regularization and Real Space Refinement

5.1.3 Refining Specific Residues

You can specify the residues that you want to refine without using a linear or sphere selection usine refine-residues. For example:

(refine-residues 0 '(("L" 501 "") ("L" 503 "")))

will refine residues A501 and A503 (and residue A502 (if it exists) will be an anchoring residue - used in optimizing the link geometry of the atoms in A501 and A503).

Next: , Previous: Refining Specific Residues, Up: Regularization and Real Space Refinement

5.1.4 Refining Carbohydrates

Refining carbohydrates monomers should be as straightforward as refining a protein residue. Coot will look in the dictionary for the 3-letter code for the particular residue type, if it does not find it, Coot will try to search for dictionary files using “-b-D” or “-a-L” extensions.

When refining a group of carbohydrates, the situation needs a bit more explanation. For each residue pair with tandem residue numbers specified in the refinement range selection, Coot checks if these residue types are are furanose or pyranose in the dictionary, and if the are both one or the other, then it tries to see if there are any of the 11 link types (BETA1-4, BETA2-3, ALPHA1-2 and so on) specified in the dictionary. It does this by a distance check of the potentially bonding atoms. If the distance is less than 3.0Å, then a glycosidic bond is made and used in the refinement.

Bonds between protein and carbohydrate and branched carbohydrates can be refined using “Sphere Refinement”.

Instead of using a sphere to make a residue selection, you can specify the residues directly using refine-residues, for example:

(refine-residues 0 '(("L" 501 "") ("L" 503 "")))

LINK and LINKR cards are not yet used to determine the geometry of the restraints.

Next: , Previous: Refining Carbohydrates, Up: Regularization and Real Space Refinement

5.1.5 Planar Peptide Restraints

By default, Coot uses a 5 atom (CA-1, C-1, O-1, N-2, CA-2) planar peptide restraints. These restraints should help in low resolution fitting (the main-chains becomes less distorted), reduce accidental cis-peptides and may help “clean up” Ramachandran plots.


And similarly they can be removed:


There is also a GUI to add and remove these restraints in Extensions -> Refine... -> Peptide Restraints...

Next: , Previous: Planar Peptide Restraints, Up: Regularization and Real Space Refinement

5.1.6 The UNK residue type

The UNK residue type is a special residue type to Coot. It has been added for use with Buccaneer. Don't give you ligand (or anything else) the 3-letter-code UNK or confusion will result 58.

Previous: The UNK residue type, Up: Regularization and Real Space Refinement

5.1.7 Moving Zero Occupancy Atoms

By default, atoms with zero occupancy are moved when refining and regularizing. This can sometimes be inconvenient. To turn of the movement of atoms with zero occupancy when refining and regularizing:

(set-refinement-move-atoms-with-zero-occupancy 0)

Next: , Previous: Regularization and Real Space Refinement, Up: Modelling and Building

5.2 Changing the Map for Building/Refinement

You can change the map that is used for the fitting and refinement tools using the Select Map... button on the Model/Fit/Refine dialog.

Next: , Previous: Changing the Map for Building/Refinement, Up: Modelling and Building

5.3 Rotate/Translate Zone

“Rotate/Translate Zone” from the “Model/Fit/Refine” menu allows manual movement of a zone. After pressing the “Rotate/Translate Zone” button, select two atoms in the graphics canvas to define a residue range 59, the second atom that you click will be the local rotation centre for the zone. The atoms selected in the moving fragment have the same alternate conformation code as the first atom you click. To actuate a transformation, click and drag horizontally across the relevant button in the newly-created “Rotation & Translation” dialog. The axis system of the rotations and translations are the screen coordinates. Alternatively 60, you can click using left-mouse on an atom in the fragment and drag the fragment around. Use Control Left-mouse to move just one atom, rather than the whole fragment. If you click Control Left-mouse whilst not over an atom then you can rotate the fragment using mouse drag. Click “OK” (or press Return) when the transformation is complete.

To change the rotation point to the centre of the intermediate atoms (rather than the second clicked atom), use the setting:

(set-rotate-translate-zone-rotates-about-zone-centre 1)

Next: , Previous: Rotate/Translate Zone, Up: Modelling and Building

5.4 Rigid Body Refinement

“Rigid Body Fit Zone” from the “Model/Fit/Refine” dialog provides rigid body refinement. The selection is zone-based 61. So to refine just one residue, click on one atom twice.

Sometimes no results are displayed after Rigid Body Fit Zone. This is because the final model positions had too many final atom positions in negative density. If you want to over-rule the default fraction of atoms in the zone that have an acceptable fit (0.75), to be (say) 0.25:

(set-rigid-body-fit-acceptable-fit-fraction 0.25)

Next: , Previous: Rigid Body Refinement, Up: Modelling and Building

5.5 Simplex Refinement

Rigid body refinement via Nelder-Mead Simplex minimization is available in Coot. Simplex refinement has a larger radius of convergence and thus is useful in a position where simple rigid body refinement finds the wrong minimum. However the Simplex algorithm is much slower. Simplex refinement for a residue range start-resno to end-resno (inclusive) in chain chain-id can be accessed as follows:

(fit-residue-range-to-map-by-simplex start-resno end-resno alt-loc chain-id imol imol-for-map)

There is currently no GUI interface to Simplex refinement.

Next: , Previous: Simplex Refinement, Up: Modelling and Building

5.6 Post-manipulation-hook

If you wanted automatically run a function after a model has been manipulated then you can do so using by creating a function that takes 2 arguments, such as:

(post-manipulation-hook imol manipulation-mode)

manipulation-mode is one of (DELETED), (MUTATED) or (MOVINGATOMS).

And of course imol is the model number of the maniplated molecule.

(It would of course be far more useful if this function was also passed a list of residues - that is something for the future).

Next: , Previous: Post-manipulation-hook, Up: Modelling and Building

5.7 Baton Building

Baton build is most useful if a skeleton is already calculated and displayed (see Section Skeletonization). When three or more atoms have been built in a chain, Coot will use a prior probability distribution for the next position based on the position of the previous three. The analysis is similar to that of Oldfield & Hubbard (1994) 62, however it is based on a more recent and considerably larger database.

Little crosses are drawn representing directions in which is is possible that the chain goes, and a baton is drawn from the current point to one of these new positions. If you don't like this particular direction 63, use Try Another. The list of directions is scored according to the above criterion and sorted so that the most likely is at the top of the list and displayed first as the baton direction.

When starting baton building, be sure to be about 3.8Å from the position of the first-placed C\alpha, this is because the next C\alpha is placed at the end of the baton, the baton root being at the centre of the screen. So, when trying to baton-build a chain starting at residue 1, centre the screen at about the position of residue 2.

It seems like a good idea to increase the map sampling to 2 or even 2.5 (before reading in your mtz file) [a grid sampling of about 0.5Å seems reasonable] when trying to baton-build a low resolution map. You can set the map sampling using Edit -> Map Parameters -> Map Sampling.

Occasionally, every point is not where you want to position the next atom. In that case you can either shorten or lengthen the baton, or position it yourself using the mouse. Use “b” on the keyboard to swap to baton mode for the mouse 64.

Baton-built atoms are placed into a molecule called “Baton Atom” and it is often sensible to save the coordinates of this molecule before quitting coot.

If you try to trace a high resolution map (1.5Å or better) you will need to increase the skeleton search depth from the default (10), for example:

(set-max-skeleton-search-depth 20)

Alternatively, you could generate a new map using data to a more moderate resolution (2Å), the map may be easier to interpret at that resolution anyhow 65.

The guide positions are updated every time the “Accept” button is clicked. The molecule name for these atoms is “Baton Build Guide Points” and is is not usually necessary to keep them.

5.7.1 Undo

There is also an “Undo” button for baton-building. Pressing this will delete the most recently placed C\alpha and the guide points will be recalculated for the previous position. The number of “Undo”s is unlimited. Note that you should use the “Undo” button in the Baton Build dialog, not the one in the “Model/Fit/Refine” dialog (Section Backups and Undo).

5.7.2 Missing Skeleton

Sometimes (especially at loops) you can see the direction in which the chain should go, but there is no skeleton (see Section Skeletonization) is displayed (and consequently no guide points) in that direction. In that case, “Undo” the previous atom and decrease the skeletonization level (Edit -> Skeleton Parameters -> Skeletonization Level). Accept the atom (in the same place as last time) and now when the new guide points are displayed, there should be an option to build in a new direction.

5.7.3 Building Backwards

The following scenario is not uncommon: you find a nice stretch of density and start baton building in it. After a while you come to a point where you stop (dismissing the baton build dialog). You want to go back to where you started and build the other way. How do you do that?

Next: , Previous: Baton Building, Up: Modelling and Building

5.8 Reversing Direction of Fragment

After you've build a fragment, sometimes you might want to change the direction of that fragment (this function changes an already existing fragment, as opposed to Backwards Building which sets up Baton Building to place new points in reverse order).

The fragment is defined as a contiguous set of residues numbers. So that you should be sure that other partial fragments which have the same chain id and that are not connected to this fragment have residue numbers that are not contiguous with the fragment you are trying to reverse.

Next: , Previous: Reversing Direction of Fragment, Up: Modelling and Building

5.9 C\alpha -> Mainchain

Mainchain can be generated using a set of C\alphas as guide-points (such as those from Baton-building) along the line of Esnouf 67 or Jones and coworkers 68. Briefly, 6-residue fragments of are generated from a list of high-quality 69 structures. The C\alpha atoms of these fragments are matched against overlapping sets of the guide-point C\alphas. The resulting matches are merged to provide positions for the mainchain (and C\beta) atoms. This procedure works well for helices and strands, but less well 70 for less common structural features.

This function is also available from the scripting interface:

(db-mainchain imol chain-id resno-start resno-end direction)

where direction is either "backwards" or "forwards".

Recall that the chain-id needs to be quoted, i.e. use "A" not A. Note that chain-id is "" when the C\alphas have been built with Baton Mode in Coot.

Next: , Previous: C-alpha -> Mainchain, Up: Modelling and Building

5.10 Backbone Torsion Angles

It is possible to edit the backbone \phi and \psi angles indirectly using an option in the Model/Fit/Refine's dialog: “Edit Backbone Torsions..”. When clicked and an atom of a peptide is selected, this produces a new dialog that offers “Rotate Peptide” which changes this residues \psi and “Rotate Carbonyl” which changes \phi. Click and drag across the button 71 to rotate the moving atoms in the graphics window. You should know, of course, that making these modifications alter the \phi/\psi angles of more than one residue.

Next: , Previous: Backbone Torsion Angles, Up: Modelling and Building

5.11 Docking Sidechains

Docking sidechains means adding sidechains to a model or fragment that has currently only poly-Ala, where the sequence assignment is unknown. The algorithm is basically the same as in Cowtan's Buccaneer, but with some corners cut to make things (more or less) interactive. The algorithm uses the shape of the density around the C-beta position to estimate the probability of each sidechain type at that position.

The function is accessed via the Extensions -> Dock Sequence menu item. First, a sequence should be assigned from a PIR file to a particular chain-id and model number. Secondly Extensions -> Dock Sequence -> Dock Sequence on this fragment.... Choose the model to build on and then Dock Sequence! If all goes well, the model will be updated with mutated residues and undergo rotamer seach for each of the new residues. If the sequence alignment is not sufficiently clear, then you will get a dialog suggesting that you extend or improve the fragment.

Next: , Previous: Docking Sidechains, Up: Modelling and Building

5.12 Rotamers

The rotamers are generated 72 from the backbone independent sidechain library of the Richardsons group 73.

The m, t and p stand for “minus (-60)”, “trans (180)” and “plus (+60)”. There is one letter per \chi angle.

Use keyboard <.> and <,> to cycle round the rotamers.

5.12.1 Auto Fit Rotamer

“Auto Fit Rotamer” will try to fit the rotamer to the electron density. Each rotamer is generated, rigid body refined and scored according to the fit to the map. Fitting the second conformation of a dual conformation in this way will often fail - the algorithm will pick the best fit to the density - ignoring the position of the other atoms.

The algorithm doesn't know if the other atoms in the structure are in sensible positions. If they are, then it is sensible not to put this residue too close to them, if they are not then there should be no restriction from the other atoms as to the position of this residue - the default is “are sensible”, which means that the algorithm is prevented from finding solutions that are too close to the atoms of other residues. (set-rotamer-check-clashes 0) will stop this.

There is a scripting interface to auto-fitting rotamers:

(auto-fit-best-rotamer resno alt-loc ins-code chain-id imol-coords imol-map clash-flag lowest-rotamer-probability)


resno is the residue number

alt-loc is the alternate/alternative location symbol (e.g. "A" or "B", but most often "")

ins-code is the insertion code (usually "")

imol-coords is the molecule number of the coordinates molecule

imol-map is the molecule number of the map to which you wish to fit the side chains

clash-flag should the positions of other residues be included in the scoring of the rotamers (i.e. clashing with other other atoms gets marked as bad/unlikely)

lowest-rotamer-probability: some rotamers of some side chains are so unlikely that they shouldn't be considered - typically 0.01 (1%).

You can change the auto-fit rotamer fitting algorithms using

(set-rotamer-search-mode mode)

where mode is one of (ROTAMERSEARCHAUTOMATIC), (ROTAMERSEARCHLOWRES) (i.e. "Backrub Rotamers" (vide infra)) or (ROTAMERSEARCHHIGHRES) (the conventional/high-resolution method using rigid-body fitting).

By default, the auto-fit rotamer method is (ROTAMERSEARCHAUTOMATIC). Backrub Rotamers

By default, Auto Fit Rotamer will switch to “Backrub Rotamer” 74 mode when fitting against a map of worse than 2.7Å. This search mode moves the some atoms of the mainchain of the neighbouring residues. After rotation of the central residue and neighbouring atoms around the “backrub vector”, the individual peptides are back-rotated (along the peptide axis) so that the carbonyl oxygen are placed as near as possible to their original position. The Ramachandran plot is not used in this fitting algorithm.

5.12.2 De-clashing residues

Sometimes you don't have a map 75 but nevertheless there are clashing residues 76 (for example after mutation of a residue range) and you need to rotate side-chains to a non-clashing rotamer. There is a scripting interface:

(de-clash imol chain-id start-resno end-resno)

start-resno is the residue number of the first residue you wish to de-clash

end-resno is the residue number of the last residue you wish to de-clash

imol is the molecule number of the coordinates molecule

This interface will not change residues with insertion codes or alternate conformation. The lowest-rotamer-probability is set to 0.01.

Next: , Previous: Rotamers, Up: Modelling and Building

5.13 Editing chi Angles

Instead of using Rotamers, one can instead change the \chi angles (often called “torsions”) “by hand” (using “Edit Chi Angles” from the “Model/Fit/Refine” dialog). To edit a residue's \chi_1 press “1”: to edit \chi_2, “2”: \chi_3 “3” and \chi_4 “4”. Use left-mouse click and drag to change the \chi value. Use keyboard “0” 77 to go back to ordinary view mode at any time during the editing. Alternatively, one can use the “View Rotation Mode” or use the <Ctrl> key when moving the mouse in the graphics window. Use the Accept/Reject dialog when you have finished editing the \chi angles.

For non-standard residues, the clicked atom defines the base of the atom tree, which defines the “head” of the molecule (it's the “tail” (twigs/leaves) that wags). To emphasise, then: it matters on which atom you click!

By default torsions for hydrogen atoms are turned off. To turn them on:

(set-find-hydrogen-torsions 1)

To edit the rotatable bonds of a ligand using this tool, you will need to have read in the mmCIF dictionary beforehand.

Next: , Previous: Editing Chi Angles, Up: Modelling and Building

5.14 Torsion General

You need to click on the torsion-general button, then click 4 atoms that describe the torsion - the first atom will be the base (non moving) part of the atom tree, on clicking the 4th atom a dialog will pop up with a "Reverse" button. Move this dialog out of the way and then left mouse click and drag in the main window will rotate the "top" part of the residue round the clicked atoms 2 and 3. When you are happy, click "Accept".

If you are torsion generaling a residue that has an alt conf, then the atoms of residue that are moved are those that have the same alt conf as the 4th clicked atom (or have an blank alt conf).

5.14.1 Ligand Torsion angles

For ligands, you will need to read the mmCIF file that contains a description of the ligand's geometry (see Section Regularization and Real Space Refinement). By default, torsions that move hydrogens are not included. Only 9 torsion angles are available from the keyboard torsion angle selection.

Next: , Previous: Torsion General, Up: Modelling and Building

5.15 Pep-flip

Coot uses the same pepflip scheme as is used in O (i.e. the C, N and O atoms are rotated 180^o round a line joining the C\alpha atoms of the residues involved in the peptide). Flip the peptide again to return the atoms to their previous position.

Next: , Previous: Pep-flip, Up: Modelling and Building

5.16 Add Alternate Conformation

The allows the addition alternate (dual, triple etc.) conformations to the picked residue. By default, this provides a choice of rotamer (Section Rotamers). If there are not the correct main chain atoms a rotamer choice cannot be provided, and Coot falls back to providing intermediate atoms.

The default occupancy for new atoms is 0.5. This can be changed by using use slider on the rotamer selection window or by using the scripting function:

(set-add-alt-conf-new-atoms-occupancy 0.4)

The remaining occupancy of the atoms (after the new occupancy has been added) is split amongst the atoms that existed in the residue before the split. It is important therefore that the residues atoms have sane occupancies before adding an alternative conformation.

The default Split Type is to split the whole residue. If you want the default to be to split a residue after (and including) the CA, then add to your .coot file:

(set-add-alt-conf-split-type-number 0)

Next: , Previous: Adding Alternative Conformations, Up: Modelling and Building

5.17 Mutation

Mutations are available on a 1-by-1 basis using the graphics. After selecting “Mutate...” from the “Model/Fit/Refine” dialog, click on an atom in the graphics. A “Residue Type” window will now appear. Select the new residue type you wish and the residue in the graphics is updated to the new residue type 78. The initial position of the new rotamer is the a priori most likely rotamer. Note that in interactive mode, such as this, a residue type match 79 will not stop the mutation action occurring.

5.17.1 Mutating DNA/RNA

Mutation of DNA or RNA can be performed using “Simple Mutate” from the Model/Fit/Refine dialog. Residues need to be named "Ad", "Gr", "Ur" etc.

5.17.2 Multiple mutations

This dialog can be found under Calculate -> Mutate Residue Range. A residue range can be assigned a sequence and optionally fitted to the map. This is useful converting a poly-ALA model to the correct sequence 80.

Multiple mutations are also supported via the scripting interface. Unlike the single residue mutation function, a residue type match will prevent a modification of the residue 81. Two functions are provided: To mutate a whole chain, use (mutate-chain imol chain-id sequence) where:

chain-id is the chain identifier of the chain that you wish to mutate (e.g. "A") and

imol is molecule number.

sequence is a list of single-letter residue codes, such as "GYRESDF" (this should be a straight string with no additional spaces or carriage returns).

Note that the number of residues in the sequence chain and those in the chain of the protein must match exactly (i.e. the whole of the chain is mutated (except residues that have a matching residue type).)

To mutate a residue range, use


start-res-no is the starting residue for mutation

stop-res-no is the last residue for mutation, i.e. using values of 2 and 3 for start-res-no and stop-res-no respectively will mutate 2 residues.

Again, the length of the sequence must correspond to the residue range length. Note also that this is a protein sequence - not nucleic acid.

For mutation of nucleic acids, use:

(mutate-nucleotide-range imol chain-id resno-start resno-end sequence)

5.17.3 Mutating to a Non-Standard Residue

Sometimes one might like to model post-translational or other such modifications. How is that done, if the new residue type is not one of the standard residue types?

There is a scripting function:

(mutate-by-overlap imol chain-id resno new-three-letter-code)

This imports a model residue for the new residue type and overlays it on to the given residue by using graph-matching to determine the equivalent atoms.

The GUI for this can be found under Extensions -> Modelling -> Replace Residue... (for this to work, you need to be centred on the residue you wish to replace).

Note that if you are replacing are conventional protein residue with a modified form (e.g. replacing a TYR with a phoso-tyrosine or a LYS with an acetyl-lysine) you will need to make sure that the group of the resulting restraints is an L-peptide (use Edit -> Restraints to check and modify the restraints group. Likewise for modified RNA/DNA nucleotides, you need to specify the group as RNA or DNA as appropriate.

5.17.4 Mutate and Autofit

The function combines Mutation and Auto Fit Rotamer and is the easiest way to make a mutation and then fit to the map. You can currently only “Mutate and Autofit” protein residues (i.e. things with a rotamer dictionary.

5.17.5 Renumbering

Renumbering is straightforward using the renumber dialog available under Calculate -> Renumber Residue Range.... There is also a scripting interface:

(renumber-residue-range imol chain-id start-res-no last-resno offset)

Next: , Previous: Mutation, Up: Modelling and Building

5.18 Importing Lignds/Monomers

You can import monomers (often ligands) using File -> Get Monomer...82 by providing the 3-letter code of your monomer/ligand. The resulting molecule will be moved so that it placed at the current screen centre.

Typically, when you are happy about the placement of the ligand, you'd then use Merge Molecules to add the ligand/monomer to the main set of coordinates.

This procedure creates a pdb file monomer-XXX.pdb and a dictionary file libcheck_XXX.cif in the directory in which Coot was started.

A future invocation of Get Monomer uses these file so that the monomer appears quickly 83.

Next: , Previous: Importing Ligands/Monomers, Up: Modelling and Building

5.19 Ligand from SMILES strings

Similarly, you can generate ligands using File -> SMILES... and providing a SMILES string and a code for the residue name (this is your name for the residue type and a dictionary will be generated for the monomer of this type). This function is also a wrapper to LIBCHECK.

Next: , Previous: Ligand from SMILES strings, Up: Modelling and Building

5.20 Find Ligands

You are offered a selection of maps to search (you can only choose one at a time) and a selection of molecules that act as a mask to this map. Finally you must choose which ligand types you are going to search for in this map 84. Only molecules with less than 400 atoms are suggested as potential ligands.

If you do not have any molecules with less that 400 atoms loaded in Coot, you will get the message:

"Error: you must have at least one ligand to search for!"

New ligands are placed where the map density is and protein (mask) atoms are not). The masked map is searched for clusters using a default cut-off of 1.0\sigma. In weak density this cut-off may be too high and in such a case the cut-off value can be changed using something such as:

(set-ligand-cluster-sigma-level 0.8)

However, if the map to be searched for ligands is a difference map, a cluster level of 2.0 or 3.0 would probably be more appropriate (less likely to generate spurious sites).

Each ligand is fitted with rigid body refinement to each potential ligand site in the map and the best one for each site selected and written out as a pdb file. The clusters are sorted by size, the biggest one first (with an index of 0). The output placed ligands files have a prefix “best-overall” and are tagged by the cluster index and residue type of the best fit ligand in that site.

By default, the top 10 sites are tested for ligands - to increase this use:

(set-ligand-n-top-ligands 20)

5.20.1 Flexible Ligands

If the “Flexible?” checkbutton is activated, coot will generate a number of variable conformations (default 100) by rotating around the rotatable bonds (torsions). Each of these conformations will be fitted to each of the potential ligand sites in the map and the best one will be selected (again, if it passes the fitting criteria above).

Before you search for flexible ligands you must have read the mmCIF dictionary for that particular ligand residue type (File -> Import CIF dictionary). Use:

(set-ligand-flexible-ligand-n-samples n-samples)

where n-samples is the number of samples of flexibility made for each ligand. Generally speaking, The more the number of rotatable bonds, the bigger this number should be.

By default the options to change these values are not in the GUI. To enable these GUI options, use the scripting function:


5.20.2 Adding Ligands to Model

After successful ligand searching, one may well want to add that displayed ligand to the current model (the coordinates set that provided the map mask). To do so, use Merge Molecules (Section Merge Molecules).

Next: , Previous: Find Ligands, Up: Modelling and Building

5.21 Flip Ligand

Sometimes a ligand is placed more or less in the correct position, but the orientation is wrong - or at least you might want to explore other possible orientation. To do that easily a function has been provided:

(flip-ligand imol chain-id residue-number)

This will flip the orientation of the residue around the Eigen vector corresponding to the largest Eigen value, exploring 4 possible orientations.

This function has been further wrapped to provide flipping for the active residue:


This function can easily be bound to a key.

Next: , Previous: Flip Ligand, Up: Modelling and Building

5.22 Find Waters

As with finding ligands, you are given a chose of maps, protein (masking) atoms. A final selection has to be made for the cut-off level, note that this value is the number of standard deviation of the density of the map before the map has been masked. The default sigma level (water positions must have density above this level) is set for a “2Fo-Fc”-style map. If you want to use a difference map, you must change the sigma level (typically to 3 sigma) otherwise you run the risk of fitting waters to difference map noise peaks.

Then the map is masked by the masking atoms and a search is made of features in the map about the electron density cut-off value. Waters are added if the feature is approximately water-sized and can make sensible hydrogen bonds to the protein atoms. The new waters are optionally created in a new molecule called “Waters”.

You have control over several parameters used in the water finding:


which writes ligand-waters-peaksearch-results.pdb, which contains the water peaks (from the clusters) without any filtering and ligand-waters.pdb which are a disk copy filtered waters that have been either added to the molecule or from which a new molecule has been created.

(set-ligand-water-to-protein-distance-limits min-d max-d) sets the minimum and maximum allowable distances between new waters and the masking molecule (usually the protein). Defaults are 2.4 and 3.2Å.

(set-ligand-water-spherical-variance-limit varlim) sets the upper limit for the density variance around water atoms. The default is 0.12.

The map that is marked by the protein and is searched to find the waters is written out in CCP4 format as "".

5.22.1 Refinement Failure

Sometimes as a result of water fitting, you may see something like:

 WARNING:: refinement failure
           start pos: xyz = (      17.1,     34.76,     60.42)
           final pos: xyz = (     17.19,     34.61,     60.59)

When Coot finds a blob, it does a crude positioning of an atom at the centre of the grid points. It then proceeds to move to the peak of the blob by a series of translations. There are a certain number of cycles, and if it doesn't reach convergence by the end of those cycles then you get the error message.

Often when you go to the position indicated, you can see why Coot had a problem in the refinement.

5.22.2 Blobs

After a water search, Coot will create a blobs dialog (see Section sec_blobs).

Next: , Previous: Find Waters, Up: Modelling and Building

5.23 Add Terminal Residue

This creates a new residue at the C or N terminal extension of the residue clicked by fitting to the map. \phi,\psi angle pairs are selected at random based on the Ramachandran plot probability (for a generic residue) and fitted to the density. By default there are 100 trials. It is possible that a wrong position will be selected for the terminal residue and if so, you can reject this fit and try again with Fit Terminal Residue 85. Each of the trial positions are scored according to their fit to the map 86 and the best one selected. It is probably a good idea to run “Refine Zone” on these new residues.

If you use the Extensions (Dock Sequence... -> Associate Sequence with Model) to apply a PIR sequence file to a model then Add Terminal Residue will use the sequence alignment to determine the residue type of the added residue.

Sometimes, particularly with low resolution maps, the added terminal residue will wander off to somewhere inappropriate. This can be addressed in a number of ways:

  1. (set-terminal-residue-do-rigid-body-refine 0) will disable rigid body fitting of the terminal residue fragment for each trial residue position (the default is 1 (on)) - this may help if the search does not provide good results.
  2. to anneal the newly added residue back to the clicked residue (no matter where it ended up being positioned): (set-add-terminal-residue-do-post-refine 1)
  3. (set-add-terminal-residue-n-phi-psi-trials 200) will change the number of trials (default is 100). This is useful if you think that Coot needs to search harder to find a good solution to the positioning of the next residue.

Next: , Previous: Add Terminal Residue, Up: Modelling and Building

5.24 Add OXT Atom to Residue

At the C-terminus of a chain of amino-acid residues, there is a “modification” so that the C-O becomes a carbonyl, i.e. an extra (terminal) oxygen (OXT) needs to be added. This atom is added so that it is in the plane of the C\alpha, C and O atoms of the residue.

Scripting usage:

(add-OXT-to-residue imol residue-number insertion-code chain-id) 87,

where insertion-code is typically "".

Note, in order to place OXT, the N, CA, C and O atoms must be present in the residue - if (for example) the existing carbonyl oxygen atom is called “OE1” then this function will not work.

Next: , Previous: Add OXT Atom to Residue, Up: Modelling and Building

5.25 Add Atom at Pointer

By default, “Add Atom At Pointer” will pop-up a dialog from which you can choose the atom type you wish to insert 88. Using (set-pointer-atom-is-dummy 1) you can by-pass this dialog and immediately create a dummy atom at the pointer position. Use an argument of 0 to revert to using the atom type selection pop-up on a button press.

The atoms are added to a new molecule called “Pointer Atoms”. They should be saved and merged with your coordinates outside of Coot.

Next: , Previous: Add Atom at Pointer, Up: Modelling and Building

5.26 Place Helix

The idea is to place a helix more or less “here” (the screen centre) by fitting to the electron density map. The algorithm is straightforward. First we move to the local centre of density, then examine the density for characteristic directions and fit ideal helices (of length 20 residues) to these directions. The helix is then extended if possible (by checking the fit to the map of residues added in ideal helix conformation) and chopped back if not. If the fit is successful, the helix is created in a new molecule called “Helix”. If the fit is not successful, there is instead a message added to the status bar. You can build the majority of a helical protein in a few minutes using this method (you will of course have to assemble the helices and assign residue numbers and sequence later).

This is available as a scripting function (place-helix-here) and in the GUI (in the “Other Modelling Tools” dialog).

Next: , Previous: Place Helix, Up: Modelling and Building

5.27 Building Ideal DNA and RNA

The interface to building ideal polynucleotides can be found by pressing the “Ideal RNA/DNA...” button on the “Other Modelling Tools” dialog.

For a given sequence, a choice of DNA or RNA, A or B form, single or double stranded is presented.

The interface may not gracefully handle uracils in DNA, thymines in RNA or B form RNA 89.

Next: , Previous: Building Ideal DNA and RNA, Up: Modelling and Building

5.28 Merge Molecules

This dialog can be found under “Calculate” in the main menubar. This is typically used to add molecule fragments or residues that are in one molecule to the “working” coordinates 90.

Next: , Previous: Merge Molecules, Up: Modelling and Building

5.29 Temperature Factor for New Atoms

The default temperature factor for new atoms is 30.0. This can be changed by the following

(set-default-temperature-factor-for-new-atoms 50.0)

Next: , Previous: Temperature Factor for New Atoms, Up: Modelling and Building

5.30 Applying NCS Edits

Let's imagine that you have 3-fold NCS. You have molecule “A” as your master molecule and you make edits to that molecule. Now you want to apply the edits that you made to “A” (the NCS master chain ID) to the “B” and “C” molecules (i.e. you want the “B” and “C” molecules to be rotated/translated versions of the “A” molecule). How is that done?

There are now guis to NCS command to help you out (under Extensions). However, for completeness here are the scripting versions:

(copy-from-ncs-master-to-others imol master-chain-id)

If you have only a range of residues, rather than a whole chain to replace:

(copy-residue-range-from-ncs-master-to-others imol master-chain-id start-resno end-resno)


(copy-residue-range-from-ncs-master-to-others 0 "A" 1 5)

If you want to copy a residue range to a specific chain, or specific list of chains (rather than all NCS peer chains) then make a list of the chain-ids that you wish replaced:

(copy-residue-range-from-ncs-master-to-chains 0 "A" 1 5 (list "C"))

in this case, just the residues in the "C" chain is replaced.

Next: , Previous: Applying NCS Edits, Up: Modelling and Building

5.31 Running Refmac

Use the “Run Refmac...” button to select the dataset and the coordinates on which you would like to run Refmac. Note that here Coot only allows the use of datasets which has Refmac parameters set as the MTZ file was read. By default, Coot displays the new coordinates and the new map generated from refmac's output MTZ file. Optionally, you can also display the difference map.

You can add extra parameters (data lines) to refmac's input by storing them in a file called refmac-extra-params in the directory in which you started coot.

You can also provide extra/replacement parameters for refmac by setting the variable refmac-extra-params to a list of strings, for example:

(set! refmac-extra-params (list "REFINE MATRIX 0.1" "MAKE HYDROGENS NO"))

Coot “blocks” 91 until Refmac has terminated 92.

The default refmac executable is refmac5 it is presumed to be in the path. If you don't want this, it can be overridden using a re-definition either at the scripting interface or in one's ~/.coot file e.g.:

After running refmac several times, you may find that you prefer if the new map that refmac creates (after refmac refinement) is the same colour as the previous one (from before this refmac refinement). If so, use:

(set-keep-map-colour-after-refmac 1)

which will swap the colours of then new and old refmac map so that the post-refmac map has the same colour as the pre-refmac map and the pre-refmac map is coloured with a different colour.

Next: , Previous: Running Refmac, Up: Modelling and Building

5.32 Running SHELXL

Coot can read shelx .res files and write .ins files, and thus one can refine using SHELXL in a convenient manner using the function

(shelxl-refine imol . hkl-file-name)

(the hkl-file-name is an optional argument)


(shelxl-refine 0)


(shelxl-refine 0 "insulin.hkl")

In the former case, coot will presume that there is a SHELX hkl file corresponding to the res file that you read in; if there is not coot will print a warning and not try to run shelxl. In the latter case, you can specify the location of the hkl file.

After shelxl has finished, coot will automatically read in the resulting res coordinates, the fcf file, convert the data to mmCIF format and read that, which generates a \sigma_A map and a difference map.

Coot creates a time stamped ins file and a time-stamped sym-link to the hkl file in the coot-shelxl directory.

Please note that the output ins file will not be particularly useful (and thus shelxl will fail) if the input file was not in SHELX ins format.

There is a GUI for this operation under the “Extensions” menu item.

Next: , Previous: Running SHELXL, Up: Modelling and Building

5.33 Clear Pending Picks

Sometimes one can click on a button 93 unintentionally. This button is there for such a case. It clears the expectation of an atom pick. This works not only for modelling functions, but also geometry functions (such as Distance and Angle).

Next: , Previous: Clear Pending Picks, Up: Modelling and Building

5.34 Delete

Single atoms or residues can be deleted from the molecule using “Delete...” from the “Model/Fit/Refine”dialog. Pressing this button results in a new dialog, with the options of “Residue” (the default), “Atom” and “Hydrogen Atoms”. Now click on an atom in the graphics - the deleted object will be the whole residue of the atom if “Residue” was selected and just that atom if “Atom” was selected. Note that if a residue has an alternative conformation, then “Delete Residue” will delete only the conformation that matches that alternative conformation specifier of the clicked atom.

Only waters are deletable if the "Water" check button is active and waters are not deletable if the "Residue/Monomer" check button is active. This is to reduce mis-clicking.

To rotate the view when in “Delete Mode”, use Ctrl left-mouse.

If you want to delete multiple items you can use check the “Keep Delete Active” check-button on this dialog This will will keep the dialog open, ready for deletion of next item.

Next: , Previous: Delete, Up: Modelling and Building

5.35 Sequence Assignment

You can assign a (FASTA format) sequence to a molecule using:

(assign-fasta-sequence imol chain-id fasta-seq)

This function has been provided as a precursor to functions that will (as automatically as possible) mutate your current coordinates to one that has the desired sequence. It will be used in automatic side-chain assignment (at some stage in the future).

Next: , Previous: Sequence Assignment, Up: Modelling and Building

5.36 Building Links and Loops

Coot can make an attempt to build missing linking regions or loops 94. This is an area of Coot that needs to be improved, currently O does it much better. We will have several different loop tools here 95. For now there is Calculate -> Fit Gap or the scripting function:

(fit-gap imol chain-id start-resno stop-resno)


(fit-gap imol chain-id start-resno stop-resno sequence)

the second form will also mutate and try to rotamer fit the provided sequence.

Example usage: let's say for molecule number 0 in chain "A" we have residues up to 56 and then a gap after which we have residues 62 and beyond:

(fit-gap 0 "A" 57 61 "TYPWS")

Next: , Previous: Building Links and Loops, Up: Modelling and Building

5.37 Fill Partial Residues

After molecular replacement, the residues of your protein could well have the correct sequence but be chopped back to CG or CB atoms. There is a function to fill such partially-filled residues:

(fill-partial-residues imol)

This identifies residues with missing atoms, then fills them and does a rotamer fit and real-space refinement.

If you want to fill the side chain of just one residue

(fill-partial-residue imol chain-id res-no ins-code)

this does a auto-fit-best-rotamer and a refinement on the resulting side-chain position.

Next: , Previous: Fill Partial Residues, Up: Modelling and Building

5.38 Changing Chain IDs

You can change the chain ids of chains using Calculate -> Change Chain IDs.... Coot will block an attempt to change the whole of a chain and the target chain id already exists in the molecule.

If you use the "Residue Range" option then you can insert residues with non-conflicting residue number into pre-existing chains.

Next: , Previous: Changing Chain IDs, Up: Modelling and Building

5.39 Setting Occupancies

As well as the editing “Residue Info” to change occupancies of individual atoms, one can use a scripting function to change occupancies of a whole residue range:

example usage:

(zero-occupancy-residue-range 0 "A" 23 28)

This is often useful to zero out a questionable loop before submitting for refinement. After refinement (with refmac) there should be relatively unbiased density in the resulting 2Fo-Fc-style and difference maps.

Similarly there is a function to reverse this operation:

Next: , Previous: Setting Occupancies, Up: Modelling and Building

5.40 Fix Nomenclature Errors

Currently this is available only in scripting form:

(fix-nomenclature-errors imol)

This will fix atoms nomenclature problems in molecule number imol according to the same criteria as WATCHECK 96 e.g. Chi-2 for Phe, Tyr, Asp, and Glu should be between -90 and 90 degrees. Note that Val and Leu nomenclature errors are also corrected.

Next: , Previous: Fix Nomenclature Errors, Up: Modelling and Building

5.41 Rotamer Fix Whole Protein

There is an experimental scripting function

(fit-protein imol)

which does a auto-fit rotamer and Real Space Refinement for each residue. The graphics follow the refinement.

Next: , Previous: Rotamer Fix Whole Protein, Up: Modelling and Building

5.42 Refine All Waters

All the waters in a model can be refined (that is, moved to the local density peak) using

(fit-waters imol)

This is a non-interactive function (the waters are moved without user intervention).

Next: , Previous: Refine All Waters, Up: Modelling and Building

5.43 Moving Molecules/Ligands

Often you want to move a ligand (or some such) from wherever it was read in to the position of interest in your molecule (i.e. the current view centre). There is a GUI to do this: Calculate -> Move Molecule Here.

There are scripting functions available for this sort of thing:

(molecule-centre imol)

will tell you the molecule centre of the imolth molecule.

(translate-molecule-by imol x-shift y-shift z-shift)

will translate all the atoms in molecule imol by the given amount (in Ångströms). (move-molecule-to-screen-centre imol)

will move the imolth molecule to the current centre of the screen (sometimes useful for imported ligands). Note that this moves the atoms of the molecule - not just the view of the molecule.

Previous: Moving Molecules/Ligands, Up: Modelling and Building

5.44 Modifying the Labels on the Model/Fit/Refine dialog

If you don't like the labels "Rotate/Translate Zone" or "Place Atom at Pointer" and rather they said something else, you can change the button names using:

(set-model-fit-refine-rotate-translate-zone-label "Move Zone")


(set-model-fit-refine-place-atom-at-pointer "Add Atom")

Next: , Previous: Modelling and Building, Up: Top

6 Map-Related Features

Next: , Up: Map-Related Features

6.1 Maps in General

Maps are “infinite,” not limited to pre-calculated volume (the “Everywhere You Click - There Is Electron Density” (EYC-TIED) paradigm) symmetry-related electron density is generated automatically. Maps are easily re-contoured. Simply use the scroll wheel on you mouse to alter the contour level (or -/+ on the keyboard). Maps follow the molecule. As you recentre or move about the crystal, the map quickly follows. If your computer is not up to re-contouring all the maps for every frame, then use Draw -> Dragged Map... to turn off this feature.

6.1.1 Map Reading Bug

Unfortunately, there is a bug in map-reading. If the map is not a bona-fide CCP4 map 97, then coot will crash. Sorry. A fix is in the works but “it's complicated”. That's why maps are limited to the extension ".ext" and ".map", to make it less likely a non-CCP4 map is read.

Next: , Previous: Maps in General, Up: Map-Related Features

6.2 Create a Map

From MTZ, mmCIF and .phs data use File -> Open MTZ, CIF or phs.... You can then choose the MTZ columns for the Fourier synthesis. The button “Expert mode” also adds to the options any anomalous columns you may have in the MTZ file (a -90 degree phase shift will be applied). It also provides the option to apply resolution limits.

From a CCP4 map use File -> Read Map. After being generated/read, the map is immediately contoured and centred on the current rotation centre.

6.2.1 Auto-read MTZ file

This function allows Coot to read an MTZ file and make a map directly (without going through the column selection procedure). The default column labels for auto-reading are "FWT" and "PHWT" for the 2Fo-Fc-style map, "DELFWT" and "PHDELWT" for the difference map. You can change the column labels that Coot uses for auto-reading - here is an example of how to do that:

(set-auto-read-column-labels "2FOFCWT" "PHIWT" 0) (set-auto-read-column-labels "FOFCWT" "DELPHIWT" 1)

By default the difference map is created in auto-reading the MTZ file. If you don't want a difference map, you can use the function:

(set-auto-read-do-difference-map-too 0)

6.2.2 Reading CIF data

There are several maps that can be generated from CIF files that contain observed Fs, calculated Fs and calculated phases:

6.2.3 Reading PHS data

There are 2 ways to read data by scripting:

(read-phs-and-make-map-using-cell-symm phs-file-name space-group-name a b c alpha beta gamma)

(read-pdb-and-make-map-with-reso-limits imol-previous phs-file-name reso-limit-low reso-limit-high)

The first specifies the cell explicitly, and alpha, beta and gamma are specified in degrees.

The second form allows the specification of resolution limits and takes the cell and symmetry from a previous molecule (typically a pdb file).

Next: , Previous: Create a Map, Up: Map-Related Features

6.3 Map Contouring

Maps can be re-contoured using the middle-mouse scroll-wheel (buttons 4 and 5 in X Window System(TM) terminology). Scrolling the mouse wheel will change the map contour level and the map it redrawn. If you have several maps displayed then the map that has its contour level changed can be set using HID -> Scrollwheel -> Attach scroll-wheel to which map?. If there is only one map displayed, then that is the map that has its contour level changed (no matter what the scroll-wheel is attached to in the menu). The level of the electron density is displayed in the top right hand corner of the OpenGL canvas.

Use keyboard <+> or <-> to change the contour level if you don't have a scroll-wheel 98.

If you are creating your map from an MTZ file, you can choose to click on the “is difference map” button on the Column Label selection widget (after a data set filename has been selected) then this map will be displayed in 2 colours corresponding to + and - the map contour level.

If you read in a map and it is a difference map then there is a checkbutton to tell Coot that.

If you want to tell Coot that a map is a difference map after it has been read, use:

(set-map-is-difference-map imol)

where imol is the molecule number.

By default the change of the contour level is determined from the sigma of the map. You can change this in the map properties dialog or by using the scripting function:

(set-contour-by-sigma-step-by-mol step on/off? imol)


step is the difference in sigma from one level to the next (typically 0.2)

on/off? is either 0 (sigma stepping off) or 1 (sigma stepping on)

By default the map radius 99 is 10Å. The default increment to the electron density depends on whether or not this is a difference map (0.05 e^-/\AA^3 for a “2Fo-Fc” style map and 0.005 e^-/\AA^3 for a difference map). You can change these using Edit -> Map Parameters or by using the “Properties” button of a particular map in the Display Control (Display Manager) window.

Next: , Previous: Map Contouring, Up: Map-Related Features

6.4 Map Extent

The extent of the map can be set using the GUI (Edit -> Map Parameters -> Map Radius) or by using the scripting function, e.g.:

(set-map-radius 13.2)

Next: , Previous: Map Extent, Up: Map-Related Features

6.5 Map Contour “Scrolling” Limits

Usually one doesn't want to look at negative contour levels of a map100, so Coot has by default a limit that stops the contour level going beyond (less than) 0. To remove the limit:

(set-stop-scroll-iso-map 0) for a 2Fo-Fc style map

(set-stop-scroll-diff-map 0) for a difference map

To set the limits to negative (e.g. -0.6) levels:

(set-stop-scroll-iso-map-level -0.6)

and similarly:

(set-stop-scroll-diff-map-level -0.6)

where the level is specified in e^-/\AA^3.

Next: , Previous: Map Contour ``Scrolling'' Limits, Up: Map-Related Features

6.6 Map Line Width

The width of the lines that describe the density can be changed like this:

(set-map-line-width 2)

The default line width is 1.

Next: , Previous: Map Line Width, Up: Map-Related Features

6.7 “Dynamic” Map colouring

By default, maps get coloured according to their molecule number. The starting colour (i.e. for molecule 0) is blue. The colour of a map can be changed by Edit -> Map Colour... The map colour gets updated as you change the value in the colour selector 101. Use “OK” to fix that colour.

As subsequent maps are read, they are coloured by rotation round a colour wheel. The default colour map step is 31 degrees. You can change this using:

(set-colour-map-rotation-for-map step)

Next: , Previous: Map colouring, Up: Map-Related Features

6.8 Difference Map Colouring

For some strange reason, some crystallographers 102 like to have their difference maps coloured with red as positive and green as negative, this option is for them:

(set-swap-difference-map-colours 1)

This option will allow the “blue is positive, red is negative” colour scheme on “Edit -> Map Colour”.

Next: , Previous: Difference Map Colouring, Up: Map-Related Features

6.9 Make a Difference Map

Using the “Make a Difference Map” function in the Extensions menu, one can make a difference from two arbitrary maps. The maps need not be on the same griding, or in the same space group even. The resulting map will be on the same griding and space group as the “Reference” map.

Next: , Previous: Make a Difference Map, Up: Map-Related Features

6.10 Make an Averaged Map

There is a scripting interface to the generation of map averages. As above, the maps need not be on the same grid or in the same space group. The resulting map will have the same gridding and space group as the first map in the list. Typical usage:

(average-map '((1 1.0) (2 1.0))))

The argument to (average-map is a list of lists, each list element is a list of the map number and a weighting factor (1.0 in this case).

Next: , Previous: Make an Averaged Map, Up: Map-Related Features

6.11 Map Sampling

By default, the Shannon sampling factor is the conventional 1.5. Use larger values (Edit -> Map Parameters -> Sampling Rate) for smoother maps 103.

This value can be set by the scripting command

(set-map-sampling-rate 2.5)

Next: , Previous: Map Sampling, Up: Map-Related Features

6.12 Dragged Map

By default, the map is re-contoured at every frame during a drag (Ctrl Left-mouse). Sometimes this can be annoyingly slow and jerky so it is possible to turn it off: Draw -> Dragged Map -> No.

To change this by scripting:

(set-active-map-drag-flag 0)

Next: , Previous: Dragged Map, Up: Map-Related Features

6.13 Dynamic Map Sampling and Display Size

If activated (Edit -> Map Parameters -> Dynamic Map Sampling) the map will be re-sampled on a more coarse grid when the view is zoomed out. If “Display Size” is also activated, the box of electron density will be increased in size also. In this way, you can see electron density for big maps (many unit cells) and the graphics still remain rotatable.

If you want to have these functions active for all maps, add the following to your initialization file Scheme:

(set-dynamic-map-sampling-on) (set-dynamic-map-size-display-on)

Next: , Previous: Dynamic Map Sampling and Display Size, Up: Map-Related Features

6.14 Skeletonization

The skeleton (also known as “Bones” 104) can be displayed for any map. A map can be skeletonized using Calculate -> Map Skeleton.... Use the option menu to choose the map and click “On” then “OK” to the generate the map (the skeleton is off by default).

The level of the skeleton can be changed by using Edit -> Skeleton Parameters... -> Skeletonization Level... and corresponds to the electron density level in the map. By default this value is 1.2 map standard deviations. The amount of map can be changed using Edit -> Skeleton Parameters... -> Skeleton Box Radius...105. The units are in Ångströms, with 40 as the default value.

The skeleton is often recalculated as the screen centre changes - but not always since it can be an irritatingly slow calculation. If you want to force a regeneration of the displayed skeleton, simply centre on an atom (using the middle mouse button) or press the <S> key.

Next: , Previous: Skeletonization, Up: Map-Related Features

6.15 Map Sharpening

It can be educational (even useful at lower resolutions) to sharpen or blur a map. This can be achieved with the sharpening tool Calculate -> Map Sharpening.... By default, the maximum and minimum sharpness is +/- 30Å^2, this can be changed (in this case to 80) using:

(set-map-sharpening-scale-limit 80)

This currently only works on maps created by reading an MTZ (or other) reflection data file.

Next: , Previous: Map Sharpening, Up: Map-Related Features

6.16 Pattersons

Pattersons can be generated using the make-and-draw-patterson function. Example usage:

(make-and-draw-patterson mtz-file-name f-col sig-f-col weight-col use-weights-flag)

where use-weights-flag is either 0 or 1.

Next: , Previous: Pattersons, Up: Map-Related Features

6.17 Masks

A map can be masked by a set of coordinates. Use the scripting function:

(mask-map-by-molecule imol-map imol-model invert-mask?)

If invert-mask? is 0, this will create a new map that has density only where there are no (close) coordinates. If invert-mask? is 1 then the map density values will be set to zero everywhere except close to the atoms of molecule number imol-model.

The radius of the mask around each atom is 2.0Å by default. You can change this using:

(set-map-mask-atom-radius radius)

There is a GUI interface to Map Masking under the Extensions menu.

6.17.1 Example

If one wanted to show just the density around a ligand:

  1. Make a pdb file the contains just the ligand and read it in to Coot - let's say it is molecule 1 and the ligand is residue 3 of chain “L”.
  2. Get a map that covers the ligand (e.g. from refmac). Let's say this map is molecule number 2.
  3. Mask the map:

    (mask-map-by-molecule 2 1 1)

    This creates a new map. Turn the other maps off, leaving only the masked map.

To get a nice rendered image, press F8 (see Section Raster3D).

Next: , Previous: masks, Up: Map-Related Features

6.18 Trimming

If you want to remove all the atoms 106 that lie “outside the map” (i.e. in low density) you can use

(trim-molecule-by-map imol-coords imol-map density-level delete/zero-occ?)

where delete/zero-occ? is 0 to remove the atoms and 1 to set their occupancy to zero.

There is a GUI interface for this feature under the “Extensions” menu item.

Next: , Previous: Trimming Atoms, Up: Map-Related Features

6.19 Map Transformation

If you want to transform a map, you can do it thusly:

(transform-map imol rotation-matrix trans point radius)


rotation-matrix is a 9-membered list of numbers for an orthogonal rotation matrix.

trans is a 3-membered list of numbers (distances in Ångstöms).

point is a 3-membered list of numbers (centre point in Ångstöms).

radius is a single number (also in Ångstöms).

This applies the rotation rotation-matrix and a translation trans to a map fragment, so that when the transformation is applied the centre of the new map is at point.

Example usage:

(transform-map 2 '(1 0 0 0 1 0 0 0 1) '(0 0 1) (rotation-centre) 10)

which transforms map number 2 by a translation of 1Å along the Z axis, centred at the screen centre for 10Å around that centre.

Here's a more real-world example:

Let's say we want to tranform the density over the “B” molecule to a position over the “A” molecule. First we do a LSQ transformation to get the rotation and translation that moves the “B” coordinates over the “A” coordinates:

In the terminal output we get:

|    0.9707,    0.2351,   0.05033|
|  -0.04676,      0.39,   -0.9196|
|   -0.2358,    0.8903,    0.3896|
(    -33.34,     21.14,     18.82)

The centre of the “A” molecule is at (58.456, 5.65, 11.108). So we do:

(transform-map 3 (list 0.9707 0.2351 0.05033 -0.04676 0.39 -0.9196 -0.2358 0.8903 0.3896) (list -33.34 21.14 18.82) (list 58.456 5.65 11.108) 8)

Which creates a map over the middle of the “A” molecule. Note that using a too high radius can cause overlap problems, so try with a small radius (e.g. 5.0) if the resulting map looks problematic.

Alternatively, instead of typing the whole matrix, you can use a coordinates least-squares fit to generate the matrix for you. (transform-map-using-lsq-matrix) does just that.

Heres how to use it:

(transform-map-using-lsq-matrix imol-ref ref-chain ref-resno-start ref-resno-end imol-mov mov-chain mov-resno-start mov-resno-end imol-map about-pt radius)

Hopefully the arguments are self explanatory (ref refers to the reference molecule, of course and about-pt is a 3-number list such as is returned by (rotation-centre)).

We can now export that map, if we want.

Previous: Map Transformation, Up: Map-Related Features

6.20 Export Map

You can write out a map from Coot (e.g. one from NCS averaging, or masking or general transformation) using the export map function:

(export-map imol filename)


(export-map 4 "")

Next: , Previous: Map-Related Features, Up: Top

7 Validation

The validation functions are still being added to from time to time. In future there will be more functions, particularly those that will interface to other programs.

Next: , Up: Validation

7.1 Ramachandran Plots

Ramachandran plots are “dynamic”. When you edit the molecule (i.e. move the coordinates of some of atoms) the Ramachandran plot gets updated to reflect those changes. Also the underlying \phi/\psi probability density changes according to the selected residue type (i.e. the residue under the mouse in the plot). There are 3 different residue types: GLY, PRO, and not-GLY-or-PRO 107.

When you mouse over a representation of a residue (a little square or triangle 108) the residue label pops up. The residue is “active” i.e. it can be clicked. The “graphics” view changes so that the C\alpha of the selected residue is centred. In the Ramachandran plot window, the current residue is highlighted by a green square.

The underlying distributions are taken from the Richardson's Top500 structures

The probability levels for acceptable (yellow) and preferred (red) are 0.2% and 2% respectively.

You can change the contour levels:

(set-ramachandran-plot-contour-levels 0.025 0.003)

You can change the “blocksize” (the default is 10 degrees) of the contours using

(set-ramachandran-plot-background-block-size 5)

These comes into effect when a new plot is created (it doesn't change plots currently displayed).

Next: , Previous: Ramachandran Plots, Up: Validation

7.2 Geometry Analysis

A restraints-based geometry analysis of the molecule. The distortion is weighted by atom occupancy. The distortion of the geometry due to links is shared between the contributing residues.

Note that only the first model of a multi-model molecule is analysed.

Next: , Previous: Geometry Analysis, Up: Validation

7.3 Chiral Volumes

The dictionary is used to identify the chiral atoms of each of the model's residues. A clickable list is created of atoms whose chiral volume in the model is of a different sign to that in the dictionary.

During refinement and regularization, Coot will pop-up dialogs warning about chiral volume errors - if you have them. This can be annoying 109. You can inhibit this dialog like this:

(set-show-chiral-volume-errors-dialog 0)

7.3.1 Fixing Chiral Volume Errors

There are two obvious ways:

1) mutate and auto-fit rotamer (mutate it to the residue type that it is)

2) RS Refine the residue and invert the chiral centre by pulling an atom. Usually you can pull the CA to the other side of the plane made by the chiral neighbouring atoms (using ctrl left-click). Sometimes giving the CB a good old tweak is the easier way.

Inverting the CB of THR is easier, just move the OG so that the plane of the neighbours is on the other side of the CB (again with ctrl left-click).

Next: , Previous: Chiral Volumes, Up: Validation

7.4 Blobs: a.k.a. Unmodelled density

This is an interface to the Blobs dialog. A map and a set of coordinates that model the protein are required.

A blob is region of relatively high residual election density that cannot be explained by a simple water. So, for example, sulfates, ligands, mis-placed sidechains or unbuilt terminal residues might appear as blobs. The blobs are in order, the biggest 110 at the top.

Next: , Previous: sec_blobs, Up: Validation

7.5 Difference Map Peaks

This is one of the fastest ways to validate a model and its data (presuming that the difference map comes from a post-refinement mFo-DFc map). It highlights regions where the model and the data do not agree.

Lesser peaks within a certain distance (by default, 2.0Å) of a large peak are not shown. This cuts down on the number of times one is navigated to a particular region because of ripple or other noise peaks around a central peak.

This value can be queried:


and adjusted:

(set-difference-map-peaks-max-closeness 0.1)

Next: , Previous: Difference Map Peaks, Up: Validation

7.6 Check Waters by Difference Map

Sometimes waters can be misplaced - taking the place of sidechains or ligands or crystallization agents such as phosphate for example 111. In such cases the variance of the difference map can be used to identify these problems.

This function is also useful to check anomalous maps. Often waters are placed in density that is really a something else, perhaps a cation, anion, sulphate or a ligand. If such an atom diffracts anomalously this can be identified and corrected.

By default the waters with a map variance greater than 3.5\sigma are listed. One can be more rigorous by using a lower cut-off:

(set-check-waters-by-difference-map-sigma-level 3.0)

The scripting interface is:

(check-waters-by-difference-map imol-coords imol-diff-map)

where imol-coords is the molecule number of the coordinates that contain the waters to be checked

imol-diff-map is the molecule number of the difference map (it must be a difference map, not an “ordinary” map). This difference map must have been calculated using the waters. So there is no point in doing this check immediately after “Find Waters”. You will need to run Refmac or some other refinement first first 112.

Next: , Previous: Check Waters by Difference Map, Up: Validation

7.7 Molprobity Tools Interface

The molprobity tools probe and reduce have been interfaced into Coot (currently, the interface is not as slick as it might be). However, the tools are useful and can be used in the following way:

first we need to tell Coot where to find the relevant executables (typically you would add the following lines to you ~/.coot file):

(define *probe-command* "/path/to/probe/executable")

(define *reduce-command* "/path/to/reduce/executable")

now the probe hydrogens and probe dots can be generated using Validate -> Probe Clashes (or in the Scripting Window):

(probe imol)

where imol is the molecule number of coordinates to be probed. A new molecule with Hydrogens is created (by reduce) and read in.

By default Coot creates a new molecule for the molecule that now has hydrogens. To change this:

(set! reduce-molecule-updates-current #t)

and that, as you can guess, replaces, rather than adds to the “probed” molecule.

This gives a "static" view of the molecule's interactions.

To get a dynamic view (which is currently only enabled on rotating chi angles) add these to your ~/.coot file:

(set-do-probe-dots-on-rotamers-and-chis 1)

To get a semi-static view (dots are regenerated in the region of zone after a "Real Space Refinement"):

(set-do-probe-dots-post-refine 1)

Next: , Previous: Molprobity Tools Interface, Up: Validation

7.8 GLN and ASN B-factor Outliers

It is often difficult to detect by eye the correct orientation of the amino-carbonylo group of GLN and ASNs. However, we can use (properly refined) temperature factors to detect outliers. We take the Z value as half the difference between the B-factor of the NE2 and OE1 divided by the standard deviation of the B-factors of the rest of the residue. An analysis of GLNs and ASNs of high resolutions structures indicates that a Z value of greater than 2.25 indicates a potential (if not probable) flip. A “Fix” button is provided in the resultant dialog make this easy to do.

This analysis was added after discussions with Atsushi Nakagawa and so is called “Nakagawa's Bees”.

The analysis does not check residues with multiple conformations.

Previous: GLN and ASN B-factor Outliers, Up: Validation

7.9 Validation Graphs

Coot provides several graphs that are useful for model validation (on a residue by residue basis): residue density fit, geometry distortion, temperature factor variance, peptide distortion and rotamer analysis.

7.9.1 Residue Density Fit

The density fit graph shows the density fit for residues. The score is the average electron density level at the atom centres of the atoms in the residue. The height of the blocks is inversely proportional to the density average.

The residue density fit is by default scaled to a map that is calculated on the absolute scale. Sometimes you might be using a map with density levels considerably different to this, which makes the residue density fit graph less useful. To correct for this you can use the scripting function:

(set-residue-density-fit-scale-factor factor)

where factor would be 1/(4\sigma_map) (as a rule of thumb).

(residue-density-fit-scale-factor) returns the current scale factor (default 1.0).

There is also a GUI to this:

Extensions -> Refine... -> Set Density Fit Graph Weight...

7.9.2 Rotamer Analysis

Residue rotamers are scored according to the prior likelihood. Note that when CD1 and CD2 of a PHE residue are exchanged (simply a nomenclature error) this can lead to large red blocks in the graph (apparently due to very unlikely rotamers). There are several other residues that can have nomenclature errors like this. To fix these problems use

(fix-nomenclature-errors imol)

7.9.3 Temperature Factor Variance

This idea is from Eleanor Dodson, who liked to use the standard deviation of a residue's temperature factors to highlight regions of questionable structure.

Note that Hydrogens are ignored in this analysis.

7.9.4 Peptide Omega Angle Distortion

Some variability of the \omega is to be expected in the peptide bond. But not too much. Anything more than 13 degrees is suspicicous. Unexpected peptide bonds show up red by default. If cis peptides are to be expected, and should not marked as bad, then you can tell this to Coot using:

Edit -> Preferences -> Geometry -> Cis-Peptides -> No

Next: , Previous: Validation, Up: Top

8 Representation

Up: Representation

8.1 Surfaces

Coot uses the surface code from Gruber and Noble (2004).

Coot uses the partial charges of the atoms (the partial_charge field in the _chem_comp_atom block) from the charge dictionary item in the refmac (or other) cif dictionary. However, partial charges are only used under certain conditions

1) the molecule consists of less than 100 atoms


2) the number of atoms in the molecule that are hydrogens is at least 15% of the total number of atoms in the molecule

If partial charges are not used, then the fall-back is to use charges from side-chains charged at physiological pH (Arg, Lys, Asp, Glu).

Next: , Previous: Representation, Up: Top

9 Hints and Usage Tips

Next: , Up: Hints and Usage Tips

9.1 Documentation

This manual is on the web where it can be searched:

In the Menu item “About”, under “Online Docs URL...” there is a entry bar that can be used to search the Coot documentation via Google. The results are returned as a web page in web browser. The browser type can be specified as in this example:

(set-browser-interface "firefox")

Example usage can be found in xxx/share/coot/scheme/group-settings.scm

Next: , Previous: Documentation, Up: Hints and Usage Tips

9.2 Low Resolution

Building structures using low resolution data is a pain. We hope to make it less of a pain in future, but there are some things that you can do now.

Next: , Previous: Low Resolution, Up: Hints and Usage Tips

9.3 Coot Droppings

This describes the files and directory that coot leaves behind after it has been fed (sorry, I mean “used”). Everything except the 0-coot.state.scm state file can comfortably be deleted if needed after coot has finished.

You can stop the state and history files being written if you start coot with the --no-guano option.

Next: , Previous: Coot Droppings, Up: Hints and Usage Tips

9.4 Clearing Backups

Coot will occasionally ask you to clear up the coot-backup directory. You can adjust the behaviour in a number of ways:

So, if you wanted to clear out everything more than 1 day old, every time, without Coot asking you about it:

     (define *clear-out-backup-run-n-days* 0)
     (define *clear-out-backup-old-days* 1)
     (define (clear-backups-maybe)
       (delete-coot-backup-files 'delete)
       (coot-real-exit 0))

Next: , Previous: Clearing Backups, Up: Hints and Usage Tips

9.5 Getting out of “Translate” Mode

If you get stuck in "translate" mode in the GL canvas (i.e. mouse does not rotate the view as you would expect) simply press and release the Ctrl key to return to "rotate" mode.

Next: , Previous: Getting out of ``Translate'' Mode, Up: Hints and Usage Tips

9.6 Getting out of “Continuous Rotation” Mode

The keyboard <I> key toggles the “continuous rotation” mode. The menu item Draw -> Spin View On/Off does the same thing.

Next: , Previous: Getting out of ``Continuous Rotation'' Mode, Up: Hints and Usage Tips

9.7 Getting out of “Label Atom Only” Mode

Similarly, if you are stuck in a mode where the “Model/Fit/Refine” buttons don't work (the atoms are not selected, only the atom gets labelled), press and release the Shift key.

Next: , Previous: Label Atom Only Mode, Up: Hints and Usage Tips

9.8 Button Labels

Button labels ending in “...” mean that a new dialog will pop-up when this button is pressed.

Next: , Previous: Button Labels, Up: Hints and Usage Tips

9.9 Picking

Note that left-mouse in the graphics window is used for both atom picking and rotating the view, so try not to click over an atom when trying to rotate the view when in atom selection mode.

Next: , Previous: sec_picking, Up: Hints and Usage Tips

9.10 Resizing View

Click and drag using right-mouse (up and down or left and right) to zoom in and out.

Next: , Previous: Resizing View, Up: Hints and Usage Tips

9.11 Scroll-wheel

To change the map to which the scroll-wheel is attached, use the scroll check button in the Display Manager or use HID -> Scrollwheel -> Attach Scrollwheel to which map?

Previous: Scroll-wheel, Up: Hints and Usage Tips

9.12 Slow Computer Configuration

Several of the parameters of Coot are chosen because they are reasonable on my “middle-ground” development machine. However, these parameters can be tweaked so that slower computers perform better:

Next: , Previous: Hints and Usage Tips, Up: Top

10 Other Programs

Up: Other Programs

10.1 findligand

findligand is a stand-alone command-line program that uses the libraries of Coot.

findligand provides a number of command line arguments for increased flexibility:

One uses findligand like this:

$ findligand various-args ligand-pdb-file-name(s)

i.e. the example ligand pdb files that you wish to search for are given at the end of the command line.

Next: , Previous: Other Programs, Up: Top

11 Scripting Functions

Next: , Up: Scripting Functions

11.1 The Virtual Trackball

Next: , Up: The Virtual Trackball

11.1.1 vt-surface

— function: vt-surface mode

Where mode is an integer number

How should the mouse move the view?

mode=1 for "Flat", mode=2 for "Spherical Surface"

Previous: vt-surface, Up: The Virtual Trackball

11.1.2 vt-surface-status

— function: vt-surface-status

return the mouse view status mode

mode=1 for "Flat", mode=2 for "Spherical Surface"

Next: , Previous: The Virtual Trackball, Up: Scripting Functions

11.2 Startup Functions

Next: , Up: Startup Functions

11.2.1 set-prefer-python

— function: set-prefer-python

tell coot that you prefer to run python scripts if/when there is an option to do so.

Previous: set-prefer-python, Up: Startup Functions

11.2.2 prefer-python

— function: prefer-python

the python-prefered mode.

This is available so that the scripting functions know whether on not to put themselves onto in as menu items.

If you consider using this, consider in preference use_gui_qm == 2, which is used elsewhere to stop python functions adding to the gui, when guile-gtk functions have alread done so. We should clean up this (rather obscure) interface at some stage.

return 1 for python is prefered, 0 for not.

Next: , Previous: Startup Functions, Up: Scripting Functions

11.3 File System Functions

Next: , Up: File System Functions

11.3.1 make-directory-maybe

— function: make-directory-maybe dir

Where dir is a string

make a directory dir (if it doesn't exist) and return error code

If it can be created, create the directory dir, return the success status like mkdir: mkdir

Returns: zero on success, or -1 if an error occurred. If dir already exists as a directory, return 0 of course.

Next: , Previous: make-directory-maybe, Up: File System Functions

11.3.2 set-show-paths-in-display-manager

— function: set-show-paths-in-display-manager i

Where i is an integer number

Show Paths in Display Manager?

Some people don't like to see the full path names in the display manager here is the way to turn them off, with an argument of 1.

Next: , Previous: set-show-paths-in-display-manager, Up: File System Functions

11.3.3 show-paths-in-display-manager-state

— function: show-paths-in-display-manager-state

return the internal state

What is the internal flag?

Returns: 1 for "yes, display paths" , 0 for not

Next: , Previous: show-paths-in-display-manager-state, Up: File System Functions

11.3.4 add-coordinates-glob-extension

— function: add-coordinates-glob-extension ext

Where ext is a string

add an extension to be treated as coordinate files

Next: , Previous: add-coordinates-glob-extension, Up: File System Functions

11.3.5 add-data-glob-extension

— function: add-data-glob-extension ext

Where ext is a string

add an extension to be treated as data (reflection) files

Next: , Previous: add-data-glob-extension, Up: File System Functions

11.3.6 add-dictionary-glob-extension

— function: add-dictionary-glob-extension ext

Where ext is a string

add an extension to be treated as geometry dictionary files

Next: , Previous: add-dictionary-glob-extension, Up: File System Functions

11.3.7 add-map-glob-extension

— function: add-map-glob-extension ext

Where ext is a string

add an extension to be treated as geometry map files

Next: , Previous: add-map-glob-extension, Up: File System Functions

11.3.8 remove-coordinates-glob-extension

— function: remove-coordinates-glob-extension ext

Where ext is a string

remove an extension to be treated as coordinate files

Next: , Previous: remove-coordinates-glob-extension, Up: File System Functions

11.3.9 remove-data-glob-extension

— function: remove-data-glob-extension ext

Where ext is a string

remove an extension to be treated as data (reflection) files

Next: , Previous: remove-data-glob-extension, Up: File System Functions

11.3.10 remove-dictionary-glob-extension

— function: remove-dictionary-glob-extension ext

Where ext is a string

remove an extension to be treated as geometry dictionary files

Next: , Previous: remove-dictionary-glob-extension, Up: File System Functions

11.3.11 remove-map-glob-extension

— function: remove-map-glob-extension ext

Where ext is a string

remove an extension to be treated as geometry map files

Next: , Previous: remove-map-glob-extension, Up: File System Functions

11.3.12 set-sticky-sort-by-date

— function: set-sticky-sort-by-date

sort files in the file selection by date?

some people like to have their files sorted by date by default

Next: , Previous: set-sticky-sort-by-date, Up: File System Functions

11.3.13 unset-sticky-sort-by-date

— function: unset-sticky-sort-by-date

do not sort files in the file selection by date?

removes the sorting of files by date

Next: , Previous: unset-sticky-sort-by-date, Up: File System Functions

11.3.14 set-filter-fileselection-filenames

— function: set-filter-fileselection-filenames istate

Where istate is an integer number

on opening a file selection dialog, pre-filter the files.

set to 1 to pre-filter, [0 (off, non-pre-filtering) is the default

Next: , Previous: set-filter-fileselection-filenames, Up: File System Functions

11.3.15 filter-fileselection-filenames-state

— function: filter-fileselection-filenames-state

, return the state of the above variable

Next: , Previous: filter-fileselection-filenames-state, Up: File System Functions

11.3.16 file-type-coords

— function: file-type-coords file_name

Where file_name is a string

is the given file name suitable to be read as coordinates?

Previous: file-type-coords, Up: File System Functions

11.3.17 open-coords-dialog

— function: open-coords-dialog

display the open coordinates dialog

Next: , Previous: File System Functions, Up: Scripting Functions

11.4 Widget Utilities

Next: , Up: Widget Utilities

11.4.1 info-dialog

— function: info-dialog txt

Where txt is a string

create a dialog with information

create a dialog with information string txt. User has to click to dismiss it, but it is not modal (nothing in coot is modal).

Previous: info-dialog, Up: Widget Utilities

11.4.2 info-dialog-and-text

— function: info-dialog-and-text txt

Where txt is a string

create a dialog with information and print to console

as info_dialog but print to console as well.

Next: , Previous: Widget Utilities, Up: Scripting Functions

11.5 MTZ and data handling utilities

Up: MTZ and data handling utilities

11.5.1 manage-column-selector

— function: manage-column-selector filename

Where filename is a string

given a filename, try to read it as a data file

We try as .phs and .cif files first

Next: , Previous: MTZ and data handling utilities, Up: Scripting Functions

11.6 Molecule Info Functions

Next: , Up: Molecule Info Functions

11.6.1 chain-n-residues

— function: chain-n-residues chain_id imol


the number of residues in chain chain_id and molecule number imol

Returns: the number of residues

Next: , Previous: chain-n-residues, Up: Molecule Info Functions

11.6.2 resname-from-serial-number

— function: resname-from-serial-number imol chain_id serial_num


return the rename from a residue serial number

Returns: NULL (scheme False) on failure.

Next: , Previous: resname-from-serial-number, Up: Molecule Info Functions

11.6.3 seqnum-from-serial-number

— function: seqnum-from-serial-number imol chain_id serial_num


a residue seqnum (normal residue number) from a residue serial number

Returns: < -9999 on failure

Next: , Previous: seqnum-from-serial-number, Up: Molecule Info Functions

11.6.4 insertion-code-from-serial-number

— function: insertion-code-from-serial-number imol chain_id serial_num


the insertion code of the residue.

Returns: NULL (scheme False) on failure.

Next: , Previous: insertion-code-from-serial-number, Up: Molecule Info Functions

11.6.5 n-models

— function: n-models imol

Where imol is an integer number

the chain_id (string) of the ichain-th chain molecule number imol

return the number of models in molecule number imoluseful for NMR or other such multi-model molecules.

return the number of models or -1 if there was a problem with the given molecule.

Returns: the chain-id

Next: , Previous: n-models, Up: Molecule Info Functions

11.6.6 n-chains

— function: n-chains imol

Where imol is an integer number

number of chains in molecule number imol

Returns: the number of chains

Next: , Previous: n-chains, Up: Molecule Info Functions

11.6.7 is-solvent-chain-p

— function: is-solvent-chain-p imol chain_id


is this a solvent chain? [Raw function]

This is a raw interface function, you should generally not use this, but instead use (is-solvent-chain? imol chain-id)

Returns: -1 on error, 0 for no, 1 for is "a solvent chain". We wouldn't want to be doing rotamer searches and the like on such a chain.

Next: , Previous: is-solvent-chain-p, Up: Molecule Info Functions

11.6.8 n-residues

— function: n-residues imol

Where imol is an integer number

return the number of residues in the molecule,

return -1 if this is a map or closed.

Next: , Previous: n-residues, Up: Molecule Info Functions

11.6.9 sort-chains

— function: sort-chains imol

Where imol is an integer number

sort the chain ids of the imol-th molecule in lexographical order

Next: , Previous: sort-chains, Up: Molecule Info Functions

11.6.10 sort-residues

— function: sort-residues imol

Where imol is an integer number

sort the residues of the imol-th molecule

Next: , Previous: sort-residues, Up: Molecule Info Functions

11.6.11 remarks-dialog

— function: remarks-dialog imol

Where imol is an integer number

a gui dialog showing remarks header info (for a model molecule).

Next: , Previous: remarks-dialog, Up: Molecule Info Functions

11.6.12 print-header-secondary-structure-info

— function: print-header-secondary-structure-info imol

Where imol is an integer number

simply print secondardy structure info to the terminal/console. In future, this could/should return the info.

Next: , Previous: print-header-secondary-structure-info, Up: Molecule Info Functions

11.6.13 copy-molecule

— function: copy-molecule imol

Where imol is an integer number

copy molecule imol

Returns: the new molecule number. Return -1 on failure to copy molecule (out of range, or molecule is closed)

Next: , Previous: copy-molecule, Up: Molecule Info Functions

11.6.14 add-ligand-delete-residue-copy-molecule

— function: add-ligand-delete-residue-copy-molecule imol_ligand_new chain_id_ligand_new resno_ligand_new imol_current chain_id_ligand_current resno_ligand_current


Copy a molecule with addition of a ligand and a deletion of current ligand.

This function is used when adding a new (modified) ligand to a structure. It creates a new molecule that is a copy of the current molecule except that the new ligand is added and the current ligand/residue is deleted.

Previous: add-ligand-delete-residue-copy-molecule, Up: Molecule Info Functions

11.6.15 exchange-chain-ids-for-seg-ids

— function: exchange-chain-ids-for-seg-ids imol

Where imol is an integer number

Experimental interface for Ribosome People.

Ribosome People have many chains in their pdb file, they prefer segids to chainids (chainids are only 1 character). But coot uses the concept of chain ids and not seg-ids. mmdb allow us to use more than one char in the chainid, so after we read in a pdb, let's replace the chain ids with the segids. Will that help?

Next: , Previous: Molecule Info Functions, Up: Scripting Functions

11.7 Library and Utility Functions

Next: , Up: Library and Utility Functions

11.7.1 coot-version

— function: coot-version

the coot version string

Returns: something like "coot-0.1.3". New versions of coot will always be lexographically greater than previous versions.

Next: , Previous: coot-version, Up: Library and Utility Functions

11.7.2 svn-revision

— function: svn-revision

return the subversion revision number of this build.

Used in finding updates.

Next: , Previous: svn-revision, Up: Library and Utility Functions

11.7.3 molecule-name

— function: molecule-name imol

Where imol is an integer number

return the name of molecule number imol

Returns: 0 if not a valid name ( -> False in scheme) e.g. "/a/b/c.pdb" for "d/e/f.mtz FWT PHWT"

Next: , Previous: molecule-name, Up: Library and Utility Functions

11.7.4 set-molecule-name

— function: set-molecule-name imol new_name


set the molecule name of the imol-th molecule

Next: , Previous: set-molecule-name, Up: Library and Utility Functions

11.7.5 coot-real-exit

— function: coot-real-exit retval

Where retval is an integer number

exit from coot, give return value retval back to invoking process.

Next: , Previous: coot-real-exit, Up: Library and Utility Functions

11.7.6 first-coords-imol

— function: first-coords-imol

What is the molecule number of first coordinates molecule?

return -1 when there is none.

Next: , Previous: first-coords-imol, Up: Library and Utility Functions

11.7.7 first-small-coords-imol

— function: first-small-coords-imol

molecule number of first small (<400 atoms) molecule.

return -1 on no such molecule

Next: , Previous: first-small-coords-imol, Up: Library and Utility Functions

11.7.8 first-unsaved-coords-imol

— function: first-unsaved-coords-imol

What is the molecule number of first unsaved coordinates molecule?

return -1 when there is none.

Previous: first-unsaved-coords-imol, Up: Library and Utility Functions

11.7.9 mmcif-sfs-to-mtz

— function: mmcif-sfs-to-mtz cif_file_name mtz_file_name


convert the structure factors in cif_file_name to an mtz file.

Return 1 on success. Return 0 on a file without Rfree, return -1 on complete failure to write a file.

Next: , Previous: Library and Utility Functions, Up: Scripting Functions

11.8 Graphics Utility Functions

Next: , Up: Graphics Utility Functions

11.8.1 set-do-anti-aliasing

— function: set-do-anti-aliasing state

Where state is an integer number

set the bond lines to be antialiased

Next: , Previous: set-do-anti-aliasing, Up: Graphics Utility Functions

11.8.2 do-anti-aliasing-state

— function: do-anti-aliasing-state

return the flag for antialiasing the bond lines

Next: , Previous: do-anti-aliasing-state, Up: Graphics Utility Functions

11.8.3 set-do-GL-lighting

— function: set-do-GL-lighting state

Where state is an integer number

turn the GL lighting on (state = 1) or off (state = 0)

slows down the display of simple lines

Next: , Previous: set-do-GL-lighting, Up: Graphics Utility Functions

11.8.4 do-GL-lighting-state

— function: do-GL-lighting-state

return the flag for GL lighting

Next: , Previous: do-GL-lighting-state, Up: Graphics Utility Functions

11.8.5 use-graphics-interface-state

— function: use-graphics-interface-state

shall we start up the Gtk and the graphics window?

if passed the command line argument –no-graphics, coot will not start up gtk itself.

An interface function for Ralf.

Next: , Previous: use-graphics-interface-state, Up: Graphics Utility Functions

11.8.6 start-graphics-interface

— function: start-graphics-interface

start Gtk (and graphics)

This function is useful if it was not started already (which can be achieved by using the command line argument –no-graphics).

An interface for Ralf

Next: , Previous: start-graphics-interface, Up: Graphics Utility Functions

11.8.7 reset-view

— function: reset-view

"Reset" the view

return 1 if we moved, else return 0.

centre on last-read molecule with zoom 100. If we are there, then go to the previous molecule, if we are there, then go to the origin.

Next: , Previous: reset-view, Up: Graphics Utility Functions

11.8.8 graphics-n-molecules

— function: graphics-n-molecules

return the number of molecules (coordinates molecules and map molecules combined) that are currently in coot

Returns: the number of molecules (closed molecules are not counted)

Next: , Previous: graphics-n-molecules, Up: Graphics Utility Functions

11.8.9 toggle-idle-spin-function

— function: toggle-idle-spin-function

Spin spin spin (or not).

Next: , Previous: toggle-idle-spin-function, Up: Graphics Utility Functions

11.8.10 toggle-idle-rock-function

— function: toggle-idle-rock-function

Rock (not roll) (self-timed).

Next: , Previous: toggle-idle-rock-function, Up: Graphics Utility Functions

11.8.11 set-rocking-factors

— function: set-rocking-factors width_scale frequency_scale


Settings for the inevitable discontents who dislike the default rocking rates (defaults 1 and 1).

Next: , Previous: set-rocking-factors, Up: Graphics Utility Functions

11.8.12 set-idle-function-rotate-angle

— function: set-idle-function-rotate-angle f

Where f is a number

how far should we rotate when (auto) spinning? Fast computer? set this to 0.1

Next: , Previous: set-idle-function-rotate-angle, Up: Graphics Utility Functions

11.8.13 handle-read-draw-molecule

— function: handle-read-draw-molecule filename

Where filename is a string

a synonym for read-pdb. Read the coordinates from filename (can be pdb, cif or shelx format)

Next: , Previous: handle-read-draw-molecule, Up: Graphics Utility Functions

11.8.14 set-convert-to-v2-atom-names

— function: set-convert-to-v2-atom-names state

Where state is an integer number

shall we convert nucleotides to match the dictionary names?

Usually we do not want to do this (give current Coot architecture). Most often not, though. Coot should handle the residue synonyms transparently.

default off (0).

Next: , Previous: set-convert-to-v2-atom-names, Up: Graphics Utility Functions

11.8.15 handle-read-draw-molecule-with-recentre

— function: handle-read-draw-molecule-with-recentre filename recentre_on_read_pdb_flag


read coordinates from filename with option to not recentre.

set recentre_on_read_pdb_flag to 0 if you don't want the view to recentre on the new coordinates.

Next: , Previous: handle-read-draw-molecule-with-recentre, Up: Graphics Utility Functions

11.8.16 handle-read-draw-molecule-and-move-molecule-here

— function: handle-read-draw-molecule-and-move-molecule-here filename

Where filename is a string

read coordinates from filename and recentre the new molecule at the screen rotation centre.

Next: , Previous: handle-read-draw-molecule-and-move-molecule-here, Up: Graphics Utility Functions

11.8.17 read-pdb

— function: read-pdb filename

Where filename is a string

read coordinates from filename

Next: , Previous: read-pdb, Up: Graphics Utility Functions

11.8.18 assign-hetatms

— function: assign-hetatms imol

Where imol is an integer number

some programs produce PDB files with ATOMs where there should be HETATMs. This is a function to assign HETATMs as per the PDB definition.

Next: , Previous: assign-hetatms, Up: Graphics Utility Functions

11.8.19 hetify-residue

— function: hetify-residue imol chain_id resno ins_code


if this is not a standard group, then turn the atoms to HETATMs.

Return 1 on atoms changes, 0 on not. Return -1 if residue not found.

Next: , Previous: hetify-residue, Up: Graphics Utility Functions

11.8.20 residue-has-hetatms

— function: residue-has-hetatms imol chain_id resno ins_code


residue has HETATMs?

return 1 if all atoms of the specified residue are HETATMs, else, return 0. If residue not found, return -1.

Next: , Previous: residue-has-hetatms, Up: Graphics Utility Functions

11.8.21 het-group-n-atoms

— function: het-group-n-atoms comp_id

Where comp_id is a string

return the number of non-hydrogen atoms in the given het-group (comp-id).

Return -1 on comp-id not found in dictionary.

Next: , Previous: het-group-n-atoms, Up: Graphics Utility Functions

11.8.22 replace-fragment

— function: replace-fragment imol_target imol_fragment atom_selection


replace the parts of molecule number imol that are duplicated in molecule number imol_frag

Next: , Previous: replace-fragment, Up: Graphics Utility Functions

11.8.23 copy-residue-range

— function: copy-residue-range imol_target chain_id_target imol_reference chain_id_reference resno_range_start resno_range_end


copy the given residue range from the reference chain to the target chain

resno_range_start and resno_range_end are inclusive.

Next: , Previous: copy-residue-range, Up: Graphics Utility Functions

11.8.24 clear-and-update-model-molecule-from-file

— function: clear-and-update-model-molecule-from-file molecule_number file_name


replace pdb. Fail if molecule_number is not a valid model molecule. Return -1 on failure. Else return molecule_number

Next: , Previous: clear-and-update-model-molecule-from-file, Up: Graphics Utility Functions

11.8.25 screendump-image

— function: screendump-image filename

Where filename is a string

dump the current screen image to a file. Format ppm

You can use this, in conjunction with spinning and view moving functions to make movies

Next: , Previous: screendump-image, Up: Graphics Utility Functions

11.8.26 set-draw-solid-density-surface

— function: set-draw-solid-density-surface imol state


sets the density map of the given molecule to be drawn as a (transparent) solid surface.

Next: , Previous: set-draw-solid-density-surface, Up: Graphics Utility Functions

11.8.27 set-draw-map-standard-lines

— function: set-draw-map-standard-lines imol state


toggle for standard lines representation of map.

This turns off/on standard lines representation of map. transparent surface is another representation type.

If you want to just turn off a map, don't use this, use


Next: , Previous: set-draw-map-standard-lines, Up: Graphics Utility Functions

11.8.28 set-solid-density-surface-opacity

— function: set-solid-density-surface-opacity imol opacity


set the opacity of density surface representation of the given map.

0.0 is totally transparent, 1.0 is completely opaque and (because the objects are no longer depth sorted) considerably faster to render. 0.3 is a reasonable number.

Previous: set-solid-density-surface-opacity, Up: Graphics Utility Functions

11.8.29 set-flat-shading-for-solid-density-surface

— function: set-flat-shading-for-solid-density-surface state

Where state is an integer number

set the flag to do flat shading rather than smooth shading for solid density surface.

Default is 1 (on.

Next: , Previous: Graphics Utility Functions, Up: Scripting Functions

11.9 Interface Preferences

Next: , Up: Interface Preferences

11.9.1 set-scroll-by-wheel-mouse

— function: set-scroll-by-wheel-mouse istate

Where istate is an integer number

Some people (like Phil Evans) don't want to scroll their map with the mouse-wheel.

To turn off mouse wheel recontouring call this with istate value of 0

Next: , Previous: set-scroll-by-wheel-mouse, Up: Interface Preferences

11.9.2 scroll-by-wheel-mouse-state

— function: scroll-by-wheel-mouse-state

return the internal state of the scroll-wheel map contouring

Next: , Previous: scroll-by-wheel-mouse-state, Up: Interface Preferences

11.9.3 set-default-initial-contour-level-for-map

— function: set-default-initial-contour-level-for-map n_sigma

Where n_sigma is a number

set the default inital contour for 2FoFc-style map

in sigma

Next: , Previous: set-default-initial-contour-level-for-map, Up: Interface Preferences

11.9.4 set-default-initial-contour-level-for-difference-map

— function: set-default-initial-contour-level-for-difference-map n_sigma

Where n_sigma is a number

set the default inital contour for FoFc-style map

in sigma

Next: , Previous: set-default-initial-contour-level-for-difference-map, Up: Interface Preferences

11.9.5 print-view-matrix

— function: print-view-matrix

print the view matrix to the console, useful for molscript, perhaps

Next: , Previous: print-view-matrix, Up: Interface Preferences

11.9.6 get-view-quaternion-internal

— function: get-view-quaternion-internal element

Where element is an integer number

internal function to get an element of the view quaternion. The whole quaternion is returned by the scheme function view-quaternion

Next: , Previous: get-view-quaternion-internal, Up: Interface Preferences

11.9.7 set-view-quaternion

— function: set-view-quaternion i j k l


Set the view quaternion.

Next: , Previous: set-view-quaternion, Up: Interface Preferences

11.9.8 apply-ncs-to-view-orientation

— function: apply-ncs-to-view-orientation imol current_chain next_ncs_chain


Given that we are in chain current_chain, apply the NCS operator that maps current_chain on to next_ncs_chain, so that the relative view is preserved. For NCS skipping.

Next: , Previous: apply-ncs-to-view-orientation, Up: Interface Preferences

11.9.9 apply-ncs-to-view-orientation-and-screen-centre

— function: apply-ncs-to-view-orientation-and-screen-centre imol current_chain next_ncs_chain forward_flag


as above, but shift the screen centre also.

Next: , Previous: apply-ncs-to-view-orientation-and-screen-centre, Up: Interface Preferences

11.9.10 set-show-origin-marker

— function: set-show-origin-marker istate

Where istate is an integer number

set a flag: is the origin marker to be shown? 1 for yes, 0 for no.

Next: , Previous: set-show-origin-marker, Up: Interface Preferences

11.9.11 show-origin-marker-state

— function: show-origin-marker-state

return the origin marker shown? state

Next: , Previous: show-origin-marker-state, Up: Interface Preferences

11.9.12 hide-modelling-toolbar

— function: hide-modelling-toolbar

hide the vertical modelling toolbar in the GTK2 version

Next: , Previous: hide-modelling-toolbar, Up: Interface Preferences

11.9.13 show-modelling-toolbar

— function: show-modelling-toolbar

show the vertical modelling toolbar in the GTK2 version (the toolbar is shown by default)

Next: , Previous: show-modelling-toolbar, Up: Interface Preferences

11.9.14 hide-main-toolbar

— function: hide-main-toolbar

hide the horizontal main toolbar in the GTK2 version

Next: , Previous: hide-main-toolbar, Up: Interface Preferences

11.9.15 show-main-toolbar

— function: show-main-toolbar

show the horizontal main toolbar in the GTK2 version (the toolbar is shown by default)

Next: , Previous: show-main-toolbar, Up: Interface Preferences

11.9.16 show-model-toolbar-all-icons

— function: show-model-toolbar-all-icons

show all available icons in the modelling toolbar (same as MFR dialog)

Next: , Previous: show-model-toolbar-all-icons, Up: Interface Preferences

11.9.17 show-model-toolbar-main-icons

— function: show-model-toolbar-main-icons

show only a selection of icons in the modelling toolbar

Next: , Previous: show-model-toolbar-main-icons, Up: Interface Preferences

11.9.18 reattach-modelling-toolbar

— function: reattach-modelling-toolbar

reattach the modelling toolbar to the last attached position

Next: , Previous: reattach-modelling-toolbar, Up: Interface Preferences

11.9.19 set-model-toolbar-docked-position

— function: set-model-toolbar-docked-position state

Where state is an integer number

to swap sides of the Model/Fit/Refine toolbar 0 (default) is right, 1 is left, 2 is top, 3 is bottom

Next: , Previous: set-model-toolbar-docked-position, Up: Interface Preferences

11.9.20 suck-model-fit-dialog

— function: suck-model-fit-dialog

reparent the Model/Fit/Refine dialog so that it becomes part of the main window, next to the GL graphics context

Previous: suck-model-fit-dialog, Up: Interface Preferences

11.9.21 add-status-bar-text

— function: add-status-bar-text s

Where s is a string

Put text s into the status bar.

use this to put info for the user in the statusbar (less intrusive than popup).

Next: , Previous: Interface Preferences, Up: Scripting Functions

11.10 Mouse Buttons

Next: , Up: Mouse Buttons

11.10.1 set-control-key-for-rotate

— function: set-control-key-for-rotate state

Where state is an integer number

Alternate mode for rotation.

Prefered by some, including Dirk Kostrewa. I don't think this mode works properly yet

Next: , Previous: set-control-key-for-rotate, Up: Mouse Buttons

11.10.2 control-key-for-rotate-state

— function: control-key-for-rotate-state

return the control key rotate state

Previous: control-key-for-rotate-state, Up: Mouse Buttons

11.10.3 blob-under-pointer-to-screen-centre

— function: blob-under-pointer-to-screen-centre

Put the blob under the cursor to the screen centre. Check only positive blobs. Useful function if bound to a key.

The refinement map must be set. (We can't check all maps because they are not (or may not be) on the same scale).

Returns: 1 if successfully found a blob and moved there. return 0 if no move.

Next: , Previous: Mouse Buttons, Up: Scripting Functions

11.11 Cursor Function

Up: Cursor Function

11.11.1 set-pick-cursor-index

— function: set-pick-cursor-index icursor_index

Where icursor_index is an integer number

let the user have a different pick cursor

sometimes (the default) GDK_CROSSHAIR is hard to see, let the user set their own

Next: , Previous: Cursor Function, Up: Scripting Functions

11.12 Model/Fit/Refine Functions

Next: , Up: Model/Fit/Refine Functions

11.12.1 post-model-fit-refine-dialog

— function: post-model-fit-refine-dialog

display the Model/Fit/Refine dialog

Next: , Previous: post-model-fit-refine-dialog, Up: Model/Fit/Refine Functions

11.12.2 show-select-map-dialog

— function: show-select-map-dialog

display the Display Manager dialog

Next: , Previous: show-select-map-dialog, Up: Model/Fit/Refine Functions

11.12.3 set-model-fit-refine-rotate-translate-zone-label

— function: set-model-fit-refine-rotate-translate-zone-label txt

Where txt is a string

Allow the changing of Model/Fit/Refine button label from "Rotate/Translate Zone".

Next: , Previous: set-model-fit-refine-rotate-translate-zone-label, Up: Model/Fit/Refine Functions

11.12.4 set-model-fit-refine-place-atom-at-pointer-label

— function: set-model-fit-refine-place-atom-at-pointer-label txt

Where txt is a string

Allow the changing of Model/Fit/Refine button label from "Place Atom at Pointer".

Next: , Previous: set-model-fit-refine-place-atom-at-pointer-label, Up: Model/Fit/Refine Functions

11.12.5 post-other-modelling-tools-dialog

— function: post-other-modelling-tools-dialog

display the Other Modelling Tools dialog

Next: , Previous: post-other-modelling-tools-dialog, Up: Model/Fit/Refine Functions

11.12.6 set-refinement-move-atoms-with-zero-occupancy

— function: set-refinement-move-atoms-with-zero-occupancy state

Where state is an integer number

shall atoms with zero occupancy be moved when refining? (default 1, yes)

Previous: set-refinement-move-atoms-with-zero-occupancy, Up: Model/Fit/Refine Functions

11.12.7 refinement-move-atoms-with-zero-occupancy-state

— function: refinement-move-atoms-with-zero-occupancy-state

return the state of "shall atoms with zero occupancy be moved when refining?"

Next: , Previous: Model/Fit/Refine Functions, Up: Scripting Functions

11.13 Backup Functions

Next: , Up: Backup Functions

11.13.1 make-backup

— function: make-backup imol

Where imol is an integer number

make backup for molecule number imol

Next: , Previous: make-backup, Up: Backup Functions

11.13.2 turn-off-backup

— function: turn-off-backup imol

Where imol is an integer number

turn off backups for molecule number imol

Next: , Previous: turn-off-backup, Up: Backup Functions

11.13.3 turn-on-backup

— function: turn-on-backup imol

Where imol is an integer number

turn on backups for molecule number imol

Next: , Previous: turn-on-backup, Up: Backup Functions

11.13.4 backup-state

— function: backup-state imol

Where imol is an integer number

return the backup state for molecule number imol

return 0 for backups off, 1 for backups on, -1 for unknown

Next: , Previous: backup-state, Up: Backup Functions

11.13.5 set-have-unsaved-changes

— function: set-have-unsaved-changes imol

Where imol is an integer number

set the molecule number imol to be marked as having unsaved changes

Next: , Previous: set-have-unsaved-changes, Up: Backup Functions

11.13.6 have-unsaved-changes-p

— function: have-unsaved-changes-p imol

Where imol is an integer number

does molecule number imol have unsaved changes?

Returns: -1 on bad imol, 0 on no unsaved changes, 1 on has unsaved changes

Next: , Previous: have-unsaved-changes-p, Up: Backup Functions

11.13.7 set-undo-molecule

— function: set-undo-molecule imol

Where imol is an integer number

set the molecule to which undo operations are done to molecule number imol

Next: , Previous: set-undo-molecule, Up: Backup Functions

11.13.8 show-set-undo-molecule-chooser

— function: show-set-undo-molecule-chooser

show the Undo Molecule chooser - i.e. choose the molecule to which the "Undo" button applies.

Next: , Previous: show-set-undo-molecule-chooser, Up: Backup Functions

11.13.9 set-unpathed-backup-file-names

— function: set-unpathed-backup-file-names state

Where state is an integer number

set the state for adding paths to backup file names

by default directories names are added into the filename for backup (with / to _ mapping). call this with state=1 to turn off directory names

Next: , Previous: set-unpathed-backup-file-names, Up: Backup Functions

11.13.10 unpathed-backup-file-names-state

— function: unpathed-backup-file-names-state

return the state for adding paths to backup file names

Next: , Previous: unpathed-backup-file-names-state, Up: Backup Functions

11.13.11 backup-compress-files-state

— function: backup-compress-files-state

return the state for compression of backup files

Previous: backup-compress-files-state, Up: Backup Functions

11.13.12 set-backup-compress-files

— function: set-backup-compress-files state

Where state is an integer number

set if backup files will be compressed or not using gzip

Next: , Previous: Backup Functions, Up: Scripting Functions

11.14 Recover Session Function

Up: Recover Session Function

11.14.1 recover-session

— function: recover-session

recover session

After a crash, we provide this convenient interface to restore the session. It runs through all the molecules with models and looks at the coot backup directory looking for related backup files that are more recent that the read file. (Not very good, because you need to remember which files you read in before the crash - should be improved.)

Next: , Previous: Recover Session Function, Up: Scripting Functions

11.15 Map Functions

Next: , Up: Map Functions

11.15.1 calc-phases-generic

— function: calc-phases-generic mtz_file_name

Where mtz_file_name is a string

fire up a GUI, which asks us which model molecule we want to calc phases from. On "OK" button there, we call map_from_mtz_by_refmac_calc_phases()

Next: , Previous: calc-phases-generic, Up: Map Functions

11.15.2 map-from-mtz-by-refmac-calc-phases

— function: map-from-mtz-by-refmac-calc-phases mtz_file_name f_col sigf_col imol_coords


Calculate SFs (using refmac optionally) from an MTZ file and generate a map. Get F and SIGF automatically (first of their type) from the mtz file.

Returns: the new molecule number, -1 on a problem.

Next: , Previous: map-from-mtz-by-refmac-calc-phases, Up: Map Functions

11.15.3 map-from-mtz-by-calc-phases

— function: map-from-mtz-by-calc-phases mtz_file_name f_col sigf_col imol_coords


Calculate SFs from an MTZ file and generate a map.

Returns: the new molecule number.

Next: , Previous: map-from-mtz-by-calc-phases, Up: Map Functions

11.15.4 set-scroll-wheel-map

— function: set-scroll-wheel-map imap

Where imap is an integer number

set the map that is moved by changing the scroll wheel and change_contour_level().

Next: , Previous: set-scroll-wheel-map, Up: Map Functions

11.15.5 set-scrollable-map

— function: set-scrollable-map imol

Where imol is an integer number

return the molecule number to which the mouse scroll wheel is attached

set the map that has its contour level changed by the scrolling the mouse wheel to molecule number imol (same as


Next: , Previous: set-scrollable-map, Up: Map Functions

11.15.6 scroll-wheel-map

— function: scroll-wheel-map

the contouring of which map is altered when the scroll wheel changes?

Next: , Previous: scroll-wheel-map, Up: Map Functions

11.15.7 save-previous-map-colour

— function: save-previous-map-colour imol

Where imol is an integer number

save previous colour map for molecule number imol

Next: , Previous: save-previous-map-colour, Up: Map Functions

11.15.8 restore-previous-map-colour

— function: restore-previous-map-colour imol

Where imol is an integer number

restore previous colour map for molecule number imol

Next: , Previous: restore-previous-map-colour, Up: Map Functions

11.15.9 set-active-map-drag-flag

— function: set-active-map-drag-flag t

Where t is an integer number

set the state of immediate map upate on map drag.

By default, it is on (t=1). On slower computers it might be better to set t=0.

Next: , Previous: set-active-map-drag-flag, Up: Map Functions

11.15.10 get-active-map-drag-flag

— function: get-active-map-drag-flag

return the state of the dragged map flag

Next: , Previous: get-active-map-drag-flag, Up: Map Functions

11.15.11 set-last-map-colour

— function: set-last-map-colour f1 f2 f3


set the colour of the last (highest molecule number) map

Next: , Previous: set-last-map-colour, Up: Map Functions

11.15.12 set-map-colour

— function: set-map-colour imol red green blue


set the colour of the imolth map

Next: , Previous: set-map-colour, Up: Map Functions

11.15.13 set-last-map-sigma-step

— function: set-last-map-sigma-step f

Where f is a number

set the sigma step of the last map to f sigma

Next: , Previous: set-last-map-sigma-step, Up: Map Functions

11.15.14 set-contour-by-sigma-step-by-mol

— function: set-contour-by-sigma-step-by-mol f state imol


set the contour level step

set the contour level step of molecule number imol to f and variable state (setting state to 0 turns off contouring by sigma level)

Next: , Previous: set-contour-by-sigma-step-by-mol, Up: Map Functions

11.15.15 data-resolution

— function: data-resolution imol

Where imol is an integer number

return the resolution of the data for molecule number imol. Return negative number on error, otherwise resolution in A (eg. 2.0)

Next: , Previous: data-resolution, Up: Map Functions

11.15.16 model-resolution

— function: model-resolution imol

Where imol is an integer number

return the resolution set in the header of the model/coordinates file. If this number is not available, return a number less than 0.

Next: , Previous: model-resolution, Up: Map Functions

11.15.17 export-map

— function: export-map imol filename


export (write to disk) the map of molecule number imol to filename.

Return 0 on failure, 1 on success.

Next: , Previous: export-map, Up: Map Functions

11.15.18 export-map-fragment

— function: export-map-fragment imol x y z radius filename


export a fragment of the map about (x,y,z)

Previous: export-map-fragment, Up: Map Functions

11.15.19 difference-map

— function: difference-map imol1 imol2 map_scale


make a difference map, taking map_scale * imap2 from imap1, on the grid of imap1. Return the new molecule number. Return -1 on failure.

Next: , Previous: Map Functions, Up: Scripting Functions

11.16 Density Increment

Next: , Up: Density Increment

11.16.1 set-iso-level-increment

— function: set-iso-level-increment val

Where val is a number

set the contour scroll step (in absolute e/A3) for 2Fo-Fc-style maps to val

The is only activated when scrolling by sigma is turned off

Next: , Previous: set-iso-level-increment, Up: Density Increment

11.16.2 set-diff-map-iso-level-increment

— function: set-diff-map-iso-level-increment val

Where val is a number

set the contour scroll step for difference map (in absolute e/A3) to val

The is only activated when scrolling by sigma is turned off

Next: , Previous: set-diff-map-iso-level-increment, Up: Density Increment

11.16.3 set-map-sampling-rate

— function: set-map-sampling-rate r

Where r is a number

set the map sampling rate (default 1.5)

Set to something like 2.0 or 2.5 for more finely sampled maps. Useful for baton-building low resolution maps.

Next: , Previous: set-map-sampling-rate, Up: Density Increment

11.16.4 get-map-sampling-rate

— function: get-map-sampling-rate

return the map sampling rate

Next: , Previous: get-map-sampling-rate, Up: Density Increment

11.16.5 change-contour-level

— function: change-contour-level is_increment

Where is_increment is an integer number

change the contour level of the current map by a step

if is_increment=1 the contour level is increased. If is_increment=0 the map contour level is decreased.

Next: , Previous: change-contour-level, Up: Density Increment

11.16.6 set-last-map-contour-level

— function: set-last-map-contour-level level

Where level is a number

set the contour level of the map with the highest molecule number to level

Next: , Previous: set-last-map-contour-level, Up: Density Increment

11.16.7 set-last-map-contour-level-by-sigma

— function: set-last-map-contour-level-by-sigma n_sigma

Where n_sigma is a number

set the contour level of the map with the highest molecule number to n_sigma sigma

Next: , Previous: set-last-map-contour-level-by-sigma, Up: Density Increment

11.16.8 set-stop-scroll-diff-map

— function: set-stop-scroll-diff-map i

Where i is an integer number

create a lower limit to the "Fo-Fc-style" map contour level changing

(default 1 on)

Next: , Previous: set-stop-scroll-diff-map, Up: Density Increment

11.16.9 set-stop-scroll-iso-map

— function: set-stop-scroll-iso-map i

Where i is an integer number

create a lower limit to the "2Fo-Fc-style" map contour level changing

(default 1 on)

Next: , Previous: set-stop-scroll-iso-map, Up: Density Increment

11.16.10 set-stop-scroll-iso-map-level

— function: set-stop-scroll-iso-map-level f

Where f is a number

set the actual map level changing limit

(default 0.0)

Next: , Previous: set-stop-scroll-iso-map-level, Up: Density Increment

11.16.11 set-stop-scroll-diff-map-level

— function: set-stop-scroll-diff-map-level f

Where f is a number

set the actual difference map level changing limit

(default 0.0)

Previous: set-stop-scroll-diff-map-level, Up: Density Increment

11.16.12 set-residue-density-fit-scale-factor

— function: set-residue-density-fit-scale-factor f

Where f is a number

set the scale factor for the Residue Density fit analysis

Next: , Previous: Density Increment, Up: Scripting Functions

11.17 Density Functions

Next: , Up: Density Functions

11.17.1 set-map-line-width

— function: set-map-line-width w

Where w is an integer number

draw the lines of the chickenwire density in width w

Next: , Previous: set-map-line-width, Up: Density Functions

11.17.2 map-line-width-state

— function: map-line-width-state

return the width in which density contours are drawn

Next: , Previous: map-line-width-state, Up: Density Functions

11.17.3 make-and-draw-map

— function: make-and-draw-map mtz_file_name f_col phi_col weight use_weights is_diff_map


make a map from an mtz file (simple interface)

given mtz file mtz_file_name and F column f_col and phases column phi_col and optional weight column weight_col (pass use_weights=0 if weights are not to be used). Also mark the map as a difference map (is_diff_map=1) or not (is_diff_map=0) because they are handled differently inside coot.

Returns: -1 on error, else return the new molecule number

Next: , Previous: make-and-draw-map, Up: Density Functions

11.17.4 make-and-draw-map-with-refmac-params

— function: make-and-draw-map-with-refmac-params mtz_file_name a b weight use_weights is_diff_map have_refmac_params fobs_col sigfobs_col r_free_col sensible_f_free_col


as the above function, execpt set refmac parameters too

pass along the refmac column labels for storage (not used in the creation of the map)

Returns: -1 on error, else return imol

Next: , Previous: make-and-draw-map-with-refmac-params, Up: Density Functions

11.17.5 make-and-draw-map-with-reso-with-refmac-params

— function: make-and-draw-map-with-reso-with-refmac-params mtz_file_name a b weight use_weights is_diff_map have_refmac_params fobs_col sigfobs_col r_free_col sensible_f_free_col is_anomalous use_reso_limits low_reso_limit high_reso_lim


as the above function, except set expert options too.

Next: , Previous: make-and-draw-map-with-reso-with-refmac-params, Up: Density Functions

11.17.6 valid-labels

— function: valid-labels mtz_file_name f_col phi_col weight_col use_weights


does the mtz file have the columms that we want it to have?

Next: , Previous: valid-labels, Up: Density Functions

11.17.7 auto-read-make-and-draw-maps

— function: auto-read-make-and-draw-maps filename

Where filename is a string

read MTZ file filename and from it try to make maps

Useful for reading the output of refmac. The default labels (FWT/PHWT and DELFWT/PHDELFWT) can be changed using ...[something]

Returns: the molecule number for the new map

Next: , Previous: auto-read-make-and-draw-maps, Up: Density Functions

11.17.8 set-auto-read-do-difference-map-too

— function: set-auto-read-do-difference-map-too i

Where i is an integer number

set the flag to do a difference map (too) on auto-read MTZ

Next: , Previous: set-auto-read-do-difference-map-too, Up: Density Functions

11.17.9 auto-read-do-difference-map-too-state

— function: auto-read-do-difference-map-too-state

return the flag to do a difference map (too) on auto-read MTZ

Returns: 0 means no, 1 means yes.

Next: , Previous: auto-read-do-difference-map-too-state, Up: Density Functions

11.17.10 set-auto-read-column-labels

— function: set-auto-read-column-labels fwt phwt is_for_diff_map_flag


set the expected MTZ columns for Auto-reading MTZ file.

Not every program uses the default refmac labels ("FWT"/"PHWT") for its MTZ file. Here we can tell coot to expect other labels so that coot can "Auto-open" such MTZ files.

e.g. (set-auto-read-column-labels "2FOFCWT" "PH2FOFCWT" 0)

Next: , Previous: set-auto-read-column-labels, Up: Density Functions

11.17.11 set-map-radius

— function: set-map-radius f

Where f is a number

set the extent of the box/radius of electron density contours

Next: , Previous: set-map-radius, Up: Density Functions

11.17.12 set-density-size

— function: set-density-size f

Where f is a number

another (old) way of setting the radius of the map

Next: , Previous: set-density-size, Up: Density Functions

11.17.13 set-display-intro-string

— function: set-display-intro-string str

Where str is a string

Give me this nice message str when I start coot.

Next: , Previous: set-display-intro-string, Up: Density Functions

11.17.14 get-map-radius

— function: get-map-radius

return the extent of the box/radius of electron density contours

Next: , Previous: get-map-radius, Up: Density Functions

11.17.15 set-esoteric-depth-cue

— function: set-esoteric-depth-cue istate

Where istate is an integer number

not everone likes coot's esoteric depth cueing system

Pass an argument istate=1 to turn it off

(this function is currently disabled).

Next: , Previous: set-esoteric-depth-cue, Up: Density Functions

11.17.16 esoteric-depth-cue-state

— function: esoteric-depth-cue-state

native depth cueing system

return the state of the esoteric depth cueing flag

Next: , Previous: esoteric-depth-cue-state, Up: Density Functions

11.17.17 set-swap-difference-map-colours

— function: set-swap-difference-map-colours i

Where i is an integer number

not everone lies coot's default difference map colouring.

Pass an argument i=1 to swap the difference map colouring so that red is positve and green is negative.

Next: , Previous: set-swap-difference-map-colours, Up: Density Functions

11.17.18 set-map-is-difference-map

— function: set-map-is-difference-map imol

Where imol is an integer number

post-hoc set the map of molecule number imol to be a difference map

Returns: success status, 0 -> failure (imol does not have a map)

Next: , Previous: set-map-is-difference-map, Up: Density Functions

11.17.19 another-level

— function: another-level

Add another contour level for the last added map.

Currently, the map must have been generated from an MTZ file.

Returns: the molecule number of the new molecule or -1 on failure

Next: , Previous: another-level, Up: Density Functions

11.17.20 another-level-from-map-molecule-number

— function: another-level-from-map-molecule-number imap

Where imap is an integer number

Add another contour level for the given map.

Currently, the map must have been generated from an MTZ file.

Returns: the molecule number of the new molecule or -1 on failure

Next: , Previous: another-level-from-map-molecule-number, Up: Density Functions

11.17.21 residue-density-fit-scale-factor

— function: residue-density-fit-scale-factor

return the scale factor for the Residue Density fit analysis

Previous: residue-density-fit-scale-factor, Up: Density Functions

11.17.22 density-at-point

— function: density-at-point imol x y z


return the density at the given point for the given map. Return 0 for bad imol

Next: , Previous: Density Functions, Up: Scripting Functions

11.18 Parameters from map

Next: , Up: Parameters from map

11.18.1 mtz-hklin-for-map

— function: mtz-hklin-for-map imol_map

Where imol_map is an integer number

return the mtz file that was use to generate the map

return 0 when there is no mtz file associated with that map (it was generated from a CCP4 map file say).

Next: , Previous: mtz-hklin-for-map, Up: Parameters from map

11.18.2 mtz-fp-for-map

— function: mtz-fp-for-map imol_map

Where imol_map is an integer number

return the FP column in the file that was use to generate the map

return 0 when there is no mtz file associated with that map (it was generated from a CCP4 map file say).

Next: , Previous: mtz-fp-for-map, Up: Parameters from map

11.18.3 mtz-phi-for-map

— function: mtz-phi-for-map imol_map

Where imol_map is an integer number

return the phases column in mtz file that was use to generate the map

return 0 when there is no mtz file associated with that map (it was generated from a CCP4 map file say).

Next: , Previous: mtz-phi-for-map, Up: Parameters from map

11.18.4 mtz-weight-for-map

— function: mtz-weight-for-map imol_map

Where imol_map is an integer number

return the weight column in the mtz file that was use to generate the map

return 0 when there is no mtz file associated with that map (it was generated from a CCP4 map file say) or no weights were used.

Previous: mtz-weight-for-map, Up: Parameters from map

11.18.5 mtz-use-weight-for-map

— function: mtz-use-weight-for-map imol_map

Where imol_map is an integer number

return flag for whether weights were used that was use to generate the map

return 0 when no weights were used or there is no mtz file associated with that map.

Next: , Previous: Parameters from map, Up: Scripting Functions

11.19 PDB Functions

Next: , Up: PDB Functions

11.19.1 write-pdb-file

— function: write-pdb-file imol file_name


write molecule number imol as a PDB to file file_name

Next: , Previous: write-pdb-file, Up: PDB Functions

11.19.2 write-residue-range-to-pdb-file

— function: write-residue-range-to-pdb-file imol chainid resno_start resno_end filename


write molecule number imol's residue range as a PDB to file file_name

Previous: write-residue-range-to-pdb-file, Up: PDB Functions

11.19.3 quick-save

— function: quick-save

save all modified coordinates molecules to the default names and save the state too.

Next: , Previous: PDB Functions, Up: Scripting Functions

11.20 Refmac Functions

Next: , Up: Refmac Functions

11.20.1 set-refmac-counter

— function: set-refmac-counter imol refmac_count


set counter for runs of refmac so that this can be used to construct a unique filename for new output

Next: , Previous: set-refmac-counter, Up: Refmac Functions

11.20.2 refmac-name

— function: refmac-name imol

Where imol is an integer number

the name for refmac

Returns: a stub name used in the construction of filename for refmac output

Next: , Previous: refmac-name, Up: Refmac Functions

11.20.3 swap-map-colours

— function: swap-map-colours imol1 imol2


swap the colours of maps

swap the colour of maps imol1 and imol2. Useful to some after running refmac, so that the map to be build into is always the same colour

Next: , Previous: swap-map-colours, Up: Refmac Functions

11.20.4 set-keep-map-colour-after-refmac

— function: set-keep-map-colour-after-refmac istate

Where istate is an integer number

flag to enable above

call this with istate=1

Previous: set-keep-map-colour-after-refmac, Up: Refmac Functions

11.20.5 keep-map-colour-after-refmac-state

— function: keep-map-colour-after-refmac-state

the keep-map-colour-after-refmac internal state

Returns: 1 for "yes", 0 for "no"

Next: , Previous: Refmac Functions, Up: Scripting Functions

11.21 Symmetry Functions

Next: , Up: Symmetry Functions

11.21.1 set-symmetry-size

— function: set-symmetry-size f

Where f is a number

set the size of the displayed symmetry

Next: , Previous: set-symmetry-size, Up: Symmetry Functions

11.21.2 get-show-symmetry

— function: get-show-symmetry

is symmetry master display control on?

Next: , Previous: get-show-symmetry, Up: Symmetry Functions

11.21.3 set-show-symmetry-master

— function: set-show-symmetry-master state

Where state is an integer number

set display symmetry, master controller

Next: , Previous: set-show-symmetry-master, Up: Symmetry Functions

11.21.4 set-show-symmetry-molecule

— function: set-show-symmetry-molecule mol_no state


set display symmetry for molecule number mol_no

pass with state=0 for off, state=1 for on

Next: , Previous: set-show-symmetry-molecule, Up: Symmetry Functions

11.21.5 symmetry-as-calphas

— function: symmetry-as-calphas mol_no state


display symmetry as CAs?

pass with state=0 for off, state=1 for on

Next: , Previous: symmetry-as-calphas, Up: Symmetry Functions

11.21.6 get-symmetry-as-calphas-state

— function: get-symmetry-as-calphas-state imol

Where imol is an integer number

what is state of display CAs for molecule number mol_no?

return state=0 for off, state=1 for on

Next: , Previous: get-symmetry-as-calphas-state, Up: Symmetry Functions

11.21.7 set-symmetry-molecule-rotate-colour-map

— function: set-symmetry-molecule-rotate-colour-map imol state


set the colour map rotation (i.e. the hue) for the symmetry atoms of molecule number imol

Next: , Previous: set-symmetry-molecule-rotate-colour-map, Up: Symmetry Functions

11.21.8 symmetry-molecule-rotate-colour-map-state

— function: symmetry-molecule-rotate-colour-map-state imol

Where imol is an integer number

should there be colour map rotation (i.e. the hue) change for the symmetry atoms of molecule number imol?

return state=0 for off, state=1 for on

Next: , Previous: symmetry-molecule-rotate-colour-map-state, Up: Symmetry Functions

11.21.9 has-unit-cell-state

— function: has-unit-cell-state imol

Where imol is an integer number

molecule number imol has a unit cell?

Returns: 1 on "yes, it has a cell", 0 for "no"

Next: , Previous: has-unit-cell-state, Up: Symmetry Functions

11.21.10 undo-symmetry-view

— function: undo-symmetry-view

Undo symmetry view. Translate back to main molecule from this symmetry position.

Next: , Previous: undo-symmetry-view, Up: Symmetry Functions

11.21.11 first-molecule-with-symmetry-displayed

— function: first-molecule-with-symmetry-displayed

return the molecule number.

Returns: -1 if there is no molecule with symmetry displayed.

Next: , Previous: first-molecule-with-symmetry-displayed, Up: Symmetry Functions

11.21.12 save-symmetry-coords

— function: save-symmetry-coords imol filename symop_no shift_a shift_b shift_c pre_shift_to_origin_na pre_shift_to_origin_nb pre_shift_to_origin_nc


save the symmetry coordinates of molecule number imol to filename

Allow a shift of the coordinates to the origin before symmetry expansion is apllied (this is how symmetry works in Coot internals).

Next: , Previous: save-symmetry-coords, Up: Symmetry Functions

11.21.13 new-molecule-by-symmetry

— function: new-molecule-by-symmetry imol name m11 m12 m13 m21 m22 m23 m31 m32 m33 tx ty tz pre_shift_to_origin_na pre_shift_to_origin_nb pre_shift_to_origin_nc


create a new molecule (molecule number is the return value) from imol.

The rotation/translation matrix components are given in *orthogonal* coordinates.

Allow a shift of the coordinates to the origin before symmetry expansion is aplied.

Pass "" as the name-in and a name will be constructed for you.

Return -1 on failure.

Next: , Previous: new-molecule-by-symmetry, Up: Symmetry Functions

11.21.14 new-molecule-by-symmetry-with-atom-selection

— function: new-molecule-by-symmetry-with-atom-selection imol name mmdb_atom_selection_string m11 m12 m13 m21 m22 m23 m31 m32 m33 tx ty tz pre_shift_to_origin_na pre_shift_to_origin_nb pre_shift_to_origin_nc


create a new molecule (molecule number is the return value) from imol, but only for atom that match the mmdb_atom_selection_string.

The rotation/translation matrix components are given in *orthogonal* coordinates.

Allow a shift of the coordinates to the origin before symmetry expansion is aplied.

Pass "" as the name-in and a name will be constructed for you.

Return -1 on failure.

Next: , Previous: new-molecule-by-symmetry-with-atom-selection, Up: Symmetry Functions

11.21.15 new-molecule-by-symop

— function: new-molecule-by-symop imol symop_string pre_shift_to_origin_na pre_shift_to_origin_nb pre_shift_to_origin_nc


create a new molecule (molecule number is the return value) from imol.

Next: , Previous: new-molecule-by-symop, Up: Symmetry Functions

11.21.16 n-symops

— function: n-symops imol

Where imol is an integer number

return the number of symmetry operators for the given molecule

return -1 on no-symmetry for molecule or inappropriate imol number

Next: , Previous: n-symops, Up: Symmetry Functions

11.21.17 set-space-group

— function: set-space-group imol spg


set the space group for a coordinates molecule

for shelx FA pdb files, there is no space group. So allow the user to set it. This can be initted with a HM symbol or a symm list for clipper. Return the succes status of the setting.

Previous: set-space-group, Up: Symmetry Functions

11.21.18 set-symmetry-shift-search-size

— function: set-symmetry-shift-search-size shift

Where shift is an integer number

set the cell shift search size for symmetry searching.

When the coordinates for one (or some) symmetry operator are missing (which happens sometimes, but rarely), try changing setting this to 2 (default is 1). It slows symmetry searching, which is why it is not set to 2 by default.

Next: , Previous: Symmetry Functions, Up: Scripting Functions

11.22 History Functions

Next: , Up: History Functions

11.22.1 print-all-history-in-scheme

— function: print-all-history-in-scheme

print the history in scheme format

Next: , Previous: print-all-history-in-scheme, Up: History Functions

11.22.2 print-all-history-in-python

— function: print-all-history-in-python

print the history in python format

Next: , Previous: print-all-history-in-python, Up: History Functions

11.22.3 set-console-display-commands-state

— function: set-console-display-commands-state istate

Where istate is an integer number

set a flag to show the text command equivalent of gui commands in the console as they happen.

1 for on, 0 for off.

Previous: set-console-display-commands-state, Up: History Functions

11.22.4 set-console-display-commands-hilights

— function: set-console-display-commands-hilights bold_flag colour_flag colour_index


set a flag to show the text command equivalent of gui commands in the console as they happen in bold and colours.

colour_flag: pass 1 for on, 0 for off.

colour_index 0 to 7 inclusive for various different colourings.

Next: , Previous: History Functions, Up: Scripting Functions

11.23 State Functions

Next: , Up: State Functions

11.23.1 save-state

— function: save-state

save the current state to the default filename

Next: , Previous: save-state, Up: State Functions

11.23.2 save-state-file

— function: save-state-file filename

Where filename is a string

save the current state to file filename

Next: , Previous: save-state-file, Up: State Functions

11.23.3 set-save-state-file-name

— function: set-save-state-file-name filename

Where filename is a string

set the default state file name (default 0-coot.state.scm)

Next: , Previous: set-save-state-file-name, Up: State Functions

11.23.4 set-run-state-file-status

— function: set-run-state-file-status istat

Where istat is an integer number

set run state file status

0: never run it 1: ask to run it 2: run it, no questions

Next: , Previous: set-run-state-file-status, Up: State Functions

11.23.5 run-state-file

— function: run-state-file

run the state file (reading from default filenname)

Previous: run-state-file, Up: State Functions

11.23.6 run-state-file-maybe

— function: run-state-file-maybe

run the state file depending on the state variables

Next: , Previous: State Functions, Up: Scripting Functions

11.24 Unit Cell interface

Next: , Up: Unit Cell interface

11.24.1 get-show-unit-cell

— function: get-show-unit-cell imol

Where imol is an integer number

return the stage of show unit cell for molecule number imol

Next: , Previous: get-show-unit-cell, Up: Unit Cell interface

11.24.2 set-show-unit-cells-all

— function: set-show-unit-cells-all istate

Where istate is an integer number

set the state of show unit cell for all molecules

1 for displayed 0 for undisplayed

Previous: set-show-unit-cells-all, Up: Unit Cell interface

11.24.3 set-show-unit-cell

— function: set-show-unit-cell imol istate


set the state of show unit cell for the particular molecule number imol

1 for displayed 0 for undisplayed

Next: , Previous: Unit Cell interface, Up: Scripting Functions

11.25 Colour

Next: , Up: Colour

11.25.1 set-colour-map-rotation-on-read-pdb

— function: set-colour-map-rotation-on-read-pdb f

Where f is a number

set the hue change step on reading a new molecule

Next: , Previous: set-colour-map-rotation-on-read-pdb, Up: Colour

11.25.2 set-colour-map-rotation-on-read-pdb-flag

— function: set-colour-map-rotation-on-read-pdb-flag i

Where i is an integer number

shall the hue change step be used?

Next: , Previous: set-colour-map-rotation-on-read-pdb-flag, Up: Colour

11.25.3 set-colour-map-rotation-on-read-pdb-c-only-flag

— function: set-colour-map-rotation-on-read-pdb-c-only-flag i

Where i is an integer number

shall the colour map rotation apply only to C atoms?

Next: , Previous: set-colour-map-rotation-on-read-pdb-c-only-flag, Up: Colour

11.25.4 set-colour-by-chain

— function: set-colour-by-chain imol

Where imol is an integer number

colour molecule number imol by chain type

Next: , Previous: set-colour-by-chain, Up: Colour

11.25.5 set-colour-by-molecule

— function: set-colour-by-molecule imol

Where imol is an integer number

colour molecule number imol by molecule

Previous: set-colour-by-molecule, Up: Colour

11.25.6 set-symmetry-colour

— function: set-symmetry-colour r g b


set the symmetry colour base

Next: , Previous: Colour, Up: Scripting Functions

11.26 Map colour

Next: , Up: Map colour

11.26.1 set-colour-map-rotation-for-map

— function: set-colour-map-rotation-for-map f

Where f is a number

set the colour map rotation (hue change) for maps

default: for maps is 14 degrees.

Next: , Previous: set-colour-map-rotation-for-map, Up: Map colour

11.26.2 set-molecule-bonds-colour-map-rotation

— function: set-molecule-bonds-colour-map-rotation imol theta


set the colour map rotation for molecule number imol

theta is in degrees

Previous: set-molecule-bonds-colour-map-rotation, Up: Map colour

11.26.3 get-molecule-bonds-colour-map-rotation

— function: get-molecule-bonds-colour-map-rotation imol

Where imol is an integer number

Get the colour map rotation for molecule number imol.

Next: , Previous: Map colour, Up: Scripting Functions

11.27 Display Functions

Next: , Up: Display Functions

11.27.1 set-graphics-window-size

— function: set-graphics-window-size x_size y_size


set the window size

Next: , Previous: set-graphics-window-size, Up: Display Functions

11.27.2 set-graphics-window-position

— function: set-graphics-window-position x_pos y_pos


set the window position

Next: , Previous: set-graphics-window-position, Up: Display Functions

11.27.3 graphics-draw

— function: graphics-draw

draw a frame

Next: , Previous: graphics-draw, Up: Display Functions

11.27.4 zalman-stereo-mode

— function: zalman-stereo-mode

try to turn on Zalman stereo mode

Next: , Previous: zalman-stereo-mode, Up: Display Functions

11.27.5 hardware-stereo-mode

— function: hardware-stereo-mode

try to turn on stereo mode

Next: , Previous: hardware-stereo-mode, Up: Display Functions

11.27.6 stereo-mode-state

— function: stereo-mode-state

what is the stero state?

Returns: 1 for in hardware stereo, 2 for side by side stereo, else return 0.

Next: , Previous: stereo-mode-state, Up: Display Functions

11.27.7 mono-mode

— function: mono-mode

try to turn on mono mode

Next: , Previous: mono-mode, Up: Display Functions

11.27.8 side-by-side-stereo-mode

— function: side-by-side-stereo-mode use_wall_eye_mode

Where use_wall_eye_mode is an integer number

turn on side bye side stereo mode

Next: , Previous: side-by-side-stereo-mode, Up: Display Functions

11.27.9 set-hardware-stereo-angle-factor

— function: set-hardware-stereo-angle-factor f

Where f is a number

how much should the eyes be separated in stereo mode?

Next: , Previous: set-hardware-stereo-angle-factor, Up: Display Functions

11.27.10 hardware-stereo-angle-factor-state

— function: hardware-stereo-angle-factor-state

return the hardware stereo angle factor

Next: , Previous: hardware-stereo-angle-factor-state, Up: Display Functions

11.27.11 set-model-fit-refine-dialog-position

— function: set-model-fit-refine-dialog-position x_pos y_pos


set position of Model/Fit/Refine dialog

Next: , Previous: set-model-fit-refine-dialog-position, Up: Display Functions

11.27.12 set-display-control-dialog-position

— function: set-display-control-dialog-position x_pos y_pos


set position of Display Control dialog

Next: , Previous: set-display-control-dialog-position, Up: Display Functions

11.27.13 set-go-to-atom-window-position

— function: set-go-to-atom-window-position x_pos y_pos


set position of Go To Atom dialog

Next: , Previous: set-go-to-atom-window-position, Up: Display Functions

11.27.14 set-delete-dialog-position

— function: set-delete-dialog-position x_pos y_pos


set position of Delete dialog

Next: , Previous: set-delete-dialog-position, Up: Display Functions

11.27.15 set-rotate-translate-dialog-position

— function: set-rotate-translate-dialog-position x_pos y_pos


set position of the Rotate/Translate Residue Range dialog

Next: , Previous: set-rotate-translate-dialog-position, Up: Display Functions

11.27.16 set-accept-reject-dialog-position

— function: set-accept-reject-dialog-position x_pos y_pos


set position of the Accept/Reject dialog

Next: , Previous: set-accept-reject-dialog-position, Up: Display Functions

11.27.17 set-ramachandran-plot-dialog-position

— function: set-ramachandran-plot-dialog-position x_pos y_pos


set position of the Ramachadran Plot dialog

Next: , Previous: set-ramachandran-plot-dialog-position, Up: Display Functions

11.27.18 set-edit-chi-angles-dialog-position

— function: set-edit-chi-angles-dialog-position x_pos y_pos


set edit chi angles dialog position

Previous: set-edit-chi-angles-dialog-position, Up: Display Functions

11.27.19 set-rotamer-selection-dialog-position

— function: set-rotamer-selection-dialog-position x_pos y_pos


set rotamer selection dialog position

Next: , Previous: Display Functions, Up: Scripting Functions

11.28 Smooth Scrolling

Next: , Up: Smooth Scrolling

11.28.1 set-smooth-scroll-flag

— function: set-smooth-scroll-flag v

Where v is an integer number

set smooth scrolling

Next: , Previous: set-smooth-scroll-flag, Up: Smooth Scrolling

11.28.2 get-smooth-scroll

— function: get-smooth-scroll

return the smooth scrolling state

Next: , Previous: get-smooth-scroll, Up: Smooth Scrolling

11.28.3 set-smooth-scroll-steps

— function: set-smooth-scroll-steps i

Where i is an integer number

set the number of steps in the smooth scroll

Set more steps (e.g. 50) for more smoothness (default 10).

Previous: set-smooth-scroll-steps, Up: Smooth Scrolling

11.28.4 set-smooth-scroll-limit

— function: set-smooth-scroll-limit lim

Where lim is a number

do not scroll for distances greater this limit

Next: , Previous: Smooth Scrolling, Up: Scripting Functions

11.29 Font Size

Next: , Up: Font Size

11.29.1 set-font-size

— function: set-font-size i

Where i is an integer number

set the font size

Next: , Previous: set-font-size, Up: Font Size

11.29.2 get-font-size

— function: get-font-size

return the font size

Returns: 1 (small) 2 (medium, default) 3 (large)

Previous: get-font-size, Up: Font Size

11.29.3 set-font-colour

— function: set-font-colour red green blue


set the colour of the atom label font - the arguments are in the range 0->1

Next: , Previous: Font Size, Up: Scripting Functions

11.30 Rotation Centre

Up: Rotation Centre

11.30.1 go-to-ligand

— function: go-to-ligand

centre on the ligand of the "active molecule", if we are already there, centre on the next hetgroup (etc)

Next: , Previous: Rotation Centre, Up: Scripting Functions

11.31 Atom Selection Utilities

Next: , Up: Atom Selection Utilities

11.31.1 clear-pending-picks

— function: clear-pending-picks

clear pending picks (stop coot thinking that the user is about to pick an atom).

Next: , Previous: clear-pending-picks, Up: Atom Selection Utilities

11.31.2 set-default-temperature-factor-for-new-atoms

— function: set-default-temperature-factor-for-new-atoms new_b

Where new_b is a number

set the default temperature factor for newly created atoms (initial default 20)

Next: , Previous: set-default-temperature-factor-for-new-atoms, Up: Atom Selection Utilities

11.31.3 default-new-atoms-b-factor

— function: default-new-atoms-b-factor

return the default temperature factor for newly created atoms

Next: , Previous: default-new-atoms-b-factor, Up: Atom Selection Utilities

11.31.4 set-reset-b-factor-moved-atoms

— function: set-reset-b-factor-moved-atoms state

Where state is an integer number

reset temperature factor for all moved atoms to the default for new atoms (usually 30)

Next: , Previous: set-reset-b-factor-moved-atoms, Up: Atom Selection Utilities

11.31.5 get-reset-b-factor-moved-atoms-state

— function: get-reset-b-factor-moved-atoms-state

return the state if temperature factors shoudl be reset for moved atoms

Next: , Previous: get-reset-b-factor-moved-atoms-state, Up: Atom Selection Utilities

11.31.6 set-atom-attribute

— function: set-atom-attribute imol chain_id resno ins_code atom_name alt_conf attribute_name val


set a numberical attibute to the atom with the given specifier.

Attributes can be "x", "y","z", "B", "occ" and the attribute val is a floating point number

Next: , Previous: set-atom-attribute, Up: Atom Selection Utilities

11.31.7 set-atom-string-attribute

— function: set-atom-string-attribute imol chain_id resno ins_code atom_name alt_conf attribute_name attribute_value


set a string attibute to the atom with the given specifier.

Attributes can be "atom-name", "alt-conf", "element" or "segid".

Previous: set-atom-string-attribute, Up: Atom Selection Utilities

11.31.8 set-residue-name

— function: set-residue-name imol chain_id res_no ins_code new_residue_name


set lots of atom attributes at once by-passing the rebonding and redrawing of the above 2 functions

Next: , Previous: Atom Selection Utilities, Up: Scripting Functions

11.32 Skeletonization Interface

Next: , Up: Skeletonization Interface

11.32.1 skeletonize-map

— function: skeletonize-map prune_flag imol


skeletonize molecule number imol

the prune_flag should almost always be 0.

Next: , Previous: skeletonize-map, Up: Skeletonization Interface

11.32.2 unskeletonize-map

— function: unskeletonize-map imol

Where imol is an integer number

undisplay the skeleton on molecule number imol

Next: , Previous: unskeletonize-map, Up: Skeletonization Interface

11.32.3 set-max-skeleton-search-depth

— function: set-max-skeleton-search-depth v

Where v is an integer number

set the skeleton search depth, used in baton building

For high resolution maps, you need to search deeper down the skeleton tree. This limit needs to be increased to 20 or so for high res maps (it is 10 by default)

Previous: set-max-skeleton-search-depth, Up: Skeletonization Interface

11.32.4 set-skeleton-box-size

— function: set-skeleton-box-size f

Where f is a number

the box size (in Angstroms) for which the skeleton is displayed

Next: , Previous: Skeletonization Interface, Up: Scripting Functions

11.33 Read Maps

Up: Read Maps

11.33.1 handle-read-ccp4-map

— function: handle-read-ccp4-map filename is_diff_map_flag


read a CCP4 map or a CNS map (despite the name).

Next: , Previous: Read Maps, Up: Scripting Functions

11.34 Save Coordinates

Up: Save Coordinates

11.34.1 save-coordinates

— function: save-coordinates imol filename


save coordinates of molecule number imol in filename

Returns: status 1 is good (success), 0 is fail.

Next: , Previous: Save Coordinates, Up: Scripting Functions

11.35 Read Phases File Functions

Next: , Up: Read Phases File Functions

11.35.1 read-phs-and-coords-and-make-map

— function: read-phs-and-coords-and-make-map pdb_filename

Where pdb_filename is a string

read phs file use coords to get cell and symm to make map

uses pending data to make the map.

Next: , Previous: read-phs-and-coords-and-make-map, Up: Read Phases File Functions

11.35.2 read-phs-and-make-map-using-cell-symm-from-previous-mol

— function: read-phs-and-make-map-using-cell-symm-from-previous-mol phs_filename

Where phs_filename is a string

read a phs file, the cell and symm information is from previously read (most recently read) coordinates file

For use with phs data filename provided on the command line

Next: , Previous: read-phs-and-make-map-using-cell-symm-from-previous-mol, Up: Read Phases File Functions

11.35.3 read-phs-and-make-map-using-cell-symm-from-mol

— function: read-phs-and-make-map-using-cell-symm-from-mol phs_filename imol


read phs file and use a previously read molecule to provide the cell and symmetry information

Returns: the new molecule number, return -1 if problem creating the map (e.g. not phs data, file not found etc).

Next: , Previous: read-phs-and-make-map-using-cell-symm-from-mol, Up: Read Phases File Functions

11.35.4 read-phs-and-make-map-using-cell-symm

— function: read-phs-and-make-map-using-cell-symm phs_file_name hm_spacegroup a b c alpha beta gamma


read phs file use coords to use cell and symm to make map

in degrees

Previous: read-phs-and-make-map-using-cell-symm, Up: Read Phases File Functions

11.35.5 read-phs-and-make-map-with-reso-limits

— function: read-phs-and-make-map-with-reso-limits imol phs_file_name reso_lim_low reso_lim_high


read a phs file and use the cell and symm in molecule number imol and use the resolution limits reso_lim_high (in Angstroems).

Next: , Previous: Read Phases File Functions, Up: Scripting Functions

11.36 Graphics Move

Next: , Up: Graphics Move

11.36.1 undo-last-move

— function: undo-last-move

undo last move

Next: , Previous: undo-last-move, Up: Graphics Move

11.36.2 translate-molecule-by

— function: translate-molecule-by imol x y z


translate molecule number imol by (x,y,z) in Angstroms

Previous: translate-molecule-by, Up: Graphics Move

11.36.3 transform-molecule-by

— function: transform-molecule-by imol m11 m12 m13 m21 m22 m23 m31 m32 m33 x y z


transform molecule number imol by the given rotation matrix, then translate by (x,y,z) in Angstroms

Next: , Previous: Graphics Move, Up: Scripting Functions

11.37 Go To Atom Widget Functions

Next: , Up: Go To Atom Widget Functions

11.37.1 post-go-to-atom-window

— function: post-go-to-atom-window

Post the Go To Atom Window.

Next: , Previous: post-go-to-atom-window, Up: Go To Atom Widget Functions

11.37.2 set-go-to-atom-chain-residue-atom-name

— function: set-go-to-atom-chain-residue-atom-name t1_chain_id iresno t3_atom_name


set the go to atom specification

It seems important for swig that the char * arguments are const char *, not const gchar * (or else we get wrong type of argument error on (say) "A"

Returns: the success status of the go to. 0 for fail, 1 for success.

Next: , Previous: set-go-to-atom-chain-residue-atom-name, Up: Go To Atom Widget Functions

11.37.3 update-go-to-atom-from-current-position

— function: update-go-to-atom-from-current-position

update the Go To Atom widget entries to atom closest to screen centre.

Next: , Previous: update-go-to-atom-from-current-position, Up: Go To Atom Widget Functions

11.37.4 atom-spec-to-atom-index

— function: atom-spec-to-atom-index mol chain resno atom_name


what is the atom index of the given atom?

Next: , Previous: atom-spec-to-atom-index, Up: Go To Atom Widget Functions

11.37.5 full-atom-spec-to-atom-index

— function: full-atom-spec-to-atom-index imol chain resno inscode atom_name altloc


what is the atom index of the given atom?

Next: , Previous: full-atom-spec-to-atom-index, Up: Go To Atom Widget Functions

11.37.6 update-go-to-atom-window-on-changed-mol

— function: update-go-to-atom-window-on-changed-mol imol

Where imol is an integer number

update the Go To Atom window

Next: , Previous: update-go-to-atom-window-on-changed-mol, Up: Go To Atom Widget Functions

11.37.7 update-go-to-atom-window-on-new-mol

— function: update-go-to-atom-window-on-new-mol

update the Go To Atom window. This updates the option menu for the molecules.

Previous: update-go-to-atom-window-on-new-mol, Up: Go To Atom Widget Functions

11.37.8 set-go-to-atom-molecule

— function: set-go-to-atom-molecule imol

Where imol is an integer number

set the molecule for the Go To Atom

For dynarama callback sake. The widget/class knows which molecule that it was generated from, so in order to go to the molecule from dynarama, we first need to the the molecule - because

does not mention the molecule (see "Next/Previous Residue" for reasons for that). This function simply calls the graphics_info_t function of the same name.

Also used in scripting, where go-to-atom-chain-residue-atom-name does not mention the molecule number.

20090914-PE set-go-to-atom-molecule can be used in a script and it should change the go-to-atom-molecule in the Go To Atom dialog (if it is being displayed). This does mean, of course that using the ramachandran plot to centre on atoms will change the Go To Atom dialog. Maybe that is surprising (maybe not).

Next: , Previous: Go To Atom Widget Functions, Up: Scripting Functions

11.38 Map and Molecule Control

Next: , Up: Map and Molecule Control

11.38.1 post-display-control-window

— function: post-display-control-window

display the Display Constrol window

Next: , Previous: post-display-control-window, Up: Map and Molecule Control

11.38.2 set-map-displayed

— function: set-map-displayed imol state


make the map displayed/undisplayed, 0 for off, 1 for on

Next: , Previous: set-map-displayed, Up: Map and Molecule Control

11.38.3 set-mol-displayed

— function: set-mol-displayed imol state


make the coordinates molecule displayed/undisplayed, 0 for off, 1 for on

Next: , Previous: set-mol-displayed, Up: Map and Molecule Control

11.38.4 set-mol-active

— function: set-mol-active imol state


make the coordinates molecule active/inactve (clickable), 0 for off, 1 for on

Next: , Previous: set-mol-active, Up: Map and Molecule Control

11.38.5 mol-is-displayed

— function: mol-is-displayed imol

Where imol is an integer number

return the display state of molecule number imol

Returns: 1 for on, 0 for off

Next: , Previous: mol-is-displayed, Up: Map and Molecule Control

11.38.6 mol-is-active

— function: mol-is-active imol

Where imol is an integer number

return the active state of molecule number imol

Returns: 1 for on, 0 for off

Next: , Previous: mol-is-active, Up: Map and Molecule Control

11.38.7 map-is-displayed

— function: map-is-displayed imol

Where imol is an integer number

return the display state of molecule number imol

Returns: 1 for on, 0 for off

Next: , Previous: map-is-displayed, Up: Map and Molecule Control

11.38.8 set-all-maps-displayed

— function: set-all-maps-displayed on_or_off

Where on_or_off is an integer number

if on_or_off is 0 turn off all maps displayed, for other values of on_or_off turn on all maps

Next: , Previous: set-all-maps-displayed, Up: Map and Molecule Control

11.38.9 set-all-models-displayed-and-active

— function: set-all-models-displayed-and-active on_or_off

Where on_or_off is an integer number

if on_or_off is 0 turn off all models displayed and active, for other values of on_or_off turn on all models.

Previous: set-all-models-displayed-and-active, Up: Map and Molecule Control

11.38.10 show-spacegroup

— function: show-spacegroup imol

Where imol is an integer number

return the spacegroup of molecule number imol . Deprecated.

Returns: "No Spacegroup" when the spacegroup of a molecule has not been set.

Next: , Previous: Map and Molecule Control, Up: Scripting Functions

11.39 Align and Mutate

Next: , Up: Align and Mutate

11.39.1 align-and-mutate

— function: align-and-mutate imol chain_id fasta_maybe renumber_residues_flag


aligand and mutate the given chain to the given sequence

Next: , Previous: align-and-mutate, Up: Align and Mutate

11.39.2 set-alignment-gap-and-space-penalty

— function: set-alignment-gap-and-space-penalty wgap wspace


set the penalty for affine gap and space when aligning, defaults -3.0 and -0.4

Previous: set-alignment-gap-and-space-penalty, Up: Align and Mutate

11.39.3 align-to-closest-chain

— function: align-to-closest-chain target_seq match_fraction


align sequence to closest chain (compare across all chains in all molecules).

Typically match_fraction is 0.95 or so.

Return 1 if we were successful, 0 if not.

Next: , Previous: Align and Mutate, Up: Scripting Functions

11.40 Renumber Residue Range

Next: , Up: Renumber Residue Range

11.40.1 renumber-residue-range

— function: renumber-residue-range imol chain_id start_res last_res offset


renumber the given residue range by offset residues

Previous: renumber-residue-range, Up: Renumber Residue Range

11.40.2 change-residue-number

— function: change-residue-number imol chain_id current_resno current_inscode new_resno new_inscode


change chain id, residue number or insertion code for given residue

Next: , Previous: Renumber Residue Range, Up: Scripting Functions

11.41 Scripting Interface

Next: , Up: Scripting Interface

11.41.1 probe-available-p

— function: probe-available-p

Can we run probe (was the executable variable set properly?) (predicate).

Returns: 1 for yes, 2 for no

Next: , Previous: probe-available-p, Up: Scripting Interface

11.41.2 post-scripting-window

— function: post-scripting-window

do nothing - compatibility function

Next: , Previous: post-scripting-window, Up: Scripting Interface

11.41.3 post-scheme-scripting-window

— function: post-scheme-scripting-window

pop-up a scripting window for scheming

Previous: post-scheme-scripting-window, Up: Scripting Interface

11.41.4 post-python-scripting-window

— function: post-python-scripting-window

pop-up a scripting window for pythoning

Next: , Previous: Scripting Interface, Up: Scripting Functions

11.42 Monomer

Next: , Up: Monomer

11.42.1 get-coords-for-accession-code

— function: get-coords-for-accession-code code

Where code is a string

if possible, read in the new coords getting coords via web.

(no return value because get-url-str does not return one).

Next: , Previous: get-coords-for-accession-code, Up: Monomer

11.42.2 get-monomer

— function: get-monomer three_letter_code

Where three_letter_code is a string

import libcheck monomer give the 3-letter code.

Returns: the new molecule number, if not -1 (error).

Previous: get-monomer, Up: Monomer

11.42.3 run-script

— function: run-script filename

Where filename is a string

run script file

Next: , Previous: Monomer, Up: Scripting Functions

11.43 Regularization and Refinement

Next: , Up: Regularization and Refinement

11.43.1 add-planar-peptide-restraints

— function: add-planar-peptide-restraints

add a restraint on peptides to make them planar

This adds a 5 atom restraint that includes both CA atoms of the peptide. Use this rather than editting the mon_lib_list.cif file.

Next: , Previous: add-planar-peptide-restraints, Up: Regularization and Refinement

11.43.2 remove-planar-peptide-restraints

— function: remove-planar-peptide-restraints

remove restraints on peptides to make them planar.

Next: , Previous: remove-planar-peptide-restraints, Up: Regularization and Refinement

11.43.3 add-omega-torsion-restriants

— function: add-omega-torsion-restriants

add restraints on the omega angle of the peptides

(that is the torsion round the peptide bond). Omega angles that are closer to 0 than to 180 will be refined as cis peptides (and of course if omega is greater than 90 then the peptide will be refined as a trans peptide (this is the normal case).

Next: , Previous: add-omega-torsion-restriants, Up: Regularization and Refinement

11.43.4 remove-omega-torsion-restriants

— function: remove-omega-torsion-restriants

remove omega restraints on CIS and TRANS linked residues.

Next: , Previous: remove-omega-torsion-restriants, Up: Regularization and Refinement

11.43.5 set-refinement-immediate-replacement

— function: set-refinement-immediate-replacement istate

Where istate is an integer number

set immediate replacement mode for refinement and regularization. You need this (call with istate=1) if you are scripting refinement/regularization

Next: , Previous: set-refinement-immediate-replacement, Up: Regularization and Refinement

11.43.6 refinement-immediate-replacement-state

— function: refinement-immediate-replacement-state

query the state of the immediate replacement mode

Next: , Previous: refinement-immediate-replacement-state, Up: Regularization and Refinement

11.43.7 set-residue-selection-flash-frames-number

— function: set-residue-selection-flash-frames-number i

Where i is an integer number

set the number of frames for which the selected residue range flashes

On fast computers, this can be set to higher than the default for more aesthetic appeal.

Next: , Previous: set-residue-selection-flash-frames-number, Up: Regularization and Refinement

11.43.8 accept-regularizement

— function: accept-regularizement

accept the new positions of the regularized or refined residues

If you are scripting refinement and/or regularization, this is the function that you need to call after refine-zone or regularize-zone.

Next: , Previous: accept-regularizement, Up: Regularization and Refinement

11.43.9 set-refine-with-torsion-restraints

— function: set-refine-with-torsion-restraints istate

Where istate is an integer number

turn on (or off) torsion restraints

Pass with istate=1 for on, istate=0 for off.

Next: , Previous: set-refine-with-torsion-restraints, Up: Regularization and Refinement

11.43.10 refine-with-torsion-restraints-state

— function: refine-with-torsion-restraints-state

return the state of above

Next: , Previous: refine-with-torsion-restraints-state, Up: Regularization and Refinement

11.43.11 set-matrix

— function: set-matrix f

Where f is a number

set the relative weight of the geometric terms to the map terms

The default is 60.

The higher the number the more weight that is given to the map terms but the resulting chi squared values are higher). This will be needed for maps generated from data not on (or close to) the absolute scale or maps that have been scaled (for example so that the sigma level has been scaled to 1.0).

Next: , Previous: set-matrix, Up: Regularization and Refinement

11.43.12 matrix-state

— function: matrix-state

return the relative weight of the geometric terms to the map terms.

Next: , Previous: matrix-state, Up: Regularization and Refinement

11.43.13 set-refine-auto-range-step

— function: set-refine-auto-range-step i

Where i is an integer number

change the +/- step for autoranging (default is 1)

Auto-ranging alow you to select a range from one button press, this allows you to set the number of residues either side of the clicked residue that becomes the selected zone

Next: , Previous: set-refine-auto-range-step, Up: Regularization and Refinement

11.43.14 set-refine-max-residues

— function: set-refine-max-residues n

Where n is an integer number

set the heuristic fencepost for the maximum number of residues in the refinement/regularization residue range

Default is 20

Next: , Previous: set-refine-max-residues, Up: Regularization and Refinement

11.43.15 refine-zone-atom-index-define

— function: refine-zone-atom-index-define imol ind1 ind2


refine a zone based on atom indexing

Next: , Previous: refine-zone-atom-index-define, Up: Regularization and Refinement

11.43.16 refine-zone

— function: refine-zone imol chain_id resno1 resno2 altconf


refine a zone

presumes that imol_Refinement_Map has been set

Next: , Previous: refine-zone, Up: Regularization and Refinement

11.43.17 refine-auto-range

— function: refine-auto-range imol chain_id resno1 altconf


refine a zone using auto-range

presumes that imol_Refinement_Map has been set

Next: , Previous: refine-auto-range, Up: Regularization and Refinement

11.43.18 regularize-zone

— function: regularize-zone imol chain_id resno1 resno2 altconf


regularize a zone

Returns: a status, whether the regularisation was done or not. 0 for no, 1 for yes.

Next: , Previous: regularize-zone, Up: Regularization and Refinement

11.43.19 set-dragged-refinement-steps-per-frame

— function: set-dragged-refinement-steps-per-frame v

Where v is an integer number

set the number of refinement steps applied to the intermediate atoms each frame of graphics.

smaller numbers make the movement of the intermediate atoms slower, smoother, more elegant.

Default: 80.

Next: , Previous: set-dragged-refinement-steps-per-frame, Up: Regularization and Refinement

11.43.20 dragged-refinement-steps-per-frame

— function: dragged-refinement-steps-per-frame

return the number of steps per frame in dragged refinement

Next: , Previous: dragged-refinement-steps-per-frame, Up: Regularization and Refinement

11.43.21 set-refinement-refine-per-frame

— function: set-refinement-refine-per-frame istate

Where istate is an integer number

allow refinement of intermediate atoms after dragging, before displaying (default: 0, off).

An attempt to do something like xfit does, at the request of Frank von Delft.

Pass with istate=1 to enable this option.

Next: , Previous: set-refinement-refine-per-frame, Up: Regularization and Refinement

11.43.22 refinement-refine-per-frame-state

— function: refinement-refine-per-frame-state

query the state of the above option

Next: , Previous: refinement-refine-per-frame-state, Up: Regularization and Refinement

11.43.23 set-refine-ramachandran-angles

— function: set-refine-ramachandran-angles state

Where state is an integer number

turn on Ramachandran angles refinement in refinement and regularization

Next: , Previous: set-refine-ramachandran-angles, Up: Regularization and Refinement

11.43.24 set-fix-chiral-volumes-before-refinement

— function: set-fix-chiral-volumes-before-refinement istate

Where istate is an integer number

correct the sign of chiral volumes before commencing refinement?

Do we want to fix chiral volumes (by moving the chiral atom to the other side of the chiral plane if necessary). Default yes (1). Note: doesn't work currently.

Next: , Previous: set-fix-chiral-volumes-before-refinement, Up: Regularization and Refinement

11.43.25 check-chiral-volumes

— function: check-chiral-volumes imol

Where imol is an integer number

query the state of the above option

Next: , Previous: check-chiral-volumes, Up: Regularization and Refinement

11.43.26 set-show-chiral-volume-errors-dialog

— function: set-show-chiral-volume-errors-dialog istate

Where istate is an integer number

For experienced Cooters who don't like Coot nannying about chiral volumes during refinement.

Next: , Previous: set-show-chiral-volume-errors-dialog, Up: Regularization and Refinement

11.43.27 set-secondary-structure-restraints-type

— function: set-secondary-structure-restraints-type itype

Where itype is an integer number

set the type of secondary structure restraints

0 no sec str restraints

1 alpha helix restraints

2 beta strand restraints

Next: , Previous: set-secondary-structure-restraints-type, Up: Regularization and Refinement

11.43.28 secondary-structure-restraints-type

— function: secondary-structure-restraints-type

return the secondary structure restraints type

Next: , Previous: secondary-structure-restraints-type, Up: Regularization and Refinement

11.43.29 imol-refinement-map

— function: imol-refinement-map

the molecule number of the map used for refinement

Returns: the map number, if it has been set or there is only one map, return -1 on no map set (ambiguous) or no maps.

Next: , Previous: imol-refinement-map, Up: Regularization and Refinement

11.43.30 set-imol-refinement-map

— function: set-imol-refinement-map imol

Where imol is an integer number

set the molecule number of the map to be used for refinement/fitting.

Returns: imol on success, -1 on failure

Next: , Previous: set-imol-refinement-map, Up: Regularization and Refinement

11.43.31 does-residue-exist-p

— function: does-residue-exist-p imol chain_id resno inscode


Does the residue exist? (Raw function).

Returns: 0 on not-exist, 1 on does exist.

Next: , Previous: does-residue-exist-p, Up: Regularization and Refinement

11.43.32 add-extra-bond-restraint

— function: add-extra-bond-restraint imol chain_id_1 res_no_1 ins_code_1 atom_name_1 alt_conf_1 chain_id_2 res_no_2 ins_code_2 atom_name_2 alt_conf_2 bond_dist esd


add a user-define bond restraint

this extra restraint is used when the given atoms are selected in refinement or regularization.

Returns: the index of the new restraint.

Returns: -1 when the atoms were not found and no extra bond restraint was stored.

Next: , Previous: add-extra-bond-restraint, Up: Regularization and Refinement

11.43.33 delete-all-extra-restraints

— function: delete-all-extra-restraints imol

Where imol is an integer number

clear out all the extra/user-defined restraints for molecule number imol

Previous: delete-all-extra-restraints, Up: Regularization and Refinement

11.43.34 delete-extra-restraints-for-residue

— function: delete-extra-restraints-for-residue imol chain_id res_no ins_code


clear out all the extra/user-defined restraints for this residue in molecule number imol

Next: , Previous: Regularization and Refinement, Up: Scripting Functions

11.44 Simplex Refinement Interface

Next: , Up: Simplex Refinement Interface

11.44.1 fit-residue-range-to-map-by-simplex

— function: fit-residue-range-to-map-by-simplex res1 res2 altloc chain_id imol imol_for_map


refine residue range using simplex optimization

Previous: fit-residue-range-to-map-by-simplex, Up: Simplex Refinement Interface

11.44.2 score-residue-range-fit-to-map

— function: score-residue-range-fit-to-map res1 res2 altloc chain_id imol imol_for_map


simply score the residue range fit to map

Next: , Previous: Simplex Refinement Interface, Up: Scripting Functions

11.45 Nomenclature Errors

Next: , Up: Nomenclature Errors

11.45.1 fix-nomenclature-errors

— function: fix-nomenclature-errors imol

Where imol is an integer number

fix nomenclature errors in molecule number imol

Returns: the number of resides altered.

Previous: fix-nomenclature-errors, Up: Nomenclature Errors

11.45.2 set-nomenclature-errors-on-read

— function: set-nomenclature-errors-on-read mode

Where mode is a string

set way nomenclature errors should be handled on reading coordinates.

mode should be "auto-correct", "ignore", "prompt". The default is "prompt"

Next: , Previous: Nomenclature Errors, Up: Scripting Functions

11.46 Atom Info Interface

Up: Atom Info Interface

11.46.1 output-atom-info-as-text

— function: output-atom-info-as-text imol chain_id resno ins_code atname altconf


output to the terminal the Atom Info for the give atom specs

Next: , Previous: Atom Info Interface, Up: Scripting Functions

11.47 Residue Environment Functions

Next: , Up: Residue Environment Functions

11.47.1 set-show-environment-distances

— function: set-show-environment-distances state

Where state is an integer number

show environment distances. If state is 0, distances are turned off, otherwise distances are turned on.

Next: , Previous: set-show-environment-distances, Up: Residue Environment Functions

11.47.2 set-show-environment-distances-bumps

— function: set-show-environment-distances-bumps state

Where state is an integer number

show bumps environment distances. If state is 0, bump distances are turned off, otherwise bump distances are turned on.

Next: , Previous: set-show-environment-distances-bumps, Up: Residue Environment Functions

11.47.3 set-show-environment-distances-h-bonds

— function: set-show-environment-distances-h-bonds state

Where state is an integer number

show H-bond environment distances. If state is 0, bump distances are turned off, otherwise H-bond distances are turned on.

Next: , Previous: set-show-environment-distances-h-bonds, Up: Residue Environment Functions

11.47.4 show-environment-distances-state

— function: show-environment-distances-state

show the state of display of the environment distances

Previous: show-environment-distances-state, Up: Residue Environment Functions

11.47.5 set-environment-distances-distance-limits

— function: set-environment-distances-distance-limits min_dist max_dist


min and max distances for the environment distances

Next: , Previous: Residue Environment Functions, Up: Scripting Functions

11.48 Pointer Functions

Next: , Up: Pointer Functions

11.48.1 set-show-pointer-distances

— function: set-show-pointer-distances istate

Where istate is an integer number

turn on (or off) the pointer distance by passing 1 (or 0).

Previous: set-show-pointer-distances, Up: Pointer Functions

11.48.2 show-pointer-distances-state

— function: show-pointer-distances-state

show the state of display of the pointer distances

Next: , Previous: Pointer Functions, Up: Scripting Functions

11.49 Zoom Functions

Next: , Up: Zoom Functions

11.49.1 scale-zoom

— function: scale-zoom f

Where f is a number

scale the view by f

external (scripting) interface (with redraw)

Next: , Previous: scale-zoom, Up: Zoom Functions

11.49.2 zoom-factor

— function: zoom-factor

return the current zoom factor

Next: , Previous: zoom-factor, Up: Zoom Functions

11.49.3 set-smooth-scroll-do-zoom

— function: set-smooth-scroll-do-zoom i

Where i is an integer number

set smooth scroll with zoom

Previous: set-smooth-scroll-do-zoom, Up: Zoom Functions

11.49.4 smooth-scroll-do-zoom

— function: smooth-scroll-do-zoom

return the state of the above system

Next: , Previous: Zoom Functions, Up: Scripting Functions

11.50 CNS Data Functions

Next: , Up: CNS Data Functions

11.50.1 handle-cns-data-file

— function: handle-cns-data-file filename imol


read CNS data (currently only a placeholder)

Previous: handle-cns-data-file, Up: CNS Data Functions

11.50.2 handle-cns-data-file-with-cell

— function: handle-cns-data-file-with-cell filename imol a b c alpha beta gamma spg_info


read CNS data (currently only a placeholder)

a, b,c are in Angstroems. alpha, beta, gamma are in degrees. spg is the space group info, either ;-delimited symmetry operators or the space group name

Next: , Previous: CNS Data Functions, Up: Scripting Functions

11.51 mmCIF Functions

Up: mmCIF Functions

11.51.1 open-cif-dictionary-file-selector-dialog

— function: open-cif-dictionary-file-selector-dialog

open the cif dictionary file selector dialog

Next: , Previous: mmCIF Functions, Up: Scripting Functions

11.52 SHELXL Functions

Next: , Up: SHELXL Functions

11.52.1 read-shelx-ins-file

— function: read-shelx-ins-file filename recentre_flag


read a SHELXL .ins file

Previous: read-shelx-ins-file, Up: SHELXL Functions

11.52.2 write-shelx-ins-file

— function: write-shelx-ins-file imol filename


write a SHELXL .ins file for molecule number imol

Next: , Previous: SHELXL Functions, Up: Scripting Functions

11.53 Validation Functions

Next: , Up: Validation Functions

11.53.1 difference-map-peaks

— function: difference-map-peaks imol imol_coords level max_closeness do_positive_level_flag do_negative_level_flag


generate a list of difference map peaks

peaks within max_closeness (2.0 A typically) of a larger peak are not listed.

Previous: difference-map-peaks, Up: Validation Functions

11.53.2 gln-asn-b-factor-outliers

— function: gln-asn-b-factor-outliers imol

Where imol is an integer number

Make a gui for GLN adn ASN B-factor outiers, compairing the O and N temperatur factors difference to the distribution of temperature factors from the other atoms.

Next: , Previous: Validation Functions, Up: Scripting Functions

11.54 Ramachandran Plot Functions

Next: , Up: Ramachandran Plot Functions

11.54.1 do-ramachandran-plot

— function: do-ramachandran-plot imol

Where imol is an integer number

Ramachandran plot for molecule number imol.

Next: , Previous: do-ramachandran-plot, Up: Ramachandran Plot Functions

11.54.2 set-kleywegt-plot-n-diffs

— function: set-kleywegt-plot-n-diffs n_diffs

Where n_diffs is an integer number

set the number of biggest difference arrows on the Kleywegt plot.

Next: , Previous: set-kleywegt-plot-n-diffs, Up: Ramachandran Plot Functions

11.54.3 set-ramachandran-plot-contour-levels

— function: set-ramachandran-plot-contour-levels level_prefered level_allowed


set the contour levels for theremachandran plot, default values are 0.02 (prefered) 0.002 (allowed)

Next: , Previous: set-ramachandran-plot-contour-levels, Up: Ramachandran Plot Functions

11.54.4 set-ramachandran-plot-background-block-size

— function: set-ramachandran-plot-background-block-size blocksize

Where blocksize is a number

set the ramachandran plot background block size.

Smaller is smoother but slower. Should be divisible exactly into 360. Default value is 10.

Next: , Previous: set-ramachandran-plot-background-block-size, Up: Ramachandran Plot Functions

11.54.5 ramachandran-plot-differences

— function: ramachandran-plot-differences imol1 imol2


2 molecule ramachandran plot (NCS differences) a.k.a. A Kleywegt Plot.

Previous: ramachandran-plot-differences, Up: Ramachandran Plot Functions

11.54.6 ramachandran-plot-differences-by-chain

— function: ramachandran-plot-differences-by-chain imol1 imol2 a_chain b_chain


A chain-specific Kleywegt Plot.

Next: , Previous: Ramachandran Plot Functions, Up: Scripting Functions

11.55 Sequence View Interface

Up: Sequence View Interface

11.55.1 do-sequence-view

— function: do-sequence-view imol

Where imol is an integer number

display the sequence view dialog for molecule number imol

Next: , Previous: Sequence View Interface, Up: Scripting Functions

11.56 Atom Labelling

Next: , Up: Atom Labelling

11.56.1 set-brief-atom-labels

— function: set-brief-atom-labels istat

Where istat is an integer number

use brief atom names for on-screen labels

call with istat=1 to use brief labels, istat=0 for normal labels

Previous: set-brief-atom-labels, Up: Atom Labelling

11.56.2 brief-atom-labels-state

— function: brief-atom-labels-state

the brief atom label state

Next: , Previous: Atom Labelling, Up: Scripting Functions

11.57 Screen Rotation

Next: , Up: Screen Rotation

11.57.1 rotate-y-scene

— function: rotate-y-scene nsteps stepsize


rotate view round y axis stepsize degrees for nstep such steps

Next: , Previous: rotate-y-scene, Up: Screen Rotation

11.57.2 rotate-x-scene

— function: rotate-x-scene nsteps stepsize


rotate view round x axis stepsize degrees for nstep such steps

Next: , Previous: rotate-x-scene, Up: Screen Rotation

11.57.3 rotate-z-scene

— function: rotate-z-scene nsteps stepsize


rotate view round z axis stepsize degrees for nstep such steps

Previous: rotate-z-scene, Up: Screen Rotation

11.57.4 spin-zoom-trans

— function: spin-zoom-trans axis nstep stepsize zoom_by x_rel y_rel z_rel


Bells and whistles rotation.

spin, zoom and translate.

where axis is either x,y or z, stepsize is in degrees, zoom_by and x_rel etc are how much zoom, x,y,z should have changed by after nstep steps.

Next: , Previous: Screen Rotation, Up: Scripting Functions

11.58 Views Interface

Next: , Up: Views Interface

11.58.1 add-view-here

— function: add-view-here view_name

Where view_name is a string

return the view number

Next: , Previous: add-view-here, Up: Views Interface

11.58.2 add-view-raw

— function: add-view-raw rcx rcy rcz quat1 quat2 quat3 quat4 zoom view_name


return the view number

Next: , Previous: add-view-raw, Up: Views Interface

11.58.3 remove-named-view

— function: remove-named-view view_name

Where view_name is a string

the view with the given name

Next: , Previous: remove-named-view, Up: Views Interface

11.58.4 remove-view

— function: remove-view view_number

Where view_number is an integer number

the given view number

Next: , Previous: remove-view, Up: Views Interface

11.58.5 add-view-description

— function: add-view-description view_number description


Add a view description/annotation to the give view number.

Next: , Previous: add-view-description, Up: Views Interface

11.58.6 add-action-view

— function: add-action-view view_name action_function


add a view (not add to an existing view) that *does* something (e.g. displays or undisplays a molecule) rather than move the graphics.

Returns: the view number for this (new) view.

Next: , Previous: add-action-view, Up: Views Interface

11.58.7 insert-action-view-after-view

— function: insert-action-view-after-view view_number view_name action_function


add an action view after the view of the given view number

Returns: the view number for this (new) view.

Next: , Previous: insert-action-view-after-view, Up: Views Interface

11.58.8 save-views

— function: save-views view_file_name

Where view_file_name is a string

save views to view_file_name

Previous: save-views, Up: Views Interface

11.58.9 clear-all-views

— function: clear-all-views

Clear the view list.

Next: , Previous: Views Interface, Up: Scripting Functions

11.59 Background Colour

Next: , Up: Background Colour

11.59.1 set-background-colour

— function: set-background-colour red green blue


set the background colour

red, green and blue are numbers between 0.0 and 1.0

Next: , Previous: set-background-colour, Up: Background Colour

11.59.2 redraw-background

— function: redraw-background

re draw the background colour when switching between mono and stereo

Previous: redraw-background, Up: Background Colour

11.59.3 background-is-black-p

— function: background-is-black-p

is the background black (or nearly black)?

Returns: 1 if the background is black (or nearly black), else return 0.

Next: , Previous: Background Colour, Up: Scripting Functions

11.60 Ligand Fitting Functions

Next: , Up: Ligand Fitting Functions

11.60.1 set-ligand-acceptable-fit-fraction

— function: set-ligand-acceptable-fit-fraction f

Where f is a number

set the fraction of atoms which must be in positive density after a ligand fit

Next: , Previous: set-ligand-acceptable-fit-fraction, Up: Ligand Fitting Functions

11.60.2 set-ligand-cluster-sigma-level

— function: set-ligand-cluster-sigma-level f

Where f is a number

set the default sigma level that the map is searched to find potential ligand sites

Next: , Previous: set-ligand-cluster-sigma-level, Up: Ligand Fitting Functions

11.60.3 set-ligand-flexible-ligand-n-samples

— function: set-ligand-flexible-ligand-n-samples i

Where i is an integer number

set the number of conformation samples

big ligands require more samples. Default 10.

Next: , Previous: set-ligand-flexible-ligand-n-samples, Up: Ligand Fitting Functions

11.60.4 set-find-ligand-n-top-ligands

— function: set-find-ligand-n-top-ligands n

Where n is an integer number

search the top n sites for ligands.

Default 10.

Next: , Previous: set-find-ligand-n-top-ligands, Up: Ligand Fitting Functions

11.60.5 set-find-ligand-mask-waters

— function: set-find-ligand-mask-waters istate

Where istate is an integer number

how shall we treat the waters during ligand fitting?

pass with istate=1 for waters to mask the map in the same way that protein atoms do.

Next: , Previous: set-find-ligand-mask-waters, Up: Ligand Fitting Functions

11.60.6 set-ligand-search-protein-molecule

— function: set-ligand-search-protein-molecule imol

Where imol is an integer number

set the protein molecule for ligand searching

Next: , Previous: set-ligand-search-protein-molecule, Up: Ligand Fitting Functions

11.60.7 set-ligand-search-map-molecule

— function: set-ligand-search-map-molecule imol_map

Where imol_map is an integer number

set the map molecule for ligand searching

Next: , Previous: set-ligand-search-map-molecule, Up: Ligand Fitting Functions

11.60.8 add-ligand-search-ligand-molecule

— function: add-ligand-search-ligand-molecule imol_ligand

Where imol_ligand is an integer number

add a rigid ligand molecule to the list of ligands to search for in ligand searching

Next: , Previous: add-ligand-search-ligand-molecule, Up: Ligand Fitting Functions

11.60.9 add-ligand-search-wiggly-ligand-molecule

— function: add-ligand-search-wiggly-ligand-molecule imol_ligand

Where imol_ligand is an integer number

add a flexible ligand molecule to the list of ligands to search for in ligand searching

Next: , Previous: add-ligand-search-wiggly-ligand-molecule, Up: Ligand Fitting Functions

11.60.10 ligand-expert

— function: ligand-expert

this sets the flag to have expert option ligand entries in the Ligand Searching dialog

Next: , Previous: ligand-expert, Up: Ligand Fitting Functions

11.60.11 do-find-ligands-dialog

— function: do-find-ligands-dialog

display the find ligands dialog

if maps, coords and ligands are available, that is.

Next: , Previous: do-find-ligands-dialog, Up: Ligand Fitting Functions

11.60.12 match-ligand-atom-names

— function: match-ligand-atom-names imol_ligand chain_id_ligand resno_ligand ins_code_ligand imol_reference chain_id_reference resno_reference ins_code_reference


Overlap residue with "template"-based matching.

Overlap the first residue in imol_ligand onto the residue specified by the reference parameters. Use graph matching, not atom names.

Match ligand atom names By using graph matching, make the names of the atoms of the given ligand/residue match those of the reference residue/ligand as closely as possible - where there would be a atom name clash, invent a new atom name.

Returns: success status, False = failed to find residue in either imol_ligand or imo_ref. If success, return the RT operator.

Previous: match-ligand-atom-names, Up: Ligand Fitting Functions

11.60.13 flip-ligand

— function: flip-ligand imol chain_id resno


flip the ligand (usually active residue) around its eigen vectors to the next flip number. Immediate replacement (like flip peptide).

Next: , Previous: Ligand Fitting Functions, Up: Scripting Functions

11.61 Water Fitting Functions

Next: , Up: Water Fitting Functions

11.61.1 execute-find-waters-real

— function: execute-find-waters-real imol_for_map imol_for_protein new_waters_mol_flag sigma_cut_off


find waters

Next: , Previous: execute-find-waters-real, Up: Water Fitting Functions

11.61.2 move-waters-to-around-protein

— function: move-waters-to-around-protein imol

Where imol is an integer number

move waters of molecule number imol so that they are around the protein.

Returns: the number of moved waters.

Next: , Previous: move-waters-to-around-protein, Up: Water Fitting Functions

11.61.3 move-hetgroups-to-around-protein

— function: move-hetgroups-to-around-protein imol

Where imol is an integer number

move all hetgroups (including waters) of molecule number imol so that they are around the protein.

Next: , Previous: move-hetgroups-to-around-protein, Up: Water Fitting Functions

11.61.4 max-water-distance

— function: max-water-distance imol

Where imol is an integer number

return the maximum minimum distance of any water atom to any protein atom - used in validation of move_waters_to_around_protein() funtion.

Next: , Previous: max-water-distance, Up: Water Fitting Functions

11.61.5 set-water-check-spherical-variance-limit

— function: set-water-check-spherical-variance-limit f

Where f is a number

set the limit of interesting variance, above which waters are listed (otherwise ignored)

default 0.12.

Next: , Previous: set-water-check-spherical-variance-limit, Up: Water Fitting Functions

11.61.6 set-ligand-water-to-protein-distance-limits

— function: set-ligand-water-to-protein-distance-limits f1 f2


set ligand to protein distance limits

f1 is the minimum distance, f2 is the maximum distance

Next: , Previous: set-ligand-water-to-protein-distance-limits, Up: Water Fitting Functions

11.61.7 set-ligand-water-n-cycles

— function: set-ligand-water-n-cycles i

Where i is an integer number

set the number of cycles of water searching

Previous: set-ligand-water-n-cycles, Up: Water Fitting Functions

11.61.8 execute-find-blobs

— function: execute-find-blobs imol_model imol_for_map cut_off interactive_flag


find blobs

Next: , Previous: Water Fitting Functions, Up: Scripting Functions

11.62 Bond Representation

Next: , Up: Bond Representation

11.62.1 set-default-bond-thickness

— function: set-default-bond-thickness t

Where t is an integer number

set the default thickness for bonds (e.g. in ~/.coot)

Next: , Previous: set-default-bond-thickness, Up: Bond Representation

11.62.2 set-bond-thickness

— function: set-bond-thickness imol t


set the thickness of the bonds in molecule number imol to t pixels

Next: , Previous: set-bond-thickness, Up: Bond Representation

11.62.3 set-bond-thickness-intermediate-atoms

— function: set-bond-thickness-intermediate-atoms t

Where t is a number

set the thickness of the bonds of the intermediate atoms to t pixels

Next: , Previous: set-bond-thickness-intermediate-atoms, Up: Bond Representation

11.62.4 set-default-representation-type

— function: set-default-representation-type type

Where type is an integer number

set the default represenation type (deafult 1).

Next: , Previous: set-default-representation-type, Up: Bond Representation

11.62.5 get-default-bond-thickness

— function: get-default-bond-thickness

get the default thickness for bonds

Next: , Previous: get-default-bond-thickness, Up: Bond Representation

11.62.6 set-draw-zero-occ-markers

— function: set-draw-zero-occ-markers status

Where status is an integer number

set status of drawing zero occupancy markers.

default status is 1.

Next: , Previous: set-draw-zero-occ-markers, Up: Bond Representation

11.62.7 set-draw-hydrogens

— function: set-draw-hydrogens imol istat


set the hydrogen drawing state. istat = 0 is hydrogens off, istat = 1: show hydrogens

Next: , Previous: set-draw-hydrogens, Up: Bond Representation

11.62.8 draw-hydrogens-state

— function: draw-hydrogens-state imol

Where imol is an integer number

the state of draw hydrogens for molecule number imol.

return -1 on bad imol.

Next: , Previous: draw-hydrogens-state, Up: Bond Representation

11.62.9 graphics-to-ca-representation

— function: graphics-to-ca-representation imol

Where imol is an integer number

draw molecule number imol as CAs

Next: , Previous: graphics-to-ca-representation, Up: Bond Representation

11.62.10 graphics-to-ca-plus-ligands-representation

— function: graphics-to-ca-plus-ligands-representation imol

Where imol is an integer number

draw molecule number imol as CA + ligands

Next: , Previous: graphics-to-ca-plus-ligands-representation, Up: Bond Representation

11.62.11 graphics-to-bonds-no-waters-representation

— function: graphics-to-bonds-no-waters-representation imol

Where imol is an integer number

draw molecule number imol with no waters

Next: , Previous: graphics-to-bonds-no-waters-representation, Up: Bond Representation

11.62.12 graphics-to-bonds-representation

— function: graphics-to-bonds-representation mol

Where mol is an integer number

draw molecule number imol with normal bonds

Next: , Previous: graphics-to-bonds-representation, Up: Bond Representation

11.62.13 graphics-to-ca-plus-ligands-sec-struct-representation

— function: graphics-to-ca-plus-ligands-sec-struct-representation imol

Where imol is an integer number

draw molecule number imol with CA bonds in secondary structure representation and ligands

Next: , Previous: graphics-to-ca-plus-ligands-sec-struct-representation, Up: Bond Representation

11.62.14 graphics-to-sec-struct-bonds-representation

— function: graphics-to-sec-struct-bonds-representation imol

Where imol is an integer number

draw molecule number imol with bonds in secondary structure representation

Next: , Previous: graphics-to-sec-struct-bonds-representation, Up: Bond Representation

11.62.15 graphics-to-rainbow-representation

— function: graphics-to-rainbow-representation imol

Where imol is an integer number

draw molecule number imol in Jones' Rainbow

Next: , Previous: graphics-to-rainbow-representation, Up: Bond Representation

11.62.16 graphics-to-b-factor-representation

— function: graphics-to-b-factor-representation imol

Where imol is an integer number

draw molecule number imol coloured by B-factor

Next: , Previous: graphics-to-b-factor-representation, Up: Bond Representation

11.62.17 graphics-to-b-factor-cas-representation

— function: graphics-to-b-factor-cas-representation imol

Where imol is an integer number

draw molecule number imol coloured by B-factor, CA + ligands

Next: , Previous: graphics-to-b-factor-cas-representation, Up: Bond Representation

11.62.18 graphics-to-occupancy-representation

— function: graphics-to-occupancy-representation imol

Where imol is an integer number

draw molecule number imol coloured by occupancy

Next: , Previous: graphics-to-occupancy-representation, Up: Bond Representation

11.62.19 graphics-molecule-bond-type

— function: graphics-molecule-bond-type imol

Where imol is an integer number

what is the bond drawing state of molecule number imol

Next: , Previous: graphics-molecule-bond-type, Up: Bond Representation

11.62.20 set-b-factor-bonds-scale-factor

— function: set-b-factor-bonds-scale-factor imol f


scale the colours for colour by b factor representation

Next: , Previous: set-b-factor-bonds-scale-factor, Up: Bond Representation

11.62.21 change-model-molecule-representation-mode

— function: change-model-molecule-representation-mode up_or_down

Where up_or_down is an integer number

change the representation of the model molecule closest to the centre of the screen

Next: , Previous: change-model-molecule-representation-mode, Up: Bond Representation

11.62.22 make-ball-and-stick

— function: make-ball-and-stick imol atom_selection_str bond_thickness sphere_size do_spheres_flag


make a ball and stick representation of imol given atom selection

e.g. (make-ball-and-stick 0 "/1" 0.15 0.25 1)

Next: , Previous: make-ball-and-stick, Up: Bond Representation

11.62.23 clear-ball-and-stick

— function: clear-ball-and-stick imol

Where imol is an integer number

clear ball and stick representation of molecule number imol

Next: , Previous: clear-ball-and-stick, Up: Bond Representation

11.62.24 additional-representation-by-string

— function: additional-representation-by-string imol atom_selection representation_type bonds_box_type bond_width draw_hydrogens_flag


return the index of the additional representation. Return -1 on error

Previous: additional-representation-by-string, Up: Bond Representation

11.62.25 additional-representation-by-attributes

— function: additional-representation-by-attributes imol chain_id resno_start resno_end ins_code representation_type bonds_box_type bond_width draw_hydrogens_flag


return the index of the additional representation.

Returns: -1 on error.

Next: , Previous: Bond Representation, Up: Scripting Functions

11.63 Dots Representation

Next: , Up: Dots Representation

11.63.1 dots

— function: dots imol atom_selection_str dots_object_name dot_density sphere_size_scale


display dotted surface

return a generic objects handle (which can be used to remove later)

Next: , Previous: dots, Up: Dots Representation

11.63.2 set-dots-colour

— function: set-dots-colour imol r g b


set the colour of the surface dots of the imol-th molecule to be the given single colour

r,g,b are values between 0.0 and 1.0

Next: , Previous: set-dots-colour, Up: Dots Representation

11.63.3 unset-dots-colour

— function: unset-dots-colour imol

Where imol is an integer number

no longer set the dots of molecule imol to a single colour

i.e. go back to element-based colours.

Next: , Previous: unset-dots-colour, Up: Dots Representation

11.63.4 clear-dots

— function: clear-dots imol dots_handle


clear dots in imol with dots_handle

Next: , Previous: clear-dots, Up: Dots Representation

11.63.5 clear-dots-by-name

— function: clear-dots-by-name imol dots_object_name


clear the first dots object for imol with given name

Previous: clear-dots-by-name, Up: Dots Representation

11.63.6 n-dots-sets

— function: n-dots-sets imol

Where imol is an integer number

return the number of dots sets for molecule number imol

Next: , Previous: Dots Representation, Up: Scripting Functions

11.64 Pep-flip Interface

Up: Pep-flip Interface

11.64.1 pepflip

— function: pepflip imol chain_id resno inscode altconf


pepflip the given residue

Next: , Previous: Pep-flip Interface, Up: Scripting Functions

11.65 Rigid Body Refinement Interface

Next: , Up: Rigid Body Refinement Interface

11.65.1 rigid-body-refine-zone

— function: rigid-body-refine-zone reso_start resno_end chain_id imol


setup rigid body refine zone

where we set the atom selection holders according to the arguments and then call execute_rigid_body_refine()

Previous: rigid-body-refine-zone, Up: Rigid Body Refinement Interface

11.65.2 set-rigid-body-fit-acceptable-fit-fraction

— function: set-rigid-body-fit-acceptable-fit-fraction f

Where f is a number

set rigid body fraction of atoms in positive density

Next: , Previous: Rigid Body Refinement Interface, Up: Scripting Functions

11.66 Add Terminal Residue Functions

Next: , Up: Add Terminal Residue Functions

11.66.1 set-add-terminal-residue-immediate-addition

— function: set-add-terminal-residue-immediate-addition i

Where i is an integer number

set immediate addition of terminal residue

call with i=1 for immediate addtion

Next: , Previous: set-add-terminal-residue-immediate-addition, Up: Add Terminal Residue Functions

11.66.2 add-terminal-residue

— function: add-terminal-residue imol chain_id residue_number residue_type immediate_add


Add a terminal residue.

residue type can be "auto" and immediate_add is recommended to be 1.

return 0 on failure, 1 on success

Next: , Previous: add-terminal-residue, Up: Add Terminal Residue Functions

11.66.3 add-terminal-residue-using-phi-psi

— function: add-terminal-residue-using-phi-psi imol chain_id res_no residue_type phi psi


Add a terminal residue using given phi and psi angles.

Next: , Previous: add-terminal-residue-using-phi-psi, Up: Add Terminal Residue Functions

11.66.4 set-add-terminal-residue-default-residue-type

— function: set-add-terminal-residue-default-residue-type type

Where type is a string

set the residue type of an added terminal residue.

Next: , Previous: set-add-terminal-residue-default-residue-type, Up: Add Terminal Residue Functions

11.66.5 set-add-terminal-residue-do-post-refine

— function: set-add-terminal-residue-do-post-refine istat

Where istat is an integer number

set a flag to run refine zone on terminal residues after an addition.

Previous: set-add-terminal-residue-do-post-refine, Up: Add Terminal Residue Functions

11.66.6 add-terminal-residue-do-post-refine-state

— function: add-terminal-residue-do-post-refine-state

what is the value of the previous flag?

Next: , Previous: Add Terminal Residue Functions, Up: Scripting Functions

11.67 Delete Residues

Next: , Up: Delete Residues

11.67.1 delete-residue-range

— function: delete-residue-range imol chain_id resno_start end_resno


delete residue range

Next: , Previous: delete-residue-range, Up: Delete Residues

11.67.2 delete-residue

— function: delete-residue imol chain_id resno inscode


delete residue

Next: , Previous: delete-residue, Up: Delete Residues

11.67.3 delete-residue-with-full-spec

— function: delete-residue-with-full-spec imol imodel chain_id resno inscode altloc


delete residue with altconf

Next: , Previous: delete-residue-with-full-spec, Up: Delete Residues

11.67.4 delete-residue-hydrogens

— function: delete-residue-hydrogens imol chain_id resno inscode altloc


delete hydrogen atoms in residue

Next: , Previous: delete-residue-hydrogens, Up: Delete Residues

11.67.5 delete-atom

— function: delete-atom imol chain_id resno ins_code at_name altloc


delete atom in residue

Next: , Previous: delete-atom, Up: Delete Residues

11.67.6 delete-residue-sidechain

— function: delete-residue-sidechain imol chain_id resno ins_code do_delete_dialog


delete all atoms in residue that are not main chain or CB

Previous: delete-residue-sidechain, Up: Delete Residues

11.67.7 delete-hydrogens

— function: delete-hydrogens imol

Where imol is an integer number

delete all hydrogens in molecule,

Returns: number of hydrogens deleted.

Next: , Previous: Delete Residues, Up: Scripting Functions

11.68 Mainchain Building Functions

Up: Mainchain Building Functions

11.68.1 db-mainchain

— function: db-mainchain imol chain_id iresno_start iresno_end direction_string


CA -> mainchain conversion.

Next: , Previous: Mainchain Building Functions, Up: Scripting Functions

11.69 Rotatmer Functions

Next: , Up: Rotatmer Functions

11.69.1 set-rotamer-search-mode

— function: set-rotamer-search-mode mode

Where mode is an integer number

set the mode of rotamer search, options are (ROTAMERSEARCHAUTOMATIC), (ROTAMERSEARCHLOWRES) (aka. "backrub rotamers"), (ROTAMERSEARCHHIGHRES) (with rigid body fitting)

Next: , Previous: set-rotamer-search-mode, Up: Rotatmer Functions

11.69.2 set-rotamer-lowest-probability

— function: set-rotamer-lowest-probability f

Where f is a number

For Dunbrack rotamers, set the lowest probability to be considered. Set as a percentage i.e. 1.00 is quite low. For Richardson Rotamers, this has no effect.

Next: , Previous: set-rotamer-lowest-probability, Up: Rotatmer Functions

11.69.3 set-rotamer-check-clashes

— function: set-rotamer-check-clashes i

Where i is an integer number

set a flag: 0 is off, 1 is on

Next: , Previous: set-rotamer-check-clashes, Up: Rotatmer Functions

11.69.4 auto-fit-best-rotamer

— function: auto-fit-best-rotamer resno altloc insertion_code chain_id imol_coords imol_map clash_flag lowest_probability


auto fit by rotamer search.

return the score, for some not very good reason. clash_flag determines if we use clashes with other residues in the score for this rotamer (or not). It would be cool to call this from a script that went residue by residue along a (newly-built) chain (now available).

Next: , Previous: auto-fit-best-rotamer, Up: Rotatmer Functions

11.69.5 set-auto-fit-best-rotamer-clash-flag

— function: set-auto-fit-best-rotamer-clash-flag i

Where i is an integer number

set the clash flag for rotamer search

And this functions for [pre-setting] the variables for auto_fit_best_rotamer called interactively (using a graphics_info_t function). 0 off, 1 on.

Next: , Previous: set-auto-fit-best-rotamer-clash-flag, Up: Rotatmer Functions

11.69.6 n-rotamers

— function: n-rotamers imol chain_id resno ins_code


return the number of rotamers for this residue - return -1 on no residue found.

Next: , Previous: n-rotamers, Up: Rotatmer Functions

11.69.7 set-residue-to-rotamer-number

— function: set-residue-to-rotamer-number imol chain_id resno ins_code rotamer_number


set the residue specified to the rotamer number specifed.

Previous: set-residue-to-rotamer-number, Up: Rotatmer Functions

11.69.8 fill-partial-residues

— function: fill-partial-residues imol

Where imol is an integer number

fill all the residues of molecule number imol that have missing atoms.

To be used to remove the effects of chainsaw.

Next: , Previous: Rotatmer Functions, Up: Scripting Functions

11.70 180 Flip Side chain

Up: 180 Flip Side chain

11.70.1 do-180-degree-side-chain-flip

— function: do-180-degree-side-chain-flip imol chain_id resno inscode altconf


rotate 180 degrees round the last chi angle

Next: , Previous: 180 Flip Side chain, Up: Scripting Functions

11.71 Mutate Functions

Next: , Up: Mutate Functions

11.71.1 setup-mutate-auto-fit

— function: setup-mutate-auto-fit state

Where state is an integer number

Mutate then fit to map.

that we have a map define is checked first

Next: , Previous: setup-mutate-auto-fit, Up: Mutate Functions

11.71.2 mutate

— function: mutate imol chain_id ires inscode target_res_type


mutate a given residue

target_res_type is a three-letter-code.

Return 1 on a good mutate.

Next: , Previous: mutate, Up: Mutate Functions

11.71.3 mutate-base

— function: mutate-base imol chain_id res_no ins_code res_type


mutate a base. return success status, 1 for a good mutate.

Next: , Previous: mutate-base, Up: Mutate Functions

11.71.4 set-mutate-auto-fit-do-post-refine

— function: set-mutate-auto-fit-do-post-refine istate

Where istate is an integer number

Do you want Coot to automatically run a refinement after every mutate and autofit?

1 for yes, 0 for no.

Next: , Previous: set-mutate-auto-fit-do-post-refine, Up: Mutate Functions

11.71.5 mutate-auto-fit-do-post-refine-state

— function: mutate-auto-fit-do-post-refine-state

what is the value of the previous flag?

Next: , Previous: mutate-auto-fit-do-post-refine-state, Up: Mutate Functions

11.71.6 set-rotamer-auto-fit-do-post-refine

— function: set-rotamer-auto-fit-do-post-refine istate

Where istate is an integer number

Do you want Coot to automatically run a refinement after every rotamer autofit?

1 for yes, 0 for no.

Next: , Previous: set-rotamer-auto-fit-do-post-refine, Up: Mutate Functions

11.71.7 rotamer-auto-fit-do-post-refine-state

— function: rotamer-auto-fit-do-post-refine-state

what is the value of the previous flag?

Next: , Previous: rotamer-auto-fit-do-post-refine-state, Up: Mutate Functions

11.71.8 mutate-single-residue-by-serial-number

— function: mutate-single-residue-by-serial-number ires_ser chain_id imol target_res_type


an alternate interface to mutation of a singe residue.

ires-ser is the serial number of the residue, not the seqnum There 2 functions don't make backups, but

does - CHECKME Hence

is for use as a "one-by-one" type and the following 2 by wrappers that muate either a residue range or a whole chain

Note that the target_res_type is a char, not a string (or a char *). So from the scheme interface you'd use (for example) hash backslash A for ALA.

Returns: 1 on success, 0 on failure

Previous: mutate-single-residue-by-serial-number, Up: Mutate Functions

11.71.9 set-residue-type-chooser-stub-state

— function: set-residue-type-chooser-stub-state istat

Where istat is an integer number

set a flag saying that the residue chosen by mutate or auto-fit mutate should only be added as a stub (mainchain + CB)

Next: , Previous: Mutate Functions, Up: Scripting Functions

11.72 Pointer Atom Functions

Next: , Up: Pointer Atom Functions

11.72.1 create-pointer-atom-molecule-maybe

— function: create-pointer-atom-molecule-maybe

Return the current pointer atom molecule, create a pointer atom molecule if necessary (i.e. when the user has not set it).

Previous: create-pointer-atom-molecule-maybe, Up: Pointer Atom Functions

11.72.2 pointer-atom-molecule

— function: pointer-atom-molecule

Return the current pointer atom molecule.

Next: , Previous: Pointer Atom Functions, Up: Scripting Functions

11.73 Baton Build Interface Functions

Next: , Up: Baton Build Interface Functions

11.73.1 set-baton-mode

— function: set-baton-mode i

Where i is an integer number

toggle so that mouse movement moves the baton not rotates the view.

Next: , Previous: set-baton-mode, Up: Baton Build Interface Functions

11.73.2 try-set-draw-baton

— function: try-set-draw-baton i

Where i is an integer number

draw the baton or not

Next: , Previous: try-set-draw-baton, Up: Baton Build Interface Functions

11.73.3 accept-baton-position

— function: accept-baton-position

accept the baton tip position - a prime candidate for a key binding

Next: , Previous: accept-baton-position, Up: Baton Build Interface Functions

11.73.4 baton-try-another

— function: baton-try-another

move the baton tip position - another prime candidate for a key binding

Next: , Previous: baton-try-another, Up: Baton Build Interface Functions

11.73.5 shorten-baton

— function: shorten-baton

shorten the baton length

Next: , Previous: shorten-baton, Up: Baton Build Interface Functions

11.73.6 lengthen-baton

— function: lengthen-baton

lengthen the baton

Next: , Previous: lengthen-baton, Up: Baton Build Interface Functions

11.73.7 baton-build-delete-last-residue

— function: baton-build-delete-last-residue

delete the most recently build CA position

Previous: baton-build-delete-last-residue, Up: Baton Build Interface Functions

11.73.8 set-baton-build-params

— function: set-baton-build-params istart_resno chain_id direction


set the parameters for the start of a new baton-built fragment. direction can either be "forwards" or "backwards"

Next: , Previous: Baton Build Interface Functions, Up: Scripting Functions

11.74 Crosshairs Interface

Up: Crosshairs Interface

11.74.1 set-draw-crosshairs

— function: set-draw-crosshairs i

Where i is an integer number

draw the distance crosshairs, 0 for off, 1 for on.

Next: , Previous: Crosshairs Interface, Up: Scripting Functions

11.75 Edit Chi Angles

Next: , Up: Edit Chi Angles

11.75.1 set-find-hydrogen-torsions

— function: set-find-hydrogen-torsions state

Where state is an integer number

show torsions that rotate hydrogens in the torsion angle manipulation dialog. Note that this may be needed if, in the dictionary cif file torsion which have as a 4th atom both a hydrogen and a heavier atom bonding to the 3rd atom, but list the 4th atom as a hydrogen (not a heavier atom).

Next: , Previous: set-find-hydrogen-torsions, Up: Edit Chi Angles

11.75.2 edit-chi-angles

— function: edit-chi-angles imol chain_id resno ins_code altconf


display the edit chi angles gui for the given residue

return a status of 0 if it failed to fined the residue, return a value of 1 if it worked.

Previous: edit-chi-angles, Up: Edit Chi Angles

11.75.3 setup-torsion-general

— function: setup-torsion-general state

Where state is an integer number

beloved torsion general at last makes an entrance onto the Coot scene...

Next: , Previous: Edit Chi Angles, Up: Scripting Functions

11.76 Masks

Next: , Up: Masks

11.76.1 mask-map-by-molecule

— function: mask-map-by-molecule map_mol_no coord_mol_no invert_flag


generate a new map that has been masked by some coordinates

(mask-map-by-molecule map-no mol-no invert?) creates and displays a masked map, cuts down density where the coordinates are (invert is 0). If invert? is 1, cut the density down where there are no atoms atoms.

Next: , Previous: mask-map-by-molecule, Up: Masks

11.76.2 set-map-mask-atom-radius

— function: set-map-mask-atom-radius rad

Where rad is a number

set the atom radius for map masking

Previous: set-map-mask-atom-radius, Up: Masks

11.76.3 map-mask-atom-radius

— function: map-mask-atom-radius

get the atom radius for map masking

Next: , Previous: Masks, Up: Scripting Functions

11.77 check Waters Interface

Up: check Waters Interface

11.77.1 delete-checked-waters-baddies

— function: delete-checked-waters-baddies imol b_factor_lim map_sigma_lim min_dist max_dist part_occ_contact_flag zero_occ_flag logical_operator_and_or_flag


Delete waters that are fail to meet the given criteria.

Next: , Previous: check Waters Interface, Up: Scripting Functions

11.78 Trim

Up: Trim

11.78.1 trim-molecule-by-map

— function: trim-molecule-by-map imol_coords imol_map map_level delete_or_zero_occ_flag


cut off (delete or give zero occupancy) atoms in the given molecule if they are below the given map (absolute) level.

Next: , Previous: Trim, Up: Scripting Functions

11.79 External Ray-Tracing

Next: , Up: External Ray-Tracing

11.79.1 raster3d

— function: raster3d rd3_filename

Where rd3_filename is a string

create a r3d file for the current view

Next: , Previous: raster3d, Up: External Ray-Tracing

11.79.2 set-raster3d-bond-thickness

— function: set-raster3d-bond-thickness f

Where f is a number

set the bond thickness for the Raster3D representation

Next: , Previous: set-raster3d-bond-thickness, Up: External Ray-Tracing

11.79.3 set-raster3d-atom-radius

— function: set-raster3d-atom-radius f

Where f is a number

set the atom radius for the Raster3D representation

Next: , Previous: set-raster3d-atom-radius, Up: External Ray-Tracing

11.79.4 set-raster3d-density-thickness

— function: set-raster3d-density-thickness f

Where f is a number

set the density line thickness for the Raster3D representation

Next: , Previous: set-raster3d-density-thickness, Up: External Ray-Tracing

11.79.5 set-renderer-show-atoms

— function: set-renderer-show-atoms istate

Where istate is an integer number

set the flag to show atoms for the Raster3D representation

Next: , Previous: set-renderer-show-atoms, Up: External Ray-Tracing

11.79.6 set-raster3d-bone-thickness

— function: set-raster3d-bone-thickness f

Where f is a number

set the bone (skeleton) thickness for the Raster3D representation

Next: , Previous: set-raster3d-bone-thickness, Up: External Ray-Tracing

11.79.7 set-raster3d-shadows-enabled

— function: set-raster3d-shadows-enabled state

Where state is an integer number

turn off shadows for raster3d output - give argument 0 to turn off

Next: , Previous: set-raster3d-shadows-enabled, Up: External Ray-Tracing

11.79.8 set-raster3d-water-sphere

— function: set-raster3d-water-sphere istate

Where istate is an integer number

set the flag to show waters as spheres for the Raster3D representation. 1 show as spheres, 0 the usual stars.

Previous: set-raster3d-water-sphere, Up: External Ray-Tracing

11.79.9 raster-screen-shot

— function: raster-screen-shot

run raster3d and display the resulting image.

Next: , Previous: External Ray-Tracing, Up: Scripting Functions

11.80 Superposition (SSM)

Next: , Up: Superposition (SSM)

11.80.1 superpose

— function: superpose imol1 imol2 move_imol2_flag


simple interface to superposition.

Superpose all residues of imol2 onto imol1. imol1 is reference, we can either move imol2 or copy it to generate a new molecule depending on the vaule of move_imol2_flag (1 for move 0 for copy).

Next: , Previous: superpose, Up: Superposition (SSM)

11.80.2 superpose-with-chain-selection

— function: superpose-with-chain-selection imol1 imol2 chain_imol1 chain_imol2 chain_used_flag_imol1 chain_used_flag_imol2 move_imol2_copy_flag


chain-based interface to superposition.

Superpose the given chains of imol2 onto imol1. imol1 is reference, we can either move imol2 or copy it to generate a new molecule depending on the vaule of move_imol2_flag (1 for move 0 for copy).

Previous: superpose-with-chain-selection, Up: Superposition (SSM)

11.80.3 superpose-with-atom-selection

— function: superpose-with-atom-selection imol1 imol2 mmdb_atom_sel_str_1 mmdb_atom_sel_str_2 move_imol2_copy_flag


detailed interface to superposition.

Superpose the given atom selection (specified by the mmdb atom selection strings) of imol2 onto imol1. imol1 is reference, we can either move imol2 or copy it to generate a new molecule depending on the vaule of move_imol2_flag (1 for move 0 for copy).

Returns: the index of the superposed molecule - which could either be a new molecule (if move_imol2_flag was 1) or the imol2 or -1 (signifying failure to do the SMM superposition).

Next: , Previous: Superposition (SSM), Up: Scripting Functions

11.81 NCS

Next: , Up: NCS

11.81.1 set-draw-ncs-ghosts

— function: set-draw-ncs-ghosts imol istate


set drawing state of NCS ghosts for molecule number imol

Next: , Previous: set-draw-ncs-ghosts, Up: NCS

11.81.2 draw-ncs-ghosts-state

— function: draw-ncs-ghosts-state imol

Where imol is an integer number

return the drawing state of NCS ghosts for molecule number imol. Return -1 on imol is a bad molecule or no ghosts.

Next: , Previous: draw-ncs-ghosts-state, Up: NCS

11.81.3 set-ncs-ghost-bond-thickness

— function: set-ncs-ghost-bond-thickness imol f


set bond thickness of NCS ghosts for molecule number imol

Next: , Previous: set-ncs-ghost-bond-thickness, Up: NCS

11.81.4 ncs-update-ghosts

— function: ncs-update-ghosts imol

Where imol is an integer number

update ghosts for molecule number imol

Next: , Previous: ncs-update-ghosts, Up: NCS

11.81.5 make-dynamically-transformed-ncs-maps

— function: make-dynamically-transformed-ncs-maps imol_model imol_map overwrite_maps_of_same_name_flag


make NCS map

Next: , Previous: make-dynamically-transformed-ncs-maps, Up: NCS

11.81.6 add-ncs-matrix

— function: add-ncs-matrix imol this_chain_id target_chain_id m11 m12 m13 m21 m22 m23 m31 m32 m33 t1 t2 t3


Add NCS matrix.

Next: , Previous: add-ncs-matrix, Up: NCS

11.81.7 add-strict-ncs-matrix

— function: add-strict-ncs-matrix imol this_chain_id target_chain_id m11 m12 m13 m21 m22 m23 m31 m32 m33 t1 t2 t3


add an NCS matrix for strict NCS molecule representation

for CNS strict NCS usage: expand like normal symmetry does

Next: , Previous: add-strict-ncs-matrix, Up: NCS

11.81.8 show-strict-ncs-state

— function: show-strict-ncs-state imol

Where imol is an integer number

return the state of NCS ghost molecules for molecule number imol

Next: , Previous: show-strict-ncs-state, Up: NCS

11.81.9 set-show-strict-ncs

— function: set-show-strict-ncs imol state


set display state of NCS ghost molecules for molecule number imol

Next: , Previous: set-show-strict-ncs, Up: NCS

11.81.10 set-ncs-homology-level

— function: set-ncs-homology-level flev

Where flev is a number

At what level of homology should we say that we can't see homology for NCS calculation? (default 0.8).

Next: , Previous: set-ncs-homology-level, Up: NCS

11.81.11 copy-chain

— function: copy-chain imol from_chain to_chain


Copy single NCS chain.

Next: , Previous: copy-chain, Up: NCS

11.81.12 copy-from-ncs-master-to-others

— function: copy-from-ncs-master-to-others imol chain_id


Copy chain from master to all related NCS chains.

Next: , Previous: copy-from-ncs-master-to-others, Up: NCS

11.81.13 copy-residue-range-from-ncs-master-to-others

— function: copy-residue-range-from-ncs-master-to-others imol master_chain_id residue_range_start residue_range_end


Copy residue range to all related NCS chains.

If the target residues do not exist in the peer chains, then create them.

Next: , Previous: copy-residue-range-from-ncs-master-to-others, Up: NCS

11.81.14 ncs-control-change-ncs-master-to-chain

— function: ncs-control-change-ncs-master-to-chain imol ichain


change the NCS master chain (by number)

Next: , Previous: ncs-control-change-ncs-master-to-chain, Up: NCS

11.81.15 ncs-control-change-ncs-master-to-chain-id

— function: ncs-control-change-ncs-master-to-chain-id imol chain_id


change the NCS master chain (by chain_id)

Previous: ncs-control-change-ncs-master-to-chain-id, Up: NCS

11.81.16 ncs-control-display-chain

— function: ncs-control-display-chain imol ichain state


display the NCS master chain

Next: , Previous: NCS, Up: Scripting Functions

11.82 Helices and Strands

Next: , Up: Helices and Strands

11.82.1 place-helix-here

— function: place-helix-here

add a helix

Add a helix somewhere close to this point in the map, try to fit the orientation. Add to a molecule called "Helix", create it if needed. Create another moecule called "Reverse Helix" if the helix orientation isn't completely unequivocal.

Returns: the index of the new molecule.

Next: , Previous: place-helix-here, Up: Helices and Strands

11.82.2 place-strand-here

— function: place-strand-here n_residues n_sample_strands


add a strands

Add a strand close to this point in the map, try to fit the orientation. Add to a molecule called "Strand", create it if needed. n_residues is the estimated number of residues in the strand.

n_sample_strands is the number of strands from the database tested to fit into this strand density. 8 is a suggested number. 20 for a more rigourous search, but it will be slower.

Returns: the index of the new molecule.

Next: , Previous: place-strand-here, Up: Helices and Strands

11.82.3 place-strand-here-dialog

— function: place-strand-here-dialog

show the strand placement gui.

Choose the python version in there, if needed. Call scripting function, display it in place, don't return a widget.

Next: , Previous: place-strand-here-dialog, Up: Helices and Strands

11.82.4 find-helices

— function: find-helices

autobuild helices

Find secondary structure in the current map. Add to a molecule called "Helices", create it if needed.

Returns: the index of the new molecule.

Next: , Previous: find-helices, Up: Helices and Strands

11.82.5 find-strands

— function: find-strands

autobuild strands

Find secondary structure in the current map. Add to a molecule called "Strands", create it if needed.

Returns: the index of the new molecule.

Next: , Previous: find-strands, Up: Helices and Strands

11.82.6 find-secondary-structure

— function: find-secondary-structure use_helix helix_length helix_target use_strand strand_length strand_target


autobuild secondary structure

Find secondary structure in the current map. Add to a molecule called "SecStruc", create it if needed.

Returns: the index of the new molecule.

Previous: find-secondary-structure, Up: Helices and Strands

11.82.7 find-secondary-structure-local

— function: find-secondary-structure-local use_helix helix_length helix_target use_strand strand_length strand_target radius


autobuild secondary structure

Find secondary structure local to current view in the current map. Add to a molecule called "SecStruc", create it if needed.

Returns: the index of the new molecule.

Next: , Previous: Helices and Strands, Up: Scripting Functions

11.83 Nucleotides

Up: Nucleotides

11.83.1 find-nucleic-acids-local

— function: find-nucleic-acids-local radius

Where radius is a number

autobuild nucleic acid chains

Find secondary structure local to current view in the current map. Add to a molecule called "NuclAcid", create it if needed.

Returns: the index of the new molecule.

Next: , Previous: Nucleotides, Up: Scripting Functions

11.84 New Molecule by Section Interface

Next: , Up: New Molecule by Section Interface

11.84.1 new-molecule-by-residue-type-selection

— function: new-molecule-by-residue-type-selection imol residue_type


create a new molecule that consists of only the residue of type residue_type in molecule number imol

Returns: the new molecule number, -1 means an error.

Next: , Previous: new-molecule-by-residue-type-selection, Up: New Molecule by Section Interface

11.84.2 new-molecule-by-atom-selection

— function: new-molecule-by-atom-selection imol atom_selection


create a new molecule that consists of only the atoms specified by the mmdb atoms selection string in molecule number imol

Returns: the new molecule number, -1 means an error.

Previous: new-molecule-by-atom-selection, Up: New Molecule by Section Interface

11.84.3 new-molecule-by-sphere-selection

— function: new-molecule-by-sphere-selection imol x y z r allow_partial_residues


create a new molecule that consists of only the atoms within the given radius (r) of the given position.

Returns: the new molecule number, -1 means an error.

Next: , Previous: New Molecule by Section Interface, Up: Scripting Functions

11.85 RNA/DNA

Next: , Up: RNA/DNA

11.85.1 ideal-nucleic-acid

— function: ideal-nucleic-acid RNA_or_DNA form single_stranged_flag sequence


create a molecule of idea nucleotides

use the given sequence (single letter code)

RNA_or_DNA is either "RNA" or "DNA"

form is either "A" or "B"

Returns: the new molecule number or -1 if a problem

Next: , Previous: ideal-nucleic-acid, Up: RNA/DNA

11.85.2 watson-crick-pair

— function: watson-crick-pair imol chain_id resno


Return a molecule that contains a residue that is the WC pair partner of the clicked/picked/selected residue.

Previous: watson-crick-pair, Up: RNA/DNA

11.85.3 watson-crick-pair-for-residue-range

— function: watson-crick-pair-for-residue-range imol chain_id resno_start resno_end


add base pairs for the given residue range, modify molecule imol by creating a new chain

Next: , Previous: RNA/DNA, Up: Scripting Functions

11.86 Sequence (Assignment)

Next: , Up: Sequence (Assignment)

11.86.1 print-sequence-chain

— function: print-sequence-chain imol chain_id


Print the sequence to the console of the given molecule.

Next: , Previous: print-sequence-chain, Up: Sequence (Assignment)

11.86.2 assign-fasta-sequence

— function: assign-fasta-sequence imol chain_id_in seq


Assign a FASTA sequence to a given chain in the molecule.

Next: , Previous: assign-fasta-sequence, Up: Sequence (Assignment)

11.86.3 assign-pir-sequence

— function: assign-pir-sequence imol chain_id_in seq


Assign a PIR sequence to a given chain in the molecule. If the chain of the molecule already had a chain assigned to it, then this will overwrite that old assignment with the new one.

Next: , Previous: assign-pir-sequence, Up: Sequence (Assignment)

11.86.4 assign-sequence-from-file

— function: assign-sequence-from-file imol file


Assign a sequence to a given molecule from (whatever) sequence file.

Next: , Previous: assign-sequence-from-file, Up: Sequence (Assignment)

11.86.5 assign-sequence-from-string

— function: assign-sequence-from-string imol chain_id_in seq


Assign a sequence to a given molecule from a simple string.

Next: , Previous: assign-sequence-from-string, Up: Sequence (Assignment)

11.86.6 delete-all-sequences-from-molecule

— function: delete-all-sequences-from-molecule imol

Where imol is an integer number

Delete all the sequences from a given molecule.

Previous: delete-all-sequences-from-molecule, Up: Sequence (Assignment)

11.86.7 delete-sequence-by-chain-id

— function: delete-sequence-by-chain-id imol chain_id_in


Delete the sequence for a given chain_id from a given molecule.

Next: , Previous: Sequence (Assignment), Up: Scripting Functions

11.87 Surface Interface

Next: , Up: Surface Interface

11.87.1 do-surface

— function: do-surface imol istate


draw surface of molecule number imol

if state = 1 draw the surface (normal representation goes away)

if state = 0 don't draw surface

Next: , Previous: do-surface, Up: Surface Interface

11.87.2 set-transparent-electrostatic-surface

— function: set-transparent-electrostatic-surface imol opacity


simple on/off screendoor transparency at the moment, an opacity > 0.0 will turn on screendoor transparency (stippling).

Previous: set-transparent-electrostatic-surface, Up: Surface Interface

11.87.3 get-electrostatic-surface-opacity

— function: get-electrostatic-surface-opacity imol

Where imol is an integer number

return 1.0 for non transparent and 0.5 if screendoor transparency has been turned on.

Next: , Previous: Surface Interface, Up: Scripting Functions

11.88 FFFearing

Next: , Up: FFFearing

11.88.1 fffear-search

— function: fffear-search imol_model imol_map


fffear search model in molecule number imol_model in map number imol_map

Next: , Previous: fffear-search, Up: FFFearing

11.88.2 set-fffear-angular-resolution

— function: set-fffear-angular-resolution f

Where f is a number

set and return the fffear angular resolution in degrees

Previous: set-fffear-angular-resolution, Up: FFFearing

11.88.3 fffear-angular-resolution

— function: fffear-angular-resolution

return the fffear angular resolution in degrees

Next: , Previous: FFFearing, Up: Scripting Functions

11.89 Remote Control

Up: Remote Control

11.89.1 make-socket-listener-maybe

— function: make-socket-listener-maybe

try to make socket listener

Next: , Previous: Remote Control, Up: Scripting Functions

11.90 Display Lists for Maps

Next: , Up: Display Lists for Maps

11.90.1 set-display-lists-for-maps

— function: set-display-lists-for-maps i

Where i is an integer number

Should display lists be used for maps? It may speed things up if these are turned on (or off) - depends on graphics card and drivers. Pass 1 for on, 0 for off.

Previous: set-display-lists-for-maps, Up: Display Lists for Maps

11.90.2 display-lists-for-maps-state

— function: display-lists-for-maps-state

return the state of display_lists_for_maps.

Next: , Previous: Display Lists for Maps, Up: Scripting Functions

11.91 Browser Interface

Next: , Up: Browser Interface

11.91.1 browser-url

— function: browser-url url

Where url is a string

try to open given url in Web browser

Next: , Previous: browser-url, Up: Browser Interface

11.91.2 set-browser-interface

— function: set-browser-interface browser

Where browser is a string

set command to open the web browser,

examples are "open" or "mozilla"

Previous: set-browser-interface, Up: Browser Interface

11.91.3 handle-online-coot-search-request

— function: handle-online-coot-search-request entry_text

Where entry_text is a string

the search interface

find words, construct a url and open it.

Next: , Previous: Browser Interface, Up: Scripting Functions

11.92 Generic Objects

Next: , Up: Generic Objects

11.92.1 new-generic-object-number

— function: new-generic-object-number objname

Where objname is a string

create a new generic object with name objname and return the index of the object

Next: , Previous: new-generic-object-number, Up: Generic Objects

11.92.2 to-generic-object-add-line

— function: to-generic-object-add-line object_number colour line_width from_x1 from_y1 from_z1 to_x2 to_y2 to_z2


add line to generic object object_number

Next: , Previous: to-generic-object-add-line, Up: Generic Objects

11.92.3 to-generic-object-add-dashed-line

— function: to-generic-object-add-dashed-line object_number colour line_width dash_density from_x1 from_y1 from_z1 to_x2 to_y2 to_z2


add a dashed line to generic object object_number

dash_density is number of dashes per Angstrom.

Next: , Previous: to-generic-object-add-dashed-line, Up: Generic Objects

11.92.4 to-generic-object-add-point

— function: to-generic-object-add-point object_number colour point_width from_x1 from_y1 from_z1


add point to generic object object_number

Next: , Previous: to-generic-object-add-point, Up: Generic Objects

11.92.5 to-generic-object-add-arc

— function: to-generic-object-add-arc object_number colour point_width from_angle to_angle start_point_x start_point_y start_point_z start_dir_x start_dir_y start_dir_z normal_x1 normal_y1 normal_z1


add point to generic object object_number

Next: , Previous: to-generic-object-add-arc, Up: Generic Objects

11.92.6 to-generic-object-add-display-list-handle

— function: to-generic-object-add-display-list-handle object_number display_list_id


add a display list handle generic object

Next: , Previous: to-generic-object-add-display-list-handle, Up: Generic Objects

11.92.7 set-display-generic-object

— function: set-display-generic-object object_number istate


set the display status of object number object_number,

when they are created, by default objects are not displayed, so we generally need this function.

Next: , Previous: set-display-generic-object, Up: Generic Objects

11.92.8 generic-object-is-displayed-p

— function: generic-object-is-displayed-p object_number

Where object_number is an integer number

is generic display object displayed?

Returns: 1 for yes, otherwise 0

Next: , Previous: generic-object-is-displayed-p, Up: Generic Objects

11.92.9 generic-object-index

— function: generic-object-index name

Where name is a string

return the index of the object with name name, if not, return -1;

Next: , Previous: generic-object-index, Up: Generic Objects

11.92.10 number-of-generic-objects

— function: number-of-generic-objects

what is the name of generic object number obj_number?

return the number of generic display objects

Returns: 0 (NULL) (scheme False) on obj_number not available

Next: , Previous: number-of-generic-objects, Up: Generic Objects

11.92.11 generic-object-info

— function: generic-object-info

print to the console the name and display status of the generic display objects

Next: , Previous: generic-object-info, Up: Generic Objects

11.92.12 generic-object-has-objects-p

— function: generic-object-has-objects-p obj_no

Where obj_no is an integer number

does generic display object number obj_no have things to display? (predicate name)

Returns: 0 for no things, 1 for things.

Next: , Previous: generic-object-has-objects-p, Up: Generic Objects

11.92.13 close-generic-object

— function: close-generic-object object_number

Where object_number is an integer number

close generic object, clear the lines/points etc, not available for buttons/displaying etc

Next: , Previous: close-generic-object, Up: Generic Objects

11.92.14 is-closed-generic-object-p

— function: is-closed-generic-object-p object_number

Where object_number is an integer number

has the generic object been closed?

Returns: 1 for yes, 0 othersize

Next: , Previous: is-closed-generic-object-p, Up: Generic Objects

11.92.15 generic-object-clear

— function: generic-object-clear object_number

Where object_number is an integer number

clear out the lines and points from object_number, but keep it displayable (not closed).

Previous: generic-object-clear, Up: Generic Objects

11.92.16 generic-objects-gui-wrapper

— function: generic-objects-gui-wrapper

a kludgey thing, so that the generic objects gui can be called from a callback.

Next: , Previous: Generic Objects, Up: Scripting Functions

11.93 Molprobity Interface

Next: , Up: Molprobity Interface

11.93.1 handle-read-draw-probe-dots

— function: handle-read-draw-probe-dots dots_file

Where dots_file is a string

pass a filename that contains molprobity's probe output in XtalView format

Next: , Previous: handle-read-draw-probe-dots, Up: Molprobity Interface

11.93.2 handle-read-draw-probe-dots-unformatted

— function: handle-read-draw-probe-dots-unformatted dots_file imol show_clash_gui_flag


pass a filename that contains molprobity's probe output in unformatted format

Next: , Previous: handle-read-draw-probe-dots-unformatted, Up: Molprobity Interface

11.93.3 set-do-probe-dots-on-rotamers-and-chis

— function: set-do-probe-dots-on-rotamers-and-chis state

Where state is an integer number

shall we run molprobity for on edit chi angles intermediate atoms?

Next: , Previous: set-do-probe-dots-on-rotamers-and-chis, Up: Molprobity Interface

11.93.4 do-probe-dots-on-rotamers-and-chis-state

— function: do-probe-dots-on-rotamers-and-chis-state

return the state of if run molprobity for on edit chi angles intermediate atoms?

Next: , Previous: do-probe-dots-on-rotamers-and-chis-state, Up: Molprobity Interface

11.93.5 set-do-probe-dots-post-refine

— function: set-do-probe-dots-post-refine state

Where state is an integer number

shall we run molprobity after a refinement has happened?

Next: , Previous: set-do-probe-dots-post-refine, Up: Molprobity Interface

11.93.6 do-probe-dots-post-refine-state

— function: do-probe-dots-post-refine-state

show the state of shall we run molprobity after a refinement has happened?

Next: , Previous: do-probe-dots-post-refine-state, Up: Molprobity Interface

11.93.7 unmangle-hydrogen-name

— function: unmangle-hydrogen-name pdb_hydrogen_name

Where pdb_hydrogen_name is a string

make an attempt to convert pdb hydrogen name to the name used in Coot (and the refmac dictionary, perhaps).

Next: , Previous: unmangle-hydrogen-name, Up: Molprobity Interface

11.93.8 set-interactive-probe-dots-molprobity-radius

— function: set-interactive-probe-dots-molprobity-radius r

Where r is a number

set the radius over which we can run interactive probe, bigger is better but slower.

default is 6.0

Previous: set-interactive-probe-dots-molprobity-radius, Up: Molprobity Interface

11.93.9 interactive-probe-dots-molprobity-radius

— function: interactive-probe-dots-molprobity-radius

return the radius over which we can run interactive probe.

Next: , Previous: Molprobity Interface, Up: Scripting Functions

11.94 Map Sharpening Interface

Next: , Up: Map Sharpening Interface

11.94.1 sharpen

— function: sharpen imol b_factor


Sharpen map imol by b_factor (note (of course) that positive numbers blur the map).

Previous: sharpen, Up: Map Sharpening Interface

11.94.2 set-map-sharpening-scale-limit

— function: set-map-sharpening-scale-limit f

Where f is a number

set the limit of the b-factor map sharpening slider (default 30)

Next: , Previous: Map Sharpening Interface, Up: Scripting Functions

11.95 Marking Fixed Atom Interface

Up: Marking Fixed Atom Interface

11.95.1 clear-all-fixed-atoms

— function: clear-all-fixed-atoms imol

Where imol is an integer number

clear all fixed atoms

Next: , Previous: Marking Fixed Atom Interface, Up: Scripting Functions

11.96 Partial Charges

Up: Partial Charges

11.96.1 show-partial-charge-info

— function: show-partial-charge-info imol chain_id resno ins_code


show the partial charges for the residue of the given specs (charges are read from the dictionary)

Next: , Previous: Partial Charges, Up: Scripting Functions

11.97 EM interface

Up: EM interface

11.97.1 scale-cell

— function: scale-cell imol_map fac_u fac_v fac_w


Scale the cell, for use with EM maps, where the cell needs to be adjusted. Use like: (scale-cell 2 1.012 1.012 1.012). Return error status, 1 means it worked, 0 means it did not work.

Next: , Previous: EM interface, Up: Scripting Functions

11.98 CCP4mg Interface

Next: , Up: CCP4mg Interface

11.98.1 write-ccp4mg-picture-description

— function: write-ccp4mg-picture-description filename

Where filename is a string

write a ccp4mg picture description file

Previous: write-ccp4mg-picture-description, Up: CCP4mg Interface

11.98.2 get-atom-colour-from-mol-no

— function: get-atom-colour-from-mol-no imol element


get element colour for imol as Python formatted list char

Next: , Previous: CCP4mg Interface, Up: Scripting Functions

11.99 Aux functions

Up: Aux functions

11.99.1 laplacian

— function: laplacian imol

Where imol is an integer number

Create the "Laplacian" (-ve second derivative) of the given map.

Next: , Previous: Aux functions, Up: Scripting Functions

11.100 SMILES


11.100.1 do-smiles-gui

— function: do-smiles-gui

display the SMILES string dialog

Next: , Previous: SMILES, Up: Scripting Functions

11.101 PHENIX Support

Up: PHENIX Support

11.101.1 set-button-label-for-external-refinement

— function: set-button-label-for-external-refinement button_label

Where button_label is a string

set the button label of the external Refinement program

Next: , Previous: PHENIX Support, Up: Scripting Functions

11.102 Graphics Text

Next: , Up: Graphics Text

11.102.1 place-text

— function: place-text text x y z size


Put text at x,y,z.

size variable is currently ignored.

Returns: a text handle

Next: , Previous: place-text, Up: Graphics Text

11.102.2 remove-text

— function: remove-text text_handle

Where text_handle is an integer number

Remove "3d" text item.

Previous: remove-text, Up: Graphics Text

11.102.3 text-index-near-position

— function: text-index-near-position x y z r


return the closest text that is with r A of the given position. If no text item is close, then return -1

Next: , Previous: Graphics Text, Up: Scripting Functions

11.103 PISA Interaction

Up: PISA Interaction

11.103.1 pisa-interaction

— function: pisa-interaction imol_1 imol_2


return the molecule number of the interacting residues. Return -1 if no new model was created. Old, not very useful.

Next: , Previous: PISA Interaction, Up: Scripting Functions

11.104 Jiggle Fit

Up: Jiggle Fit

11.104.1 fit-to-map-by-random-jiggle

— function: fit-to-map-by-random-jiggle imol chain_id resno ins_code n_trials jiggle_scale_factor


jiggle fit to the current refinment map. return < -100 if not possible, else return the new best fit for this residue.

Next: , Previous: Jiggle Fit, Up: Scripting Functions

11.105 SBase interface

Up: SBase interface

11.105.1 get-sbase-monomer

— function: get-sbase-monomer comp_id

Where comp_id is a string

return the new molecule number of the monomer.

The monomer will have chainid "A" and residue number 1.

Return -1 on failure to get monomer.

Next: , Previous: SBase interface, Up: Scripting Functions

11.106 FLE-View

Next: , Up: FLE-View

11.106.1 fle-view-set-water-dist-max

— function: fle-view-set-water-dist-max dist_max

Where dist_max is a number

set the maximum considered distance to water

default 3.25 A.

Previous: fle-view-set-water-dist-max, Up: FLE-View

11.106.2 fle-view-set-h-bond-dist-max

— function: fle-view-set-h-bond-dist-max h_bond_dist_max

Where h_bond_dist_max is a number

set the maximum considered hydrogen bond distance

default 3.9 A.

Next: , Previous: FLE-View, Up: Scripting Functions

11.107 LSQ-improve

Up: LSQ-improve

11.107.1 lsq-improve

— function: lsq-improve imol_ref ref_selection imol_moving moving_selection n_res dist_crit


an slightly-modified implementation of the "lsq_improve" algorithm of Kleywegt and Jones (1997).

Note that if a residue selection is specified in the residue selection(s), then the first residue of the given range must exist in the molecule (if not, then mmdb will not select any atoms from that molecule).

Kleywegt and Jones set n_res to 4 and dist_crit to 6.0.

Next: , Previous: LSQ-improve, Up: Scripting Functions

11.108 single-model view

Next: , Up: single-model view

11.108.1 single-model-view-model-number

— function: single-model-view-model-number imol imodel


put molecule number imol to display only model number imodel

Next: , Previous: single-model-view-model-number, Up: single-model view

11.108.2 single-model-view-this-model-number

— function: single-model-view-this-model-number imol

Where imol is an integer number

the current model number being displayed

return 0 on non-multimodel-molecule.

Next: , Previous: single-model-view-this-model-number, Up: single-model view

11.108.3 single-model-view-next-model-number

— function: single-model-view-next-model-number imol

Where imol is an integer number

change the representation to the next model number to be displayed

return 0 on non-multimodel-molecule.

Previous: single-model-view-next-model-number, Up: single-model view

11.108.4 single-model-view-prev-model-number

— function: single-model-view-prev-model-number imol

Where imol is an integer number

change the representation to the previous model number to be displayed

return 0 on non-multimodel-molecule.

Next: , Previous: single-model view, Up: Scripting Functions

11.109 graphics 2D ligand view

Up: graphics 2D ligand view

11.109.1 set-show-graphics-ligand-view

— function: set-show-graphics-ligand-view state

Where state is an integer number

set the graphics ligand view state

(default is 1 (on)).

Previous: graphics 2D ligand view, Up: Scripting Functions

11.110 Sectionless functions

Next: , Up: Sectionless functions

11.110.1 get-write-conect-record-state

— function: get-write-conect-record-state

return the state of the write_conect_records_flag.

Next: , Previous: get-write-conect-record-state, Up: Sectionless functions

11.110.2 set-write-conect-record-state

— function: set-write-conect-record-state state

Where state is an integer number

set the flag to write (or not) conect records to the PDB file.

Previous: set-write-conect-record-state, Up: Sectionless functions

11.110.3 make-and-draw-patterson

— function: make-and-draw-patterson mtz_file_name f_col sigf_col


Make a patterson molecule.

Returns: a new molecule number or -1 on failure

Next: , Previous: Scripting Functions, Up: Top

12 More Scripting Functions

Next: , Up: More Scripting Functions

12.1 More Symmetry Functions

Up: More Symmetry Functions

12.1.1 get-symmetry

— function: get-symmetry imol

Where imol is an integer number

return the symmetry of the imolth molecule

Return as a list of strings the symmetry operators of the given molecule. If imol is a not a valid molecule, return an empty list.

Next: , Previous: More Symmetry Functions, Up: More Scripting Functions

12.2 Extra Map Functions

Up: Extra Map Functions

12.2.1 map-colour-components

— function: map-colour-components imol

Where imol is an integer number

return the colour triple of the imolth map

(e.g.: (list 0.4 0.6 0.8). If invalid imol return scheme false.

Next: , Previous: Extra Map Functions, Up: More Scripting Functions

12.3 Multi-Residue Torsion

Up: Multi-Residue Torsion

12.3.1 multi-residue-torsion-fit-scm

— function: multi-residue-torsion-fit-scm imol residues_specs_scm


fit residues

(note: fit to the current-refinement map)

Next: , Previous: Multi-Residue Torsion, Up: More Scripting Functions

12.4 Execute Refmac

Up: Execute Refmac

12.4.1 execute-refmac-real

— function: execute-refmac-real pdb_in_filename pdb_out_filename mtz_in_filename mtz_out_filename cif_lib_filename fobs_col_name sigfobs_col_name r_free_col_name have_sensible_free_r_flag make_molecules_flag refmac_count_string swap_map_colours_post_refmac_flag imol_refmac_map diff_map_flag phase_combine_flag phib_string fom_string ccp4i_project_dir


if swap_map_colours_post_refmac_flag is not 1 thenn imol_refmac_map is ignored.

Next: , Previous: Execute Refmac, Up: More Scripting Functions

12.5 Dictionary Functions

Up: Dictionary Functions

12.5.1 dictionaries-read

— function: dictionaries-read

return a list of all the dictionaries read

Next: , Previous: Dictionary Functions, Up: More Scripting Functions

12.6 Restraints Interface

Up: Restraints Interface

12.6.1 set-monomer-restraints

— function: set-monomer-restraints monomer_type restraints


set the monomer restraints of the given monomer_type

Returns: scheme false or true for success or failure to set the restrains for monomer_type

Next: , Previous: Restraints Interface, Up: More Scripting Functions

12.7 Atom Information functions

Next: , Up: Atom Information functions

12.7.1 residue-info

— function: residue-info imol chain_id resno ins_code


Return a list of atom info for each atom in the specified residue.

output is like this: (list (list (list atom-name alt-conf) (list occ temp-fact element) (list x y z)))

Next: , Previous: residue-info, Up: Atom Information functions

12.7.2 add-molecule

— function: add-molecule molecule_expression name


generate a molecule from an s-expression

return a molecule number, -1 on error

Next: , Previous: add-molecule, Up: Atom Information functions

12.7.3 clear-and-update-molecule

— function: clear-and-update-molecule molecule_number molecule_expression


update a molecule from a s-expression

And going the other way, given an s-expression, update molecule_number by the given molecule. Clear what's currently there first though.

Next: , Previous: clear-and-update-molecule, Up: Atom Information functions

12.7.4 active-residue

— function: active-residue

return specs of the atom close to screen centre

Return a list of (list imol chain-id resno ins-code atom-name alt-conf) for atom that is closest to the screen centre in any displayed molecule. If there are multiple models with the same coordinates at the screen centre, return the attributes of the atom in the highest number molecule number.

return scheme false if no active residue

Next: , Previous: active-residue, Up: Atom Information functions

12.7.5 closest-atom

— function: closest-atom imol

Where imol is an integer number

return the specs of the closest atom in imolth molecule

Return a list of (list imol chain-id resno ins-code atom-name alt-conf (list x y z)) for atom that is closest to the screen centre in the given molecule (unlike active-residue, no account is taken of the displayed state of the molecule). If there is no atom, or if imol is not a valid model molecule, return scheme false.

Previous: closest-atom, Up: Atom Information functions

12.7.6 residues-near-residue

— function: residues-near-residue imol residue_in radius


return residues near residue

Return residue specs for residues that have atoms that are closer than radius Angstroems to any atom in the residue specified by res_in.

Next: , Previous: Atom Information functions, Up: More Scripting Functions

12.8 Refinement with specs

Up: Refinement with specs

12.8.1 refine-zone-with-full-residue-spec-scm

— function: refine-zone-with-full-residue-spec-scm imol chain_id resno1 inscode_1 resno2 inscode_2 altconf


refine a zone, allowing the specification of insertion codes for the residues too.

presumes that imol_Refinement_Map has been set

Next: , Previous: Refinement with specs, Up: More Scripting Functions

12.9 Water Chain Functions

Next: , Up: Water Chain Functions

12.9.1 water-chain-from-shelx-ins-scm

— function: water-chain-from-shelx-ins-scm imol

Where imol is an integer number

return the chain id of the water chain from a shelx molecule. Raw interface

Returns: scheme false if no chain or bad imol

Previous: water-chain-from-shelx-ins-scm, Up: Water Chain Functions

12.9.2 water-chain-scm

— function: water-chain-scm imol

Where imol is an integer number

return the chain id of the water chain. Raw interface

Next: , Previous: Water Chain Functions, Up: More Scripting Functions

12.10 Spin Search Functions

Up: Spin Search Functions

12.10.1 spin-search

— function: spin-search imol_map imol chain_id resno ins_code direction_atoms_list moving_atoms_list


for the given residue, spin the atoms in moving_atom_list around the bond defined by direction_atoms_list looking for the best fit to density of imol_map map of the first atom in moving_atom_list. Works (only) with atoms in altconf ""

Next: , Previous: Spin Search Functions, Up: More Scripting Functions

12.11 protein-db

Up: protein-db

12.11.1 protein-db-loops

— function: protein-db-loops imol_coords residue_specs imol_map nfrags


Cowtan's protein_db loops.

Next: , Previous: protein-db, Up: More Scripting Functions

12.12 Coot's Hole implementation

Up: Coot's Hole implementation

12.12.1 hole

— function: hole imol start_x start_y start_z end_x end_y end_z colour_map_multiplier colour_map_offset n_runs show_probe_radius_graph_flag


starting piont and end point, colour map multiplier and shall the probe radius graph be shown (dummy value currently).

Next: , Previous: Coot's Hole implementation, Up: More Scripting Functions

12.13 Drag and Drop Functions

Up: Drag and Drop Functions

12.13.1 handle-drag-and-drop-string

— function: handle-drag-and-drop-string uri

Where uri is a const std::string &

handle the string that get when a file or URL is dropped.

Previous: Drag and Drop Functions, Up: More Scripting Functions

12.14 Sectionless functions

Up: handle-drag-and-drop-string

12.14.1 ligand-search-make-conformers-scm

— function: ligand-search-make-conformers-scm

make conformers of the ligand search molecules, each in its own molecule.

Don't search the density.

Return a list of new molecule numbers

Next: , Previous: More Scripting Functions, Up: Top

13 Scheme Scripting Functions

Next: , Up: Scheme Scripting Functions

13.1 redefine-functions

— procedure: drag-intermediate-atom

scm aliases.

— procedure: set-find-hydrogen-torsion

fix typo of set-find-hydrogen-torsions (backward compatibility in case anyone was using that)

— procedure: cif-file-for-comp-id

(define residue->sdf-file residue-to-sdf-file)

Next: , Previous: redefine-functions, Up: Scheme Scripting Functions

13.2 jligand-gui

— procedure: launch-jligand-function

This happens when user clicks on the "Launch JLigand" button. It starts a jligand and puts it in the background.

— procedure: click-select-residues-for-jligand

This happens when user clicks on the "Select Residues for JLigand" (or some such) button. It expects the user to click on atoms of the two residues involved in the link.

Next: , Previous: jligand-gui, Up: Scheme Scripting Functions

13.3 get-recent-pdbe

— procedure: coot-thread-dispatcher

(coot-thread-dispatcher image-name thunk)

— procedure: dialog-box-of-buttons-with-async-ligands window-name geometry buttons close-button-label

If check-button-label is #f, don't make one, otherwise create with with the given label and "on" state.

— procedure: cache-or-net-get-image image-url image-name func

Get image-name (caller doesn't care how) and when it is in place run func.

This is a generally useful function, so it has been promoted outside of dig-table.

— procedure: refmac-calc-sfs-make-mtz pdb-in-file-name mtz-file-name mtz-refmaced-file-name

return refmac-result or #f

— procedure: pdbe-get-pdb-and-sfs-cif include-get-sfs-flag entry-id

Use progress bars

include-get-sfs-flag is either 'no-sfs or 'include-sfs

— procedure: pdbe-latest-releases-gui

Sameer Velankar says to get this file for the latest releases "" (note the end "/").

Next: , Previous: get-recent-pdbe, Up: Scheme Scripting Functions

13.4 jligand

— procedure: *to-jligand-secret-file-name*

JLigand sends Coot a file that contains filenames for the link and new dictionary/restraints.

— procedure: *jligand-home-env*

Define an environment variable for the place where jligand.jar resides in a canonical distribution

— procedure: *imol-jligand-link*

jligand internal parameter

— procedure: get-file-mtime file-name

this could be in utils

— procedure: start-jligand-listener

every fraction of a second look to see if *from-jligand-secret-link-file-name* has been updated. If so, then run the handle-read-from-jligand-file function.

Next: , Previous: jligand, Up: Scheme Scripting Functions

13.5 user-define-restraints

— procedure: run-prosmart imol-target imol-ref

target is my molecule, ref is the homologous (high-res) model

Next: , Previous: user-define-restraints, Up: Scheme Scripting Functions

13.6 cns2coot

— procedure: cns->coot 2fofc-coeffs fofc-coeffs model-pdb

Read in cns coeff-data (given filenames) and a pdb molecule filename to make maps.

Next: , Previous: cns2coot, Up: Scheme Scripting Functions

13.7 group-settings

— procedure: rapper-dir

The rapper installation dir. This is just a guess, that it is installed in the users home directory.

Next: , Previous: group-settings, Up: Scheme Scripting Functions

13.8 clear-backup

— procedure: delete-coot-backup-files action-type
— procedure: clear-backup-gui

Return #t or #f depending on if the GUI dialog was shown (it isn't show if there are no files to delete).

— procedure: clear-backups-maybe

Return a status, #f or #t, did the GUI run?

Note that clear-backup-gui returns either #t or #f too.

If this function returns #f, then coot_real_exit() just exits with coot_real_exit(). Otherwise we wait for the GUI.

Next: , Previous: clear-backup, Up: Scheme Scripting Functions

13.9 quat-convert

— procedure: matrix->quaternion

convert a view matrix to a view quaternion to set Coot view internals.

— procedure: set-view-matrix m00 m10 m20 m01 m11 m21 m02 m12 m22

Set the view matrix

Next: , Previous: quat-convert, Up: Scheme Scripting Functions

13.10 filter

— procedure: filter fn ls

Basic scheme function, filter the objects in list ls by function fn. e.g. (filter even? (list 0 1 2 3) -> '(0 2)

Next: , Previous: filter, Up: Scheme Scripting Functions

13.11 coot-gui

— procedure: run-gtk-pending-events
— procedure: coot-gui

Fire up the coot scripting gui. This function is called from the main C++ code of coot. Not much use if you don't have a gui to type functions in to start with.

— procedure: handle-smiles-go tlc-entry smiles-entry

The callback from pressing the Go button in the smiles widget, an interface to run libcheck.

— procedure: smiles-gui

smiles GUI

— procedure: generic-single-entry function-label entry-1-default-text go-button-label handle-go-function

Generic single entry widget

Pass the hint labels of the entries and a function that gets called when user hits "Go". The handle-go-function accepts one argument that is the entry text when the go button is pressed.

— procedure: generic-double-entry label-1 label-2 entry-1-default-text entry-2-default-text check-button-label handle-check-button-function go-button-label handle-go-function

handle-go-function takes 3 arguments, the third of which is the state of the check button.

if check-button-label not a string, then we don't display (or create, even) the check-button. If it *is* a string, create a check button and add the callback handle-check-button-function which takes as an argument the active-state of the the checkbutton.

— procedure: generic-multiple-entries-with-check-button entry-info-list check-button-info go-button-label handle-go-function

generic double entry widget, now with a check button


pass a the hint labels of the entries and a function (handle-go-function) that gets called when user hits "Go" (which takes two string aguments and the active-state of the check button (either #t of #f).

if check-button-label not a string, then we don't display (or create, even) the check-button. If it *is* a string, create a check button and add the callback handle-check-button-function which takes as an argument the active-state of the the checkbutton.

— procedure: molecule-centres-gui

A demo gui to move about to molecules.

— procedure: old-coot?

old coot test

— procedure: interesting-things-gui title baddie-list

We can either go to a place (in which case the element is a list of button label (string) and 3 numbers that represent the x y z coordinates) or an atom (in which case the element is a list of a button label (string) followed by the molecule-number chain-id residue-number ins-code atom-name altconf)

e.g. (interesting-things-gui "Bad things by Analysis X" (list (list "Bad Chiral" 0 "A" 23 "" "CA" "A") (list "Bad Density Fit" 0 "B" 65 "" "CA" "") (list "Interesting blob" 45.6 46.7 87.5)))

— procedure: interesting-things-with-fix-maybe title baddie-list

In this case, each baddie can have a function at the end which is called when the fix button is clicked.

— procedure: fill-option-menu-with-mol-options menu filter-function

Fill an option menu with the "right type" of molecules. If filter-function returns #t then add it. Typical value of filter-function is valid-model-molecule?

— procedure: fill-option-menu-with-coordinates-mol-options menu

Helper function for molecule chooser. Not really for users.

Return a list of models, corresponding to the menu items of the option menu.

The returned list will not contain references to map or closed molecules.

— procedure: fill-option-menu-with-number-options menu number-list default-option-value
— procedure: get-option-menu-active-molecule option-menu model-mol-list

Helper function for molecule chooser. Not really for users.

return the molecule number of the active item in the option menu, or return #f if there was a problem (e.g. closed molecule)

— procedure: get-option-menu-active-item option-menu item-list

Here we return the active item in an option menu of generic items

— procedure: molecule-chooser-gui-generic chooser-label callback-function option-menu-fill-function

Typically option-menu-fill-function is fill-option-menu-with-coordinates-mol-options

— procedure: molecule-chooser-gui

Fire up a coordinates/model molecule chooser dialog, with a given label and on OK we call the call-back-fuction with an argument of the chosen molecule number.

chooser-label is a directive to the user such as "Choose a Molecule"

callback-function is a function that takes a molecule number as an argument.

— procedure: map-molecule-chooser-gui

Fire up a map molecule chooser dialog, with a given label and on OK we call the call-back-fuction with an argument of the chosen molecule number.

chooser-label is a directive to the user such as "Choose a Molecule"

callback-function is a function that takes a molecule number as an argument.

— procedure: generic-chooser-and-entry chooser-label entry-hint-text defaut-entry-text callback-function

A pair of widgets, a molecule chooser and an entry. The callback-function is a function that takes a molecule number and a text string.

— procedure: generic-chooser-entry-and-file-selector chooser-label chooser-filter entry-hint-text default-entry-text file-selector-hint callback-function

Create a window

Return a pair of widgets, a molecule chooser and an entry. The callback-function is a function that takes a molecule number and 2 text strings (e.g chain-id and file-name)

chooser-filter is typically valid-map-molecule? or valid-model-molecule?

— procedure: generic-chooser-and-file-selector chooser-label chooser-filter file-selector-hint default-file-name callback-function

Create a window.

Return a pair of widgets, a molecule chooser and an entry. callback-function is a function that takes a molecule number and a file-name

chooser-filter is typically valid-map-molecule? or valid-model-molecule?

— procedure: coot-menubar-menu menu-label

If a menu with label menu-label is not found in the coot main menubar, then create it and return it. If it does exist, simply return it.

— procedure: add-simple-coot-menu-menuitem menu menu-item-label activate-function

Given that we have a menu (e.g. one called "Extensions") provide a cleaner interface to adding something to it:

activate-function is a th