IMP logo
IMP Manual  for IMP version 2.16.0
design.md
1 Design of %IMP {#design}
2 ==============
3 
4 The Integrative Modeling Platform (%IMP) software implements the
5 integrative modeling procedure [described above](@ref procedure).
6 Integrative modeling
7 problems vary in size and scope, and thus %IMP offers a great deal of
8 flexibility and several abstraction levels as part of a multi-tiered
9 platform:
10 
11 <img class="textfigure" src="imp-design.png"
12  alt="IMP software design">
13 
14 The next parts of the manual will cover the use of the various parts of
15 %IMP, starting from the simplest:
16 
17  - [Chimera(X) tools/web services](@ref web_services):
18  we provide a number of web services that
19  use %IMP at [https://salilab.org/](https://salilab.org). Additionally,
20  the [UCSF Chimera](https://www.cgl.ucsf.edu/chimera/) and
21  [UCSF ChimeraX](https://www.rbvi.ucsf.edu/chimerax/) packages include
22  several tools that use %IMP. These are the simplest to use because they
23  do not require an %IMP installation.
24 
25  - [Domain-specific applications](@ref cmdline):
26  we provide a number of command-line tools, designed to be used by %IMP
27  users with no programming experience, that provide user-friendly
28  applications to handle specific tasks, such as fitting of proteins into
29  a density map of their assembly, or comparing a structure with the
30  corresponding SAXS profile.
31 
32  - [PMI](@ref rnapolii_stalk):
33  the _Python Modeling Interface_ (PMI) is a powerful set of tools designed
34  to handle all [steps of the modeling protocol](@ref procedure) for
35  typical modeling problems. It is designed to be used by writing a set of
36  Python scripts.
37 
38  - [IMP C++/Python library](@ref library_intro): at the lowest level,
39  %IMP provides building blocks and tools to allow methods developers to
40  convert data from new experimental methods into spatial restraints,
41  to implement optimization and analysis techniques, and to implement an
42  integrative modeling procedure from scratch; the developer can use the
43  C++ and Python programming languages to achieve these tasks.