rc-foundry 0.1.2__py3-none-any.whl → 0.1.3__py3-none-any.whl

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.
foundry/version.py CHANGED
@@ -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
@@ -5,6 +5,7 @@ from pathlib import Path
5
5
  from typing import Optional
6
6
  from urllib.request import urlopen
7
7
 
8
+ import rootutils
8
9
  import typer
9
10
  from dotenv import find_dotenv, load_dotenv, set_key
10
11
  from rich.console import Console
@@ -96,7 +97,7 @@ def install_model(
96
97
  raise typer.Exit(1)
97
98
 
98
99
  checkpoint_info = REGISTERED_CHECKPOINTS[model_name]
99
- dest_path = checkpoint_dir / checkpoint_info["filename"]
100
+ dest_path = checkpoint_dir / checkpoint_info.filename
100
101
 
101
102
  # Check if already exists
102
103
  if dest_path.exists() and not force:
@@ -107,12 +108,12 @@ def install_model(
107
108
  return
108
109
 
109
110
  console.print(
110
- f"[cyan]Installing {model_name}:[/cyan] {checkpoint_info['description']}"
111
+ f"[cyan]Installing {model_name}:[/cyan] {checkpoint_info.description}"
111
112
  )
112
113
 
113
114
  try:
114
115
  download_file(
115
- checkpoint_info["url"], dest_path, checkpoint_info.get("sha256")
116
+ checkpoint_info.url, dest_path, checkpoint_info.sha256
116
117
  )
117
118
  console.print(
118
119
  f"[green]✓[/green] Successfully installed {model_name} to {dest_path}"
@@ -184,7 +185,7 @@ def list_models():
184
185
  """List available model checkpoints."""
185
186
  console.print("[bold]Available models:[/bold]\n")
186
187
  for name, info in REGISTERED_CHECKPOINTS.items():
187
- console.print(f" [cyan]{name:8}[/cyan] - {info['description']}")
188
+ console.print(f" [cyan]{name:8}[/cyan] - {info.description}")
188
189
 
189
190
 
190
191
  @app.command()
mpnn/utils/inference.py CHANGED
@@ -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
 
@@ -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
 
@@ -1,7 +1,7 @@
1
1
  foundry/__init__.py,sha256=H8S1nl5v6YeW8ggn1jKy4GdtH7c-FGS-j7CqUCAEnAU,1926
2
2
  foundry/common.py,sha256=Aur8mH-CNmcUqSsw7VgaCQSW5sH1Bqf8Da91jzxPV1Y,3035
3
3
  foundry/constants.py,sha256=0n1wBKCvNuw3QaQehSbmsHYkIdaGn3tLeRFItBrdeHY,913
4
- foundry/version.py,sha256=Ok5oAXdWgR9aghaFXTafTeDW6sYO3uVe6d2Nket57R4,704
4
+ foundry/version.py,sha256=q5nF98G8SoVeJqaknL0xdyxtv0egsqb0fK06_84Izu8,704
5
5
  foundry/callbacks/__init__.py,sha256=VsRT1e4sqlJHPcTCsfupMEx82Iz-LoOAGPpwvf_OJeE,126
6
6
  foundry/callbacks/callback.py,sha256=xZBo_suP4bLrP6gl5uJPbaXm00DXigePa6dMeDxucgg,3890
7
7
  foundry/callbacks/health_logging.py,sha256=tEtkByOlaAA7nnelxb7PbM9_dcIgOsdbxCdQY3K5pMc,16664
@@ -34,7 +34,7 @@ foundry/utils/squashfs.py,sha256=QlcwuJyVe-QVfIOS7o1QfLhaCQPNzzox7ln4n8dcYEg,523
34
34
  foundry/utils/torch.py,sha256=OLsqoxw4CTXbGzWUHernLUT7uQjLu0tVPtD8h8747DI,11211
35
35
  foundry/utils/weights.py,sha256=btz4S02xff2vgiq4xMfiXuhK1ERafqQPtmimo1DmoWY,10381
36
36
  foundry_cli/__init__.py,sha256=0BxY2RUKJLaMXUGgypPCwlTskTEFdVnkhTR4C4ft2Kw,52
37
- foundry_cli/download_checkpoints.py,sha256=TLwflDCm9RBCOfpv0KEiQegEp6DjnUIi4fGHiIHLrgc,8382
37
+ foundry_cli/download_checkpoints.py,sha256=CDMxm3otzpb_c46AE2OwQY7aG7K_vnCJLKjP4U3b0Oc,8380
38
38
  mpnn/__init__.py,sha256=hgQcXFaCbAxFrhydVAy0xj8yC7UJF-GCCFhqD0sZ7I4,57
39
39
  mpnn/inference.py,sha256=wPtGR325eVRVeesXoWtBK6b_-VcU8BZae5IfQN3-mvA,1669
40
40
  mpnn/train.py,sha256=9eQGBd3rdNF5Zr2w8oUgETbqxBavNBajtA6Vbc5zESE,10239
@@ -56,7 +56,7 @@ mpnn/transforms/feature_aggregation/mpnn.py,sha256=jkhyMCqJipKQ2PvjqPkvvClhoiXx_
56
56
  mpnn/transforms/feature_aggregation/polymer_ligand_interface.py,sha256=gDdt9RZd0PO0YJdouNr0qsHFZV1i-5ewU6XuJrwPY54,2870
57
57
  mpnn/transforms/feature_aggregation/token_encodings.py,sha256=qVlUky4HcDSU5drrZpZBnUvTSGdT6C7MN8f_owa81Bw,2227
58
58
  mpnn/transforms/feature_aggregation/user_settings.py,sha256=uKyIDXz-QG0-KWQO1kqPlMj6i7RoVM6yH4iGNXFStoU,15007
59
- mpnn/utils/inference.py,sha256=pVZuzEldHjxLHSUYH4PvdWIFRemAfi46424Ne3Rey4k,96543
59
+ mpnn/utils/inference.py,sha256=QLeukqLpedMNmvjbYgvLwDS5k7Q__NWILDSEbETkoCI,96539
60
60
  mpnn/utils/probability.py,sha256=EYisliXNGXjuSPbzZwcIKjlhyINikGsqQndGBEbQoPI,990
61
61
  mpnn/utils/weights.py,sha256=VsaIcOWTv8G-WJ9denxLRm3FQ9l6L66AVQN08E9BMSg,16411
62
62
  rf3/__init__.py,sha256=XBb5hF2RqBPHODGRmjiRbfTXgOGfOzdY91GbS4Vex00,70
@@ -148,7 +148,7 @@ rfd3/model/layers/chunked_pairwise.py,sha256=de5Qc3P7GEfZlX-QLaKfJxr6Ky5vgLcWWog
148
148
  rfd3/model/layers/encoders.py,sha256=CqByjHNSbtMIaNP_h2iEJZdTbm-N8SGo1bZgvRNpMJ8,15207
149
149
  rfd3/model/layers/layer_utils.py,sha256=UPYo-DYa__93KONSEj2YZWLtBqvYNSA9_wHDDPhVrIc,5710
150
150
  rfd3/model/layers/pairformer_layers.py,sha256=uimskhN-Ec0apEXAU6JqomyKX5-6ormrEsCFJotkBtM,3991
151
- rfd3/testing/debug.py,sha256=JqpSKbSp1l9V_3trLNzpdt3gazqrSOSq7NrmcuGjpJQ,4059
151
+ rfd3/testing/debug.py,sha256=EeuGCEKyp-caoiskjnyfi88TfnJr5lcnPT2z4gblqvY,3958
152
152
  rfd3/testing/debug_utils.py,sha256=i_GjrsRjeaREv6hlX2sEmeztpo9w9rg7Ne3VT5-YILA,2170
153
153
  rfd3/testing/testing_utils.py,sha256=CtpTDxePbCluzuvd6jBfJNI2a3_8Ry2Whbgcf-5upiM,12202
154
154
  rfd3/trainer/dump_validation_structures.py,sha256=qY8s2hPBflJTXPiIUnqFFE9g36y_7s39MEcMRrxZUmA,6027
@@ -172,9 +172,9 @@ rfd3/transforms/util_transforms.py,sha256=2AcLkzx-73ZFgcWD1cIHv7NyniRPI4_zThHK8a
172
172
  rfd3/transforms/virtual_atoms.py,sha256=UpmxzPPd5FaJigcRoxgLSHHrLLOqsCvZ5PPZfQSGqII,12547
173
173
  rfd3/utils/inference.py,sha256=RQp5CCy6Z6uHVZ2Mx0zmmGluYEOrASke4bABtfRjpy0,26448
174
174
  rfd3/utils/io.py,sha256=wbdjUTQkDc3RCSM7gdogA-XOKR68HeQ-cfvyN4pP90w,9849
175
- rfd3/utils/vizualize.py,sha256=cumsMtSFQ8lfVtJDDQ9mpfMf9GSyM55RYmKl9H61_TM,11147
176
- rc_foundry-0.1.2.dist-info/METADATA,sha256=41TPsF9MGq2ab237zdmSqI4a6BujF7hyq3fvW78tsEA,10358
177
- rc_foundry-0.1.2.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
178
- rc_foundry-0.1.2.dist-info/entry_points.txt,sha256=BmiWCbWGtrd_lSOFMuCLBXyo84B7Nco-alj7hB0Yw9A,130
179
- rc_foundry-0.1.2.dist-info/licenses/LICENSE.md,sha256=NKtPCJ7QMysFmzeDg56ZfUStvgzbq5sOvRQv7_ddZOs,1533
180
- rc_foundry-0.1.2.dist-info/RECORD,,
175
+ rfd3/utils/vizualize.py,sha256=HPlczrA3zkOuxV5X05eOvy_Oga9e3cPnFUXOEP4RR_g,11046
176
+ rc_foundry-0.1.3.dist-info/METADATA,sha256=gY8d46JTRTfot6O9MqW34E0D1O64xNhMeVdpJrQ-G18,10578
177
+ rc_foundry-0.1.3.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
178
+ rc_foundry-0.1.3.dist-info/entry_points.txt,sha256=BmiWCbWGtrd_lSOFMuCLBXyo84B7Nco-alj7hB0Yw9A,130
179
+ rc_foundry-0.1.3.dist-info/licenses/LICENSE.md,sha256=NKtPCJ7QMysFmzeDg56ZfUStvgzbq5sOvRQv7_ddZOs,1533
180
+ rc_foundry-0.1.3.dist-info/RECORD,,
rfd3/testing/debug.py CHANGED
@@ -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
rfd3/utils/vizualize.py CHANGED
@@ -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