Source code for jade.rosetta_jade.alignment

from rosetta import *


##### These are all for same length poses #####


[docs]def align_to_second_pose_save_pdb( pose_name, pose, second_pose, outdir, overhang=0, stem_align = False): rosetta.core.pose.remove_lower_terminus_type_from_pose_residue(pose, 1) rosetta.core.pose.remove_upper_terminus_type_from_pose_residue(pose, pose.total_residue()) rosetta.core.pose.remove_lower_terminus_type_from_pose_residue(second_pose, 1) rosetta.core.pose.remove_upper_terminus_type_from_pose_residue(second_pose, second_pose.total_residue()) if stem_align: id_map = get_mask_for_stem_alignment(pose, second_pose, overhang) else: id_map = get_mask_for_alignment(pose, second_pose, overhang) superimpose_pose(pose, second_pose, id_map)
pose.dump_pdb(str(outdir+"/"+pose_name+".pdb"))
[docs]def get_rmsd( pose, second_pose, overhang = 0): """ Get RMSD assuming they are both the same length! """ #id_map = get_mask_for_alignment(pose, second_pose, cdr, overhang) #rms = rms_at_corresponding_atoms_no_super(pose, second_pose, id_map) start = 1 + overhang end = pose.total_residue() - overhang l = Loop(start, end) loops = Loops() loops.push_back(l) rms = loop_rmsd(pose, second_pose, loops, False, True)
return rms
[docs]def get_mask_for_alignment(pose, second_pose, overhang = 0): """ Get mask assuming they are both the same length! """ id_map = AtomID_Map_AtomID() rosetta.core.pose.initialize_atomid_map_AtomID(id_map, pose, AtomID(0,0)) start = 1 + overhang end = pose.total_residue() - overhang for i in range(start, end+1): #print repr(i) for ii in range(1, 4+1): #print repr(ii) atom_cdr = AtomID(ii, i) atom_center = AtomID(ii, i) id_map.set(atom_cdr, atom_center)
return id_map
[docs]def get_map_for_rmsd(pose, second_pose, overhang=3): pass
m = rosetta.utility.rosetta.utility.map_string_Real()
[docs]def get_mask_for_stem_alignment(pose, second_pose, stem_size): id_map = AtomID_Map_AtomID() rosetta.core.pose.initialize_atomid_map_AtomID(id_map, pose, AtomID(0,0)) start = 1 for i in range(start, start+stem_size): #print repr(i) for ii in range(1, 4+1): #print repr(ii) atom_cdr = AtomID(ii, i) atom_center = AtomID(ii, i) id_map.set(atom_cdr, atom_center) for i in range(0, stem_size): #print repr(i) for ii in range(1, 4+1): #print repr(ii) #print "pose"+ repr(pose.total_residue() - i)+" second_pose "+repr(second_pose.total_residue() - i) atom_pose = AtomID(ii, pose.total_residue() - i) atom_second_pose = AtomID(ii, second_pose.total_residue() - i) id_map.set(atom_pose, atom_second_pose)
return id_map