A3M Combiner¶
Combines up to five A3M MSA dictionaries into a single output dictionary. It can optionally prefix chain IDs to avoid naming conflicts and will ensure resulting keys are unique.

Usage¶
Use this node when you have multiple A3M MSA results (e.g., from different searches or partitions) and need a single, merged A3M dictionary for downstream protein analysis or folding. Connect any subset of the five optional A3M inputs; enable chain ID prefixing if different inputs may contain overlapping chain IDs.
Inputs¶
| Field | Required | Type | Description | Example |
|---|---|---|---|---|
| a3m_1 | False | A3M | First A3M MSA dictionary to merge. Keys are chain or sequence identifiers; values are A3M-formatted content. | {'A': '>seq1\nAAAA\n>seq2\nAA-A'} |
| a3m_2 | False | A3M | Second A3M MSA dictionary to merge. | {'B': '>seq3\nBBBB\n>seq4\nBB-B'} |
| a3m_3 | False | A3M | Third A3M MSA dictionary to merge. | {'C': '>seq5\nCCCC'} |
| a3m_4 | False | A3M | Fourth A3M MSA dictionary to merge. | {'A': '>seq6\nAAAA'} |
| a3m_5 | False | A3M | Fifth A3M MSA dictionary to merge. | {'D': '>seq7\nDDDD'} |
| prefix_chains | False | BOOLEAN | If true, prefixes each input’s keys with A3M{i}_ (e.g., A3M1_, A3M2_) to avoid chain ID collisions across inputs. | True |
Outputs¶
| Field | Type | Description | Example |
|---|---|---|---|
| combined_a3m | A3M | A single A3M dictionary containing all provided entries with unique keys. | {'A': '>seq1\nAAAA', 'B': '>seq3\nBBBB', 'A3M4_A': '>seq6\nAAAA'} |
Important Notes¶
- At least one input is required: The node raises an error if no A3M inputs are provided.
- Chain ID conflicts: If two inputs share the same key and prefix_chains is false, the node will auto-rename duplicates by appending _1, _2, etc. Enabling prefix_chains proactively avoids collisions.
- Key prefixing: With prefix_chains enabled, keys from input i are prefixed with A3M{i}_ (e.g., A3M2_A). If a prefixed key still collides, a numeric suffix is appended.
- Input format: Each A3M input must be a dictionary mapping IDs to A3M-formatted strings.
- Merge order: Inputs are processed in order a3m_1 → a3m_5; when conflicts occur, later items are renamed to keep all entries.
Troubleshooting¶
- Error: 'At least one A3M input is required': Connect at least one valid A3M dictionary to a3m_1…a3m_5.
- Unexpectedly renamed keys (e.g., _1, _2 suffixes): This indicates chain ID collisions. Enable prefix_chains or adjust your input keys.
- Output missing expected entries: Verify each connected a3m_i contains a non-empty dictionary and that keys are unique or prefixing is enabled.
- Type mismatch: Ensure each input is an A3M dictionary {id: a3m_string}. Raw strings should first be loaded/converted to the A3M type using the appropriate loader node.
Example Pipelines¶