rc-foundry 0.1.5__py3-none-any.whl → 0.1.6__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.
Files changed (138) hide show
  1. foundry/version.py +2 -2
  2. {rc_foundry-0.1.5.dist-info → rc_foundry-0.1.6.dist-info}/METADATA +1 -1
  3. {rc_foundry-0.1.5.dist-info → rc_foundry-0.1.6.dist-info}/RECORD +138 -7
  4. rf3/configs/callbacks/default.yaml +5 -0
  5. rf3/configs/callbacks/dump_validation_structures.yaml +6 -0
  6. rf3/configs/callbacks/metrics_logging.yaml +10 -0
  7. rf3/configs/callbacks/train_logging.yaml +16 -0
  8. rf3/configs/dataloader/default.yaml +15 -0
  9. rf3/configs/datasets/base.yaml +31 -0
  10. rf3/configs/datasets/pdb_and_distillation.yaml +58 -0
  11. rf3/configs/datasets/pdb_only.yaml +17 -0
  12. rf3/configs/datasets/train/disorder_distillation.yaml +48 -0
  13. rf3/configs/datasets/train/domain_distillation.yaml +50 -0
  14. rf3/configs/datasets/train/monomer_distillation.yaml +49 -0
  15. rf3/configs/datasets/train/na_complex_distillation.yaml +50 -0
  16. rf3/configs/datasets/train/pdb/af3_weighted_sampling.yaml +8 -0
  17. rf3/configs/datasets/train/pdb/base.yaml +32 -0
  18. rf3/configs/datasets/train/pdb/plinder.yaml +54 -0
  19. rf3/configs/datasets/train/pdb/train_interface.yaml +51 -0
  20. rf3/configs/datasets/train/pdb/train_pn_unit.yaml +46 -0
  21. rf3/configs/datasets/train/rna_monomer_distillation.yaml +56 -0
  22. rf3/configs/datasets/val/af3_ab_set.yaml +11 -0
  23. rf3/configs/datasets/val/af3_validation.yaml +11 -0
  24. rf3/configs/datasets/val/base.yaml +32 -0
  25. rf3/configs/datasets/val/runs_and_poses.yaml +12 -0
  26. rf3/configs/debug/default.yaml +66 -0
  27. rf3/configs/debug/train_specific_examples.yaml +21 -0
  28. rf3/configs/experiment/pretrained/rf3.yaml +50 -0
  29. rf3/configs/experiment/pretrained/rf3_with_confidence.yaml +13 -0
  30. rf3/configs/experiment/quick-rf3-with-confidence.yaml +15 -0
  31. rf3/configs/experiment/quick-rf3.yaml +61 -0
  32. rf3/configs/hydra/default.yaml +18 -0
  33. rf3/configs/hydra/no_logging.yaml +7 -0
  34. rf3/configs/inference.yaml +7 -0
  35. rf3/configs/inference_engine/base.yaml +23 -0
  36. rf3/configs/inference_engine/rf3.yaml +33 -0
  37. rf3/configs/logger/csv.yaml +6 -0
  38. rf3/configs/logger/default.yaml +3 -0
  39. rf3/configs/logger/wandb.yaml +15 -0
  40. rf3/configs/model/components/ema.yaml +1 -0
  41. rf3/configs/model/components/rf3_net.yaml +177 -0
  42. rf3/configs/model/components/rf3_net_with_confidence_head.yaml +45 -0
  43. rf3/configs/model/optimizers/adam.yaml +5 -0
  44. rf3/configs/model/rf3.yaml +43 -0
  45. rf3/configs/model/rf3_with_confidence.yaml +7 -0
  46. rf3/configs/model/schedulers/af3.yaml +6 -0
  47. rf3/configs/paths/data/default.yaml +43 -0
  48. rf3/configs/paths/default.yaml +21 -0
  49. rf3/configs/train.yaml +42 -0
  50. rf3/configs/trainer/cpu.yaml +6 -0
  51. rf3/configs/trainer/ddp.yaml +5 -0
  52. rf3/configs/trainer/loss/losses/confidence_loss.yaml +29 -0
  53. rf3/configs/trainer/loss/losses/diffusion_loss.yaml +9 -0
  54. rf3/configs/trainer/loss/losses/distogram_loss.yaml +2 -0
  55. rf3/configs/trainer/loss/structure_prediction.yaml +4 -0
  56. rf3/configs/trainer/loss/structure_prediction_with_confidence.yaml +2 -0
  57. rf3/configs/trainer/metrics/structure_prediction.yaml +14 -0
  58. rf3/configs/trainer/rf3.yaml +20 -0
  59. rf3/configs/trainer/rf3_with_confidence.yaml +13 -0
  60. rf3/configs/validate.yaml +45 -0
  61. rfd3/cli.py +10 -4
  62. rfd3/configs/__init__.py +0 -0
  63. rfd3/configs/callbacks/design_callbacks.yaml +10 -0
  64. rfd3/configs/callbacks/metrics_logging.yaml +20 -0
  65. rfd3/configs/callbacks/train_logging.yaml +24 -0
  66. rfd3/configs/dataloader/default.yaml +15 -0
  67. rfd3/configs/dataloader/fast.yaml +11 -0
  68. rfd3/configs/datasets/conditions/dna_condition.yaml +3 -0
  69. rfd3/configs/datasets/conditions/island.yaml +28 -0
  70. rfd3/configs/datasets/conditions/ppi.yaml +2 -0
  71. rfd3/configs/datasets/conditions/sequence_design.yaml +17 -0
  72. rfd3/configs/datasets/conditions/tipatom.yaml +28 -0
  73. rfd3/configs/datasets/conditions/unconditional.yaml +21 -0
  74. rfd3/configs/datasets/design_base.yaml +97 -0
  75. rfd3/configs/datasets/train/pdb/af3_train_interface.yaml +46 -0
  76. rfd3/configs/datasets/train/pdb/af3_train_pn_unit.yaml +42 -0
  77. rfd3/configs/datasets/train/pdb/base.yaml +14 -0
  78. rfd3/configs/datasets/train/pdb/base_no_weights.yaml +19 -0
  79. rfd3/configs/datasets/train/pdb/base_transform_args.yaml +59 -0
  80. rfd3/configs/datasets/train/pdb/na_complex_distillation.yaml +20 -0
  81. rfd3/configs/datasets/train/pdb/pdb_base.yaml +11 -0
  82. rfd3/configs/datasets/train/pdb/rfd3_train_interface.yaml +22 -0
  83. rfd3/configs/datasets/train/pdb/rfd3_train_pn_unit.yaml +23 -0
  84. rfd3/configs/datasets/train/rfd3_monomer_distillation.yaml +38 -0
  85. rfd3/configs/datasets/val/bcov_ppi_easy_medium.yaml +9 -0
  86. rfd3/configs/datasets/val/design_validation_base.yaml +40 -0
  87. rfd3/configs/datasets/val/dna_binder_design5.yaml +9 -0
  88. rfd3/configs/datasets/val/dna_binder_long.yaml +13 -0
  89. rfd3/configs/datasets/val/dna_binder_short.yaml +13 -0
  90. rfd3/configs/datasets/val/indexed.yaml +9 -0
  91. rfd3/configs/datasets/val/mcsa_41.yaml +9 -0
  92. rfd3/configs/datasets/val/mcsa_41_short_rigid.yaml +10 -0
  93. rfd3/configs/datasets/val/ppi_inference.yaml +7 -0
  94. rfd3/configs/datasets/val/sm_binder_hbonds.yaml +13 -0
  95. rfd3/configs/datasets/val/sm_binder_hbonds_short.yaml +15 -0
  96. rfd3/configs/datasets/val/unconditional.yaml +9 -0
  97. rfd3/configs/datasets/val/unconditional_deep.yaml +9 -0
  98. rfd3/configs/datasets/val/unindexed.yaml +8 -0
  99. rfd3/configs/datasets/val/val_examples/bcov_ppi_easy_medium_with_ori.yaml +151 -0
  100. rfd3/configs/datasets/val/val_examples/bcov_ppi_easy_medium_with_ori_spoof_helical_bundle.yaml +7 -0
  101. rfd3/configs/datasets/val/val_examples/bcov_ppi_easy_medium_with_ori_varying_lengths.yaml +28 -0
  102. rfd3/configs/datasets/val/val_examples/bpem_ori_hb.yaml +212 -0
  103. rfd3/configs/debug/default.yaml +64 -0
  104. rfd3/configs/debug/train_specific_examples.yaml +21 -0
  105. rfd3/configs/dev.yaml +9 -0
  106. rfd3/configs/experiment/debug.yaml +14 -0
  107. rfd3/configs/experiment/pretrain.yaml +31 -0
  108. rfd3/configs/experiment/test-uncond.yaml +10 -0
  109. rfd3/configs/experiment/test-unindexed.yaml +21 -0
  110. rfd3/configs/hydra/default.yaml +18 -0
  111. rfd3/configs/hydra/no_logging.yaml +7 -0
  112. rfd3/configs/inference.yaml +9 -0
  113. rfd3/configs/inference_engine/base.yaml +15 -0
  114. rfd3/configs/inference_engine/dev.yaml +20 -0
  115. rfd3/configs/inference_engine/rfdiffusion3.yaml +65 -0
  116. rfd3/configs/logger/csv.yaml +6 -0
  117. rfd3/configs/logger/default.yaml +2 -0
  118. rfd3/configs/logger/wandb.yaml +15 -0
  119. rfd3/configs/model/components/ema.yaml +1 -0
  120. rfd3/configs/model/components/rfd3_net.yaml +131 -0
  121. rfd3/configs/model/optimizers/adam.yaml +5 -0
  122. rfd3/configs/model/rfd3_base.yaml +8 -0
  123. rfd3/configs/model/samplers/edm.yaml +21 -0
  124. rfd3/configs/model/samplers/symmetry.yaml +10 -0
  125. rfd3/configs/model/schedulers/af3.yaml +6 -0
  126. rfd3/configs/paths/data/default.yaml +18 -0
  127. rfd3/configs/paths/default.yaml +22 -0
  128. rfd3/configs/train.yaml +28 -0
  129. rfd3/configs/trainer/cpu.yaml +6 -0
  130. rfd3/configs/trainer/ddp.yaml +5 -0
  131. rfd3/configs/trainer/loss/losses/diffusion_loss.yaml +12 -0
  132. rfd3/configs/trainer/loss/losses/sequence_loss.yaml +3 -0
  133. rfd3/configs/trainer/metrics/design_metrics.yaml +22 -0
  134. rfd3/configs/trainer/rfd3_base.yaml +35 -0
  135. rfd3/configs/validate.yaml +34 -0
  136. {rc_foundry-0.1.5.dist-info → rc_foundry-0.1.6.dist-info}/WHEEL +0 -0
  137. {rc_foundry-0.1.5.dist-info → rc_foundry-0.1.6.dist-info}/entry_points.txt +0 -0
  138. {rc_foundry-0.1.5.dist-info → rc_foundry-0.1.6.dist-info}/licenses/LICENSE.md +0 -0
