$npx -y skills add adaptyvbio/protein-design-skills --skill protein-design-workflowEnd-to-end guidance for protein design pipelines. Use this skill when: (1) Starting a new protein design project, (2) Need step-by-step workflow guidance, (3) Understanding the full design pipeline, (4) Planning compute resources and timelines, (5) Integrating multiple design too
| 1 | # Protein Design Workflow Guide |
| 2 | |
| 3 | ## Standard binder design pipeline |
| 4 | |
| 5 | ### Overview |
| 6 | ``` |
| 7 | Target Preparation --> Backbone Generation --> Sequence Design |
| 8 | | | | |
| 9 | v v v |
| 10 | (pdb skill) (rfdiffusion) (proteinmpnn) |
| 11 | | | |
| 12 | v v |
| 13 | Structure Validation --> Filtering |
| 14 | | | |
| 15 | v v |
| 16 | (alphafold/chai) (protein-qc) |
| 17 | ``` |
| 18 | |
| 19 | ## Phase 1: Target preparation |
| 20 | |
| 21 | ### 1.1 Obtain target structure |
| 22 | ```bash |
| 23 | # Download from PDB |
| 24 | curl -o target.pdb "https://files.rcsb.org/download/XXXX.pdb" |
| 25 | ``` |
| 26 | |
| 27 | ### 1.2 Clean and prepare |
| 28 | ```python |
| 29 | # Extract target chain |
| 30 | # Remove waters, ligands if needed |
| 31 | # Trim to binding region + 10A buffer |
| 32 | ``` |
| 33 | |
| 34 | ### 1.3 Select hotspots |
| 35 | - Choose 3-6 exposed residues |
| 36 | - Prefer charged/aromatic (K, R, E, D, W, Y, F) |
| 37 | - Check surface accessibility |
| 38 | - Verify residue numbering |
| 39 | |
| 40 | **Output**: `target_prepared.pdb`, hotspot list |
| 41 | |
| 42 | ## Phase 2: Backbone generation |
| 43 | |
| 44 | ### Option A: RFdiffusion (diverse exploration) |
| 45 | ```bash |
| 46 | # RFdiffusion runs from the official repo, not biomodals |
| 47 | python run_inference.py \ |
| 48 | inference.input_pdb=target_prepared.pdb \ |
| 49 | contigmap.contigs=[A1-150/0 70-100] \ |
| 50 | ppi.hotspot_res=[A45,A67,A89] \ |
| 51 | inference.num_designs=500 |
| 52 | ``` |
| 53 | |
| 54 | ### Option B: BindCraft (end-to-end) |
| 55 | ```bash |
| 56 | modal run modal_bindcraft.py \ |
| 57 | --input-pdb target_prepared.pdb \ |
| 58 | --target-hotspot-residues "45,67,89" \ |
| 59 | --number-of-final-designs 100 |
| 60 | ``` |
| 61 | |
| 62 | **Output**: 100-500 backbone PDBs |
| 63 | |
| 64 | ## Phase 3: Sequence design |
| 65 | |
| 66 | ### For RFdiffusion backbones |
| 67 | ```bash |
| 68 | for backbone in backbones/*.pdb; do |
| 69 | modal run modal_ligandmpnn.py \ |
| 70 | --input-pdb "$backbone" \ |
| 71 | --params-str "--number_of_batches 8 --temperature 0.1" |
| 72 | done |
| 73 | ``` |
| 74 | |
| 75 | **Output**: 8 sequences per backbone (800-4000 total) |
| 76 | |
| 77 | ## Phase 4: Structure validation |
| 78 | |
| 79 | ### Predict complexes |
| 80 | ```bash |
| 81 | # Prepare FASTA with binder + target |
| 82 | # binder:target format for multimer |
| 83 | |
| 84 | modal run modal_alphafold.py \ |
| 85 | --input-fasta all_sequences.fasta \ |
| 86 | --out-dir predictions/ |
| 87 | ``` |
| 88 | |
| 89 | **Output**: AF2 predictions with pLDDT, ipTM, PAE |
| 90 | |
| 91 | ## Phase 5: Filtering and selection |
| 92 | |
| 93 | ### Apply standard thresholds |
| 94 | ```python |
| 95 | import pandas as pd |
| 96 | |
| 97 | # Load metrics |
| 98 | designs = pd.read_csv('all_metrics.csv') |
| 99 | |
| 100 | # Filter |
| 101 | filtered = designs[ |
| 102 | (designs['pLDDT'] > 0.85) & |
| 103 | (designs['ipTM'] > 0.50) & |
| 104 | (designs['PAE_interface'] < 10) & |
| 105 | (designs['scRMSD'] < 2.0) & |
| 106 | (designs['esm2_pll'] > 0.0) |
| 107 | ] |
| 108 | |
| 109 | # Rank by composite score |
| 110 | filtered['score'] = ( |
| 111 | 0.3 * filtered['pLDDT'] + |
| 112 | 0.3 * filtered['ipTM'] + |
| 113 | 0.2 * (1 - filtered['PAE_interface'] / 20) + |
| 114 | 0.2 * filtered['esm2_pll'] |
| 115 | ) |
| 116 | |
| 117 | top_designs = filtered.nlargest(50, 'score') |
| 118 | ``` |
| 119 | |
| 120 | **Output**: 50-200 filtered candidates |
| 121 | |
| 122 | ## Resource planning |
| 123 | |
| 124 | ### Compute requirements |
| 125 | |
| 126 | | Stage | GPU | Time (100 designs) | |
| 127 | |-------|-----|-------------------| |
| 128 | | RFdiffusion | A10G | 30 min | |
| 129 | | ProteinMPNN | T4 | 15 min | |
| 130 | | Chai / AlphaFold | A100 | 4-8 hours | |
| 131 | | Filtering | CPU | 15 min | |
| 132 | |
| 133 | ### Total timeline |
| 134 | - Small campaign (100 designs): 8-12 hours |
| 135 | - Medium campaign (500 designs): 24-48 hours |
| 136 | - Large campaign (1000+ designs): 2-5 days |
| 137 | |
| 138 | ## Quality checkpoints |
| 139 | |
| 140 | ### After backbone generation |
| 141 | - [ ] Visual inspection of diverse backbones |
| 142 | - [ ] Secondary structure present |
| 143 | - [ ] No clashes with target |
| 144 | |
| 145 | ### After sequence design |
| 146 | - [ ] ESM2 PLL > 0.0 for most sequences |
| 147 | - [ ] No unwanted cysteines (unless intentional) |
| 148 | - [ ] Reasonable sequence diversity |
| 149 | |
| 150 | ### After validation |
| 151 | - [ ] pLDDT > 0.85 |
| 152 | - [ ] ipTM > 0.50 |
| 153 | - [ ] PAE_interface < 10 |
| 154 | - [ ] Self-consistency RMSD < 2.0 A |
| 155 | |
| 156 | ### Final selection |
| 157 | - [ ] Diverse sequences (cluster if needed) |
| 158 | - [ ] Manufacturable (no problematic motifs) |
| 159 | - [ ] Reasonable molecular weight |
| 160 | |
| 161 | ## Common issues |
| 162 | |
| 163 | | Problem | Solution | |
| 164 | |---------|----------| |
| 165 | | Low ipTM | Check hotspots, increase designs | |
| 166 | | Poor diversity | Higher temperature, more backbones | |
| 167 | | High scRMSD | Backbone may be unusual | |
| 168 | | Low pLDDT | Check design quality | |
| 169 | |
| 170 | ## Advanced workflows |
| 171 | |
| 172 | ### Multi-tool combination |
| 173 | 1. RFdiffusion for initial backbones |
| 174 | 2. Mosaic for gradient-based refinement |
| 175 | 3. ProteinMPNN diversification |
| 176 | 4. AF2 final validation |
| 177 | |
| 178 | ### Iterative refinement |
| 179 | 1. Run initial campaign |
| 180 | 2. Analyze failures |
| 181 | 3. Adjust hotspots/parameters |
| 182 | 4. Repeat with insights |