Skip to content

A3M Combiner

Merges up to five A3M MSA dictionaries into a single combined A3M output. Optionally prefixes chain IDs to avoid collisions and guarantees unique keys by auto-suffixing duplicates.
Preview

Usage

Use this node to aggregate multiple multiple-sequence alignments (MSAs) prepared separately into one combined A3M input for downstream protein modeling steps. Connect any subset of the a3m_1–a3m_5 inputs; enable prefix_chains to automatically namespace chain IDs per input source.

Inputs

FieldRequiredTypeDescriptionExample
a3m_1FalseA3MFirst A3M dictionary to include. Keys are chain IDs; values are A3M text for that chain.{'A': '>seq1\nAAAA\n>seq2\nAA-A'}
a3m_2FalseA3MSecond A3M dictionary to include.{'B': '>seq1\nBBBB\n>seq2\nB-BB'}
a3m_3FalseA3MThird A3M dictionary to include.{'C': '>seq1\nCCCC'}
a3m_4FalseA3MFourth A3M dictionary to include.{'A': '>seq1\nAAAA'}
a3m_5FalseA3MFifth A3M dictionary to include.{'D': '>seq1\nDDDD'}
prefix_chainsFalseBOOLEANIf true, prefixes chain IDs with the input index (A3M1_, A3M2_, etc.) to avoid collisions. When false, collisions are resolved by appending _1, _2, ...True

Outputs

FieldTypeDescriptionExample
combined_a3mA3MA single A3M dictionary containing all merged entries with unique chain IDs.{'A3M1_A': '>seq1\nAAAA\n>seq2\nAA-A', 'A3M2_B': '>seq1\nBBBB'}

Important Notes

  • At least one A3M input is required: The node raises an error if no valid A3M dictionaries are provided.
  • Input format: Each A3M input must be a dictionary mapping chain IDs (e.g., A, B) to A3M-formatted strings.
  • Chain ID conflicts: If prefix_chains is true, chain IDs are prefixed (A3M{i}_) and any remaining conflicts get numeric suffixes. If false, conflicts trigger a warning and are resolved by auto-appending _1, _2, ...
  • Partial inputs allowed: You can connect any subset of a3m_1–a3m_5; disconnected inputs are ignored.
  • Non-dict values are ignored: Inputs that are not dictionaries are skipped without combining.

Troubleshooting

  • Error: 'At least one A3M input is required': Connect at least one valid A3M dictionary to a3m_1–a3m_5.
  • Unexpected chain overwrites or duplicates: Enable prefix_chains to automatically namespace chain IDs per input and avoid collisions.
  • Wrong input type (e.g., string instead of dict): Ensure each A3M input is a dictionary like {"A": ""}. Non-dicts are ignored.
  • Missing chains in output: Verify the input keys are the expected chain IDs and that each value contains non-empty A3M text.

Example Pipelines

Example
Example