2 """This script shows how to create a system with multiple copies of the same molecule.
3 We also create some crosslinks which take into account the ambiguity.
4 The key to ambiguity is using the same molecule name for ambiguous copies.
5 That way when you perform Selection it automatically finds all relevant molecules.
30 st1 = s.create_state()
31 st2 = s.create_state()
36 m1A = st1.create_molecule(
'ProtA',sequence,chain_id=
'A')
37 m1A.add_representation(m1A,resolutions=[1])
38 m1B = m1A.create_clone(chain_id=
'B')
42 m1C = st1.create_molecule(
'ProtC',sequence,chain_id=
'C')
43 m1C.add_representation(m1C,resolutions=[1])
46 m2A = st2.create_molecule(
'ProtA',sequence,chain_id=
'A')
47 m2A.add_representation(m2A,resolutions=[1])
48 m2C = st2.create_molecule(
'ProtC',sequence,chain_id=
'C')
49 m2C.add_representation(m2C,resolutions=[1])
58 for mol
in (m1A,m1B,m1C,m2A,m2C):
59 dof.create_flexible_beads(mol,
61 dof.create_super_rigid_body(mol)
70 lines =
'''id,mol1,res1,mol2,res2,score
73 tf = tempfile.NamedTemporaryFile(delete=
False, mode=
'w')
79 kw.set_unique_id_key(
"id")
80 kw.set_protein1_key(
"mol1")
81 kw.set_protein2_key(
"mol2")
82 kw.set_residue1_key(
"res1")
83 kw.set_residue2_key(
"res2")
84 kw.set_id_score_key(
"score")
85 xldb = IMP.pmi.io.crosslink.CrossLinkDataBase(kw)
86 xldb.create_set_from_file(tf.name)
92 CrossLinkDataBase=xldb,
98 output_objects.append(xlr)
99 rmf_restraints.append(xlr)
100 dof.get_nuisances_from_restraint(xlr)
104 for mol
in (m1A,m1B,m1C,m2A,m2C):
107 output_objects.append(cr)
108 rmf_restraints.append(cr)
113 output_objects.append(evr1)
116 output_objects.append(evr2)
133 crosslink_restraints=rmf_restraints,
134 monte_carlo_sample_objects=dof.get_movers(),
135 global_output_directory=
'ambiguity_output/',
136 output_objects=output_objects,
137 monte_carlo_steps=10,
A class to simplify create of constraints and movers for an IMP Hierarchy.
Setup cross-link distance restraints from mass spectrometry data.
Restraints for keeping correct stereochemistry.
void show_with_representations(Hierarchy h, std::ostream &out=std::cout)
Traverse through the tree and show atom info, including representations.
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)
GenericHierarchies get_leaves(Hierarchy mhd)
Get all the leaves of the bit of hierarchy.
Protocols for sampling structures and analyzing them.
This class initializes the root node of the global IMP.atom.Hierarchy.
This class is needed to convert the keywords from a generic database to the standard ones...
Class for storing model, its restraints, constraints, and particles.
void transform(XYZ a, const algebra::Transformation3D &tr)
Apply a transformation to the particle.
A decorator for a particle with x,y,z coordinates.
General purpose algebraic and geometric methods that are expected to be used by a wide variety of IMP...
This class creates a restraint between consecutive TempResidue objects OR an entire PMI MOlecule obje...
Create movers and setup constraints for PMI objects.
A class to create an excluded volume restraint for a set of particles at a given resolution.
Restraints for handling crosslinking data.
Python classes to represent, score, sample and analyze models.
A macro to help setup and run replica exchange.
Functionality for loading, creating, manipulating and scoring atomic structures.
Support for the RMF file format for storing hierarchical molecular data and markup.