def parse_residues_file(self) -> dict: pdb = mp.parse_PDB( '/home/labs/fleishman/jonathaw/temp_residue_data/RKDS.txt') for res in pdb['A'].values(): mpf.translate_and_rotate_res_to_xy_plane( res, self.main_residue_atoms[res.res_type]) self.residues[res.res_type] = res
def create_pdb_AA_AA_d_z(aa1: str, aa2: str, d: float, z: float, res_maker, path: str = './') -> None: """ create a pdb with residues aa1 and aa2 at the XY plane at Z=z and distance d """ res1 = res_maker.get_residue(aa1) res2 = res_maker.get_residue(aa2) res1.change_chain_name('A') res2.change_chain_name('B') # rotate around Z to oppose axis_z = mp.XYZ(0, 0, 1) res2.dot_matrix_me(mpf.rotation_matrix_around_vec(axis_z, np.pi)) # translate to get d distance move_d = mp.XYZ( 0, res1[res_maker.main_residue_atoms[res1.res_type][1]].xyz.y - res2[res_maker.main_residue_atoms[res2.res_type][1]].xyz.y + d, 0) res2.translate_xyz(move_d) # translate all to z move_z = mp.XYZ(0, 0, z) res1.translate_xyz(move_z) res2.translate_xyz(move_z) # setup in a MyPDB instance, and renumber and write pdb = mp.MyPDB() for res in [res1, res2]: for a in res.values(): pdb.add_atom(a) pdb.renumber() mp.write_PDB( '%s/%s_%s_%.2f_%.2f.pdb' % (path, res1.res_type, res2.res_type, d, z), pdb)
def create_pdb_AA_AA_d_z(aa1: str, aa2: str, d: float, z: float, res_maker, path: str = "./") -> None: """ create a pdb with residues aa1 and aa2 at the XY plane at Z=z and distance d """ res1 = res_maker.get_residue(aa1) res2 = res_maker.get_residue(aa2) res1.change_chain_name("A") res2.change_chain_name("B") # rotate around Z to oppose axis_z = mp.XYZ(0, 0, 1) res2.dot_matrix_me(mpf.rotation_matrix_around_vec(axis_z, np.pi)) # translate to get d distance move_d = mp.XYZ( 0, res1[res_maker.main_residue_atoms[res1.res_type][1]].xyz.y - res2[res_maker.main_residue_atoms[res2.res_type][1]].xyz.y + d, 0, ) res2.translate_xyz(move_d) # translate all to z move_z = mp.XYZ(0, 0, z) res1.translate_xyz(move_z) res2.translate_xyz(move_z) # setup in a MyPDB instance, and renumber and write pdb = mp.MyPDB() for res in [res1, res2]: for a in res.values(): pdb.add_atom(a) pdb.renumber() mp.write_PDB("%s/%s_%s_%.2f_%.2f.pdb" % (path, res1.res_type, res2.res_type, d, z), pdb)
def parse_residues_file(self) -> dict: pdb = mp.parse_PDB("/home/labs/fleishman/jonathaw/temp_residue_data/RKDS.txt") for res in pdb["A"].values(): mpf.translate_and_rotate_res_to_xy_plane(res, self.main_residue_atoms[res.res_type]) self.residues[res.res_type] = res