The SPRUCE application provides the facilities to prepare biomolecules (i.e. proteins and nucleic acids) for modeling tasks.


The SPRUCE distribution comprises these applications:


The SPRUCE program is used for biomolecule preparation, from experimental or modeled structures. The process involves, 1) expansion of the asymmetric unit to the biological unit (if structure is from an X-ray crystallography experiment and it is necessary), 2) enumeration (default) or collapse of alternate locations, 3) building missing pieces e.g. partial sidechains, capping chain breaks, and modeling missing loops, 4) placement and optimization of hydrogen atoms including tautomer enumeration of ligands and cofactors, as well as evaluation of those tautomer states in the biomolecule structure.


The Superposition program is used to superpose biomolecule structures onto a reference structure. Several different superposition methods are included, that are either based on sequence or secondary structure.

Utility Programs

The following utility programs are also included in this distribution:


The LoopDB_Builder program is used to build a database of known loops from a set of protein structures. This database can then be passed as an option to SPRUCE to enable loop modeling of gaps in protein structures.


The GetStructure utility program can be used to download biomolecular structure files (PDB, mmCIF, mtz) for downstream prepping with SPRUCE.


The Du2pdb utility program can be used to convert DesignUnit oedu files to PDB file format.


The EnumSites program can be used to enumerate sites from prior bio-design units produced by SPRUCE. This is particularly useful when enumerating potentially allosteric apo sites, that where not known when the structure was prepared the first time - enumeration ensures that the structure is not re-prepared but just focused into a site of interest.

Utilizing a Loop Template Database

Included in the SPRUCE product is a large database of loop templates, described further in the Spruce theory section.

To use it during prep:

-loop_db_filename rcsb_spruce.loop_db

The database can be appended to (updated) using the LoopDB_Builder utility. This would be in the event that the user has a collection of internal/proprietary structures, or if specific structures are released to the public PDB between OpenEye updates of the database that are crucial for a given target that is less well described by the existing templates.

Loop building will only be done when a loop template database is provided.

For more information, see the theory explanation for the Spruce toolkit and the Iridium chapter of that toolkit.