IgFold / model /utils /ab_metrics.py
wuxing0105's picture
Upload folder using huggingface_hub
1fdc49a verified
Raw
History Blame Contribute Delete
1.72 kB
import pyrosetta
def get_vh_vl_orientation(pose_1):
pose_i1 = pyrosetta.rosetta.protocols.antibody.AntibodyInfo(pose_1)
#vl_vh_distance, opening_angle, opposite_angle, packing_angle
results = pyrosetta.protocols.antibody.vl_vh_orientation_coords(
pose_1,
pose_i1,
)
results_labels = [
'vl-vh_distance', 'opening_angle', 'opposite_angle', 'packing_angle'
]
results_dict = {}
for i in range(4):
results_dict[results_labels[i]] = results[i + 1]
return results_dict
def get_ab_metrics(
pose_1,
pose_2,
):
pose_i1 = pyrosetta.rosetta.protocols.antibody.AntibodyInfo(pose_1)
pose_i2 = pyrosetta.rosetta.protocols.antibody.AntibodyInfo(pose_2)
results = pyrosetta.rosetta.protocols.antibody.cdr_backbone_rmsds(
pose_1,
pose_2,
pose_i1,
pose_i2,
)
results_labels = [
'ocd', 'frh_rms', 'h1_rms', 'h2_rms', 'h3_rms', 'frl_rms', 'l1_rms',
'l2_rms', 'l3_rms'
]
results_dict = {}
for i in range(9):
results_dict[results_labels[i]] = results[i + 1]
return results_dict
def get_pose_cdr_clusters(pose):
clus_name = {1: 'h1', 2: 'h2', 3: 'h3', 4: 'l1', 5: 'l2', 6: 'l3'}
ab_info = pyrosetta.rosetta.protocols.antibody.AntibodyInfo(
pose, pyrosetta.rosetta.protocols.antibody.CDRDefinitionEnum.North)
ab_info.setup_CDR_clusters(pose)
clusters = {}
for enum in range(1, ab_info.get_total_num_CDRs() + 1):
result = ab_info.get_CDR_cluster(
pyrosetta.rosetta.protocols.antibody.CDRNameEnum(enum))
clus = ab_info.get_cluster_name(result.cluster())
clusters[clus_name[enum]] = clus
return clusters