🚧Documentation is under active development β€” content may be incomplete or change frequently.
Skip to Content
Node System

Node System

Nodes are the building blocks of every Salpa workflow. Each node represents a single computational step β€” from reading a PDB file to running a full GROMACS simulation.

How nodes work

A node has:

  • Inputs β€” Data it receives from upstream nodes (files, parameters, sequences)
  • Outputs β€” Data it produces for downstream nodes
  • Configuration β€” User-settable parameters (file paths, options, thresholds)
  • Execution logic β€” The actual computation (Python code)

When you connect nodes on the canvas, you define a data flow pipeline. Outputs from one node become inputs to the next.

Node package structure

Every node follows a two-level architecture:

my_node/ β”œβ”€β”€ meta.toml # Metadata: name, version, category, hashtags β”œβ”€β”€ node.py # Salpa integration (inputs, outputs, UI options) β”œβ”€β”€ core.py # Pure science code (no Salpa dependencies) β”œβ”€β”€ pixi.toml # Python environment (optional β€” triggers isolation) β”œβ”€β”€ README.md # Documentation β”œβ”€β”€ demo_data/ # Example input files └── tests/ # Unit tests

Why two files?

  • core.py contains your actual computation β€” pure Python, no framework dependencies. You can test and run it independently.
  • node.py wraps core.py for Salpa β€” defines inputs, outputs, configuration UI, and execution flow.

This separation means your science code stays clean and reusable outside of Salpa.

Execution strategies

Salpa automatically selects the right execution strategy for each node:

StrategyWhenWhat happens
In-processNo pixi.toml presentRuns directly in the worker process. Fast, no isolation.
Pixi subprocesspixi.toml presentCreates an isolated Python environment and runs in a subprocess. Full dependency isolation.
ContainerComing soonDocker/Podman execution for maximum portability and reproducibility.
HPC / SLURMContact for supportRemote cluster execution via SSH. Vendor-dependent configuration.

Auto-detection: If your node directory contains a pixi.toml file, Salpa automatically uses the isolated subprocess strategy. Otherwise, it runs in-process.

Available nodes

Local nodes

Installed from the marketplace or built-in:

NodeCategoryDescription
Hello WorldUtilitySimple test node for verifying execution
PDB-FASTA BioPythonAnalysisExtract FASTA sequences from PDB files
PDB2PQRPreparationAdd hydrogens and assign charges to PDB structures
GROMACS MD RunSimulationRun molecular dynamics with GROMACS
ESMFold PredictionStructureLocal protein structure prediction with ESMFold
AutoDock VinaDockingMolecular docking simulations

Cloud nodes

Run on remote GPU hardware (requires sign-in):

NodeGPUDescription
ESMFold (Cloud)A100Protein structure prediction via ESMFold
Boltz-2 (Cloud)H100Multi-chain structure prediction via Boltz-2

Naming conventions

Salpa uses consistent naming across different contexts:

ContextConventionExample
Display nameTitle Case with spaces”GROMACS MD Run (Local)β€œ
Package name (meta.toml)kebab-casegmx-mdrun-local
Directory namesnake_casegmx_mdrun_local/
Python classPascalCaseGmxMdrunLocal

Next steps