예제 #1
0
 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
예제 #2
0
    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)
예제 #3
0
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):
예제 #4
0
                    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,
예제 #5
0
# 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))