"Build safe RFdiffusion unconditional monomer/backbone generation
Scanned 9/9/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill unconditional-generation --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Unconditional Generation?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-unconditional-generation)More formats (shields.io, HTML) on the badges page.
---
name: unconditional-generation
description: "Build safe RFdiffusion unconditional monomer/backbone generation
commands, including Hydra contig overrides, output prefixes,
deterministic/cautious smoke runs, model-weight prerequisites, and output-file
interpretation."
disable-model-invocation: true
metadata:
disco-role: operating
license: NOASSERTION
---
# Unconditional Generation
Use this sub-skill when a user wants RFdiffusion to generate a de novo monomer backbone without a motif, target, binder, scaffold guide, macrocycle, or symmetry constraint.
## Route Here
- The request is for an unconditional monomer, de novo backbone, or random protein of a requested length or length range.
- The main user inputs are protein length, output location, number of designs, and optional cautious/deterministic/debug settings.
- The command can be expressed with `contigmap.contigs`, `inference.output_prefix`, and `inference.num_designs` against the base inference config.
- The user asks about `.pdb`, `.trb`, or `traj/` outputs from a base RFdiffusion generation run.
- The user asks for a smoke-check command that runs one deterministic design without overwriting existing outputs.
## Route Elsewhere
- Fixed motif residues, input PDB motif contigs, sequence/structure inpainting, or active-site checkpoints belong in `../motif-scaffolding/SKILL.md`.
- Auxiliary potentials such as `monomer_ROG` or `monomer_contacts` may start here only for the unconditional base command; route detailed potential selection and tuning to `../guided-potentials/SKILL.md`.
- Cyclic, dihedral, tetrahedral, or other symmetry requests belong in `../symmetric-oligomers/SKILL.md`.
- Partial diffusion from an existing structure belongs in `../partial-diffusion/SKILL.md`.
- Binder, hotspot, receptor/target, fold-conditioned scaffold-guided, or macrocycle workflows belong in their sibling sub-skills.
## Required Context
Collect these before forming a command:
- `run_inference.py` entry point: prefer the user's installed/package-provided RFdiffusion launcher; do not assume an original checkout path.
- Model weights: know either the default model directory used by the installation or an explicit `inference.model_directory_path=/path/to/models`.
- Output prefix: a path prefix, not a directory. RFdiffusion appends design indices such as `_0.pdb` and `_0.trb`.
- Length intent: exact length like `150-150` or sampled range like `100-200`.
- Number of designs: `inference.num_designs=N`; use `1` for smoke checks.
- Overwrite policy: default `inference.cautious=True` skips existing indexed `.pdb` files.
## Command Pattern
Use the workflow reference for concrete templates: `references/workflows.md`.
Core unconditional command:
```bash
python /path/to/run_inference.py 'contigmap.contigs=[150-150]' inference.output_prefix=outputs/unconditional/design inference.num_designs=10
```
For shell safety, keep Hydra list-like values in single quotes. The contig must be a single-item Hydra list, so use `'contigmap.contigs=[150-150]'`, not `contigmap.contigs=150-150`.
If the integrated root skill includes helper scripts, prefer them for command assembly or environment checks:
```bash
python ../../scripts/check_rfdiffusion_environment.py --models /path/to/models
python ../../scripts/build_inference_command.py unconditional --contig 150-150 --output-prefix outputs/unconditional/design --num-designs 10
```
If those helpers are not present in the delivered skill copy, write the command directly from `references/workflows.md`.
## Base Overrides To Prefer
- `contigmap.contigs=[L-L]`: exact unconditional backbone length.
- `contigmap.contigs=[MIN-MAX]`: sample a length in the range for each design.
- `inference.output_prefix=outputs/name/prefix`: creates `prefix_0.pdb`, `prefix_0.trb`, and optionally `traj/prefix_0_*_traj.pdb`.
- `inference.num_designs=1`: safest initial run; increase only after the environment and weights work.
- `inference.deterministic=True`: seeds each design index deterministically.
- `inference.final_step=48`: shortens inference in the repository's smoke-test pattern; use for checks, not final production quality by default.
- `inference.cautious=True`: default skip-on-existing-output behavior; keep enabled unless the user explicitly wants replacement.
- `inference.write_trajectory=False`: reduces output volume when trajectories are not needed.
- `inference.model_directory_path=/path/to/models`: points RFdiffusion at downloaded model weights.
- `inference.ckpt_override_path=/path/to/checkpoint.pt`: use only when a documented workflow needs a non-default checkpoint.
Avoid changing `model`, `preprocess`, or low-level `diffuser` settings for ordinary unconditional generation unless the user is deliberately experimenting and understands the training/inference coupling.
## Output Interpretation
A design with `inference.output_prefix=outputs/unconditional/design` and default `design_startnum=0` produces:
- `outputs/unconditional/design_0.pdb`: final generated backbone; unconditional residues are written as glycine with backbone atoms.
- `outputs/unconditional/design_0.trb`: pickled run metadata, resolved config, timing/device information, pLDDT stack, and contig mappings.
- `outputs/unconditional/traj/design_0_Xt-1_traj.pdb`: reverse diffusion trajectory input states when `write_trajectory=True`.
- `outputs/unconditional/traj/design_0_pX0_traj.pdb`: predicted denoised states when `write_trajectory=True`.
The trajectory PDBs are multi-model files ordered for visualization, with the final timestep first.
## Deterministic And Cautious Runs
For a minimal reproducible check, combine:
```bash
python /path/to/run_inference.py 'contigmap.contigs=[60-60]' inference.output_prefix=outputs/smoke/design inference.num_designs=1 inference.deterministic=True inference.final_step=48 inference.cautious=True inference.write_trajectory=False
```
RFdiffusion seeds deterministic runs from the design index. If `design_startnum=0`, `_0` is reproducible for the same environment, checkpoint, and hardware backend. If `inference.cautious=True` and `outputs/smoke/design_0.pdb` already exists, RFdiffusion skips that design instead of overwriting it.
Use `inference.design_startnum=-1` when the user wants RFdiffusion to scan existing `output_prefix_*.pdb` files and continue at the next numeric index.
## Model And Environment Checks
Before blaming contigs, verify:
- `rfdiffusion`, `rfdiffusion.contigs`, `rfdiffusion.diffusion`, and `rfdiffusion.inference.utils` import in the active Python environment.
- PyTorch is installed and the intended CPU/GPU backend is visible; GPU is strongly preferred for real RFdiffusion runs.
- Model weights are downloaded and discoverable by RFdiffusion, either through installation defaults or `inference.model_directory_path`.
- Optional explicit checkpoints passed with `inference.ckpt_override_path` exist and match the requested workflow.
The first inference run may pause while calculating and caching IGSO3 schedules. That is expected; later runs reuse the cache when the cache directory is writable.
## Common Misuse To Correct
- Unquoted contigs: replace `contigmap.contigs=[100-200]` with `'contigmap.contigs=[100-200]'` in shell commands.
- Missing list brackets: replace `'contigmap.contigs=100-200'` with `'contigmap.contigs=[100-200]'`.
- Treating `output_prefix` as a directory: explain that RFdiffusion appends `_0`, `_1`, and file extensions.
- Expecting sidechains: unconditional `.pdb` outputs are backbone-focused and write designed residues as glycine.
- Using potential examples as base unconditional advice: route potential tuning to `../guided-potentials/SKILL.md` after the base command is sound.
- Overwriting surprises: keep `inference.cautious=True` or choose a fresh prefix.
## Evidence Base
This sub-skill is backed by RFdiffusion repository evidence from the README unconditional execution/output sections, the base inference config, the inference launcher behavior, unconditional example scripts, and the native test harness pattern that rewrites examples to deterministic one-design smoke runs.
Use `references/troubleshooting.md` for error triage and `references/workflows.md` for command templates.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!