rc-foundry 0.1.2__tar.gz → 0.1.3__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.3/.git +1 -0
  2. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/PKG-INFO +7 -4
  3. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/README.md +6 -3
  4. rc_foundry-0.1.3/docs/releases/rfd3/examples/README.md +3 -0
  5. rc_foundry-0.1.3/models/mpnn/README.md +146 -0
  6. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/utils/inference.py +4 -4
  7. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/ncaa/create_cif_with_ligand_as_ncaa.ipynb +4 -4
  8. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/README.md +43 -4
  9. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/design_base.yaml +1 -1
  10. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/experiment/pretrain.yaml +6 -3
  11. rc_foundry-0.1.3/models/rfd3/docs/enzyme_design.md +26 -0
  12. rc_foundry-0.1.3/models/rfd3/docs/get_na_input.sh +18 -0
  13. {rc_foundry-0.1.2/docs/releases/rfd3/examples → rc_foundry-0.1.3/models/rfd3/docs}/input_pdbs/1bna.pdb +0 -0
  14. {rc_foundry-0.1.2/docs/releases/rfd3/examples → rc_foundry-0.1.3/models/rfd3/docs}/input_pdbs/1q75.pdb +0 -0
  15. {rc_foundry-0.1.2/docs/releases/rfd3/examples → rc_foundry-0.1.3/models/rfd3/docs}/input_pdbs/2r5z.pdb +0 -0
  16. {rc_foundry-0.1.2/docs/releases/rfd3/examples → rc_foundry-0.1.3/models/rfd3/docs}/input_pdbs/5o4d.pdb +0 -0
  17. rc_foundry-0.1.2/docs/releases/rfd3/examples/na_tutorial.json → rc_foundry-0.1.3/models/rfd3/docs/na_binder_design.json +18 -18
  18. rc_foundry-0.1.3/models/rfd3/docs/na_binder_design.md +113 -0
  19. {rc_foundry-0.1.2/docs/releases/rfd3/examples → rc_foundry-0.1.3/models/rfd3/docs}/run_inf_tutorial.sh +2 -2
  20. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/testing/debug.py +0 -1
  21. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/utils/vizualize.py +0 -1
  22. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_aa_design.py +0 -6
  23. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/version.py +2 -2
  24. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry_cli/download_checkpoints.py +5 -4
  25. rc_foundry-0.1.2/.git +0 -1
  26. rc_foundry-0.1.2/.ipd/apptainer/rf3-dev.def +0 -114
  27. rc_foundry-0.1.2/.ipd/apptainer/rf3-full.def +0 -81
  28. rc_foundry-0.1.2/.ipd/apptainer/rfd3-full.def +0 -81
  29. rc_foundry-0.1.2/.ipd/shebang/README.md +0 -6
  30. rc_foundry-0.1.2/.ipd/shebang/mpnn_exec.sh +0 -129
  31. rc_foundry-0.1.2/.ipd/shebang/rf3_exec.sh +0 -129
  32. rc_foundry-0.1.2/.ipd/shebang/rfd3_exec.sh +0 -129
  33. rc_foundry-0.1.2/.ipd/slurm/launch_ligand_mpnn.sh +0 -15
  34. rc_foundry-0.1.2/.ipd/slurm/launch_protein_mpnn.sh +0 -15
  35. rc_foundry-0.1.2/.ipd/slurm/launch_rf3.sh +0 -65
  36. rc_foundry-0.1.2/.ipd/slurm/launch_rfd3.sh +0 -69
  37. rc_foundry-0.1.2/docs/IPD_USAGE.md +0 -224
  38. rc_foundry-0.1.2/examples/all_colab.ipynb +0 -462
  39. rc_foundry-0.1.2/models/mpnn/README.md +0 -29
  40. rc_foundry-0.1.2/models/rfd3/docs/enzyme_design.md +0 -21
  41. rc_foundry-0.1.2/models/rfd3/docs/input_pdbs/1bna.pdb +0 -617
  42. rc_foundry-0.1.2/models/rfd3/docs/input_pdbs/1q75.pdb +0 -516
  43. rc_foundry-0.1.2/models/rfd3/docs/input_pdbs/2r5z.pdb +0 -2141
  44. rc_foundry-0.1.2/models/rfd3/docs/input_pdbs/5o4d.pdb +0 -769
  45. rc_foundry-0.1.2/models/rfd3/docs/na_binder_design.md +0 -85
  46. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/.github/workflows/lint_trunk.yaml +0 -0
  47. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/.gitignore +0 -0
  48. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/.gitmodules +0 -0
  49. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/.pre-commit-config.yaml +0 -0
  50. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/.project-root +0 -0
  51. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/LICENSE.md +0 -0
  52. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/Makefile +0 -0
  53. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/3en2_from_file.cif +0 -0
  54. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/3en2_from_json_with_msa.json +0 -0
  55. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/5hkn_from_file.cif +0 -0
  56. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/7o1r_from_json.json +0 -0
  57. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/7xli_template_antigen_and_framework.json +0 -0
  58. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/9dfn.cif +0 -0
  59. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/9dfn_template_ligand_and_protein.json +0 -0
  60. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/ligands/HEM.sdf +0 -0
  61. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/ligands/NAG.cif +0 -0
  62. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/msas/3en2_A.a3m.gz +0 -0
  63. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/msas/7o1r_A.a3m.gz +0 -0
  64. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/msas/8cdz_A.a3m.gz +0 -0
  65. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/multiple_examples_from_json.json +0 -0
  66. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/templates/7xli_chain_A.cif +0 -0
  67. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/templates/7xli_chain_B.cif +0 -0
  68. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/examples/all.ipynb +0 -0
  69. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/examples/enzymes.ipynb +0 -0
  70. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/__init__.py +0 -0
  71. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/collate/feature_collator.py +0 -0
  72. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/inference.py +0 -0
  73. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/inference_engines/mpnn.py +0 -0
  74. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/loss/nll_loss.py +0 -0
  75. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/metrics/nll.py +0 -0
  76. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/metrics/sequence_recovery.py +0 -0
  77. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/model/layers/graph_embeddings.py +0 -0
  78. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/model/layers/message_passing.py +0 -0
  79. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/model/layers/position_wise_feed_forward.py +0 -0
  80. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/model/layers/positional_encoding.py +0 -0
  81. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/model/mpnn.py +0 -0
  82. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/pipelines/mpnn.py +0 -0
  83. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/samplers/samplers.py +0 -0
  84. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/train.py +0 -0
  85. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/trainers/mpnn.py +0 -0
  86. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/transforms/feature_aggregation/mpnn.py +0 -0
  87. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/transforms/feature_aggregation/polymer_ligand_interface.py +0 -0
  88. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/transforms/feature_aggregation/token_encodings.py +0 -0
  89. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/transforms/feature_aggregation/user_settings.py +0 -0
  90. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/transforms/polymer_ligand_interface.py +0 -0
  91. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/utils/probability.py +0 -0
  92. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/utils/weights.py +0 -0
  93. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/conftest.py +0 -0
  94. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_feature_collator.py +0 -0
  95. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_inference_engine.py +0 -0
  96. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_inference_utils.py +0 -0
  97. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_integration.py +0 -0
  98. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_loss.py +0 -0
  99. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_metrics.py +0 -0
  100. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_model.py +0 -0
  101. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_pipeline.py +0 -0
  102. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_polymer_ligand_interface.py +0 -0
  103. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_samplers.py +0 -0
  104. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_utils.py +0 -0
  105. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/README.md +0 -0
  106. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/callbacks/default.yaml +0 -0
  107. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/callbacks/dump_validation_structures.yaml +0 -0
  108. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/callbacks/metrics_logging.yaml +0 -0
  109. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/callbacks/train_logging.yaml +0 -0
  110. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/dataloader/default.yaml +0 -0
  111. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/base.yaml +0 -0
  112. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/pdb_and_distillation.yaml +0 -0
  113. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/pdb_only.yaml +0 -0
  114. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/disorder_distillation.yaml +0 -0
  115. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/domain_distillation.yaml +0 -0
  116. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/monomer_distillation.yaml +0 -0
  117. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/na_complex_distillation.yaml +0 -0
  118. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/pdb/af3_weighted_sampling.yaml +0 -0
  119. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/pdb/base.yaml +0 -0
  120. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/pdb/plinder.yaml +0 -0
  121. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/pdb/train_interface.yaml +0 -0
  122. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/pdb/train_pn_unit.yaml +0 -0
  123. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/rna_monomer_distillation.yaml +0 -0
  124. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/val/af3_ab_set.yaml +0 -0
  125. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/val/af3_validation.yaml +0 -0
  126. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/val/base.yaml +0 -0
  127. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/val/runs_and_poses.yaml +0 -0
  128. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/debug/default.yaml +0 -0
  129. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/debug/train_specific_examples.yaml +0 -0
  130. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/experiment/pretrained/rf3.yaml +0 -0
  131. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/experiment/pretrained/rf3_with_confidence.yaml +0 -0
  132. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/experiment/quick-rf3-with-confidence.yaml +0 -0
  133. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/experiment/quick-rf3.yaml +0 -0
  134. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/hydra/default.yaml +0 -0
  135. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/hydra/no_logging.yaml +0 -0
  136. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/inference.yaml +0 -0
  137. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/inference_engine/base.yaml +0 -0
  138. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/inference_engine/rf3.yaml +0 -0
  139. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/logger/csv.yaml +0 -0
  140. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/logger/default.yaml +0 -0
  141. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/logger/wandb.yaml +0 -0
  142. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/components/ema.yaml +0 -0
  143. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/components/rf3_net.yaml +0 -0
  144. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/components/rf3_net_with_confidence_head.yaml +0 -0
  145. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/optimizers/adam.yaml +0 -0
  146. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/rf3.yaml +0 -0
  147. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/rf3_with_confidence.yaml +0 -0
  148. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/schedulers/af3.yaml +0 -0
  149. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/paths/data/default.yaml +0 -0
  150. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/paths/default.yaml +0 -0
  151. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/train.yaml +0 -0
  152. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/cpu.yaml +0 -0
  153. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/ddp.yaml +0 -0
  154. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/loss/losses/confidence_loss.yaml +0 -0
  155. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/loss/losses/diffusion_loss.yaml +0 -0
  156. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/loss/losses/distogram_loss.yaml +0 -0
  157. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/loss/structure_prediction.yaml +0 -0
  158. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/loss/structure_prediction_with_confidence.yaml +0 -0
  159. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/metrics/structure_prediction.yaml +0 -0
  160. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/rf3.yaml +0 -0
  161. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/rf3_with_confidence.yaml +0 -0
  162. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/validate.yaml +0 -0
  163. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/__init__.py +0 -0
  164. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/_version.py +0 -0
  165. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/alignment.py +0 -0
  166. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/callbacks/dump_validation_structures.py +0 -0
  167. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/callbacks/metrics_logging.py +0 -0
  168. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/chemical.py +0 -0
  169. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/cli.py +0 -0
  170. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/data/cyclic_transform.py +0 -0
  171. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/data/extra_xforms.py +0 -0
  172. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/data/ground_truth_template.py +0 -0
  173. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/data/paired_msa.py +0 -0
  174. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/data/pipeline_utils.py +0 -0
  175. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/data/pipelines.py +0 -0
  176. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/diffusion_samplers/inference_sampler.py +0 -0
  177. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/inference.py +0 -0
  178. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/inference_engines/__init__.py +0 -0
  179. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/inference_engines/rf3.py +0 -0
  180. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/kinematics.py +0 -0
  181. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/loss/af3_confidence_loss.py +0 -0
  182. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/loss/af3_losses.py +0 -0
  183. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/loss/loss.py +0 -0
  184. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/chiral.py +0 -0
  185. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/clashing_chains.py +0 -0
  186. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/distogram.py +0 -0
  187. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/lddt.py +0 -0
  188. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/metadata.py +0 -0
  189. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/metric_utils.py +0 -0
  190. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/predicted_error.py +0 -0
  191. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/rasa.py +0 -0
  192. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/selected_distances.py +0 -0
  193. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/RF3.py +0 -0
  194. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/RF3_blocks.py +0 -0
  195. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/RF3_structure.py +0 -0
  196. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/af3_auxiliary_heads.py +0 -0
  197. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/af3_diffusion_transformer.py +0 -0
  198. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/attention.py +0 -0
  199. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/layer_utils.py +0 -0
  200. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/mlff.py +0 -0
  201. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/outer_product.py +0 -0
  202. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/pairformer_layers.py +0 -0
  203. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/structure_bias.py +0 -0
  204. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/scoring.py +0 -0
  205. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/symmetry/resolve.py +0 -0
  206. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/train.py +0 -0
  207. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/trainers/rf3.py +0 -0
  208. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/util_module.py +0 -0
  209. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/frames.py +0 -0
  210. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/inference.py +0 -0
  211. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/io.py +0 -0
  212. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/loss.py +0 -0
  213. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/predict_and_score.py +0 -0
  214. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/predicted_error.py +0 -0
  215. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/recycling.py +0 -0
  216. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/validate.py +0 -0
  217. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/.gitkeep +0 -0
  218. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/conftest.py +0 -0
  219. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/5vht_from_file.cif +0 -0
  220. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/5vht_from_json.json +0 -0
  221. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/8vkf_from_file.cif +0 -0
  222. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/example_from_pdb_with_inter_chain_bond.pdb +0 -0
  223. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/example_pdb_with_clashing_ligand_name.pdb +0 -0
  224. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/example_with_ncaa.json +0 -0
  225. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/inference_regression_tests/5vht_from_file/5vht_from_file_model.cif +0 -0
  226. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/inference_regression_tests/5vht_from_file/5vht_from_file_summary_confidences.json +0 -0
  227. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/inference_regression_tests/8vkf_from_file/8vkf_from_file_model.cif +0 -0
  228. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/inference_regression_tests/8vkf_from_file/8vkf_from_file_summary_confidences.json +0 -0
  229. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/msas/5vht_A.a3m +0 -0
  230. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/msas/8vkf_A.a3m +0 -0
  231. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/multiple_examples_from_json.json +0 -0
  232. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/ncaa/ligand_as_ncaa.cif +0 -0
  233. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/ncaa/penicillin_ts2_as_ncaa.cif +0 -0
  234. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/nested_examples/example_from_json.json +0 -0
  235. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/nested_examples/example_from_pdb_with_inter_chain_bonds.and.dots.pdb +0 -0
  236. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/test_chiral_metrics.py +0 -0
  237. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/test_inference_regression.py +0 -0
  238. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/test_write_confidence.py +0 -0
  239. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/.gitignore +0 -0
  240. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/__init__.py +0 -0
  241. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/callbacks/design_callbacks.yaml +0 -0
  242. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/callbacks/metrics_logging.yaml +0 -0
  243. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/callbacks/train_logging.yaml +0 -0
  244. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/dataloader/default.yaml +0 -0
  245. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/dataloader/fast.yaml +0 -0
  246. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/conditions/dna_condition.yaml +0 -0
  247. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/conditions/island.yaml +0 -0
  248. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/conditions/ppi.yaml +0 -0
  249. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/conditions/sequence_design.yaml +0 -0
  250. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/conditions/tipatom.yaml +0 -0
  251. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/conditions/unconditional.yaml +0 -0
  252. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/af3_train_interface.yaml +0 -0
  253. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/af3_train_pn_unit.yaml +0 -0
  254. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/base.yaml +0 -0
  255. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/base_no_weights.yaml +0 -0
  256. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/base_transform_args.yaml +0 -0
  257. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/na_complex_distillation.yaml +0 -0
  258. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/pdb_base.yaml +0 -0
  259. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/rfd3_train_interface.yaml +0 -0
  260. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/rfd3_train_pn_unit.yaml +0 -0
  261. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/rfd3_monomer_distillation.yaml +0 -0
  262. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/bcov_ppi_easy_medium.yaml +0 -0
  263. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/design_validation_base.yaml +0 -0
  264. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/dna_binder_design5.yaml +0 -0
  265. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/dna_binder_long.yaml +0 -0
  266. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/dna_binder_short.yaml +0 -0
  267. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/indexed.yaml +0 -0
  268. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/mcsa_41.yaml +0 -0
  269. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/mcsa_41_short_rigid.yaml +0 -0
  270. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/ppi_inference.yaml +0 -0
  271. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/sm_binder_hbonds.yaml +0 -0
  272. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/sm_binder_hbonds_short.yaml +0 -0
  273. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/unconditional.yaml +0 -0
  274. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/unconditional_deep.yaml +0 -0
  275. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/unindexed.yaml +0 -0
  276. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/val_examples/bcov_ppi_easy_medium_with_ori.yaml +0 -0
  277. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/val_examples/bcov_ppi_easy_medium_with_ori_spoof_helical_bundle.yaml +0 -0
  278. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/val_examples/bcov_ppi_easy_medium_with_ori_varying_lengths.yaml +0 -0
  279. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/val_examples/bpem_ori_hb.yaml +0 -0
  280. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/debug/default.yaml +0 -0
  281. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/debug/train_specific_examples.yaml +0 -0
  282. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/dev.yaml +0 -0
  283. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/experiment/debug.yaml +0 -0
  284. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/experiment/test-uncond.yaml +0 -0
  285. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/experiment/test-unindexed.yaml +0 -0
  286. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/hydra/default.yaml +0 -0
  287. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/hydra/no_logging.yaml +0 -0
  288. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/inference.yaml +0 -0
  289. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/inference_engine/base.yaml +0 -0
  290. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/inference_engine/dev.yaml +0 -0
  291. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/inference_engine/rfdiffusion3.yaml +0 -0
  292. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/logger/csv.yaml +0 -0
  293. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/logger/default.yaml +0 -0
  294. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/logger/wandb.yaml +0 -0
  295. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/components/ema.yaml +0 -0
  296. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/components/rfd3_net.yaml +0 -0
  297. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/optimizers/adam.yaml +0 -0
  298. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/rfd3_base.yaml +0 -0
  299. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/samplers/edm.yaml +0 -0
  300. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/samplers/symmetry.yaml +0 -0
  301. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/schedulers/af3.yaml +0 -0
  302. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/paths/data/default.yaml +0 -0
  303. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/paths/default.yaml +0 -0
  304. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/train.yaml +0 -0
  305. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/trainer/cpu.yaml +0 -0
  306. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/trainer/ddp.yaml +0 -0
  307. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/trainer/loss/losses/diffusion_loss.yaml +0 -0
  308. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/trainer/loss/losses/sequence_loss.yaml +0 -0
  309. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/trainer/metrics/design_metrics.yaml +0 -0
  310. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/trainer/rfd3_base.yaml +0 -0
  311. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/validate.yaml +0 -0
  312. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/demo.json +0 -0
  313. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/input.md +0 -0
  314. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/input_pdbs/4zxb_croppped.pdb +0 -0
  315. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/input_pdbs/5o45_cropped.pdb +0 -0
  316. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/input_pdbs/7v11.pdb +0 -0
  317. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/input_pdbs/IAI.pdb +0 -0
  318. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/input_pdbs/M0255_1mg5.pdb +0 -0
  319. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/protein_binder_design.md +0 -0
  320. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/sm_binder_design.md +0 -0
  321. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/symmetry.md +0 -0
  322. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/.gitignore +0 -0
  323. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/Makefile +0 -0
  324. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/__init__.py +0 -0
  325. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/callbacks.py +0 -0
  326. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/cli.py +0 -0
  327. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/constants.py +0 -0
  328. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/engine.py +0 -0
  329. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/datasets.py +0 -0
  330. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/input_parsing.py +0 -0
  331. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/legacy_input_parsing.py +0 -0
  332. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/parsing.py +0 -0
  333. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/symmetry/atom_array.py +0 -0
  334. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/symmetry/checks.py +0 -0
  335. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/symmetry/contigs.py +0 -0
  336. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/symmetry/frames.py +0 -0
  337. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/symmetry/symmetry_utils.py +0 -0
  338. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/metrics/design_metrics.py +0 -0
  339. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/metrics/hbonds_hbplus_metrics.py +0 -0
  340. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/metrics/hbonds_metrics.py +0 -0
  341. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/metrics/losses.py +0 -0
  342. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/metrics/metrics_utils.py +0 -0
  343. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/metrics/sidechain_metrics.py +0 -0
  344. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/RFD3.py +0 -0
  345. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/RFD3_diffusion_module.py +0 -0
  346. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/cfg_utils.py +0 -0
  347. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/inference_sampler.py +0 -0
  348. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/attention.py +0 -0
  349. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/block_utils.py +0 -0
  350. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/blocks.py +0 -0
  351. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/chunked_pairwise.py +0 -0
  352. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/encoders.py +0 -0
  353. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/layer_utils.py +0 -0
  354. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/pairformer_layers.py +0 -0
  355. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/run_inference.py +0 -0
  356. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/testing/debug_utils.py +0 -0
  357. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/testing/testing_utils.py +0 -0
  358. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/train.py +0 -0
  359. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/trainer/dump_validation_structures.py +0 -0
  360. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/trainer/fabric_trainer.py +0 -0
  361. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/trainer/recycling.py +0 -0
  362. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/trainer/rfd3.py +0 -0
  363. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/trainer/trainer_utils.py +0 -0
  364. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/conditioning_base.py +0 -0
  365. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/conditioning_utils.py +0 -0
  366. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/design_transforms.py +0 -0
  367. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/dna_crop.py +0 -0
  368. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/hbonds.py +0 -0
  369. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/hbonds_hbplus.py +0 -0
  370. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/ncaa_transforms.py +0 -0
  371. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/pipelines.py +0 -0
  372. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/ppi_transforms.py +0 -0
  373. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/rasa.py +0 -0
  374. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/symmetry.py +0 -0
  375. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/training_conditions.py +0 -0
  376. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/util_transforms.py +0 -0
  377. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/virtual_atoms.py +0 -0
  378. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/utils/inference.py +0 -0
  379. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/utils/io.py +0 -0
  380. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/conftest.py +0 -0
  381. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_conditioning.py +0 -0
  382. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_glycines.py +0 -0
  383. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_legacy_pipeline_equivalence.py +0 -0
  384. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_metrics.py +0 -0
  385. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_partial_diffusion.py +0 -0
  386. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_selections.py +0 -0
  387. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_subgraph_sampling.py +0 -0
  388. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_symmetry.py +0 -0
  389. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_tokenization.py +0 -0
  390. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_unindexing.py +0 -0
  391. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/transforms/regression_test_data/1p5d_0_inference_pretrain.pkl +0 -0
  392. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/transforms/regression_test_data/1p5d_0_train_pretrain.pkl +0 -0
  393. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/transforms/regression_test_data/1qys_0_inference_pretrain.pkl +0 -0
  394. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/transforms/regression_test_data/1qys_0_train_pretrain.pkl +0 -0
  395. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/transforms/regression_test_data/af2_122_train_test_unindexed.pkl +0 -0
  396. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/transforms/test_pipeline_regression.py +0 -0
  397. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/pyproject.toml +0 -0
  398. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/refactor.sh +0 -0
  399. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/__init__.py +0 -0
  400. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/callbacks/__init__.py +0 -0
  401. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/callbacks/callback.py +0 -0
  402. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/callbacks/health_logging.py +0 -0
  403. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/callbacks/metrics_logging.py +0 -0
  404. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/callbacks/timing_logging.py +0 -0
  405. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/callbacks/train_logging.py +0 -0
  406. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/common.py +0 -0
  407. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/constants.py +0 -0
  408. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/hydra/resolvers.py +0 -0
  409. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/inference_engines/base.py +0 -0
  410. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/inference_engines/checkpoint_registry.py +0 -0
  411. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/metrics/__init__.py +0 -0
  412. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/metrics/losses.py +0 -0
  413. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/metrics/metric.py +0 -0
  414. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/model/layers/blocks.py +0 -0
  415. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/testing/__init__.py +0 -0
  416. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/testing/fixtures.py +0 -0
  417. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/testing/pytest_hooks.py +0 -0
  418. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/trainers/fabric.py +0 -0
  419. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/training/EMA.py +0 -0
  420. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/training/checkpoint.py +0 -0
  421. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/training/schedulers.py +0 -0
  422. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/alignment.py +0 -0
  423. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/components.py +0 -0
  424. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/datasets.py +0 -0
  425. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/ddp.py +0 -0
  426. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/instantiators.py +0 -0
  427. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/logging.py +0 -0
  428. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/rigid.py +0 -0
  429. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/rotation_augmentation.py +0 -0
  430. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/squashfs.py +0 -0
  431. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/torch.py +0 -0
  432. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/weights.py +0 -0
  433. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry_cli/__init__.py +0 -0
  434. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/tests/conftest.py +0 -0
  435. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/tests/test_torch_utils.py +0 -0
  436. {rc_foundry-0.1.2 → rc_foundry-0.1.3}/tests/test_weight_loading.py +0 -0
