Skip to content

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.
Preview

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

FieldRequiredTypeDescriptionExample
stepsTrueINTNumber of integration steps for the SDE.500
chain_lengthTrueINTLength of the protein chain to generate for unconditional runs.100
tspanTrueSTRINGTime span for SDE integration as a comma-separated sequence of floats. Parsed into a list of floats.1.0, 0.001
langevin_factorTrueFLOATStrength scaling for Langevin noise.2.0
langevin_isothermalTrueBOOLEANUse isothermal version of the Langevin SDE.false
inverse_temperatureTrueFLOATInverse temperature parameter for the SDE.10.0
initialize_noiseTrueBOOLEANWhether to initialize noise before integration.true
integrate_funcTrueCHOICEIntegration function to use.euler_maruyama
sde_funcTrueCHOICESDE function type.reverse_sde
trajectory_lengthTrueINTNumber of sampled steps to include in the trajectory outputs (capped by steps).200
full_outputTrueBOOLEANIf true, also returns trajectory, Xhat trajectory, and Xunc trajectory PDBs.false
swap_chain_namesTrueSTRINGTwo comma-separated chain names to swap after generation. Must contain exactly two names when provided.A,B
order_chain_namesTrueSTRINGTwo comma-separated chain names to explicitly order after generation. Must contain exactly two names when provided.A,B
seedTrueINTBase seed for deterministic runs. Per-output seeds are derived from this base.42
modeTrueCHOICERun mode. MOCK uses predefined data, PROD calls the service, TEST reduces work for faster iteration.PROD
input_pdbFalsePDBOptional starting PDB for conditional generation. The first PDB detected is used.PDB object reference

Outputs

FieldTypeDescriptionExample
generation.pdbPDBFinal generated protein structure.PDB object with final model(s)
trajectory.pdbPDBSampled trajectory PDB. Returned only when full_output is true; otherwise may be empty.PDB object containing trajectory frames
Xhat_trajectory.pdbPDBXhat trajectory PDB. Returned only when full_output is true; otherwise may be empty.PDB object with Xhat trajectory frames
Xunc_trajectory.pdbPDBXunc 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

Example
Example