예제 #1
0
파일: preprocess.py 프로젝트: jksr/beta2
		os.system('exec/barrel.out '+pdbfn[:-4]+'.bbin')
		print( '\tFile '+pdbcode+'_origin.balls and .sticks written.\n' )
	ball_data = bbtmio.read_ball_file(ball_ori_fn)
	# temporary file, register for cleaning
	files_to_clean.append(ball_ori_fn)

	################################################
	# recenter balls
	print( '\tRecentering the coordinate matrix in balls file' )
	ball_fn = pdbfn[:-4]+'.balls'
	if os.path.isfile(ball_fn) and not args['overwrite']:
		print( '\tFile '+pdbcode+'.balls exists. Nothing changed.\n' )
	else:
		ball_coord_mat = bbtmio.recenter_coord_mat( bbtmio.get_ball_coords(ball_data), bbin_data)
		ball_data = bbtmio.set_ball_coords(ball_data, ball_coord_mat)
		bbtmio.write_ball_file(ball_data, ball_fn)
		print( '\tFile '+pdbcode+'.balls written.\n' )
	ball_data = bbtmio.read_ball_file(ball_fn)

	################################################
	# recenter pdb balls file
	print( '\tPreparing recentered and aligned pdb balls file' )
	ball_pdb_fn = pdbfn[:-4]+'_pdb.balls'
	if os.path.isfile(ball_pdb_fn) and not args['overwrite']:
		print( '\tFile '+pdbcode+'_pdb.balls exists. Nothing changed.\n' )
	else:
		ball_coord_mat = bbtmio.get_ball_coords( ball_data )
		pdbball_data = bbtmio.read_ball_file(ball_ori_fn)
		# recenter
		pdbball_coord_mat = bbtmio.recenter_coord_mat( bbtmio.get_pdb_coords(structure,bbin_data), bbin_data )
		pdbball_data = bbtmio.set_ball_coords(pdbball_data, pdbball_coord_mat)
예제 #2
0
codes = [ '1K24' ]

# generated deformed balls file
for code in codes:
	extballfn = datapath+'testdata/'+code+'.balls.ideallarge.ext'
	extstickfn = datapath+code+'.sticks.ext'
	pdbfn = datapath+code+'.pdb'

	#memsec = equtils.wimley_section_divide(equtils.opm_mempos(pdbfn, extballfn))
	memsec = equtils.uni_section_divide(equtils.opm_mempos(pdbfn, extballfn))

	f = equtils.ForceGen.get_force_vector( extballfn,memsec )
	equsys = bbtmequs.StiffnessEquSys(extballfn, extstickfn, f, TestKAssigner )
	equsys.solve()
	disp = equsys.result['u'].reshape(equsys.result['u'].shape[0]/3, 3)

	ballfn = datapath+'testdata/'+code+'.balls.ideallarge'
	balldat = bbtmio.read_ball_file(ballfn)
	ballcoords = bbtmio.get_ball_coords(balldat)
	# rec means after reconstruction
	recballcoords = ballcoords + disp
	recballdat = bbtmio.set_ball_coords(balldat, recballcoords)
	recballfn = code+'.balls.reconstruct'
	bbtmio.write_ball_file(recballdat, recballfn)

	dispfn = code+'.displacement.reconstruct'
	bbtmio.write_displacement_file(ballcoords, recballcoords, dispfn)



예제 #3
0
	extstickfn = datapath+code+'.sticks.ext'
	pdbfn = datapath+code+'.pdb'

	memsec = equtils.wimley_section_divide(equtils.opm_mempos(pdbfn, extballfn))
	# force profile
	#memsec =  (memsec[0],[-1, -1, -1])
	memsec =  (memsec[0],[-1, -2, -1])

	f = equtils.ForceGen.get_force_vector( extballfn,memsec, code+'.force' )
	# 3 k type
	equsys = bbtmequs.StiffnessEquSys(extballfn, extstickfn, f, typeutils.ThreeKAssigner )
	equsys.solve()
	disp = equsys.result['u'].reshape(equsys.result['u'].shape[0]/3, 3)

	# resting state not extended
	ballfn = datapath+code+'.balls'
	balldat = bbtmio.read_ball_file(ballfn)
	ballcoords = bbtmio.get_ball_coords(balldat)
	# new coords after deformation
	newballcoords = ballcoords + disp
	newballdat = bbtmio.set_ball_coords(balldat, newballcoords)
	# new balls after deforming from resting state
	newballfn = code+'.balls.deformed'
	bbtmio.write_ball_file(newballdat, newballfn)

	dispfn = code+'.displacement'
	bbtmio.write_displacement_file(ballcoords, newballcoords, dispfn)



예제 #4
0
파일: test.py 프로젝트: jksr/beta
	ks3 = np.array( [ 1.31824322, 0.88899824, 0.9253788 , 0.72740754, 2.81697644, 0.66983903, 0.36771102] )
	ks = np.mean(np.vstack((ks1,ks2,ks3)), axis=0)
	@classmethod
	def get_k(cls, btype, a1type, a2type):
		return 100 if btype=='SP' else 100000000 * np.dot( cls.kta.get_assign_vec(a1type, a2type, btype), cls.ks )





for coden in testset:
	ses = bbtmdsm.StiffnessEquSys('../../../data/testdata/'+coden+'.balls.ideallarge.ext', '../../../data/testdata/'+coden+'.sticks.ideallarge.ext', testkassigner )
	ses.solve()
	u =  ses.u.reshape(ses.u.shape[0]/3, 3)
	ideallargecoords = bbtmio.get_ball_coords( bbtmio.read_ball_file('../../../data/testdata/'+coden+'.balls.ideallarge') )
	pdbcoords = bbtmio.get_ball_coords( bbtmio.read_ball_file('../../../data/'+coden+'_pdb.balls') )

	afteru = ideallargecoords + u



	newafteru = bbtmio.recenter_coord_mat(afteru, bbtmio.read_bbin_file('../../../data/'+coden+'.bbin'))

	bbtmio.write_ball_file( bbtmio.set_ball_coords( bbtmio.read_ball_file('../../../data/testdata/'+coden+'.balls.ideallarge'), newafteru ), coden+'.balls.au')

	dummy,newpdbcoords = bbtmio.align_coordmat(pdbcoords, newafteru)
	disp = newafteru - newpdbcoords
	rmsd = np.mean(np.square(np.linalg.norm(disp, axis=1))) ** 0.5
	print coden, disp.shape[0], rmsd
	#sys.exit(0)
예제 #5
0
파일: scaleballs.py 프로젝트: jksr/beta
import numpy as np
import glob
import sys
import os

sys.path.append(os.path.abspath(os.path.dirname(__file__)) + "/../../../pyscripts/")

import bbtmio

for fn in glob.glob("../../../data/????.balls"):
    bdata = bbtmio.read_ball_file(fn)
    bdata["COORDX"] = bdata["COORDX"] * 1.45
    bdata["COORDY"] = bdata["COORDY"] * 1.45
    bbtmio.write_ball_file(bdata, fn + ".ideallarge")