• Docs »
  • Integration with Coot

Integration with Coot

Due to its command line nature, AFITT-CL tools (such as FLYNN) can be integrated with other crystallographic applications such as Coot (and WinCoot). OpenEye supplies a simple script that allows users of Coot to use FLYNN directly from the Coot GUI.

This script adds “Fit Ligand...” option, a “Make cif...” and a “Fit sidechains...” options to the extensions menu.

_images/cootui001.png

Coot Integration

_images/cootui001-08.png

COOT 0.8 Integration

Using FLYNN

Activating the “Fit Ligand...” menu option from the Extensions menu opens up the FLYNN dialog:

_images/cootui002.png

FLYNN Dialog to fit a ligand

To use the FLYNN dialog, select the Ligand to fit from the pull-down menu. Next select the Protein and then the desired map file.

If the map is a difference map, click on the “Difference Map” to optimize the analysis. Then click on Fit.

The output of FLYNN will appear in the console window used to start coot. When FLYNN is complete, coot will automatically load the resulting ligands.

FLYNN Advanced Options

FLYNN’s coot interface includes access to some of the advanced options contained in the application.

Box option

Unlike the AFITT GUI interface, coot does not have a method to select density blobs to be used for fitting. If the density is poor, flynn can use the input ligand as a bounding box to fit to the surrounding density.

Check option

Running check runs flynn without performing any fitting operation. When the check is completed, an html report is generated and opened in a webbrowser (if available). Since coot only display’s single bonds, the report includes a depiction of the ligand being fit in order to verify that the ligand being analyzed is actually correct.

The report also indicates any problems or issues with the ligand or the map being fit against.

MMFF94s option

This option uses the MMFF94s variant of the MMFF94 forcefield to enforce planar aniline configurations. See the FLYNN Advanced Parameters command line flags for more details.

Using WriteDict

Activating the “Make Dictionary...” menu option opens up the WRITEDICT dialog:

_images/writedict.png

Writedict Dialog

To use the WRITEDICT dialog, simply select the protein or ligand from the pull-down menu and click “ok”. Coot will automatically open up the resulting dictionary and pdb files generated by WRITEDICT.

Note that new ”.pdb” files are generated when using writedict, this is because hydrogen may have been relabeled and covalent LINK records may have been inserted into the pdb file.

WRITEDICT Advanced Options

FLYNN’s coot interface includes access to some of the advanced options contained in the application.

planarAniline option

Similar to FLYNN’s MMFF94s option, this enforces planar aniline nitrogen configurations. Note that since this is an approximation of the MMFF94s forcefield using planar constraints, it is not called MMFF94s. See the WRITEDICT Output Options command line flags for more details.

Using the ROTFIT Interface

Activating the “Fit Sidechains...” menu option opens up the ROTFIT dialog:

_images/rotfit.png

Writedict Dialog

To use the ROTFIT dialog, a protein and mtz map must be loaded into coot. The ROTFIT interface deduces the appropriate regular and difference map to use and currently cannot handle non standard or unique column names.

ROTFIT options

ROTFIT is a program that fits protein side-chains into the surrounding density. It utilizes both regular and difference density to place side-chains appropriately searching both rotamers and peptide flips in addition to an optional full MMFF94-driven optimization into density.

Fixup Rotamer

Rotamer fixups selects from the probable rotamer sets to find the rotamer that best matches the surrounding density.

Fixup Pep-flip

Peptide flips are enumerated and the one that best matches the surrounding density is selected.

Fixup MMFF/Shape

Full MMFF/Shape minimization is performed on compatible residues attempting to fit the residue into the locally surrounding density.

Installing Coot Interface

The coot script file “flynn.scm” is included in your FLYNN distribution in the “etc” directory. The following steps are required to integrate FLYNN with coot.

