|
||||||||||
| PREV NEXT | FRAMES NO FRAMES | |||||||||
See:
Description
| MBT Library Packages | |
|---|---|
| edu.sdsc.mbt | This package provides classes which define the core data storage containers for the MBT toolkit. |
| edu.sdsc.mbt.filters | This package provides classes which enable filtering or subsetting of a structure's constituent components. |
| edu.sdsc.mbt.gui | This package provides classes which implement graphical user interface (GUI) component classes for MBT. |
| edu.sdsc.mbt.io | This package provides classes which enable molecular biology data sets
(such as protein structures, sequence data, etc) to be loaded into an
MBT application as a Structure object. |
| edu.sdsc.mbt.util | This package provides classes which implement extra functionality on top of the core MBT classes (that is, capabilities that are not absolutely required by, or would otherwise overcomplicate, the core classes). |
| edu.sdsc.mbt.viewables | This package provides classes which enable molecular biology data to be represented as visible/renderable viewable objects, plus, this package defines a top-level StructureDocument object to encapsulate the complete state of these objects and properties. |
| edu.sdsc.mbt.viewers | This package provides classes which enable data to be graphically visualized or to be processed by other means based upon coordinated events (that is, any MBT component that wishes to observe data and then respond and interact to changes in that data). |
The Molecular Biology Toolkit (MBT) is a Java-based protein visualization and analysis toolkit. The toolkit provides classes for efficiently loading, managing and manipulating large amounts of protein structure and sequence data. The MBT also provides a rich set of graphical 3D and 2D visualization components which can be easily "pluged together" to produce applications having sophisticated graphical user interfaces. Yet, with all of the GUI components provided in the toolkit, the core data i/o and manipulation classes may be used to write completely non-graphical applications (say, for implementing pure analysis codes, or, for producing a non-graphical "back end" for a web-based application).
The MBT software package is not meant to be a replacement for the multitude of excelent stand-alone molecular visualization applications. Instead, it has been designed to enable molecular biologist to write custom molecular biology visualization and analysys tools. The toolkit hopefully enables scientific programmers to produce efficient programs with a minimal amount of effort and code. The authors of this toolkit hope that scientists will be able to use or extend the core toolkit classes in order to devlop new toolkit components and applications which uniquely suit their research and devlopment needs.
Java was chosen as the MBT implementation language for a number of reasons. Java programs can be run on a number of computing platforms (Sun, SGI, Windows, Linux) which are widely used in the field of molecular biology. Java provides a very capable programming environment for developing applications having sophisticated graphical user interfaces. Finally, developing a Java-based toolkit enables programs to be deployed in a web environment (such as the Protein Data Bank).
The MBT software components were designed with efficiency and ease-of-use in mind. In addition to the necessary data container objects, file parsers, and basic data manipulation code, we wanted to supply the developer with a set of high-level components which could be "plugged" together to produce advanced programs with a minimal amount of user code.
Among the more important high-level MBT components, programmers should
examine the capabilities of the StructureFactory
class, the StructureDocument class, and the
various Viewer sub-classes (eg: StructureViewer,
SequenceViewer, and
TreeViewer). With as little as SIX LINES of
MBT code, an application can be written which loads a protein structure
and opens a 3D structure viewing windows which enables interactive rendering
of a protein structure!
The high-level MBT objects (such as the Structure,
StructureDocument, and
Viewer classes) are plugged together using a
flexible event mechanism. When subsequent data changes, user/Viewer events
are generated, or other toolkit components generate an event, application
components will automatically syncronise state. For example, when a new
structure is loaded and added to an MbtController instance, all registered
Viewer modules will update their display to reflect the new structure.
Here's a diagram which depicts the organization of a reasonably capable MBT application:
The MBT data model is really quite simple. There is one parent data class
(the StructureComponent class) from which all other
data objects are derived (this class will be explained later). The top-level
container for a data-set is the Structure class.
A Structure provides access to a set of tables
of all sub-components (eg: Atom,
Residue, etc). Each record is accessed with "array-like"
methods (eg: getStructureComponentCount and getStructureComponent).
|
||||||||||
| PREV NEXT | FRAMES NO FRAMES | |||||||||