Exemplo n.º 1
0
Arquivo: barrel.py Projeto: jksr/bbtm
 def _get_pdbballs_(self):
     chaincoorddict = {
         res.get_id()[1]: res["CA"].get_coord() for res in self.pdbchain if res.child_dict.has_key("CA")
     }
     pdbcoords = [chaincoorddict[ball[Ball.p_resseqid]] for ball in self.balls]
     pdbcoords = np.array(pdbcoords)
     weights = np.array([aminoacid.getaaweight(ball[Ball.p_aaid]) for ball in self.balls])
     masscenter = np.average(pdbcoords, axis=0, weights=weights)
     pdbcoords = np.subtract(pdbcoords, masscenter)
     self.pdbballs = copy.deepcopy(self.balls)
     for i in range(len(self.balls)):
         self.pdbballs[i][Ball.p_coordx] = pdbcoords[i][0]
         self.pdbballs[i][Ball.p_coordy] = pdbcoords[i][1]
         self.pdbballs[i][Ball.p_coordz] = pdbcoords[i][2]
Exemplo n.º 2
0
Arquivo: barrel.py Projeto: jksr/bbtm
    def _align_(self):
        ballcoords = np.array(self.balls)[:, [Ball.p_coordx, Ball.p_coordy, Ball.p_coordz]]
        weights = np.array([aminoacid.getaaweight(ball[Ball.p_aaid]) for ball in self.balls])
        masscenter = np.average(ballcoords, axis=0, weights=weights)
        ballcoords = np.subtract(ballcoords, masscenter)
        pdbballcoords = np.array(self.pdbballs)[:, [Ball.p_coordx, Ball.p_coordy, Ball.p_coordz]]

        U = np.dot(pdbballcoords.T, ballcoords)
        V, S, WT = np.linalg.svd(U)
        rotation_matrix = np.dot(WT.T, V.T)
        pdbballcoords = np.dot(rotation_matrix, pdbballcoords.T).T
        # fromdat.setcoords(rotated_coords)
        for i in range(len(self.balls)):
            self.balls[i][Ball.p_coordx] = ballcoords[i][0]
            self.balls[i][Ball.p_coordy] = ballcoords[i][1]
            self.balls[i][Ball.p_coordz] = ballcoords[i][2]
            self.pdbballs[i][Ball.p_coordx] = pdbballcoords[i][0]
            self.pdbballs[i][Ball.p_coordy] = pdbballcoords[i][1]
            self.pdbballs[i][Ball.p_coordz] = pdbballcoords[i][2]
Exemplo n.º 3
0
			else:
				# non hbond
				ji1 = j - barrel.reg[i+1]
				if 0<=ji1 and ji1 < barrel.strandlen[i1] :
					stick = Stick( [len(barrel.sticks), barrel.strands[i][j][0], barrel.strands[i1][ji1][0], BondType.NH ] )
					barrel.sticks.append(stick)
				# week hbond
				ji1 = j - barrel.reg[i+1] - 1
				if 0<=ji1 and ji1 < barrel.strandlen[i1] :
					stick = Stick( [len(barrel.sticks), barrel.strands[i][j][0], barrel.strands[i1][ji1][0], BondType.WH ] )
					barrel.sticks.append(stick)


### recenter barrel
ballcoords = np.array(barrel.balls)[:,[2,3,4]]
weights = np.array([ aminoacid.getaaweight(ball[-2]) for ball in barrel.balls ])
masscenter = np.average(ballcoords, axis=0, weights=weights)
ballcoords = np.subtract( ballcoords, masscenter )
for i in range(len(barrel.balls)):
	barrel.balls[i][2] = ballcoords[i][0]
	barrel.balls[i][3] = ballcoords[i][1]
	barrel.balls[i][4] = ballcoords[i][2]

### recenter pdb
chaincoorddict = { res.get_id()[1] : res['CA'].get_coord()
					for res in pdbchain if res.child_dict.has_key('CA') }
pdbcoords = [ chaincoorddict[ ball[1] ] for ball in barrel.balls ]
pdbcoords =  np.array(pdbcoords)
masscenter = np.average(pdbcoords, axis=0, weights=weights)
pdbcoords = np.subtract( pdbcoords, masscenter )