2 """This script shows how to create a system with multiple copies of the
4 We also create some cross-links which take into account the ambiguity.
5 The key to ambiguity is using the same molecule name for ambiguous copies.
6 That way when you perform Selection it automatically finds all relevant
20 import ihm.cross_linkers
32 st1 = s.create_state()
33 st2 = s.create_state()
38 m1A = st1.create_molecule(
'ProtA', sequence, chain_id=
'A')
39 m1A.add_representation(m1A, resolutions=[1])
44 m1B = m1A.create_clone(chain_id=
'B')
45 m1C = st1.create_molecule(
'ProtC', sequence, chain_id=
'C')
46 m1C.add_representation(m1C, resolutions=[1])
49 m2A = st2.create_molecule(
'ProtA', sequence, chain_id=
'A')
50 m2A.add_representation(m2A, resolutions=[1])
51 m2C = st2.create_molecule(
'ProtC', sequence, chain_id=
'C')
52 m2C.add_representation(m2C, resolutions=[1])
62 for mol
in (m1A, m1B, m1C, m2A, m2C):
63 dof.create_flexible_beads(mol, max_trans=0.1)
64 dof.create_super_rigid_body(mol)
73 lines =
'''id,mol1,res1,mol2,res2,score
76 tf = tempfile.NamedTemporaryFile(delete=
False, mode=
'w')
82 kw.set_unique_id_key(
"id")
83 kw.set_protein1_key(
"mol1")
84 kw.set_protein2_key(
"mol2")
85 kw.set_residue1_key(
"res1")
86 kw.set_residue2_key(
"res2")
87 kw.set_id_score_key(
"score")
89 xldb.create_set_from_file(tf.name)
100 linker=ihm.cross_linkers.dss)
102 output_objects.append(xlr)
104 dof.get_nuisances_from_restraint(xlr)
108 for mol
in (m1A, m1B, m1C, m2A, m2C):
111 output_objects.append(cr)
115 included_objects=(m1A, m1B, m1C))
117 output_objects.append(evr1)
119 included_objects=(m2A, m2C))
121 output_objects.append(evr2)
139 monte_carlo_sample_objects=dof.get_movers(),
140 global_output_directory=
'ambiguity_output/',
141 output_objects=output_objects,
142 monte_carlo_steps=10,