IMP logo
IMP Reference Guide  2.12.0
The Integrative Modeling Platform
make_cfg.py
1 #!/usr/bin/env python
2 from __future__ import print_function
3 from IMP.npctransport import *
4 import sys
5 
6 if(len(sys.argv) > 1):
7  outfile = sys.argv[1]
8 else:
9  outfile = IMP.create_temporary_file_name("config", "pb")
10 
11 
12 def get_basic_config():
13  config = Configuration()
14  IMP.npctransport.set_default_configuration(config)
15  config.statistics_fraction.lower=0.9
16  #config.dump_interval=1
17  config.interaction_k.lower=10
18  config.interaction_range.lower=1
19  # create_range(config.backbone_k, .2, 1, 10
20  config.backbone_k.lower=1
21  #config.time_step_factor.lower=0.3
22  config.time_step_factor.lower=3
23  #create_range(config.rest_length_factor, .5, 1, 10)
24  config.excluded_volume_k.lower=20
25  config.nonspecific_range.lower=2
26  config.nonspecific_k.lower=0.01
27  config.slack.lower = 8
28  config.number_of_trials=1
29  config.dump_interval_ns=0.1
30  config.simulation_time_ns=500
31  config.angular_D_factor.lower=0.3 #increased dynamic viscosity relative to water?
32  config.statistics_interval_ns=0.05
33  ###
34  #simulation bounding volumes:
35  config.box_is_on.lower=1
36  config.box_side.lower=400
37  config.slab_is_on.lower=0
38  config.slab_thickness.lower=150
39  config.tunnel_radius.lower=75
40  return config
41 
42 
43 def add_interactions_for_fg(fg_name,
44  k_kap_lower,
45  k_kap_upper = 0, # relevant only if k_kap_steps > 1
46  k_kap_steps = 1):
47  interactionFG_KAP= IMP.npctransport.add_interaction(config,
48  name0=fg_name,
49  name1="my_kap",
50  interaction_k=k_kap_lower,
51  interaction_range=2)
52  if(k_kap_steps > 1):
53  create_range(interactionFG_KAP.interaction_k,
54  k_kap_lower, k_kap_upper,
55  steps = k_kap_steps)
56  interactionFG_CRAP= IMP.npctransport.add_interaction(config,
57  name0=fg_name,
58  name1="my_crap",
59  interaction_k=0,
60  interaction_range=0)
61 
62 # ********* MAIN: *********
63 try:
64  import google.protobuf
65 except ImportError:
66  print('npctransport python module requires the python protobuf package.\n'
67  'One way to install the protobuf python package is using pip - "pip install protobuf" on a local'
68  ' python installation, see documentation of pip.')
69  exit(-1)
70 config= get_basic_config()
71 config.dump_interval_ns=1
72 config.simulation_time_ns=0.01
73 config.box_is_on.lower=1
74 config.box_side.lower=200
75 config.slab_is_on.lower=0
76 config.slab_thickness.lower=150
77 config.tunnel_radius.lower=90
78 
79 fg= IMP.npctransport.add_fg_type(config,
80  type_name="my_fg",
81  number_of_beads=4,
82  number=1,
83  radius=6,
84  interactions=1,
85  rest_length_factor = 1.5)
86 kap= IMP.npctransport.add_float_type(config,
87  type_name="my_kap",
88  number=1,
89  radius=25,
90  interactions=12)
91 nonspecifics= IMP.npctransport.add_float_type(config,
92  type_name="my_crap",
93  number=1,
94  radius=25,
95  interactions=0)
96 ###########
97 # fg with kaps / craps
98 add_interactions_for_fg("my_fg",
99  k_kap_lower=1,
100  k_kap_upper=20,
101  k_kap_steps=15)
102 #############
103 
104 # non-specific attraction
105 config.nonspecific_range.lower= 1.0
106 config.nonspecific_k.lower= 1.5
107 #create_range(config.nonspecific_range, 0.1, 2, steps=3)
108 #create_range(config.nonspecific_k, 0.1, 10, steps=5)
109 
110 # internal FG-FG
111 interactionFG_FG= IMP.npctransport.add_interaction(config,
112  name0= "my_fg",
113  name1= "my_fg",
114  interaction_k= 1.5,
115  interaction_range= 2)
116 ##############
117 create_range(interactionFG_FG.interaction_k,
118  1, 20, steps = 15)
119 ##############
120 
121 # dump to file
122 f=open(outfile, "wb")
123 f.write(config.SerializeToString())
124 print(config)
std::string create_temporary_file_name(std::string prefix="imp_temp", std::string suffix="")
Create a temporary file.