wuxing0105 commited on
Commit
aa6c9d3
·
verified ·
1 Parent(s): a3d534b

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. weight/esm-main/examples/lm-design/2N2U.pdb +1097 -0
  2. weight/esm-main/examples/lm-design/README.md +32 -0
  3. weight/esm-main/examples/lm-design/additional_requirements.txt +3 -0
  4. weight/esm-main/examples/lm-design/fixed_backbone.ipynb +197 -0
  5. weight/esm-main/examples/lm-design/free_generation.ipynb +169 -0
  6. weight/esm-main/examples/lm-design/lm_design.py +456 -0
  7. weight/esm-main/examples/lm-design/utils/fixedbb.py +56 -0
  8. weight/esm-main/examples/lm-design/utils/free_generation.py +94 -0
  9. weight/esm-main/examples/lm-design/utils/masking.py +92 -0
  10. weight/esm-main/examples/lm-design/utils/misc.py +41 -0
  11. weight/esm-main/examples/lm-design/utils/ngram.py +73 -0
  12. weight/esm-main/examples/lm-design/utils/pdb_loader.py +321 -0
  13. weight/esm-main/examples/lm-design/utils/sampling.py +201 -0
  14. weight/esm-main/examples/lm-design/utils/scheduler.py +69 -0
  15. weight/esm-main/examples/lm-design/utils/struct_models.py +128 -0
  16. weight/esm-main/examples/lm-design/utils/tensor.py +81 -0
  17. weight/esm-main/examples/protein-programming-language/README.md +25 -0
  18. weight/esm-main/examples/protein-programming-language/language/utilities.py +19 -0
  19. weight/esm-main/examples/protein-programming-language/programs/fixed_backbone.py +39 -0
  20. weight/esm-main/examples/protein-programming-language/programs/free_hallucination.py +24 -0
  21. weight/esm-main/examples/protein-programming-language/programs/functional_site_scaffolding.py +58 -0
  22. weight/esm-main/examples/protein-programming-language/programs/secondary_structure.py +47 -0
  23. weight/esm-main/examples/protein-programming-language/programs/symmetric_binding.py +64 -0
  24. weight/esm-main/examples/protein-programming-language/programs/symmetric_monomer.py +36 -0
  25. weight/esm-main/examples/protein-programming-language/programs/symmetric_two_level_multimer.py +65 -0
  26. weight/esm-main/examples/protein-programming-language/tutorial.ipynb +253 -0
  27. weight/esm-main/scripts/__init__.py +1 -0
  28. weight/esm-main/scripts/atlas/README.md +100 -0
  29. weight/esm-main/scripts/atlas/v0/full/bins.txt +72 -0
  30. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings.txt +673 -0
  31. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.40_.50_plddt_.40_.50.txt +1 -0
  32. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.40_.50_plddt_.60_.70.txt +1 -0
  33. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.40_.50_plddt_0_.40.txt +1 -0
  34. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.50_.60_plddt_.40_.50.txt +1 -0
  35. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.50_.60_plddt_.60_.70.txt +1 -0
  36. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.50_.60_plddt_0_.40.txt +1 -0
  37. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.60_.70_plddt_.40_.50.txt +1 -0
  38. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.60_.70_plddt_.80_.90.txt +1 -0
  39. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.70_.80_plddt_.50_.60.txt +1 -0
  40. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.70_.80_plddt_.60_.70.txt +1 -0
  41. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.70_.80_plddt_.80_.90.txt +1 -0
  42. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.70_.80_plddt_.90_1.txt +1 -0
  43. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.80_.90_plddt_.60_.70.txt +1 -0
  44. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.80_.90_plddt_.70_.80.txt +1 -0
  45. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.80_.90_plddt_.80_.90.txt +1 -0
  46. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.80_.90_plddt_.90_1.txt +1 -0
  47. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.90_1_plddt_.70_.80.txt +1 -0
  48. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.90_1_plddt_.90_1.txt +1 -0
  49. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_0_.40_plddt_.40_.50.txt +1 -0
  50. weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_0_.40_plddt_.50_.60.txt +1 -0
