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: if line.find('#') != -1: continue bf.append(float(line.split()[1])) imp = 0 for c in chains: for r in c.residues: for a in r.atoms: x = bf[imp] * scale if x > upper: x = upper a.temp_factor = x imp += 1 f_pdb_out.write_all(chains) f_pdb_out.close()
for i in range(nmp): xyz = [0.0, 0.0, 0.0] ave.append(xyz) nframe = 0 while dcd.has_more_data(): data = dcd.read_onestep() nframe += 1 print(nframe) for i in range(nmp): ave[i][0] += data[i][0] ave[i][1] += data[i][1] ave[i][2] += data[i][2] dcd.close() for xyz in ave: xyz[0] /= float(nframe) xyz[1] /= float(nframe) xyz[2] /= float(nframe) imp = 0 for c in chains: for i in range(c.num_atom()): imp += 1 c.get_atom(i).xyz.x = ave[i][0] c.get_atom(i).xyz.y = ave[i][1] c.get_atom(i).xyz.z = ave[i][2] f_out.write_all(chains) f_out.close()
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() pdb_out = PdbFile(sys.argv[3]) pdb_out.open_to_write() pdb_out.write_all(chains) pdb_out.close()
if tsdata[0][ts.head_col.e_bridge] == '0.0000000': struct = dcd.read_onestep() iatom = 0 for c in chains: for r in c.residues: for a in r.atoms: a.xyz.put_as_list(struct[iatom]) iatom += 1 imodel += 1 pdb.modelID = imodel pdb.set_remark('ORIGINAL_FILE %s' % (dcd_filename,)) pdb.set_remark('ORIGINAL_FRAME %i' % (i_org,)) for iunit, x in enumerate(tsdata): if iunit == 0: tsline = 'TS_all' else: tsline = 'TS_%i ' % (iunit,) for y in x: tsline += ' ' + y pdb.set_remark(tsline) pdb.write_all(chains) else: dcd.skip_onestep() i_org += 1 ts.close() dcd.close() pdb.close()
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()
# 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())) #print (a.xyz.x, a.xyz.y, a.xyz.z) outpdb = PdbFile('%s_%s%s' % (filename_base, mtx_id, ext)) outpdb.open_to_write() outpdb.write_all(newchains) outpdb.close()
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()
continue struct = dcd.read_onestep() """ Move to the origin """ if args.flg_origin: com = [0.0, 0.0, 0.0] for v in struct: com = [com[i]+v[i] for i in range(3)] com = [com[i]/float(len(struct)) for i in range(3)] for i in range(len(struct)): struct[i] = [struct[i][j] - com[j] for j in range(3)] iatom = 0 for c in chains: for r in c.residues: for a in r.atoms: a.xyz.put_as_list(struct[iatom]) iatom += 1 movie.modelID = iframe + args.id_offset movie.set_remark('ORIGINAL_FILE %s' % (args.dcd,)) movie.set_remark('ORIGINAL_FRAME %i' % (i_orig,)) movie.write_all(chains) i_orig += 1 movie.close() pdb.close()
c_com = Chain() for r in c.residues: a_com = Atom() i_serial += 1 a_com.serial = i_serial a_com.name = 'NUC' a_com.res_name = r.atoms[0].res_name a_com.chain_id = r.atoms[0].chain_id a_com.res_seq = r.atoms[0].res_seq mass_sum = 0.0 xyz_sum = Coord() for a in r.atoms: if a.element.strip() == 'H': continue if a.element.strip() in element2mass: mass = element2mass[a.element.strip()] else: print('Error: no key %s in element2mass.' % (a.element, )) xyz_sum += a.xyz * mass mass_sum += mass a_com.xyz = xyz_sum / float(mass_sum) r_com = Residue() r_com.push_atom(a_com) c_com.push_residue(r_com) chains_com.append(c_com) pdb_out.write_all(chains_com)
chains = pdb.read_all() pdb.close() for c in chains: for r in c.residues: for a in r.atoms: if a.name.strip() == 'MG': if check_distance(c_16SCD, a): r = Residue() r.push_atom(a) c_Mg.push_residue(r) #print(ibundle) # Only RNA pdb_out = PdbFile('4y4o_{:s}_16SCD.original.pdb'.format(modelname), 'w') pdb_out.write_all([ c_16SCD, ]) pdb_out.close() # RNA and Mg pdb_out = PdbFile('4y4o_{:s}_16SCD_Mg.original.pdb'.format(modelname), 'w') pdb_out.write_all([c_16SCD, c_Mg]) pdb_out.close() chains_cg = aa2cg([ c_16SCD, ]) rmsd, rot = fit(chains_1j5e_cg, chains_cg) apply_rot([c_16SCD, c_Mg], rot) # Only RNA