The current default version of COOT is 0.7, to install another version please look for the files with the appropriate extension, i.e. “coot-0.8.scm” for coot 0.8.

  1. Install coot (at least version 0.3.3)

  2. Install flynn and writedict somewhere in your path. If you can’t run FLYNN from the command line, neither can Coot.

  3. Place flynn.scm to the coot extensions directory. This is the directory where the files extensions.scm and coot.scm are located.

    This directory may be one of the following:

    /usr/local/coot/scheme /usr/local/xtal/coot64/share/coot/scheme/

    on OSX the install for Coot 0.7/0.8 is most likely

    /Library/Coot/share/coot/scheme/

    Typing which coot may help locate these directories.

  4. Copy flynn.scm to the extension list in coot.scm which is in the same directory as extensions.scm. Please use the appropriate file for your version of coot.

    To accomplish this, change the following code in coot.scm for coot 0.7

    (define load-all-scheme
      (lambda (use-gui?)
        (let ((pre-list (list "filter.scm"
                         "coot-utils.scm"))
             (post-list (list "coot-lsq.scm"
                              "shelx.scm"
    

    to look like this:

    (define load-all-scheme
      (lambda (use-gui?)
        (let ((pre-list (list "filter.scm"
               "coot-utils.scm"))
               (post-list (list "coot-lsq."
                                "shelx.scm"
                                "flynn.scm"
    
  5. Finally, make the following changes to extensions.scm

    For coot 0.3.3 to 0.5 near the top of the file, change:

    (if (defined? 'coot-main-menubar)
       (let ((menu (coot-menubar-menu "Extensions")))
    

    to become:

    (if (defined? 'coot-main-menubar)
       (let ((menu (coot-menubar-menu "Extensions")))
         (add-simple-coot-menu-menuitem menu "Flynn..."
           (lambda () (do-flynn-gui)))
         (add-simple-coot-menu-menuitem menu "Make Dictionary..."
           (lambda () (do-flynn-gendict-gui)))
        (add-simple-coot-menu-menuitem menu "Fit Sidechains..."
           (lambda () (do-flynn-fitsidechains-gui)))
    

    For coot 0.6.x, near the top of the file, change:

    (if (defined? 'coot-main-menubar)
        ;; ---------------------------------------------
        ;;           extensions
        ;; ---------------------------------------------
        ;;
       (let ((menu (coot-menubar-menu "Extensions")))
    

    to become:

    (if (defined? 'coot-main-menubar)
         ;; ---------------------------------------------
         ;;           extensions
         ;; ---------------------------------------------
         ;;
      (let ((menu (coot-menubar-menu "Extensions")))
         (add-simple-coot-menu-menuitem menu "Flynn..."
           (lambda () (do-flynn-gui)))
         (add-simple-coot-menu-menuitem menu "Make Dictionary..."
           (lambda () (do-flynn-gendict-gui)))
        (add-simple-coot-menu-menuitem menu "Fit Sidechains..."
           (lambda () (do-flynn-fitsidechains-gui)))
    

    For coot 0.8 you should make the change to the “Modules” section as shown below:

    ;; ---------------------------------------------------------------------
    ;;     Modules
    ;; ---------------------------------------------------------------------
    
    (add-simple-coot-menu-menuitem
     submenu-modules "Fit Ligand..."
     (lambda ()
       (do-flynn-gui)))
    
    (add-simple-coot-menu-menuitem
     submenu-modules "Make cif..."
     (lambda ()
       (do-flynn-gendict-gui)))
    
    (add-simple-coot-menu-menuitem
     submenu-modules "Fit sidechains..."
     (lambda ()
       (do-flynn-fitsidechains-gui)))
    

Installing WinCoot Interface

WinCoot does not support writing extensions in GUILE. Extensions may be written in PYTHON, however.

The WinCoot scheme script file flynn.py is included in your FLYNN distribution in the utilities/flynn/wincoot directory. The following steps are required to integrate FLYNN with WinCoot.

  1. Install WinCoot (at least version 0.3.3)

  2. Install flynn and writedict somewhere in your path. If you can’t run FLYNN from the command line, neither can WinCoot.

  3. Place this file flynn.py in the coot extensions directory where extensions.py is located.

    Typically, this directory is C:WinCootsharecootscheme.

  4. Add flynn.py to the extension list in coot_load_modules+gui.py. (same directory as extensions.py) before extensions.py

    For example:

    "coot-gui.py",
    "flynn.py",
    "extensions.py",
    
  5. Add the following lines to the file named extensions.scm (this will be in your coot distribution)

    The easiest place to put this right after the line

    menu = coot_menubar_menu("Extensions")
    

    here are the lines to add:

    add_simple_coot_menu_menuitem(menu, "Fit Ligand...", do_flynn_gui)
    add_simple_coot_menu_menuitem(menu, "Make CIF...", do_writedict_gui)
    add_simple_coot_menu_menuitem(menu, "Fit Sidechains...",
      do_fitsidechains_gui)
    

Flynn Takes Forever!

The most common case of FLYNN taking forever is accidentally choosing a protein in the ligand drop down menu. Trust us, it’s been done. As mentioned before, FLYNN has no safe-guard for this.