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.
- rc_foundry-0.1.3/.git +1 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/PKG-INFO +7 -4
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/README.md +6 -3
- rc_foundry-0.1.3/docs/releases/rfd3/examples/README.md +3 -0
- rc_foundry-0.1.3/models/mpnn/README.md +146 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/utils/inference.py +4 -4
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/ncaa/create_cif_with_ligand_as_ncaa.ipynb +4 -4
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/README.md +43 -4
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/design_base.yaml +1 -1
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/experiment/pretrain.yaml +6 -3
- rc_foundry-0.1.3/models/rfd3/docs/enzyme_design.md +26 -0
- rc_foundry-0.1.3/models/rfd3/docs/get_na_input.sh +18 -0
- {rc_foundry-0.1.2/docs/releases/rfd3/examples → rc_foundry-0.1.3/models/rfd3/docs}/input_pdbs/1bna.pdb +0 -0
- {rc_foundry-0.1.2/docs/releases/rfd3/examples → rc_foundry-0.1.3/models/rfd3/docs}/input_pdbs/1q75.pdb +0 -0
- {rc_foundry-0.1.2/docs/releases/rfd3/examples → rc_foundry-0.1.3/models/rfd3/docs}/input_pdbs/2r5z.pdb +0 -0
- {rc_foundry-0.1.2/docs/releases/rfd3/examples → rc_foundry-0.1.3/models/rfd3/docs}/input_pdbs/5o4d.pdb +0 -0
- 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
- rc_foundry-0.1.3/models/rfd3/docs/na_binder_design.md +113 -0
- {rc_foundry-0.1.2/docs/releases/rfd3/examples → rc_foundry-0.1.3/models/rfd3/docs}/run_inf_tutorial.sh +2 -2
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/testing/debug.py +0 -1
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/utils/vizualize.py +0 -1
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_aa_design.py +0 -6
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/version.py +2 -2
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry_cli/download_checkpoints.py +5 -4
- rc_foundry-0.1.2/.git +0 -1
- rc_foundry-0.1.2/.ipd/apptainer/rf3-dev.def +0 -114
- rc_foundry-0.1.2/.ipd/apptainer/rf3-full.def +0 -81
- rc_foundry-0.1.2/.ipd/apptainer/rfd3-full.def +0 -81
- rc_foundry-0.1.2/.ipd/shebang/README.md +0 -6
- rc_foundry-0.1.2/.ipd/shebang/mpnn_exec.sh +0 -129
- rc_foundry-0.1.2/.ipd/shebang/rf3_exec.sh +0 -129
- rc_foundry-0.1.2/.ipd/shebang/rfd3_exec.sh +0 -129
- rc_foundry-0.1.2/.ipd/slurm/launch_ligand_mpnn.sh +0 -15
- rc_foundry-0.1.2/.ipd/slurm/launch_protein_mpnn.sh +0 -15
- rc_foundry-0.1.2/.ipd/slurm/launch_rf3.sh +0 -65
- rc_foundry-0.1.2/.ipd/slurm/launch_rfd3.sh +0 -69
- rc_foundry-0.1.2/docs/IPD_USAGE.md +0 -224
- rc_foundry-0.1.2/examples/all_colab.ipynb +0 -462
- rc_foundry-0.1.2/models/mpnn/README.md +0 -29
- rc_foundry-0.1.2/models/rfd3/docs/enzyme_design.md +0 -21
- rc_foundry-0.1.2/models/rfd3/docs/input_pdbs/1bna.pdb +0 -617
- rc_foundry-0.1.2/models/rfd3/docs/input_pdbs/1q75.pdb +0 -516
- rc_foundry-0.1.2/models/rfd3/docs/input_pdbs/2r5z.pdb +0 -2141
- rc_foundry-0.1.2/models/rfd3/docs/input_pdbs/5o4d.pdb +0 -769
- rc_foundry-0.1.2/models/rfd3/docs/na_binder_design.md +0 -85
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/.github/workflows/lint_trunk.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/.gitignore +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/.gitmodules +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/.pre-commit-config.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/.project-root +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/LICENSE.md +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/Makefile +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/3en2_from_file.cif +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/3en2_from_json_with_msa.json +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/5hkn_from_file.cif +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/7o1r_from_json.json +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/7xli_template_antigen_and_framework.json +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/9dfn.cif +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/9dfn_template_ligand_and_protein.json +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/ligands/HEM.sdf +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/ligands/NAG.cif +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/msas/3en2_A.a3m.gz +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/msas/7o1r_A.a3m.gz +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/msas/8cdz_A.a3m.gz +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/multiple_examples_from_json.json +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/templates/7xli_chain_A.cif +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/docs/releases/rf3/examples/templates/7xli_chain_B.cif +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/examples/all.ipynb +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/examples/enzymes.ipynb +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/__init__.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/collate/feature_collator.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/inference.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/inference_engines/mpnn.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/loss/nll_loss.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/metrics/nll.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/metrics/sequence_recovery.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/model/layers/graph_embeddings.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/model/layers/message_passing.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/model/layers/position_wise_feed_forward.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/model/layers/positional_encoding.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/model/mpnn.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/pipelines/mpnn.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/samplers/samplers.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/train.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/trainers/mpnn.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/transforms/feature_aggregation/mpnn.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/transforms/feature_aggregation/polymer_ligand_interface.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/transforms/feature_aggregation/token_encodings.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/transforms/feature_aggregation/user_settings.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/transforms/polymer_ligand_interface.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/utils/probability.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/src/mpnn/utils/weights.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/conftest.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_feature_collator.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_inference_engine.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_inference_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_integration.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_loss.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_metrics.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_model.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_pipeline.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_polymer_ligand_interface.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_samplers.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/mpnn/tests/test_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/README.md +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/callbacks/default.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/callbacks/dump_validation_structures.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/callbacks/metrics_logging.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/callbacks/train_logging.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/dataloader/default.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/base.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/pdb_and_distillation.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/pdb_only.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/disorder_distillation.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/domain_distillation.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/monomer_distillation.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/na_complex_distillation.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/pdb/af3_weighted_sampling.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/pdb/base.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/pdb/plinder.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/pdb/train_interface.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/pdb/train_pn_unit.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/train/rna_monomer_distillation.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/val/af3_ab_set.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/val/af3_validation.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/val/base.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/datasets/val/runs_and_poses.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/debug/default.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/debug/train_specific_examples.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/experiment/pretrained/rf3.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/experiment/pretrained/rf3_with_confidence.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/experiment/quick-rf3-with-confidence.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/experiment/quick-rf3.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/hydra/default.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/hydra/no_logging.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/inference.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/inference_engine/base.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/inference_engine/rf3.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/logger/csv.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/logger/default.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/logger/wandb.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/components/ema.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/components/rf3_net.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/components/rf3_net_with_confidence_head.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/optimizers/adam.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/rf3.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/rf3_with_confidence.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/model/schedulers/af3.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/paths/data/default.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/paths/default.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/train.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/cpu.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/ddp.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/loss/losses/confidence_loss.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/loss/losses/diffusion_loss.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/loss/losses/distogram_loss.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/loss/structure_prediction.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/loss/structure_prediction_with_confidence.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/metrics/structure_prediction.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/rf3.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/trainer/rf3_with_confidence.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/configs/validate.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/__init__.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/_version.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/alignment.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/callbacks/dump_validation_structures.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/callbacks/metrics_logging.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/chemical.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/cli.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/data/cyclic_transform.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/data/extra_xforms.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/data/ground_truth_template.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/data/paired_msa.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/data/pipeline_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/data/pipelines.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/diffusion_samplers/inference_sampler.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/inference.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/inference_engines/__init__.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/inference_engines/rf3.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/kinematics.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/loss/af3_confidence_loss.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/loss/af3_losses.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/loss/loss.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/chiral.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/clashing_chains.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/distogram.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/lddt.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/metadata.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/metric_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/predicted_error.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/rasa.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/metrics/selected_distances.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/RF3.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/RF3_blocks.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/RF3_structure.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/af3_auxiliary_heads.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/af3_diffusion_transformer.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/attention.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/layer_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/mlff.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/outer_product.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/pairformer_layers.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/model/layers/structure_bias.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/scoring.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/symmetry/resolve.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/train.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/trainers/rf3.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/util_module.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/frames.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/inference.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/io.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/loss.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/predict_and_score.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/predicted_error.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/utils/recycling.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/src/rf3/validate.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/.gitkeep +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/conftest.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/5vht_from_file.cif +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/5vht_from_json.json +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/8vkf_from_file.cif +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/example_from_pdb_with_inter_chain_bond.pdb +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/example_pdb_with_clashing_ligand_name.pdb +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/example_with_ncaa.json +0 -0
- {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
- {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
- {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
- {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
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/msas/5vht_A.a3m +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/msas/8vkf_A.a3m +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/multiple_examples_from_json.json +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/ncaa/ligand_as_ncaa.cif +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/ncaa/penicillin_ts2_as_ncaa.cif +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/data/nested_examples/example_from_json.json +0 -0
- {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
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/test_chiral_metrics.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/test_inference_regression.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rf3/tests/test_write_confidence.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/.gitignore +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/__init__.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/callbacks/design_callbacks.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/callbacks/metrics_logging.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/callbacks/train_logging.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/dataloader/default.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/dataloader/fast.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/conditions/dna_condition.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/conditions/island.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/conditions/ppi.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/conditions/sequence_design.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/conditions/tipatom.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/conditions/unconditional.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/af3_train_interface.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/af3_train_pn_unit.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/base.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/base_no_weights.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/base_transform_args.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/na_complex_distillation.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/pdb_base.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/rfd3_train_interface.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/pdb/rfd3_train_pn_unit.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/train/rfd3_monomer_distillation.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/bcov_ppi_easy_medium.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/design_validation_base.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/dna_binder_design5.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/dna_binder_long.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/dna_binder_short.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/indexed.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/mcsa_41.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/mcsa_41_short_rigid.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/ppi_inference.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/sm_binder_hbonds.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/sm_binder_hbonds_short.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/unconditional.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/unconditional_deep.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/unindexed.yaml +0 -0
- {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
- {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
- {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
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/datasets/val/val_examples/bpem_ori_hb.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/debug/default.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/debug/train_specific_examples.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/dev.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/experiment/debug.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/experiment/test-uncond.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/experiment/test-unindexed.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/hydra/default.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/hydra/no_logging.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/inference.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/inference_engine/base.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/inference_engine/dev.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/inference_engine/rfdiffusion3.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/logger/csv.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/logger/default.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/logger/wandb.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/components/ema.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/components/rfd3_net.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/optimizers/adam.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/rfd3_base.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/samplers/edm.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/samplers/symmetry.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/model/schedulers/af3.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/paths/data/default.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/paths/default.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/train.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/trainer/cpu.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/trainer/ddp.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/trainer/loss/losses/diffusion_loss.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/trainer/loss/losses/sequence_loss.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/trainer/metrics/design_metrics.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/trainer/rfd3_base.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/configs/validate.yaml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/demo.json +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/input.md +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/input_pdbs/4zxb_croppped.pdb +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/input_pdbs/5o45_cropped.pdb +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/input_pdbs/7v11.pdb +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/input_pdbs/IAI.pdb +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/input_pdbs/M0255_1mg5.pdb +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/protein_binder_design.md +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/sm_binder_design.md +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/docs/symmetry.md +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/.gitignore +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/Makefile +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/__init__.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/callbacks.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/cli.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/constants.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/engine.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/datasets.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/input_parsing.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/legacy_input_parsing.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/parsing.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/symmetry/atom_array.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/symmetry/checks.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/symmetry/contigs.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/symmetry/frames.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/inference/symmetry/symmetry_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/metrics/design_metrics.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/metrics/hbonds_hbplus_metrics.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/metrics/hbonds_metrics.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/metrics/losses.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/metrics/metrics_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/metrics/sidechain_metrics.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/RFD3.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/RFD3_diffusion_module.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/cfg_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/inference_sampler.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/attention.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/block_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/blocks.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/chunked_pairwise.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/encoders.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/layer_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/model/layers/pairformer_layers.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/run_inference.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/testing/debug_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/testing/testing_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/train.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/trainer/dump_validation_structures.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/trainer/fabric_trainer.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/trainer/recycling.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/trainer/rfd3.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/trainer/trainer_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/conditioning_base.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/conditioning_utils.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/design_transforms.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/dna_crop.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/hbonds.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/hbonds_hbplus.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/ncaa_transforms.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/pipelines.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/ppi_transforms.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/rasa.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/symmetry.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/training_conditions.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/util_transforms.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/transforms/virtual_atoms.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/utils/inference.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/src/rfd3/utils/io.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/conftest.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_conditioning.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_glycines.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_legacy_pipeline_equivalence.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_metrics.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_partial_diffusion.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_selections.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_subgraph_sampling.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_symmetry.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_tokenization.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/test_unindexing.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/transforms/regression_test_data/1p5d_0_inference_pretrain.pkl +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/transforms/regression_test_data/1p5d_0_train_pretrain.pkl +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/transforms/regression_test_data/1qys_0_inference_pretrain.pkl +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/transforms/regression_test_data/1qys_0_train_pretrain.pkl +0 -0
- {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
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/models/rfd3/tests/transforms/test_pipeline_regression.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/pyproject.toml +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/refactor.sh +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/__init__.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/callbacks/__init__.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/callbacks/callback.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/callbacks/health_logging.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/callbacks/metrics_logging.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/callbacks/timing_logging.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/callbacks/train_logging.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/common.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/constants.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/hydra/resolvers.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/inference_engines/base.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/inference_engines/checkpoint_registry.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/metrics/__init__.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/metrics/losses.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/metrics/metric.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/model/layers/blocks.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/testing/__init__.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/testing/fixtures.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/testing/pytest_hooks.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/trainers/fabric.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/training/EMA.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/training/checkpoint.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/training/schedulers.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/alignment.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/components.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/datasets.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/ddp.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/instantiators.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/logging.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/rigid.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/rotation_augmentation.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/squashfs.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/torch.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry/utils/weights.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/src/foundry_cli/__init__.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/tests/conftest.py +0 -0
- {rc_foundry-0.1.2 → rc_foundry-0.1.3}/tests/test_torch_utils.py +0 -0
- {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.
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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,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
|
|
11
|
-
"from
|
|
12
|
-
"from
|
|
13
|
-
"from
|
|
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
|
|
117
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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=./
|
|
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,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.
|
|
32
|
-
__version_tuple__ = version_tuple = (0, 1,
|
|
31
|
+
__version__ = version = '0.1.3'
|
|
32
|
+
__version_tuple__ = version_tuple = (0, 1, 3)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|