IMP logo
IMP Reference Guide  develop.7400db2aee,2024/11/24
The Integrative Modeling Platform
atomistic.py
1 ## \example pmi/atomistic.py
2 """This script shows how to simulate an atomic system with MD,
3 with a secondary structure elastic network to speed things up.
4 """
5 
6 import IMP
7 import IMP.atom
8 import IMP.rmf
9 import IMP.pmi
10 import IMP.pmi.topology
11 import IMP.pmi.dof
12 import IMP.pmi.macros
14 import sys
15 
16 IMP.setup_from_argv(sys.argv, "Simulation of an atomic system")
18  print("This example is too slow to test in debug mode - run without")
19  print("internal tests enabled, or without the --run-quick-test flag")
20  sys.exit(0)
21 
22 # Setup System and add a State
23 mdl = IMP.Model()
25 st1 = s.create_state()
26 
27 # Read sequences and create Molecules
29 gcp2 = st1.create_molecule("GCP2", sequence=seqs["GCP2_YEAST"], chain_id='A')
30 
31 # Add structure. This function returns a list of the residues that now
32 # have structure
33 a1 = gcp2.add_structure(IMP.pmi.get_example_path('data/gcp2.pdb'),
34  chain_id='A')
35 
36 # Add structured part representation and then build
37 gcp2.add_representation(a1, resolutions=[0])
38 print('building molecule')
39 hier = s.build()
40 
41 # add charmm restraints
42 print('adding restraints')
44 charmm.add_to_model()
45 
46 # add elastic network on secondary structure units
47 sses = IMP.pmi.io.parse_dssp(IMP.pmi.get_example_path('data/gcp2.dssp'), 'A',
48  name_map={'A': 'GCP2'})
49 all_rs = []
50 for sse in sses['helix']+sses['beta']:
52  selection_tuples=sse,
53  strength=10.0,
54  dist_cutoff=5.0,
55  ca_only=True,
56  hierarchy=hier)
57  all_rs.append(er)
58  er.add_to_model()
59 
60 # setup MD and run
62 md_ps = dof.setup_md(gcp2)
64  mdl,
65  root_hier=hier,
66  molecular_dynamics_sample_objects=md_ps,
67  molecular_dynamics_steps=5,
68  # set >0 to store best PDB files (but this is slow to do online)
69  number_of_best_scoring_models=0,
70  # increase number of frames to get better results!
71  number_of_frames=1,
72  global_output_directory='atomistic_output/')
73 rex.execute_macro()
Simplify creation of constraints and movers for an IMP Hierarchy.
Restraints for keeping correct stereochemistry.
bool get_is_quick_test()
Definition: flags.h:183
A macro to help setup and run replica exchange.
Definition: macros.py:65
Set of Python classes to create a multi-state, multi-resolution IMP hierarchy.
Strings setup_from_argv(const Strings &argv, std::string description, std::string positional_description, int num_positional)
def parse_dssp
Read a DSSP file, and return secondary structure elements (SSEs).
Add harmonic restraints between all pairs.
std::string get_example_path(std::string file_name)
Return the full path to one of this module's example files.
Protocols for sampling structures and analyzing them.
Definition: macros.py:1
Represent the root node of the global IMP.atom.Hierarchy.
Class for storing model, its restraints, constraints, and particles.
Definition: Model.h:86
Create movers and set up constraints for PMI objects.
Python classes to represent, score, sample and analyze models.
A dictionary-like wrapper for reading and storing sequence data.
Functionality for loading, creating, manipulating and scoring atomic structures.
Support for the RMF file format for storing hierarchical molecular data and markup.