High Level Operations in IMP
The purpose of this page is to discuss common "high level" operations in IMP which it might be useful to stick somewhere. Operations should be common and have relatively few parameters so that it makes sense to write a function which encapsulates the broiler plate code.
- Take a list of particles and bond them sequentially with the same spring constant:
Particles bond_chain(Particles chain, Float k);
- Add a restraint for all of the internal bonds in a set of particles and return the singleton container containing the bonds
void restraint_internal_bonds(MolecularHiearchyDecorator, Float stiffness);
- create a rigid (or not) representation of a protein with a given number of spheres. If the stiffness is infinity, it is a rigid body, otherwise there are springs holding the particles together.
Particles create_protein_representation(MolecularHierarchyDecorator d, unsigned int num_spheres, Float stiffness= infinity)
* Create a molecular hierarchy with an appropriate number of particles as leaves for the protein based on the number of amino acids. The leaves will have radii chosen appropriately and the DomainDecorator information set.
MolecularHierarchyDecorator create_protein(unsigned int number_of_residues, Float resolution, std::string name);
* Set up optimal collision detection given the collection of spheres, rigid bodies and hierarchies and the leaf pair score to use. Each particle passed would be tested against all the appropraite decorators.
void setup_excluded_volume(PairScore *ps, Particles ps);