Download model/utils/ab_metrics.py from OneScience-Group/IgFold: direct link, hf CLI and curl.
- Browser
- Download file 1.72 kB
-
https://huggingface.co/OneScience-Group/IgFold/resolve/main/model/utils/ab_metrics.py
- Command line
-
hf download hf://OneScience-Group/IgFold/model/utils/ab_metrics.py
-
curl -L -o ab_metrics.py https://huggingface.co/OneScience-Group/IgFold/resolve/main/model/utils/ab_metrics.py
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 |