Esempio n. 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
Esempio n. 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)
Esempio n. 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?
Esempio n. 4
0
 def d(self):
     atoms = self._get_atoms()
     return util.center(atoms)
Esempio n. 5
0
     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 = []