@@ -0,0 +1,65 @@
1
+ # @package _global_
2
+ defaults:
3
+ - base
4
+ - _self_
5
+
6
+ _target_: rfd3.engine.RFD3InferenceEngine
7
+
8
+ out_dir: ???
9
+ inputs: ??? # null, json, pdb or
10
+ ckpt_path: /projects/ml/aa_design/models/rfd3_latest_cleaned.ckpt
11
+ json_keys_subset: null
12
+ skip_existing: True
13
+
14
+ #########################################################
15
+ # Design spec args: overrides args from input json
16
+ specification: {}
17
+ #########################################################
18
+
19
+ # Diffusion args
20
+ diffusion_batch_size: 8
21
+ n_batches: 1
22
+
23
+ # Inference sampler args | set to None to use the default in the checkpoint's config
24
+ inference_sampler:
25
+ kind: "default" # "default" or "symmetry" to choose the sampler
26
+ # Classifier-free guidance args:
27
+ cfg_features: # set to 0 in the reference CFG step
28
+ - active_donor
29
+ - active_acceptor
30
+ - ref_atomwise_rasa
31
+
32
+ use_classifier_free_guidance: False
33
+ cfg_t_max: null # max t to apply cfg guidance
34
+ cfg_scale: 1.5
35
+ center_option: "all" # Options are ["all", "motif", "diffuse"]
36
+ s_trans: 1.0 # Translational noise scale for augmentation during inference
37
+ inference_noise_scaling_factor: 1.0
38
+ allow_realignment: False
39
+
40
+ # Diffusion args:
41
+ num_timesteps: 200
42
+ step_scale: 1.5 # 1.5 - 1.0 | Higher values lead to less diverse, more designable, structures
43
+ noise_scale: 1.003
44
+ p: 7
45
+ gamma_0: 0.6 # Previously 1.0 | 0.0 for ODE sampling
46
+ gamma_min: 1.0
47
+ s_jitter_origin: 0.0 # Sigma of gaussian noise to jitter the motif offset (equivalent to ORI token Jitter)
48
+
49
+ # Saving args
50
+ cleanup_guideposts: True
51
+ cleanup_virtual_atoms: True
52
+ read_sequence_from_sequence_head: True
53
+ output_full_json: True
54
+
55
+ # Prefix to add to all output samples
56
+ # Default: None -> f'{jsonfilebasename}_{jsonkey}_{batch}_{model}'
57
+ # Otherwise: string -> f'{string}{jsonkey}_{batch}_{model}'
58
+ # e.g. Empty string -> f'{jsonkey}_{batch}_{model}'
59
+ # e.g. Chunk string -> f'{chunkprefix_}{jsonkey}_{batch}_{model}' (pipelines usage)
60
+ global_prefix: null
61
+ dump_prediction_metadata_json: True
62
+ dump_trajectories: False
63
+ align_trajectory_structures: False
64
+ prevalidate_inputs: True
65
+ low_memory_mode: False # False for standard mode, True for memory efficient tokenization mode
@@ -0,0 +1,6 @@
1
+ # https://lightning.ai/docs/fabric/latest/api/generated/lightning.fabric.loggers.CSVLogger.html#lightning.fabric.loggers.CSVLogger
2
+
3
+ csv:
4
+ _target_: lightning.fabric.loggers.CSVLogger
5
+ root_dir: ${paths.output_dir}
6
+ flush_logs_every_n_steps: 1
@@ -0,0 +1,2 @@
1
+ defaults:
2
+ - csv
@@ -0,0 +1,15 @@
1
+ # https://wandb.ai
2
+
3
+ wandb:
4
+ _target_: wandb.integration.lightning.fabric.WandbLogger
5
+ save_dir: ${paths.output_dir}
6
+ name: ${name}
7
+ offline: False
8
+ id: null # pass correct id (along with checkpoint path, and resume='allow' or 'must') to resume a run
9
+ anonymous: null # enable anonymous logging
10
+ project: ${project}
11
+ prefix: "" # a string to put at the beginning of metric keys
12
+ log_model: False # do not upload model checkpoints
13
+ tags: ${tags}
14
+ # (Default resume to "never" to avoid accidentally resuming runs; we want to be explicit about resuming)
15
+ resume: never # never, allow, or must (see: https://docs.wandb.ai/guides/runs/resuming/)
@@ -0,0 +1 @@
1
+ decay: 0.999 # From AF-3
@@ -0,0 +1,131 @@
1
+ _target_: rfd3.model.RFD3.RFD3
2
+
3
+ c_s: 384
4
+ c_z: 128
5
+ c_atom: 128
6
+ c_atompair: 16
7
+
8
+ token_initializer: # formerly known as the trunk
9
+ relative_position_encoding:
10
+ r_max: 32
11
+ s_max: 2
12
+
13
+ # Attention pair biases without batch dimensions
14
+ n_pairformer_blocks: 2
15
+ pairformer_block:
16
+ use_triangle_attn: false
17
+ use_triangle_mult: false
18
+ attention_pair_bias:
19
+ n_head: 16
20
+ kq_norm: True
21
+
22
+ token_1d_features:
23
+ ref_motif_token_type: 3
24
+ restype: 32
25
+ ref_plddt: 1
26
+ is_non_loopy: 1
27
+
28
+ downcast: ${model.net.diffusion_module.downcast}
29
+ atom_1d_features:
30
+ ref_atom_name_chars: 256
31
+ ref_element: 128
32
+ ref_charge: 1
33
+ ref_mask: 1
34
+ ref_is_motif_atom_with_fixed_coord: 1
35
+ ref_is_motif_atom_unindexed: 1
36
+ has_zero_occupancy: 1
37
+ ref_pos: 3
38
+
39
+ # Guided features
40
+ ref_atomwise_rasa: 3
41
+ active_donor: 1
42
+ active_acceptor: 1
43
+ is_atom_level_hotspot: 1
44
+
45
+ atom_transformer:
46
+ n_blocks: 0
47
+ atom_transformer_block:
48
+ n_head: 4
49
+ kq_norm: True
50
+ no_residual_connection_between_attention_and_transition: False
51
+ dropout: 0.0
52
+ n_attn_seq_neighbours: 4
53
+ n_attn_keys: 128
54
+
55
+ diffusion_module:
56
+ _target_: rfd3.model.RFD3_diffusion_module.RFD3DiffusionModule
57
+ c_token: 768
58
+ c_t_embed: 256 # Time embedding dimension
59
+ sigma_data: 16
60
+ f_pred: edm
61
+ n_attn_seq_neighbours: 2 # include self + n flanking neighbours
62
+ n_attn_keys: 128
63
+ n_recycle: 2
64
+ use_local_token_attention: false
65
+
66
+ # Upcast/downcast mechanisms
67
+ upcast:
68
+ method: cross_attention
69
+ n_split: 3
70
+ cross_attention_block:
71
+ n_head: 4
72
+ c_model: 128
73
+ dropout: 0.0
74
+ kq_norm: True
75
+
76
+ downcast:
77
+ method: cross_attention
78
+ cross_attention_block:
79
+ n_head: 4
80
+ c_model: 128
81
+ dropout: 0.0
82
+ kq_norm: True
83
+
84
+ ########################################################################
85
+ # UNet level processing
86
+ ########################################################################
87
+ atom_attention_encoder:
88
+ n_blocks: 3
89
+ atom_transformer_block:
90
+ n_head: 4
91
+ kq_norm: True
92
+ no_residual_connection_between_attention_and_transition: False
93
+ dropout: 0.0
94
+
95
+ diffusion_token_encoder: # encodes self conditioning information and distogram
96
+ use_distogram: True
97
+ use_self: True
98
+ use_sinusoidal_distogram_embedder: False
99
+ sigma_data: ${model.net.diffusion_module.sigma_data}
100
+
101
+ n_pairformer_blocks: 2
102
+ pairformer_block:
103
+ use_triangle_attn: false
104
+ use_triangle_mult: false
105
+ attention_pair_bias:
106
+ n_head: 16
107
+ kq_norm: True
108
+
109
+ diffusion_transformer:
110
+ n_block: 18
111
+ n_registers: 0 # 8 Idk if they do anything tbh
112
+ diffusion_transformer_block:
113
+ n_head: 16
114
+ kq_norm: True
115
+ no_residual_connection_between_attention_and_transition: False
116
+ dropout: 0.10
117
+
118
+ atom_attention_decoder:
119
+ n_blocks: 3
120
+ upcast: ${model.net.diffusion_module.upcast}
121
+ downcast: ${model.net.diffusion_module.downcast}
122
+
123
+ atom_transformer_block:
124
+ n_head: 4
125
+ kq_norm: True
126
+ no_residual_connection_between_attention_and_transition: False
127
+ dropout: 0.10
128
+
129
+ ########################################################################
130
+ #
131
+ ########################################################################
@@ -0,0 +1,5 @@
1
+ # Optimizer
2
+ _target_: torch.optim.Adam
3
+ lr: 0 # Will be set by the scheduler (starts at 0, increasing to `base_lr`)
4
+ betas: [0.9, 0.95]
5
+ eps: 1.0e-8
@@ -0,0 +1,8 @@
1
+
2
+ defaults:
3
+ - optimizers/adam@optimizer
4
+ - schedulers/af3@lr_scheduler
5
+ - samplers/edm@net.inference_sampler
6
+ - components/ema@ema
7
+ - components/rfd3_net@net
8
+ - _self_
@@ -0,0 +1,21 @@
1
+
2
+ kind: "default" # "default", "symmetry", or "partial" to choose the sampler
3
+ solver: "af3"
4
+ num_timesteps: 100
5
+ min_t: 0
6
+ max_t: 1
7
+ sigma_data: ${model.net.diffusion_module.sigma_data}
8
+ s_min: 4e-4
9
+ s_max: 160
10
+ p: 7
11
+ gamma_0: 0.8
12
+ gamma_min: 1.0
13
+ noise_scale: 1.003
14
+ step_scale: 1.5
15
+ allow_realignment: False
16
+ use_classifier_free_guidance: False
17
+ cfg_scale: 1.5
18
+ cfg_features: # CFG_features will be set to 0 in the unconditional CFG step
19
+ - ref_atomwise_rasa
20
+ - active_donor
21
+ - active_acceptor
@@ -0,0 +1,10 @@
1
+ defaults:
2
+ - edm
3
+ - _self_
4
+
5
+ kind: symmetry
6
+ num_timesteps: 200
7
+ gamma_0: 1.0 # 1.0 for SDE sampling
8
+ gamma_min: 1.0
9
+ gamma_min2: 0.0
10
+ sym_step_frac: 0.9 # when 0.9, 90% of the trajectory from the start is symmetrized
@@ -0,0 +1,6 @@
1
+ # Learning rate scheduler
2
+ _target_: foundry.training.schedulers.AF3Scheduler
3
+ base_lr: 1.8e-3
4
+ warmup_steps: 1000
5
+ decay_factor: 0.95
6
+ decay_steps: 50000
@@ -0,0 +1,18 @@
1
+ # path to directory with training splits
2
+ pdb_data_dir: /projects/ml/frozen_pdb_copies/2025_07_13_pdb
3
+ pdb_parquet_dir: /projects/ml/datahub/dfs/af3_splits/2024_12_16/ # TODO: uncomment
4
+
5
+ # monomer distillation dataset
6
+ monomer_distillation_data_dir: /squash/af2_distillation_facebook/
7
+ monomer_distillation_parquet_dir: /projects/ml/datahub/dfs/distillation/af2_distillation_facebook
8
+
9
+ # path to save examples that fail during the Transform pipeline (null = do not save)
10
+ failed_examples_dir: null
11
+
12
+ design_benchmark_data_dir: /projects/ml/aa_design/benchmarks
13
+ design_model_weight_dir: /projects/ml/aa_design/models
14
+
15
+ # path to directory with cached residue data
16
+ residue_cache_dir: /net/tukwila/lschaaf/datahub/MACE-Egret-3-noH/mace_embeddings
17
+
18
+ cif_cache_dir: /net/tukwila/ncorley/cifutils/cache
@@ -0,0 +1,22 @@
1
+ # NOTE: order of defaults determines the order in which configs override each other (higher up items are overridden by lower items)
2
+ defaults:
3
+ - _self_
4
+ - data: default
5
+
6
+ # path to root directory (requires the `PROJECT_ROOT` environment variable to be set)
7
+ #  NOTE: This variable is auto-set upon loading via `rootutils`
8
+ root_dir: ${oc.env:PROJECT_ROOT}
9
+
10
+ # where to store data (checkpoints, logs, etc.) of all experiments in general
11
+ # (this influences the output_dir in the hydra/default.yaml config)
12
+ # change this to e.g. /scratch if you are running larger experiments with lots lof logs, checkpoints, etc.
13
+ # log_dir: ${.root_dir}/logs
14
+ log_dir: /net/scratch/${oc.env:USER}/training/logs
15
+
16
+ # path to output directory for this specific run, created dynamically by hydra
17
+ # path generation pattern is specified in `configs/hydra/default.yaml`
18
+ # use it to store all files generated during the run, like ckpts and metrics
19
+ output_dir: ${hydra:runtime.output_dir}
20
+
21
+ # path to working directory (auto-generated by hydra)
22
+ work_dir: ${hydra:runtime.cwd}
@@ -0,0 +1,28 @@
1
+ # @package _global_
2
+ hydra:
3
+ searchpath:
4
+ - pkg://configs
5
+
6
+ defaults:
7
+ - model: rfd3_base
8
+ - trainer: rfd3_base
9
+ - datasets: design_base
10
+ - callbacks: design_callbacks
11
+ - dataloader: fast
12
+ - paths: default
13
+ - hydra: default
14
+ - logger: default
15
+ - _self_
16
+ # Required overrides:
17
+ - experiment: ???
18
+ - debug: null
19
+
20
+ # Definitions:
21
+ task_name: train
22
+ project: aa_design
23
+ seed: 42
24
+ ckpt_path: null
25
+
26
+ # Placeholders
27
+ name: aa_design
28
+ tags: [aa_design]
@@ -0,0 +1,6 @@
1
+ defaults:
2
+ - aa_design
3
+
4
+ accelerator: cpu
5
+ devices_per_node: 1
6
+ num_nodes: 1
@@ -0,0 +1,5 @@
1
+ strategy: ddp
2
+
3
+ accelerator: gpu
4
+ devices_per_node: 1
5
+ num_nodes: 1
@@ -0,0 +1,12 @@
1
+ _target_: rfd3.metrics.losses.DiffusionLoss
2
+ sigma_data: ${model.net.diffusion_module.sigma_data}
3
+ weight: 4.0
4
+ lddt_weight: 0.25
5
+ alpha_virtual_atom: 1.0
6
+ alpha_polar_residues: 1.0
7
+ lp_weight: 0.0
8
+ unindexed_norm_p: 1.0
9
+ alpha_unindexed_diffused: 1.0
10
+ unindexed_t_alpha: 0.75
11
+ normalize_virtual_atom_weight: False
12
+ alpha_ligand: 10.0
@@ -0,0 +1,3 @@
1
+ _target_: rfd3.metrics.losses.SequenceLoss
2
+ weight: 0.1
3
+ max_t: 1
@@ -0,0 +1,22 @@
1
+ general_metrics:
2
+ _target_: rfd3.metrics.design_metrics.AtomArrayMetrics
3
+ compute_for_diffused_region_only: True
4
+ compute_ss_adherence_if_possible: False
5
+
6
+ backbone_metrics:
7
+ _target_: rfd3.metrics.design_metrics.BackboneMetrics
8
+
9
+ sidechain_metrics:
10
+ _target_: rfd3.metrics.sidechain_metrics.SidechainMetrics
11
+ central_atom: CB
12
+ dist_threshold_min: 1.0 # min distance for identifying a bond
13
+ dist_threshold_max: 2.0 # max distance for identifying a bond
14
+ already_removed_virtual_atoms: ${trainer.cleanup_virtual_atoms}
15
+
16
+ metadata_metrics:
17
+ _target_: rfd3.metrics.design_metrics.MetadataMetrics
18
+
19
+ hbond_metrics:
20
+ _target_: rfd3.metrics.hbonds_hbplus_metrics.HbondMetrics
21
+ cutoff_HA_dist: 3
22
+ cutoff_DA_distance: 3.5
@@ -0,0 +1,35 @@
1
+ defaults:
2
+ - ddp
3
+ - loss/losses/diffusion_loss@loss.diffusion_loss
4
+ - loss/losses/sequence_loss@loss.sequence_loss
5
+ - metrics: design_metrics
6
+ - _self_
7
+
8
+ _target_: rfd3.trainer.rfd3.AADesignTrainer
9
+
10
+ # AADesign specific (atom-array related):
11
+ output_full_json: False # saves additional metadata in the output json
12
+ allow_sequence_outputs: True
13
+ cleanup_guideposts: False
14
+ cleanup_virtual_atoms: False
15
+ read_sequence_from_sequence_head: True
16
+ compute_non_clash_metrics_for_diffused_region_only: False
17
+ association_scheme: ${datasets.global_transform_args.association_scheme}
18
+
19
+ # Other:
20
+ n_examples_per_epoch: 2400 # 24000 # 10x as many epochs
21
+ checkpoint_every_n_epochs: 10 # Less often checkpointing for fewer epochs
22
+ validate_every_n_epochs: 4 # Validate often
23
+
24
+ max_epochs: 100_000
25
+ prevalidate: False
26
+
27
+ clip_grad_max_norm: 10.0
28
+ output_dir: ${paths.output_dir}
29
+ n_recycles_train: 2
30
+ grad_accum_steps: 3 # overridden by launch.sh
31
+ skip_optimizer_loading: True
32
+
33
+ # Precision
34
+ error_if_grad_nonfinite: False
35
+ precision: bf16-mixed
@@ -0,0 +1,34 @@
1
+ # @package _global_
2
+
3
+ hydra:
4
+ searchpath:
5
+ - pkg://configs
6
+
7
+ defaults:
8
+ - model: rfd3_base
9
+ - trainer: rfd3_base
10
+ - datasets: design_base
11
+ - callbacks: design_callbacks
12
+ - dataloader: fast
13
+ - paths: default
14
+ - hydra: default
15
+ - logger: csv
16
+ - _self_
17
+ - experiment: ???
18
+ - debug: null
19
+
20
+ name: ???
21
+ tags: ???
22
+ project: aa_design
23
+ # Names;
24
+ task_name: "validate"
25
+ seed: 42
26
+
27
+ callbacks:
28
+ dump_validation_structures_callback:
29
+ dump_predictions: True
30
+ one_model_per_file: True
31
+ dump_trajectories: False
32
+
33
+ # Args:
34
+ ckpt_path: ???