Suns: The Structural Search Engine
Suns
provides the missing search engine for the Protein Data Bank complete with a
PyMOL
interface:
- Point and click within
PyMOL
to build search queries
- Search for sophisticated all-atom motifs
-
PyMOL
streams aligned search results into your session
- Interactively build motifs using search results
- Validate modeled or designed structures against real crystal structures
PyMOL Plugin
The easiest way to use
Suns
is through the
PyMOL
plugin. You can install this plugin in two ways:
- Using
PyMOL
's plugin manager (only available to latest incentive builds of PyMOL
).
- Using a Debian/Ubuntu package (assuming you also installed
PyMOL
this way, too)
Requirements
PyMOL
- An internet connection (or a locally installed
Suns
search engine)
Install using Plugin Manager
Download Plugin
- Download the
Suns
plugin (suns.zip
).
- Open
PyMOL
- Select
Plugin -> Plugin Manger
from the menu
- Go to the
Install New Plugin
tab
- Click
Choose file...
and select the downloaded plugin (suns.zip
)
If you have an old or non-incentive
PyMOL
installation that uses the old Plugin Manager then you may instead run this
cross-platform Python-based Suns installer to add the Suns search plugin to
PyMOL
.
Install using Debian/Ubuntu Package
Download Package
- Download the
pymol-suns-search
package
- Install the package using your system's package manager
Tutorial
Start
PyMOL
and load the structure for glucose binding protein (PDB ID:
2GBP
). You can either:
- use the
Plugin -> PDB Loader Service
menu option and choose 2gbp
, or
- type
fetch 2gbp
at the PyMOL
command prompt.
-
Glucose binding protein - PDB ID 2gbp
Select the
Plugin -> Suns Search
menu option to open the search wizard, which lets you build and submit structural search queries:
-
The wizard menu
-
The search wizard
Left-click a carboxyl group to select it and add it to your search query:
-
Selected carboxyl group
Suns
pre-indexes chemical motifs from protein structures and the
PyMOL
search wizard automatically expands your selection to pre-indexed motifs, including:
- carboxyls,
- peptides,
- hydroxyls, and
- phenyl groups.
Click "Search" to search for the carboxyl motif. The search wizard contacts the public search engine at
suns.degradolab.org
and streams in aligned search results:
-
Carboxyl search results
PyMOL
uniquely colors each new result, but you can impose a uniform coloring by setting all carbons to green:
-
Set the backbone to green
-
The re-colored search results
Some motifs match multiple residues. For example, the carboxyl search query will match carboxyls from both aspartate acid and glutamate.
Other motifs uniquely identify residues, such as linkers. Click on any search result's linker and the wizard will expand the selection to include the remainder of the side chain. The linker uniquely identifies the residue as aspartate or glutamate.
-
Selection expanded to include linker
Suns
saves search results that you add to your search query by renaming them to end with
_save
so that future searches don't delete them.
Click "Search" to search for the expanded selection. The new search will automatically delete old search results. To save them, you must copy them to a new object. You can also remove results manually at any time using "Clear Results".
The search engine will return several less-than-perfect matches since searches default to an RMSD cutoff of 1.0 Angstroms:
-
Loose results
Use the "RMSD Cutoff" option to improve the result quality. Set the RMSD to 0.1 Angstroms and redo the search, which will considerably tighten up the linker:
-
Change the RMSD Cutoff to 0.1 Angstroms
-
Tight results
You don't have to limit yourself to contiguous motifs. You can search for disconnected elements, too. Let's hide everything except aspartate and arginine to find a candidate salt bridge:
hide everything, not (resn arg or suns_query)
This reveals a cluster of arginines:
-
Cluster of arginines near the aspartate
Pick any arginine's guanidinium group and loosen the search cutoff to 0.5 RMSD to search for geometrically similar salt bridges:
-
Several identical salt bridge matches
Search results only bring in a 15 Angstrom cube around the match, but sometimes we desire more context for a given search result. To pull in the original structure, just disable all selections except the desired result(s) and click "Fetch Full Contexts":
-
Enable the selections you wish to expand
-
Click "Fetch Full Contexts"
This will fetch the original structures from the Protein Data Bank and align them to their respective results:
-
Before adding context
-
After adding context
Suns
also supports backbone peptide searches. Reset the wizard by clicking:
- Clear Results: Removes search results ending with
_result
- Clear Selection: Empties the
suns_query
selection
- Clear Saved: Removes saved results ending with
_save
- Clear Contexts: Removes fetched contexts ending with
_fetch
Then type:
show all
Now select two consecutive peptide bonds from a helix and search with a cutoff of 0.3 Angstroms. The search results extend the initial query for several helical turns in each direction:
-
Inferred helical context
You can also search for residues V207 and V232 and include both the valine and backbone atoms in your search query: in the preferred surrounding backbone:
-
Double valine selection
Searching at 0.4 Angstrom RMSD cutoff brings in an entire beta sheet worth of context:
-
Inferred beta sheet context
Suns
plays well with other
PyMOL wizards, including the mutagenesis wizard. We can combine the two wizards to infer contextual preferences for different rotamers.
Use the mutagenesis wizard to rotate V232 counterclockwise and repeat the search:
-
Only one match to the search query
The number of matches drops precipitously, indicating an unfavorable motif. You can use
Suns
as a crude measure of the quality of modeled or designed protein motifs.
Command Line Client
suns-cmd
is a command line client to the Suns protein search engine. Use
suns-cmd
to automate searches for scripting purposes.
Installation
You can install the command line client from the following source package:
Download suns-cmd source
To install the source package, first install the
Haskell Platform.
$ cabal update
$ cabal install
Quick Start
To use
suns-cmd
, just create a directory to store the results:
$ mkdir results
... and feed in the motif to search to the program's standard input. This source package provides example motifs in the
test/
subdirectory:
$ ~/.cabal/bin/suns-cmd -d results/ -r 0.2 < test/figure2/search1.pdb
The
-d
parameter tells the program to store all results in the
results/
directory:
$ ls results
1tqg_0.pdb 1v7w_2.pdb 2fr5_1.pdb 3a6r_0.pdb 3cuz_1.pdb 3fke_0.pdb
1tqg_1.pdb 1v7w_3.pdb 2fr5_2.pdb 3a6r_1.pdb 3cuz_2.pdb 3fke_1.pdb
...
Each result is labeled by the structure name followed by a number which distinguishes results originating from the same structure. These results are already aligned to the original search query.
This program also accepts the following options:
suns-cmd: The Suns search command line client
Usage: suns-cmd [--hostname STRING] [-r|--rmsd DOUBLE] [-n|--num INT] [-s|--seed INT] [-d|--directory FILEPATH]
Send search requests and store results as PDB files
Available options:
-h,--help Show this help text
--hostname STRING Search engine address (default: suns.degradolab.org)
-r,--rmsd DOUBLE RMSD cutoff (default: 1.0)
-n,--num INT Number of results (default: 100)
-s,--seed INT Randomization seed (default: 0)
-d,--directory FILEPATH Results directory (default: ./)
Report bugs to
Search Engine
The public
Suns
server at
suns.degradolab.org
imposes three limitations in order to handle a high search volume:
- Queries must fit inside a 15 Angstrom box
- You can only search on pre-defined protein substructures
- Searches time out after 10 seconds
If you set up your own local search engine, you can bypass these limitations, allowing you to:
- Change the database of indexed protein structures
- Index ligands or alternative protein substructures
- Run search queries without time limits
For instructions on how to do this, download the source package at
https://github.com/Gabriel439/suns-cmd and follow the instructions to build and customize your own local search engine.
Support
To report bugs, request features, or ask for support, contact the official mailing list at
.