コード例 #1
0
    def get_beads(self):
        """
		Generates steric beads required for checking for steric clashes between
		motifs. Each residues has three beads modeled after the typical three
		bead models used in coarse grain modeling. The three beads are,
		Phosphate (P, OP1, OP2) Sugar (O5',C5',C4',O4',C3',O3',C1',C2',O2')
		and Base (All remaining atoms).
		"""
        phos_atoms,sugar_atoms,base_atoms = [],[],[]

        for i,a in enumerate(self.atoms):
            if a is None:
                continue
            if   i < 3:
                phos_atoms.append(a)
            elif i < 12:
                sugar_atoms.append(a)
            else:
                base_atoms.append(a)

        beads = []
        types = [residue.BeadType.PHOS, residue.BeadType.SUGAR, residue.BeadType.BASE]
        for i,alist in enumerate([phos_atoms,sugar_atoms,base_atoms]):
            if len(alist) > 0:
                beads.append(residue.Bead(util.center(alist), types[i]))

        return beads
コード例 #2
0
    def draw(self, view_mode=0):
        self.view_mode = view_mode
        self.drawn = 1
        for r in self.residues:
            r.draw(view_mode)

        if view_mode == 2:
            points = []
            for r in self.residues:
                atoms = []
                for i in (0,1,2,3,4,5):
                    if r.atoms[i] is not None:
                        atoms.append(r.atoms[i])
                center = util.center(atoms)
                points.append(center)
            self.obj = curve(radius=0.5, color=color.orange)
            for p in points:
                self.obj.append(pos=p)
コード例 #3
0
                center=(5, 0, 0),
                background=(1, 1, 1),
                ambient=color.gray(0.5))
"""c = controls(x=0, y=0, width=250, height=250, range=60)
m1 = menu(pos=(0,0,0), height=7, width=25, text='Options')
bl = button(pos=(-30,30), height=30, width=40, text='Mode', action=lambda: change())
m1.items.append(('Mode', lambda: change())) # specify menu item title and action to perform"""

atoms = []
s = structure.structure_from_pdb("nodes.0.pdb")
atoms.extend(s.atoms())
s = structure.structure_from_pdb("nodes.1.pdb")
atoms.extend(s.atoms())

v_atoms = []
center = util.center(atoms)
for a in atoms:
    v_atoms.append(VAtom(a))

scene.center = center
scene.range = np.array([20, 20, 20])
range = np.array([20, 20, 20])

points = []
lines = []
pick = None
dragpos = []

while 1:
    rate(100)
    if scene.kb.keys:  # event waiting to be processed?
コード例 #4
0
 def d(self):
     atoms = self._get_atoms()
     return util.center(atoms)
コード例 #5
0
ファイル: test.py プロジェクト: jyesselm/rnamake_visual_gui
     x=0, y=0, width=800, height=800,
     center=(5,0,0), background=(1,1,1), ambient=color.gray(0.5))

"""c = controls(x=0, y=0, width=250, height=250, range=60)
m1 = menu(pos=(0,0,0), height=7, width=25, text='Options')
bl = button(pos=(-30,30), height=30, width=40, text='Mode', action=lambda: change())
m1.items.append(('Mode', lambda: change())) # specify menu item title and action to perform"""

atoms = []
s = structure.structure_from_pdb("nodes.0.pdb")
atoms.extend(s.atoms())
s = structure.structure_from_pdb("nodes.1.pdb")
atoms.extend(s.atoms())

v_atoms = []
center = util.center(atoms)
for a in atoms:
    v_atoms.append(VAtom(a))



scene.center = center
scene.range = np.array([20,20,20])
range = np.array([20,20,20])

points = []
lines = []
pick = None
dragpos = []