# Number of targets and antitargets to select protein_selection: small_molecule: target: "P40261" # if multiple targets, they should be comma separated clip_interval: [[2, 260]] # interval to clip sequence (0-based, exclude aas outside of this interval). If None, no clipping is done. One value for each target. nanobody: target: "P20809" # if multiple targets, they should be comma separated clip_interval: [[31, 199]] # interval to clip sequence (0-based, exclude aas outside of this interval). If None, no clipping is done. One value for each target. structure: "6O4O" # structure to use for scoring (PDB ID) structure_chain: "A" # chain to use for scoring (if multiple chains in structure) structure_res_index: 2..169 # residue indices in structure to use for scoring structure_binding_site: 31..35,37..38,40,88,135..138,142 # binding site residues to use for scoring # Competition parameters competition: # No submission blocks no_submission_blocks: 10 nanobody_weight: 0.4 # proportion of incentive to give to nanobody winner # Bounty payout settings payout: enabled: true override_uid: 42 # compound payout UID # Molecular property requirements molecule_requirements: num_molecules: 20 min_heavy_atoms: 10 min_rotatable_bonds: 1 max_rotatable_bonds: 10 min_entropy: 0.25 # minimum entropy required when num_molecules > 1 banned_atom_types: ["Se", "Na", "Fe", "Zn", "B", "Br", "Si"] max_similarity_to_historical: 0.5 # maximum similarity to historical submissions to be considered valid # Reaction filtering configuration reaction_filtering: random_valid_reaction: true # true = one random reaction per epoch, false = only allowed reactions below are allowed allowed_reactions: ["rxn:1", "rxn:2", "rxn:3", "rxn:4", "rxn:5"] # allowed reactions (only used if random_valid_reaction is false) # Boltz2 configuration boltz2_config: boltz_metric: ["affinity_probability_binary", "affinity_pred_value"] # metric to use for scoring: ["affinity_pred_value", "affinity_probability_binary", "confidence_score", ...] combination_strategy: "heavy_atom_normalization" # "heavy_atom_normalization" or "average" boltz_mode: max # "max" or "min" # Nanobody requirements nanobody_requirements: num_sequences: 1 min_sequence_length: 90 max_sequence_length: 150 min_cysteines: 1 # minimum number of cysteines required cys_pair_min_separation: 35 # minimum separation between cysteine pairs, only valid when min_cysteines > 1 cys_pair_max_separation: 80 # maximum separation between cysteine pairs, only valid when min_cysteines > 1 max_homopolymer_run: 6 # maximum length of a homopolymer run (e.g. AAAAAA) max_di_repeat_pairs: 4 # maximum number of di-repeat pairs (e.g."GSGSGSGSGS" has 5 pairs -> reject) reject_signal_peptides: true # reject sequences that look like signal peptides (strong N term hydrophobicity) sp_window: 12 sp_hydro_min_in_window: 8 # >=8 hydrophobic in a 12-aa window sp_scan_prefix: 30 # length of N term sequence to scan for signal peptide min_nativeness_score: 0.45 min_human_framework_score: 0.85 max_similarity_score: 0.95 # maximum similarity score to top sequences for that target (calculated by metanano.search.search_engine) num_top_sequences: 50 # number of top sequences to consider for similarity check enforce_vhh_hallmarks: true # enforce VHH FR2 region hallmark residues (E/Q at pos 49, R at pos 50) boltzgen_config: boltzgen_rank_mode: min # "max" or "min" boltzgen_rank_by: rank_sum # "rank_sum" or "worst_rank"