rc-foundry 0.1.1__tar.gz → 0.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. rc_foundry-0.1.2/.git +1 -0
  2. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/PKG-INFO +4 -7
  3. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/README.md +3 -6
  4. {rc_foundry-0.1.1/models/rfd3/docs → rc_foundry-0.1.2/docs/releases/rfd3/examples}/input_pdbs/1bna.pdb +0 -0
  5. {rc_foundry-0.1.1/models/rfd3/docs → rc_foundry-0.1.2/docs/releases/rfd3/examples}/input_pdbs/1q75.pdb +0 -0
  6. {rc_foundry-0.1.1/models/rfd3/docs → rc_foundry-0.1.2/docs/releases/rfd3/examples}/input_pdbs/2r5z.pdb +0 -0
  7. {rc_foundry-0.1.1/models/rfd3/docs → rc_foundry-0.1.2/docs/releases/rfd3/examples}/input_pdbs/5o4d.pdb +0 -0
  8. rc_foundry-0.1.1/models/rfd3/docs/na_binder_design.json → rc_foundry-0.1.2/docs/releases/rfd3/examples/na_tutorial.json +18 -18
  9. {rc_foundry-0.1.1/models/rfd3/docs → rc_foundry-0.1.2/docs/releases/rfd3/examples}/run_inf_tutorial.sh +2 -2
  10. rc_foundry-0.1.2/examples/all_colab.ipynb +462 -0
  11. rc_foundry-0.1.2/models/mpnn/README.md +29 -0
  12. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/utils/inference.py +4 -4
  13. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/README.md +4 -43
  14. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/design_base.yaml +1 -1
  15. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/experiment/pretrain.yaml +3 -6
  16. rc_foundry-0.1.2/models/rfd3/docs/enzyme_design.md +21 -0
  17. rc_foundry-0.1.2/models/rfd3/docs/input_pdbs/1bna.pdb +617 -0
  18. rc_foundry-0.1.2/models/rfd3/docs/input_pdbs/1q75.pdb +516 -0
  19. rc_foundry-0.1.2/models/rfd3/docs/input_pdbs/2r5z.pdb +2141 -0
  20. rc_foundry-0.1.2/models/rfd3/docs/input_pdbs/5o4d.pdb +769 -0
  21. rc_foundry-0.1.2/models/rfd3/docs/na_binder_design.md +85 -0
  22. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/version.py +2 -2
  23. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry_cli/download_checkpoints.py +0 -2
  24. rc_foundry-0.1.1/.git +0 -1
  25. rc_foundry-0.1.1/docs/releases/rfd3/examples/README.md +0 -3
  26. rc_foundry-0.1.1/models/mpnn/README.md +0 -146
  27. rc_foundry-0.1.1/models/rfd3/docs/enzyme_design.md +0 -26
  28. rc_foundry-0.1.1/models/rfd3/docs/get_na_input.sh +0 -18
  29. rc_foundry-0.1.1/models/rfd3/docs/na_binder_design.md +0 -113
  30. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.github/workflows/lint_trunk.yaml +0 -0
  31. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.gitignore +0 -0
  32. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.gitmodules +0 -0
  33. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.ipd/apptainer/rf3-dev.def +0 -0
  34. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.ipd/apptainer/rf3-full.def +0 -0
  35. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.ipd/apptainer/rfd3-full.def +0 -0
  36. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.ipd/shebang/README.md +0 -0
  37. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.ipd/shebang/mpnn_exec.sh +0 -0
  38. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.ipd/shebang/rf3_exec.sh +0 -0
  39. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.ipd/shebang/rfd3_exec.sh +0 -0
  40. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.ipd/slurm/launch_ligand_mpnn.sh +0 -0
  41. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.ipd/slurm/launch_protein_mpnn.sh +0 -0
  42. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.ipd/slurm/launch_rf3.sh +0 -0
  43. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.ipd/slurm/launch_rfd3.sh +0 -0
  44. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.pre-commit-config.yaml +0 -0
  45. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/.project-root +0 -0
  46. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/LICENSE.md +0 -0
  47. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/Makefile +0 -0
  48. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/IPD_USAGE.md +0 -0
  49. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/3en2_from_file.cif +0 -0
  50. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/3en2_from_json_with_msa.json +0 -0
  51. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/5hkn_from_file.cif +0 -0
  52. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/7o1r_from_json.json +0 -0
  53. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/7xli_template_antigen_and_framework.json +0 -0
  54. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/9dfn.cif +0 -0
  55. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/9dfn_template_ligand_and_protein.json +0 -0
  56. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/ligands/HEM.sdf +0 -0
  57. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/ligands/NAG.cif +0 -0
  58. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/msas/3en2_A.a3m.gz +0 -0
  59. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/msas/7o1r_A.a3m.gz +0 -0
  60. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/msas/8cdz_A.a3m.gz +0 -0
  61. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/multiple_examples_from_json.json +0 -0
  62. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/templates/7xli_chain_A.cif +0 -0
  63. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/docs/releases/rf3/examples/templates/7xli_chain_B.cif +0 -0
  64. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/examples/all.ipynb +0 -0
  65. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/examples/enzymes.ipynb +0 -0
  66. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/__init__.py +0 -0
  67. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/collate/feature_collator.py +0 -0
  68. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/inference.py +0 -0
  69. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/inference_engines/mpnn.py +0 -0
  70. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/loss/nll_loss.py +0 -0
  71. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/metrics/nll.py +0 -0
  72. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/metrics/sequence_recovery.py +0 -0
  73. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/model/layers/graph_embeddings.py +0 -0
  74. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/model/layers/message_passing.py +0 -0
  75. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/model/layers/position_wise_feed_forward.py +0 -0
  76. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/model/layers/positional_encoding.py +0 -0
  77. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/model/mpnn.py +0 -0
  78. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/pipelines/mpnn.py +0 -0
  79. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/samplers/samplers.py +0 -0
  80. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/train.py +0 -0
  81. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/trainers/mpnn.py +0 -0
  82. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/transforms/feature_aggregation/mpnn.py +0 -0
  83. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/transforms/feature_aggregation/polymer_ligand_interface.py +0 -0
  84. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/transforms/feature_aggregation/token_encodings.py +0 -0
  85. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/transforms/feature_aggregation/user_settings.py +0 -0
  86. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/transforms/polymer_ligand_interface.py +0 -0
  87. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/utils/probability.py +0 -0
  88. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/src/mpnn/utils/weights.py +0 -0
  89. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/tests/conftest.py +0 -0
  90. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/tests/test_feature_collator.py +0 -0
  91. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/tests/test_inference_engine.py +0 -0
  92. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/tests/test_inference_utils.py +0 -0
  93. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/tests/test_integration.py +0 -0
  94. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/tests/test_loss.py +0 -0
  95. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/tests/test_metrics.py +0 -0
  96. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/tests/test_model.py +0 -0
  97. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/tests/test_pipeline.py +0 -0
  98. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/tests/test_polymer_ligand_interface.py +0 -0
  99. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/tests/test_samplers.py +0 -0
  100. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/mpnn/tests/test_utils.py +0 -0
  101. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/README.md +0 -0
  102. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/callbacks/default.yaml +0 -0
  103. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/callbacks/dump_validation_structures.yaml +0 -0
  104. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/callbacks/metrics_logging.yaml +0 -0
  105. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/callbacks/train_logging.yaml +0 -0
  106. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/dataloader/default.yaml +0 -0
  107. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/base.yaml +0 -0
  108. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/pdb_and_distillation.yaml +0 -0
  109. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/pdb_only.yaml +0 -0
  110. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/train/disorder_distillation.yaml +0 -0
  111. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/train/domain_distillation.yaml +0 -0
  112. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/train/monomer_distillation.yaml +0 -0
  113. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/train/na_complex_distillation.yaml +0 -0
  114. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/train/pdb/af3_weighted_sampling.yaml +0 -0
  115. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/train/pdb/base.yaml +0 -0
  116. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/train/pdb/plinder.yaml +0 -0
  117. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/train/pdb/train_interface.yaml +0 -0
  118. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/train/pdb/train_pn_unit.yaml +0 -0
  119. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/train/rna_monomer_distillation.yaml +0 -0
  120. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/val/af3_ab_set.yaml +0 -0
  121. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/val/af3_validation.yaml +0 -0
  122. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/val/base.yaml +0 -0
  123. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/datasets/val/runs_and_poses.yaml +0 -0
  124. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/debug/default.yaml +0 -0
  125. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/debug/train_specific_examples.yaml +0 -0
  126. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/experiment/pretrained/rf3.yaml +0 -0
  127. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/experiment/pretrained/rf3_with_confidence.yaml +0 -0
  128. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/experiment/quick-rf3-with-confidence.yaml +0 -0
  129. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/experiment/quick-rf3.yaml +0 -0
  130. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/hydra/default.yaml +0 -0
  131. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/hydra/no_logging.yaml +0 -0
  132. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/inference.yaml +0 -0
  133. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/inference_engine/base.yaml +0 -0
  134. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/inference_engine/rf3.yaml +0 -0
  135. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/logger/csv.yaml +0 -0
  136. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/logger/default.yaml +0 -0
  137. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/logger/wandb.yaml +0 -0
  138. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/model/components/ema.yaml +0 -0
  139. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/model/components/rf3_net.yaml +0 -0
  140. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/model/components/rf3_net_with_confidence_head.yaml +0 -0
  141. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/model/optimizers/adam.yaml +0 -0
  142. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/model/rf3.yaml +0 -0
  143. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/model/rf3_with_confidence.yaml +0 -0
  144. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/model/schedulers/af3.yaml +0 -0
  145. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/paths/data/default.yaml +0 -0
  146. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/paths/default.yaml +0 -0
  147. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/train.yaml +0 -0
  148. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/trainer/cpu.yaml +0 -0
  149. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/trainer/ddp.yaml +0 -0
  150. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/trainer/loss/losses/confidence_loss.yaml +0 -0
  151. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/trainer/loss/losses/diffusion_loss.yaml +0 -0
  152. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/trainer/loss/losses/distogram_loss.yaml +0 -0
  153. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/trainer/loss/structure_prediction.yaml +0 -0
  154. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/trainer/loss/structure_prediction_with_confidence.yaml +0 -0
  155. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/trainer/metrics/structure_prediction.yaml +0 -0
  156. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/trainer/rf3.yaml +0 -0
  157. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/trainer/rf3_with_confidence.yaml +0 -0
  158. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/configs/validate.yaml +0 -0
  159. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/__init__.py +0 -0
  160. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/_version.py +0 -0
  161. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/alignment.py +0 -0
  162. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/callbacks/dump_validation_structures.py +0 -0
  163. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/callbacks/metrics_logging.py +0 -0
  164. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/chemical.py +0 -0
  165. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/cli.py +0 -0
  166. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/data/cyclic_transform.py +0 -0
  167. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/data/extra_xforms.py +0 -0
  168. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/data/ground_truth_template.py +0 -0
  169. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/data/paired_msa.py +0 -0
  170. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/data/pipeline_utils.py +0 -0
  171. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/data/pipelines.py +0 -0
  172. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/diffusion_samplers/inference_sampler.py +0 -0
  173. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/inference.py +0 -0
  174. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/inference_engines/__init__.py +0 -0
  175. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/inference_engines/rf3.py +0 -0
  176. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/kinematics.py +0 -0
  177. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/loss/af3_confidence_loss.py +0 -0
  178. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/loss/af3_losses.py +0 -0
  179. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/loss/loss.py +0 -0
  180. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/metrics/chiral.py +0 -0
  181. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/metrics/clashing_chains.py +0 -0
  182. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/metrics/distogram.py +0 -0
  183. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/metrics/lddt.py +0 -0
  184. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/metrics/metadata.py +0 -0
  185. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/metrics/metric_utils.py +0 -0
  186. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/metrics/predicted_error.py +0 -0
  187. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/metrics/rasa.py +0 -0
  188. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/metrics/selected_distances.py +0 -0
  189. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/model/RF3.py +0 -0
  190. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/model/RF3_blocks.py +0 -0
  191. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/model/RF3_structure.py +0 -0
  192. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/model/layers/af3_auxiliary_heads.py +0 -0
  193. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/model/layers/af3_diffusion_transformer.py +0 -0
  194. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/model/layers/attention.py +0 -0
  195. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/model/layers/layer_utils.py +0 -0
  196. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/model/layers/mlff.py +0 -0
  197. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/model/layers/outer_product.py +0 -0
  198. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/model/layers/pairformer_layers.py +0 -0
  199. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/model/layers/structure_bias.py +0 -0
  200. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/scoring.py +0 -0
  201. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/symmetry/resolve.py +0 -0
  202. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/train.py +0 -0
  203. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/trainers/rf3.py +0 -0
  204. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/util_module.py +0 -0
  205. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/utils/frames.py +0 -0
  206. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/utils/inference.py +0 -0
  207. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/utils/io.py +0 -0
  208. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/utils/loss.py +0 -0
  209. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/utils/predict_and_score.py +0 -0
  210. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/utils/predicted_error.py +0 -0
  211. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/utils/recycling.py +0 -0
  212. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/src/rf3/validate.py +0 -0
  213. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/.gitkeep +0 -0
  214. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/conftest.py +0 -0
  215. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/5vht_from_file.cif +0 -0
  216. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/5vht_from_json.json +0 -0
  217. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/8vkf_from_file.cif +0 -0
  218. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/example_from_pdb_with_inter_chain_bond.pdb +0 -0
  219. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/example_pdb_with_clashing_ligand_name.pdb +0 -0
  220. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/example_with_ncaa.json +0 -0
  221. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/inference_regression_tests/5vht_from_file/5vht_from_file_model.cif +0 -0
  222. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/inference_regression_tests/5vht_from_file/5vht_from_file_summary_confidences.json +0 -0
  223. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/inference_regression_tests/8vkf_from_file/8vkf_from_file_model.cif +0 -0
  224. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/inference_regression_tests/8vkf_from_file/8vkf_from_file_summary_confidences.json +0 -0
  225. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/msas/5vht_A.a3m +0 -0
  226. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/msas/8vkf_A.a3m +0 -0
  227. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/multiple_examples_from_json.json +0 -0
  228. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/ncaa/create_cif_with_ligand_as_ncaa.ipynb +0 -0
  229. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/ncaa/ligand_as_ncaa.cif +0 -0
  230. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/ncaa/penicillin_ts2_as_ncaa.cif +0 -0
  231. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/nested_examples/example_from_json.json +0 -0
  232. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/data/nested_examples/example_from_pdb_with_inter_chain_bonds.and.dots.pdb +0 -0
  233. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/test_chiral_metrics.py +0 -0
  234. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/test_inference_regression.py +0 -0
  235. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rf3/tests/test_write_confidence.py +0 -0
  236. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/.gitignore +0 -0
  237. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/__init__.py +0 -0
  238. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/callbacks/design_callbacks.yaml +0 -0
  239. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/callbacks/metrics_logging.yaml +0 -0
  240. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/callbacks/train_logging.yaml +0 -0
  241. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/dataloader/default.yaml +0 -0
  242. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/dataloader/fast.yaml +0 -0
  243. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/conditions/dna_condition.yaml +0 -0
  244. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/conditions/island.yaml +0 -0
  245. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/conditions/ppi.yaml +0 -0
  246. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/conditions/sequence_design.yaml +0 -0
  247. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/conditions/tipatom.yaml +0 -0
  248. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/conditions/unconditional.yaml +0 -0
  249. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/train/pdb/af3_train_interface.yaml +0 -0
  250. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/train/pdb/af3_train_pn_unit.yaml +0 -0
  251. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/train/pdb/base.yaml +0 -0
  252. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/train/pdb/base_no_weights.yaml +0 -0
  253. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/train/pdb/base_transform_args.yaml +0 -0
  254. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/train/pdb/na_complex_distillation.yaml +0 -0
  255. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/train/pdb/pdb_base.yaml +0 -0
  256. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/train/pdb/rfd3_train_interface.yaml +0 -0
  257. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/train/pdb/rfd3_train_pn_unit.yaml +0 -0
  258. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/train/rfd3_monomer_distillation.yaml +0 -0
  259. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/bcov_ppi_easy_medium.yaml +0 -0
  260. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/design_validation_base.yaml +0 -0
  261. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/dna_binder_design5.yaml +0 -0
  262. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/dna_binder_long.yaml +0 -0
  263. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/dna_binder_short.yaml +0 -0
  264. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/indexed.yaml +0 -0
  265. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/mcsa_41.yaml +0 -0
  266. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/mcsa_41_short_rigid.yaml +0 -0
  267. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/ppi_inference.yaml +0 -0
  268. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/sm_binder_hbonds.yaml +0 -0
  269. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/sm_binder_hbonds_short.yaml +0 -0
  270. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/unconditional.yaml +0 -0
  271. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/unconditional_deep.yaml +0 -0
  272. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/unindexed.yaml +0 -0
  273. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/val_examples/bcov_ppi_easy_medium_with_ori.yaml +0 -0
  274. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/val_examples/bcov_ppi_easy_medium_with_ori_spoof_helical_bundle.yaml +0 -0
  275. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/val_examples/bcov_ppi_easy_medium_with_ori_varying_lengths.yaml +0 -0
  276. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/datasets/val/val_examples/bpem_ori_hb.yaml +0 -0
  277. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/debug/default.yaml +0 -0
  278. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/debug/train_specific_examples.yaml +0 -0
  279. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/dev.yaml +0 -0
  280. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/experiment/debug.yaml +0 -0
  281. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/experiment/test-uncond.yaml +0 -0
  282. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/experiment/test-unindexed.yaml +0 -0
  283. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/hydra/default.yaml +0 -0
  284. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/hydra/no_logging.yaml +0 -0
  285. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/inference.yaml +0 -0
  286. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/inference_engine/base.yaml +0 -0
  287. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/inference_engine/dev.yaml +0 -0
  288. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/inference_engine/rfdiffusion3.yaml +0 -0
  289. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/logger/csv.yaml +0 -0
  290. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/logger/default.yaml +0 -0
  291. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/logger/wandb.yaml +0 -0
  292. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/model/components/ema.yaml +0 -0
  293. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/model/components/rfd3_net.yaml +0 -0
  294. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/model/optimizers/adam.yaml +0 -0
  295. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/model/rfd3_base.yaml +0 -0
  296. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/model/samplers/edm.yaml +0 -0
  297. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/model/samplers/symmetry.yaml +0 -0
  298. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/model/schedulers/af3.yaml +0 -0
  299. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/paths/data/default.yaml +0 -0
  300. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/paths/default.yaml +0 -0
  301. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/train.yaml +0 -0
  302. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/trainer/cpu.yaml +0 -0
  303. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/trainer/ddp.yaml +0 -0
  304. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/trainer/loss/losses/diffusion_loss.yaml +0 -0
  305. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/trainer/loss/losses/sequence_loss.yaml +0 -0
  306. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/trainer/metrics/design_metrics.yaml +0 -0
  307. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/trainer/rfd3_base.yaml +0 -0
  308. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/configs/validate.yaml +0 -0
  309. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/docs/demo.json +0 -0
  310. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/docs/input.md +0 -0
  311. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/docs/input_pdbs/4zxb_croppped.pdb +0 -0
  312. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/docs/input_pdbs/5o45_cropped.pdb +0 -0
  313. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/docs/input_pdbs/7v11.pdb +0 -0
  314. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/docs/input_pdbs/IAI.pdb +0 -0
  315. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/docs/input_pdbs/M0255_1mg5.pdb +0 -0
  316. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/docs/protein_binder_design.md +0 -0
  317. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/docs/sm_binder_design.md +0 -0
  318. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/docs/symmetry.md +0 -0
  319. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/.gitignore +0 -0
  320. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/Makefile +0 -0
  321. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/__init__.py +0 -0
  322. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/callbacks.py +0 -0
  323. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/cli.py +0 -0
  324. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/constants.py +0 -0
  325. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/engine.py +0 -0
  326. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/inference/datasets.py +0 -0
  327. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/inference/input_parsing.py +0 -0
  328. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/inference/legacy_input_parsing.py +0 -0
  329. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/inference/parsing.py +0 -0
  330. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/inference/symmetry/atom_array.py +0 -0
  331. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/inference/symmetry/checks.py +0 -0
  332. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/inference/symmetry/contigs.py +0 -0
  333. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/inference/symmetry/frames.py +0 -0
  334. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/inference/symmetry/symmetry_utils.py +0 -0
  335. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/metrics/design_metrics.py +0 -0
  336. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/metrics/hbonds_hbplus_metrics.py +0 -0
  337. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/metrics/hbonds_metrics.py +0 -0
  338. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/metrics/losses.py +0 -0
  339. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/metrics/metrics_utils.py +0 -0
  340. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/metrics/sidechain_metrics.py +0 -0
  341. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/model/RFD3.py +0 -0
  342. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/model/RFD3_diffusion_module.py +0 -0
  343. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/model/cfg_utils.py +0 -0
  344. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/model/inference_sampler.py +0 -0
  345. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/model/layers/attention.py +0 -0
  346. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/model/layers/block_utils.py +0 -0
  347. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/model/layers/blocks.py +0 -0
  348. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/model/layers/chunked_pairwise.py +0 -0
  349. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/model/layers/encoders.py +0 -0
  350. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/model/layers/layer_utils.py +0 -0
  351. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/model/layers/pairformer_layers.py +0 -0
  352. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/run_inference.py +0 -0
  353. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/testing/debug.py +0 -0
  354. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/testing/debug_utils.py +0 -0
  355. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/testing/testing_utils.py +0 -0
  356. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/train.py +0 -0
  357. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/trainer/dump_validation_structures.py +0 -0
  358. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/trainer/fabric_trainer.py +0 -0
  359. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/trainer/recycling.py +0 -0
  360. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/trainer/rfd3.py +0 -0
  361. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/trainer/trainer_utils.py +0 -0
  362. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/conditioning_base.py +0 -0
  363. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/conditioning_utils.py +0 -0
  364. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/design_transforms.py +0 -0
  365. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/dna_crop.py +0 -0
  366. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/hbonds.py +0 -0
  367. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/hbonds_hbplus.py +0 -0
  368. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/ncaa_transforms.py +0 -0
  369. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/pipelines.py +0 -0
  370. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/ppi_transforms.py +0 -0
  371. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/rasa.py +0 -0
  372. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/symmetry.py +0 -0
  373. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/training_conditions.py +0 -0
  374. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/util_transforms.py +0 -0
  375. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/transforms/virtual_atoms.py +0 -0
  376. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/utils/inference.py +0 -0
  377. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/utils/io.py +0 -0
  378. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/src/rfd3/utils/vizualize.py +0 -0
  379. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/conftest.py +0 -0
  380. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/test_aa_design.py +0 -0
  381. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/test_conditioning.py +0 -0
  382. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/test_glycines.py +0 -0
  383. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/test_legacy_pipeline_equivalence.py +0 -0
  384. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/test_metrics.py +0 -0
  385. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/test_partial_diffusion.py +0 -0
  386. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/test_selections.py +0 -0
  387. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/test_subgraph_sampling.py +0 -0
  388. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/test_symmetry.py +0 -0
  389. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/test_tokenization.py +0 -0
  390. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/test_unindexing.py +0 -0
  391. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/transforms/regression_test_data/1p5d_0_inference_pretrain.pkl +0 -0
  392. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/transforms/regression_test_data/1p5d_0_train_pretrain.pkl +0 -0
  393. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/transforms/regression_test_data/1qys_0_inference_pretrain.pkl +0 -0
  394. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/transforms/regression_test_data/1qys_0_train_pretrain.pkl +0 -0
  395. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/transforms/regression_test_data/af2_122_train_test_unindexed.pkl +0 -0
  396. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/models/rfd3/tests/transforms/test_pipeline_regression.py +0 -0
  397. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/pyproject.toml +0 -0
  398. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/refactor.sh +0 -0
  399. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/__init__.py +0 -0
  400. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/callbacks/__init__.py +0 -0
  401. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/callbacks/callback.py +0 -0
  402. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/callbacks/health_logging.py +0 -0
  403. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/callbacks/metrics_logging.py +0 -0
  404. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/callbacks/timing_logging.py +0 -0
  405. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/callbacks/train_logging.py +0 -0
  406. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/common.py +0 -0
  407. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/constants.py +0 -0
  408. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/hydra/resolvers.py +0 -0
  409. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/inference_engines/base.py +0 -0
  410. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/inference_engines/checkpoint_registry.py +0 -0
  411. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/metrics/__init__.py +0 -0
  412. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/metrics/losses.py +0 -0
  413. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/metrics/metric.py +0 -0
  414. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/model/layers/blocks.py +0 -0
  415. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/testing/__init__.py +0 -0
  416. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/testing/fixtures.py +0 -0
  417. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/testing/pytest_hooks.py +0 -0
  418. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/trainers/fabric.py +0 -0
  419. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/training/EMA.py +0 -0
  420. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/training/checkpoint.py +0 -0
  421. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/training/schedulers.py +0 -0
  422. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/utils/alignment.py +0 -0
  423. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/utils/components.py +0 -0
  424. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/utils/datasets.py +0 -0
  425. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/utils/ddp.py +0 -0
  426. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/utils/instantiators.py +0 -0
  427. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/utils/logging.py +0 -0
  428. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/utils/rigid.py +0 -0
  429. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/utils/rotation_augmentation.py +0 -0
  430. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/utils/squashfs.py +0 -0
  431. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/utils/torch.py +0 -0
  432. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry/utils/weights.py +0 -0
  433. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/src/foundry_cli/__init__.py +0 -0
  434. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/tests/conftest.py +0 -0
  435. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/tests/test_torch_utils.py +0 -0
  436. {rc_foundry-0.1.1 → rc_foundry-0.1.2}/tests/test_weight_loading.py +0 -0