weight/esm-main/examples/lm-design/2N2U.pdb ADDED
@@ -0,0 +1,1097 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ATOM 1 N MET A 1 2.474 14.947 -3.252 1.00 30.41 N
2
+ ATOM 2 CA MET A 1 1.932 13.612 -3.600 1.00 73.02 C
3
+ ATOM 3 C MET A 1 3.047 12.685 -4.110 1.00 44.21 C
4
+ ATOM 4 O MET A 1 3.901 13.105 -4.899 1.00 12.21 O
5
+ ATOM 5 CB MET A 1 0.773 13.733 -4.632 1.00 52.11 C
6
+ ATOM 6 CG MET A 1 1.118 14.483 -5.932 1.00 63.25 C
7
+ ATOM 7 SD MET A 1 1.519 16.227 -5.649 1.00 2.52 S
8
+ ATOM 8 CE MET A 1 1.918 16.775 -7.309 1.00 22.41 C
9
+ ATOM 9 H1 MET A 1 2.965 15.360 -4.068 1.00 37.08 H
10
+ ATOM 10 H2 MET A 1 3.147 14.868 -2.462 1.00 37.08 H
11
+ ATOM 11 H3 MET A 1 1.703 15.583 -2.968 1.00 37.08 H
12
+ ATOM 12 HA MET A 1 1.530 13.192 -2.682 1.00 72.41 H
13
+ ATOM 13 HB2 MET A 1 0.434 12.737 -4.897 1.00 52.45 H
14
+ ATOM 14 HB3 MET A 1 -0.052 14.254 -4.158 1.00 31.25 H
15
+ ATOM 15 HG2 MET A 1 1.970 14.005 -6.396 1.00 43.45 H
16
+ ATOM 16 HG3 MET A 1 0.268 14.429 -6.602 1.00 1.42 H
17
+ ATOM 17 HE1 MET A 1 2.206 17.815 -7.285 1.00 41.41 H
18
+ ATOM 18 HE2 MET A 1 1.055 16.655 -7.948 1.00 32.23 H
19
+ ATOM 19 HE3 MET A 1 2.736 16.185 -7.696 1.00 20.43 H
20
+ ATOM 20 N VAL A 2 3.067 11.433 -3.594 1.00 71.32 N
21
+ ATOM 21 CA VAL A 2 3.984 10.371 -4.058 1.00 23.32 C
22
+ ATOM 22 C VAL A 2 3.155 9.215 -4.628 1.00 3.23 C
23
+ ATOM 23 O VAL A 2 2.230 8.734 -3.970 1.00 33.21 O
24
+ ATOM 24 CB VAL A 2 4.908 9.812 -2.913 1.00 71.22 C
25
+ ATOM 25 CG1 VAL A 2 5.958 8.822 -3.481 1.00 64.04 C
26
+ ATOM 26 CG2 VAL A 2 5.582 10.955 -2.132 1.00 73.43 C
27
+ ATOM 27 H VAL A 2 2.429 11.213 -2.887 1.00 65.22 H
28
+ ATOM 28 HA VAL A 2 4.624 10.780 -4.847 1.00 41.13 H
29
+ ATOM 29 HB VAL A 2 4.283 9.259 -2.212 1.00 20.22 H
30
+ ATOM 30 HG11 VAL A 2 5.456 7.995 -3.971 1.00 23.31 H
31
+ ATOM 31 HG12 VAL A 2 6.569 8.435 -2.677 1.00 10.15 H
32
+ ATOM 32 HG13 VAL A 2 6.592 9.329 -4.198 1.00 53.33 H
33
+ ATOM 33 HG21 VAL A 2 6.201 10.548 -1.340 1.00 5.25 H
34
+ ATOM 34 HG22 VAL A 2 4.824 11.594 -1.697 1.00 45.50 H
35
+ ATOM 35 HG23 VAL A 2 6.199 11.542 -2.796 1.00 23.40 H
36
+ ATOM 36 N ASP A 3 3.465 8.809 -5.854 1.00 62.11 N
37
+ ATOM 37 CA ASP A 3 2.839 7.650 -6.508 1.00 12.32 C
38
+ ATOM 38 C ASP A 3 3.379 6.341 -5.886 1.00 32.51 C
39
+ ATOM 39 O ASP A 3 4.588 6.101 -5.921 1.00 24.12 O
40
+ ATOM 40 CB ASP A 3 3.148 7.741 -8.023 1.00 21.11 C
41
+ ATOM 41 CG ASP A 3 2.627 6.567 -8.863 1.00 53.15 C
42
+ ATOM 42 OD1 ASP A 3 3.349 5.554 -9.016 1.00 24.42 O
43
+ ATOM 43 OD2 ASP A 3 1.497 6.657 -9.390 1.00 41.22 O
44
+ ATOM 44 H ASP A 3 4.146 9.306 -6.356 1.00 60.51 H
45
+ ATOM 45 HA ASP A 3 1.763 7.711 -6.357 1.00 32.14 H
46
+ ATOM 46 HB2 ASP A 3 2.713 8.658 -8.412 1.00 1.32 H
47
+ ATOM 47 HB3 ASP A 3 4.226 7.807 -8.153 1.00 74.35 H
48
+ ATOM 48 N LEU A 4 2.487 5.533 -5.269 1.00 15.15 N
49
+ ATOM 49 CA LEU A 4 2.843 4.213 -4.688 1.00 52.22 C
50
+ ATOM 50 C LEU A 4 1.925 3.124 -5.275 1.00 20.20 C
51
+ ATOM 51 O LEU A 4 0.745 3.063 -4.956 1.00 2.34 O
52
+ ATOM 52 CB LEU A 4 2.705 4.235 -3.130 1.00 42.51 C
53
+ ATOM 53 CG LEU A 4 3.628 5.220 -2.347 1.00 71.31 C
54
+ ATOM 54 CD1 LEU A 4 3.306 5.178 -0.839 1.00 12.10 C
55
+ ATOM 55 CD2 LEU A 4 5.122 4.915 -2.605 1.00 43.25 C
56
+ ATOM 56 H LEU A 4 1.557 5.831 -5.200 1.00 11.54 H
57
+ ATOM 57 HA LEU A 4 3.877 3.979 -4.948 1.00 72.02 H
58
+ ATOM 58 HB2 LEU A 4 1.672 4.482 -2.888 1.00 2.21 H
59
+ ATOM 59 HB3 LEU A 4 2.897 3.231 -2.758 1.00 65.12 H
60
+ ATOM 60 HG LEU A 4 3.437 6.232 -2.692 1.00 52.31 H
61
+ ATOM 61 HD11 LEU A 4 3.469 4.177 -0.450 1.00 11.44 H
62
+ ATOM 62 HD12 LEU A 4 2.273 5.456 -0.681 1.00 74.44 H
63
+ ATOM 63 HD13 LEU A 4 3.940 5.874 -0.311 1.00 62.15 H
64
+ ATOM 64 HD21 LEU A 4 5.740 5.610 -2.048 1.00 44.31 H
65
+ ATOM 65 HD22 LEU A 4 5.335 5.021 -3.660 1.00 45.10 H
66
+ ATOM 66 HD23 LEU A 4 5.353 3.903 -2.294 1.00 1.24 H
67
+ ATOM 67 N LYS A 5 2.479 2.249 -6.118 1.00 33.01 N
68
+ ATOM 68 CA LYS A 5 1.733 1.121 -6.723 1.00 52.12 C
69
+ ATOM 69 C LYS A 5 2.309 -0.189 -6.172 1.00 21.32 C
70
+ ATOM 70 O LYS A 5 3.433 -0.552 -6.482 1.00 2.13 O
71
+ ATOM 71 CB LYS A 5 1.777 1.158 -8.294 1.00 71.43 C
72
+ ATOM 72 CG LYS A 5 0.620 1.929 -8.994 1.00 75.12 C
73
+ ATOM 73 CD LYS A 5 0.636 3.474 -8.780 1.00 64.51 C
74
+ ATOM 74 CE LYS A 5 -0.427 3.981 -7.799 1.00 65.12 C
75
+ ATOM 75 NZ LYS A 5 -0.444 5.466 -7.668 1.00 45.31 N
76
+ ATOM 76 H LYS A 5 3.436 2.355 -6.296 1.00 43.13 H
77
+ ATOM 77 HA LYS A 5 0.690 1.191 -6.403 1.00 52.03 H
78
+ ATOM 78 HB2 LYS A 5 2.711 1.616 -8.611 1.00 61.01 H
79
+ ATOM 79 HB3 LYS A 5 1.767 0.139 -8.672 1.00 44.23 H
80
+ ATOM 80 HG2 LYS A 5 0.681 1.729 -10.061 1.00 3.42 H
81
+ ATOM 81 HG3 LYS A 5 -0.322 1.524 -8.629 1.00 2.31 H
82
+ ATOM 82 HD2 LYS A 5 1.609 3.774 -8.410 1.00 52.03 H
83
+ ATOM 83 HD3 LYS A 5 0.473 3.960 -9.740 1.00 74.51 H
84
+ ATOM 84 HE2 LYS A 5 -1.400 3.662 -8.146 1.00 13.31 H
85
+ ATOM 85 HE3 LYS A 5 -0.242 3.548 -6.825 1.00 24.14 H
86
+ ATOM 86 HZ1 LYS A 5 -0.765 5.897 -8.560 1.00 73.55 H
87
+ ATOM 87 HZ2 LYS A 5 0.508 5.818 -7.452 1.00 1.14 H
88
+ ATOM 88 HZ3 LYS A 5 -1.092 5.758 -6.904 1.00 34.01 H
89
+ ATOM 89 N ILE A 6 1.508 -0.925 -5.391 1.00 42.42 N
90
+ ATOM 90 CA ILE A 6 1.982 -2.110 -4.672 1.00 44.20 C
91
+ ATOM 91 C ILE A 6 1.521 -3.337 -5.458 1.00 1.55 C
92
+ ATOM 92 O ILE A 6 0.322 -3.563 -5.585 1.00 63.22 O
93
+ ATOM 93 CB ILE A 6 1.437 -2.212 -3.183 1.00 21.25 C
94
+ ATOM 94 CG1 ILE A 6 1.885 -0.992 -2.299 1.00 53.53 C
95
+ ATOM 95 CG2 ILE A 6 1.885 -3.554 -2.533 1.00 0.14 C
96
+ ATOM 96 CD1 ILE A 6 1.127 0.312 -2.533 1.00 62.52 C
97
+ ATOM 97 H ILE A 6 0.548 -0.767 -5.418 1.00 60.40 H
98
+ ATOM 98 HA ILE A 6 3.074 -2.096 -4.636 1.00 31.21 H
99
+ ATOM 99 HB ILE A 6 0.347 -2.223 -3.229 1.00 54.54 H
100
+ ATOM 100 HG12 ILE A 6 1.759 -1.240 -1.253 1.00 22.21 H
101
+ ATOM 101 HG13 ILE A 6 2.937 -0.792 -2.476 1.00 74.14 H
102
+ ATOM 102 HG21 ILE A 6 1.518 -4.393 -3.116 1.00 62.25 H
103
+ ATOM 103 HG22 ILE A 6 1.487 -3.631 -1.529 1.00 60.52 H
104
+ ATOM 104 HG23 ILE A 6 2.968 -3.604 -2.485 1.00 32.31 H
105
+ ATOM 105 HD11 ILE A 6 1.250 0.624 -3.559 1.00 31.12 H
106
+ ATOM 106 HD12 ILE A 6 1.519 1.076 -1.876 1.00 43.43 H
107
+ ATOM 107 HD13 ILE A 6 0.077 0.164 -2.322 1.00 32.31 H
108
+ ATOM 108 N ASP A 7 2.475 -4.116 -5.981 1.00 2.13 N
109
+ ATOM 109 CA ASP A 7 2.172 -5.409 -6.621 1.00 30.20 C
110
+ ATOM 110 C ASP A 7 1.508 -6.318 -5.581 1.00 3.24 C
111
+ ATOM 111 O ASP A 7 1.975 -6.355 -4.452 1.00 23.12 O
112
+ ATOM 112 CB ASP A 7 3.472 -6.077 -7.130 1.00 61.23 C
113
+ ATOM 113 CG ASP A 7 3.248 -7.504 -7.682 1.00 13.42 C
114
+ ATOM 114 OD1 ASP A 7 2.788 -7.630 -8.836 1.00 75.25 O
115
+ ATOM 115 OD2 ASP A 7 3.526 -8.503 -6.966 1.00 51.34 O
116
+ ATOM 116 H ASP A 7 3.407 -3.836 -5.872 1.00 71.34 H
117
+ ATOM 117 HA ASP A 7 1.488 -5.235 -7.454 1.00 62.23 H
118
+ ATOM 118 HB2 ASP A 7 3.897 -5.463 -7.919 1.00 53.33 H
119
+ ATOM 119 HB3 ASP A 7 4.190 -6.123 -6.316 1.00 25.45 H
120
+ ATOM 120 N VAL A 8 0.441 -7.046 -5.953 1.00 71.44 N
121
+ ATOM 121 CA VAL A 8 -0.200 -8.042 -5.055 1.00 35.32 C
122
+ ATOM 122 C VAL A 8 -0.354 -9.369 -5.815 1.00 11.50 C
123
+ ATOM 123 O VAL A 8 -0.940 -9.418 -6.906 1.00 54.22 O
124
+ ATOM 124 CB VAL A 8 -1.586 -7.568 -4.451 1.00 1.23 C
125
+ ATOM 125 CG1 VAL A 8 -1.386 -6.367 -3.506 1.00 1.31 C
126
+ ATOM 126 CG2 VAL A 8 -2.646 -7.245 -5.532 1.00 62.52 C
127
+ ATOM 127 H VAL A 8 0.105 -6.994 -6.871 1.00 20.22 H
128
+ ATOM 128 HA VAL A 8 0.480 -8.220 -4.214 1.00 13.10 H
129
+ ATOM 129 HB VAL A 8 -1.972 -8.388 -3.844 1.00 23.15 H
130
+ ATOM 130 HG11 VAL A 8 -0.980 -5.527 -4.057 1.00 14.13 H
131
+ ATOM 131 HG12 VAL A 8 -0.698 -6.640 -2.715 1.00 13.42 H
132
+ ATOM 132 HG13 VAL A 8 -2.335 -6.085 -3.066 1.00 12.11 H
133
+ ATOM 133 HG21 VAL A 8 -3.584 -6.966 -5.062 1.00 2.41 H
134
+ ATOM 134 HG22 VAL A 8 -2.808 -8.118 -6.151 1.00 51.44 H
135
+ ATOM 135 HG23 VAL A 8 -2.304 -6.429 -6.154 1.00 14.32 H
136
+ ATOM 136 N SER A 9 0.221 -10.441 -5.243 1.00 31.44 N
137
+ ATOM 137 CA SER A 9 0.249 -11.784 -5.857 1.00 3.51 C
138
+ ATOM 138 C SER A 9 -0.835 -12.705 -5.265 1.00 1.10 C
139
+ ATOM 139 O SER A 9 -1.115 -13.781 -5.806 1.00 55.42 O
140
+ ATOM 140 CB SER A 9 1.653 -12.401 -5.671 1.00 25.52 C
141
+ ATOM 141 OG SER A 9 2.659 -11.532 -6.175 1.00 20.22 O
142
+ ATOM 142 H SER A 9 0.659 -10.304 -4.372 1.00 63.32 H
143
+ ATOM 143 HA SER A 9 0.058 -11.678 -6.922 1.00 51.45 H
144
+ ATOM 144 HB2 SER A 9 1.845 -12.572 -4.620 1.00 33.14 H
145
+ ATOM 145 HB3 SER A 9 1.716 -13.341 -6.208 1.00 44.33 H
146
+ ATOM 146 HG SER A 9 2.246 -10.793 -6.640 1.00 63.31 H
147
+ ATOM 147 N ASP A 10 -1.447 -12.261 -4.157 1.00 12.02 N
148
+ ATOM 148 CA ASP A 10 -2.502 -13.005 -3.449 1.00 74.03 C
149
+ ATOM 149 C ASP A 10 -3.614 -12.029 -3.007 1.00 13.33 C
150
+ ATOM 150 O ASP A 10 -3.389 -10.814 -2.911 1.00 63.25 O
151
+ ATOM 151 CB ASP A 10 -1.878 -13.789 -2.254 1.00 62.50 C
152
+ ATOM 152 CG ASP A 10 -2.908 -14.381 -1.272 1.00 63.35 C
153
+ ATOM 153 OD1 ASP A 10 -3.614 -15.343 -1.640 1.00 54.33 O
154
+ ATOM 154 OD2 ASP A 10 -3.041 -13.865 -0.144 1.00 62.42 O
155
+ ATOM 155 H ASP A 10 -1.189 -11.383 -3.804 1.00 30.43 H
156
+ ATOM 156 HA ASP A 10 -2.938 -13.720 -4.148 1.00 23.24 H
157
+ ATOM 157 HB2 ASP A 10 -1.287 -14.610 -2.648 1.00 12.43 H
158
+ ATOM 158 HB3 ASP A 10 -1.213 -13.129 -1.708 1.00 40.23 H
159
+ ATOM 159 N ASP A 11 -4.802 -12.589 -2.744 1.00 33.51 N
160
+ ATOM 160 CA ASP A 11 -6.028 -11.833 -2.425 1.00 52.32 C
161
+ ATOM 161 C ASP A 11 -6.032 -11.379 -0.952 1.00 74.13 C
162
+ ATOM 162 O ASP A 11 -6.364 -10.229 -0.651 1.00 43.11 O
163
+ ATOM 163 CB ASP A 11 -7.252 -12.743 -2.703 1.00 64.53 C
164
+ ATOM 164 CG ASP A 11 -8.607 -12.023 -2.569 1.00 61.24 C
165
+ ATOM 165 OD1 ASP A 11 -9.125 -11.885 -1.439 1.00 4.12 O
166
+ ATOM 166 OD2 ASP A 11 -9.166 -11.588 -3.601 1.00 72.22 O
167
+ ATOM 167 H ASP A 11 -4.853 -13.567 -2.736 1.00 71.11 H
168
+ ATOM 168 HA ASP A 11 -6.076 -10.960 -3.072 1.00 40.31 H
169
+ ATOM 169 HB2 ASP A 11 -7.167 -13.135 -3.714 1.00 24.24 H
170
+ ATOM 170 HB3 ASP A 11 -7.235 -13.583 -2.015 1.00 23.23 H
171
+ ATOM 171 N GLU A 12 -5.684 -12.310 -0.044 1.00 42.20 N
172
+ ATOM 172 CA GLU A 12 -5.738 -12.075 1.408 1.00 4.23 C
173
+ ATOM 173 C GLU A 12 -4.698 -11.021 1.842 1.00 23.45 C
174
+ ATOM 174 O GLU A 12 -4.999 -10.157 2.673 1.00 71.33 O
175
+ ATOM 175 CB GLU A 12 -5.527 -13.406 2.172 1.00 52.30 C
176
+ ATOM 176 CG GLU A 12 -5.441 -13.279 3.714 1.00 44.12 C
177
+ ATOM 177 CD GLU A 12 -6.738 -12.781 4.389 1.00 12.52 C
178
+ ATOM 178 OE1 GLU A 12 -6.916 -11.550 4.560 1.00 71.42 O
179
+ ATOM 179 OE2 GLU A 12 -7.580 -13.624 4.770 1.00 31.21 O
180
+ ATOM 180 H GLU A 12 -5.373 -13.186 -0.364 1.00 43.22 H
181
+ ATOM 181 HA GLU A 12 -6.731 -11.694 1.642 1.00 45.14 H
182
+ ATOM 182 HB2 GLU A 12 -6.346 -14.079 1.931 1.00 53.25 H
183
+ ATOM 183 HB3 GLU A 12 -4.605 -13.855 1.819 1.00 30.11 H
184
+ ATOM 184 HG2 GLU A 12 -5.191 -14.254 4.123 1.00 32.02 H
185
+ ATOM 185 HG3 GLU A 12 -4.634 -12.593 3.959 1.00 43.10 H
186
+ ATOM 186 N GLU A 13 -3.469 -11.095 1.286 1.00 35.32 N
187
+ ATOM 187 CA GLU A 13 -2.432 -10.101 1.579 1.00 43.00 C
188
+ ATOM 188 C GLU A 13 -2.853 -8.726 1.026 1.00 63.02 C
189
+ ATOM 189 O GLU A 13 -2.596 -7.721 1.661 1.00 25.12 O
190
+ ATOM 190 CB GLU A 13 -1.051 -10.557 1.037 1.00 73.11 C
191
+ ATOM 191 CG GLU A 13 -0.954 -10.760 -0.499 1.00 73.42 C
192
+ ATOM 192 CD GLU A 13 -0.235 -9.643 -1.282 1.00 40.23 C
193
+ ATOM 193 OE1 GLU A 13 -0.465 -8.450 -1.002 1.00 45.44 O
194
+ ATOM 194 OE2 GLU A 13 0.561 -9.953 -2.201 1.00 23.34 O
195
+ ATOM 195 H GLU A 13 -3.259 -11.827 0.668 1.00 40.33 H
196
+ ATOM 196 HA GLU A 13 -2.365 -10.024 2.664 1.00 75.41 H
197
+ ATOM 197 HB2 GLU A 13 -0.314 -9.831 1.332 1.00 34.53 H
198
+ ATOM 198 HB3 GLU A 13 -0.798 -11.498 1.521 1.00 54.54 H
199
+ ATOM 199 HG2 GLU A 13 -0.433 -11.687 -0.678 1.00 54.13 H
200
+ ATOM 200 HG3 GLU A 13 -1.960 -10.855 -0.895 1.00 31.11 H
201
+ ATOM 201 N ALA A 14 -3.546 -8.720 -0.139 1.00 2.41 N
202
+ ATOM 202 CA ALA A 14 -4.075 -7.490 -0.762 1.00 62.50 C
203
+ ATOM 203 C ALA A 14 -5.079 -6.798 0.179 1.00 71.44 C
204
+ ATOM 204 O ALA A 14 -5.050 -5.575 0.334 1.00 74.25 O
205
+ ATOM 205 CB ALA A 14 -4.719 -7.814 -2.121 1.00 22.14 C
206
+ ATOM 206 H ALA A 14 -3.704 -9.573 -0.591 1.00 54.43 H
207
+ ATOM 207 HA ALA A 14 -3.235 -6.825 -0.936 1.00 2.31 H
208
+ ATOM 208 HB1 ALA A 14 -5.567 -8.474 -1.980 1.00 12.52 H
209
+ ATOM 209 HB2 ALA A 14 -3.991 -8.306 -2.755 1.00 55.25 H
210
+ ATOM 210 HB3 ALA A 14 -5.049 -6.903 -2.601 1.00 22.43 H
211
+ ATOM 211 N GLU A 15 -5.951 -7.616 0.800 1.00 21.43 N
212
+ ATOM 212 CA GLU A 15 -6.872 -7.180 1.865 1.00 74.13 C
213
+ ATOM 213 C GLU A 15 -6.100 -6.538 3.029 1.00 51.21 C
214
+ ATOM 214 O GLU A 15 -6.437 -5.442 3.479 1.00 41.42 O
215
+ ATOM 215 CB GLU A 15 -7.716 -8.388 2.367 1.00 3.30 C
216
+ ATOM 216 CG GLU A 15 -8.744 -8.931 1.351 1.00 73.52 C
217
+ ATOM 217 CD GLU A 15 -9.913 -7.962 1.099 1.00 73.21 C
218
+ ATOM 218 OE1 GLU A 15 -9.749 -7.008 0.315 1.00 4.53 O
219
+ ATOM 219 OE2 GLU A 15 -11.002 -8.142 1.692 1.00 72.14 O
220
+ ATOM 220 H GLU A 15 -5.995 -8.550 0.504 1.00 3.44 H
221
+ ATOM 221 HA GLU A 15 -7.539 -6.441 1.432 1.00 21.45 H
222
+ ATOM 222 HB2 GLU A 15 -7.037 -9.198 2.619 1.00 12.42 H
223
+ ATOM 223 HB3 GLU A 15 -8.249 -8.101 3.269 1.00 1.00 H
224
+ ATOM 224 HG2 GLU A 15 -8.237 -9.121 0.411 1.00 40.25 H
225
+ ATOM 225 HG3 GLU A 15 -9.137 -9.871 1.728 1.00 2.34 H
226
+ ATOM 226 N LYS A 16 -5.029 -7.228 3.460 1.00 54.51 N
227
+ ATOM 227 CA LYS A 16 -4.157 -6.778 4.556 1.00 63.12 C
228
+ ATOM 228 C LYS A 16 -3.437 -5.448 4.208 1.00 45.32 C
229
+ ATOM 229 O LYS A 16 -3.196 -4.637 5.100 1.00 43.35 O
230
+ ATOM 230 CB LYS A 16 -3.128 -7.890 4.903 1.00 55.32 C
231
+ ATOM 231 CG LYS A 16 -3.723 -9.163 5.562 1.00 13.32 C
232
+ ATOM 232 CD LYS A 16 -4.211 -8.909 7.007 1.00 13.45 C
233
+ ATOM 233 CE LYS A 16 -4.723 -10.182 7.712 1.00 60.32 C
234
+ ATOM 234 NZ LYS A 16 -5.992 -10.689 7.117 1.00 73.24 N
235
+ ATOM 235 H LYS A 16 -4.818 -8.075 3.017 1.00 23.35 H
236
+ ATOM 236 HA LYS A 16 -4.791 -6.611 5.423 1.00 71.15 H
237
+ ATOM 237 HB2 LYS A 16 -2.622 -8.193 3.990 1.00 2.40 H
238
+ ATOM 238 HB3 LYS A 16 -2.382 -7.480 5.580 1.00 24.21 H
239
+ ATOM 239 HG2 LYS A 16 -4.562 -9.504 4.965 1.00 35.23 H
240
+ ATOM 240 HG3 LYS A 16 -2.963 -9.937 5.577 1.00 63.00 H
241
+ ATOM 241 HD2 LYS A 16 -3.388 -8.501 7.586 1.00 11.31 H
242
+ ATOM 242 HD3 LYS A 16 -5.015 -8.181 6.982 1.00 71.33 H
243
+ ATOM 243 HE2 LYS A 16 -3.969 -10.960 7.646 1.00 15.41 H
244
+ ATOM 244 HE3 LYS A 16 -4.899 -9.953 8.756 1.00 21.34 H
245
+ ATOM 245 HZ1 LYS A 16 -5.860 -10.893 6.104 1.00 31.43 H
246
+ ATOM 246 HZ2 LYS A 16 -6.743 -9.975 7.215 1.00 62.11 H
247
+ ATOM 247 HZ3 LYS A 16 -6.301 -11.563 7.593 1.00 74.25 H
248
+ ATOM 248 N ILE A 17 -3.125 -5.215 2.905 1.00 11.51 N
249
+ ATOM 249 CA ILE A 17 -2.508 -3.940 2.453 1.00 2.23 C
250
+ ATOM 250 C ILE A 17 -3.501 -2.790 2.711 1.00 62.42 C
251
+ ATOM 251 O ILE A 17 -3.157 -1.779 3.319 1.00 12.05 O
252
+ ATOM 252 CB ILE A 17 -2.106 -3.932 0.915 1.00 21.13 C
253
+ ATOM 253 CG1 ILE A 17 -1.297 -5.207 0.493 1.00 44.00 C
254
+ ATOM 254 CG2 ILE A 17 -1.327 -2.642 0.549 1.00 53.42 C
255
+ ATOM 255 CD1 ILE A 17 -0.133 -5.611 1.393 1.00 50.12 C
256
+ ATOM 256 H ILE A 17 -3.317 -5.910 2.245 1.00 54.41 H
257
+ ATOM 257 HA ILE A 17 -1.609 -3.781 3.048 1.00 71.41 H
258
+ ATOM 258 HB ILE A 17 -3.035 -3.919 0.337 1.00 40.23 H
259
+ ATOM 259 HG12 ILE A 17 -1.971 -6.048 0.465 1.00 40.03 H
260
+ ATOM 260 HG13 ILE A 17 -0.897 -5.065 -0.507 1.00 60.43 H
261
+ ATOM 261 HG21 ILE A 17 -0.415 -2.588 1.130 1.00 0.11 H
262
+ ATOM 262 HG22 ILE A 17 -1.936 -1.770 0.761 1.00 55.24 H
263
+ ATOM 263 HG23 ILE A 17 -1.079 -2.650 -0.505 1.00 45.23 H
264
+ ATOM 264 HD11 ILE A 17 0.288 -6.546 1.021 1.00 72.31 H
265
+ ATOM 265 HD12 ILE A 17 -0.481 -5.763 2.405 1.00 61.41 H
266
+ ATOM 266 HD13 ILE A 17 0.628 -4.846 1.379 1.00 20.43 H
267
+ ATOM 267 N ILE A 18 -4.760 -3.023 2.292 1.00 60.15 N
268
+ ATOM 268 CA ILE A 18 -5.864 -2.051 2.402 1.00 60.01 C
269
+ ATOM 269 C ILE A 18 -6.120 -1.683 3.875 1.00 55.43 C
270
+ ATOM 270 O ILE A 18 -6.245 -0.511 4.211 1.00 1.03 O
271
+ ATOM 271 CB ILE A 18 -7.184 -2.638 1.773 1.00 61.24 C
272
+ ATOM 272 CG1 ILE A 18 -6.958 -3.052 0.289 1.00 22.34 C
273
+ ATOM 273 CG2 ILE A 18 -8.376 -1.652 1.888 1.00 44.12 C
274
+ ATOM 274 CD1 ILE A 18 -8.124 -3.783 -0.333 1.00 64.32 C
275
+ ATOM 275 H ILE A 18 -4.955 -3.902 1.904 1.00 30.12 H
276
+ ATOM 276 HA ILE A 18 -5.580 -1.159 1.846 1.00 11.43 H
277
+ ATOM 277 HB ILE A 18 -7.446 -3.532 2.338 1.00 23.42 H
278
+ ATOM 278 HG12 ILE A 18 -6.771 -2.170 -0.308 1.00 25.05 H
279
+ ATOM 279 HG13 ILE A 18 -6.095 -3.703 0.225 1.00 30.32 H
280
+ ATOM 280 HG21 ILE A 18 -8.152 -0.739 1.354 1.00 31.55 H
281
+ ATOM 281 HG22 ILE A 18 -8.561 -1.420 2.929 1.00 4.35 H
282
+ ATOM 282 HG23 ILE A 18 -9.267 -2.105 1.467 1.00 42.42 H
283
+ ATOM 283 HD11 ILE A 18 -8.990 -3.132 -0.363 1.00 34.51 H
284
+ ATOM 284 HD12 ILE A 18 -8.357 -4.664 0.250 1.00 31.22 H
285
+ ATOM 285 HD13 ILE A 18 -7.865 -4.077 -1.337 1.00 70.44 H
286
+ ATOM 286 N ARG A 19 -6.151 -2.714 4.747 1.00 43.22 N
287
+ ATOM 287 CA ARG A 19 -6.472 -2.541 6.177 1.00 52.04 C
288
+ ATOM 288 C ARG A 19 -5.353 -1.766 6.893 1.00 61.44 C
289
+ ATOM 289 O ARG A 19 -5.620 -0.763 7.559 1.00 3.50 O
290
+ ATOM 290 CB ARG A 19 -6.729 -3.913 6.878 1.00 51.24 C
291
+ ATOM 291 CG ARG A 19 -7.837 -4.791 6.239 1.00 32.32 C
292
+ ATOM 292 CD ARG A 19 -9.165 -4.039 5.999 1.00 72.11 C
293
+ ATOM 293 NE ARG A 19 -10.196 -4.893 5.377 1.00 44.14 N
294
+ ATOM 294 CZ ARG A 19 -10.253 -5.236 4.077 1.00 1.24 C
295
+ ATOM 295 NH1 ARG A 19 -9.337 -4.819 3.206 1.00 13.53 N
296
+ ATOM 296 NH2 ARG A 19 -11.255 -5.977 3.650 1.00 50.30 N
297
+ ATOM 297 H ARG A 19 -5.936 -3.613 4.418 1.00 23.24 H
298
+ ATOM 298 HA ARG A 19 -7.388 -1.953 6.232 1.00 33.25 H
299
+ ATOM 299 HB2 ARG A 19 -5.806 -4.489 6.871 1.00 43.41 H
300
+ ATOM 300 HB3 ARG A 19 -7.004 -3.730 7.913 1.00 33.02 H
301
+ ATOM 301 HG2 ARG A 19 -7.479 -5.157 5.288 1.00 53.32 H
302
+ ATOM 302 HG3 ARG A 19 -8.030 -5.638 6.889 1.00 61.13 H
303
+ ATOM 303 HD2 ARG A 19 -9.545 -3.683 6.947 1.00 54.53 H
304
+ ATOM 304 HD3 ARG A 19 -8.979 -3.187 5.352 1.00 50.54 H
305
+ ATOM 305 HE ARG A 19 -10.897 -5.245 5.976 1.00 14.33 H
306
+ ATOM 306 HH11 ARG A 19 -8.578 -4.241 3.514 1.00 34.14 H
307
+ ATOM 307 HH12 ARG A 19 -9.399 -5.088 2.242 1.00 10.10 H
308
+ ATOM 308 HH21 ARG A 19 -11.966 -6.285 4.296 1.00 41.03 H
309
+ ATOM 309 HH22 ARG A 19 -11.315 -6.244 2.682 1.00 5.31 H
310
+ ATOM 310 N GLU A 20 -4.100 -2.217 6.702 1.00 23.34 N
311
+ ATOM 311 CA GLU A 20 -2.920 -1.640 7.370 1.00 24.43 C
312
+ ATOM 312 C GLU A 20 -2.602 -0.201 6.893 1.00 41.24 C
313
+ ATOM 313 O GLU A 20 -1.964 0.566 7.634 1.00 75.02 O
314
+ ATOM 314 CB GLU A 20 -1.681 -2.582 7.220 1.00 53.21 C
315
+ ATOM 315 CG GLU A 20 -1.576 -3.708 8.287 1.00 71.03 C
316
+ ATOM 316 CD GLU A 20 -2.665 -4.809 8.209 1.00 74.24 C
317
+ ATOM 317 OE1 GLU A 20 -3.795 -4.599 8.700 1.00 13.02 O
318
+ ATOM 318 OE2 GLU A 20 -2.373 -5.911 7.687 1.00 10.11 O
319
+ ATOM 319 H GLU A 20 -3.962 -2.977 6.100 1.00 54.31 H
320
+ ATOM 320 HA GLU A 20 -3.169 -1.575 8.429 1.00 14.13 H
321
+ ATOM 321 HB2 GLU A 20 -1.716 -3.049 6.241 1.00 52.41 H
322
+ ATOM 322 HB3 GLU A 20 -0.774 -1.986 7.276 1.00 62.25 H
323
+ ATOM 323 HG2 GLU A 20 -0.605 -4.176 8.185 1.00 1.20 H
324
+ ATOM 324 HG3 GLU A 20 -1.627 -3.251 9.274 1.00 13.12 H
325
+ ATOM 325 N ILE A 21 -3.036 0.163 5.672 1.00 72.23 N
326
+ ATOM 326 CA ILE A 21 -2.911 1.546 5.171 1.00 12.44 C
327
+ ATOM 327 C ILE A 21 -4.061 2.410 5.725 1.00 34.33 C
328
+ ATOM 328 O ILE A 21 -3.825 3.424 6.381 1.00 75.54 O
329
+ ATOM 329 CB ILE A 21 -2.878 1.618 3.591 1.00 14.15 C
330
+ ATOM 330 CG1 ILE A 21 -1.610 0.900 3.022 1.00 53.24 C
331
+ ATOM 331 CG2 ILE A 21 -2.943 3.079 3.075 1.00 61.34 C
332
+ ATOM 332 CD1 ILE A 21 -0.280 1.494 3.461 1.00 62.11 C
333
+ ATOM 333 H ILE A 21 -3.441 -0.519 5.090 1.00 13.51 H
334
+ ATOM 334 HA ILE A 21 -1.968 1.952 5.544 1.00 63.44 H
335
+ ATOM 335 HB ILE A 21 -3.760 1.102 3.222 1.00 51.15 H
336
+ ATOM 336 HG12 ILE A 21 -1.621 -0.133 3.336 1.00 32.44 H
337
+ ATOM 337 HG13 ILE A 21 -1.641 0.930 1.937 1.00 40.44 H
338
+ ATOM 338 HG21 ILE A 21 -2.897 3.085 1.990 1.00 64.23 H
339
+ ATOM 339 HG22 ILE A 21 -2.111 3.646 3.468 1.00 54.23 H
340
+ ATOM 340 HG23 ILE A 21 -3.871 3.539 3.390 1.00 15.13 H
341
+ ATOM 341 HD11 ILE A 21 -0.203 1.466 4.540 1.00 52.12 H
342
+ ATOM 342 HD12 ILE A 21 -0.200 2.518 3.120 1.00 3.53 H
343
+ ATOM 343 HD13 ILE A 21 0.526 0.915 3.035 1.00 64.30 H
344
+ ATOM 344 N ARG A 22 -5.305 1.956 5.530 1.00 74.01 N
345
+ ATOM 345 CA ARG A 22 -6.502 2.791 5.768 1.00 43.31 C
346
+ ATOM 346 C ARG A 22 -6.832 2.948 7.264 1.00 3.03 C
347
+ ATOM 347 O ARG A 22 -7.630 3.825 7.625 1.00 42.33 O
348
+ ATOM 348 CB ARG A 22 -7.730 2.263 4.984 1.00 51.13 C
349
+ ATOM 349 CG ARG A 22 -7.568 2.347 3.450 1.00 62.31 C
350
+ ATOM 350 CD ARG A 22 -8.865 2.025 2.680 1.00 0.34 C
351
+ ATOM 351 NE ARG A 22 -9.998 2.906 3.043 1.00 11.23 N
352
+ ATOM 352 CZ ARG A 22 -10.090 4.226 2.774 1.00 32.20 C
353
+ ATOM 353 NH1 ARG A 22 -9.119 4.881 2.138 1.00 33.44 N
354
+ ATOM 354 NH2 ARG A 22 -11.181 4.886 3.137 1.00 52.24 N
355
+ ATOM 355 H ARG A 22 -5.422 1.016 5.285 1.00 40.10 H
356
+ ATOM 356 HA ARG A 22 -6.271 3.786 5.387 1.00 35.35 H
357
+ ATOM 357 HB2 ARG A 22 -7.902 1.224 5.254 1.00 24.30 H
358
+ ATOM 358 HB3 ARG A 22 -8.605 2.843 5.266 1.00 4.42 H
359
+ ATOM 359 HG2 ARG A 22 -7.251 3.351 3.181 1.00 62.04 H
360
+ ATOM 360 HG3 ARG A 22 -6.800 1.645 3.145 1.00 22.20 H
361
+ ATOM 361 HD2 ARG A 22 -8.675 2.123 1.617 1.00 33.54 H
362
+ ATOM 362 HD3 ARG A 22 -9.148 0.999 2.889 1.00 21.41 H
363
+ ATOM 363 HE ARG A 22 -10.748 2.478 3.512 1.00 43.33 H
364
+ ATOM 364 HH11 ARG A 22 -8.295 4.396 1.836 1.00 71.33 H
365
+ ATOM 365 HH12 ARG A 22 -9.211 5.861 1.948 1.00 55.20 H
366
+ ATOM 366 HH21 ARG A 22 -11.928 4.408 3.609 1.00 55.21 H
367
+ ATOM 367 HH22 ARG A 22 -11.264 5.870 2.948 1.00 21.54 H
368
+ ATOM 368 N GLU A 23 -6.230 2.107 8.131 1.00 50.31 N
369
+ ATOM 369 CA GLU A 23 -6.429 2.204 9.594 1.00 65.11 C
370
+ ATOM 370 C GLU A 23 -5.741 3.477 10.136 1.00 10.42 C
371
+ ATOM 371 O GLU A 23 -6.207 4.083 11.103 1.00 60.14 O
372
+ ATOM 372 CB GLU A 23 -5.892 0.938 10.332 1.00 11.42 C
373
+ ATOM 373 CG GLU A 23 -4.357 0.754 10.286 1.00 4.14 C
374
+ ATOM 374 CD GLU A 23 -3.850 -0.365 11.209 1.00 42.35 C
375
+ ATOM 375 OE1 GLU A 23 -3.853 -0.169 12.445 1.00 40.53 O
376
+ ATOM 376 OE2 GLU A 23 -3.436 -1.434 10.716 1.00 75.44 O
377
+ ATOM 377 H GLU A 23 -5.623 1.417 7.784 1.00 64.21 H
378
+ ATOM 378 HA GLU A 23 -7.501 2.286 9.773 1.00 71.43 H
379
+ ATOM 379 HB2 GLU A 23 -6.201 0.984 11.371 1.00 3.12 H
380
+ ATOM 380 HB3 GLU A 23 -6.348 0.064 9.879 1.00 4.11 H
381
+ ATOM 381 HG2 GLU A 23 -4.065 0.535 9.263 1.00 73.33 H
382
+ ATOM 382 HG3 GLU A 23 -3.888 1.686 10.584 1.00 22.14 H
383
+ ATOM 383 N GLN A 24 -4.618 3.860 9.497 1.00 33.32 N
384
+ ATOM 384 CA GLN A 24 -3.841 5.060 9.854 1.00 43.12 C
385
+ ATOM 385 C GLN A 24 -4.263 6.242 8.970 1.00 25.24 C
386
+ ATOM 386 O GLN A 24 -4.415 7.367 9.451 1.00 64.05 O
387
+ ATOM 387 CB GLN A 24 -2.322 4.780 9.683 1.00 70.05 C
388
+ ATOM 388 CG GLN A 24 -1.800 3.563 10.473 1.00 31.51 C
389
+ ATOM 389 CD GLN A 24 -0.316 3.265 10.244 1.00 54.12 C
390
+ ATOM 390 OE1 GLN A 24 0.485 4.167 10.008 1.00 3.23 O
391
+ ATOM 391 NE2 GLN A 24 0.062 2.007 10.313 1.00 35.05 N
392
+ ATOM 392 H GLN A 24 -4.283 3.304 8.763 1.00 13.22 H
393
+ ATOM 393 HA GLN A 24 -4.042 5.303 10.897 1.00 23.31 H
394
+ ATOM 394 HB2 GLN A 24 -2.110 4.613 8.626 1.00 74.53 H
395
+ ATOM 395 HB3 GLN A 24 -1.767 5.658 10.005 1.00 65.24 H
396
+ ATOM 396 HG2 GLN A 24 -1.950 3.743 11.533 1.00 4.33 H
397
+ ATOM 397 HG3 GLN A 24 -2.378 2.692 10.182 1.00 13.25 H
398
+ ATOM 398 HE21 GLN A 24 -0.617 1.328 10.511 1.00 13.15 H
399
+ ATOM 399 HE22 GLN A 24 1.006 1.794 10.153 1.00 55.44 H
400
+ ATOM 400 N TRP A 25 -4.446 5.969 7.664 1.00 5.10 N
401
+ ATOM 401 CA TRP A 25 -4.756 6.993 6.647 1.00 2.31 C
402
+ ATOM 402 C TRP A 25 -6.103 6.666 5.952 1.00 51.24 C
403
+ ATOM 403 O TRP A 25 -6.118 5.968 4.930 1.00 24.15 O
404
+ ATOM 404 CB TRP A 25 -3.619 7.074 5.589 1.00 0.41 C
405
+ ATOM 405 CG TRP A 25 -2.235 7.233 6.173 1.00 33.05 C
406
+ ATOM 406 CD1 TRP A 25 -1.674 8.371 6.673 1.00 12.13 C
407
+ ATOM 407 CD2 TRP A 25 -1.238 6.203 6.314 1.00 55.20 C
408
+ ATOM 408 NE1 TRP A 25 -0.415 8.104 7.140 1.00 64.34 N
409
+ ATOM 409 CE2 TRP A 25 -0.121 6.789 6.918 1.00 14.22 C
410
+ ATOM 410 CE3 TRP A 25 -1.186 4.843 5.983 1.00 25.44 C
411
+ ATOM 411 CZ2 TRP A 25 1.026 6.068 7.207 1.00 21.30 C
412
+ ATOM 412 CZ3 TRP A 25 -0.046 4.126 6.269 1.00 23.11 C
413
+ ATOM 413 CH2 TRP A 25 1.050 4.741 6.874 1.00 3.42 C
414
+ ATOM 414 H TRP A 25 -4.370 5.043 7.369 1.00 35.23 H
415
+ ATOM 415 HA TRP A 25 -4.847 7.960 7.138 1.00 34.21 H
416
+ ATOM 416 HB2 TRP A 25 -3.622 6.167 4.993 1.00 5.35 H
417
+ ATOM 417 HB3 TRP A 25 -3.806 7.919 4.934 1.00 74.54 H
418
+ ATOM 418 HD1 TRP A 25 -2.171 9.331 6.710 1.00 4.43 H
419
+ ATOM 419 HE1 TRP A 25 0.188 8.760 7.552 1.00 5.51 H
420
+ ATOM 420 HE3 TRP A 25 -2.027 4.350 5.516 1.00 25.34 H
421
+ ATOM 421 HZ2 TRP A 25 1.882 6.529 7.680 1.00 13.54 H
422
+ ATOM 422 HZ3 TRP A 25 0.012 3.071 6.015 1.00 14.21 H
423
+ ATOM 423 HH2 TRP A 25 1.930 4.145 7.078 1.00 11.34 H
424
+ ATOM 424 N PRO A 26 -7.259 7.145 6.502 1.00 24.03 N
425
+ ATOM 425 CA PRO A 26 -8.593 6.937 5.867 1.00 2.11 C
426
+ ATOM 426 C PRO A 26 -8.743 7.702 4.533 1.00 31.42 C
427
+ ATOM 427 O PRO A 26 -9.574 7.344 3.688 1.00 72.02 O
428
+ ATOM 428 CB PRO A 26 -9.574 7.471 6.940 1.00 12.54 C
429
+ ATOM 429 CG PRO A 26 -8.773 8.468 7.726 1.00 41.01 C
430
+ ATOM 430 CD PRO A 26 -7.375 7.898 7.786 1.00 32.11 C
431
+ ATOM 431 HA PRO A 26 -8.783 5.880 5.689 1.00 13.22 H
432
+ ATOM 432 HB2 PRO A 26 -10.443 7.936 6.476 1.00 1.43 H
433
+ ATOM 433 HB3 PRO A 26 -9.895 6.661 7.584 1.00 60.14 H
434
+ ATOM 434 HG2 PRO A 26 -8.774 9.433 7.216 1.00 3.40 H
435
+ ATOM 435 HG3 PRO A 26 -9.178 8.575 8.726 1.00 1.32 H
436
+ ATOM 436 HD2 PRO A 26 -6.637 8.693 7.842 1.00 32.13 H
437
+ ATOM 437 HD3 PRO A 26 -7.264 7.227 8.632 1.00 33.21 H
438
+ ATOM 438 N LYS A 27 -7.938 8.763 4.364 1.00 31.03 N
439
+ ATOM 439 CA LYS A 27 -7.950 9.604 3.151 1.00 60.02 C
440
+ ATOM 440 C LYS A 27 -7.122 8.980 2.014 1.00 13.44 C
441
+ ATOM 441 O LYS A 27 -7.297 9.358 0.848 1.00 44.42 O
442
+ ATOM 442 CB LYS A 27 -7.404 11.012 3.479 1.00 73.31 C
443
+ ATOM 443 CG LYS A 27 -5.895 11.062 3.831 1.00 25.10 C
444
+ ATOM 444 CD LYS A 27 -5.385 12.495 4.116 1.00 53.43 C
445
+ ATOM 445 CE LYS A 27 -5.573 13.459 2.929 1.00 1.53 C
446
+ ATOM 446 NZ LYS A 27 -5.106 14.835 3.253 1.00 54.22 N
447
+ ATOM 447 H LYS A 27 -7.320 8.997 5.090 1.00 53.43 H
448
+ ATOM 448 HA LYS A 27 -8.980 9.699 2.818 1.00 14.33 H
449
+ ATOM 449 HB2 LYS A 27 -7.577 11.655 2.623 1.00 74.55 H
450
+ ATOM 450 HB3 LYS A 27 -7.960 11.410 4.322 1.00 73.32 H
451
+ ATOM 451 HG2 LYS A 27 -5.726 10.452 4.710 1.00 72.02 H
452
+ ATOM 452 HG3 LYS A 27 -5.329 10.645 3.004 1.00 1.01 H
453
+ ATOM 453 HD2 LYS A 27 -5.916 12.894 4.972 1.00 62.43 H
454
+ ATOM 454 HD3 LYS A 27 -4.328 12.442 4.353 1.00 32.32 H
455
+ ATOM 455 HE2 LYS A 27 -5.009 13.087 2.081 1.00 22.14 H
456
+ ATOM 456 HE3 LYS A 27 -6.625 13.497 2.663 1.00 13.52 H
457
+ ATOM 457 HZ1 LYS A 27 -4.107 14.820 3.546 1.00 35.14 H
458
+ ATOM 458 HZ2 LYS A 27 -5.672 15.234 4.031 1.00 11.43 H
459
+ ATOM 459 HZ3 LYS A 27 -5.202 15.457 2.425 1.00 23.01 H
460
+ ATOM 460 N ALA A 28 -6.217 8.045 2.367 1.00 12.43 N
461
+ ATOM 461 CA ALA A 28 -5.311 7.404 1.406 1.00 72.14 C
462
+ ATOM 462 C ALA A 28 -6.116 6.603 0.386 1.00 5.21 C
463
+ ATOM 463 O ALA A 28 -6.763 5.605 0.742 1.00 14.23 O
464
+ ATOM 464 CB ALA A 28 -4.298 6.504 2.129 1.00 53.02 C
465
+ ATOM 465 H ALA A 28 -6.159 7.787 3.307 1.00 4.30 H
466
+ ATOM 466 HA ALA A 28 -4.759 8.192 0.896 1.00 41.20 H
467
+ ATOM 467 HB1 ALA A 28 -4.820 5.720 2.667 1.00 73.23 H
468
+ ATOM 468 HB2 ALA A 28 -3.726 7.093 2.832 1.00 42.20 H
469
+ ATOM 469 HB3 ALA A 28 -3.622 6.055 1.413 1.00 34.15 H
470
+ ATOM 470 N THR A 29 -6.107 7.081 -0.867 1.00 52.20 N
471
+ ATOM 471 CA THR A 29 -6.800 6.436 -1.970 1.00 25.43 C
472
+ ATOM 472 C THR A 29 -6.153 5.072 -2.264 1.00 31.42 C
473
+ ATOM 473 O THR A 29 -5.064 5.005 -2.833 1.00 24.15 O
474
+ ATOM 474 CB THR A 29 -6.751 7.368 -3.231 1.00 2.23 C
475
+ ATOM 475 OG1 THR A 29 -7.340 8.644 -2.909 1.00 12.00 O
476
+ ATOM 476 CG2 THR A 29 -7.470 6.766 -4.452 1.00 65.23 C
477
+ ATOM 477 H THR A 29 -5.620 7.912 -1.064 1.00 32.20 H
478
+ ATOM 478 HA THR A 29 -7.840 6.297 -1.688 1.00 35.34 H
479
+ ATOM 479 HB THR A 29 -5.711 7.535 -3.492 1.00 32.52 H
480
+ ATOM 480 HG1 THR A 29 -7.627 9.078 -3.719 1.00 44.41 H
481
+ ATOM 481 HG21 THR A 29 -7.410 7.454 -5.284 1.00 41.10 H
482
+ ATOM 482 HG22 THR A 29 -8.511 6.583 -4.211 1.00 1.40 H
483
+ ATOM 483 HG23 THR A 29 -7.000 5.831 -4.730 1.00 75.12 H
484
+ ATOM 484 N VAL A 30 -6.825 3.999 -1.811 1.00 24.21 N
485
+ ATOM 485 CA VAL A 30 -6.409 2.611 -2.050 1.00 60.13 C
486
+ ATOM 486 C VAL A 30 -7.393 1.990 -3.050 1.00 1.03 C
487
+ ATOM 487 O VAL A 30 -8.528 1.652 -2.694 1.00 63.11 O
488
+ ATOM 488 CB VAL A 30 -6.386 1.770 -0.709 1.00 33.01 C
489
+ ATOM 489 CG1 VAL A 30 -5.926 0.314 -0.957 1.00 42.52 C
490
+ ATOM 490 CG2 VAL A 30 -5.504 2.448 0.362 1.00 41.12 C
491
+ ATOM 491 H VAL A 30 -7.646 4.149 -1.299 1.00 25.23 H
492
+ ATOM 492 HA VAL A 30 -5.401 2.607 -2.479 1.00 41.20 H
493
+ ATOM 493 HB VAL A 30 -7.405 1.730 -0.321 1.00 75.21 H
494
+ ATOM 494 HG11 VAL A 30 -5.949 -0.241 -0.027 1.00 10.52 H
495
+ ATOM 495 HG12 VAL A 30 -4.917 0.309 -1.348 1.00 13.41 H
496
+ ATOM 496 HG13 VAL A 30 -6.585 -0.164 -1.671 1.00 53.41 H
497
+ ATOM 497 HG21 VAL A 30 -5.883 3.442 0.568 1.00 52.54 H
498
+ ATOM 498 HG22 VAL A 30 -4.483 2.525 0.004 1.00 62.13 H
499
+ ATOM 499 HG23 VAL A 30 -5.518 1.868 1.276 1.00 24.03 H
500
+ ATOM 500 N THR A 31 -6.958 1.868 -4.302 1.00 55.04 N
501
+ ATOM 501 CA THR A 31 -7.751 1.270 -5.367 1.00 60.43 C
502
+ ATOM 502 C THR A 31 -7.339 -0.198 -5.516 1.00 24.21 C
503
+ ATOM 503 O THR A 31 -6.258 -0.515 -6.039 1.00 13.42 O
504
+ ATOM 504 CB THR A 31 -7.571 2.059 -6.699 1.00 62.43 C
505
+ ATOM 505 OG1 THR A 31 -7.874 3.448 -6.480 1.00 13.32 O
506
+ ATOM 506 CG2 THR A 31 -8.449 1.516 -7.843 1.00 64.42 C
507
+ ATOM 507 H THR A 31 -6.064 2.205 -4.497 1.00 54.33 H
508
+ ATOM 508 HA THR A 31 -8.810 1.322 -5.088 1.00 3.32 H
509
+ ATOM 509 HB THR A 31 -6.535 1.986 -6.998 1.00 14.33 H
510
+ ATOM 510 HG1 THR A 31 -7.968 3.613 -5.537 1.00 50.11 H
511
+ ATOM 511 HG21 THR A 31 -9.493 1.563 -7.556 1.00 24.42 H
512
+ ATOM 512 HG22 THR A 31 -8.182 0.488 -8.057 1.00 62.42 H
513
+ ATOM 513 HG23 THR A 31 -8.299 2.114 -8.730 1.00 43.21 H
514
+ ATOM 514 N ARG A 32 -8.200 -1.071 -4.993 1.00 2.24 N
515
+ ATOM 515 CA ARG A 32 -8.023 -2.521 -5.042 1.00 73.21 C
516
+ ATOM 516 C ARG A 32 -8.326 -3.028 -6.455 1.00 25.20 C
517
+ ATOM 517 O ARG A 32 -9.450 -2.895 -6.949 1.00 71.31 O
518
+ ATOM 518 CB ARG A 32 -8.982 -3.186 -4.028 1.00 72.44 C
519
+ ATOM 519 CG ARG A 32 -8.805 -4.712 -3.878 1.00 40.42 C
520
+ ATOM 520 CD ARG A 32 -9.927 -5.356 -3.045 1.00 74.25 C
521
+ ATOM 521 NE ARG A 32 -9.544 -6.668 -2.514 1.00 13.41 N
522
+ ATOM 522 CZ ARG A 32 -9.736 -7.848 -3.112 1.00 24.33 C
523
+ ATOM 523 NH1 ARG A 32 -10.317 -7.938 -4.318 1.00 32.01 N
524
+ ATOM 524 NH2 ARG A 32 -9.368 -8.942 -2.476 1.00 13.53 N
525
+ ATOM 525 H ARG A 32 -8.936 -0.702 -4.458 1.00 20.03 H
526
+ ATOM 526 HA ARG A 32 -6.992 -2.755 -4.771 1.00 52.51 H
527
+ ATOM 527 HB2 ARG A 32 -8.833 -2.730 -3.050 1.00 30.01 H
528
+ ATOM 528 HB3 ARG A 32 -10.004 -2.989 -4.340 1.00 12.32 H
529
+ ATOM 529 HG2 ARG A 32 -8.799 -5.166 -4.864 1.00 43.42 H
530
+ ATOM 530 HG3 ARG A 32 -7.852 -4.904 -3.396 1.00 51.24 H
531
+ ATOM 531 HD2 ARG A 32 -10.165 -4.712 -2.205 1.00 70.14 H
532
+ ATOM 532 HD3 ARG A 32 -10.809 -5.467 -3.667 1.00 22.22 H
533
+ ATOM 533 HE ARG A 32 -9.104 -6.669 -1.636 1.00 33.23 H
534
+ ATOM 534 HH11 ARG A 32 -10.617 -7.109 -4.795 1.00 33.44 H
535
+ ATOM 535 HH12 ARG A 32 -10.451 -8.837 -4.751 1.00 43.11 H
536
+ ATOM 536 HH21 ARG A 32 -8.950 -8.886 -1.563 1.00 40.25 H
537
+ ATOM 537 HH22 ARG A 32 -9.502 -9.837 -2.902 1.00 20.43 H
538
+ ATOM 538 N THR A 33 -7.301 -3.575 -7.101 1.00 45.42 N
539
+ ATOM 539 CA THR A 33 -7.369 -4.057 -8.473 1.00 12.14 C
540
+ ATOM 540 C THR A 33 -6.565 -5.370 -8.531 1.00 3.24 C
541
+ ATOM 541 O THR A 33 -5.426 -5.398 -8.088 1.00 12.00 O
542
+ ATOM 542 CB THR A 33 -6.843 -2.962 -9.470 1.00 62.12 C
543
+ ATOM 543 OG1 THR A 33 -6.763 -3.476 -10.805 1.00 0.00 O
544
+ ATOM 544 CG2 THR A 33 -5.480 -2.373 -9.049 1.00 14.02 C
545
+ ATOM 545 H THR A 33 -6.480 -3.790 -6.606 1.00 62.42 H
546
+ ATOM 546 HA THR A 33 -8.412 -4.273 -8.716 1.00 44.12 H
547
+ ATOM 547 HB THR A 33 -7.566 -2.151 -9.480 1.00 20.11 H
548
+ ATOM 548 HG1 THR A 33 -7.234 -4.318 -10.858 1.00 35.15 H
549
+ ATOM 549 HG21 THR A 33 -5.171 -1.613 -9.756 1.00 25.43 H
550
+ ATOM 550 HG22 THR A 33 -4.735 -3.158 -9.018 1.00 51.31 H
551
+ ATOM 551 HG23 THR A 33 -5.566 -1.926 -8.065 1.00 32.14 H
552
+ ATOM 552 N ASN A 34 -7.168 -6.458 -9.020 1.00 21.14 N
553
+ ATOM 553 CA ASN A 34 -6.518 -7.789 -9.011 1.00 45.11 C
554
+ ATOM 554 C ASN A 34 -5.203 -7.744 -9.834 1.00 3.35 C
555
+ ATOM 555 O ASN A 34 -5.230 -7.630 -11.068 1.00 13.31 O
556
+ ATOM 556 CB ASN A 34 -7.481 -8.886 -9.533 1.00 25.24 C
557
+ ATOM 557 CG ASN A 34 -8.761 -9.042 -8.687 1.00 41.14 C
558
+ ATOM 558 OD1 ASN A 34 -9.276 -8.077 -8.115 1.00 70.14 O
559
+ ATOM 559 ND2 ASN A 34 -9.295 -10.253 -8.611 1.00 52.05 N
560
+ ATOM 560 H ASN A 34 -8.072 -6.364 -9.380 1.00 63.24 H
561
+ ATOM 561 HA ASN A 34 -6.268 -8.018 -7.975 1.00 53.43 H
562
+ ATOM 562 HB2 ASN A 34 -7.777 -8.640 -10.546 1.00 21.15 H
563
+ ATOM 563 HB3 ASN A 34 -6.957 -9.838 -9.544 1.00 43.22 H
564
+ ATOM 564 HD21 ASN A 34 -8.860 -10.983 -9.096 1.00 30.24 H
565
+ ATOM 565 HD22 ASN A 34 -10.105 -10.368 -8.070 1.00 40.43 H
566
+ ATOM 566 N GLY A 35 -4.064 -7.806 -9.111 1.00 31.12 N
567
+ ATOM 567 CA GLY A 35 -2.731 -7.606 -9.694 1.00 64.42 C
568
+ ATOM 568 C GLY A 35 -1.903 -6.562 -8.945 1.00 43.12 C
569
+ ATOM 569 O GLY A 35 -0.705 -6.771 -8.717 1.00 44.05 O
570
+ ATOM 570 H GLY A 35 -4.132 -8.042 -8.160 1.00 3.54 H
571
+ ATOM 571 HA2 GLY A 35 -2.204 -8.551 -9.667 1.00 51.43 H
572
+ ATOM 572 HA3 GLY A 35 -2.820 -7.295 -10.730 1.00 70.13 H
573
+ ATOM 573 N ASP A 36 -2.538 -5.423 -8.568 1.00 4.03 N
574
+ ATOM 574 CA ASP A 36 -1.851 -4.273 -7.912 1.00 61.40 C
575
+ ATOM 575 C ASP A 36 -2.739 -3.599 -6.841 1.00 40.54 C
576
+ ATOM 576 O ASP A 36 -3.888 -3.967 -6.625 1.00 2.11 O
577
+ ATOM 577 CB ASP A 36 -1.433 -3.194 -8.950 1.00 64.42 C
578
+ ATOM 578 CG ASP A 36 -0.441 -3.685 -10.016 1.00 53.23 C
579
+ ATOM 579 OD1 ASP A 36 0.734 -3.945 -9.680 1.00 32.51 O
580
+ ATOM 580 OD2 ASP A 36 -0.827 -3.789 -11.203 1.00 12.42 O
581
+ ATOM 581 H ASP A 36 -3.501 -5.351 -8.731 1.00 44.53 H
582
+ ATOM 582 HA ASP A 36 -0.957 -4.652 -7.418 1.00 41.30 H
583
+ ATOM 583 HB2 ASP A 36 -2.328 -2.831 -9.448 1.00 15.03 H
584
+ ATOM 584 HB3 ASP A 36 -0.976 -2.357 -8.426 1.00 14.25 H
585
+ ATOM 585 N ILE A 37 -2.158 -2.609 -6.155 1.00 74.43 N
586
+ ATOM 586 CA ILE A 37 -2.864 -1.682 -5.263 1.00 3.12 C
587
+ ATOM 587 C ILE A 37 -2.442 -0.269 -5.676 1.00 24.14 C
588
+ ATOM 588 O ILE A 37 -1.268 0.093 -5.539 1.00 13.30 O
589
+ ATOM 589 CB ILE A 37 -2.524 -1.939 -3.733 1.00 1.51 C
590
+ ATOM 590 CG1 ILE A 37 -3.137 -3.288 -3.229 1.00 73.41 C
591
+ ATOM 591 CG2 ILE A 37 -2.970 -0.756 -2.829 1.00 2.34 C
592
+ ATOM 592 CD1 ILE A 37 -4.658 -3.371 -3.265 1.00 53.02 C
593
+ ATOM 593 H ILE A 37 -1.194 -2.481 -6.260 1.00 62.11 H
594
+ ATOM 594 HA ILE A 37 -3.939 -1.793 -5.412 1.00 52.32 H
595
+ ATOM 595 HB ILE A 37 -1.438 -2.009 -3.652 1.00 41.15 H
596
+ ATOM 596 HG12 ILE A 37 -2.762 -4.095 -3.845 1.00 22.20 H
597
+ ATOM 597 HG13 ILE A 37 -2.821 -3.463 -2.207 1.00 2.44 H
598
+ ATOM 598 HG21 ILE A 37 -2.450 0.147 -3.124 1.00 55.42 H
599
+ ATOM 599 HG22 ILE A 37 -2.735 -0.977 -1.797 1.00 72.05 H
600
+ ATOM 600 HG23 ILE A 37 -4.039 -0.601 -2.926 1.00 53.44 H
601
+ ATOM 601 HD11 ILE A 37 -5.005 -3.253 -4.282 1.00 63.30 H
602
+ ATOM 602 HD12 ILE A 37 -5.083 -2.591 -2.646 1.00 24.13 H
603
+ ATOM 603 HD13 ILE A 37 -4.972 -4.334 -2.890 1.00 32.44 H
604
+ ATOM 604 N LYS A 38 -3.381 0.514 -6.217 1.00 61.04 N
605
+ ATOM 605 CA LYS A 38 -3.106 1.893 -6.626 1.00 52.41 C
606
+ ATOM 606 C LYS A 38 -3.282 2.812 -5.396 1.00 70.10 C
607
+ ATOM 607 O LYS A 38 -4.402 3.096 -4.984 1.00 62.42 O
608
+ ATOM 608 CB LYS A 38 -4.037 2.306 -7.820 1.00 44.41 C
609
+ ATOM 609 CG LYS A 38 -3.470 2.062 -9.248 1.00 53.32 C
610
+ ATOM 610 CD LYS A 38 -3.125 0.586 -9.562 1.00 63.45 C
611
+ ATOM 611 CE LYS A 38 -2.641 0.393 -11.016 1.00 75.04 C
612
+ ATOM 612 NZ LYS A 38 -2.286 -1.023 -11.308 1.00 4.01 N
613
+ ATOM 613 H LYS A 38 -4.286 0.160 -6.327 1.00 32.35 H
614
+ ATOM 614 HA LYS A 38 -2.066 1.949 -6.957 1.00 25.20 H
615
+ ATOM 615 HB2 LYS A 38 -4.966 1.757 -7.743 1.00 24.14 H
616
+ ATOM 616 HB3 LYS A 38 -4.270 3.366 -7.738 1.00 72.02 H
617
+ ATOM 617 HG2 LYS A 38 -4.202 2.403 -9.972 1.00 62.22 H
618
+ ATOM 618 HG3 LYS A 38 -2.570 2.661 -9.359 1.00 0.13 H
619
+ ATOM 619 HD2 LYS A 38 -2.341 0.255 -8.888 1.00 33.42 H
620
+ ATOM 620 HD3 LYS A 38 -4.008 -0.025 -9.403 1.00 60.02 H
621
+ ATOM 621 HE2 LYS A 38 -3.425 0.702 -11.699 1.00 10.42 H
622
+ ATOM 622 HE3 LYS A 38 -1.764 1.012 -11.182 1.00 44.12 H
623
+ ATOM 623 HZ1 LYS A 38 -1.472 -1.318 -10.729 1.00 24.14 H
624
+ ATOM 624 HZ2 LYS A 38 -2.032 -1.127 -12.309 1.00 41.45 H
625
+ ATOM 625 HZ3 LYS A 38 -3.090 -1.647 -11.102 1.00 43.13 H
626
+ ATOM 626 N LEU A 39 -2.148 3.264 -4.824 1.00 43.21 N
627
+ ATOM 627 CA LEU A 39 -2.105 4.091 -3.599 1.00 50.23 C
628
+ ATOM 628 C LEU A 39 -1.423 5.431 -3.905 1.00 2.13 C
629
+ ATOM 629 O LEU A 39 -0.548 5.518 -4.778 1.00 24.15 O
630
+ ATOM 630 CB LEU A 39 -1.340 3.340 -2.460 1.00 13.42 C
631
+ ATOM 631 CG LEU A 39 -1.143 4.110 -1.105 1.00 41.31 C
632
+ ATOM 632 CD1 LEU A 39 -2.493 4.485 -0.467 1.00 52.51 C
633
+ ATOM 633 CD2 LEU A 39 -0.264 3.304 -0.120 1.00 61.43 C
634
+ ATOM 634 H LEU A 39 -1.296 3.034 -5.245 1.00 41.13 H
635
+ ATOM 635 HA LEU A 39 -3.125 4.281 -3.270 1.00 1.43 H
636
+ ATOM 636 HB2 LEU A 39 -1.871 2.416 -2.250 1.00 72.54 H
637
+ ATOM 637 HB3 LEU A 39 -0.356 3.074 -2.841 1.00 53.22 H
638
+ ATOM 638 HG LEU A 39 -0.625 5.041 -1.310 1.00 22.52 H
639
+ ATOM 639 HD11 LEU A 39 -3.065 3.590 -0.257 1.00 11.34 H
640
+ ATOM 640 HD12 LEU A 39 -3.055 5.116 -1.146 1.00 62.30 H
641
+ ATOM 641 HD13 LEU A 39 -2.324 5.026 0.454 1.00 31.42 H
642
+ ATOM 642 HD21 LEU A 39 0.709 3.133 -0.557 1.00 52.22 H
643
+ ATOM 643 HD22 LEU A 39 -0.733 2.352 0.102 1.00 53.13 H
644
+ ATOM 644 HD23 LEU A 39 -0.143 3.863 0.801 1.00 2.45 H
645
+ ATOM 645 N ASP A 40 -1.849 6.483 -3.198 1.00 15.05 N
646
+ ATOM 646 CA ASP A 40 -1.257 7.825 -3.294 1.00 34.23 C
647
+ ATOM 647 C ASP A 40 -0.899 8.328 -1.886 1.00 42.02 C
648
+ ATOM 648 O ASP A 40 -1.756 8.368 -0.994 1.00 2.21 O
649
+ ATOM 649 CB ASP A 40 -2.243 8.798 -4.001 1.00 5.13 C
650
+ ATOM 650 CG ASP A 40 -2.450 8.479 -5.499 1.00 73.31 C
651
+ ATOM 651 OD1 ASP A 40 -3.190 7.525 -5.826 1.00 50.44 O
652
+ ATOM 652 OD2 ASP A 40 -1.873 9.181 -6.359 1.00 24.42 O
653
+ ATOM 653 H ASP A 40 -2.600 6.350 -2.578 1.00 2.01 H
654
+ ATOM 654 HA ASP A 40 -0.341 7.757 -3.883 1.00 32.43 H
655
+ ATOM 655 HB2 ASP A 40 -3.207 8.743 -3.506 1.00 63.12 H
656
+ ATOM 656 HB3 ASP A 40 -1.870 9.813 -3.911 1.00 15.54 H
657
+ ATOM 657 N ALA A 41 0.388 8.655 -1.684 1.00 12.10 N
658
+ ATOM 658 CA ALA A 41 0.881 9.322 -0.470 1.00 60.52 C
659
+ ATOM 659 C ALA A 41 0.787 10.842 -0.617 1.00 55.04 C
660
+ ATOM 660 O ALA A 41 0.584 11.357 -1.723 1.00 74.01 O
661
+ ATOM 661 CB ALA A 41 2.325 8.893 -0.177 1.00 1.50 C
662
+ ATOM 662 H ALA A 41 1.032 8.429 -2.381 1.00 12.11 H
663
+ ATOM 663 HA ALA A 41 0.260 9.017 0.370 1.00 21.43 H
664
+ ATOM 664 HB1 ALA A 41 2.970 9.186 -0.994 1.00 62.43 H
665
+ ATOM 665 HB2 ALA A 41 2.367 7.817 -0.059 1.00 71.44 H
666
+ ATOM 666 HB3 ALA A 41 2.673 9.361 0.737 1.00 23.11 H
667
+ ATOM 667 N GLN A 42 0.925 11.552 0.511 1.00 15.15 N
668
+ ATOM 668 CA GLN A 42 0.849 13.022 0.554 1.00 63.40 C
669
+ ATOM 669 C GLN A 42 2.250 13.650 0.355 1.00 30.54 C
670
+ ATOM 670 O GLN A 42 2.436 14.547 -0.471 1.00 0.13 O
671
+ ATOM 671 CB GLN A 42 0.229 13.481 1.903 1.00 41.42 C
672
+ ATOM 672 CG GLN A 42 -1.119 12.811 2.270 1.00 61.21 C
673
+ ATOM 673 CD GLN A 42 -2.255 13.038 1.255 1.00 61.10 C
674
+ ATOM 674 OE1 GLN A 42 -3.102 12.165 1.059 1.00 4.23 O
675
+ ATOM 675 NE2 GLN A 42 -2.324 14.218 0.644 1.00 34.44 N
676
+ ATOM 676 H GLN A 42 1.077 11.067 1.348 1.00 51.22 H
677
+ ATOM 677 HA GLN A 42 0.201 13.352 -0.260 1.00 1.10 H
678
+ ATOM 678 HB2 GLN A 42 0.932 13.273 2.704 1.00 35.43 H
679
+ ATOM 679 HB3 GLN A 42 0.068 14.553 1.862 1.00 61.21 H
680
+ ATOM 680 HG2 GLN A 42 -0.958 11.744 2.366 1.00 4.25 H
681
+ ATOM 681 HG3 GLN A 42 -1.445 13.198 3.230 1.00 1.22 H
682
+ ATOM 682 HE21 GLN A 42 -1.655 14.900 0.860 1.00 13.33 H
683
+ ATOM 683 HE22 GLN A 42 -3.045 14.357 -0.008 1.00 63.11 H
684
+ ATOM 684 N THR A 43 3.225 13.158 1.141 1.00 13.45 N
685
+ ATOM 685 CA THR A 43 4.625 13.647 1.149 1.00 53.41 C
686
+ ATOM 686 C THR A 43 5.585 12.443 1.052 1.00 4.12 C
687
+ ATOM 687 O THR A 43 5.123 11.293 1.039 1.00 5.04 O
688
+ ATOM 688 CB THR A 43 4.930 14.465 2.458 1.00 40.03 C
689
+ ATOM 689 OG1 THR A 43 4.841 13.601 3.607 1.00 52.55 O
690
+ ATOM 690 CG2 THR A 43 3.968 15.662 2.641 1.00 33.43 C
691
+ ATOM 691 H THR A 43 3.003 12.421 1.739 1.00 3.14 H
692
+ ATOM 692 HA THR A 43 4.783 14.293 0.288 1.00 32.15 H
693
+ ATOM 693 HB THR A 43 5.944 14.848 2.400 1.00 4.31 H
694
+ ATOM 694 HG1 THR A 43 4.342 14.039 4.304 1.00 24.14 H
695
+ ATOM 695 HG21 THR A 43 4.224 16.202 3.543 1.00 2.21 H
696
+ ATOM 696 HG22 THR A 43 2.948 15.304 2.719 1.00 14.15 H
697
+ ATOM 697 HG23 THR A 43 4.045 16.332 1.793 1.00 32.41 H
698
+ ATOM 698 N GLU A 44 6.910 12.711 0.978 1.00 50.32 N
699
+ ATOM 699 CA GLU A 44 7.946 11.650 0.911 1.00 53.43 C
700
+ ATOM 700 C GLU A 44 7.924 10.811 2.187 1.00 64.41 C
701
+ ATOM 701 O GLU A 44 7.879 9.590 2.118 1.00 41.32 O
702
+ ATOM 702 CB GLU A 44 9.386 12.210 0.689 1.00 23.13 C
703
+ ATOM 703 CG GLU A 44 9.619 12.935 -0.651 1.00 45.33 C
704
+ ATOM 704 CD GLU A 44 8.923 14.300 -0.730 1.00 42.32 C
705
+ ATOM 705 OE1 GLU A 44 9.439 15.272 -0.148 1.00 72.12 O
706
+ ATOM 706 OE2 GLU A 44 7.845 14.405 -1.348 1.00 73.25 O
707
+ ATOM 707 H GLU A 44 7.198 13.648 0.959 1.00 23.32 H
708
+ ATOM 708 HA GLU A 44 7.691 11.009 0.069 1.00 13.10 H
709
+ ATOM 709 HB2 GLU A 44 9.625 12.902 1.495 1.00 71.53 H
710
+ ATOM 710 HB3 GLU A 44 10.089 11.379 0.745 1.00 22.15 H
711
+ ATOM 711 HG2 GLU A 44 10.688 13.081 -0.790 1.00 2.13 H
712
+ ATOM 712 HG3 GLU A 44 9.252 12.299 -1.452 1.00 60.04 H
713
+ ATOM 713 N LYS A 45 7.930 11.506 3.346 1.00 41.32 N
714
+ ATOM 714 CA LYS A 45 7.881 10.878 4.682 1.00 71.12 C
715
+ ATOM 715 C LYS A 45 6.612 10.033 4.829 1.00 21.24 C
716
+ ATOM 716 O LYS A 45 6.661 8.929 5.377 1.00 54.31 O
717
+ ATOM 717 CB LYS A 45 7.909 11.951 5.801 1.00 73.31 C
718
+ ATOM 718 CG LYS A 45 7.915 11.385 7.246 1.00 2.23 C
719
+ ATOM 719 CD LYS A 45 7.646 12.475 8.311 1.00 3.10 C
720
+ ATOM 720 CE LYS A 45 6.233 13.067 8.195 1.00 22.11 C
721
+ ATOM 721 NZ LYS A 45 6.000 14.156 9.179 1.00 1.33 N
722
+ ATOM 722 H LYS A 45 7.961 12.484 3.295 1.00 65.25 H
723
+ ATOM 723 HA LYS A 45 8.754 10.240 4.780 1.00 14.32 H
724
+ ATOM 724 HB2 LYS A 45 8.800 12.559 5.673 1.00 31.35 H
725
+ ATOM 725 HB3 LYS A 45 7.041 12.593 5.685 1.00 24.21 H
726
+ ATOM 726 HG2 LYS A 45 7.147 10.618 7.331 1.00 43.22 H
727
+ ATOM 727 HG3 LYS A 45 8.882 10.932 7.442 1.00 22.52 H
728
+ ATOM 728 HD2 LYS A 45 7.761 12.040 9.297 1.00 24.31 H
729
+ ATOM 729 HD3 LYS A 45 8.372 13.275 8.193 1.00 1.34 H
730
+ ATOM 730 HE2 LYS A 45 6.096 13.467 7.198 1.00 32.24 H
731
+ ATOM 731 HE3 LYS A 45 5.502 12.282 8.364 1.00 63.14 H
732
+ ATOM 732 HZ1 LYS A 45 6.028 13.777 10.146 1.00 61.01 H
733
+ ATOM 733 HZ2 LYS A 45 5.074 14.597 9.020 1.00 4.12 H
734
+ ATOM 734 HZ3 LYS A 45 6.736 14.884 9.089 1.00 71.30 H
735
+ ATOM 735 N GLU A 46 5.491 10.569 4.308 1.00 33.42 N
736
+ ATOM 736 CA GLU A 46 4.193 9.886 4.333 1.00 72.32 C
737
+ ATOM 737 C GLU A 46 4.291 8.555 3.564 1.00 51.20 C
738
+ ATOM 738 O GLU A 46 3.831 7.522 4.040 1.00 31.23 O
739
+ ATOM 739 CB GLU A 46 3.087 10.781 3.711 1.00 75.21 C
740
+ ATOM 740 CG GLU A 46 1.646 10.364 4.068 1.00 15.30 C
741
+ ATOM 741 CD GLU A 46 1.267 10.675 5.533 1.00 44.21 C
742
+ ATOM 742 OE1 GLU A 46 1.661 9.914 6.448 1.00 52.41 O
743
+ ATOM 743 OE2 GLU A 46 0.595 11.703 5.780 1.00 13.12 O
744
+ ATOM 744 H GLU A 46 5.547 11.459 3.894 1.00 14.01 H
745
+ ATOM 745 HA GLU A 46 3.949 9.683 5.368 1.00 32.02 H
746
+ ATOM 746 HB2 GLU A 46 3.238 11.802 4.043 1.00 65.33 H
747
+ ATOM 747 HB3 GLU A 46 3.189 10.766 2.625 1.00 41.21 H
748
+ ATOM 748 HG2 GLU A 46 0.960 10.884 3.404 1.00 5.41 H
749
+ ATOM 749 HG3 GLU A 46 1.541 9.296 3.899 1.00 33.14 H
750
+ ATOM 750 N ALA A 47 4.910 8.618 2.369 1.00 4.52 N
751
+ ATOM 751 CA ALA A 47 5.235 7.441 1.546 1.00 1.03 C
752
+ ATOM 752 C ALA A 47 6.148 6.438 2.262 1.00 3.24 C
753
+ ATOM 753 O ALA A 47 5.959 5.235 2.107 1.00 44.34 O
754
+ ATOM 754 CB ALA A 47 5.882 7.886 0.231 1.00 25.11 C
755
+ ATOM 755 H ALA A 47 5.100 9.497 1.984 1.00 73.32 H
756
+ ATOM 756 HA ALA A 47 4.298 6.950 1.300 1.00 45.41 H
757
+ ATOM 757 HB1 ALA A 47 5.230 8.588 -0.272 1.00 22.12 H
758
+ ATOM 758 HB2 ALA A 47 6.040 7.028 -0.411 1.00 60.31 H
759
+ ATOM 759 HB3 ALA A 47 6.834 8.365 0.428 1.00 71.11 H
760
+ ATOM 760 N GLU A 48 7.133 6.943 3.040 1.00 5.34 N
761
+ ATOM 761 CA GLU A 48 8.068 6.090 3.805 1.00 35.32 C
762
+ ATOM 762 C GLU A 48 7.306 5.206 4.811 1.00 63.21 C
763
+ ATOM 763 O GLU A 48 7.683 4.068 5.053 1.00 13.45 O
764
+ ATOM 764 CB GLU A 48 9.123 6.931 4.582 1.00 23.33 C
765
+ ATOM 765 CG GLU A 48 9.977 7.897 3.734 1.00 54.02 C
766
+ ATOM 766 CD GLU A 48 10.844 7.232 2.648 1.00 60.41 C
767
+ ATOM 767 OE1 GLU A 48 11.463 6.181 2.920 1.00 24.54 O
768
+ ATOM 768 OE2 GLU A 48 10.940 7.778 1.527 1.00 54.41 O
769
+ ATOM 769 H GLU A 48 7.230 7.915 3.102 1.00 12.31 H
770
+ ATOM 770 HA GLU A 48 8.583 5.452 3.091 1.00 71.52 H
771
+ ATOM 771 HB2 GLU A 48 8.608 7.522 5.335 1.00 71.11 H
772
+ ATOM 772 HB3 GLU A 48 9.797 6.250 5.093 1.00 2.12 H
773
+ ATOM 773 HG2 GLU A 48 9.309 8.604 3.264 1.00 71.13 H
774
+ ATOM 774 HG3 GLU A 48 10.633 8.448 4.404 1.00 13.32 H
775
+ ATOM 775 N LYS A 49 6.235 5.778 5.380 1.00 64.25 N
776
+ ATOM 776 CA LYS A 49 5.367 5.117 6.369 1.00 70.22 C
777
+ ATOM 777 C LYS A 49 4.402 4.132 5.671 1.00 74.34 C
778
+ ATOM 778 O LYS A 49 4.205 3.007 6.128 1.00 52.33 O
779
+ ATOM 779 CB LYS A 49 4.554 6.205 7.110 1.00 72.41 C
780
+ ATOM 780 CG LYS A 49 5.402 7.304 7.785 1.00 52.25 C
781
+ ATOM 781 CD LYS A 49 4.562 8.545 8.153 1.00 42.12 C
782
+ ATOM 782 CE LYS A 49 3.463 8.242 9.176 1.00 0.11 C
783
+ ATOM 783 NZ LYS A 49 2.527 9.379 9.341 1.00 43.14 N
784
+ ATOM 784 H LYS A 49 6.011 6.695 5.110 1.00 14.41 H
785
+ ATOM 785 HA LYS A 49 5.992 4.585 7.084 1.00 61.44 H
786
+ ATOM 786 HB2 LYS A 49 3.886 6.685 6.393 1.00 41.53 H
787
+ ATOM 787 HB3 LYS A 49 3.944 5.729 7.872 1.00 5.01 H
788
+ ATOM 788 HG2 LYS A 49 5.854 6.898 8.686 1.00 73.22 H
789
+ ATOM 789 HG3 LYS A 49 6.191 7.605 7.103 1.00 4.32 H
790
+ ATOM 790 HD2 LYS A 49 5.216 9.303 8.563 1.00 51.33 H
791
+ ATOM 791 HD3 LYS A 49 4.100 8.934 7.249 1.00 43.41 H
792
+ ATOM 792 HE2 LYS A 49 2.902 7.377 8.857 1.00 70.43 H
793
+ ATOM 793 HE3 LYS A 49 3.922 8.030 10.135 1.00 13.23 H
794
+ ATOM 794 HZ1 LYS A 49 1.752 9.112 9.978 1.00 54.11 H
795
+ ATOM 795 HZ2 LYS A 49 2.122 9.650 8.417 1.00 54.31 H
796
+ ATOM 796 HZ3 LYS A 49 3.023 10.198 9.739 1.00 62.31 H
797
+ ATOM 797 N MET A 50 3.775 4.633 4.589 1.00 42.01 N
798
+ ATOM 798 CA MET A 50 2.802 3.873 3.772 1.00 11.52 C
799
+ ATOM 799 C MET A 50 3.420 2.573 3.214 1.00 42.40 C
800
+ ATOM 800 O MET A 50 2.943 1.478 3.535 1.00 51.44 O
801
+ ATOM 801 CB MET A 50 2.197 4.747 2.633 1.00 63.23 C
802
+ ATOM 802 CG MET A 50 1.212 5.822 3.112 1.00 21.15 C
803
+ ATOM 803 SD MET A 50 0.400 6.675 1.747 1.00 21.10 S
804
+ ATOM 804 CE MET A 50 -0.745 7.743 2.622 1.00 54.34 C
805
+ ATOM 805 H MET A 50 3.960 5.570 4.404 1.00 52.32 H
806
+ ATOM 806 HA MET A 50 1.989 3.589 4.441 1.00 51.22 H
807
+ ATOM 807 HB2 MET A 50 3.001 5.243 2.100 1.00 14.13 H
808
+ ATOM 808 HB3 MET A 50 1.669 4.105 1.933 1.00 62.21 H
809
+ ATOM 809 HG2 MET A 50 0.450 5.354 3.727 1.00 70.10 H
810
+ ATOM 810 HG3 MET A 50 1.749 6.551 3.705 1.00 63.14 H
811
+ ATOM 811 HE1 MET A 50 -0.197 8.411 3.270 1.00 70.42 H
812
+ ATOM 812 HE2 MET A 50 -1.421 7.141 3.212 1.00 62.43 H
813
+ ATOM 813 HE3 MET A 50 -1.310 8.320 1.906 1.00 11.20 H
814
+ ATOM 814 N GLU A 51 4.492 2.701 2.405 1.00 21.42 N
815
+ ATOM 815 CA GLU A 51 5.214 1.536 1.832 1.00 34.03 C
816
+ ATOM 816 C GLU A 51 5.744 0.579 2.940 1.00 32.31 C
817
+ ATOM 817 O GLU A 51 5.833 -0.624 2.731 1.00 53.44 O
818
+ ATOM 818 CB GLU A 51 6.378 2.003 0.905 1.00 60.04 C
819
+ ATOM 819 CG GLU A 51 7.605 2.576 1.630 1.00 12.31 C
820
+ ATOM 820 CD GLU A 51 8.730 3.003 0.675 1.00 63.50 C
821
+ ATOM 821 OE1 GLU A 51 9.509 2.126 0.229 1.00 33.11 O
822
+ ATOM 822 OE2 GLU A 51 8.848 4.212 0.368 1.00 3.55 O
823
+ ATOM 823 H GLU A 51 4.773 3.600 2.140 1.00 1.21 H
824
+ ATOM 824 HA GLU A 51 4.495 0.987 1.222 1.00 13.30 H
825
+ ATOM 825 HB2 GLU A 51 6.706 1.158 0.309 1.00 54.41 H
826
+ ATOM 826 HB3 GLU A 51 5.997 2.766 0.231 1.00 32.21 H
827
+ ATOM 827 HG2 GLU A 51 7.282 3.429 2.208 1.00 22.21 H
828
+ ATOM 828 HG3 GLU A 51 7.991 1.824 2.315 1.00 44.42 H
829
+ ATOM 829 N LYS A 52 6.030 1.154 4.130 1.00 33.23 N
830
+ ATOM 830 CA LYS A 52 6.533 0.404 5.305 1.00 13.13 C
831
+ ATOM 831 C LYS A 52 5.394 -0.429 5.923 1.00 72.15 C
832
+ ATOM 832 O LYS A 52 5.613 -1.567 6.334 1.00 32.24 O
833
+ ATOM 833 CB LYS A 52 7.142 1.364 6.362 1.00 72.32 C
834
+ ATOM 834 CG LYS A 52 7.771 0.678 7.598 1.00 53.30 C
835
+ ATOM 835 CD LYS A 52 8.338 1.687 8.632 1.00 41.24 C
836
+ ATOM 836 CE LYS A 52 7.254 2.610 9.228 1.00 72.21 C
837
+ ATOM 837 NZ LYS A 52 7.820 3.567 10.225 1.00 71.21 N
838
+ ATOM 838 H LYS A 52 5.836 2.112 4.192 1.00 73.30 H
839
+ ATOM 839 HA LYS A 52 7.311 -0.273 4.957 1.00 74.44 H
840
+ ATOM 840 HB2 LYS A 52 7.914 1.956 5.882 1.00 62.43 H
841
+ ATOM 841 HB3 LYS A 52 6.364 2.040 6.707 1.00 2.33 H
842
+ ATOM 842 HG2 LYS A 52 7.018 0.063 8.082 1.00 54.11 H
843
+ ATOM 843 HG3 LYS A 52 8.579 0.034 7.258 1.00 43.30 H
844
+ ATOM 844 HD2 LYS A 52 8.804 1.138 9.439 1.00 1.21 H
845
+ ATOM 845 HD3 LYS A 52 9.091 2.304 8.147 1.00 70.04 H
846
+ ATOM 846 HE2 LYS A 52 6.792 3.179 8.430 1.00 0.41 H
847
+ ATOM 847 HE3 LYS A 52 6.500 2.004 9.716 1.00 12.22 H
848
+ ATOM 848 HZ1 LYS A 52 8.273 3.047 11.007 1.00 34.14 H
849
+ ATOM 849 HZ2 LYS A 52 7.068 4.163 10.616 1.00 12.35 H
850
+ ATOM 850 HZ3 LYS A 52 8.530 4.176 9.774 1.00 24.24 H
851
+ ATOM 851 N ALA A 53 4.175 0.149 5.948 1.00 1.43 N
852
+ ATOM 852 CA ALA A 53 2.961 -0.514 6.473 1.00 64.32 C
853
+ ATOM 853 C ALA A 53 2.580 -1.724 5.600 1.00 24.25 C
854
+ ATOM 854 O ALA A 53 2.102 -2.748 6.106 1.00 3.44 O
855
+ ATOM 855 CB ALA A 53 1.795 0.487 6.557 1.00 72.12 C
856
+ ATOM 856 H ALA A 53 4.088 1.060 5.600 1.00 53.42 H
857
+ ATOM 857 HA ALA A 53 3.181 -0.862 7.478 1.00 63.03 H
858
+ ATOM 858 HB1 ALA A 53 2.084 1.325 7.179 1.00 51.22 H
859
+ ATOM 859 HB2 ALA A 53 0.925 0.006 6.987 1.00 23.13 H
860
+ ATOM 860 HB3 ALA A 53 1.550 0.850 5.566 1.00 70.21 H
861
+ ATOM 861 N VAL A 54 2.799 -1.575 4.286 1.00 21.33 N
862
+ ATOM 862 CA VAL A 54 2.700 -2.675 3.313 1.00 73.14 C
863
+ ATOM 863 C VAL A 54 3.737 -3.784 3.628 1.00 5.15 C
864
+ ATOM 864 O VAL A 54 3.426 -4.976 3.581 1.00 21.44 O
865
+ ATOM 865 CB VAL A 54 2.942 -2.132 1.859 1.00 34.11 C
866
+ ATOM 866 CG1 VAL A 54 2.881 -3.260 0.812 1.00 31.20 C
867
+ ATOM 867 CG2 VAL A 54 1.952 -0.996 1.519 1.00 32.32 C
868
+ ATOM 868 H VAL A 54 3.013 -0.680 3.946 1.00 14.30 H
869
+ ATOM 869 HA VAL A 54 1.696 -3.090 3.370 1.00 43.44 H
870
+ ATOM 870 HB VAL A 54 3.946 -1.710 1.826 1.00 70.14 H
871
+ ATOM 871 HG11 VAL A 54 1.896 -3.709 0.809 1.00 22.40 H
872
+ ATOM 872 HG12 VAL A 54 3.618 -4.020 1.045 1.00 35.10 H
873
+ ATOM 873 HG13 VAL A 54 3.092 -2.856 -0.170 1.00 74.31 H
874
+ ATOM 874 HG21 VAL A 54 0.937 -1.370 1.560 1.00 53.02 H
875
+ ATOM 875 HG22 VAL A 54 2.154 -0.615 0.526 1.00 2.33 H
876
+ ATOM 876 HG23 VAL A 54 2.062 -0.191 2.236 1.00 42.11 H
877
+ ATOM 877 N LYS A 55 4.979 -3.356 3.921 1.00 0.22 N
878
+ ATOM 878 CA LYS A 55 6.091 -4.261 4.295 1.00 2.30 C
879
+ ATOM 879 C LYS A 55 5.876 -4.948 5.662 1.00 73.04 C
880
+ ATOM 880 O LYS A 55 6.559 -5.929 5.972 1.00 33.04 O
881
+ ATOM 881 CB LYS A 55 7.440 -3.497 4.237 1.00 75.32 C
882
+ ATOM 882 CG LYS A 55 7.804 -3.002 2.815 1.00 32.41 C
883
+ ATOM 883 CD LYS A 55 8.984 -2.006 2.801 1.00 42.13 C
884
+ ATOM 884 CE LYS A 55 9.219 -1.371 1.422 1.00 10.41 C
885
+ ATOM 885 NZ LYS A 55 9.526 -2.376 0.370 1.00 22.32 N
886
+ ATOM 886 H LYS A 55 5.162 -2.398 3.824 1.00 60.33 H
887
+ ATOM 887 HA LYS A 55 6.116 -5.043 3.545 1.00 73.12 H
888
+ ATOM 888 HB2 LYS A 55 7.386 -2.637 4.902 1.00 74.13 H
889
+ ATOM 889 HB3 LYS A 55 8.240 -4.150 4.583 1.00 14.33 H
890
+ ATOM 890 HG2 LYS A 55 8.060 -3.859 2.201 1.00 64.15 H
891
+ ATOM 891 HG3 LYS A 55 6.930 -2.515 2.386 1.00 11.21 H
892
+ ATOM 892 HD2 LYS A 55 8.780 -1.213 3.514 1.00 45.32 H
893
+ ATOM 893 HD3 LYS A 55 9.887 -2.527 3.106 1.00 41.20 H
894
+ ATOM 894 HE2 LYS A 55 8.331 -0.824 1.125 1.00 0.11 H
895
+ ATOM 895 HE3 LYS A 55 10.049 -0.679 1.491 1.00 33.34 H
896
+ ATOM 896 HZ1 LYS A 55 8.725 -3.023 0.243 1.00 24.41 H
897
+ ATOM 897 HZ2 LYS A 55 10.367 -2.928 0.639 1.00 73.44 H
898
+ ATOM 898 HZ3 LYS A 55 9.719 -1.900 -0.535 1.00 41.42 H
899
+ ATOM 899 N LYS A 56 4.914 -4.451 6.467 1.00 4.43 N
900
+ ATOM 900 CA LYS A 56 4.488 -5.131 7.718 1.00 44.25 C
901
+ ATOM 901 C LYS A 56 3.564 -6.335 7.407 1.00 20.15 C
902
+ ATOM 902 O LYS A 56 3.270 -7.146 8.286 1.00 70.42 O
903
+ ATOM 903 CB LYS A 56 3.792 -4.131 8.694 1.00 14.40 C
904
+ ATOM 904 CG LYS A 56 4.632 -2.879 9.056 1.00 12.44 C
905
+ ATOM 905 CD LYS A 56 6.056 -3.199 9.581 1.00 51.51 C
906
+ ATOM 906 CE LYS A 56 6.051 -4.005 10.887 1.00 24.51 C
907
+ ATOM 907 NZ LYS A 56 7.427 -4.281 11.378 1.00 11.43 N
908
+ ATOM 908 H LYS A 56 4.486 -3.601 6.220 1.00 41.43 H
909
+ ATOM 909 HA LYS A 56 5.383 -5.517 8.203 1.00 20.41 H
910
+ ATOM 910 HB2 LYS A 56 2.866 -3.792 8.242 1.00 24.11 H
911
+ ATOM 911 HB3 LYS A 56 3.552 -4.653 9.617 1.00 43.22 H
912
+ ATOM 912 HG2 LYS A 56 4.727 -2.268 8.167 1.00 43.13 H
913
+ ATOM 913 HG3 LYS A 56 4.100 -2.309 9.811 1.00 73.44 H
914
+ ATOM 914 HD2 LYS A 56 6.591 -3.763 8.826 1.00 14.14 H
915
+ ATOM 915 HD3 LYS A 56 6.578 -2.262 9.750 1.00 12.01 H
916
+ ATOM 916 HE2 LYS A 56 5.518 -3.448 11.648 1.00 10.01 H
917
+ ATOM 917 HE3 LYS A 56 5.547 -4.949 10.720 1.00 62.44 H
918
+ ATOM 918 HZ1 LYS A 56 7.392 -4.763 12.300 1.00 74.45 H
919
+ ATOM 919 HZ2 LYS A 56 7.957 -3.393 11.488 1.00 52.50 H
920
+ ATOM 920 HZ3 LYS A 56 7.935 -4.887 10.704 1.00 14.04 H
921
+ ATOM 921 N VAL A 57 3.092 -6.413 6.151 1.00 22.14 N
922
+ ATOM 922 CA VAL A 57 2.368 -7.580 5.608 1.00 10.13 C
923
+ ATOM 923 C VAL A 57 3.358 -8.492 4.844 1.00 25.24 C
924
+ ATOM 924 O VAL A 57 3.261 -9.722 4.893 1.00 61.11 O
925
+ ATOM 925 CB VAL A 57 1.218 -7.124 4.627 1.00 12.41 C
926
+ ATOM 926 CG1 VAL A 57 0.401 -8.329 4.104 1.00 1.03 C
927
+ ATOM 927 CG2 VAL A 57 0.306 -6.053 5.279 1.00 5.41 C
928
+ ATOM 928 H VAL A 57 3.227 -5.646 5.565 1.00 12.40 H
929
+ ATOM 929 HA VAL A 57 1.924 -8.136 6.432 1.00 61.42 H
930
+ ATOM 930 HB VAL A 57 1.688 -6.656 3.757 1.00 10.31 H
931
+ ATOM 931 HG11 VAL A 57 -0.066 -8.847 4.934 1.00 63.23 H
932
+ ATOM 932 HG12 VAL A 57 1.055 -9.016 3.580 1.00 35.33 H
933
+ ATOM 933 HG13 VAL A 57 -0.364 -7.983 3.423 1.00 33.04 H
934
+ ATOM 934 HG21 VAL A 57 -0.451 -5.740 4.572 1.00 14.21 H
935
+ ATOM 935 HG22 VAL A 57 0.901 -5.194 5.567 1.00 12.42 H
936
+ ATOM 936 HG23 VAL A 57 -0.176 -6.463 6.159 1.00 4.20 H
937
+ ATOM 937 N LYS A 58 4.332 -7.855 4.169 1.00 25.30 N
938
+ ATOM 938 CA LYS A 58 5.241 -8.532 3.219 1.00 52.21 C
939
+ ATOM 939 C LYS A 58 6.568 -7.726 3.080 1.00 13.41 C
940
+ ATOM 940 O LYS A 58 6.593 -6.726 2.361 1.00 41.23 O
941
+ ATOM 941 CB LYS A 58 4.531 -8.775 1.848 1.00 53.23 C
942
+ ATOM 942 CG LYS A 58 3.796 -7.569 1.242 1.00 53.12 C
943
+ ATOM 943 CD LYS A 58 3.174 -7.912 -0.124 1.00 11.12 C
944
+ ATOM 944 CE LYS A 58 2.529 -6.708 -0.793 1.00 32.11 C
945
+ ATOM 945 NZ LYS A 58 1.812 -7.095 -2.023 1.00 1.32 N
946
+ ATOM 946 H LYS A 58 4.557 -6.949 4.457 1.00 14.52 H
947
+ ATOM 947 HA LYS A 58 5.483 -9.502 3.648 1.00 23.41 H
948
+ ATOM 948 HB2 LYS A 58 5.275 -9.091 1.125 1.00 53.33 H
949
+ ATOM 949 HB3 LYS A 58 3.816 -9.582 1.972 1.00 71.24 H
950
+ ATOM 950 HG2 LYS A 58 3.007 -7.257 1.923 1.00 20.00 H
951
+ ATOM 951 HG3 LYS A 58 4.501 -6.753 1.119 1.00 1.32 H
952
+ ATOM 952 HD2 LYS A 58 3.948 -8.294 -0.785 1.00 30.35 H
953
+ ATOM 953 HD3 LYS A 58 2.419 -8.681 0.013 1.00 42.44 H
954
+ ATOM 954 HE2 LYS A 58 1.824 -6.251 -0.111 1.00 24.33 H
955
+ ATOM 955 HE3 LYS A 58 3.295 -5.986 -1.046 1.00 73.13 H
956
+ ATOM 956 HZ1 LYS A 58 1.166 -7.881 -1.828 1.00 5.21 H
957
+ ATOM 957 HZ2 LYS A 58 2.490 -7.404 -2.748 1.00 40.11 H
958
+ ATOM 958 HZ3 LYS A 58 1.266 -6.294 -2.394 1.00 21.11 H
959
+ ATOM 959 N PRO A 59 7.692 -8.149 3.761 1.00 23.25 N
960
+ ATOM 960 CA PRO A 59 8.977 -7.367 3.807 1.00 64.23 C
961
+ ATOM 961 C PRO A 59 9.556 -7.027 2.410 1.00 14.30 C
962
+ ATOM 962 O PRO A 59 10.045 -5.911 2.176 1.00 45.55 O
963
+ ATOM 963 CB PRO A 59 9.937 -8.298 4.600 1.00 52.51 C
964
+ ATOM 964 CG PRO A 59 9.030 -9.182 5.404 1.00 61.14 C
965
+ ATOM 965 CD PRO A 59 7.815 -9.415 4.531 1.00 40.22 C
966
+ ATOM 966 HA PRO A 59 8.836 -6.440 4.360 1.00 63.41 H
967
+ ATOM 967 HB2 PRO A 59 10.553 -8.890 3.919 1.00 34.21 H
968
+ ATOM 968 HB3 PRO A 59 10.574 -7.718 5.258 1.00 1.53 H
969
+ ATOM 969 HG2 PRO A 59 9.528 -10.123 5.629 1.00 34.23 H
970
+ ATOM 970 HG3 PRO A 59 8.735 -8.689 6.326 1.00 51.34 H
971
+ ATOM 971 HD2 PRO A 59 7.975 -10.256 3.859 1.00 41.21 H
972
+ ATOM 972 HD3 PRO A 59 6.936 -9.587 5.140 1.00 63.34 H
973
+ ATOM 973 N ASN A 60 9.438 -7.987 1.485 1.00 32.20 N
974
+ ATOM 974 CA ASN A 60 10.027 -7.900 0.130 1.00 45.12 C
975
+ ATOM 975 C ASN A 60 8.953 -7.396 -0.879 1.00 3.21 C
976
+ ATOM 976 O ASN A 60 8.946 -7.768 -2.055 1.00 72.14 O
977
+ ATOM 977 CB ASN A 60 10.601 -9.313 -0.221 1.00 44.11 C
978
+ ATOM 978 CG ASN A 60 11.471 -9.373 -1.483 1.00 14.35 C
979
+ ATOM 979 OD1 ASN A 60 10.987 -9.656 -2.576 1.00 43.45 O
980
+ ATOM 980 ND2 ASN A 60 12.763 -9.124 -1.337 1.00 61.44 N
981
+ ATOM 981 H ASN A 60 8.906 -8.785 1.699 1.00 34.24 H
982
+ ATOM 982 HA ASN A 60 10.844 -7.182 0.152 1.00 54.41 H
983
+ ATOM 983 HB2 ASN A 60 11.205 -9.652 0.611 1.00 31.33 H
984
+ ATOM 984 HB3 ASN A 60 9.775 -10.008 -0.341 1.00 13.21 H
985
+ ATOM 985 HD21 ASN A 60 13.099 -8.916 -0.436 1.00 55.24 H
986
+ ATOM 986 HD22 ASN A 60 13.337 -9.169 -2.133 1.00 53.43 H
987
+ ATOM 987 N ALA A 61 8.012 -6.563 -0.381 1.00 72.40 N
988
+ ATOM 988 CA ALA A 61 7.013 -5.855 -1.205 1.00 12.15 C
989
+ ATOM 989 C ALA A 61 7.660 -5.000 -2.317 1.00 2.12 C
990
+ ATOM 990 O ALA A 61 8.379 -4.028 -2.028 1.00 50.05 O
991
+ ATOM 991 CB ALA A 61 6.142 -4.963 -0.304 1.00 65.35 C
992
+ ATOM 992 H ALA A 61 7.931 -6.494 0.590 1.00 50.11 H
993
+ ATOM 993 HA ALA A 61 6.366 -6.606 -1.656 1.00 63.40 H
994
+ ATOM 994 HB1 ALA A 61 6.757 -4.206 0.174 1.00 64.32 H
995
+ ATOM 995 HB2 ALA A 61 5.674 -5.569 0.455 1.00 72.00 H
996
+ ATOM 996 HB3 ALA A 61 5.373 -4.475 -0.893 1.00 3.20 H
997
+ ATOM 997 N THR A 62 7.393 -5.383 -3.578 1.00 12.23 N
998
+ ATOM 998 CA THR A 62 7.754 -4.599 -4.761 1.00 62.13 C
999
+ ATOM 999 C THR A 62 6.753 -3.437 -4.911 1.00 74.50 C
1000
+ ATOM 1000 O THR A 62 5.599 -3.638 -5.324 1.00 34.21 O
1001
+ ATOM 1001 CB THR A 62 7.745 -5.481 -6.053 1.00 61.43 C
1002
+ ATOM 1002 OG1 THR A 62 8.586 -6.632 -5.865 1.00 32.31 O
1003
+ ATOM 1003 CG2 THR A 62 8.225 -4.691 -7.288 1.00 21.33 C
1004
+ ATOM 1004 H THR A 62 6.933 -6.228 -3.712 1.00 13.52 H
1005
+ ATOM 1005 HA THR A 62 8.760 -4.204 -4.617 1.00 34.20 H
1006
+ ATOM 1006 HB THR A 62 6.731 -5.822 -6.233 1.00 41.32 H
1007
+ ATOM 1007 HG1 THR A 62 8.032 -7.406 -5.713 1.00 24.01 H
1008
+ ATOM 1008 HG21 THR A 62 7.579 -3.837 -7.453 1.00 13.32 H
1009
+ ATOM 1009 HG22 THR A 62 8.199 -5.331 -8.161 1.00 52.44 H
1010
+ ATOM 1010 HG23 THR A 62 9.240 -4.344 -7.134 1.00 31.02 H
1011
+ ATOM 1011 N ILE A 63 7.193 -2.235 -4.513 1.00 62.55 N
1012
+ ATOM 1012 CA ILE A 63 6.368 -1.018 -4.523 1.00 72.53 C
1013
+ ATOM 1013 C ILE A 63 6.946 -0.032 -5.545 1.00 40.43 C
1014
+ ATOM 1014 O ILE A 63 8.108 0.355 -5.447 1.00 44.44 O
1015
+ ATOM 1015 CB ILE A 63 6.332 -0.400 -3.070 1.00 52.40 C
1016
+ ATOM 1016 CG1 ILE A 63 5.741 -1.456 -2.077 1.00 22.12 C
1017
+ ATOM 1017 CG2 ILE A 63 5.525 0.931 -3.023 1.00 31.21 C
1018
+ ATOM 1018 CD1 ILE A 63 6.035 -1.220 -0.619 1.00 52.01 C
1019
+ ATOM 1019 H ILE A 63 8.108 -2.153 -4.166 1.00 61.44 H
1020
+ ATOM 1020 HA ILE A 63 5.347 -1.284 -4.809 1.00 3.52 H
1021
+ ATOM 1021 HB ILE A 63 7.356 -0.179 -2.775 1.00 65.24 H
1022
+ ATOM 1022 HG12 ILE A 63 4.667 -1.473 -2.176 1.00 60.44 H
1023
+ ATOM 1023 HG13 ILE A 63 6.126 -2.440 -2.325 1.00 3.31 H
1024
+ ATOM 1024 HG21 ILE A 63 5.972 1.652 -3.698 1.00 22.24 H
1025
+ ATOM 1025 HG22 ILE A 63 5.538 1.331 -2.019 1.00 4.24 H
1026
+ ATOM 1026 HG23 ILE A 63 4.501 0.748 -3.323 1.00 30.03 H
1027
+ ATOM 1027 HD11 ILE A 63 5.624 -2.032 -0.041 1.00 3.42 H
1028
+ ATOM 1028 HD12 ILE A 63 5.587 -0.290 -0.301 1.00 54.23 H
1029
+ ATOM 1029 HD13 ILE A 63 7.104 -1.177 -0.468 1.00 33.51 H
1030
+ ATOM 1030 N ARG A 64 6.119 0.346 -6.528 1.00 73.11 N
1031
+ ATOM 1031 CA ARG A 64 6.498 1.223 -7.642 1.00 11.12 C
1032
+ ATOM 1032 C ARG A 64 6.334 2.679 -7.191 1.00 71.54 C
1033
+ ATOM 1033 O ARG A 64 5.209 3.179 -7.075 1.00 3.44 O
1034
+ ATOM 1034 CB ARG A 64 5.611 0.927 -8.887 1.00 50.44 C
1035
+ ATOM 1035 CG ARG A 64 5.714 -0.519 -9.430 1.00 61.44 C
1036
+ ATOM 1036 CD ARG A 64 7.141 -0.903 -9.876 1.00 53.01 C
1037
+ ATOM 1037 NE ARG A 64 7.194 -2.243 -10.491 1.00 14.33 N
1038
+ ATOM 1038 CZ ARG A 64 8.311 -2.981 -10.644 1.00 42.05 C
1039
+ ATOM 1039 NH1 ARG A 64 9.499 -2.529 -10.227 1.00 73.22 N
1040
+ ATOM 1040 NH2 ARG A 64 8.232 -4.165 -11.235 1.00 53.23 N
1041
+ ATOM 1041 H ARG A 64 5.195 0.075 -6.454 1.00 51.34 H
1042
+ ATOM 1042 HA ARG A 64 7.542 1.034 -7.892 1.00 14.11 H
1043
+ ATOM 1043 HB2 ARG A 64 4.571 1.109 -8.626 1.00 64.44 H
1044
+ ATOM 1044 HB3 ARG A 64 5.885 1.608 -9.686 1.00 40.01 H
1045
+ ATOM 1045 HG2 ARG A 64 5.403 -1.202 -8.649 1.00 30.22 H
1046
+ ATOM 1046 HG3 ARG A 64 5.042 -0.623 -10.276 1.00 31.22 H
1047
+ ATOM 1047 HD2 ARG A 64 7.495 -0.180 -10.603 1.00 34.41 H
1048
+ ATOM 1048 HD3 ARG A 64 7.796 -0.887 -9.011 1.00 30.15 H
1049
+ ATOM 1049 HE ARG A 64 6.341 -2.615 -10.814 1.00 34.33 H
1050
+ ATOM 1050 HH11 ARG A 64 9.573 -1.628 -9.788 1.00 34.40 H
1051
+ ATOM 1051 HH12 ARG A 64 10.325 -3.089 -10.349 1.00 62.13 H
1052
+ ATOM 1052 HH21 ARG A 64 7.349 -4.510 -11.564 1.00 45.31 H
1053
+ ATOM 1053 HH22 ARG A 64 9.060 -4.728 -11.358 1.00 4.01 H
1054
+ ATOM 1054 N LYS A 65 7.462 3.337 -6.904 1.00 55.55 N
1055
+ ATOM 1055 CA LYS A 65 7.479 4.683 -6.324 1.00 72.41 C
1056
+ ATOM 1056 C LYS A 65 7.905 5.692 -7.399 1.00 2.43 C
1057
+ ATOM 1057 O LYS A 65 9.062 5.704 -7.816 1.00 23.42 O
1058
+ ATOM 1058 CB LYS A 65 8.443 4.706 -5.106 1.00 60.12 C
1059
+ ATOM 1059 CG LYS A 65 8.376 5.993 -4.255 1.00 54.24 C
1060
+ ATOM 1060 CD LYS A 65 9.195 5.871 -2.950 1.00 13.41 C
1061
+ ATOM 1061 CE LYS A 65 8.968 7.038 -1.985 1.00 35.42 C
1062
+ ATOM 1062 NZ LYS A 65 9.707 6.834 -0.712 1.00 41.53 N
1063
+ ATOM 1063 H LYS A 65 8.315 2.915 -7.126 1.00 32.22 H
1064
+ ATOM 1064 HA LYS A 65 6.475 4.932 -5.982 1.00 63.32 H
1065
+ ATOM 1065 HB2 LYS A 65 8.203 3.860 -4.464 1.00 13.21 H
1066
+ ATOM 1066 HB3 LYS A 65 9.463 4.583 -5.461 1.00 43.42 H
1067
+ ATOM 1067 HG2 LYS A 65 8.763 6.822 -4.840 1.00 33.11 H
1068
+ ATOM 1068 HG3 LYS A 65 7.337 6.193 -4.002 1.00 21.31 H
1069
+ ATOM 1069 HD2 LYS A 65 8.920 4.952 -2.443 1.00 42.01 H
1070
+ ATOM 1070 HD3 LYS A 65 10.252 5.829 -3.202 1.00 53.53 H
1071
+ ATOM 1071 HE2 LYS A 65 9.308 7.959 -2.449 1.00 3.35 H
1072
+ ATOM 1072 HE3 LYS A 65 7.909 7.118 -1.767 1.00 24.44 H
1073
+ ATOM 1073 HZ1 LYS A 65 10.729 6.773 -0.895 1.00 31.12 H
1074
+ ATOM 1074 HZ2 LYS A 65 9.398 5.952 -0.256 1.00 40.42 H
1075
+ ATOM 1075 HZ3 LYS A 65 9.532 7.625 -0.059 1.00 52.21 H
1076
+ ATOM 1076 N THR A 66 6.938 6.492 -7.875 1.00 12.05 N
1077
+ ATOM 1077 CA THR A 66 7.155 7.525 -8.909 1.00 22.33 C
1078
+ ATOM 1078 C THR A 66 6.872 8.929 -8.328 1.00 41.33 C
1079
+ ATOM 1079 O THR A 66 6.038 9.081 -7.424 1.00 50.40 O
1080
+ ATOM 1080 CB THR A 66 6.235 7.229 -10.149 1.00 13.32 C
1081
+ ATOM 1081 OG1 THR A 66 6.579 5.943 -10.691 1.00 24.34 O
1082
+ ATOM 1082 CG2 THR A 66 6.332 8.296 -11.260 1.00 52.41 C
1083
+ ATOM 1083 H THR A 66 6.029 6.380 -7.523 1.00 21.01 H
1084
+ ATOM 1084 HA THR A 66 8.196 7.484 -9.241 1.00 53.43 H
1085
+ ATOM 1085 HB THR A 66 5.205 7.183 -9.803 1.00 74.00 H
1086
+ ATOM 1086 HG1 THR A 66 6.988 5.405 -10.002 1.00 51.01 H
1087
+ ATOM 1087 HG21 THR A 66 7.356 8.379 -11.606 1.00 44.00 H
1088
+ ATOM 1088 HG22 THR A 66 6.006 9.256 -10.874 1.00 13.21 H
1089
+ ATOM 1089 HG23 THR A 66 5.699 8.018 -12.090 1.00 22.21 H
1090
+ ATOM 1090 N GLY A 67 7.594 9.942 -8.843 1.00 30.00 N
1091
+ ATOM 1091 CA GLY A 67 7.390 11.330 -8.451 1.00 64.41 C
1092
+ ATOM 1092 C GLY A 67 8.036 11.661 -7.115 1.00 24.45 C
1093
+ ATOM 1093 O GLY A 67 9.264 11.719 -7.027 1.00 11.31 O
1094
+ ATOM 1094 H GLY A 67 8.286 9.734 -9.502 1.00 4.14 H
1095
+ ATOM 1095 HA2 GLY A 67 7.824 11.966 -9.214 1.00 21.32 H
1096
+ ATOM 1096 HA3 GLY A 67 6.326 11.541 -8.402 1.00 73.14 H
1097
+ TER
weight/esm-main/examples/lm-design/README.md ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # LM design examples
2
+
3
+ This folder contains code for demonstration of protein design using a language model. The code was used to perform the two design tasks specified at the paper [Language models generalize beyond natural proteins
4
+ ](https://www.biorxiv.org/content/10.1101/2022.12.21.521521v1).
5
+
6
+
7
+ ## Notebook examples
8
+
9
+ Refer to the two notebooks at this folder to run the fixed backbone and free generation design tasks.
10
+
11
+
12
+ ## Shell examples
13
+
14
+ To run the two design tasks from shell, do the following:
15
+
16
+ 1. First, install additional requirements: ```pip install -r additional_requirements.txt```
17
+ 2. Running Fixed backbone design: ```python -m lm_design task=fixedbb pdb_fn=$PWD/2N2U.pdb```
18
+ 3. Running Free generation design: ```python -m lm_design task=free_generation```
19
+
20
+ Notes:
21
+ Use the ```seed=<number>``` flag to generate different designs, e.g:
22
+ ```python -m lm_design task=free_generation seed=42```
23
+
24
+ Control generated length in free generation using ```free_generation_length=<number>```, e.g:
25
+ ```python -m lm_design task=free_generation free_generation_length=68```
26
+
27
+ Other, more advanced configurations can be observed at [config.yaml](conf/config.yaml)
28
+
29
+
30
+ ## Paper data
31
+ The data from the preprint is available under [paper-data/](paper-data).
32
+ This includes designed sequences, their predicted structures, experimental validation results, linear projection for pairwise distance prediction, and details on dataset construction for model training.
weight/esm-main/examples/lm-design/additional_requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ nltk
2
+ py3Dmol
3
+ hydra
weight/esm-main/examples/lm-design/fixed_backbone.ipynb ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "4f84941e",
6
+ "metadata": {},
7
+ "source": [
8
+ "# Fixed Backbone design from LM\n",
9
+ "\n",
10
+ "This notebook demonstrates the Fixed Backbone design task from the paper [Language models generalize beyond natural proteins\n",
11
+ "](https://www.biorxiv.org/content/10.1101/2022.12.21.521521v1).\n",
12
+ "\n",
13
+ "Given an input structure as .pdb file, the LM is used iteratively in an MCMC optimization to find a sequence that folds to that structure\n"
14
+ ]
15
+ },
16
+ {
17
+ "cell_type": "code",
18
+ "execution_count": null,
19
+ "id": "d378b7f4-0792-446b-9e95-f7025bee5bec",
20
+ "metadata": {},
21
+ "outputs": [],
22
+ "source": [
23
+ "# First install additional dependencies\n",
24
+ "!pip install -r additional_requirements.txt\n"
25
+ ]
26
+ },
27
+ {
28
+ "cell_type": "code",
29
+ "execution_count": null,
30
+ "id": "cfd13d6a",
31
+ "metadata": {},
32
+ "outputs": [],
33
+ "source": [
34
+ "# Imports\n",
35
+ "import os\n",
36
+ "import time\n",
37
+ "import hydra\n",
38
+ "import py3Dmol\n",
39
+ "from lm_design import Designer\n",
40
+ "\n",
41
+ "# Params\n",
42
+ "pdb_fn = os.getcwd() + '/2N2U.pdb'\n",
43
+ "seed = 0 # Use different seeds to get different sequence designs for the same structure\n",
44
+ "TASK = \"fixedbb\""
45
+ ]
46
+ },
47
+ {
48
+ "cell_type": "code",
49
+ "execution_count": null,
50
+ "id": "989996bf",
51
+ "metadata": {},
52
+ "outputs": [],
53
+ "source": [
54
+ "# Load hydra config from config.yaml\n",
55
+ "with hydra.initialize_config_module(config_module=\"conf\"):\n",
56
+ " cfg = hydra.compose(\n",
57
+ " config_name=\"config\", \n",
58
+ " overrides=[\n",
59
+ " f\"task={TASK}\", \n",
60
+ " f\"seed={seed}\", \n",
61
+ " f\"pdb_fn={pdb_fn}\", \n",
62
+ " # 'tasks.fixedbb.num_iter=100' # DEBUG - use a smaller number of iterations\n",
63
+ " ])"
64
+ ]
65
+ },
66
+ {
67
+ "cell_type": "code",
68
+ "execution_count": null,
69
+ "id": "63178538",
70
+ "metadata": {},
71
+ "outputs": [],
72
+ "source": [
73
+ "# Create a designer from configuration\n",
74
+ "des = Designer(cfg, pdb_fn)"
75
+ ]
76
+ },
77
+ {
78
+ "cell_type": "code",
79
+ "execution_count": null,
80
+ "id": "86d25575",
81
+ "metadata": {},
82
+ "outputs": [],
83
+ "source": [
84
+ "\n",
85
+ "# Run the designer\n",
86
+ "start_time = time.time()\n",
87
+ "des.run_from_cfg()\n",
88
+ "print(\"finished after %s hours\", (time.time() - start_time) / 3600)"
89
+ ]
90
+ },
91
+ {
92
+ "cell_type": "code",
93
+ "execution_count": null,
94
+ "id": "d6d9f742",
95
+ "metadata": {},
96
+ "outputs": [],
97
+ "source": [
98
+ "print(\"Output seq:\", des.output_seq)"
99
+ ]
100
+ },
101
+ {
102
+ "cell_type": "code",
103
+ "execution_count": null,
104
+ "id": "ba6c8c66",
105
+ "metadata": {},
106
+ "outputs": [],
107
+ "source": [
108
+ "\n",
109
+ "# Fold output with ESMFold API\n",
110
+ "output_seq = des.output_seq\n",
111
+ "# Fold with api:\n",
112
+ "# curl -X POST --data \"GENGEIPLEIRATTGAEVDTRAVTAVEMTEGTLGIFRLPEEDYTALENFRYNRVAGENWKPASTVIYVGGTYARLCAYAPYNSVEFKNSSLKTEAGLTMQTYAAEKDMRFAVSGGDEVWKKTPTANFELKRAYARLVLSVVRDATYPNTCKITKAKIEAFTGNIITANTVDISTGTEGSGTQTPQYIHTVTTGLKDGFAIGLPQQTFSGGVVLTLTVDGMEYSVTIPANKLSTFVRGTKYIVSLAVKGGKLTLMSDKILIDKDWAEVQTGTGGSGDDYDTSFN\" https://api.esmatlas.com/foldSequence/v1/pdb/\n",
113
+ "import requests\n",
114
+ "import json\n",
115
+ "url = 'https://api.esmatlas.com/foldSequence/v1/pdb/'\n",
116
+ "r = requests.post(url, data=output_seq)\n",
117
+ "output_struct = r.text\n",
118
+ "\n"
119
+ ]
120
+ },
121
+ {
122
+ "cell_type": "code",
123
+ "execution_count": null,
124
+ "id": "d5c06ab3",
125
+ "metadata": {},
126
+ "outputs": [],
127
+ "source": [
128
+ "# Visualize output structure\n",
129
+ "view = py3Dmol.view(width=800, height=800)\n",
130
+ "view.addModel(output_struct, 'pdb')\n",
131
+ "view.setStyle({'cartoon': {'color': 'spectrum'}})\n",
132
+ "view.zoomTo()\n",
133
+ "view.show()\n"
134
+ ]
135
+ },
136
+ {
137
+ "cell_type": "code",
138
+ "execution_count": null,
139
+ "id": "b7247225",
140
+ "metadata": {},
141
+ "outputs": [],
142
+ "source": [
143
+ "des.x_logits.shape"
144
+ ]
145
+ },
146
+ {
147
+ "cell_type": "code",
148
+ "execution_count": null,
149
+ "id": "d8e5c184",
150
+ "metadata": {},
151
+ "outputs": [],
152
+ "source": [
153
+ "# Visualize wild type structure\n",
154
+ "wt_struct_file = pdb_fn\n",
155
+ "view = py3Dmol.view(width=800, height=800)\n",
156
+ "view.addModel(open(wt_struct_file).read(), 'pdb')\n",
157
+ "view.setStyle({'cartoon': {'color': 'spectrum'}})\n",
158
+ "view.zoomTo()\n",
159
+ "view.show()"
160
+ ]
161
+ },
162
+ {
163
+ "cell_type": "code",
164
+ "execution_count": null,
165
+ "id": "222ec344",
166
+ "metadata": {},
167
+ "outputs": [],
168
+ "source": []
169
+ }
170
+ ],
171
+ "metadata": {
172
+ "kernelspec": {
173
+ "display_name": "Python 3 (ipykernel)",
174
+ "language": "python",
175
+ "name": "python3"
176
+ },
177
+ "language_info": {
178
+ "codemirror_mode": {
179
+ "name": "ipython",
180
+ "version": 3
181
+ },
182
+ "file_extension": ".py",
183
+ "mimetype": "text/x-python",
184
+ "name": "python",
185
+ "nbconvert_exporter": "python",
186
+ "pygments_lexer": "ipython3",
187
+ "version": "3.7.12"
188
+ },
189
+ "vscode": {
190
+ "interpreter": {
191
+ "hash": "5502aca739f2549ad2771378ffc455b2bbb8b06f1a91617971f7097758a3cf84"
192
+ }
193
+ }
194
+ },
195
+ "nbformat": 4,
196
+ "nbformat_minor": 5
197
+ }
weight/esm-main/examples/lm-design/free_generation.ipynb ADDED
@@ -0,0 +1,169 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "e1a1c491",
6
+ "metadata": {},
7
+ "source": [
8
+ "# Free Generation design\n",
9
+ "\n",
10
+ "This notebook demonstrates the Free Generation design task from the paper [Language models generalize beyond natural proteins\n",
11
+ "](https://www.biorxiv.org/content/10.1101/2022.12.21.521521v1).\n",
12
+ "\n",
13
+ "Given an input sequence length, the design code activates the language model and the linear projection structure head alternatingly to generate a likely sequence and structure."
14
+ ]
15
+ },
16
+ {
17
+ "cell_type": "code",
18
+ "execution_count": null,
19
+ "id": "5f76a438-3afd-4096-ba36-eb9bee90f08a",
20
+ "metadata": {},
21
+ "outputs": [],
22
+ "source": [
23
+ "# First install additional dependencies\n",
24
+ "!pip install -r additional_requirements.txt"
25
+ ]
26
+ },
27
+ {
28
+ "cell_type": "code",
29
+ "execution_count": null,
30
+ "id": "59549997",
31
+ "metadata": {},
32
+ "outputs": [],
33
+ "source": [
34
+ "# Imports\n",
35
+ "import os\n",
36
+ "import time\n",
37
+ "import hydra\n",
38
+ "import py3Dmol\n",
39
+ "from lm_design import Designer\n",
40
+ "\n",
41
+ "# Params\n",
42
+ "seed = 0 # Use different seeds to get different sequence results\n",
43
+ "free_generation_length = 100\n",
44
+ "TASK = \"free_generation\""
45
+ ]
46
+ },
47
+ {
48
+ "cell_type": "code",
49
+ "execution_count": null,
50
+ "id": "8e27bf90",
51
+ "metadata": {},
52
+ "outputs": [],
53
+ "source": [
54
+ "# Load hydra config from config.yaml\n",
55
+ "with hydra.initialize_config_module(config_module=\"conf\"):\n",
56
+ " cfg = hydra.compose(\n",
57
+ " config_name=\"config\", \n",
58
+ " overrides=[\n",
59
+ " f\"task={TASK}\", \n",
60
+ " f\"seed={seed}\", \n",
61
+ " f\"free_generation_length={free_generation_length}\", \n",
62
+ " # 'tasks.free_generation.num_iter=100' # DEBUG - use a smaller number of iterations\n",
63
+ " ])"
64
+ ]
65
+ },
66
+ {
67
+ "cell_type": "code",
68
+ "execution_count": null,
69
+ "id": "a95fbfb2",
70
+ "metadata": {},
71
+ "outputs": [],
72
+ "source": [
73
+ "# Create a designer from configuration\n",
74
+ "des = Designer(cfg)"
75
+ ]
76
+ },
77
+ {
78
+ "cell_type": "code",
79
+ "execution_count": null,
80
+ "id": "e92e577b",
81
+ "metadata": {},
82
+ "outputs": [],
83
+ "source": [
84
+ "\n",
85
+ "# Run the designer\n",
86
+ "start_time = time.time()\n",
87
+ "des.run_from_cfg() \n",
88
+ "print(\"finished after %s hours\", (time.time() - start_time) / 3600)"
89
+ ]
90
+ },
91
+ {
92
+ "cell_type": "code",
93
+ "execution_count": null,
94
+ "id": "fb4d9456",
95
+ "metadata": {},
96
+ "outputs": [],
97
+ "source": [
98
+ "print(\"Output seq:\", des.output_seq)"
99
+ ]
100
+ },
101
+ {
102
+ "cell_type": "code",
103
+ "execution_count": null,
104
+ "id": "12229064",
105
+ "metadata": {},
106
+ "outputs": [],
107
+ "source": [
108
+ "# Fold output with ESMFold API\n",
109
+ "output_seq = des.output_seq\n",
110
+ "# Fold with api:\n",
111
+ "# curl -X POST --data \"GENGEIPLEIRATTGAEVDTRAVTAVEMTEGTLGIFRLPEEDYTALENFRYNRVAGENWKPASTVIYVGGTYARLCAYAPYNSVEFKNSSLKTEAGLTMQTYAAEKDMRFAVSGGDEVWKKTPTANFELKRAYARLVLSVVRDATYPNTCKITKAKIEAFTGNIITANTVDISTGTEGSGTQTPQYIHTVTTGLKDGFAIGLPQQTFSGGVVLTLTVDGMEYSVTIPANKLSTFVRGTKYIVSLAVKGGKLTLMSDKILIDKDWAEVQTGTGGSGDDYDTSFN\" https://api.esmatlas.com/foldSequence/v1/pdb/\n",
112
+ "import requests\n",
113
+ "import json\n",
114
+ "url = 'https://api.esmatlas.com/foldSequence/v1/pdb/'\n",
115
+ "r = requests.post(url, data=output_seq)\n",
116
+ "output_struct = r.text\n"
117
+ ]
118
+ },
119
+ {
120
+ "cell_type": "code",
121
+ "execution_count": null,
122
+ "id": "e516f069",
123
+ "metadata": {},
124
+ "outputs": [],
125
+ "source": [
126
+ "# Visualize output structure\n",
127
+ "view = py3Dmol.view(width=800, height=800)\n",
128
+ "view.addModel(output_struct, 'pdb')\n",
129
+ "view.setStyle({'cartoon': {'color': 'spectrum'}})\n",
130
+ "view.zoomTo()\n",
131
+ "view.show()"
132
+ ]
133
+ },
134
+ {
135
+ "cell_type": "code",
136
+ "execution_count": null,
137
+ "id": "c1c9a0f0",
138
+ "metadata": {},
139
+ "outputs": [],
140
+ "source": []
141
+ }
142
+ ],
143
+ "metadata": {
144
+ "kernelspec": {
145
+ "display_name": "Python 3.7.12 ('esm-IF_py37')",
146
+ "language": "python",
147
+ "name": "python3"
148
+ },
149
+ "language_info": {
150
+ "codemirror_mode": {
151
+ "name": "ipython",
152
+ "version": 3
153
+ },
154
+ "file_extension": ".py",
155
+ "mimetype": "text/x-python",
156
+ "name": "python",
157
+ "nbconvert_exporter": "python",
158
+ "pygments_lexer": "ipython3",
159
+ "version": "3.7.12"
160
+ },
161
+ "vscode": {
162
+ "interpreter": {
163
+ "hash": "5502aca739f2549ad2771378ffc455b2bbb8b06f1a91617971f7097758a3cf84"
164
+ }
165
+ }
166
+ },
167
+ "nbformat": 4,
168
+ "nbformat_minor": 5
169
+ }
weight/esm-main/examples/lm-design/lm_design.py ADDED
@@ -0,0 +1,456 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+
7
+ # core
8
+ import logging
9
+ import os
10
+ import sys
11
+ import time
12
+
13
+ from omegaconf import DictConfig
14
+ import hydra
15
+ import os
16
+ from pathlib import Path
17
+ import sys
18
+ import time
19
+ import logging
20
+
21
+ import numpy as np
22
+ from omegaconf import DictConfig, OmegaConf
23
+ import torch
24
+ import torch.nn.functional as F
25
+
26
+ # make sure script started from the root of the this file
27
+ assert Path.cwd().name == 'lm-design', 'Please run this script from examples/lm-design/'
28
+ sys.path.append('../../')
29
+ from esm.data import Alphabet
30
+
31
+ from utils.scheduler import SchedulerSpec, to_scheduler, set_scheduler_repo
32
+ import utils.pdb_loader as pdb_loader
33
+ from utils.loss import get_cce_loss
34
+ from utils.lm import lm_marginal
35
+ from utils.masking import assert_valid_mask
36
+ from utils.sampling import (
37
+ set_rng_seeds,
38
+ )
39
+ from utils.constants import COORDS_ANGLE_NAMES, COORDS4D_NAMES
40
+ import utils.struct_models as struct_models
41
+ from utils.free_generation import stage_free_generation
42
+ from utils.fixedbb import stage_fixedbb
43
+ from utils.lm import WrapLmEsm
44
+
45
+ from utils.tensor import (
46
+ assert_shape,
47
+ )
48
+ from utils import ngram as ngram_utils
49
+
50
+ logger = logging.getLogger(__name__) # Hydra configured
51
+ os.environ['MKL_THREADING_LAYER'] = 'GNU'
52
+
53
+
54
+ class Designer:
55
+ cutoff_dist = 8
56
+ LOGITS_LARGE = 100
57
+ standard_AA = 'LAGVSERTIDPKQNFYMHWC'
58
+
59
+ ##########################################
60
+ # Inits
61
+ ##########################################
62
+ def __init__(
63
+ self,
64
+ cfg,
65
+ target_pdb_path=None,
66
+ device=None
67
+ ):
68
+ ## Initialize models
69
+ if device:
70
+ self.device = device
71
+ else:
72
+ use_cuda = torch.cuda.is_available() and not cfg.disable_cuda
73
+ device_idx = f":{cfg.cuda_device_idx}" if cfg.get('cuda_device_idx') else ""
74
+ self.device = torch.device(f'cuda{device_idx}' if use_cuda else 'cpu')
75
+ SEED_SENTINEL = 1238
76
+ self.seed = cfg.seed + SEED_SENTINEL
77
+ self.cfg = cfg
78
+ self.allowed_AA = ''.join(AA for AA in self.standard_AA if (
79
+ ('suppress_AA' not in self.cfg) or (not AA in self.cfg.suppress_AA)))
80
+
81
+ self._init_models()
82
+ if target_pdb_path is None:
83
+ # eg notarget-L70
84
+ target_pdb_path = 'notarget-L100'
85
+ self._init_no_target(cfg.free_generation_length)
86
+ else:
87
+ target_pdb_path = Path(target_pdb_path)
88
+ self._init_target(target_pdb_path)
89
+
90
+ set_rng_seeds(self.seed)
91
+ self.schedulers = {} # reset schedulers
92
+ self.resuming_stage = False
93
+ self.init_sequences(cfg.num_seqs)
94
+
95
+ torch.backends.cudnn.benchmark = True # Slightly faster runtime for optimization
96
+ logger.info("Finished Designer init")
97
+
98
+ def _init_models(self):
99
+ self.vocab = Alphabet.from_architecture('ESM-1b')
100
+ self.vocab_mask_AA = torch.BoolTensor(
101
+ [t in self.allowed_AA for t in self.vocab.all_toks]
102
+ ).to(self.device)
103
+ self.vocab_mask_AA_idx = torch.nonzero(self.vocab_mask_AA).squeeze()
104
+
105
+ self.struct_model, self.pdb_loader_params = struct_models.load(
106
+ self.vocab,
107
+ )
108
+ self.LM = WrapLmEsm(self.struct_model.lm, self.vocab)
109
+
110
+ # 4. Common model settings
111
+ def apply_common_settings(model):
112
+ model.to(self.device)
113
+ model.eval()
114
+ # No grads for models
115
+ for p in model.parameters():
116
+ p.requires_grad = False
117
+ return model
118
+
119
+ self.LM = apply_common_settings(self.LM)
120
+ self.struct_model = apply_common_settings(self.struct_model)
121
+
122
+ def encode(self, seq_raw, onehot=True):
123
+ device = self.device
124
+ if isinstance(seq_raw, list):
125
+ seq_enc = [[self.vocab.get_idx(c) for c in seq]
126
+ for seq in seq_raw]
127
+ else:
128
+ seq_enc = [self.vocab.get_idx(c) for c in seq_raw]
129
+ seq_enc = torch.LongTensor(seq_enc)
130
+ if onehot:
131
+ seq_enc = F.one_hot(seq_enc, len(self.vocab)).float()
132
+ return seq_enc.to(device)
133
+
134
+ def decode(self, seq_enc, onehot=True):
135
+ if onehot:
136
+ seq_enc = seq_enc.argmax(-1)
137
+ # for seq in seq_enc.view(-1, seq_enc.
138
+ assert seq_enc.dim() == 2
139
+ # Must do cpu conversion here!
140
+ # Or else pytorch runtime will do it O(L) times and incur a very
141
+ # large slowdown.
142
+ seq_enc = seq_enc.cpu()
143
+ seqs = [
144
+ ''.join([self.vocab.get_tok(c) for c in _seq]) for _seq in seq_enc
145
+ ]
146
+ return seqs
147
+
148
+ def _init_no_target(self, L):
149
+ ## Initialize target and wt_seq
150
+ self.L = self.seqL = L
151
+ self.wt_metrics = {}
152
+ self.wt_seq = None
153
+ self.target_no_angles = False
154
+
155
+ # Assume naive positional indexing, to allow calling struct_pred.
156
+ self.pos_idx = torch.arange(self.L).long()[None,].to(self.device)
157
+ # Valid contacts indicate positions that had no contact in the pdb file of the protein to
158
+ # ignore. No target, so everything is valid.
159
+ self.valid_contacts = torch.ones(self.L, self.L).bool().to(self.device)
160
+
161
+ def _init_target(self, pdb_path):
162
+ ## Initialize target and wt_seq
163
+ assert pdb_path.suffix == ".pdb"
164
+ self.target_pdb_path = pdb_path
165
+
166
+ self.pdb_id = Path(pdb_path).stem
167
+ self.target_data = pdb_loader.loader(
168
+ pdb_path=pdb_path,
169
+ params=self.pdb_loader_params,
170
+ set_diagonal=True,
171
+ allow_missing_residue_coords=self.cfg.allow_missing_residue_coords)
172
+ self.target_xyz = torch.tensor(self.target_data['xyz']).to(self.device)
173
+ self.pos_idx = torch.tensor(self.target_data['idx']).long()[None,].to(self.device)
174
+ self.coords = torch.tensor(self.target_data['coords6d']).long()[None,].to(self.device)
175
+
176
+ self.wt_seq_raw = self.target_data['fullseq'][0]
177
+ self.wt_seq = self.encode(self.wt_seq_raw).unsqueeze(0) # B x L x K
178
+ self.seqL = self.L = len(self.wt_seq_raw)
179
+ self.target_distancemap = torch.from_numpy(self.target_data["dist"])
180
+ self.target_contacts = (self.target_distancemap < self.cutoff_dist).to(self.device)
181
+ self.target_no_contacts = ~self.target_contacts
182
+ # Mark for contacts that have no nan distance values in the distance map
183
+ self.valid_contacts = torch.from_numpy(self.target_data['dist'] == self.target_data['dist']).to(self.device)
184
+ self.target_contacts &= self.valid_contacts
185
+ self.target_no_contacts &= self.valid_contacts
186
+ self.target_no_angles = self.target_data["no_angles"]
187
+
188
+ logger.info(f'Initialized target {self.pdb_id} of length {self.seqL}')
189
+ logger.info(f'Wildtype sequence:\n{self.wt_seq_raw}')
190
+
191
+ def init_sequences(self, num_seqs):
192
+ assert num_seqs == 1, "Only 1 sequence design in parallel supported for now."
193
+ self.B = B = self.num_seqs = num_seqs
194
+
195
+ K = len(self.vocab)
196
+ AA_indices = torch.arange(K, device=self.device)[self.vocab_mask_AA]
197
+ bt = torch.from_numpy(np.random.choice(AA_indices.cpu().numpy(), size=(B, self.L))).to(self.device)
198
+ self.x_seqs = F.one_hot(bt,K).float()
199
+ self.init_seqs = self.x_seqs.clone()
200
+
201
+ ##########################################
202
+ # Losses
203
+ ##########################################
204
+ def calc_sequence_loss(self, x_seqs, LM_losses={'CE_x_pLM': 1.0}, mask=None):
205
+ """
206
+ Calculate pLM (LM output probabilities) based on mask-1-out over all positions.
207
+ Calculate seq_losses and combine according to weights in LM_losses.
208
+ Args:
209
+ x_seqs (torch.float32): [B, L, K]
210
+ Returns:
211
+ LM_loss (torch.float32): [B]
212
+ LM_out_logprobs (torch.float32): [B, L, K]
213
+ logging_dict: {other_metrics: torch.float32 [B]}
214
+ """
215
+ B, L, K = x_seqs.shape
216
+ if mask is None:
217
+ mask = torch.ones(B, L, 1, device=self.device).bool()
218
+ n = assert_valid_mask(mask, x_seqs)
219
+
220
+ LM_out_logprobs = lm_marginal(self.LM, x_seqs, mask=mask)
221
+
222
+ # For loss calculations, only calculate based on the portion in `mask`.
223
+ x_seqs_masked = x_seqs.masked_select(mask).reshape(B, n, K)
224
+ losses = {
225
+ 'CE_x_pLM': -(x_seqs_masked * LM_out_logprobs).sum(-1).mean(-1),
226
+ }
227
+ LM_loss = sum(w * losses[name] for name, w in LM_losses.items())
228
+
229
+ return LM_loss, LM_out_logprobs, losses
230
+
231
+ def calc_ngram_loss(self, x_seqs, ngram_orders=[1,2,3,4]):
232
+ B = x_seqs.size(0)
233
+ ngram_loss = torch.zeros(B).to(x_seqs)
234
+ seqs = self.decode(x_seqs)
235
+ for order in ngram_orders:
236
+ for i in range(len(seqs)):
237
+ ngram_loss[i] += ngram_utils.compute_kl_div(seqs[i], order)
238
+ return ngram_loss # [B]
239
+
240
+ def calc_structure_loss(self, x_seq, temp_struct=None):
241
+ """Maps x_seq to the structure loss"""
242
+ B, L, K = x_seq.shape
243
+
244
+ res_preds = self.struct_model(x_seq)
245
+
246
+ if temp_struct is not None:
247
+ # Apply temp to res_preds output
248
+ for coord in COORDS4D_NAMES:
249
+ res_preds[f'{coord}_logits'] /= temp_struct
250
+ res_preds[f'p_{coord}'] = res_preds[f'{coord}_logits'].softmax(-1)
251
+
252
+ # Mask handling
253
+ mask = torch.ones_like(self.coords[:, 0, :, :]).bool()
254
+ target_pos_mask = self.target_contacts[None] # [1, L, L]
255
+ target_neg_mask = self.target_no_contacts[None] # [1, L, L]
256
+ target_pos_mask &= mask
257
+ target_neg_mask &= mask
258
+ # The below is also: self.valid_contacts & mask
259
+ target_all_mask = target_pos_mask | target_neg_mask
260
+
261
+ loss_dict = {}
262
+ targets = ['dist']
263
+ if not self.target_no_angles:
264
+ targets += COORDS_ANGLE_NAMES
265
+ for i, targetname in enumerate(targets):
266
+ target = self.coords[:, i, :, :]
267
+ if target.size(0) == 1:
268
+ res_preds_B = res_preds['p_dist'].shape[0]
269
+ target = target.repeat(res_preds_B, 1, 1)
270
+ else:
271
+ assert_shape(target, B, L, L)
272
+
273
+
274
+ loss_dict[f'{targetname}_cce'] = get_cce_loss(res_preds[f'p_{targetname}'], target, target_all_mask)
275
+ cce_pos = get_cce_loss(res_preds[f'p_{targetname}'], target, target_pos_mask)
276
+ cce_neg = get_cce_loss(res_preds[f'p_{targetname}'], target, target_neg_mask)
277
+ loss_dict[f'{targetname}_cce_norm_avg'] = (cce_pos + cce_neg) / 2
278
+ loss_dict[f'{targetname}_cce_pos'] = cce_pos
279
+
280
+ CHOSEN_LOSSES = ['dist_cce_pos'] # Worked best in our experiments
281
+ total_loss = sum(loss_dict[k] for k in CHOSEN_LOSSES)
282
+
283
+ return total_loss, loss_dict
284
+
285
+ def calc_total_loss(
286
+ self,
287
+ x,
288
+ mask,
289
+ LM_w,
290
+ struct_w,
291
+ ngram_w, ngram_orders,
292
+ temp_struct=None):
293
+ """
294
+ Easy one-stop-shop that calls out to all the implemented loss calculators,
295
+ aggregates logs, and weights total_loss.
296
+
297
+ As a refresher:
298
+ calc_sequence_loss:
299
+ calculates \sum log p(x_i|x_\i) for i in {set bits in mask}.
300
+ If mask is all ones, this is equal to Pseudo-log-likelihood.
301
+ NOTE: every position in mask is masked *separately*
302
+ Therefore, there will be multiple forward passes of the LM.
303
+ calc_structure_loss:
304
+ calculates p(y|x)
305
+ calc_ngram_loss:
306
+ calculates p_ngram(x)
307
+ """
308
+
309
+ if mask is not None:
310
+ assert_valid_mask(mask, x=x)
311
+ logs = {}
312
+ total_loss = torch.zeros(x.size(0)).to(x)
313
+ if LM_w:
314
+ lm_m_nlls, _, lm_loss_dict = self.calc_sequence_loss(x, mask=mask)
315
+ lm_m_nlls *= LM_w / self.L
316
+ total_loss += lm_m_nlls
317
+ logs['lm_loss'] = lm_m_nlls
318
+ logs.update(lm_loss_dict)
319
+ if struct_w:
320
+ struct_m_nlls, struct_loss_dict = self.calc_structure_loss(x, temp_struct=temp_struct)
321
+ struct_m_nlls *= struct_w
322
+ total_loss += struct_m_nlls
323
+ logs['struct_loss'] = struct_m_nlls
324
+ logs.update(struct_loss_dict)
325
+ if ngram_w:
326
+ ngram_m_nlls = self.calc_ngram_loss(x, ngram_orders=ngram_orders)
327
+ ngram_m_nlls *= ngram_w
328
+ total_loss += ngram_m_nlls
329
+ logs['ngram_loss'] = ngram_m_nlls
330
+
331
+ return total_loss, logs # [B], Dict[str:[B]]
332
+
333
+
334
+ ##########################################
335
+ # YAML Execution
336
+ ##########################################
337
+
338
+ def run_from_cfg(self):
339
+ """
340
+ Main run-loop for the Designer. Runs a relevant design procedure from the config.
341
+ """
342
+ logger.info(f'Designing sequence for task: {self.cfg.task}')
343
+
344
+ design_cfg = self.cfg.tasks[self.cfg.task]
345
+ if self.cfg.task == 'fixedbb':
346
+ stage_fixedbb(self, design_cfg)
347
+ elif self.cfg.task == 'free_generation':
348
+ stage_free_generation(self, **design_cfg)
349
+ else:
350
+ raise ValueError(f'Invalid task: {self.cfg.task}')
351
+
352
+ logger.info(f'Final designed sequences:')
353
+ for seq in self.decode(self.x_seqs):
354
+ logger.info(seq)
355
+ self.output_seq = self.decode(self.x_seqs)[0]
356
+
357
+ def init_schedulers_from_cfg(self, cfg: DictConfig):
358
+ """
359
+ Similar to init_schedulers, but expects a stage-specific DictConfig.
360
+ Populates self.schedulers with dotlist key.
361
+ (Simplifies later OmegaConf accesses)
362
+ Example:
363
+ cfg = {
364
+ num_iter: 10,
365
+ sub_cfg: {
366
+ my_sched: {
367
+ scheduler: CosineAnnealingLR
368
+ initial: 1e-2
369
+ T_max: 200}}}
370
+ Effect:
371
+ self.schedulers['sub_cfg.my_sched'] = <Scheduler>
372
+ """
373
+ def walk_cfg(d, parent_key='', sep='.'):
374
+ from collections.abc import MutableMapping
375
+ for k, v in d.items():
376
+ new_key = parent_key + sep + k if parent_key else k
377
+ yield (new_key, v)
378
+ if isinstance(v, MutableMapping):
379
+ yield from walk_cfg(v, new_key, sep=sep)
380
+
381
+ from typing import Optional, Dict, List, Any, Union
382
+ def is_sspec(maybe_sspec: Union[SchedulerSpec, Any]):
383
+ infer_from_key = (isinstance(maybe_sspec, DictConfig)
384
+ and maybe_sspec.get('scheduler', None) is not None)
385
+ # infer_from_type = OmegaConf.get_type(maybe_sspec) is SchedulerSpec
386
+ return infer_from_key
387
+
388
+ if not self.resuming_stage:
389
+ for name, maybe_sspec in walk_cfg(cfg, sep='.'):
390
+ if is_sspec(maybe_sspec):
391
+ assert not name in self.schedulers, f"Trying to re-register {name}"
392
+ self.schedulers[name] = to_scheduler(maybe_sspec)
393
+
394
+ def gen_step_cfg(self, cfg):
395
+ """
396
+ Replace schedulers in a cfg with step-specific values.
397
+ Make sure to call `init_schedulers_from_cfg(cfg)` first!
398
+ Uses Designer state:
399
+ - self.schedulers
400
+ """
401
+ step_cfg = cfg.copy()
402
+ for name, sched in self.schedulers.items():
403
+ if OmegaConf.select(step_cfg, name) is not None:
404
+ OmegaConf.update(step_cfg, name, sched(), merge=False)
405
+ return step_cfg
406
+
407
+ def stepper(self, iterable, update_schedulers=True, cfg=None):
408
+ self.init_schedulers_from_cfg(cfg)
409
+
410
+ for local_step in iterable:
411
+ yield local_step, self.gen_step_cfg(cfg)
412
+
413
+ if update_schedulers:
414
+ self.update_schedulers()
415
+
416
+ def update_schedulers(self):
417
+ for s in self.schedulers.values():
418
+ try:
419
+ s.step()
420
+ except AttributeError:
421
+ pass # constants: dummy lambda
422
+
423
+ def init_schedulers(self, **kwargs):
424
+ """
425
+ Schedulers (always stage-specific) are initialized according to SchedulerSpec,
426
+ and depend on global_step
427
+ Optionally wrapping an optimizer class with single param group.
428
+ Stores the schedulers in self._schedulers
429
+ Returns:
430
+ functions which return the current value for each
431
+ """
432
+ set_scheduler_repo(self.cfg.get('schedulers', {}))
433
+ for name, sspec in kwargs.items():
434
+ assert not name in self.schedulers, f"Trying to re-register {name}"
435
+ self.schedulers[name] = to_scheduler(sspec)
436
+ assert sys.version_info >= (3, 6), "py>=3.6 preserve kwarg and dict order see PEP468"
437
+ return [self.schedulers[name] for name in kwargs]
438
+
439
+
440
+ @hydra.main(config_path="conf/", config_name="config")
441
+ def main(cfg: DictConfig) -> None:
442
+ args_no_spaces = [arg.replace(" ", "") for arg in sys.argv[1:]]
443
+ logger.info(f"Running with args: {' '.join(args_no_spaces)}")
444
+
445
+ pdb_fn = cfg.pdb_fn
446
+ logger.info(f'Starting to optimize seq for {pdb_fn}')
447
+
448
+ start_time = time.time()
449
+ des = Designer(cfg, pdb_fn)
450
+
451
+ des.run_from_cfg()
452
+ logger.info("finished after %s hours", (time.time() - start_time) / 3600)
453
+
454
+
455
+ if __name__ == "__main__":
456
+ main() # noqa pylint: disable=no-value-for-parameter
weight/esm-main/examples/lm-design/utils/fixedbb.py ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ import logging
7
+
8
+ import torch
9
+ import torch.nn.functional as F
10
+ from torch.distributions import Bernoulli, OneHotCategorical
11
+ from tqdm import tqdm
12
+
13
+
14
+ logger = logging.getLogger(__name__)
15
+
16
+
17
+ @torch.no_grad()
18
+ def stage_fixedbb(self, cfg, disable_tqdm=False):
19
+ """Metropolis-Hastings sampling with uniform proposal and energy-based acceptance."""
20
+ B, L, K = self.x_seqs.shape
21
+
22
+ # import ipdb; ipdb.set_trace()
23
+
24
+ itr = self.stepper(range(cfg.num_iter), cfg=cfg)
25
+ itr = tqdm(itr, total=cfg.num_iter, disable=disable_tqdm)
26
+ for step, s_cfg in itr:
27
+ x = self.x_seqs
28
+ a_cfg = s_cfg.accept_reject
29
+
30
+ ##############################
31
+ # Proposal
32
+ ##############################
33
+ # Decide which position to mutate == {i}.
34
+ # mask 1 place
35
+ mask = torch.zeros((B, L, 1), dtype=torch.bool).to(x) # [B,L,1]
36
+ mask[:, torch.randint(0, L, (B,))] = True # [B,L,1]
37
+ mask = mask.bool()
38
+
39
+ # Uniform proposal distribution.
40
+ log_p_x_i = torch.full((B, K), fill_value=-float("inf")).to(x) # [B, K]
41
+ log_p_x_i[..., self.vocab_mask_AA] = 0 # [B, K]
42
+ p_x_i = log_p_x_i.softmax(-1)
43
+ xp_i = OneHotCategorical(probs=p_x_i).sample()
44
+ xp = x.masked_scatter(mask, xp_i) # [B,L,K]
45
+
46
+ ##############################
47
+ # Accept / reject
48
+ ##############################
49
+ # log A(x',x) = log P(x') - log P(x))
50
+ # for current input x, proposal x', target distribution P and symmetric proposal.
51
+ log_P_x = self.calc_total_loss(x, mask, **a_cfg.energy_cfg)[0] # [B]
52
+ log_P_xp = self.calc_total_loss(xp, mask, **a_cfg.energy_cfg)[0] # [B]
53
+ log_A_xp_x = (-log_P_xp - -log_P_x) / a_cfg.temperature # [B]
54
+ A_xp_x = (log_A_xp_x).exp().clamp(0, 1) # [B]
55
+ A_bools = Bernoulli(A_xp_x).sample().bool() # [B]
56
+ self.x_seqs = torch.where(A_bools[:, None, None], xp, x) # [B,L,K]
weight/esm-main/examples/lm-design/utils/free_generation.py ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ from pathlib import Path
7
+ from typing import List, Optional, Dict
8
+ import torch
9
+ import tree
10
+ from omegaconf import DictConfig
11
+
12
+ from utils.scheduler import SchedulerSpec
13
+ from utils.tensor import assert_shape
14
+ import torch.nn.functional as F
15
+ from torch.distributions.categorical import Categorical
16
+ from utils.constants import COORDS4D_NAMES
17
+ from tqdm.auto import tqdm
18
+
19
+ from utils.fixedbb import stage_fixedbb
20
+
21
+
22
+ def stage_free_generation(
23
+ designer,
24
+ num_iter: int,
25
+ resample_y_every: int,
26
+ stage_fixedbb_args: Optional[DictConfig] = None,
27
+ resample_y_temp: SchedulerSpec = 1.0,
28
+ ):
29
+ assert resample_y_every < num_iter, \
30
+ "resample_y_every must be smaller than num_iter, {} {}" \
31
+ .format(resample_y_every, num_iter)
32
+
33
+ _T_resample_y_temp = designer.init_schedulers(resample_y_temp=resample_y_temp)[0]
34
+
35
+ def resample_y():
36
+ x_seq = designer.x_seqs
37
+ struct_preds = designer.struct_model(x_seq)
38
+
39
+ def sample_logits(preds, logits_name):
40
+ logits = preds[logits_name]
41
+ logits /= _T_resample_y_temp()
42
+
43
+ # Alter preds from logits that were changed by temp (for logging after)
44
+ distangle_key_name = logits_name.replace('_logits', '')
45
+ preds[f'p_{distangle_key_name}'] = logits.softmax(-1)
46
+ preds[logits_name] = logits
47
+
48
+ sampled_map = Categorical(logits=logits).sample()
49
+ return sampled_map
50
+
51
+ # sample structure (dist and angles) bins from logits
52
+ sampled_dist_and_angles = []
53
+ for coord_name in COORDS4D_NAMES:
54
+ sampled = sample_logits(struct_preds, f'{coord_name}_logits')
55
+ sampled_dist_and_angles.append(sampled)
56
+ sampled_dist_and_angles = torch.stack(sampled_dist_and_angles, dim=1)
57
+
58
+ # Logits B x L x L x K; first 3 dims are treated as batch dims:
59
+ set_target_structure(designer, sampled_dist_and_angles)
60
+
61
+ curr_step = 0
62
+ pbar = tqdm(total=num_iter, desc='stage_hallucination_joint_mh')
63
+ while curr_step < num_iter:
64
+ resample_y()
65
+
66
+ # do resample_y_every steps of gibbs p(seq|struct) sampling
67
+ num_iter_mh = resample_y_every
68
+ stage_fixedbb_args['num_iter'] = num_iter_mh
69
+ stage_fixedbb(designer, stage_fixedbb_args, disable_tqdm=True)
70
+ # Set this flag to true so inner schedulers at stage_fixedbb will keep state between calls
71
+ designer.resuming_stage = True
72
+ curr_step += num_iter_mh
73
+ pbar.update(num_iter_mh)
74
+
75
+ def set_target_structure(designer, sampled_dist_and_angles):
76
+ """
77
+ Set the given sampled contacts as the target structure in designer. This allows designing
78
+ a sequence for that structure later.
79
+ """
80
+
81
+ assert sampled_dist_and_angles.shape[0] == 1, "Only single-batch supported for now"
82
+ if hasattr(designer, 'coords'):
83
+ assert designer.coords.shape == sampled_dist_and_angles.shape
84
+
85
+ # Coords is [B=1, 4, L, L]
86
+ designer.coords = sampled_dist_and_angles
87
+
88
+ cutoff_bin_max = designer.pdb_loader_params['contact_bin_cutoff'][1]
89
+ # Use resnet predictons to determine the
90
+ designer.target_contacts = (designer.coords[:, 0] <= cutoff_bin_max).squeeze(0)
91
+
92
+ designer.target_no_contacts = ~designer.target_contacts
93
+ # TEMP; assume Batchdim==1 (also for gibbs).
94
+ assert_shape(designer.target_contacts, designer.L, designer.L)
weight/esm-main/examples/lm-design/utils/masking.py ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ from typing import Union
7
+
8
+ import torch
9
+ import torch.nn.functional as F
10
+ from .tensor import (
11
+ assert_shape,
12
+ is_1hot_tensor,
13
+ )
14
+
15
+
16
+ def apply_mask(x, mask, mask_tok_idx):
17
+ """
18
+ Args:
19
+ x (torch.float32): [*, K]
20
+ mask (torch.float32): [*, 1]
21
+ mask_tok_idx (int): vocab index for mask token
22
+ Returns:
23
+ x_masked (torch.float32): [*, K] = x,
24
+ with mask_tok_idx inserted, where mask == 1.
25
+ """
26
+ assert is_1hot_tensor(x)
27
+ K = x.size(-1)
28
+ x_masked = x.detach().clone()
29
+ x_masked[mask.squeeze(-1)] = F.one_hot(torch.tensor(mask_tok_idx), K).to(x)
30
+ return x_masked
31
+
32
+
33
+ def assert_valid_mask(mask, x=None):
34
+ """
35
+ Utility that checks if a mask is [B, L, 1], given
36
+ an optional tensor the mask might apply to, of size [B, L, K]
37
+ This utility also returns the number of set bits in the mask, in the L dim == n.
38
+ n is useful to know, because:
39
+ x_masked = x.masked_select(mask)
40
+ x: [B, L, K]
41
+ mask: [B, L, 1]
42
+ x_masked: [B, n, K]
43
+ """
44
+ if x is not None:
45
+ assert x.dtype == torch.float, x.dtype
46
+ assert x.ndim == 3, x.ndim
47
+ assert mask.shape[:2] == x.shape[:2], (mask.shape[:2], x.shape[:2])
48
+ assert mask.dtype == torch.bool
49
+ num_masks_per_b = mask.sum(1)
50
+ assert (num_masks_per_b[0] == num_masks_per_b).all()
51
+ return num_masks_per_b[0]
52
+
53
+
54
+ def masked_insert_from_tokens(x, insert_mask, insert_toks):
55
+ """
56
+ [B, L, K] -> [B, I, L, K]
57
+ x contains n masks per row.
58
+ I is a new inserted dimension made
59
+ by duplicating each [L, K] seq in [B] [I] times.
60
+ Inserted tokens come from [B, I, n] insert_toks tensor.
61
+ If insert_toks is [I, n], will broadcast.
62
+ This is most helpful for gibbs:
63
+ producing proposal seqs over AA_vocab.
64
+ len(AA_vocab)**n for n-site gibbs.
65
+ Args:
66
+ x (torch.float32): [B, L, K]
67
+ insert_mask (torch.bool): [B, L, 1]
68
+ indicating which positions to insert tokens in newly created I dim.
69
+ insert_toks (torch.float32): [(B?), I, mask_count=n]
70
+ Returns:
71
+ x_filled (torch.float32): [B, I, L, K]
72
+ """
73
+ B, L, K = assert_shape(x, -1, -1, -1)
74
+ n = assert_valid_mask(insert_mask)
75
+ if insert_toks.dim() == 2:
76
+ I = assert_shape(insert_toks, -1, n) # [I, n]
77
+ insert_toks = insert_toks.unsqueeze(0).repeat(B, 1, 1) # [B, I, n]
78
+ else:
79
+ I = assert_shape(insert_toks, B, -1, n) # [B, I, n]
80
+
81
+ # 1hot -> dense (remove the need for these.)
82
+ x_idx = x.argmax(-1) # [B, L]
83
+ insert_mask = insert_mask.squeeze(-1) # [B, L]
84
+
85
+ # Open up insert dim
86
+ x_idx = x_idx.unsqueeze(1).repeat(1, I, 1) # [B, I, L]
87
+ insert_mask = insert_mask.unsqueeze(1).repeat(1, I, 1) # [B, I, L]
88
+ x_idx[insert_mask] = insert_toks.flatten() # [B, I, n]
89
+
90
+ # dense -> 1hot
91
+ x = F.one_hot(x_idx, K).to(x) # [B, I, L, K]
92
+ return x
weight/esm-main/examples/lm-design/utils/misc.py ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+ import math
6
+ import sys
7
+ from contextlib import AbstractContextManager, contextmanager
8
+ import inspect
9
+ import logging
10
+ import os
11
+ from pathlib import Path
12
+ import pickle
13
+ import socket
14
+ import time
15
+
16
+ logger = logging.getLogger(__name__)
17
+
18
+
19
+
20
+ class TimerContext(AbstractContextManager):
21
+ """
22
+ Used to measure time and log if time threshold passed.
23
+ Usage:
24
+ with TimerContext(tag="disk usage", theshold=10.0) as tc:
25
+ some_long_operation() # will log warning in case this takes more than 10 seconds
26
+ print(tc.elapsed) # elapsed data-member contains elapsed time in secs
27
+ """
28
+ def __init__(self, tag="N/A", threshold=None):
29
+ super().__init__()
30
+ self.tag = tag
31
+ self.threshold = threshold
32
+
33
+ def __enter__(self):
34
+ self.start = time.time()
35
+ return self
36
+
37
+ def __exit__(self, exc_type, exc_val, exc_tb):
38
+ self.elapsed = (time.time() - self.start)
39
+ self.elapsed_rounded = round(self.elapsed, 2)
40
+ if self.threshold is not None and self.elapsed > self.threshold:
41
+ logger.warning(f"Timer passed threshold: {self.tag} -- {self.elapsed_rounded}")
weight/esm-main/examples/lm-design/utils/ngram.py ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+ #
6
+ from collections import Counter
7
+ from pathlib import Path
8
+ import pickle
9
+ import random
10
+ import time
11
+
12
+ from nltk import ngrams
13
+ import numpy as np
14
+
15
+
16
+ # Code for loading constants for preprocessing
17
+ seq_encode = ['L', 'A', 'G', 'V', 'S', 'E', 'R', 'T', 'I', 'D', 'P', 'K', 'Q', 'N', 'F', 'Y', 'M', 'H', 'W', 'C']
18
+ BASE = Path('./utils/ngram_stats/')
19
+ ngram_list = []
20
+ for fn in ["monogram_seg.p", "bigram_seg.p", "trigram_seg.p", "quadgram_seg.p"]:
21
+ with open(BASE / fn, "rb") as f:
22
+ ngram_list.append(pickle.load(f))
23
+
24
+ # Recompute ngram frequency based off the valid sequences used for design
25
+ for i, ngram_dict in enumerate(ngram_list):
26
+ idx_dict = {}
27
+ for k, v in ngram_dict.items():
28
+ ids = []
29
+ error = False
30
+
31
+ for ki in k:
32
+ if ki not in seq_encode:
33
+ error = True
34
+ break
35
+ id = seq_encode.index(ki)
36
+ ids.append(id)
37
+
38
+ if error:
39
+ continue
40
+
41
+ ids = tuple(ids)
42
+ idx_dict[ids] = v
43
+
44
+ total = sum(idx_dict.values())
45
+ # Min value for ngram is 1e-5
46
+ idx_dict = {k: max(v / total, 1e-5) for k, v in idx_dict.items()}
47
+
48
+ ngram_list[i] = idx_dict
49
+
50
+ def encode(seq):
51
+ if isinstance(seq, np.ndarray):
52
+ return seq # already encoded
53
+ elif isinstance(seq, str):
54
+ return np.array([seq_encode.index(AA) for AA in seq])
55
+ else:
56
+ raise ValueError(f'Unknown seq type {seq}')
57
+
58
+
59
+ def compute_kl_div(seq, order):
60
+ # Inputs Args:
61
+ # Seq: N dimensional numpy array consisting of numbers between 0 and 19 (inclusive)
62
+ # Order: integer for order of ngram used (should be between 0 and 3 for now)
63
+ order_dict = ngram_list[order-1]
64
+ seq = encode(seq) # this is not the problem.
65
+
66
+ # Compute ngram frequency rate for the input sequence
67
+ tup_dict = Counter(ngrams(seq,n=order))
68
+ total = sum(tup_dict.values())
69
+ tup_dict = {k: v / total for k, v in tup_dict.items()}
70
+
71
+ p = np.array(list(tup_dict.values())) # observed probabilities of ngrams
72
+ q = np.array([order_dict.get(k, 1e-5) for k in tup_dict.keys()]) # learned ngram probabilities
73
+ return np.sum(p * np.log(p/q))
weight/esm-main/examples/lm-design/utils/pdb_loader.py ADDED
@@ -0,0 +1,321 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+ #
6
+ # Portions of this file were adapted from the open source code
7
+ # https://github.com/RosettaCommons/trRosetta2/tree/main
8
+ # Modifications were made to loader() and get_coords6d() functions:
9
+ # 1. addition of `set_diagonal` flag.
10
+ # 2. addition of `allow_missing_residue_coords` flag.
11
+ # Original License information below.
12
+
13
+ # MIT License
14
+
15
+ # Copyright (c) 2021 Ivan Anishchenko, Minkyung Baek, Naozumi Hiranuma, Ian Humphrey
16
+
17
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
18
+ # of this software and associated documentation files (the "Software"), to deal
19
+ # in the Software without restriction, including without limitation the rights
20
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
21
+ # copies of the Software, and to permit persons to whom the Software is
22
+ # furnished to do so, subject to the following conditions:
23
+
24
+ # The above copyright notice and this permission notice shall be included in all
25
+ # copies or substantial portions of the Software.
26
+
27
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
28
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
29
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
30
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
31
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
32
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
33
+ # SOFTWARE.
34
+
35
+ import numpy as np
36
+ import scipy
37
+ import scipy.spatial
38
+ import logging
39
+
40
+ logger = logging.getLogger(__name__)
41
+
42
+
43
+ PDB_LOADER_PARAMS_DEFAULT = { # trRosetta-v2
44
+ "DMIN" : 2.0,
45
+ "DMAX" : 20.0,
46
+ "DBINS" : 36,
47
+ "ABINS" : 36,
48
+ "WMIN" : 0.8,
49
+ "LMIN" : 150,
50
+ "LMAX" : 400,
51
+ "EPOCHS" : 10,
52
+ "NCPU" : 8,
53
+ "SLICE" : "CONT",
54
+ "contact_bin_cutoff": (0, 11) # both inclusive
55
+ }
56
+
57
+
58
+ # calculate dihedral angles defined by 4 sets of points
59
+ def get_dihedrals(a, b, c, d):
60
+
61
+ b0 = -1.0*(b - a)
62
+ b1 = c - b
63
+ b2 = d - c
64
+
65
+ b1 /= np.linalg.norm(b1, axis=-1)[:,None]
66
+
67
+ v = b0 - np.sum(b0*b1, axis=-1)[:,None]*b1
68
+ w = b2 - np.sum(b2*b1, axis=-1)[:,None]*b1
69
+
70
+ x = np.sum(v*w, axis=-1)
71
+ y = np.sum(np.cross(b1, v)*w, axis=-1)
72
+
73
+ return np.arctan2(y, x)
74
+
75
+
76
+ # calculate planar angles defined by 3 sets of points
77
+ def get_angles(a, b, c):
78
+
79
+ v = a - b
80
+ v /= np.linalg.norm(v, axis=-1)[:,None]
81
+
82
+ w = c - b
83
+ w /= np.linalg.norm(w, axis=-1)[:,None]
84
+
85
+ x = np.sum(v*w, axis=1)
86
+
87
+ return np.arccos(x)
88
+
89
+
90
+ def nonans(arr):
91
+ return not (arr != arr).any()
92
+
93
+
94
+ # get 6d coordinates from x,y,z coords of N,Ca,C atoms
95
+ def get_coords6d(xyz, dmax, allow_missing_residue_coords=False):
96
+
97
+ nres = xyz.shape[1]
98
+ # three anchor atoms
99
+ N = xyz[0]
100
+ Ca = xyz[1]
101
+ C = xyz[2]
102
+ if not nonans(xyz):
103
+ assert allow_missing_residue_coords, "Missing residue coordinates"
104
+ logger.warning("PDB xyz contains NaNs!! Loading anyway...")
105
+ # recreate Cb given N,Ca,C
106
+ b = Ca - N
107
+ c = C - Ca
108
+ a = np.cross(b, c)
109
+ Cb = -0.58273431*a + 0.56802827*b - 0.54067466*c + Ca
110
+
111
+ # fast neighbors search to collect all
112
+ # Cb-Cb pairs within dmax
113
+ kdCb = scipy.spatial.cKDTree(Cb)
114
+ indices = kdCb.query_ball_tree(kdCb, dmax)
115
+
116
+ # indices of contacting residues
117
+ idx = np.array([[i,j] for i in range(len(indices)) for j in indices[i] if i != j]).T
118
+ idx0 = idx[0]
119
+ idx1 = idx[1]
120
+
121
+ # Cb-Cb distance matrix
122
+ dist6d = np.full((nres, nres), 999.9)
123
+ dist6d[idx0,idx1] = np.linalg.norm(Cb[idx1]-Cb[idx0], axis=-1)
124
+
125
+ # matrix of Ca-Cb-Cb-Ca dihedrals
126
+ omega6d = np.zeros((nres, nres))
127
+ omega6d[idx0,idx1] = get_dihedrals(Ca[idx0], Cb[idx0], Cb[idx1], Ca[idx1])
128
+
129
+ # matrix of polar coord theta
130
+ theta6d = np.zeros((nres, nres))
131
+ theta6d[idx0,idx1] = get_dihedrals(N[idx0], Ca[idx0], Cb[idx0], Cb[idx1])
132
+
133
+ # matrix of polar coord phi
134
+ phi6d = np.zeros((nres, nres))
135
+ phi6d[idx0,idx1] = get_angles(Ca[idx0], Cb[idx0], Cb[idx1])
136
+
137
+ if nonans(xyz):
138
+ # Set dist values to nan where there's no pdb 3d coordinates data
139
+ nan_residues = ((Cb != Cb).sum(-1) > 0)
140
+ nan_residues_mask = (nan_residues[None] | nan_residues[None].T)
141
+ dist6d[nan_residues_mask] = np.nan
142
+ omega6d[nan_residues_mask] = np.nan
143
+ theta6d[nan_residues_mask] = np.nan
144
+ phi6d[nan_residues_mask] = np.nan
145
+
146
+ return dist6d, omega6d, theta6d, phi6d
147
+
148
+
149
+ def parse_PDB(pdb_path, atoms=['N','CA','C'], chain=None, return_aligned_seq=False):
150
+ '''
151
+ input: pdb_path = PDB filename
152
+ atoms = atoms to extract (optional)
153
+ output: (length, atoms, coords=(x,y,z)), sequence
154
+ '''
155
+ xyz,seq,doubles,min_resn,max_resn = {},{},{},np.inf,-np.inf
156
+ with open(pdb_path,"rb") as f:
157
+ for line in f:
158
+ line = line.decode("utf-8","ignore").rstrip()
159
+
160
+ if line[:6] == "HETATM" and line[17:17+3] == "MSE":
161
+ line = line.replace("HETATM","ATOM ")
162
+ line = line.replace("MSE","MET")
163
+
164
+ if line[:4] == "ATOM":
165
+ ch = line[21:22]
166
+ if ch == chain or chain is None:
167
+ atom = line[12:12+4].strip()
168
+ resi = line[17:17+3]
169
+ resi_extended = line[16:17 + 3].strip()
170
+ resn = line[22:22+5].strip()
171
+ x,y,z = [float(line[i:(i+8)]) for i in [30,38,46]]
172
+
173
+ if resn[-1].isalpha(): resa,resn = resn[-1],int(resn[:-1])-1
174
+ else: resa,resn = "",int(resn)-1
175
+ if resn < min_resn: min_resn = resn
176
+ if resn > max_resn: max_resn = resn
177
+ if resn not in xyz: xyz[resn] = {}
178
+ if resa not in xyz[resn]: xyz[resn][resa] = {}
179
+ if resn not in seq: seq[resn] = {}
180
+ if resa not in seq[resn]:
181
+ seq[resn][resa] = resi
182
+ elif seq[resn][resa] != resi_extended:
183
+ # doubles mark locations in the pdb file where multi residue entries are
184
+ # present. There's a known bug in TmAlign binary that doesn't read / skip
185
+ # these entries, so we mark them to create a sequence that is aligned with
186
+ # gap tokens in such locations.
187
+ doubles[resn] = True
188
+
189
+ if atom not in xyz[resn][resa]:
190
+ xyz[resn][resa][atom] = np.array([x,y,z])
191
+
192
+ # convert to numpy arrays, fill in missing values
193
+ seq_,xyz_,aligned_seq_ = [],[],[]
194
+ for resn in range(min_resn,max_resn+1):
195
+ if resn in seq:
196
+ for k in sorted(seq[resn]):
197
+ seq_.append(aa_3_N.get(seq[resn][k],20))
198
+ aligned_seq_.append(seq_[-1]) if resn not in doubles else aligned_seq_.append(20)
199
+ else:
200
+ seq_.append(20)
201
+ if resn in xyz:
202
+ for k in sorted(xyz[resn]):
203
+ for atom in atoms:
204
+ if atom in xyz[resn][k]: xyz_.append(xyz[resn][k][atom])
205
+ else: xyz_.append(np.full(3,np.nan))
206
+ else:
207
+ for atom in atoms: xyz_.append(np.full(3,np.nan))
208
+
209
+ res = [np.array(xyz_).reshape(-1,len(atoms),3), N_to_AA(np.array(seq_))]
210
+ if return_aligned_seq:
211
+ res += [N_to_AA(np.array(aligned_seq_))]
212
+ return res
213
+
214
+ def N_to_AA(x):
215
+ # [[0,1,2,3]] -> ["ARND"]
216
+ x = np.array(x);
217
+ if x.ndim == 1: x = x[None]
218
+ return ["".join([aa_N_1.get(a,"-") for a in y]) for y in x]
219
+
220
+ alpha_1 = list("ARNDCQEGHILKMFPSTWYV-")
221
+ alpha_3 = ['ALA','ARG','ASN','ASP','CYS','GLN','GLU','GLY','HIS','ILE',
222
+ 'LEU','LYS','MET','PHE','PRO','SER','THR','TRP','TYR','VAL','GAP']
223
+
224
+ aa_3_N = {a:n for n,a in enumerate(alpha_3)}
225
+ aa_N_1 = {n:a for n,a in enumerate(alpha_1)}
226
+
227
+ def loader(pdb_path, params, chain=None, set_diagonal=False, allow_missing_residue_coords=False):
228
+ """
229
+ Args:
230
+ pdb_path: path to pdb file
231
+ params: dict with hyperparams
232
+ chain: <unused>
233
+ set_diagonal: sets diagonal to specific default values.
234
+ """
235
+ orig_xyz, seq = parse_PDB(pdb_path, atoms=['N','CA','C'], chain=None)
236
+ xyz = np.transpose(orig_xyz, (1,0,2))
237
+ idx = np.arange(xyz.shape[1])
238
+ # get 6D coords
239
+ d,o,t,p = get_coords6d(xyz, params['DMAX'], allow_missing_residue_coords)
240
+ no_angles = any([np.isnan(x).any() for x in [o,t,p]])
241
+
242
+ # bin 6D coords
243
+ if params['DMIN'] == 2.5:
244
+ dbins = np.linspace(params['DMIN'], params['DMAX'], params['DBINS'])
245
+ else:
246
+ dstep = (params['DMAX'] - params['DMIN']) / params['DBINS']
247
+ dbins = np.linspace(params['DMIN'] + dstep, params['DMAX'], params['DBINS'])
248
+
249
+ angle_step = 2.0 * np.pi / params['ABINS']
250
+ ab360 = np.linspace(-np.pi + angle_step, np.pi, params['ABINS'])
251
+ phi_last_bin = int(params['ABINS']/2)
252
+ if "PHI_BINS" in params:
253
+ phi_last_bin = params['PHI_BINS']
254
+ ab180 = np.linspace(angle_step, np.pi, phi_last_bin)
255
+
256
+ db = np.digitize(d, dbins).astype(np.uint8) # distance
257
+ ob = np.digitize(o, ab360).astype(np.uint8) # omega
258
+ tb = np.digitize(t, ab360).astype(np.uint8) # theta
259
+ pb = np.digitize(p, ab180).astype(np.uint8) # phi
260
+
261
+ # synchronize 'no contact' bins
262
+ ob[db == params['DBINS']] = params['ABINS']
263
+ tb[db == params['DBINS']] = params['ABINS']
264
+ pb[db == params['DBINS']] = phi_last_bin
265
+
266
+ if set_diagonal:
267
+ db[np.eye(db.shape[0]).astype(bool)] = 0
268
+ ob[np.eye(ob.shape[0]).astype(bool)] = int(params['ABINS']/2)
269
+ tb[np.eye(tb.shape[0]).astype(bool)] = int(params['ABINS']/2)
270
+ pb[np.eye(pb.shape[0]).astype(bool)] = 0
271
+
272
+ # (11/20/2021)
273
+ # Added masking of this diagonal as well.
274
+ # This matches the way contact predictions were trained.
275
+ d[np.eye(db.shape[0]).astype(bool)] = 0
276
+
277
+ # stack all coords together
278
+ if no_angles:
279
+ c6d = db[None, :] # only distogram, unsqueezed(0)
280
+ else:
281
+ c6d = np.stack([db,ob,tb,pb], axis=0)
282
+
283
+ # slice long chains
284
+ L = idx.shape[0]
285
+ start,stop,nres = 0,L,L
286
+ sel = np.arange(0, L)
287
+ if L > params['LMAX']:
288
+
289
+ if params['SLICE'] == 'CONT':
290
+ # slice continuously
291
+ nres = np.random.randint(params['LMIN'], params['LMAX'])
292
+ logger.warning("Slicing long chain %s into %s residues", pdb_path, nres)
293
+ # nres = params['LMAX']
294
+ start = np.random.randint(L-nres+1)
295
+ # start = 0
296
+ stop = start + nres
297
+ sel = np.arange(start,stop)
298
+
299
+ if (idx[sel][1:]-idx[sel][:-1]==1).all(): #check if idx has no gaps
300
+ feed_dict = {
301
+ "idx" : idx[sel],
302
+ "idx_raw" : idx,
303
+ "coords6d" : c6d[:,sel,:][:,:,sel],
304
+ "sel" : sel,
305
+ "dist" : d[sel,:][:,sel],
306
+ "fullseq" : [seq[0]],
307
+ 'no_angles': no_angles,
308
+ 'xyz' : orig_xyz
309
+ }
310
+ else:
311
+ feed_dict = {
312
+ "idx" : idx[sel],
313
+ "idx_raw" : idx,
314
+ "coords6d" : np.zeros(1),
315
+ "sel" : sel,
316
+ "dist" : d[sel,:][:,sel],
317
+ "fullseq" : [seq[0]],
318
+ 'no_angles': no_angles,
319
+ 'xyz' : orig_xyz
320
+ }
321
+ return feed_dict
weight/esm-main/examples/lm-design/utils/sampling.py ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ from contextlib import contextmanager
7
+ import logging
8
+ import numpy as np
9
+ import random
10
+ from typing import Any, List, Optional, Union, Dict
11
+
12
+ import torch
13
+ import torch.nn.functional as F
14
+
15
+ from .tensor import (
16
+ assert_logprobs,
17
+ is_1hot_tensor,
18
+ )
19
+
20
+ logger = logging.getLogger(__name__)
21
+
22
+ """
23
+ Mental model:
24
+ 1. This file contains everything that enables + modifies sampling from distributions.
25
+ """
26
+
27
+ SeedDict = Dict[str, Any]
28
+ def get_rng_states() -> SeedDict:
29
+ """ Retrieves a dictionary of seeds for all rngs. """
30
+ rng_states = {
31
+ 'torch': torch.get_rng_state(),
32
+ 'torch.cuda': torch.cuda.get_rng_state(),
33
+ 'random': random.getstate(),
34
+ 'numpy': np.random.get_state(),
35
+ }
36
+ return rng_states
37
+
38
+
39
+ def set_rng_states(rng_state: SeedDict):
40
+ """ Sets seeds of all rngs based on a dictionary of rng states. """
41
+ torch.set_rng_state(rng_state['torch'])
42
+ torch.cuda.set_rng_state(rng_state['torch.cuda'])
43
+ random.setstate(rng_state['random'])
44
+ np.random.set_state(rng_state['numpy'])
45
+
46
+
47
+ def set_rng_seeds(seed: Union[SeedDict, int]):
48
+ """ Sets seeds of all rngs based on a single integer """
49
+ torch.manual_seed(seed)
50
+ torch.cuda.manual_seed(seed)
51
+ random.seed(seed)
52
+ np.random.seed(seed)
53
+
54
+
55
+ @contextmanager
56
+ def set_rng_seeds_context(seeds: Union[SeedDict, int], disable=False):
57
+ """ Context manager for temporarily setting seeds.
58
+ For example, can be used when random sampling to get
59
+ deterministic outputs for test cases. """
60
+ if disable:
61
+ yield
62
+ else:
63
+ rng_states = get_rng_states()
64
+ set_rng_seeds(seeds)
65
+ yield
66
+ set_rng_states(rng_states)
67
+
68
+
69
+ def top_p_filtering(logits, top_p=0.0, filter_value=-float('Inf')):
70
+ """
71
+ Filter a distribution of logits using nucleus (top-p) filtering
72
+ Args:
73
+ logits: prob distribution shape (vocabulary size)
74
+ top_p >0.0: keep the top tokens with cumulative probability >= top_p (nucleus filtering).
75
+ Nucleus filtering is described in Holtzman et al. (http://arxiv.org/abs/1904.09751)
76
+ Returns:
77
+ given logits with filter_value at low probabilities (not in top-p)
78
+ """
79
+ sorted_logits, sorted_indices = torch.sort(logits, dim=-1, descending=True)
80
+ cumulative_probs = torch.cumsum(F.softmax(sorted_logits, dim=-1), dim=-1)
81
+ assert (cumulative_probs[..., -1].round() == 1).all(), "Probabilities don't add up to one"
82
+
83
+ # Remove tokens with cumulative probability above the threshold
84
+ sorted_indices_to_remove = cumulative_probs > top_p
85
+ # Shift the indices to the right to keep also the first token above the threshold
86
+ sorted_indices_to_remove[..., 1:] = sorted_indices_to_remove[..., :-1].clone()
87
+ sorted_indices_to_remove[..., 0] = False
88
+ # Reorder the mask to locations before sorting and apply it to logits
89
+ sorted_indices_to_remove = sorted_indices_to_remove.gather(-1, sorted_indices.argsort(-1))
90
+ logits[sorted_indices_to_remove] = filter_value
91
+ return logits
92
+
93
+
94
+ def explore_ratio(probs, x_old, exploration_ratio):
95
+ """
96
+ Description:
97
+ Given:
98
+ 1. a tensor with arbitrary leading dimensions
99
+ and valid probabilities in the final dimension
100
+ 2. a tensor of same size, but 1-hot in the trailing dimension
101
+ apply "eps-force" to all of the distributions.
102
+ "eps-force" is a heuristic used in 2021 to prevent self-mutations.
103
+ It does two things:
104
+ 1. It bounds the probability of positions in `probs` that
105
+ are ==1 in `x_old` to be at most == `exploration_ratio`.
106
+ 2. If this caused a reduction in probability mass, redistribute
107
+ that reduction (`overage`) among the other positions via
108
+ __scaling__ the other positions multiplicatively.
109
+ This retains the proportionality of the other positions.
110
+ Args:
111
+ probs (torch.float32): [*, K]
112
+ x_old: 1 hot of previous values, to cap. [*, K]
113
+ Example:
114
+ Given:
115
+ probs: [0.8, 0.15, 0.05]
116
+ x_old: [1, 0, 0]
117
+ exploration_ratio = 0.6
118
+ Return:
119
+ [0.8-0.2, 0.15*2, 0.05*2] == [0.6, 0.3, 0.1]
120
+ """
121
+ assert probs.shape == x_old.shape, (probs.shape, x_old.shape)
122
+ assert is_1hot_tensor(x_old)
123
+ thresh = 1 - exploration_ratio
124
+
125
+ # Amount that x_old exceeded thresh, in all batch dims.
126
+ overage = ((probs * x_old).sum(-1, keepdim=True) - thresh).clamp(0) # [*]
127
+
128
+ # Push down old positions accoring to overage.
129
+ probs = probs - x_old * overage # [*, K]
130
+
131
+ # Scale up all other positions (probs_fresh) so that it sums to overage.
132
+ probs_fresh = probs * (1-x_old) + 1e-8 # [*, K]
133
+ probs = probs + probs_fresh * overage / probs_fresh.sum(-1, keepdim=True) # [*, K]
134
+
135
+ return probs
136
+
137
+
138
+ def modify_logits(
139
+ # Input:
140
+ logits,
141
+
142
+ # Settings:
143
+ x_old = None,
144
+ mask = None,
145
+ force_propose_new_tokens = None,
146
+ nucleus_sampling_rate = None,
147
+ epsilon_force_mutation_ratio = None,
148
+ epsilon_greedy_bypass = None,
149
+ temperature = None,
150
+ ):
151
+ """
152
+ General purpose modifier of logits/logprobs.
153
+ Args:
154
+ logits: [*, K] (potentially batched) tensor of distributions in final dim, K.
155
+ x_old: [*, K] optional one-hot tensor representing current values.
156
+ Some subsequent flags use this to promote sampling of new values.
157
+ mask: [K] Boolean tensor for final dimension.
158
+ Probability mass is only allowed where mask == True.
159
+ force_propose_new_tokens (bool): If true, don't allow any probability mass on returns logprobs where x_old == True.
160
+ nucleus_sampling_rate (float in range [0, 1]): Fraction of nucleus sampling to use.
161
+ epsilon_force_mutation_ratio (float in range [0, 1]): Fraction of eps-force to use.
162
+ epsilon_greedy_bypass (float in range [0, 1]): Fraction of epsilon greedy to use.
163
+ temperature (float): The temperature used for conversion of logits -> probs in Softmax operation.
164
+
165
+ Returns:
166
+ logprobs [*, K]. This is good for numerical precision issues, and is a bit nicer than logits.
167
+ """
168
+ # Ensure logprobs at the start
169
+ logprobs = logits.log_softmax(-1)
170
+ assert_logprobs(logprobs)
171
+ K = logprobs.size(-1)
172
+ if x_old is not None:
173
+ assert logprobs.shape == x_old.shape
174
+
175
+ # Handle optional specification of mask, which will clear some positions.
176
+ if mask is None:
177
+ mask = torch.ones(K, device=logprobs.device).bool()
178
+ logits = logprobs.masked_fill(~mask, -float('inf'))
179
+
180
+ # Do logprob-based modifications.
181
+ if force_propose_new_tokens:
182
+ logits = logits.masked_fill(x_old.bool(), -float('inf'))
183
+ if nucleus_sampling_rate is not None:
184
+ logits = top_p_filtering(logits=logits, top_p=nucleus_sampling_rate)
185
+
186
+ # Convert to probs for prob-based modifications.
187
+ probs = F.softmax(logits/temperature, dim=-1)
188
+
189
+ # Do prob-based modifications.
190
+ if epsilon_force_mutation_ratio is not None:
191
+ probs = explore_ratio(probs, x_old, epsilon_force_mutation_ratio)
192
+ if epsilon_greedy_bypass is not None and torch.rand(1) < epsilon_greedy_bypass: # do only for valid AA's?
193
+ probs = torch.ones_like(probs) / K
194
+
195
+ # 4. probs -> logits
196
+ # NOTE: This eps used to be way too high.
197
+ # Keep in mind that eps needs to be lower than 1e-32 for proper test case matching
198
+ # in some cases, when adding the global EPS.
199
+ log_probs = (probs + 1e-100).log()
200
+ logits = log_probs.masked_fill(~mask, -float('inf'))
201
+ return logits
weight/esm-main/examples/lm-design/utils/scheduler.py ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ from typing import Any, Optional, Union
7
+ from numbers import Number
8
+
9
+ import torch
10
+
11
+ SCHEDULER_REPOSITORY = {}
12
+
13
+ class Scheduler:
14
+ def __init__(
15
+ self, optimizer: Optional[Any], scheduler: str, initial: float, **schedulerspec
16
+ ):
17
+ if optimizer is None:
18
+ # Dummy optimizer to wrap with lr_scheduler
19
+ dummy = torch.tensor([], requires_grad=True)
20
+ optimizer = torch.optim.SGD([dummy], lr=initial)
21
+ self.dummy_optimizer = optimizer
22
+ else:
23
+ self.dummy_optimizer = None
24
+ self.name = scheduler
25
+ self._scheduler = getattr(torch.optim.lr_scheduler, self.name)(
26
+ optimizer, **schedulerspec
27
+ )
28
+ self.initial = initial
29
+
30
+ def step(self):
31
+ if self.dummy_optimizer:
32
+ self.dummy_optimizer.step() # Avoid UserWarning about step order
33
+ self._scheduler.step()
34
+
35
+ def __call__(self):
36
+ return self._scheduler.get_last_lr()[0]
37
+
38
+ SchedulerSpecDict = dict
39
+ SchedulerSpec = Union[float, str, SchedulerSpecDict]
40
+
41
+ class ConstantSchedule():
42
+ """
43
+ Schedule that returns a constant value, defined at init.
44
+ Pickle-able, as opposed to `lambda: value`.
45
+ """
46
+ def __init__(self, value: Number):
47
+ self.value = value
48
+ def __call__(self):
49
+ return self.value
50
+
51
+ def to_scheduler(sspec: SchedulerSpec):
52
+ """ Helper for initializing schedulers from config. """
53
+ if isinstance(sspec, str):
54
+ sspec = SCHEDULER_REPOSITORY[sspec]
55
+ optimizer = None
56
+ elif isinstance(sspec, tuple):
57
+ # There is an actual optimizer to wrap
58
+ optimizer, sspec = sspec
59
+ else:
60
+ optimizer = None
61
+ # Initialize real Scheduler, or dummy lambda
62
+ if isinstance(sspec, Number):
63
+ return ConstantSchedule(sspec)
64
+ else:
65
+ return Scheduler(optimizer, **sspec)
66
+
67
+ def set_scheduler_repo(repo: dict):
68
+ global SCHEDULER_REPOSITORY
69
+ SCHEDULER_REPOSITORY = repo
weight/esm-main/examples/lm-design/utils/struct_models.py ADDED
@@ -0,0 +1,128 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ import logging
7
+ from typing import Tuple, Dict
8
+ import torch
9
+ from torch import nn
10
+ from esm.data import Alphabet
11
+ from utils.tensor import add_eos_bos, is_1hot_tensor
12
+ from torch import nn
13
+ from torch.nn import functional as F
14
+ from abc import ABC, abstractmethod
15
+ import hydra
16
+ import os
17
+
18
+ from utils.linear_projection import LinearProjectionDistogramModel
19
+
20
+ logger = logging.getLogger(__name__) # Hydra configured
21
+
22
+ PDB_LOADER_PARAM_REGISTRY = {
23
+ 'LinearProjectionDist-1A': {
24
+ "DMIN": 2.5,
25
+ "DMAX": 20.0,
26
+ "DBINS": 17,
27
+ "ABINS": 17,
28
+ "PHI_BINS": 7,
29
+ "WMIN": 0.8,
30
+ "LMIN": 150,
31
+ "LMAX": 400,
32
+ "EPOCHS": 10,
33
+ "NCPU": 8,
34
+ "SLICE": "CONT",
35
+ "contact_bin_cutoff": (0, 5) # both inclusive
36
+ },
37
+ }
38
+
39
+
40
+ class WrapStruct(nn.Module, ABC):
41
+ """
42
+ Wraps structure models used by Designer.
43
+ Companion of WrapLM.
44
+ """
45
+ def __init__(self, model, vocab, has_eos=False):
46
+ super().__init__()
47
+ self.model = model
48
+ self.vocab = vocab
49
+ self.has_eos = has_eos
50
+
51
+ @abstractmethod
52
+ def forward(self, seq1h, pos_idx=None):
53
+ raise NotImplementedError
54
+
55
+ @property
56
+ def msa_based(self):
57
+ return False
58
+
59
+
60
+ def load(vocab: Alphabet) -> Tuple[nn.Module, Dict]:
61
+
62
+ pdb_loader_params = PDB_LOADER_PARAM_REGISTRY['LinearProjectionDist-1A']
63
+ model = load_model()
64
+ has_eos = True
65
+ return WrapStructModel(model, vocab, has_eos), pdb_loader_params
66
+
67
+
68
+ def load_model():
69
+ model_url_path = 'https://dl.fbaipublicfiles.com/fair-esm/examples/lm_design/linear_projection_model.pt'
70
+ local_model_path = hydra.utils.to_absolute_path('./linear_projection_model.pt')
71
+ if not os.path.exists(local_model_path):
72
+ logger.info(f'Downloading linear projection model from {model_url_path} to {local_model_path}')
73
+ os.system(f'wget {model_url_path} -O {local_model_path}')
74
+
75
+ # load model_path
76
+ state = torch.load(local_model_path, map_location='cpu')
77
+ # chkpt_args = state['cfg']
78
+ model = LinearProjectionDistogramModel()
79
+ model_state = state['model']
80
+ model.load_state_dict(model_state)
81
+ from esm.pretrained import esm2_t33_650M_UR50D
82
+ base_model, alphabet = esm2_t33_650M_UR50D()
83
+ model.base_model = base_model
84
+ return model
85
+
86
+
87
+ class WrapStructModel(WrapStruct):
88
+ def forward(self, seq1h, pos_idx=None):
89
+ assert is_1hot_tensor(seq1h)
90
+ B, L, K = seq1h.shape
91
+ # Prepend bos/cls only.
92
+ eos_idx = self.vocab.eos_idx if self.has_eos else None
93
+ seq1h = add_eos_bos(seq1h, bos_idx=self.vocab.cls_idx, eos_idx=eos_idx)
94
+ # In designer, all seqs have same length.
95
+ src_lengths = torch.full((B,), L + 1 + int(self.has_eos)).to(seq1h).long()
96
+
97
+ # In some cases, a vocab padded to 64 positions
98
+ # with dummy character was used.
99
+ # As a workaround, pad K dimensions up to 64 (embed_dim),
100
+ # then remove this portion after to get K tokens back.
101
+ embed_dim = self.model.base_model.embed_tokens.weight.size(0)
102
+ if embed_dim != K:
103
+ seq1h = torch.cat([
104
+ seq1h,
105
+ torch.zeros(B, L+1, embed_dim - K).to(seq1h)
106
+ ], -1)
107
+
108
+ # Call forward. bos/eos will be stripped inside.
109
+ out_dict = self.model(seq1h, src_lengths=src_lengths)
110
+ return self._process_output(out_dict)
111
+
112
+ @property
113
+ def lm(self):
114
+ return self.model.base_model
115
+
116
+
117
+ @staticmethod
118
+ def _process_output(out_dict):
119
+ for k in ('logits', 'theta_logits', 'phi_logits', 'omega_logits'):
120
+ out_dict[k] = out_dict[k].permute(0, 2, 3, 1).contiguous()
121
+
122
+ if 'logits' in out_dict:
123
+ out_dict['dist_logits'] = out_dict['logits']
124
+ del out_dict['logits']
125
+ for k in [k for k in out_dict if k.endswith('_logits')]:
126
+ targetname = k[:-len('_logits')]
127
+ out_dict[f'p_{targetname}'] = F.softmax(out_dict[k], -1)
128
+ return out_dict
weight/esm-main/examples/lm-design/utils/tensor.py ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+ #
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ from typing import List, Optional
7
+
8
+ import torch
9
+ import torch.nn.functional as F
10
+
11
+
12
+ def get_line_info():
13
+ from inspect import getframeinfo, currentframe
14
+
15
+ caller = getframeinfo(currentframe().f_back)
16
+ return f"{caller.filename}:{caller.lineno}"
17
+
18
+
19
+ def assert_shape(tensor, *shape_args):
20
+ # This only returns the unbound shapes
21
+ source = f'{get_line_info()}:'
22
+ assert len(tensor.shape) == len(shape_args), f"{source} should have {len(shape_args)} dimensions, actually has shape {tensor.shape}"
23
+ unbound = []
24
+ for i, ii in enumerate(shape_args):
25
+ if ii == -1:
26
+ unbound.append(tensor.shape[i])
27
+ else:
28
+ assert (
29
+ tensor.shape[i] == ii
30
+ ), f"{source} shape should be {shape_args}, actually {tensor.shape}"
31
+ if len(unbound) == 1:
32
+ return unbound[0]
33
+ return unbound
34
+
35
+
36
+ def assert_probs(tensor: torch.FloatTensor):
37
+ """ Assert that [*,K] input tensor is valid probs in final dim. """
38
+ assert is_prob_tensor(tensor)
39
+
40
+
41
+ def assert_logprobs(tensor: torch.FloatTensor):
42
+ """ Assert that [*,K] input tensor is valid logprobs in final dim. """
43
+ try:
44
+ assert_probs(tensor.exp())
45
+ except AssertionError:
46
+ raise AssertionError('Not logprobs, perhaps you have logits and need to apply F.log_softmax?')
47
+
48
+
49
+ def is_1hot_tensor(x1h):
50
+ return x1h.min() == 0 and x1h.max() == 1 and \
51
+ x1h.shape[-1] > 1 and (x1h.sum(-1) == 1).all()
52
+
53
+
54
+ def is_prob_tensor(p, atol=1e-3):
55
+ return (
56
+ p.min() >= 0
57
+ and p.max() <= 1
58
+ and torch.isclose(
59
+ p.sum(axis=-1), torch.ones_like(p.sum(axis=-1)), atol=atol).all()
60
+ ).item()
61
+
62
+
63
+ def add_eos_bos(
64
+ seq1h,
65
+ bos_idx: Optional[int] = None,
66
+ eos_idx: Optional[int] = None,
67
+ ):
68
+ """
69
+ Helper for (possibly) prepending bos/cls and appending eos tokens.
70
+ """
71
+ B, L, K = seq1h.shape
72
+
73
+ to_concat = []
74
+ if bos_idx is not None:
75
+ to_concat.append(F.one_hot(torch.full([B,1], bos_idx), K).to(seq1h))
76
+ to_concat.append(seq1h)
77
+ if eos_idx is not None:
78
+ to_concat.append(F.one_hot(torch.full([B,1], eos_idx), K).to(seq1h))
79
+ seq1h = torch.cat(to_concat, axis=1)
80
+
81
+ return seq1h
weight/esm-main/examples/protein-programming-language/README.md ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Protein programming language
2
+
3
+ This repository contains an implementation of the programming language described in the paper [A high-level programming language for generative protein design](https://www.biorxiv.org/content/10.1101/2022.12.21.521526v1).
4
+
5
+ ## Tutorial
6
+
7
+ We have provided a [tutorial notebook](tutorial.ipynb) describing the basics of writing programs and running optimization loops.
8
+ The notebook can be run in Colab:
9
+
10
+ [<img src="https://colab.research.google.com/assets/colab-badge.svg">](https://colab.research.google.com/github/facebookresearch/esm/blob/main/examples/protein-programming-language/tutorial.ipynb)
11
+
12
+ ## Design programs
13
+
14
+ We have also provided some example programs as described in our original paper.
15
+
16
+ | Design task | Figure in paper | Program file |
17
+ |:--------------------------------------------|:----------------|:----------------------------------------------------------------------------|
18
+ | Free hallucination | Figure 2A | [free_hallucination.py](programs/free_hallucination.py) |
19
+ | Fixed backbone design | Figure 2D | [fixed_backbone.py](programs/fixed_backbone.py) |
20
+ | Secondary structure design | Figure 2G | [secondary_structure.py](programs/secondary_structure.py) |
21
+ | Functional site scaffolding | Figure 2H | [functional_site_scaffolding.py](programs/functional_site_scaffolding.py) |
22
+ | Symmetric monomer design | Figure 3A | [symmetric_monomer.py](programs/symmetric_monomer.py) |
23
+ | Two-level symmetric<br>homo-oligomer design | Figure 4A | [symmetric_two_level_multimer.py](programs/symmetric_two_level_multimer.py) |
24
+ | Symmetric binding site<br>scaffolding | Figure 5A | [symmetric_binding.py](programs/symmetric_binding.py) |
25
+
weight/esm-main/examples/protein-programming-language/language/utilities.py ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ from io import StringIO
7
+ from typing import Union
8
+
9
+ import numpy as np
10
+ from biotite.structure import AtomArray
11
+ from biotite.structure.io.pdb import PDBFile
12
+
13
+
14
+ def pdb_file_to_atomarray(pdb_path: Union[str, StringIO]) -> AtomArray:
15
+ return PDBFile.read(pdb_path).get_structure(model=1)
16
+
17
+
18
+ def get_atomarray_in_residue_range(atoms: AtomArray, start: int, end: int) -> AtomArray:
19
+ return atoms[np.logical_and(atoms.res_id >= start, atoms.res_id < end)]
weight/esm-main/examples/protein-programming-language/programs/fixed_backbone.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ from copy import deepcopy
7
+
8
+ from biotite.database.rcsb import fetch
9
+ from biotite.structure import AtomArray
10
+
11
+ from language import (
12
+ FixedLengthSequenceSegment,
13
+ MaximizePLDDT,
14
+ MaximizePTM,
15
+ MinimizeCRmsd,
16
+ MinimizeDRmsd,
17
+ MinimizeSurfaceHydrophobics,
18
+ ProgramNode,
19
+ pdb_file_to_atomarray,
20
+ sequence_from_atomarray,
21
+ )
22
+
23
+
24
+ def fixed_backbone_6mrs() -> ProgramNode:
25
+ template_atoms: AtomArray = pdb_file_to_atomarray(fetch("6mrs", format="pdb"))
26
+
27
+ sequence_length = len(sequence_from_atomarray(template_atoms))
28
+ sequence = FixedLengthSequenceSegment(sequence_length)
29
+
30
+ return ProgramNode(
31
+ sequence_segment=sequence,
32
+ energy_function_terms=[
33
+ MaximizePTM(),
34
+ MaximizePLDDT(),
35
+ MinimizeSurfaceHydrophobics(),
36
+ MinimizeCRmsd(template=template_atoms, backbone_only=True),
37
+ MinimizeDRmsd(template=template_atoms, backbone_only=True),
38
+ ],
39
+ )
weight/esm-main/examples/protein-programming-language/programs/free_hallucination.py ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ from language import (
7
+ FixedLengthSequenceSegment,
8
+ MaximizePLDDT,
9
+ MaximizePTM,
10
+ MinimizeSurfaceHydrophobics,
11
+ ProgramNode,
12
+ )
13
+
14
+
15
+ def free_hallucination(sequence_length: int) -> ProgramNode:
16
+ sequence = FixedLengthSequenceSegment(sequence_length)
17
+ return ProgramNode(
18
+ sequence_segment=sequence,
19
+ energy_function_terms=[
20
+ MaximizePTM(),
21
+ MaximizePLDDT(),
22
+ MinimizeSurfaceHydrophobics(),
23
+ ],
24
+ )
weight/esm-main/examples/protein-programming-language/programs/functional_site_scaffolding.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ from copy import deepcopy
7
+
8
+ from biotite.database.rcsb import fetch
9
+ from biotite.structure import AtomArray
10
+
11
+ from language import (
12
+ ConstantSequenceSegment,
13
+ MaximizePLDDT,
14
+ MaximizePTM,
15
+ MaximizeSurfaceExposure,
16
+ MinimizeCRmsd,
17
+ MinimizeDRmsd,
18
+ MinimizeSurfaceHydrophobics,
19
+ ProgramNode,
20
+ VariableLengthSequenceSegment,
21
+ get_atomarray_in_residue_range,
22
+ pdb_file_to_atomarray,
23
+ sequence_from_atomarray,
24
+ )
25
+
26
+
27
+ def scaffolding_ace2() -> ProgramNode:
28
+ binding_site_atoms: AtomArray = pdb_file_to_atomarray(fetch("6m0j", format="pdb"))
29
+ binding_site_atoms = get_atomarray_in_residue_range(
30
+ binding_site_atoms, start=23, end=42
31
+ )
32
+ binding_site_sequence: str = sequence_from_atomarray(binding_site_atoms)
33
+ print(binding_site_sequence)
34
+
35
+ leader_amino_acid_sequence = VariableLengthSequenceSegment(50)
36
+ binding_site_sequence = ConstantSequenceSegment(binding_site_sequence)
37
+ follower_amino_acid_sequence = VariableLengthSequenceSegment(50)
38
+
39
+ return ProgramNode(
40
+ energy_function_terms=[
41
+ MaximizePTM(),
42
+ MaximizePLDDT(),
43
+ MinimizeSurfaceHydrophobics(),
44
+ ],
45
+ children=[
46
+ ProgramNode(sequence_segment=leader_amino_acid_sequence),
47
+ ProgramNode(
48
+ sequence_segment=binding_site_sequence,
49
+ energy_function_terms=[
50
+ MaximizeSurfaceExposure(),
51
+ MinimizeCRmsd(template=binding_site_atoms),
52
+ MinimizeDRmsd(template=binding_site_atoms),
53
+ ],
54
+ energy_function_weights=[1.0, 10.0, 10.0],
55
+ ),
56
+ ProgramNode(sequence_segment=follower_amino_acid_sequence),
57
+ ]
58
+ )
weight/esm-main/examples/protein-programming-language/programs/secondary_structure.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ from language import (
7
+ FixedLengthSequenceSegment,
8
+ MaximizePLDDT,
9
+ MaximizePTM,
10
+ MatchSecondaryStructure,
11
+ MinimizeSurfaceHydrophobics,
12
+ ProgramNode,
13
+ )
14
+
15
+
16
+ def secondary_structure(
17
+ node1_sse: str = 'a',
18
+ node2_sse: str = 'b',
19
+ ) -> ProgramNode:
20
+ """
21
+ Free hallucinates a protein while controlling the secondary structure
22
+ corresponding to different segments of the sequence.
23
+ Specify `'a'` for alpha helix, `'b'` for beta sheet, and `'c'` for coils.
24
+ """
25
+ node1 = ProgramNode(
26
+ sequence_segment=FixedLengthSequenceSegment(50),
27
+ energy_function_terms=[
28
+ MatchSecondaryStructure(node1_sse),
29
+ #TODO(brianhie): Add globularity here.
30
+ ]
31
+ )
32
+ node2 = ProgramNode(
33
+ sequence_segment=FixedLengthSequenceSegment(50),
34
+ energy_function_terms=[
35
+ MatchSecondaryStructure(node2_sse),
36
+ #TODO(brianhie): Add globularity here.
37
+ ]
38
+ )
39
+
40
+ return ProgramNode(
41
+ energy_function_terms=[
42
+ MaximizePTM(),
43
+ MaximizePLDDT(),
44
+ MinimizeSurfaceHydrophobics(),
45
+ ],
46
+ children=[node1, node2,],
47
+ )
weight/esm-main/examples/protein-programming-language/programs/symmetric_binding.py ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ from copy import deepcopy
7
+
8
+ from biotite.database.rcsb import fetch
9
+ from biotite.structure import AtomArray
10
+
11
+ from language import (
12
+ ConstantSequenceSegment,
13
+ FixedLengthSequenceSegment,
14
+ MaximizePLDDT,
15
+ MaximizePTM,
16
+ MaximizeSurfaceExposure,
17
+ MinimizeCRmsd,
18
+ MinimizeDRmsd,
19
+ MinimizeSurfaceHydrophobics,
20
+ ProgramNode,
21
+ SymmetryRing,
22
+ get_atomarray_in_residue_range,
23
+ pdb_file_to_atomarray,
24
+ sequence_from_atomarray,
25
+ )
26
+
27
+
28
+ def symmetric_binding_il10(num_binding_sites: int = 3) -> ProgramNode:
29
+ binding_site_atoms: AtomArray = pdb_file_to_atomarray(fetch("1y6k", format="pdb"))
30
+ binding_site_atoms = get_atomarray_in_residue_range(
31
+ binding_site_atoms, start=31, end=40
32
+ )
33
+ binding_site_sequence: str = sequence_from_atomarray(binding_site_atoms)
34
+
35
+ leader_amino_acid_sequence = FixedLengthSequenceSegment(45)
36
+ binding_site_sequence = ConstantSequenceSegment(binding_site_sequence)
37
+ follower_amino_acid_sequence = FixedLengthSequenceSegment(45)
38
+
39
+ def _binder_protomer_program() -> ProgramNode:
40
+ return ProgramNode(
41
+ children=[
42
+ ProgramNode(sequence_segment=leader_amino_acid_sequence),
43
+ ProgramNode(
44
+ sequence_segment=binding_site_sequence,
45
+ energy_function_terms=[
46
+ MaximizeSurfaceExposure(),
47
+ MinimizeCRmsd(template=binding_site_atoms),
48
+ MinimizeDRmsd(template=binding_site_atoms),
49
+ ],
50
+ energy_function_weights=[1.0, 10.0, 10.0],
51
+ ),
52
+ ProgramNode(sequence_segment=follower_amino_acid_sequence),
53
+ ]
54
+ )
55
+
56
+ return ProgramNode(
57
+ energy_function_terms=[
58
+ MaximizePTM(),
59
+ MaximizePLDDT(),
60
+ SymmetryRing(),
61
+ MinimizeSurfaceHydrophobics(),
62
+ ],
63
+ children=[_binder_protomer_program() for _ in range(num_binding_sites)],
64
+ )
weight/esm-main/examples/protein-programming-language/programs/symmetric_monomer.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ from language import (
7
+ FixedLengthSequenceSegment,
8
+ MaximizePLDDT,
9
+ MaximizePTM,
10
+ MinimizeSurfaceHydrophobics,
11
+ ProgramNode,
12
+ SymmetryRing,
13
+ )
14
+
15
+
16
+ def symmetric_monomer(num_protomers: int) -> ProgramNode:
17
+ protomer_sequence = FixedLengthSequenceSegment(50)
18
+ def _make_protomer_node():
19
+ # A new ProgramNode must be made for each new protomer,
20
+ # but the sequence can (and should) be shared.
21
+ return ProgramNode(
22
+ sequence_segment=protomer_sequence
23
+ )
24
+
25
+ return ProgramNode(
26
+ energy_function_terms=[
27
+ MaximizePTM(),
28
+ MaximizePLDDT(),
29
+ SymmetryRing(),
30
+ MinimizeSurfaceHydrophobics(),
31
+ ],
32
+ children=[
33
+ _make_protomer_node()
34
+ for _ in range(num_protomers)
35
+ ],
36
+ )
weight/esm-main/examples/protein-programming-language/programs/symmetric_two_level_multimer.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Copyright (c) Meta Platforms, Inc. and affiliates.
2
+
3
+ # This source code is licensed under the MIT license found in the
4
+ # LICENSE file in the root directory of this source tree.
5
+
6
+ from language import (
7
+ FixedLengthSequenceSegment,
8
+ MaximizePLDDT,
9
+ MaximizePTM,
10
+ MinimizeSurfaceHydrophobics,
11
+ ProgramNode,
12
+ SymmetryRing,
13
+ MaximizeGlobularity,
14
+ )
15
+
16
+
17
+ def symmetric_two_level_multimer(
18
+ num_chains: int,
19
+ num_protomers_per_chain: int,
20
+ protomer_sequence_length: int = 50,
21
+ ) -> ProgramNode:
22
+ """
23
+ Programs a homo-oligomeric protein with two-level symmetry.
24
+ The number of chains in the multimer is specified by `num_chains`.
25
+ A protomer sequence, with length `protomer_sequence_length`, is
26
+ repeated `num_protomers_per_chain` times.
27
+ For example, a two-chain protein with three protomers per chain
28
+ would repeat the protomer six times.
29
+ """
30
+
31
+ # The basic repeated unit.
32
+ protomer_sequence = FixedLengthSequenceSegment(protomer_sequence_length)
33
+ def _make_protomer_node():
34
+ return ProgramNode(sequence_segment=protomer_sequence)
35
+
36
+ # Protomers are symmetrically combined into a chain.
37
+ def _make_chain_node():
38
+ return ProgramNode(
39
+ energy_function_terms=[
40
+ SymmetryRing(),
41
+ MaximizeGlobularity(),
42
+ ],
43
+ energy_function_weights=[1., 0.05,],
44
+ children=[
45
+ _make_protomer_node()
46
+ for _ in range(num_protomers_per_chain)
47
+ ],
48
+ )
49
+
50
+ # Chains are symmetrically combined into a multimer.
51
+ return ProgramNode(
52
+ energy_function_terms=[
53
+ MaximizePTM(),
54
+ MaximizePLDDT(),
55
+ SymmetryRing(),
56
+ MinimizeSurfaceHydrophobics(),
57
+ ],
58
+ children=[
59
+ _make_chain_node()
60
+ for _ in range(num_chains)
61
+ ],
62
+ children_are_different_chains=True,
63
+ )
64
+
65
+
weight/esm-main/examples/protein-programming-language/tutorial.ipynb ADDED
@@ -0,0 +1,253 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "# High-level protein programming language tutorial\n",
8
+ "\n",
9
+ "In this notebook, we will walk through creating a simple program encoding a symmetric protein and running an optimization run.\n",
10
+ "At the end of the notebook, we will also link to examples of more complex design programs.\n",
11
+ "\n",
12
+ "We design proteins guided by [ESMFold](https://github.com/facebookresearch/esm#esmfold), so let's get set up by loading the ESMFold model."
13
+ ]
14
+ },
15
+ {
16
+ "cell_type": "code",
17
+ "execution_count": 1,
18
+ "metadata": {},
19
+ "outputs": [],
20
+ "source": [
21
+ "%load_ext autoreload\n",
22
+ "%autoreload 2"
23
+ ]
24
+ },
25
+ {
26
+ "cell_type": "code",
27
+ "execution_count": 2,
28
+ "metadata": {},
29
+ "outputs": [],
30
+ "source": [
31
+ "from language import EsmFoldv1\n",
32
+ "\n",
33
+ "folding_callback = EsmFoldv1()\n",
34
+ "folding_callback.load(device=\"cuda:0\")"
35
+ ]
36
+ },
37
+ {
38
+ "cell_type": "markdown",
39
+ "metadata": {},
40
+ "source": [
41
+ "Now let's write a program.\n",
42
+ "Our high-level programming language is organized by a *syntax tree*, where *leaf nodes* correspond to protein sequence segments. To begin, let's create a leaf node defined on a fixed-length sequence segment with 25 amino acid residues:"
43
+ ]
44
+ },
45
+ {
46
+ "cell_type": "code",
47
+ "execution_count": 3,
48
+ "metadata": {},
49
+ "outputs": [],
50
+ "source": [
51
+ "from language import FixedLengthSequenceSegment\n",
52
+ "from language import ProgramNode\n",
53
+ "\n",
54
+ "protomer = FixedLengthSequenceSegment(25)\n",
55
+ "def make_protomer_node():\n",
56
+ " return ProgramNode(sequence_segment=protomer)"
57
+ ]
58
+ },
59
+ {
60
+ "cell_type": "markdown",
61
+ "metadata": {},
62
+ "source": [
63
+ "For this tutorial, we will make a symmetric protein by repeating the above protomer sequence $N$ times, where $N$ is the desired rotational symmetry.\n",
64
+ "\n",
65
+ "Our programming language enables *internal nodes* in the syntax tree that let us hierarchically control multiple child nodes. To program a protein with 3-fold symmetry, let's create an internal node with $N = 3$ children."
66
+ ]
67
+ },
68
+ {
69
+ "cell_type": "code",
70
+ "execution_count": 4,
71
+ "metadata": {},
72
+ "outputs": [],
73
+ "source": [
74
+ "N = 3\n",
75
+ "_node = ProgramNode(\n",
76
+ " children=[make_protomer_node() for _ in range(N)],\n",
77
+ ")"
78
+ ]
79
+ },
80
+ {
81
+ "cell_type": "markdown",
82
+ "metadata": {},
83
+ "source": [
84
+ "To complete our programming language, we require a set of *constraints*.\n",
85
+ "An important set of constraints to apply to all proteins is to maximize ESMFold's confidence in the model structure, which we quantify by the pTM and mean pLDDT scores.\n",
86
+ "We also want to constrain the protein to have rotational symmetry.\n",
87
+ "\n",
88
+ "Adding those three constraints (on pTM, pLDDT, and symmetry) completes the simple program for a symmetric protein.\n",
89
+ "We can also weight different constraints differently; for this tutorial, we will double the weight on the symmetry constraint.\n",
90
+ "The constraints are compiled into a single *energy function* (right now, via a linear combination of constraint functions), which we will use to guide the optimization algorithm\n",
91
+ "\n",
92
+ "The code below will add the constraints and weights, compile the program, and print out a summary of the energy function."
93
+ ]
94
+ },
95
+ {
96
+ "cell_type": "code",
97
+ "execution_count": 6,
98
+ "metadata": {},
99
+ "outputs": [
100
+ {
101
+ "name": "stdout",
102
+ "output_type": "stream",
103
+ "text": [
104
+ "root:MaximizePTM = 1.0 * 0.84\n",
105
+ "root:MaximizePLDDT = 1.0 * 0.65\n",
106
+ "root:SymmetryRing = 1.0 * 0.57\n"
107
+ ]
108
+ }
109
+ ],
110
+ "source": [
111
+ "from language import MaximizePTM, MaximizePLDDT, SymmetryRing\n",
112
+ "\n",
113
+ "# Define the program.\n",
114
+ "program = ProgramNode(\n",
115
+ " energy_function_terms=[MaximizePTM(), MaximizePLDDT(), SymmetryRing()],\n",
116
+ " energy_function_weights=[1.0, 1.0, 1.0],\n",
117
+ " children=[make_protomer_node() for _ in range(N)],\n",
118
+ ")\n",
119
+ "\n",
120
+ "# Set up the program.\n",
121
+ "sequence, residue_indices = program.get_sequence_and_set_residue_index_ranges()\n",
122
+ "\n",
123
+ "# Compute and print the energy function.\n",
124
+ "energy_terms = program.get_energy_term_functions()\n",
125
+ "folding_output = folding_callback.fold(sequence, residue_indices)\n",
126
+ "for name, weight, energy_fn in energy_terms:\n",
127
+ " print(f\"{name} = {weight:.1f} * {energy_fn(folding_output):.2f}\")"
128
+ ]
129
+ },
130
+ {
131
+ "cell_type": "markdown",
132
+ "metadata": {},
133
+ "source": [
134
+ "We are now ready to use this program to guide an optimization loop to design a protein sequence and structure.\n",
135
+ "We currently perform simulated annealing of an MCMC optimization algorithm to do design.\n",
136
+ "The code below will set up the simulated annealing algorithm, including the relevant parameters, and run the optimization loop. "
137
+ ]
138
+ },
139
+ {
140
+ "cell_type": "code",
141
+ "execution_count": null,
142
+ "metadata": {},
143
+ "outputs": [
144
+ {
145
+ "data": {
146
+ "application/vnd.jupyter.widget-view+json": {
147
+ "model_id": "2883ee40821e4f5ca4f699b96fe837e2",
148
+ "version_major": 2,
149
+ "version_minor": 0
150
+ },
151
+ "text/plain": [
152
+ "Output()"
153
+ ]
154
+ },
155
+ "metadata": {},
156
+ "output_type": "display_data"
157
+ },
158
+ {
159
+ "data": {
160
+ "text/html": [
161
+ "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">/private/home/brianhie/protein-bert-model/examples/protein-programming-language/language/optimize.py:56: \n",
162
+ "RuntimeWarning: overflow encountered in exp\n",
163
+ " np.exp(energy_differential / temperature),\n",
164
+ "</pre>\n"
165
+ ],
166
+ "text/plain": [
167
+ "/private/home/brianhie/protein-bert-model/examples/protein-programming-language/language/optimize.py:56: \n",
168
+ "RuntimeWarning: overflow encountered in exp\n",
169
+ " np.exp(energy_differential / temperature),\n"
170
+ ]
171
+ },
172
+ "metadata": {},
173
+ "output_type": "display_data"
174
+ }
175
+ ],
176
+ "source": [
177
+ "from language import run_simulated_annealing\n",
178
+ "\n",
179
+ "optimized_program = run_simulated_annealing(\n",
180
+ " program=program,\n",
181
+ " initial_temperature=1.0,\n",
182
+ " annealing_rate=0.97,\n",
183
+ " total_num_steps=10_000,\n",
184
+ " folding_callback=folding_callback,\n",
185
+ " display_progress=True,\n",
186
+ ")\n",
187
+ "print(\"Final sequence = {}\".format(optimized_program.get_sequence_and_set_residue_index_ranges()[0]))"
188
+ ]
189
+ },
190
+ {
191
+ "cell_type": "markdown",
192
+ "metadata": {},
193
+ "source": [
194
+ "This program provides a minimal example of symmetric protein design, but we can also design much more complex proteins, as described in [our paper](https://www.biorxiv.org/content/10.1101/2022.12.21.521526v1).\n",
195
+ "\n",
196
+ "We provide example programs corresponding to our paper figures, as described in the table below:\n",
197
+ "\n",
198
+ "| Design task | Figure in paper | Program file |\n",
199
+ "|:--------------------------------------------|:---------------|:----------------------------------------------------------------------------|\n",
200
+ "| Free hallucination | Figure 2A | [free_hallucination.py](programs/free_hallucination.py) |\n",
201
+ "| Fixed backbone design | Figure 2D | [fixed_backbone.py](programs/fixed_backbone.py) |\n",
202
+ "| Secondary structure design | Figure 2G | [secondary_structure.py](programs/secondary_structure.py) |\n",
203
+ "| Functional site scaffolding | Figure 2H | [functional_site_scaffolding.py](programs/functional_site_scaffolding.py) |\n",
204
+ "| Symmetric monomer design | Figure 3A | [symmetric_monomer.py](programs/symmetric_monomer.py) |\n",
205
+ "| Two-level symmetric<br>homo-oligomer design | Figure 4A | [symmetric_two_level_multimer.py](programs/symmetric_two_level_multimer.py) |\n",
206
+ "| Symmetric binding site<br>scaffolding | Figure 5A | [symmetric_binding.py](programs/symmetric_binding.py) |\n",
207
+ "\n",
208
+ "These can easily be imported and run.\n",
209
+ "For example, the following code imports a symmetric binding site scaffolding program and computes the energy."
210
+ ]
211
+ },
212
+ {
213
+ "cell_type": "code",
214
+ "execution_count": null,
215
+ "metadata": {},
216
+ "outputs": [],
217
+ "source": [
218
+ "from programs.symmetric_binding import symmetric_binding_il10\n",
219
+ "\n",
220
+ "program = symmetric_binding_il10()\n",
221
+ "\n",
222
+ "sequence, residue_indices = program.get_sequence_and_set_residue_index_ranges()\n",
223
+ "\n",
224
+ "folding_output = folding_callback.fold(sequence, residue_indices)\n",
225
+ "\n",
226
+ "energy_terms = program.get_energy_term_functions()\n",
227
+ "for name, weight, energy_fn in energy_terms:\n",
228
+ " print(f\"{name} = {weight:.1f} * {energy_fn(folding_output):.2f}\")"
229
+ ]
230
+ }
231
+ ],
232
+ "metadata": {
233
+ "kernelspec": {
234
+ "display_name": "Python 3 (ipykernel)",
235
+ "language": "python",
236
+ "name": "python3"
237
+ },
238
+ "language_info": {
239
+ "codemirror_mode": {
240
+ "name": "ipython",
241
+ "version": 3
242
+ },
243
+ "file_extension": ".py",
244
+ "mimetype": "text/x-python",
245
+ "name": "python",
246
+ "nbconvert_exporter": "python",
247
+ "pygments_lexer": "ipython3",
248
+ "version": "3.8.13"
249
+ }
250
+ },
251
+ "nbformat": 4,
252
+ "nbformat_minor": 2
253
+ }
weight/esm-main/scripts/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+
weight/esm-main/scripts/atlas/README.md ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ESM Metagenomic Atlas
2
+
3
+ The [ESM Metagenomic Atlas](https://esmatlas.com) is a resource of more than 700 million metagenomic protein structures predicted by ESMFold.
4
+ See our [blog post](https://ai.facebook.com/blog/protein-folding-esmfold-metagenomics/) to learn more.
5
+
6
+ The first `v0` version of the Atlas was released on November 1st 2022,
7
+ corresponding to the sequences in the `2022_05` release of the MGnify protein database described [here](https://ftp.ebi.ac.uk/pub/databases/metagenomics/peptide_database/2022_05/README.txt).
8
+ An update `v2023_02` was released on March 17th 2023, corresponding to the sequences in the `2023_02` release of the MGnify protein database described [here](https://ftp.ebi.ac.uk/pub/databases/metagenomics/peptide_database/2023_02/).
9
+
10
+ Here we provide bulk download instructions for the tarballs of predicted structures, as well as foldseek databases, and LM embeddings for every sequence in the Atlas.
11
+
12
+ The structures in the ESM Metagenomic Atlas were predicted with `esm.pretrained.esmfold_v0()` for Atlas `v0`, while Atlas `v2023_02` used `esm.pretrained.esmfold_v1()`.
13
+ We find that protein structures with predicted LDDT > 0.7 and predict TM > 0.7 to be both reasonably well structured and interesting.
14
+ Therefore, we provide both the small set of "high confidence" metagenomic structures from Atlas `v0`, as well as the full set.
15
+ The small set of structures is built from taking a 30% sequence identity clustering of MGnify90 `2022_05`, and using the best structure from each cluster.
16
+ The best structure is selected using the score pTM * pLDDT.
17
+
18
+ The high confidence structures are around 1TB in size.
19
+
20
+ The full database is available as PDB structures and is 15TB in size for `v0`.
21
+
22
+ As an entrypoint into the database, the metadata is available as a small (~25 GB) file [metadata.sqlite](https://dl.fbaipublicfiles.com/esmatlas/v2023_02/metadata-rc2.sqlite.gz) / [metadata.parquet](https://dl.fbaipublicfiles.com/esmatlas/v2023_02/metadata-rc2.parquet).
23
+ You can load the file with pandas: `df = pd.read_parquet('metadata.parquet')`.
24
+ The dataframe has 773,846,840 records, and the file size is around 16GB.
25
+ This dataframe has 10 columns:
26
+ - `id` is the MGnify ID
27
+ - `ptm` is the predicted TM score
28
+ - `plddt` is the predicted average lddt
29
+ - `num_conf` is the number of residues with plddt > 0.7
30
+ - `len` is the total residues in the protein
31
+ - `is_fragment` indicates whether the protein sequence is identified as a fragment in the MGnify90 sequence database.
32
+ - `sequenceChecksum` is the CRC64 hash of the sequence. Can be used for cheaper lookups.
33
+ - `esmfold_version` is the version of ESMFold, matching the model accessible as `esm.pretrained.esmfold_v{0,1}`
34
+ - `atlas_version` is the Atlas version where this structure first appeared. Note: some of the predictions appearing for the first time in `v0` are also part of Atlas `v2023_02`.
35
+ - `sequence_dbs` is the metagenomic source databases where this structure is part of, as `MGnify90_2022_05`, comma-separated if it exists in more than one release, as `MGnify90_2022_05,MGnify90_2023_02`.
36
+
37
+ Proteins longer than 1280 residues were not folded. To select only the records without missing structures use `df[~df.plddt.isna()]`.
38
+
39
+ We recommend using `s5cmd` or `aria2c` to download files (can be installed via conda package manager).
40
+ To download any of the structures provided, you can use this `aria2c` command:
41
+ ```
42
+ aria2c --dir=/path/to/download/to --input-file=url-file-provided.txt
43
+ ```
44
+
45
+
46
+ # Full database
47
+
48
+ We separate the database by pTM and pLDDT.
49
+ This will allow you to download structures based on your needs - for example you can choose to download only the most high confidence structures.
50
+ Structures are provided by the bins given in this repo under [v0/full/bins.txt](v0/full/bins.txt) and [v2023_02/full/bins.txt](v2023_02/full/bins.txt).
51
+ For example, the foldseek database containing ptm from 0.60 to 0.70 and plddt from 0.80 to 0.90 is named `tm_.60_.70_plddt_.80_.90.DB`.
52
+ The data are given as bundles of 500k or 1M structures each.
53
+
54
+ * **Bulk Predicted structures**: see `{v0,v2023_02}/full/tarballs/`. The URLs for all shards of a single bundle will be in e.g. [v0/full/tarballs/tm_.60_.70_plddt_.80_.90.txt](v0/full/tarballs/tm_.60_.70_plddt_.80_.90.txt). The URLs for all tarballs across bins and their shards is available under `{v0,v2023_02}/full/tarballs.txt`.
55
+ * **Foldseek DBs** `{v0,v2023_02}/full/foldseekdb/` and `{v0,v2023_02}/full/foldseekdb.txt`
56
+ * **Bulk Embeddings (NEW)** under `{v0,v2023_02}/full/esm2_embeddings/` and `{v0,v2023_02}/full/esm2_embeddings.txt`.
57
+ * Note: Individual LM embeddings can be fetched via the API endpoint `/fetchEmbedding/ESM2/:id` as described on <https://esmatlas.com/about#api>
58
+
59
+
60
+ # High confidence MGnify30 structures
61
+
62
+ The high confidence MGnify30 structures are built using this procedure:
63
+ 1. MGnify90 is clustered down to 30% sequence similarity with `mmseqs easy-linclust --kmer-per-seq 100 -cluster-mode 2 --cov-mode 1 -c 0.8`.
64
+ 1. Structures are filtered to >0.7 pTM and pLDDT
65
+ 1. Structures are sorted by `pTM * pLDDT` and the best from each cluster is chosen as the representative.
66
+
67
+
68
+ We provide the urls to v0 in [v0/highquality_clust30/tarballs.txt](v0/highquality_clust30/tarballs.txt) and [v0/highquality_clust30/foldseekdb.txt](v0/highquality_clust30/foldseekdb.txt).
69
+
70
+ As a reminder, please use `aria2c --dir=/path/to/download/to --input-file=v0/highquality_clust30/foldseekdb.txt` to download the foldseek database
71
+
72
+ The sequences corresponding to the high confidence structures can be downloaded from <https://dl.fbaipublicfiles.com/esmatlas/v0/highquality_clust30/highquality_clust30.fasta>.
73
+
74
+ # Citation
75
+ If you use any of the ESM Metagenomic Atlas data in your work, please cite
76
+
77
+
78
+ ```bibtex
79
+ @article{lin2022evolutionary,
80
+ title={Evolutionary-scale prediction of atomic level protein structure with a language model},
81
+ author={Lin, Zeming and Akin, Halil and Rao, Roshan and Hie, Brian and Zhu, Zhongkai and Lu, Wenting and Smetanin, Nikita and Verkuil, Robert and Kabeli, Ori and Shmueli, Yaniv and dos Santos Costa, Allan and Fazel-Zarandi, Maryam and Sercu, Tom and Candido, Salvatore and Rives, Alexander},
82
+ year={2022},
83
+ journal={bioRxiv},
84
+ note={bioRxiv 2022.07.20.500902},
85
+ url={https://doi.org/10.1101/2022.07.20.500902},
86
+ }
87
+ ```
88
+
89
+ ## License <a name="license"></a>
90
+
91
+ ESM Metagenomic Atlas (also referred to as “ESM Metagenomic Structure Atlas” or “ESM Atlas”) data is available under a CC BY 4.0 license for academic and commercial use. Copyright (c) Meta Platforms, Inc. All Rights Reserved. Use of the ESM Metagenomic Atlas data is subject to the Meta Open Source [Terms of Use](https://opensource.fb.com/legal/terms/) and [Privacy Policy](https://opensource.fb.com/legal/privacy/).
92
+
93
+ If you make use of a structure predicted by ESMFold, please cite the following paper:
94
+
95
+ ```
96
+ Zeming Lin, Halil Akin, Roshan Rao, Brian Hie, Zhongkai Zhu, Wenting Lu, Nikita Smetanin, Robert Verkuil, Ori Kabeli, Yaniv Shmueli, Allan dos Santos Costa, Maryam Fazel-Zarandi, Tom Sercu, Sal Candido, Alexander Rives.
97
+ Evolutionary-scale prediction of atomic level protein structure with a language model.
98
+ Science 379, 6637 (2023).
99
+ https://www.science.org/doi/abs/10.1126/science.ade2574
100
+ ```
weight/esm-main/scripts/atlas/v0/full/bins.txt ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ tm_.40_.50_plddt_.40_.50
2
+ tm_.40_.50_plddt_.50_.60
3
+ tm_.40_.50_plddt_.60_.70
4
+ tm_.40_.50_plddt_.70_.80
5
+ tm_.40_.50_plddt_.80_.90
6
+ tm_.40_.50_plddt_.90_1
7
+ tm_.40_.50_plddt_0_.40
8
+ tm_.50_.60_plddt_.40_.50
9
+ tm_.50_.60_plddt_.50_.60
10
+ tm_.50_.60_plddt_.60_.70
11
+ tm_.50_.60_plddt_.70_.80
12
+ tm_.50_.60_plddt_.80_.90
13
+ tm_.50_.60_plddt_.90_1
14
+ tm_.50_.60_plddt_0_.40
15
+ tm_.60_.70_plddt_.40_.50
16
+ tm_.60_.70_plddt_.50_.60
17
+ tm_.60_.70_plddt_.60_.70
18
+ tm_.60_.70_plddt_.70_.80
19
+ tm_.60_.70_plddt_.80_.90
20
+ tm_.60_.70_plddt_.90_1
21
+ tm_.60_.70_plddt_0_.40
22
+ tm_.70_.80_plddt_.40_.50
23
+ tm_.70_.80_plddt_.50_.60
24
+ tm_.70_.80_plddt_.60_.70
25
+ tm_.70_.80_plddt_.70_.80
26
+ tm_.70_.80_plddt_.80_.90
27
+ tm_.70_.80_plddt_.90_1
28
+ tm_.70_.80_plddt_0_.40
29
+ tm_.80_.90_plddt_.50_.60
30
+ tm_.80_.90_plddt_.60_.70
31
+ tm_.80_.90_plddt_.70_.80
32
+ tm_.80_.90_plddt_.80_.90
33
+ tm_.80_.90_plddt_.90_1
34
+ tm_.90_1_plddt_.70_.80
35
+ tm_.90_1_plddt_.80_.90
36
+ tm_.90_1_plddt_.90_1
37
+ tm_0_.40_plddt_.40_.50
38
+ tm_0_.40_plddt_.50_.60
39
+ tm_0_.40_plddt_.60_.70
40
+ tm_0_.40_plddt_.70_.80
41
+ tm_0_.40_plddt_.80_.90
42
+ tm_0_.40_plddt_.90_1
43
+ tm_0_.40_plddt_0_.40
44
+ backfill_v0_tm_.40_.50_plddt_.40_.50
45
+ backfill_v0_tm_.50_.60_plddt_0_.40
46
+ backfill_v0_tm_.70_.80_plddt_.70_.80
47
+ backfill_v0_tm_.90_1_plddt_.80_.90
48
+ backfill_v0_tm_.40_.50_plddt_.50_.60
49
+ backfill_v0_tm_.60_.70_plddt_.40_.50
50
+ backfill_v0_tm_.70_.80_plddt_.80_.90
51
+ backfill_v0_tm_.90_1_plddt_.90_1
52
+ backfill_v0_tm_.40_.50_plddt_.60_.70
53
+ backfill_v0_tm_.60_.70_plddt_.50_.60
54
+ backfill_v0_tm_.70_.80_plddt_.90_1
55
+ backfill_v0_tm_0_.40_plddt_.40_.50
56
+ backfill_v0_tm_.40_.50_plddt_0_.40
57
+ backfill_v0_tm_.60_.70_plddt_.60_.70
58
+ backfill_v0_tm_.80_.90_plddt_.60_.70
59
+ backfill_v0_tm_0_.40_plddt_.50_.60
60
+ backfill_v0_tm_.50_.60_plddt_.40_.50
61
+ backfill_v0_tm_.60_.70_plddt_.70_.80
62
+ backfill_v0_tm_.80_.90_plddt_.70_.80
63
+ backfill_v0_tm_0_.40_plddt_0_.40
64
+ backfill_v0_tm_.50_.60_plddt_.50_.60
65
+ backfill_v0_tm_.60_.70_plddt_.80_.90
66
+ backfill_v0_tm_.80_.90_plddt_.80_.90
67
+ backfill_v0_tm_.50_.60_plddt_.60_.70
68
+ backfill_v0_tm_.70_.80_plddt_.50_.60
69
+ backfill_v0_tm_.80_.90_plddt_.90_1
70
+ backfill_v0_tm_.50_.60_plddt_.70_.80
71
+ backfill_v0_tm_.70_.80_plddt_.60_.70
72
+ backfill_v0_tm_.90_1_plddt_.70_.80
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings.txt ADDED
@@ -0,0 +1,673 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.40_.50_00.npz
2
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.40_.50_01.npz
3
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.40_.50_02.npz
4
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_00.npz
5
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_01.npz
6
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_02.npz
7
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_03.npz
8
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_04.npz
9
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_05.npz
10
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_06.npz
11
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_07.npz
12
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_08.npz
13
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_09.npz
14
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_10.npz
15
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_11.npz
16
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_12.npz
17
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.50_.60_13.npz
18
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_00.npz
19
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_01.npz
20
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_02.npz
21
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_03.npz
22
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_04.npz
23
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_05.npz
24
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_06.npz
25
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_07.npz
26
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_08.npz
27
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_09.npz
28
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_10.npz
29
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_11.npz
30
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_12.npz
31
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_13.npz
32
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_14.npz
33
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_15.npz
34
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_16.npz
35
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_17.npz
36
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_18.npz
37
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_19.npz
38
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_20.npz
39
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.60_.70_21.npz
40
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_00.npz
41
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_01.npz
42
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_02.npz
43
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_03.npz
44
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_04.npz
45
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_05.npz
46
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_06.npz
47
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_07.npz
48
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_08.npz
49
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_09.npz
50
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_10.npz
51
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_11.npz
52
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_12.npz
53
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_13.npz
54
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_14.npz
55
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_15.npz
56
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_16.npz
57
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_17.npz
58
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.70_.80_18.npz
59
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.80_.90_00.npz
60
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.80_.90_01.npz
61
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.80_.90_02.npz
62
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.80_.90_03.npz
63
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.80_.90_04.npz
64
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.80_.90_05.npz
65
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_.90_1_00.npz
66
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.40_.50_plddt_0_.40_00.npz
67
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.40_.50_00.npz
68
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.50_.60_00.npz
69
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.50_.60_01.npz
70
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.50_.60_02.npz
71
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.50_.60_03.npz
72
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.50_.60_04.npz
73
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.50_.60_05.npz
74
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_00.npz
75
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_01.npz
76
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_02.npz
77
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_03.npz
78
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_04.npz
79
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_05.npz
80
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_06.npz
81
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_07.npz
82
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_08.npz
83
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_09.npz
84
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_10.npz
85
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_11.npz
86
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_12.npz
87
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_13.npz
88
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_14.npz
89
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_15.npz
90
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_16.npz
91
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.60_.70_17.npz
92
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_00.npz
93
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_01.npz
94
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_02.npz
95
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_03.npz
96
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_04.npz
97
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_05.npz
98
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_06.npz
99
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_07.npz
100
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_08.npz
101
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_09.npz
102
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_10.npz
103
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_11.npz
104
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_12.npz
105
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_13.npz
106
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_14.npz
107
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_15.npz
108
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_16.npz
109
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_17.npz
110
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_18.npz
111
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_19.npz
112
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_20.npz
113
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_21.npz
114
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_22.npz
115
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_23.npz
116
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_24.npz
117
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.70_.80_25.npz
118
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_00.npz
119
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_01.npz
120
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_02.npz
121
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_03.npz
122
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_04.npz
123
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_05.npz
124
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_06.npz
125
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_07.npz
126
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_08.npz
127
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_09.npz
128
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_10.npz
129
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_11.npz
130
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_12.npz
131
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_13.npz
132
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_14.npz
133
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.80_.90_15.npz
134
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.90_1_00.npz
135
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_.90_1_01.npz
136
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.50_.60_plddt_0_.40_00.npz
137
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.40_.50_00.npz
138
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.50_.60_00.npz
139
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.60_.70_00.npz
140
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.60_.70_01.npz
141
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.60_.70_02.npz
142
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.60_.70_03.npz
143
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.60_.70_04.npz
144
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.60_.70_05.npz
145
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.60_.70_06.npz
146
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.60_.70_07.npz
147
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.60_.70_08.npz
148
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.60_.70_09.npz
149
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.60_.70_10.npz
150
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_00.npz
151
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_01.npz
152
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_02.npz
153
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_03.npz
154
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_04.npz
155
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_05.npz
156
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_06.npz
157
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_07.npz
158
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_08.npz
159
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_09.npz
160
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_10.npz
161
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_11.npz
162
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_12.npz
163
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_13.npz
164
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_14.npz
165
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_15.npz
166
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_16.npz
167
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_17.npz
168
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_18.npz
169
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_19.npz
170
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_20.npz
171
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_21.npz
172
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_22.npz
173
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_23.npz
174
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_24.npz
175
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_25.npz
176
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.70_.80_26.npz
177
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_00.npz
178
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_01.npz
179
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_02.npz
180
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_03.npz
181
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_04.npz
182
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_05.npz
183
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_06.npz
184
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_07.npz
185
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_08.npz
186
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_09.npz
187
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_10.npz
188
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_11.npz
189
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_12.npz
190
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_13.npz
191
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_14.npz
192
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_15.npz
193
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_16.npz
194
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_17.npz
195
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_18.npz
196
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_19.npz
197
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_20.npz
198
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_21.npz
199
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_22.npz
200
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_23.npz
201
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_24.npz
202
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_25.npz
203
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_26.npz
204
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_27.npz
205
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.80_.90_28.npz
206
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.90_1_00.npz
207
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.90_1_01.npz
208
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.90_1_02.npz
209
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.90_1_03.npz
210
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.90_1_04.npz
211
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_.90_1_05.npz
212
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.60_.70_plddt_0_.40_00.npz
213
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.40_.50_00.npz
214
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.50_.60_00.npz
215
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.60_.70_00.npz
216
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.60_.70_01.npz
217
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_00.npz
218
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_01.npz
219
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_02.npz
220
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_03.npz
221
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_04.npz
222
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_05.npz
223
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_06.npz
224
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_07.npz
225
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_08.npz
226
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_09.npz
227
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_10.npz
228
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_11.npz
229
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_12.npz
230
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_13.npz
231
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_14.npz
232
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_15.npz
233
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_16.npz
234
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_17.npz
235
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_18.npz
236
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_19.npz
237
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_20.npz
238
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.70_.80_21.npz
239
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_00.npz
240
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_01.npz
241
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_02.npz
242
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_03.npz
243
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_04.npz
244
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_05.npz
245
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_06.npz
246
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_07.npz
247
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_08.npz
248
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_09.npz
249
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_10.npz
250
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_11.npz
251
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_12.npz
252
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_13.npz
253
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_14.npz
254
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_15.npz
255
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_16.npz
256
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_17.npz
257
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_18.npz
258
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_19.npz
259
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_20.npz
260
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_21.npz
261
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_22.npz
262
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_23.npz
263
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_24.npz
264
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_25.npz
265
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_26.npz
266
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_27.npz
267
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_28.npz
268
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_29.npz
269
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_30.npz
270
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_31.npz
271
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_32.npz
272
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_33.npz
273
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_34.npz
274
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_35.npz
275
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_36.npz
276
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_37.npz
277
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_38.npz
278
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_39.npz
279
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_40.npz
280
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_41.npz
281
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_42.npz
282
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.80_.90_43.npz
283
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_00.npz
284
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_01.npz
285
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_02.npz
286
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_03.npz
287
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_04.npz
288
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_05.npz
289
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_06.npz
290
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_07.npz
291
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_08.npz
292
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_09.npz
293
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_10.npz
294
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_11.npz
295
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_12.npz
296
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_.90_1_13.npz
297
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.70_.80_plddt_0_.40_00.npz
298
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.50_.60_00.npz
299
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.60_.70_00.npz
300
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.70_.80_00.npz
301
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.70_.80_01.npz
302
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.70_.80_02.npz
303
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.70_.80_03.npz
304
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_00.npz
305
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_01.npz
306
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_02.npz
307
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_03.npz
308
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_04.npz
309
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_05.npz
310
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_06.npz
311
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_07.npz
312
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_08.npz
313
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_09.npz
314
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_10.npz
315
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_11.npz
316
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_12.npz
317
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_13.npz
318
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_14.npz
319
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_15.npz
320
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_16.npz
321
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_17.npz
322
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_18.npz
323
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_19.npz
324
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_20.npz
325
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_21.npz
326
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_22.npz
327
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_23.npz
328
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_24.npz
329
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_25.npz
330
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_26.npz
331
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_27.npz
332
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_28.npz
333
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_29.npz
334
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_30.npz
335
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_31.npz
336
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_32.npz
337
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_33.npz
338
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_34.npz
339
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_35.npz
340
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_36.npz
341
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_37.npz
342
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_38.npz
343
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_39.npz
344
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_40.npz
345
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_41.npz
346
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_42.npz
347
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_43.npz
348
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_44.npz
349
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.80_.90_45.npz
350
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_00.npz
351
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_01.npz
352
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_02.npz
353
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_03.npz
354
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_04.npz
355
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_05.npz
356
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_06.npz
357
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_07.npz
358
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_08.npz
359
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_09.npz
360
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_10.npz
361
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_11.npz
362
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_12.npz
363
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_13.npz
364
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_14.npz
365
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_15.npz
366
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_16.npz
367
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_17.npz
368
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_18.npz
369
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_19.npz
370
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_20.npz
371
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_21.npz
372
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_22.npz
373
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_23.npz
374
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_24.npz
375
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_25.npz
376
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_26.npz
377
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_27.npz
378
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_28.npz
379
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_29.npz
380
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_30.npz
381
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_31.npz
382
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_32.npz
383
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_33.npz
384
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_34.npz
385
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_35.npz
386
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.80_.90_plddt_.90_1_36.npz
387
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.70_.80_00.npz
388
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.80_.90_00.npz
389
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.80_.90_01.npz
390
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.80_.90_02.npz
391
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.80_.90_03.npz
392
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.80_.90_04.npz
393
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_00.npz
394
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_01.npz
395
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_02.npz
396
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_03.npz
397
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_04.npz
398
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_05.npz
399
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_06.npz
400
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_07.npz
401
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_08.npz
402
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_09.npz
403
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_10.npz
404
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_11.npz
405
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_12.npz
406
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_13.npz
407
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_14.npz
408
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_15.npz
409
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_16.npz
410
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_17.npz
411
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_18.npz
412
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_19.npz
413
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_20.npz
414
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_21.npz
415
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_22.npz
416
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_23.npz
417
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_24.npz
418
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_25.npz
419
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_26.npz
420
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_27.npz
421
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_28.npz
422
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_29.npz
423
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_30.npz
424
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_31.npz
425
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_32.npz
426
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_33.npz
427
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_34.npz
428
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_35.npz
429
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_36.npz
430
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_37.npz
431
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_38.npz
432
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_39.npz
433
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_40.npz
434
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_41.npz
435
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_42.npz
436
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_43.npz
437
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_44.npz
438
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_45.npz
439
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_46.npz
440
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_47.npz
441
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_48.npz
442
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_49.npz
443
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_50.npz
444
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_51.npz
445
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_52.npz
446
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_53.npz
447
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_54.npz
448
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_.90_1_plddt_.90_1_55.npz
449
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_00.npz
450
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_01.npz
451
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_02.npz
452
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_03.npz
453
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_04.npz
454
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_05.npz
455
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_06.npz
456
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_07.npz
457
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_08.npz
458
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_09.npz
459
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_10.npz
460
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_11.npz
461
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_12.npz
462
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_13.npz
463
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_14.npz
464
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_15.npz
465
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_16.npz
466
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_17.npz
467
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_18.npz
468
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_19.npz
469
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_20.npz
470
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_21.npz
471
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_22.npz
472
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_23.npz
473
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_24.npz
474
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_25.npz
475
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_26.npz
476
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_27.npz
477
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_28.npz
478
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_29.npz
479
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_30.npz
480
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_31.npz
481
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_32.npz
482
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_33.npz
483
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_34.npz
484
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_35.npz
485
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_36.npz
486
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_37.npz
487
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_38.npz
488
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_39.npz
489
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_40.npz
490
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_41.npz
491
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_42.npz
492
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_43.npz
493
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_44.npz
494
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_45.npz
495
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_46.npz
496
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_47.npz
497
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_48.npz
498
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_49.npz
499
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_50.npz
500
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_51.npz
501
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.40_.50_52.npz
502
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_00.npz
503
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_01.npz
504
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_02.npz
505
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_03.npz
506
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_04.npz
507
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_05.npz
508
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_06.npz
509
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_07.npz
510
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_08.npz
511
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_09.npz
512
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_10.npz
513
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_11.npz
514
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_12.npz
515
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_13.npz
516
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_14.npz
517
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_15.npz
518
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_16.npz
519
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_17.npz
520
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_18.npz
521
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_19.npz
522
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_20.npz
523
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_21.npz
524
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_22.npz
525
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_23.npz
526
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_24.npz
527
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_25.npz
528
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_26.npz
529
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_27.npz
530
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_28.npz
531
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_29.npz
532
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_30.npz
533
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_31.npz
534
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_32.npz
535
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_33.npz
536
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_34.npz
537
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_35.npz
538
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_36.npz
539
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_37.npz
540
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_38.npz
541
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_39.npz
542
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_40.npz
543
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_41.npz
544
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_42.npz
545
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_43.npz
546
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_44.npz
547
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_45.npz
548
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.50_.60_46.npz
549
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_00.npz
550
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_01.npz
551
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_02.npz
552
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_03.npz
553
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_04.npz
554
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_05.npz
555
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_06.npz
556
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_07.npz
557
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_08.npz
558
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_09.npz
559
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_10.npz
560
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_11.npz
561
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_12.npz
562
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_13.npz
563
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_14.npz
564
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_15.npz
565
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_16.npz
566
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_17.npz
567
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_18.npz
568
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_19.npz
569
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_20.npz
570
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_21.npz
571
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_22.npz
572
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_23.npz
573
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_24.npz
574
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_25.npz
575
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_26.npz
576
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_27.npz
577
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_28.npz
578
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_29.npz
579
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_30.npz
580
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_31.npz
581
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_32.npz
582
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.60_.70_33.npz
583
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.70_.80_00.npz
584
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.70_.80_01.npz
585
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.70_.80_02.npz
586
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.70_.80_03.npz
587
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.70_.80_04.npz
588
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.70_.80_05.npz
589
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.70_.80_06.npz
590
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.70_.80_07.npz
591
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.70_.80_08.npz
592
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.70_.80_09.npz
593
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.70_.80_10.npz
594
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.70_.80_11.npz
595
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.70_.80_12.npz
596
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.80_.90_00.npz
597
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.80_.90_01.npz
598
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_.90_1_00.npz
599
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_00.npz
600
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_01.npz
601
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_02.npz
602
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_03.npz
603
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_04.npz
604
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_05.npz
605
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_06.npz
606
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_07.npz
607
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_08.npz
608
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_09.npz
609
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_10.npz
610
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_11.npz
611
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_12.npz
612
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_13.npz
613
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_14.npz
614
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_15.npz
615
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_16.npz
616
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_17.npz
617
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_18.npz
618
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_19.npz
619
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_20.npz
620
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_21.npz
621
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_22.npz
622
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_23.npz
623
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_24.npz
624
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_25.npz
625
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_26.npz
626
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_27.npz
627
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_28.npz
628
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_29.npz
629
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_30.npz
630
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_31.npz
631
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_32.npz
632
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_33.npz
633
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_34.npz
634
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_35.npz
635
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_36.npz
636
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_37.npz
637
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_38.npz
638
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_39.npz
639
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_40.npz
640
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_41.npz
641
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_42.npz
642
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_43.npz
643
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_44.npz
644
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/tm_0_.40_plddt_0_.40_45.npz
645
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.40_.50_plddt_.40_.50.npz
646
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.40_.50_plddt_.50_.60.npz
647
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.40_.50_plddt_.60_.70.npz
648
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.40_.50_plddt_0_.40.npz
649
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.50_.60_plddt_.40_.50.npz
650
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.50_.60_plddt_.50_.60.npz
651
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.50_.60_plddt_.60_.70.npz
652
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.50_.60_plddt_.70_.80.npz
653
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.50_.60_plddt_0_.40.npz
654
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.60_.70_plddt_.40_.50.npz
655
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.60_.70_plddt_.50_.60.npz
656
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.60_.70_plddt_.60_.70.npz
657
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.60_.70_plddt_.70_.80.npz
658
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.60_.70_plddt_.80_.90.npz
659
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.70_.80_plddt_.50_.60.npz
660
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.70_.80_plddt_.60_.70.npz
661
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.70_.80_plddt_.70_.80.npz
662
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.70_.80_plddt_.80_.90.npz
663
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.70_.80_plddt_.90_1.npz
664
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.80_.90_plddt_.60_.70.npz
665
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.80_.90_plddt_.70_.80.npz
666
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.80_.90_plddt_.80_.90.npz
667
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.80_.90_plddt_.90_1.npz
668
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.90_1_plddt_.70_.80.npz
669
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.90_1_plddt_.80_.90.npz
670
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.90_1_plddt_.90_1.npz
671
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_0_.40_plddt_.40_.50.npz
672
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_0_.40_plddt_.50_.60.npz
673
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_0_.40_plddt_0_.40.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.40_.50_plddt_.40_.50.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.40_.50_plddt_.40_.50.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.40_.50_plddt_.60_.70.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.40_.50_plddt_.60_.70.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.40_.50_plddt_0_.40.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.40_.50_plddt_0_.40.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.50_.60_plddt_.40_.50.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.50_.60_plddt_.40_.50.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.50_.60_plddt_.60_.70.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.50_.60_plddt_.60_.70.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.50_.60_plddt_0_.40.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.50_.60_plddt_0_.40.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.60_.70_plddt_.40_.50.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.60_.70_plddt_.40_.50.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.60_.70_plddt_.80_.90.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.60_.70_plddt_.80_.90.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.70_.80_plddt_.50_.60.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.70_.80_plddt_.50_.60.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.70_.80_plddt_.60_.70.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.70_.80_plddt_.60_.70.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.70_.80_plddt_.80_.90.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.70_.80_plddt_.80_.90.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.70_.80_plddt_.90_1.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.70_.80_plddt_.90_1.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.80_.90_plddt_.60_.70.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.80_.90_plddt_.60_.70.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.80_.90_plddt_.70_.80.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.80_.90_plddt_.70_.80.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.80_.90_plddt_.80_.90.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.80_.90_plddt_.80_.90.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.80_.90_plddt_.90_1.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.80_.90_plddt_.90_1.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.90_1_plddt_.70_.80.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.90_1_plddt_.70_.80.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_.90_1_plddt_.90_1.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_.90_1_plddt_.90_1.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_0_.40_plddt_.40_.50.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_0_.40_plddt_.40_.50.npz
weight/esm-main/scripts/atlas/v0/full/esm2_embeddings/backfill_v0_tm_0_.40_plddt_.50_.60.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ https://dl.fbaipublicfiles.com/esmatlas/v0/full/lm_reps/backfill_v0_tm_0_.40_plddt_.50_.60.npz