def dcd_fit(filename_dcd, filename_dcd_out, natom_total, serials, filename_rmsd): f_out = open(filename_rmsd, 'w') # Coord1 pdb = PdbFile('16SCD.cg.pdb') pdb.open_to_read() ref_chains = pdb.read_all() pdb.close() #num_atom = 0 #for chain in ref_chains : # for residue in chain.residues : # num_atom += len(residue.atoms) ref = zeros((natom_total, 3), dtype=float64, order='C') i = 0 for chain in ref_chains: for residue in chain.residues: for atom in residue.atoms: (ref[i][0], ref[i][1], ref[i][2]) = atom.xyz.get_as_tuple() i += 1 mask = [] for i in range(natom_total): # the serial ID starts from 1, thus i+1 is the serial ID if i + 1 in serials: mask.append(1) else: mask.append(0) dcd = DcdFile(filename_dcd) dcd.open_to_read() dcd.read_header() out_dcd = DcdFile(filename_dcd_out) out_dcd.open_to_write() out_dcd.set_header(dcd.get_header()) out_dcd.write_header() #dcd.show_header() k = 0 while dcd.has_more_data(): k += 1 coords_dcd = dcd.read_onestep_np() rmsd = superimpose(ref.T, coords_dcd.T, mask) f_out.write('{:8d} {:6.2f}\n'.format(k, rmsd)) out_dcd.write_onestep(coords_dcd) dcd.close() out_dcd.close()
@author: Naoto Hori ''' import sys from cafysis.file_io.pdb import PdbFile if len(sys.argv) != 6: print( '\n Usage: SCRIPT [bfactor file] [PDB file] [scale] [Upper] [output PDB file]\n' ) sys.exit(2) f_bf_in = open(sys.argv[1], 'r') f_pdb = PdbFile(sys.argv[2]) f_pdb.open_to_read() chains = f_pdb.read_all() f_pdb.close() f_pdb_out = PdbFile(sys.argv[-1]) f_pdb_out.open_to_write() f_pdb_out._file.write('RECORD # SCRIPT: bfactor_write_to_pdb.py\n') f_pdb_out._file.write('RECORD # argv[1]: ' + sys.argv[1] + '\n') f_pdb_out._file.write('RECORD # argv[2]: ' + sys.argv[2] + '\n') f_pdb_out._file.write('RECORD # argv[3]: ' + sys.argv[3] + '\n') f_pdb_out._file.write('RECORD # argv[4]: ' + sys.argv[4] + '\n') f_pdb_out._file.write('RECORD # argv[5]: ' + sys.argv[5] + '\n') scale = float(sys.argv[3]) upper = float(sys.argv[4]) bf = [] for line in f_bf_in:
import sys from cafysis.file_io.pdb import PdbFile if len(sys.argv) != 5: print('') print( ' Usage: SCRIPT [input PDB] [The residue number of the first a.a.] [output PDB] [log file]' ) print('') sys.exit(2) pdb_in = PdbFile(sys.argv[1]) pdb_in.open_to_read() chains = pdb_in.read_all() pdb_in.close() res_id = int(sys.argv[2]) f_log = open(sys.argv[4], 'w') f_log.write('#original -> new\n') for c in chains: print(sys.argv[1], '#residues', len(c.residues)) for r in c.residues: f_log.write('%i %s -> %i\n' % (r.atoms[0].res_seq, r.atoms[0].ins_code, res_id)) for a in r.atoms: a.res_seq = res_id a.ins_code = ' ' res_id += 1 f_log.close()
### Read the reference pdb ref_chains = pdb.read_all() num_atom = 0 for chain in ref_chains : num_atom += chain.num_atom() ref = zeros((3, num_atom), dtype=float64, order='F') i = 0 for chain in ref_chains : for residue in chain.residues: for atom in residue.atoms : (ref[0][i], ref[1][i], ref[2][i]) = atom.xyz.get_as_tuple() i += 1 pdb.close() ref_idx = [i for i in range(ID_DOM_INI_FIT, ID_DOM_END_FIT+1)] pre_idx = [i for i in range(ID_DOM_INI_FIT, ID_DOM_END_FIT+1)] # header dcd.read_header() header = dcd.get_header() dcd_out.set_header(header) dcd_out.write_header() nmp = header.nmp_real def find_max_min_PBC(d):
if len(v) != num_dimension: print('len(v) != num_dimension, %i' % num_dimension) sys.exit(2) #debug #for i in xrange(num_ev): # print '# ev %i' % i # for value in ev[i] : # print value # Calculate principal coordinate chains = f_pdb.read_all() for v in ev: x = 0.0 idx = 0 for c in chains: for i in range(c.num_atom()): c.get_atom(i).xyz.x x += (c.get_atom(i).xyz.x - data_ave[idx]) * v[idx] idx += 1 x += (c.get_atom(i).xyz.y - data_ave[idx]) * v[idx] idx += 1 x += (c.get_atom(i).xyz.z - data_ave[idx]) * v[idx] idx += 1 f_out.write('%12.5f ' % x) f_out.write('\n') f_pdb.close() f_out.close()
a.xyz.transform(rotateQ.mtx) #ここまでで、QがZ軸上にのった print("QをZ軸上へ") print("Q:",Q.get_as_tuple()) print("N:",N.get_as_tuple()) ########################################################## #NをZ軸まわりに回転させ、Nx>0でNy=0な位置へもっていく。 #DEBUG N = Coord(3,-3,-3) theta = -atan2(N.y,N.x) #DEBUG print "theta",theta, "(", theta/pi*180.0, "deg)" rotateN = mtx_crd_transform() rotateN.rotate_z(theta) #DEBUG N.transform(rotateN.mtx) for c in chains: for r in c.residues: for a in r.atoms: a.xyz.transform(rotateN.mtx) #DEBUG print "N",N.get_as_tuple() #ここまでで、NをX軸上へ print("NをX軸上へ") print("Q:",Q.get_as_tuple()) print("N:",N.get_as_tuple()) pdb_out = PdbFile("20130628.pdb") pdb_out.open_to_write() pdb_out.write_all(chains) pdb_out.close()
import math from cafysis.file_io.pdb import PdbFile from cafysis.file_io.ninfo import NinfoFile from cafysis.para.rnaAform import ARNA from cafysis.para.rnaDT13 import DT13 from cafysis.elements.ninfo import NinfoSet, BondLength, BondAngle, BaseStackDT, HBondDT if len(sys.argv) != 4: print('Usage: SCRIPT [cg pdb] [hb list file] [output ninfo]') sys.exit(2) f_in = PdbFile(sys.argv[1]) f_in.open_to_read() chains = f_in.read_all() f_in.close() if len(chains) > 1: print('%i chains' % len(chains)) n_nt = [] for ic, c in enumerate(chains): n_nt.append(c.num_res()) print('#nt (chain %i): ', ic + 1, n_nt) seq = [] for ic, c in enumerate(chains): s = [] for r in c.residues: # "RA " ---> "A" s.append(r.atoms[0].res_name.strip()[1])
chains_cg.append(c_cg) return chains_cg if __name__ == '__main__': from cafysis.file_io.pdb import PdbFile if len(sys.argv) not in (3, 4): print( 'Usage: SCRIPT [input aa PDB] [flag to start with P (Y/n)] [output cg PDB]' ) sys.exit(2) flg_start_P = False if len(sys.argv) == 4: if sys.argv[2] == 'Y': flg_start_P = True aa = PdbFile(sys.argv[1], 'r') chains = aa.read_all() aa.close() chains_cg = aa2cg(chains, flg_start_P) cg = PdbFile(sys.argv[-1], 'w') cg.write_all(chains_cg) cg.close()
from cafysis.file_io.pdb import PdbFile from cafysis.elements.coord import Coord if len(sys.argv) not in (2, 3): print('Usage: SCRIPT [PDB] (score cutoff = 0.5)') print(' or : SCRIPT [PDB] [score cutoff]') sys.exit(2) SCORE_CUT = 0.5 if len(sys.argv) > 2: SCORE_CUT = float(sys.argv[2]) pf = PdbFile(sys.argv[1]) pf.open_to_read() chains = pf.read_all() pf.close() coms = [] normals = [] locations = [] ## Suppose all residues have a base nres = 0 for ic, c in enumerate(chains): for ir, r in enumerate(c.residues): nres += 1 ## A,U,G or C ntd = r.atoms[0].res_name.strip()
imp2_offset += c2.num_res() imp1_offset += c1.num_res() return if __name__ == '__main__': import sys if len(sys.argv) != 3: print ('Usage: %SCRIPT [input PDB] [output ninfo]') sys.exit(2) from cafysis.file_io.pdb import PdbFile from cafysis.file_io.ninfo import NinfoFile from cafysis.elements.ninfo import NinfoSet f = PdbFile(sys.argv[1]) f.open_to_read() chains = f.read_all() f.close() ns = NinfoSet() generate_FENEs(chains, ns) generate_LJs(chains, ns) f_ninfo = NinfoFile(sys.argv[-1]) f_ninfo.open_to_write() f_ninfo.write_all(ns) f_ninfo.close()
row_pre = 0 else: row_pre = row #TEST #for mtx_id in assembly_units: # print (mtx_id) # matrices[mtx_id].show() #sys.exit(1) filename_pdb = sys.argv[1] ''' Read inpout PDB ''' pdb = PdbFile(filename_pdb) pdb.open_to_read() chains = pdb.read_all() pdb.close() _, ext = os.path.splitext(filename_pdb) filename_base = os.path.basename(filename_pdb)[:-len(ext)] ''' Rotate and output each assembly unit ''' for mtx_id in assembly_units: newchains = copy.deepcopy(chains) for c in newchains: for r in c.residues: for a in r.atoms: #print ('###') #print (a.xyz.x, a.xyz.y, a.xyz.z) a.xyz.put_as_list(matrices[mtx_id].do_to_1darray( a.xyz.get_as_ndarray()))
a.serial = atom_id a.name = ' S ' a.res_name = 'D%s ' % nt[SEQ_POSITION:SEQ_POSITION + 1] #a.chain_id = 'A' a.chain_id = '%s' % nchain a.res_seq = res_id a.xyz = xyz_S / float(nS) r_cg.push_atom(a) atom_id += 1 a = Atom() a.serial = atom_id #a.name = ' %sb ' % nt a.name = ' %sb ' % nt[SEQ_POSITION:SEQ_POSITION + 1] #a.res_name = 'R%s ' % nt a.res_name = 'D%s ' % nt[SEQ_POSITION:SEQ_POSITION + 1] #a.chain_id = 'A' a.chain_id = '%s' % nchain a.res_seq = res_id a.xyz = xyz_B / float(nB) r_cg.push_atom(a) c_cg.push_residue(r_cg) cg_chains.append(c_cg) cg = PdbFile(sys.argv[-1]) cg.open_to_write() cg.write_all(cg_chains) cg.close()
#if args.flg_fit: # from Superimpose import superimpose if args.frame_begin < 0: print('Error: Beginning frame must be > 0') sys.exit(2) if args.frame_stride <= 0: print('Error: Frame stride must be > 0') sys.exit(2) # Read the reference PDB pdb = PdbFile(args.pdb) pdb.open_to_read() chains = pdb.read_all() pdb.close() # Output PDB movie = PdbFile(args.out) movie.open_to_write() # Open DCD and read the header dcd = DcdFile(args.dcd) dcd.open_to_read() dcd.read_header() num_dcd_frames = dcd.count_frame() if args.frame_end == -1: frame_end = num_dcd_frames - 1
import sys from cafysis.file_io.pdb import PdbFile from cafysis.elements.coord import Coord from cafysis.elements.pdb import Chain, Residue, Atom element2mass = {'P': 30.973761, 'O': 15.9994, 'C': 12.0107, 'N': 14.0067} if __name__ == '__main__': if len(sys.argv) != 3: print('Usage: %SCRIPT [input PDB file] [output PDB]') sys.exit(2) pdb_in = PdbFile(sys.argv[1]) pdb_in.open_to_read() chains = pdb_in.read_all() pdb_in.close() pdb_out = PdbFile(sys.argv[2]) pdb_out.open_to_write() pdb_out.write_remark('Generated using cafysis/pdb_rna_nucleotide_com.py') import time import datetime pdb_out.write_remark('At %s' % (datetime.datetime.fromtimestamp( time.time()).strftime('%Y%m%d %H:%M%S'), )) chains_com = [] from . import elements i_serial = 0