rc_foundry-0.1.2/.git ADDED
@@ -0,0 +1 @@
1
+ gitdir: /home/ncorley/projects/modelhub/modelhub.git/worktrees/modelworks
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rc-foundry
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Shared utilities and training infrastructure for biomolecular structure prediction models.
5
5
  Author-email: Institute for Protein Design <contact@ipd.uw.edu>
6
6
  License: BSD 3-Clause License
@@ -95,8 +95,6 @@ Description-Content-Type: text/markdown
95
95
 
96
96
  Foundry provides tooling and infrastructure for using and training all classes of models for protein design, including design (RFD3), inverse folding (ProteinMPNN) and protein folding (RF3).
97
97
 
98
- All models within Foundry rely on [AtomWorks](https://github.com/RosettaCommons/atomworks) - a unified framework for manipulating and processing biomolecular structures - for both training and inference.
99
-
100
98
  ## Getting Started
101
99
  ### Quickstart guide
102
100
  **Installation**
@@ -109,14 +107,14 @@ pip install rc-foundry[all]
109
107
  ```
110
108
  foundry install all --checkpoint_dir <path/to/ckpt/dir>
111
109
  ```
112
- This will download all the models supported (including multiple checkpoints of RF3) but as a beginner you can start with:
110
+ This will download all the models supported (including multiple checkpoints of rf3) but as a beginner you can start with:
113
111
  ```
114
112
  foundry install rfd3 ligandmpnn rf3 --checkpoint_dir <path/to/ckpt/dir>
115
113
  ```
116
114
 
117
115
  >*See `examples/all.ipynb` for how to run each model in a notebook.*
118
116
 
119
- ### RFdiffusion3 (RFD3)
117
+ ### RFdiffusion3
120
118
 
121
119
  [RFdiffusion3](https://www.biorxiv.org/content/10.1101/2025.09.18.676967v2) is an all-atom generative model capable of designing protein structures under complex constraints.
122
120
 
@@ -131,8 +129,7 @@ foundry install rfd3 ligandmpnn rf3 --checkpoint_dir <path/to/ckpt/dir>
131
129
 
132
130
  > *See [models/mpnn/README.md](models/mpnn/README.md) for complete documentation.*
133
131
 
134
-
135
- ### RosettaFold3 (RF3)
132
+ ### RosettaFold3
136
133
 
137
134
  [RF3](https://doi.org/10.1101/2025.08.14.670328) is a structure prediction neural network that narrows the gap between closed-source AF-3 and open-source alternatives.
138
135
 
@@ -2,8 +2,6 @@
2
2
 
3
3
  Foundry provides tooling and infrastructure for using and training all classes of models for protein design, including design (RFD3), inverse folding (ProteinMPNN) and protein folding (RF3).
4
4
 
5
- All models within Foundry rely on [AtomWorks](https://github.com/RosettaCommons/atomworks) - a unified framework for manipulating and processing biomolecular structures - for both training and inference.
6
-
7
5
  ## Getting Started
8
6
  ### Quickstart guide
9
7
  **Installation**
@@ -16,14 +14,14 @@ pip install rc-foundry[all]
16
14
  ```
17
15
  foundry install all --checkpoint_dir <path/to/ckpt/dir>
18
16
  ```
19
- This will download all the models supported (including multiple checkpoints of RF3) but as a beginner you can start with:
17
+ This will download all the models supported (including multiple checkpoints of rf3) but as a beginner you can start with:
20
18
  ```
21
19
  foundry install rfd3 ligandmpnn rf3 --checkpoint_dir <path/to/ckpt/dir>
22
20
  ```
23
21
 
24
22
  >*See `examples/all.ipynb` for how to run each model in a notebook.*
25
23
 
26
- ### RFdiffusion3 (RFD3)
24
+ ### RFdiffusion3
27
25
 
28
26
  [RFdiffusion3](https://www.biorxiv.org/content/10.1101/2025.09.18.676967v2) is an all-atom generative model capable of designing protein structures under complex constraints.
29
27
 
@@ -38,8 +36,7 @@ foundry install rfd3 ligandmpnn rf3 --checkpoint_dir <path/to/ckpt/dir>
38
36
 
39
37
  > *See [models/mpnn/README.md](models/mpnn/README.md) for complete documentation.*
40
38
 
41
-
42
- ### RosettaFold3 (RF3)
39
+ ### RosettaFold3
43
40
 
44
41
  [RF3](https://doi.org/10.1101/2025.08.14.670328) is a structure prediction neural network that narrows the gap between closed-source AF-3 and open-source alternatives.
45
42
 
@@ -1,10 +1,26 @@
1
- {
2
- "dsDNA_basic": {
1
+ {
2
+ "dsDNA_basic": {
3
3
  "input": "./input_pdbs/1bna.pdb",
4
4
  "contig": "A1-10,/0,B15-24,/0,120-130",
5
5
  "length": "140-150",
6
6
  "ori_token": [24,20,10]
7
7
  },
8
+ "dsDNA_complex": {
9
+ "input": "./input_pdbs/2r5z.pdb",
10
+ "contig": "C5-18,/0,D24-37,/0,40-50,A146-154,80-90",
11
+ "length": "147-167",
12
+ "unindex": "/0,/0,B251-B255",
13
+ "select_fixed_atoms": {
14
+ "C9-14":"ALL",
15
+ "D28-33":"ALL",
16
+ "C5-8,C15-18": "",
17
+ "D24-27,D34-37": ""
18
+ },
19
+ "ori_token":[25,35,20],
20
+ "select_hbond_acceptor": {"C16":"N7,O6", "D31-32":"N7", "D28-30":"OP1,OP2,O3',O5'"},
21
+ "select_hbond_donor": {"D31-32":"N6"}
22
+
23
+ },
8
24
  "ssDNA_basic": {
9
25
  "input": "./input_pdbs/5o4d.pdb",
10
26
  "contig": "A1-23,/0,120-130",
@@ -22,21 +38,5 @@
22
38
  "contig": "A1-15,/0,120-130",
23
39
  "length": "135-145",
24
40
  "ori_token": [15,2,-4]
25
- },
26
- "dsDNA_complex": {
27
- "input": "./input_pdbs/2r5z.pdb",
28
- "contig": "C5-18,/0,D24-37,/0,40-50,A146-154,80-90",
29
- "length": "147-167",
30
- "unindex": "/0,/0,B251-B255",
31
- "select_fixed_atoms": {
32
- "C9-14":"ALL",
33
- "D28-33":"ALL",
34
- "C5-8,C15-18": "",
35
- "D24-27,D34-37": ""
36
- },
37
- "ori_token":[25,35,20],
38
- "select_hbond_acceptor": {"C16":"N7,O6", "D31-32":"N7", "D28-30":"OP1,OP2,O3',O5'"},
39
- "select_hbond_donor": {"D31-32":"N6"}
40
-
41
41
  }
42
42
  }
@@ -1,6 +1,6 @@
1
1
  #!/bin/bash
2
2
 
3
- foundry=../../../
3
+ foundry=../../../../
4
4
 
5
5
  export PYTHONPATH="$foundry/src:$foundry/models/rfd3/src/"
6
6
 
@@ -8,7 +8,7 @@ export PYTHONPATH="$foundry/src:$foundry/models/rfd3/src/"
8
8
  outdir=./na_tutorial_outputs/
9
9
  rm $outdir/*
10
10
  ckpt_path=rfd3_foundry_2025_12_01.ckpt
11
- uv run python $foundry/models/rfd3/src/rfd3/run_inference.py ckpt_path=$ckpt_path out_dir=$outdir inputs=./na_binder_design.json n_batches=2 diffusion_batch_size=3 cleanup_virtual_atoms=True
11
+ uv run python $foundry/models/rfd3/src/rfd3/run_inference.py ckpt_path=$ckpt_path out_dir=$outdir inputs=./na_tutorial.json n_batches=2 diffusion_batch_size=3 cleanup_virtual_atoms=True
12
12
 
13
13
  #some cleanup
14
14
  rm *.hb2
@@ -0,0 +1,462 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {
6
+ "id": "colab-header"
7
+ },
8
+ "source": "# Example: End-To-End *De Novo* Protein Design Pipeline\n\n## Overview\n\nThis notebook demonstrates an end-to-end protein design workflow using three deep learning networks from the Institute for Protein Design:\n\n| Step | Model | Purpose |\n|------|-------|---------|\n| 1. **Backbone Generation** | RFD3 | Generate novel protein backbones via diffusion |\n| 2. **Sequence Design** | MPNN | Design amino acid sequences for the generated backbone |\n| 3. **Structure Validation** | RF3 | Predict the structure from designed sequence to validate designability |\n\nAll models are unified through [Foundry](https://github.com/RosettaCommons/foundry) and [AtomWorks](https://github.com/RosettaCommons/atomworks), relying on Biotite `AtomArray` objects for both inference and training.\n\n### Pipeline Flow\n```\nRFD3 (backbone) → MPNN (sequence) → RF3 (validation) → RMSD comparison\n```\n\n---"
9
+ },
10
+ {
11
+ "cell_type": "markdown",
12
+ "metadata": {
13
+ "id": "setup-instructions"
14
+ },
15
+ "source": [
16
+ "## ⚠️ Setup Instructions\n",
17
+ "\n",
18
+ "1. **Enable GPU**: Go to `Runtime` → `Change runtime type` → Select **T4 GPU** (or A100 for faster inference)\n",
19
+ "2. **Run the installation cell below** (takes ~3-5 minutes)\n",
20
+ "3. **Restart runtime** when prompted after installation"
21
+ ]
22
+ },
23
+ {
24
+ "cell_type": "code",
25
+ "execution_count": null,
26
+ "metadata": {
27
+ "id": "install-deps"
28
+ },
29
+ "outputs": [],
30
+ "source": "# Install uv and create a clean environment\n!pip install uv -q\n!uv venv venv --python 3.12\n\n# Install rc-foundry\n!uv pip install rc-foundry[all] --python venv/bin/python\n\n# Add venv to path so imports work\nimport sys\nsys.path.insert(0, 'venv/lib/python3.12/site-packages')\n\n# Download model checkpoints\n!venv/bin/foundry install rfd3 ligandmpnn rf3"
31
+ },
32
+ {
33
+ "cell_type": "code",
34
+ "execution_count": null,
35
+ "metadata": {
36
+ "id": "verify-gpu"
37
+ },
38
+ "outputs": [],
39
+ "source": [
40
+ "# Verify GPU is available\n",
41
+ "import torch\n",
42
+ "print(f\"PyTorch version: {torch.__version__}\")\n",
43
+ "print(f\"CUDA available: {torch.cuda.is_available()}\")\n",
44
+ "if torch.cuda.is_available():\n",
45
+ " print(f\"GPU: {torch.cuda.get_device_name(0)}\")"
46
+ ]
47
+ },
48
+ {
49
+ "cell_type": "code",
50
+ "execution_count": null,
51
+ "metadata": {
52
+ "id": "819e8193"
53
+ },
54
+ "outputs": [],
55
+ "source": [
56
+ "# Shared utilities for visualization (from AtomWorks)\n",
57
+ "from atomworks.io.utils.visualize import view"
58
+ ]
59
+ },
60
+ {
61
+ "cell_type": "markdown",
62
+ "metadata": {
63
+ "id": "a7tw5gds8p"
64
+ },
65
+ "source": [
66
+ "---\n",
67
+ "\n",
68
+ "## Section 1: Backbone Generation with RFD3\n",
69
+ "\n",
70
+ "RFdiffusion3 (RFD3) generates *de novo* all-atom proteins that meet specific conditioning requirements.\n",
71
+ "\n",
72
+ "**Parameters Used** *(many more are available for more complex protein design tasks)*:\n",
73
+ "- `length`: Target protein length in residues\n",
74
+ "- `diffusion_batch_size`: Number of structures to generate per batch\n",
75
+ "- `n_batches`: Number of batches to run\n",
76
+ "\n",
77
+ "**Outputs:** Dictionary of `RFD3Output` objects."
78
+ ]
79
+ },
80
+ {
81
+ "cell_type": "code",
82
+ "execution_count": null,
83
+ "metadata": {
84
+ "id": "d16cb95b-3f4c-4167-952b-278bdb561bf7"
85
+ },
86
+ "outputs": [],
87
+ "source": [
88
+ "from lightning.fabric import seed_everything\n",
89
+ "from rfd3.engine import RFD3InferenceConfig, RFD3InferenceEngine\n",
90
+ "\n",
91
+ "# Set seed for reproducibility\n",
92
+ "seed_everything(0)\n",
93
+ "\n",
94
+ "# Configure RFD3 inference\n",
95
+ "config = RFD3InferenceConfig(\n",
96
+ " specification={\n",
97
+ " 'length': 15, # Generate 80-residue proteins\n",
98
+ " },\n",
99
+ " diffusion_batch_size=2, # Generate 2 structures per batch\n",
100
+ ")\n",
101
+ "\n",
102
+ "# Initialize engine and run generation\n",
103
+ "model = RFD3InferenceEngine(**config)\n",
104
+ "outputs = model.run(\n",
105
+ " inputs=None, # None for unconditional generation\n",
106
+ " out_dir=None, # None to return in memory (no file output)\n",
107
+ " n_batches=1, # Generate 1 batch\n",
108
+ ")"
109
+ ]
110
+ },
111
+ {
112
+ "cell_type": "code",
113
+ "execution_count": null,
114
+ "metadata": {
115
+ "id": "86adad90"
116
+ },
117
+ "outputs": [],
118
+ "source": [
119
+ "# View generated example IDs (one key per generated structure)\n",
120
+ "outputs.keys()"
121
+ ]
122
+ },
123
+ {
124
+ "cell_type": "code",
125
+ "execution_count": null,
126
+ "metadata": {
127
+ "id": "35253ef3-2ce1-4dca-958a-63b359b70d73"
128
+ },
129
+ "outputs": [],
130
+ "source": [
131
+ "# Inspect RFD3 outputs and extract the generated backbone\n",
132
+ "for idx, data in outputs.items():\n",
133
+ " print(f\"Batch {idx}: {len(data)} structure(s)\")\n",
134
+ " print(f\" Output type: {type(data[0]).__name__}\")\n",
135
+ " print(f\" AtomArray: {data[0].atom_array}\")\n",
136
+ "\n",
137
+ "# Extract the first generated backbone for downstream use\n",
138
+ "first_key = next(iter(outputs.keys()))\n",
139
+ "atom_array = outputs[first_key][0].atom_array\n",
140
+ "\n",
141
+ "# Visualize the generated backbone\n",
142
+ "view(atom_array)"
143
+ ]
144
+ },
145
+ {
146
+ "cell_type": "markdown",
147
+ "metadata": {
148
+ "id": "1cziwe2nb26h"
149
+ },
150
+ "source": [
151
+ "---\n",
152
+ "\n",
153
+ "## Section 2: Sequence Design with MPNN\n",
154
+ "\n",
155
+ "Protein and Ligand MPNN (Message Passing Neural Network) designs amino acid sequences that will fold into a target backbone structure.\n",
156
+ "\n",
157
+ "**Model Options:**\n",
158
+ "- `protein_mpnn`: Original ProteinMPNN for protein-only design\n",
159
+ "- `ligand_mpnn`: Extended model supporting ligand-aware design\n",
160
+ "\n",
161
+ "**Key Parameters:**\n",
162
+ "- `batch_size`: Number of sequences to generate per structure\n",
163
+ "- `remove_waters`: Whether to exclude water molecules from context"
164
+ ]
165
+ },
166
+ {
167
+ "cell_type": "code",
168
+ "execution_count": null,
169
+ "metadata": {
170
+ "id": "d07ae413"
171
+ },
172
+ "outputs": [],
173
+ "source": [
174
+ "from mpnn.inference_engines.mpnn import MPNNInferenceEngine\n",
175
+ "\n",
176
+ "# Configure MPNN inference engine\n",
177
+ "# See mpnn.utils.inference.MPNN_GLOBAL_INFERENCE_DEFAULTS for all options\n",
178
+ "engine_config = {\n",
179
+ " \"model_type\": \"ligand_mpnn\", # or \"protein_mpnn\" for vanilla ProteinMPNN\n",
180
+ " \"is_legacy_weights\": True, # Required for now for ligand_mpnn and protein_mpnn\n",
181
+ " \"out_directory\": None, # Return results in memory\n",
182
+ " \"write_structures\": False,\n",
183
+ " \"write_fasta\": False,\n",
184
+ "}\n",
185
+ "\n",
186
+ "# Configure per-input inference options\n",
187
+ "# See mpnn.utils.inference.MPNN_PER_INPUT_INFERENCE_DEFAULTS for all options\n",
188
+ "input_configs = [\n",
189
+ " {\n",
190
+ " \"batch_size\": 10, # Generate 10 sequences per structure\n",
191
+ " \"remove_waters\": True,\n",
192
+ " }\n",
193
+ "]\n",
194
+ "\n",
195
+ "# Run sequence design on the RFD3-generated backbone\n",
196
+ "model = MPNNInferenceEngine(**engine_config)\n",
197
+ "mpnn_outputs = model.run(input_dicts=input_configs, atom_arrays=[atom_array])"
198
+ ]
199
+ },
200
+ {
201
+ "cell_type": "code",
202
+ "execution_count": null,
203
+ "metadata": {
204
+ "id": "75f5e558-3323-4094-9cce-c5a19b54f4cf"
205
+ },
206
+ "outputs": [],
207
+ "source": [
208
+ "from biotite.structure import get_residue_starts\n",
209
+ "from biotite.sequence import ProteinSequence\n",
210
+ "\n",
211
+ "# Extract and display the designed sequences\n",
212
+ "print(f\"Generated {len(mpnn_outputs)} designed sequences:\\n\")\n",
213
+ "\n",
214
+ "for i, item in enumerate(mpnn_outputs):\n",
215
+ " res_starts = get_residue_starts(item.atom_array)\n",
216
+ " # Convert 3-letter codes to 1-letter using Biotite\n",
217
+ " seq_1letter = ''.join(\n",
218
+ " ProteinSequence.convert_letter_3to1(res_name)\n",
219
+ " for res_name in item.atom_array.res_name[res_starts]\n",
220
+ " )\n",
221
+ " print(f\"Sequence {i+1}: {seq_1letter}\")"
222
+ ]
223
+ },
224
+ {
225
+ "cell_type": "markdown",
226
+ "metadata": {
227
+ "id": "te84j9ce9rn"
228
+ },
229
+ "source": [
230
+ "---\n",
231
+ "\n",
232
+ "## Section 3: Structure Prediction with RF3\n",
233
+ "\n",
234
+ "RF3 (RoseTTAFold 3) predicts protein structures from sequences. By re-folding the MPNN-designed sequence, we can validate whether the design is likely to adopt the intended backbone structure.\n",
235
+ "\n",
236
+ "**Outputs:** `RF3Output` objects containing:\n",
237
+ "- `atom_array`: Predicted structure as Biotite AtomArray\n",
238
+ "- `summary_confidences`: Overall confidence metrics (pLDDT, PAE, pTM, etc.)\n",
239
+ "- `confidences`: Per-atom/residue confidence scores\n",
240
+ "\n",
241
+ "**Confidence Metrics:**\n",
242
+ "| Metric | Description |\n",
243
+ "|--------|-------------|\n",
244
+ "| pLDDT | Per-residue confidence (0-1, higher is better) |\n",
245
+ "| PAE | Predicted Aligned Error (lower is better) |\n",
246
+ "| pTM | Predicted TM-score |\n",
247
+ "| ranking_score | Overall model quality score |"
248
+ ]
249
+ },
250
+ {
251
+ "cell_type": "code",
252
+ "execution_count": null,
253
+ "metadata": {
254
+ "id": "d85eda46-4dca-4e92-8946-73b69a5536e3"
255
+ },
256
+ "outputs": [],
257
+ "source": [
258
+ "from rf3.inference_engines.rf3 import RF3InferenceEngine\n",
259
+ "from rf3.utils.inference import InferenceInput\n",
260
+ "\n",
261
+ "\n",
262
+ "# Initialize RF3 inference engine\n",
263
+ "inference_engine = RF3InferenceEngine(ckpt_path='rf3_preprint_921', verbose=False)\n",
264
+ "\n",
265
+ "# Create input from the MPNN-designed structure (first design)\n",
266
+ "# This re-folds the sequence to validate it adopts the intended structure\n",
267
+ "input_structure = InferenceInput.from_atom_array(atom_array, example_id=\"example_protein\")\n",
268
+ "rf3_outputs = inference_engine.run(inputs=input_structure)\n",
269
+ "\n",
270
+ "# Outputs: dict mapping example_id -> list[RF3Output] (multiple models per input)\n",
271
+ "print(f\"Output keys: {rf3_outputs.keys()}\")\n",
272
+ "print(f\"Number of models for 'example_protein': {len(rf3_outputs['example_protein'])}\")"
273
+ ]
274
+ },
275
+ {
276
+ "cell_type": "code",
277
+ "execution_count": null,
278
+ "metadata": {
279
+ "id": "f7113c03"
280
+ },
281
+ "outputs": [],
282
+ "source": [
283
+ "# Extract the top-ranked prediction\n",
284
+ "rf3_output = rf3_outputs[\"example_protein\"][0]\n",
285
+ "\n",
286
+ "# Inspect RF3Output structure\n",
287
+ "print(f\"RF3Output contains:\")\n",
288
+ "print(f\" - atom_array: {len(rf3_output.atom_array)} atoms\")\n",
289
+ "print(f\" - summary_confidences: {list(rf3_output.summary_confidences.keys())}\")\n",
290
+ "print(f\" - confidences: {list(rf3_output.confidences.keys()) if rf3_output.confidences else None}\")\n",
291
+ "\n",
292
+ "# Visualize the predicted structure\n",
293
+ "view(rf3_output.atom_array)"
294
+ ]
295
+ },
296
+ {
297
+ "cell_type": "code",
298
+ "execution_count": null,
299
+ "metadata": {
300
+ "id": "6mqnovlrygo"
301
+ },
302
+ "outputs": [],
303
+ "source": [
304
+ "# Summary confidences: overall model quality metrics\n",
305
+ "summary = rf3_output.summary_confidences\n",
306
+ "\n",
307
+ "print(\"=== Summary Confidences ===\")\n",
308
+ "print(f\" Overall pLDDT: {summary['overall_plddt']:.3f}\")\n",
309
+ "print(f\" Overall PAE: {summary['overall_pae']:.2f} A\")\n",
310
+ "print(f\" Overall PDE: {summary['overall_pde']:.3f}\")\n",
311
+ "print(f\" pTM: {summary['ptm']:.3f}\")\n",
312
+ "print(f\" ipTM: {summary.get('iptm', 'N/A (single chain)')}\")\n",
313
+ "print(f\" Ranking score: {summary['ranking_score']:.3f}\")\n",
314
+ "print(f\" Has clash: {summary['has_clash']}\")"
315
+ ]
316
+ },
317
+ {
318
+ "cell_type": "code",
319
+ "execution_count": null,
320
+ "metadata": {
321
+ "id": "g5gupirgy6"
322
+ },
323
+ "outputs": [],
324
+ "source": [
325
+ "# Detailed per-atom/residue confidences\n",
326
+ "conf = rf3_output.confidences\n",
327
+ "\n",
328
+ "print(\"=== Per-Atom/Residue Confidences ===\")\n",
329
+ "print(f\" atom_plddts: {len(conf['atom_plddts'])} values (one per atom)\")\n",
330
+ "print(f\" atom_chain_ids: {len(conf['atom_chain_ids'])} values\")\n",
331
+ "print(f\" token_chain_ids: {len(conf['token_chain_ids'])} values (one per residue)\")\n",
332
+ "print(f\" token_res_ids: {len(conf['token_res_ids'])} values\")\n",
333
+ "print(f\" PAE matrix: {len(conf['pae'])}x{len(conf['pae'][0])}\")\n",
334
+ "\n",
335
+ "# Preview first 10 atom pLDDT scores\n",
336
+ "import numpy as np\n",
337
+ "print(f\"\\nFirst 10 atom pLDDTs: {np.round(conf['atom_plddts'][:10], 2).tolist()}\")"
338
+ ]
339
+ },
340
+ {
341
+ "cell_type": "markdown",
342
+ "metadata": {
343
+ "id": "0epbqi91bv3n"
344
+ },
345
+ "source": [
346
+ "---\n",
347
+ "\n",
348
+ "## Section 4: Validation and Export\n",
349
+ "\n",
350
+ "The final step compares the RF3-predicted structure against the original RFD3-generated backbone. A low backbone RMSD indicates the designed sequence is likely to fold into the intended structure (high designability)."
351
+ ]
352
+ },
353
+ {
354
+ "cell_type": "code",
355
+ "execution_count": null,
356
+ "metadata": {
357
+ "id": "238a0241"
358
+ },
359
+ "outputs": [],
360
+ "source": [
361
+ "from biotite.structure import rmsd, superimpose\n",
362
+ "from atomworks.constants import PROTEIN_BACKBONE_ATOM_NAMES\n",
363
+ "import numpy as np\n",
364
+ "\n",
365
+ "# Get structures for comparison\n",
366
+ "aa_generated = atom_array # Original RFD3 backbone (from Section 1)\n",
367
+ "aa_refolded = rf3_output.atom_array # RF3-predicted structure\n",
368
+ "\n",
369
+ "# Filter to backbone atoms (N, CA, C, O)\n",
370
+ "bb_generated = aa_generated[np.isin(aa_generated.atom_name, PROTEIN_BACKBONE_ATOM_NAMES)]\n",
371
+ "bb_refolded = aa_refolded[np.isin(aa_refolded.atom_name, PROTEIN_BACKBONE_ATOM_NAMES)]\n",
372
+ "\n",
373
+ "# Superimpose structures and calculate RMSD\n",
374
+ "bb_refolded_fitted, _ = superimpose(bb_generated, bb_refolded)\n",
375
+ "rmsd_value = rmsd(bb_generated, bb_refolded_fitted)\n",
376
+ "\n",
377
+ "print(f\"Backbone RMSD: {rmsd_value:.2f} A\")\n",
378
+ "print(f\"\\nInterpretation: {'Excellent' if rmsd_value < 1.0 else 'Good' if rmsd_value < 2.0 else 'Moderate'} designability\")"
379
+ ]
380
+ },
381
+ {
382
+ "cell_type": "code",
383
+ "execution_count": null,
384
+ "metadata": {
385
+ "id": "9070ead8"
386
+ },
387
+ "outputs": [],
388
+ "source": [
389
+ "from atomworks.io.utils.io_utils import to_cif_file\n",
390
+ "\n",
391
+ "# Export structures to CIF format for visualization in PyMOL/ChimeraX\n",
392
+ "to_cif_file(aa_generated, \"generated.cif\")\n",
393
+ "to_cif_file(aa_refolded, \"refolded.cif\")\n",
394
+ "\n",
395
+ "print(\"Exported structures:\")\n",
396
+ "print(\" - generated.cif: Original RFD3 backbone\")\n",
397
+ "print(\" - refolded.cif: RF3-predicted structure\")\n",
398
+ "print(\"\\nDownload these files from the Files panel on the left (folder icon)\")"
399
+ ]
400
+ },
401
+ {
402
+ "cell_type": "markdown",
403
+ "metadata": {
404
+ "id": "6fc67730"
405
+ },
406
+ "source": [
407
+ "### Superimposed Result\n",
408
+ "\n",
409
+ "The image below shows the generated backbone (RFD3) superimposed with the re-folded structure (RF3). Close alignment indicates successful design.\n",
410
+ "\n",
411
+ "![Superimposed Protein](https://raw.githubusercontent.com/RosettaCommons/modelworks/main/docs/_static/superimposed_80_residue_protein.png)"
412
+ ]
413
+ },
414
+ {
415
+ "cell_type": "markdown",
416
+ "metadata": {
417
+ "id": "optional-gdrive"
418
+ },
419
+ "source": [
420
+ "---\n",
421
+ "\n",
422
+ "## (Optional) Save to Google Drive\n",
423
+ "\n",
424
+ "Mount Google Drive to save outputs permanently:"
425
+ ]
426
+ },
427
+ {
428
+ "cell_type": "code",
429
+ "execution_count": null,
430
+ "metadata": {
431
+ "id": "mount-gdrive"
432
+ },
433
+ "outputs": [],
434
+ "source": [
435
+ "# Uncomment to mount Google Drive and save outputs\n",
436
+ "# from google.colab import drive\n",
437
+ "# drive.mount('/content/drive')\n",
438
+ "\n",
439
+ "# # Save to Drive\n",
440
+ "# to_cif_file(aa_generated, \"/content/drive/MyDrive/generated.cif\")\n",
441
+ "# to_cif_file(aa_refolded, \"/content/drive/MyDrive/refolded.cif\")"
442
+ ]
443
+ }
444
+ ],
445
+ "metadata": {
446
+ "accelerator": "GPU",
447
+ "colab": {
448
+ "gpuType": "T4",
449
+ "provenance": []
450
+ },
451
+ "kernelspec": {
452
+ "display_name": "Python 3",
453
+ "name": "python3"
454
+ },
455
+ "language_info": {
456
+ "name": "python",
457
+ "version": "3.12"
458
+ }
459
+ },
460
+ "nbformat": 4,
461
+ "nbformat_minor": 0
462
+ }
@@ -0,0 +1,29 @@
1
+ # ProteinMPNN and LigandMPNN
2
+
3
+ > [!WARNING]
4
+ > **Benchmarking**: Please use the old repositories of ProteinMPNN and LigandMPNN for model benchmarking/comparison until the API and public weights stabilize. We are in the process of validating that the re-implementation (both the retrained version and the old weight loading option) is as performant as the original models.
5
+
6
+ > [!IMPORTANT]
7
+ > **Issues**: Please provide feedback on any issues you encounter with the ProteinMPNN/LigandMPNN re-implementation. We are particularly interested in discrepancies between the original models and this re-implementation, issues with performance when loading the original weights from the old repositories, problems with inference hyperparameters/conditioning, and input/output bugs.
8
+
9
+ > [!IMPORTANT]
10
+ > **API Instability**: We are currently finalizing some cleanup work on the inference API and training code. Please expect the API (including input formats and outputs) to stabilize in the upcoming weeks. Thank you for your patience!
11
+
12
+ > [!IMPORTANT]
13
+ > **Training Code and New Weights**: We are working to release the dataframes used for retrianing the ProteinMPNN and LigandMPNN re-implementations. Also, we are finalizing the retraining runs and will release weights retrained within this repository shortly.
14
+
15
+ ProteinMPNN enables protein sequence design given a fixed backbone structure of a protein. LigandMPNN extends this functionality to enable fixed-backbone sequence design of proteins in the context of ligands (i.e. small molecules, ions, DNA/RNA, etc.). This module represents a re-implementation of the original ProteinMPNN and LigandMPNN models within the modelforge/atomworks framework.
16
+
17
+ For more information on the original models, please see:
18
+ - [Robust deep learning–based protein sequence design using ProteinMPNN](https://doi.org/10.1126/science.add2187) | [ProteinMPNN Original Github](https://github.com/dauparas/ProteinMPNN)
19
+ - [Atomic context-conditioned protein sequence design using LigandMPNN](https://doi.org/10.1038/s41592-025-02626-1) | [LigandMPNN Original Github](https://github.com/dauparas/LigandMPNN)
20
+
21
+ This guide provides instructions on preparing inputs and running inference for ProteinMPNN/LigandMPNN, as well as training these models.
22
+
23
+ ## Inference
24
+
25
+ > [!IMPORTANT]
26
+ > When using weights from the original ProteinMPNN/LigandMPNN repositories, please ensure to set `is_legacy_weights` to `True` when running inference.
27
+
28
+ ### Notes on Programmatic (Scripted) Inference
29
+ - Currently, 'mpnn_bias' and 'mpnn_pair_bias' annotations cannot be saved to CIF files due to shape limitations. As a result, these annotations must be recreated (either directly with annotation on the atom array or via the input config dictionary) when reloading designed structures from CIF files.