PDB Combiner¶
Merges up to five PDB inputs into a single PDB dictionary. If enabled, it automatically prefixes keys to avoid collisions (e.g., PDB1_, PDB2_). When collisions occur without prefixing, the node will assign numeric suffixes to make keys unique.

Usage¶
Use this node when you have multiple PDB dictionaries from different branches in your workflow and need to consolidate them into one combined PDB output for downstream processing (e.g., conversion, chain extraction, saving/export). Connect any subset of the five available PDB inputs and optionally enable prefixing to preserve key uniqueness and provenance.
Inputs¶
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
| pdb_1 | False | PDB | First PDB dictionary to include. Keys are PDB IDs (or chain/spec identifiers), values are PDB file contents as strings. | {'design_A': 'ATOM ... END'} |
| pdb_2 | False | PDB | Second PDB dictionary to include. | {'template_B': 'ATOM ... END'} |
| pdb_3 | False | PDB | Third PDB dictionary to include. | {'candidate_1': 'ATOM ... END'} |
| pdb_4 | False | PDB | Fourth PDB dictionary to include. | {'candidate_2': 'ATOM ... END'} |
| pdb_5 | False | PDB | Fifth PDB dictionary to include. | {'ref_structure': 'ATOM ... END'} |
| prefix_chains | False | BOOLEAN | When true, prefixes keys from each input to avoid collisions (PDB1_, PDB2_, etc.). If disabled and a key collision occurs, numeric suffixes are appended to create unique keys. | True |
Outputs¶
| Field | Type | Description | Example |
|---|---|---|---|
| combined_pdb | PDB | A single merged dictionary of all provided PDB entries with unique keys. | {'PDB1_design_A': 'ATOM ... END', 'PDB2_template_B': 'ATOM ... END'} |
Important Notes¶
- At least one input is required: The node raises an error if no PDB inputs are connected or if all are empty.
- Input type: Each pdb_i must be a dictionary mapping IDs to PDB strings. Non-dictionary inputs are ignored.
- Key collisions: With prefix_chains=false, duplicate keys are made unique by adding numeric suffixes and a warning may be logged. Enable prefixing to preserve source provenance and avoid collisions.
- No content validation: The node does not validate PDB string format; downstream nodes may fail on invalid content.
- Fixed number of ports: Supports up to five PDB inputs.
- Order matters for prefixes: When prefix_chains is enabled, prefixes correspond to the input index (PDB1_, PDB2_, ...).
Troubleshooting¶
- Error: 'At least one PDB input is required': Connect at least one non-empty PDB input.
- Unexpected overwriting of entries: Enable prefix_chains to avoid key collisions, or ensure unique keys across inputs.
- Downstream node errors about invalid PDB: Check that your PDB strings are complete and properly formatted; this node does not fix or validate PDB content.
- Missing entries in output: Ensure each pdb_i is a non-empty dict. Empty strings or non-dict values are skipped.
- Ambiguous provenance after combining: Turn on prefix_chains to track which input a given entry originated from (PDB1_, PDB2_, etc.).