This optimizer is open source. Any third-party models, product names, or trademarks referenced are the property of their respective owners, and Proto is not affiliated with them.
- Call conditioning function with current sequences (from result_sequences)
- Pass conditioning output to generator’s sample() method (into proposal_sequences)
- Accept passing proposals into result_sequences (failed stay unchanged)
- Repeat for num_steps
- Protein Hunter: Structure prediction -> inverse folding cycles
- Evo2 with feedback: Constraint-guided prompt modification -> generation cycles
- Constraints are optional; if provided, must be filter constraints
(have
thresholdset) - only passing proposals update result_sequences
How It Works
Cycling alternates a conditioning function with a generator, looping between two views of the design (forprotein-hunter, sequence and structure) and keeping only proposals that pass every filter.
Cycling alternates a conditioning function with a generator. Each cycle conditions on the current sequences, generates proposals from that conditioning, and keeps only proposals that pass every filter:
threshold; a scoring constraint raises an error). The built-in protein-hunter pipeline sets conditioning_fn to structure prediction (Boltz-2 / Chai-1 / AlphaFold3) feeding inverse folding: predict a structure, then redesign the sequence for it.
API Reference
Configuration for CyclingOptimizer.This optimizer cycles between a conditioning function and a generator.
On each cycle, the conditioning function receives the current proposal sequences,
produces conditioning data, which is then passed to the generator’s sample() method.The conditioning function can be provided either:
- Directly via the
conditioning_fnparameter (programmatic use) - Via the
pipelinefield using a predefined pipeline (API/JSON use)
- Pipeline-specific constraints:
protein-hunterrequires an inverse_folding generator
- Constraints are optional but if provided must be filter constraints
(must have
thresholdset)
Number of conditioning-then-generation cycles to run.
Candidate design trajectories for this optimizer. Overrides program-level count.
Predefined conditioning pipeline. ‘protein-hunter’ uses structure prediction -> inverse folding.
Configuration for protein-hunter pipeline. Only used when pipeline=‘protein-hunter’.
Random seed for reproducible optimization, generator, and constraint tool streams.
Save history and log progress every N steps. Step 0 and final step always saved.
Save granular per-proposal results (accept/reject) in history snapshots.
Emit per-step debug information about proposals, scores, and acceptance through the logger.
Usage
python
Metadata
| Property | Value |
|---|---|
| Key | cycling |
| Class | CyclingOptimizer |
| Targets Single Segment | True |
| Uses GPU | False |