The Discover Program - Introduction and Overview


Click to jump to:


Introduction to the Discover Program

Using the Discover Program through the Insight Interface

Running the Discover Program in Standalone Mode

A Discover run can be set up in a standalone manner, completely outside the Insight environment. To do this, you need three files:

The documentation includes:

The BTCL Language

What is BTCL?

BTCL is a general-purpose script language which supports BTCL commands and user scripts.

How is BTCL Used?

BTCL commands are used to set up and control Discover simulation runs. They are based on procedures in the BTCL language which access Discover functionality. For more detail and examples see:


Overview of BTCL Commands

Calculation Commands

The primary BTCL commands are calculation commands: energy, minimize, and dynamics. As the names suggest, energy performs a single energy and energy derivative evaluation, minimize modifies atom coordinates to minimize energy, and dynamics performs a simulation of molecular dynamics.

Commands for Calculation Setup and Analysis

Calculations are set up through the use of commands for input (begin, readFile, reset), output (output, print, writeFile), and control (atomMovability, energyContribution, forcefield, restraint, pseudoAtom). Analysis commands (analysis, diffraction, vibrationalAnalysis) allow you to perform additional analysis of output results. The peek command can be used to monitor the progress of minimization and dynamics calculations.

Input Commands

The BTCL commands begin, readFile, and reset all read information into the Discover program from external files. The begin command is generally placed at the start of a run_name.inp file to read in the molecular data files and a forcefield file (see printed User Guide for forcefield discussion). The readFile command is used to read in a data file created by a previous Discover or Insight run (e.g., a coordinate snapshot from an archive file). It also allows you to work with multiple systems. The reset command is used to reread the molecular data files and forcefield. All information associated with the current molecular system (e.g., coordinates, energy expression) is lost with this command. However, the settings of command defaults (e.g., for dynamics) are unchanged.

Output Commands

The output command specifies amount of output desired. The print command (which must be part of a minimize or dynamics command) generates output of system properties to various file types. The writeFile command is used to write a data file that can be read by subsequent Discover or Insight runs.

Control Commands

The atomMovability command allows you to fix the position of an atom or disregard its contribution to total energy throughout a calculation. The energyContribution command allows you to specify energy contributions of your own design. The forcefield command allows you to select a forcefield and tailor the contributions of built-in energy terms. In particular, it allows selection of a specific nonbond method (e.g. cell multipole). The restraint command allows you to impose distance, torsion, or angle restraints of various forms on selected atoms. The pseudoAtom command allows you to create collections of atoms which are to be treated as individual atoms.

Defining and Using Your Own Procedures

One of the most useful features of BTCL version 95.0 is that you can quickly define and use your own procedures. Procedures defined in files named filename and located in the current directory of the Discover run are automatically accessible. Procedures defined in any other files may be used by including:

  source filename
in the run_name.inp file. Here, filename is the full path to the procedure-definition file.

Performance and Convenience

Interpretive script languages are convenient for user applications. It is generally true, however, that they do not provide high performance. To address this issue, BTCL provides low-level commands, geometry and vector, that support high-performance, low-level geometric and mathematical manipulations. These commands operate on arbitrary lists of scalars or coordinates with performance comparable to that of compiled code. This allows you to construct your own analysis and energy terms for incorporation into the Discover program. Vector operations currently employ a function-call interface.

If you would like to avoid dealing with geometric and mathematical details, a higher-level command (molGeom) allows you to work directly with molecules, monomers, atoms, and their relationships. molGeom employs some of the same performance enhancement techniques as geometry and vector. There is a bit more overhead involved in the use of molGeom, but its performance should be fine for most purposes. You will probably want to work first with molGeom, and employ the lower-level commands only as necessary. The molGeom command can be used to get and set geometric properties of molecules, such as the coordinates of atoms, bond lengths, bond angles, etc.

Databases

Information that is read into the Discover program is organized into databases for subsequent use. Each distinct molecular system resides in a separate database with the same name as the molecular system. You can make your own databases and perform various operations on them (or on the system databases) with the database command and database handle operations. The database command supports database creation, deletion, and other high-level operations. (Use of the database command to create or delete system databases is not recommended.) The database handle operations are an extension of the database command. They are used to access the data within a particular database.

In addition to standard database search operations provided by the database handle operations, there are special data acquisition operations supported by the following commands:

The subset command is used to create or access subsets in a database. A subset is a particular type of database table which is designed to be compatible with the mechanism of the select command as well as with standard database operations.

Objects

The object command is used to add information to or extract information from a BTCL object. A BTCL object is, in essence, a list of entries of arbitrary type, for instance, coordinates. BTCL objects (of differing types) can be created with various commands, including object, vector, geometry, molGeom, database, database handle operations, select, and subStructure. A BTCL object is deleted when the BTCL variable used to store its identity (or handle) is unset. As noted previously, objects are used to avoid processing burdensome amounts of data at the BTCL level. The object name is passed from BTCL to compiled code which deals with the underlying data.

Exiting a BTCL Session

If you want to end a BTCL session without starting a Discover run, enter exit, quit, or <Ctrl> d at the BTCL prompt.


Annotated Outline of the Theory & General Methodology Documentation


Main access page Other access.

Copyright Biosym/MSI