rc_foundry-0.1.3/.git ADDED
@@ -0,0 +1 @@
1
+ gitdir: /home/rohith/modelhub/.git/worktrees/release
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rc-foundry
3
- Version: 0.1.2
3
+ Version: 0.1.3
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,6 +95,8 @@ 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
+
98
100
  ## Getting Started
99
101
  ### Quickstart guide
100
102
  **Installation**
@@ -107,14 +109,14 @@ pip install rc-foundry[all]
107
109
  ```
108
110
  foundry install all --checkpoint_dir <path/to/ckpt/dir>
109
111
  ```
110
- This will download all the models supported (including multiple checkpoints of rf3) but as a beginner you can start with:
112
+ This will download all the models supported (including multiple checkpoints of RF3) but as a beginner you can start with:
111
113
  ```
112
114
  foundry install rfd3 ligandmpnn rf3 --checkpoint_dir <path/to/ckpt/dir>
113
115
  ```
114
116
 
115
117
  >*See `examples/all.ipynb` for how to run each model in a notebook.*
116
118
 
117
- ### RFdiffusion3
119
+ ### RFdiffusion3 (RFD3)
118
120
 
119
121
  [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.
120
122
 
@@ -129,7 +131,8 @@ foundry install rfd3 ligandmpnn rf3 --checkpoint_dir <path/to/ckpt/dir>
129
131
 
130
132
  > *See [models/mpnn/README.md](models/mpnn/README.md) for complete documentation.*
131
133
 
132
- ### RosettaFold3
134
+
135
+ ### RosettaFold3 (RF3)
133
136
 
134
137
  [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.
135
138
 
@@ -2,6 +2,8 @@
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
+
5
7
  ## Getting Started
6
8
  ### Quickstart guide
7
9
  **Installation**
@@ -14,14 +16,14 @@ pip install rc-foundry[all]
14
16
  ```
15
17
  foundry install all --checkpoint_dir <path/to/ckpt/dir>
16
18
  ```
17
- This will download all the models supported (including multiple checkpoints of rf3) but as a beginner you can start with:
19
+ This will download all the models supported (including multiple checkpoints of RF3) but as a beginner you can start with:
18
20
  ```
19
21
  foundry install rfd3 ligandmpnn rf3 --checkpoint_dir <path/to/ckpt/dir>
20
22
  ```
21
23
 
22
24
  >*See `examples/all.ipynb` for how to run each model in a notebook.*
23
25
 
24
- ### RFdiffusion3
26
+ ### RFdiffusion3 (RFD3)
25
27
 
26
28
  [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.
27
29
 
@@ -36,7 +38,8 @@ foundry install rfd3 ligandmpnn rf3 --checkpoint_dir <path/to/ckpt/dir>
36
38
 
37
39
  > *See [models/mpnn/README.md](models/mpnn/README.md) for complete documentation.*
38
40
 
39
- ### RosettaFold3
41
+
42
+ ### RosettaFold3 (RF3)
40
43
 
41
44
  [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.
42
45
 
@@ -0,0 +1,3 @@
1
+ # RFdiffusion3 examples
2
+
3
+ You can find RFdiffusion3 usage examples in `models/rfd3/docs`.
@@ -0,0 +1,146 @@
1
+ # ProteinMPNN, LigandMPNN, and SolubleMPNN
2
+
3
+ > [!WARNING]
4
+ > **Benchmarking**: Please use the old repositories of ProteinMPNN, LigandMPNN, and SolubleMPNN for model benchmarking/comparison until the API and public weights stabilize. We are in the process of validating that the re-implementation (both a 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/SolubleMPNN 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
+ 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.
10
+
11
+ For more information on the original models, please see:
12
+ - ProteinMPNN: [Robust deep learning–based protein sequence design using ProteinMPNN](https://doi.org/10.1126/science.add2187) | [ProteinMPNN Original Github](https://github.com/dauparas/ProteinMPNN)
13
+ - LigandMPNN: [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)
14
+ - SolubleMPNN: [Computational design of soluble and functional membrane protein analogues](https://doi.org/10.1038/s41586-024-07601-y)
15
+
16
+ This guide provides instructions on preparing inputs and running inference for ProteinMPNN/LigandMPNN, as well as training these models.
17
+
18
+ ## Installation
19
+ ### A. Installation using `uv`
20
+ ```bash
21
+ git clone https://github.com/RosettaCommons/rc-foundry.git \
22
+ && cd rc-foundry \
23
+ && uv python install 3.12 \
24
+ && uv venv --python 3.12 \
25
+ && source .venv/bin/activate \
26
+ && uv pip install -e ".[mpnn]"
27
+ ```
28
+
29
+ ### B. Download Model Weights
30
+
31
+ <details>
32
+ <summary><strong>ProteinMPNN</strong></summary>
33
+
34
+ Please use the following settings with these ProteinMPNN weights:
35
+ - `model_type`: `"protein_mpnn"`
36
+ - `is_legacy_weights`: `True`
37
+
38
+ 48 Nearest Neighbors, $\sigma = 0.20 Å$ Gaussian noise during training:
39
+ ```bash
40
+ wget https://files.ipd.uw.edu/pub/ligandmpnn/proteinmpnn_v_48_020.pt
41
+ ```
42
+ <details>
43
+ <summary>Additional ProteinMPNN Weights</summary>
44
+
45
+ 48 Nearest Neighbors, $\sigma = 0.02 Å$ Gaussian noise during training:
46
+ ```bash
47
+ wget https://files.ipd.uw.edu/pub/ligandmpnn/proteinmpnn_v_48_002.pt
48
+ ```
49
+ 48 Nearest Neighbors, $\sigma = 0.10 Å$ Gaussian noise during training:
50
+ ```bash
51
+ wget https://files.ipd.uw.edu/pub/ligandmpnn/proteinmpnn_v_48_010.pt
52
+ ```
53
+ 48 Nearest Neighbors, $\sigma = 0.30 Å$ Gaussian noise during training:
54
+ ```bash
55
+ wget https://files.ipd.uw.edu/pub/ligandmpnn/proteinmpnn_v_48_030.pt
56
+ ```
57
+ </details>
58
+ </details>
59
+
60
+ <details>
61
+ <summary><strong>LigandMPNN</strong></summary>
62
+
63
+ Please use the following settings with these LigandMPNN weights:
64
+ - `model_type`: `"ligand_mpnn"`
65
+ - `is_legacy_weights`: `True`
66
+
67
+ 32 Nearest Neighbors, $\sigma = 0.10 Å$ of Gaussian noise during training, 25 ligand atom context:
68
+ ```bash
69
+ wget https://files.ipd.uw.edu/pub/ligandmpnn/ligandmpnn_v_32_010_25.pt
70
+ ```
71
+
72
+ <details>
73
+ <summary>Additional LigandMPNN Weights</summary>
74
+
75
+ 32 Nearest Neighbors, $\sigma = 0.05 Å$ of Gaussian noise during training, 25 ligand atom context:
76
+ ```bash
77
+ wget https://files.ipd.uw.edu/pub/ligandmpnn/ligandmpnn_v_32_005_25.pt
78
+ ```
79
+ 32 Nearest Neighbors, $\sigma = 0.20 Å$ of Gaussian noise during training, 25 ligand atom context:
80
+ ```bash
81
+ wget https://files.ipd.uw.edu/pub/ligandmpnn/ligandmpnn_v_32_020_25.pt
82
+ ```
83
+ 32 Nearest Neighbors, $\sigma = 0.30 Å$ of Gaussian noise during training, 25 ligand atom context:
84
+ ```bash
85
+ wget https://files.ipd.uw.edu/pub/ligandmpnn/ligandmpnn_v_32_030_25.pt
86
+ ```
87
+ </details>
88
+ </details>
89
+
90
+ <details>
91
+ <summary><strong>SolubleMPNN</strong></summary>
92
+
93
+ Please use the following settings with these SolubleMPNN weights:
94
+ - `model_type`: `"protein_mpnn"`
95
+ - `is_legacy_weights`: `True`
96
+
97
+ 48 Nearest Neighbors, $\sigma = 0.20 Å$ Gaussian noise during training:
98
+ ```bash
99
+ wget https://files.ipd.uw.edu/pub/ligandmpnn/solublempnn_v_48_020.pt
100
+ ```
101
+
102
+ <details>
103
+ <summary>Additional SolubleMPNN Weights</summary>
104
+
105
+ 48 Nearest Neighbors, $\sigma = 0.02 Å$ Gaussian noise during training:
106
+ ```bash
107
+ wget https://files.ipd.uw.edu/pub/ligandmpnn/solublempnn_v_48_002.pt
108
+ ```
109
+ 48 Nearest Neighbors, $\sigma = 0.10 Å$ Gaussian noise during training:
110
+ ```bash
111
+ wget https://files.ipd.uw.edu/pub/ligandmpnn/solublempnn_v_48_010.pt
112
+ ```
113
+ 48 Nearest Neighbors, $\sigma = 0.30 Å$ Gaussian noise during training:
114
+ ```bash
115
+ wget https://files.ipd.uw.edu/pub/ligandmpnn/solublempnn_v_48_030.pt
116
+ ```
117
+ </details>
118
+ </details>
119
+
120
+ ## Inference
121
+ > [!WARNING]
122
+ > **Known Bug**: There is currently an issue with loading MPNN user annotation (temperature, designed residues, etc.) from CIF/atom array annotations. Command line passing of these options works as expected, as does `input_dict` specificiation with MPNNInferenceEngine.
123
+
124
+ > [!IMPORTANT]
125
+ > **API Instability**: We are currently finalizing some cleanup work on the inference API. Please expect the API (including input formats and outputs) to stabilize in the upcoming weeks. Thank you for your patience!
126
+
127
+ > [!IMPORTANT]
128
+ > When using weights from the original ProteinMPNN/LigandMPNN/SolubleMPNN repositories, please ensure to set `is_legacy_weights` to `True` when running inference.
129
+
130
+ ### A. Command Line Inference
131
+ Detailed documentation coming soon!
132
+
133
+ ### B. JSON-based Inference
134
+ Detailed documentation coming soon!
135
+
136
+ ### C. Programmatic (Scripted) Inference
137
+ Detailed documentation coming soon!
138
+
139
+ > [!IMPORTANT]
140
+ > 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.
141
+
142
+ ## Training
143
+ Instructions for training ProteinMPNN/LigandMPNN/SolubleMPNN models will be updated here shortly.
144
+
145
+ > [!IMPORTANT]
146
+ > **Training Code and New Weights**: We are working to release the dataframes used for retrianing the ProteinMPNN, LigandMPNN, and SolubleMPNN re-implementations. Also, we are finalizing the retraining runs and will release weights retrained within this repository shortly.
@@ -362,7 +362,7 @@ def build_arg_parser() -> argparse.ArgumentParser:
362
362
  "--fixed_residues",
363
363
  type=str,
364
364
  help=(
365
- 'List of residue IDs to fix: e.g. \'["A35","B40","C52"]\' or "A35,B40,C52"',
365
+ 'List of residue IDs to fix: e.g. \'["A35","B40","C52"]\' or "A35,B40,C52"'
366
366
  ),
367
367
  default=MPNN_PER_INPUT_INFERENCE_DEFAULTS["fixed_residues"],
368
368
  )
@@ -371,20 +371,20 @@ def build_arg_parser() -> argparse.ArgumentParser:
371
371
  type=str,
372
372
  help=(
373
373
  "List of residue IDs to design: "
374
- 'e.g. \'["A35","B40","C52"]\' or "A35,B40,C52"',
374
+ 'e.g. \'["A35","B40","C52"]\' or "A35,B40,C52"'
375
375
  ),
376
376
  default=MPNN_PER_INPUT_INFERENCE_DEFAULTS["designed_residues"],
377
377
  )
378
378
  design_group.add_argument(
379
379
  "--fixed_chains",
380
380
  type=str,
381
- help=('List of chain IDs to fix: e.g. \'["A","B"]\' or "A,B"',),
381
+ help=('List of chain IDs to fix: e.g. \'["A","B"]\' or "A,B"'),
382
382
  default=MPNN_PER_INPUT_INFERENCE_DEFAULTS["fixed_chains"],
383
383
  )
384
384
  design_group.add_argument(
385
385
  "--designed_chains",
386
386
  type=str,
387
- help=('List of chain IDs to design: e.g. \'["A","B"]\' or "A,B"',),
387
+ help=('List of chain IDs to design: e.g. \'["A","B"]\' or "A,B"'),
388
388
  default=MPNN_PER_INPUT_INFERENCE_DEFAULTS["designed_chains"],
389
389
  )
390
390
 
@@ -7,10 +7,10 @@
7
7
  "metadata": {},
8
8
  "outputs": [],
9
9
  "source": [
10
- "from cifutils import parse\n",
11
- "from cifutils.tools.inference import components_to_atom_array\n",
12
- "from cifutils.utils.visualize import view\n",
13
- "from cifutils.utils.io_utils import to_cif_file\n",
10
+ "from atomworks.io import parse\n",
11
+ "from atomwork.io.tools.inference import components_to_atom_array\n",
12
+ "from atomworks.io.utils.visualize import view\n",
13
+ "from atomworks.io.utils.io_utils import to_cif_file\n",
14
14
  "\n",
15
15
  "import os\n",
16
16
  "\n",
@@ -105,6 +105,45 @@ The output directory will automatically be created.
105
105
 
106
106
  For full details on how to specify inputs, see the [input specification documentation](./docs/input.md). You can also see `models/rfd3/configs/inference_engine/rfdiffusion3.yaml`.
107
107
 
108
+ ## Training:
109
+
110
+ We make available to the community not only the weights to run RFdiffusion3 but also the complete training code, easily extendable to additional use cases. Any AtomWorks-compatible dataset (and thus, any collection of structure files) can be readily incorporated and used for training or fine-tuning.
111
+
112
+ ### Dataset Configuration
113
+
114
+ #### PDB Training
115
+
116
+ To train on the PDB:
117
+
118
+ 1. Set up PDB and CCD mirrors as described in the [AtomWorks documentation](https://rosettacommons.github.io/atomworks/latest/mirrors.html)
119
+ 2. Update the [path configs](/models/rfd3/configs/paths/) to point to the correct base directories for the metadata parquets
120
+ 3. Set the `PDB_MIRROR` and `CCD_PATH` variables in your `.env` file
121
+
122
+ #### Custom Datasets
123
+
124
+ RFdiffusion3 supports arbitrary datasets of structure files for training and fine-tuning via AtomWorks. See the [AtomWorks dataset documentation](https://rosettacommons.github.io/atomworks/latest/auto_examples/dataset_exploration.html) for details on creating custom datasets.
125
+
126
+ ### Running Training
127
+
128
+ After setting up Hydra configs, launch a training run:
129
+ ```bash
130
+ uv run python models/rfd3/src/rfd3/train.py experiment=pretrain
131
+ ```
132
+
133
+ See the [path configs](/models/rfd3/configs/paths/) to customize data input and log output directories.
134
+
135
+ ### Logging Configuration
136
+
137
+ Training runs support logging via [Weights & Biases](https://wandb.ai/). To enable wandb logging:
138
+
139
+ ```bash
140
+ uv run python models/rfd3/src/rfd3/train.py experiment=pretrain logger=wandb
141
+ ```
142
+
143
+ To run training without wandb (default):
144
+ ```bash
145
+ uv run python models/rfd3/src/rfd3/train.py experiment=pretrain logger=csv
146
+ ```
108
147
 
109
148
  ### Install HBPLUS for training with hydrogen bond conditioning:
110
149
 
@@ -113,15 +152,15 @@ For full details on how to specify inputs, see the [input specification document
113
152
  2. Follow the installation instruction here: https://www.ebi.ac.uk/thornton-srv/software/HBPLUS/install.html
114
153
  3. Update `HBPLUS_PATH` in `foundry/.env` file with the path to your `hbplus` executable.
115
154
 
116
- ## Training (w & w/o WandB): #TODO make sure correct
117
- **Launching:** To launch distributed training on slurm, we recommend the following setup:
155
+ ## Distributed Training
156
+ To use distributed training, you could use a command such as this (we use Lightning Fabric to handle ddp)
118
157
  ```
119
158
  EFFECTIVE_BATCH_SIZE=16
120
159
  DEVICES_PER_NODE= #INSERT NUMBER OF DEVICES PER NODE
121
160
  NNODES = # INSERT NUMBER OF NODES
122
161
  GRAD_ACCUM_STEPS=$((EFFECTIVE_BATCH_SIZE / (DEVICES_PER_NODE * NNODES)))
123
162
  uv run python models/rfd3/src/rfd3/train.py \
124
- experiment=$SLURM_JOB_NAME \
163
+ experiment=pretrain \
125
164
  trainer.devices_per_node=$DEVICES_PER_NODE \
126
165
  trainer.num_nodes=$SLURM_NNODES \
127
166
  trainer.grad_accum_steps=$GRAD_ACCUM_STEPS"
@@ -136,7 +175,7 @@ Notably, fabric must receive `devices_per_node` and the number of nodes (`num_no
136
175
 
137
176
  In `models/rfd3/configs/datasets/design_base.yaml` there's the shared configs for all datasets under `global_transform_args`. The dials that control the conditioning described above go under `training_conditions`, where for example `tipatom` - a specific preset conditioning sampler which more frequently fixes few tokens with few atoms - and others can be found.
138
177
 
139
- **Training with WandB:** We strongly recommend tracking your runs via wandb. To use it, simply have your WANDB_API_KEY set. For more details see [here](wandb.ai)
178
+ **Training with WandB:** We strongly recommend tracking your runs via wandb. To use it, simply have your WANDB_API_KEY set and use the wandb logger. For more details see [here](wandb.ai)
140
179
 
141
180
  ## Citation
142
181
 
@@ -5,7 +5,7 @@ defaults:
5
5
  # Grab datasets
6
6
  - train/pdb/rfd3_train_interface@train.pdb.sub_datasets.interface
7
7
  - train/pdb/rfd3_train_pn_unit@train.pdb.sub_datasets.pn_unit
8
- - train/rfd3_monomer_distillation@train
8
+ #- train/rfd3_monomer_distillation@train
9
9
 
10
10
  # Customized validation datasets
11
11
  - val/unconditional@val.unconditional
@@ -22,7 +22,10 @@ datasets:
22
22
  ppi:
23
23
  frequency: 0.0
24
24
  train:
25
+ # These are the ratios used in the preprint but we set all pdb sampling by default since not everyone might download the distillation data.
26
+ #pdb:
27
+ #probability: 0.10
28
+ #monomer_distillation:
29
+ #probability: 0.90
25
30
  pdb:
26
- probability: 0.10
27
- monomer_distillation:
28
- probability: 0.90
31
+ probability: 1.0
@@ -0,0 +1,26 @@
1
+ # RFdiffusion3 — Enzyme design examples
2
+ RFD3 contains several knobs and dials for enzyme design.
3
+ - input: the pdb or cif file that contains the input theozyme
4
+ - ligand: any ligand res names that are to be included (comma separated)
5
+ - unindex: which residues should have their index be inferred by the model instead of prespecified
6
+ - length: the length range of the generated protein
7
+ - select_fixed_atoms: dictionary that indicated which atoms should be fixed (can use ALL, BKBN, or TIP for all atoms in the residue, backbone atoms only and tip atoms only)
8
+ ```json
9
+ {
10
+ "M0255_1mg5_unfixed": {
11
+ "input": "./input_pdbs/M0255_1mg5.pdb",
12
+ "ligand": "NAI,ACT",
13
+ "unindex": "A108,A139,A152,A156",
14
+ "length": "180-200",
15
+ "select_fixed_atoms": {
16
+ "A108": "ND2,CG",
17
+ "A139": "OG,CB,CA",
18
+ "A152": "OH,CZ",
19
+ "A156": "NZ,CE,CD",
20
+ "ACT": "OXT",
21
+ "NAI": ""
22
+ }
23
+ }
24
+ }
25
+ ```
26
+
@@ -0,0 +1,18 @@
1
+ #!/bin/bash
2
+ # dsDNA
3
+ wget https://files.rcsb.org/download/1bna.pdb1.gz
4
+ # dsDNA with protein
5
+ wget https://files.rcsb.org/download/2r5z.pdb1.gz
6
+ # ssDNA
7
+ wget https://files.rcsb.org/download/5o4d.pdb1.gz
8
+ # RNA
9
+ wget https://files.rcsb.org/download/1q75.pdb1.gz
10
+
11
+ gunzip *.gz
12
+
13
+ mkdir input_pdbs
14
+
15
+ mv 1bna.pdb1 ./input_pdbs/1bna.pdb
16
+ mv 2r5z.pdb1 ./input_pdbs/2r5z.pdb
17
+ mv 5o4d.pdb1 ./input_pdbs/5o4d.pdb
18
+ mv 1q75.pdb1 ./input_pdbs/1q75.pdb
@@ -1,26 +1,10 @@
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
- },
24
8
  "ssDNA_basic": {
25
9
  "input": "./input_pdbs/5o4d.pdb",
26
10
  "contig": "A1-23,/0,120-130",
@@ -38,5 +22,21 @@
38
22
  "contig": "A1-15,/0,120-130",
39
23
  "length": "135-145",
40
24
  "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
  }
@@ -0,0 +1,113 @@
1
+ # RFdiffusion3 — Nucleic acid binder design examples
2
+
3
+ If you would like to run the examples below, `na_binder_design.json`, located in this directory,
4
+ contains the example code. You can run it via:
5
+ ```
6
+ rfd3 design out_dir=inference_outputs/na_binder/0 \
7
+ ckpt_path=/path/to/rfd3_foundry_2025_12_01.ckpt \
8
+ inputs=./na_binder_design.json
9
+ ```
10
+
11
+
12
+ Or, if you have cloned the repo rather than using `pip install`:
13
+ ```
14
+ python path/to/foundry/models/rfd3/src/rfd3/run_inference.py \
15
+ out_dir=inference_outputs/na_binder/0 \
16
+ ckpt_path=/path/to/rfd3_foundry_2025_12_01.ckpt \
17
+ inputs=./na_binder_design.json
18
+ ```
19
+
20
+ An example script for running these examples in batches is also provided in `run_inf_tutorial.sh`.
21
+
22
+ The input files for the different examples are already provided in `input_pdbs`, but if you would like
23
+ to see how you could download these directly from the PDB, see `get_na_input.sh`.
24
+
25
+ ### 1. Simple dsDNA binder example
26
+
27
+ The DNA chains are A and B and specified as such in the contig. RFD3 will treat these as fixed in space. the contig specifies to generate a protein chain of length between 120-130. An ori token is specified.
28
+ The length attribute should be the sum of all polymer lengths. in this case (120 to 130) + 10 + 10 = (140 to 150)
29
+ ```json
30
+ {
31
+ "dsDNA_basic": {
32
+ "input": "./input_pdbs/1bna.pdb",
33
+ "contig": "A1-10,/0,B15-24,/0,120-130",
34
+ "length": "140-150",
35
+ "ori_token": [24,20,10]
36
+ }
37
+ }
38
+ ```
39
+
40
+ ### 2. Simple ssDNA binder example G-quadruplex
41
+
42
+ Similar to the previous example, but done for a PDB containing one DNA strand (A):
43
+
44
+ ```json
45
+ {
46
+ "ssDNA_basic": {
47
+ "input": "./input_pdbs/5o4d.pdb",
48
+ "contig": "A1-23,/0,120-130",
49
+ "length": "143-153",
50
+ "ori_token": [-5,-10,8]
51
+ }
52
+ }
53
+ ```
54
+
55
+ ### 3. ssDNA example based on DNA sequence diffused from dsDNA pdb as input
56
+
57
+ Similar to the previous example but the input PDB has a dsDNA. One of the chains (A) is selected. However, the single stranded DNA conformation will be sampled by RFD3 because we have specified to not have any fixed DNA atoms by using `"select_fixed_atoms": {"A1-10":""}`. ori_token is not meaningful to specify when there are no fixed atoms.
58
+ ```json
59
+ {
60
+ "ssDNA_diffused_from_dsDNA_pdb":{
61
+ "input": "./input_pdbs/1bna.pdb",
62
+ "contig": "A1-10,/0,120-130",
63
+ "length": "130-140",
64
+ "select_fixed_atoms": {"A1-10":""}
65
+ }
66
+ }
67
+ ```
68
+
69
+ ### 4. Simple RNA binder example
70
+
71
+ Example on RNA. Similar to the ssDNA example, example 2.
72
+
73
+ ```json
74
+ {
75
+ "RNA_basic": {
76
+ "input": "./input_pdbs/1q75.pdb",
77
+ "contig": "A1-15,/0,120-130",
78
+ "length": "135-145",
79
+ "ori_token": [15,2,-4]
80
+ }
81
+ }
82
+ ```
83
+
84
+ ### 5. Complex example based on a protein-dsDNA input pdb with parts of protein and dna partially fixed (indexed and unindexed), with Hbond conditioning
85
+
86
+ This is a complex example which has a dsDNA specified in the contig: `C5-18` and `D24-37`. However, it also specifies an indexed protein motif component (`A146-154`) and diffuses the two flanks of the protein indexed region in the same chain. The diffused protein region has an unindexed motif specified via `"unindex": "/0,/0,B251-B255".` (*Note: the chain breaks applied are analogous to the contig string*). Parts of the DNA have been specified as fixed or to be sampled by RFD3 (`select_fixed_atoms`). Additionally hydrogen bond conditioning is applied to some backbone and base atoms of a few DNA bases.
87
+
88
+ To run this without warnings, you will need to install [hpblus](https://www.ebi.ac.uk/thornton-srv/software/HBPLUS/) to enable hydrogen bond metrics computation. This is discussed at the end of the RFD3 README, but the instructions are reproduced here for convenience:
89
+
90
+ 1. Download hbplus from here: https://www.ebi.ac.uk/thornton-srv/software/HBPLUS/download.html (available for free)
91
+ 2. Follow the installation instruction here: https://www.ebi.ac.uk/thornton-srv/software/HBPLUS/install.html
92
+ 3. Update `HBPLUS_PATH` in `foundry/.env` file with the path to your `hbplus` executable.
93
+
94
+ ```json
95
+ {
96
+ "dsDNA_complex": {
97
+ "input": "./input_pdbs/2r5z.pdb",
98
+ "contig": "C5-18,/0,D24-37,/0,40-50,A146-154,80-90",
99
+ "length": "147-167",
100
+ "unindex": "/0,/0,B251-B255",
101
+ "select_fixed_atoms": {
102
+ "C9-14":"ALL",
103
+ "D28-33":"ALL",
104
+ "C5-8,C15-18": "",
105
+ "D24-27,D34-37": ""
106
+ },
107
+ "ori_token":[25,35,20],
108
+ "select_hbond_acceptor": {"C16":"N7,O6", "D31-32":"N7", "D28-30":"OP1,OP2,O3',O5'"},
109
+ "select_hbond_donor": {"D31-32":"N6"}
110
+
111
+ }
112
+ }
113
+ ```
@@ -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_tutorial.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_binder_design.json n_batches=2 diffusion_batch_size=3 cleanup_virtual_atoms=True
12
12
 
13
13
  #some cleanup
14
14
  rm *.hb2
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env -S /bin/sh -c '"$(dirname "$0")/../../../scripts/shebang/modelhub_exec.sh" "$0" "$@"'
2
1
  # JBs debugging file, please create your own and go crazy!
3
2
  import logging
4
3
  import os
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env -S /bin/sh -c '"$(dirname "$0")/../../../scripts/shebang/modelhub_exec.sh" "$0" "$@"'
2
1
  """
3
2
  If you add the `/path/to/visualize.py` to your .bashrc/.zshrc like this:
4
3
 
@@ -1,9 +1,3 @@
1
- #!/usr/bin/env -S /bin/sh -c '"$(dirname "$0")/../../../scripts/shebang/modelhub_exec.sh" "$0" "$@"'
2
- # Usage:
3
- # >>> apptainer exec scripts/shebang/test_modelhub.sif pytest ./rfd3/tests/test_aa_design.py
4
- # To combine both make format and testing together you can use:
5
- # apptainer exec ./scripts/shebang/test_modelhub.sif make format || true && apptainer exec ./scripts/shebang/test_modelhub.sif pytest ./rfd3/tests/test_aa_design.py
6
-
7
1
  import contextlib
8
2
  import io
9
3
  import os
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.1.2'
32
- __version_tuple__ = version_tuple = (0, 1, 2)
31
+ __version__ = version = '0.1.3'
32
+ __version_tuple__ = version_tuple = (0, 1, 3)
33
33
 
34
34
  __commit_id__ = commit_id = None