def __init__(self, fh, diameter): self.atom_factory = RMF.AtomFactory(fh) self.bond_factory = RMF.BondFactory(fh) self.particle_factory = RMF.ParticleFactory(fh) self.ball_factory = RMF.BallFactory(fh) self.segment_factory = RMF.SegmentFactory(fh) self.cylinder_factory = RMF.CylinderFactory(fh) self.diameter = diameter * 1.5
def test_perturbed(self): """Test writing a simple hierarchy""" m = IMP.kernel.Model() h = IMP.atom.read_pdb(self.get_input_file_name("small_protein.pdb"), m) hs = IMP.atom.create_simplified_along_backbone( IMP.atom.get_by_type(h, IMP.atom.CHAIN_TYPE)[0], 1) IMP.base.set_log_level(IMP.base.SILENT) fname = self.get_tmp_file_name("restraint_bonds.rmf3") fh = RMF.create_rmf_file(fname) IMP.rmf.add_hierarchy(fh, hs) leaves = IMP.atom.get_leaves(hs) cpc = IMP.container.ConsecutivePairContainer(leaves) br = IMP.container.PairsRestraint( IMP.core.HarmonicSphereDistancePairScore(0, 1), cpc) IMP.rmf.add_restraints_as_bonds(fh, [br]) IMP.rmf.save_frame(fh, "frame") bf = RMF.BondFactory(fh) count = 0 for nid in fh.get_node_ids(): n = fh.get_node(nid) if bf.get_is(n): count += 1 self.assertEqual(count, len(leaves) - 1)
number_of_particles = 10 number_of_frames = 100 minimum_radius = .5 maximum_radius = 3 box_size = 15 # find the name for a temporary file to use to for writing the hdf5 file tfn = RMF._get_temporary_file_path("motion.rmf3") print("File is", tfn) # open the temporary file, clearing any existing contents fh = RMF.create_rmf_file(tfn) tf = RMF.TypedFactory(fh) pf = RMF.ParticleFactory(fh) bf = RMF.BondFactory(fh) sf = RMF.SegmentFactory(fh) rf = RMF.RepresentationFactory(fh) scf = RMF.ScoreFactory(fh) coords = [] radii = [] particles = [] def get_distance(v0, r0, v1, r1): return (((v0[0] - v1[0])**2 + (v0[1] - v1[1])**2 + (v0[1] - v1[1])**2)**.5 - r0 - r1) def intersects(c, r, cs, rs):
pf, acf, af, ccf, cf, bf, prev) return prev fh = RMF.open_rmf_file_read_only(RMF.get_example_path("3U7W.rmf")) fh.set_current_frame(RMF.FrameID(0)) outpath = RMF._get_temporary_file_path("3U7W-residues.rmf") out = RMF.create_rmf_file(outpath) out.add_frame("nothing", RMF.FRAME) print("file is", outpath) bf = RMF.BondFactory(out) rcf = RMF.ResidueFactory(fh) rf = RMF.ResidueFactory(out) pcf = RMF.ParticleFactory(fh) pf = RMF.ParticleFactory(out) acf = RMF.AtomFactory(fh) af = RMF.AtomFactory(out) ccf = RMF.ChainFactory(fh) cf = RMF.ChainFactory(out) bf = RMF.BondFactory(out) copy_to_residues( fh.get_root_node(), out.get_root_node(), rcf, rf,
# same thing from __future__ import print_function import RMF file_name = RMF._get_temporary_file_path("reference_frame.rmfz") print("file is", file_name) fh = RMF.create_rmf_file(file_name) fh.add_frame("first frame", RMF.FRAME) rh = fh.get_root_node() reference_frame_factory = RMF.ReferenceFrameFactory(fh) ball_factory = RMF.BallFactory(fh) particle_factory = RMF.ParticleFactory(fh) color_factory = RMF.ColoredFactory(fh) bond_factory = RMF.BondFactory(fh) origin = rh.add_child("origin", RMF.REPRESENTATION) pd = particle_factory.get(origin) pd.set_radius(1) pd.set_mass(2) pd.set_coordinates(RMF.Vector3(0, 0, 0)) for i in range(0, 3): c = rh.add_child(str(i), RMF.REPRESENTATION) pd = particle_factory.get(c) pd.set_radius(1) pd.set_mass(2) coords = [0, 0, 0] coords[i] = 2 pd.set_coordinates(RMF.Vector3(*coords))