Chroma¶
Runs Chroma-based protein generation using stochastic differential equation (SDE) integration. Supports unconditional generation or conditional sampling from an optional input PDB, with fine-grained control over integration steps, SDE function, integrator, noise, and temperature. Can optionally return sampled trajectories (protein, Xhat, Xunc) in addition to the final generated structure.

Usage¶
Use this node to generate protein structures with Chroma. For unconditional generation, provide chain_length and relevant SDE settings. For conditional generation or motif handling, supply an input PDB and optionally reorder or swap chain names after generation. Enable full_output to retrieve trajectory PDBs; otherwise only the final generation is returned. Modes allow fast testing (TEST) and offline mocking (MOCK) for development.
Inputs¶
| Field | Required | Type | Description | Example | 
|---|---|---|---|---|
| steps | True | INT | Number of integration steps for the SDE. | 500 | 
| chain_length | True | INT | Length of the protein chain to generate for unconditional runs. | 100 | 
| tspan | True | STRING | Time span for SDE integration as a comma-separated sequence of floats. Parsed into a list of floats. | 1.0, 0.001 | 
| langevin_factor | True | FLOAT | Strength scaling for Langevin noise. | 2.0 | 
| langevin_isothermal | True | BOOLEAN | Use isothermal version of the Langevin SDE. | false | 
| inverse_temperature | True | FLOAT | Inverse temperature parameter for the SDE. | 10.0 | 
| initialize_noise | True | BOOLEAN | Whether to initialize noise before integration. | true | 
| integrate_func | True | CHOICE | Integration function to use. | euler_maruyama | 
| sde_func | True | CHOICE | SDE function type. | reverse_sde | 
| trajectory_length | True | INT | Number of sampled steps to include in the trajectory outputs (capped by steps). | 200 | 
| full_output | True | BOOLEAN | If true, also returns trajectory, Xhat trajectory, and Xunc trajectory PDBs. | false | 
| swap_chain_names | True | STRING | Two comma-separated chain names to swap after generation. Must contain exactly two names when provided. | A,B | 
| order_chain_names | True | STRING | Two comma-separated chain names to explicitly order after generation. Must contain exactly two names when provided. | A,B | 
| seed | True | INT | Base seed for deterministic runs. Per-output seeds are derived from this base. | 42 | 
| mode | True | CHOICE | Run mode. MOCK uses predefined data, PROD calls the service, TEST reduces work for faster iteration. | PROD | 
| input_pdb | False | PDB | Optional starting PDB for conditional generation. The first PDB detected is used. | PDB object reference | 
Outputs¶
| Field | Type | Description | Example | 
|---|---|---|---|
| generation.pdb | PDB | Final generated protein structure. | PDB object with final model(s) | 
| trajectory.pdb | PDB | Sampled trajectory PDB. Returned only when full_output is true; otherwise may be empty. | PDB object containing trajectory frames | 
| Xhat_trajectory.pdb | PDB | Xhat trajectory PDB. Returned only when full_output is true; otherwise may be empty. | PDB object with Xhat trajectory frames | 
| Xunc_trajectory.pdb | PDB | Xunc trajectory PDB. Returned only when full_output is true; otherwise may be empty. | PDB object with Xunc trajectory frames | 
Important Notes¶
- Mode behavior: MOCK returns predefined mock results; TEST mode overrides steps to 100, trajectory_length to 100, and disables full_output; PROD runs the actual service.
- tspan must be a comma-separated list of floats; it is parsed before execution.
- swap_chain_names and order_chain_names require exactly two comma-separated chain IDs when used.
- Only one sample is produced per execution (samples is internally fixed to 1).
- If input_pdb is provided, the first PDB is extracted and used for conditional generation.
- Trajectory outputs are only meaningful when full_output is true; otherwise they may be empty placeholders.
- Timeout differs by case: longer when input_pdb is provided.
Troubleshooting¶
- Invalid tspan format: Ensure it is a comma-separated list of floats, e.g., "1.0, 0.001".
- Chain name errors: swap_chain_names and order_chain_names must contain exactly two comma-separated chain IDs (e.g., A,B).
- Missing trajectories: Set full_output to true and ensure trajectory_length <= steps.
- Very long runs: In TEST mode, steps and trajectory_length are reduced to speed up iteration. For production-scale results, use PROD mode and adjust steps/trajectory_length accordingly.
- Conditional run issues: Provide a valid input_pdb for conditional generation; ensure the file contains a recognizable PDB entry.
Example Pipelines¶
