Vol. 01 · No. 1 · Beta Edition
Node reference

Input / Output nodes.

Get data into an AnnData object and results back out. The scRNA-seq loaders cover H5AD, 10x H5 and MTX, CSV/TSV, Loom, plain text, and the two RNA-velocity formats (velocyto .loom and STARsolo Velocyto output). The utilities attach a sample sheet, merge datasets with a live preview, subset with an AND/OR builder, define custom groups, split composite cell IDs, browse and tidy obs columns, and export tables. Spatial, bulk, methylation and ATAC loaders live in their own categories.

16 nodesCategory · ioin 27 templates

Good to know

Merge Cell Meta is the standard way to attach phenotype or a sample sheet — in scRNA-seq, bulk and methylation alike. Its auto match mode picks the key column the same way in the preview and in the run, so a preview that shows 100% no longer ends in a rejected run (fixed in v0.25.0).

Export CSV writes 15 tabular result types. The numbers behind a specific figure are exported from that figure’s Visualization Workspace instead (Export raw data).

Loaders convert a matrix that was stored dense on disk to sparse on load (v0.25.0). If a memory refusal mentions a dense matrix on an older project, re-running the loader is usually the whole fix — see Memory & large data.

Common pitfalls

Load CSV / TSV is for expression matrices, not metadata. Cell-level metadata goes through Merge Cell Meta; spatial coordinates go through Add Coordinates.

Genes-as-rows files need transpose. A cells × genes matrix loads as-is; a genes × cells export must be transposed or every gene becomes a cell.

Load Loom is not Load Velocyto Loom. Only the velocyto loader keeps the spliced / unspliced / ambiguous layers that RNA Velocity needs.

Load H5AD node

Load H5AD

loadH5AD

Load an .h5ad file into AnnData. Native scanpy/AnnData format — preserves all metadata, layers, and embeddings. Duplicate gene names are made unique automatically.

Node LibraryscRNA-seqSpatialBulk RNA-seqMethylationATAC-seq
OutAnnData
Parameters (1)
NameTypeDefaultDescription
file_pathfile (.h5ad)—Path to the .h5ad file.
Load 10X H5 node

Load 10X H5

load10xH5

Load 10X Genomics HDF5 (.h5) from Cell Ranger output. Use filtered_feature_bc_matrix.h5 unless empty droplets are needed. Specify genome for multi-genome files.

Node LibraryscRNA-seqSpatial
OutAnnData
Parameters (2)
NameTypeDefaultDescription
file_pathfile (.h5)—Path to the 10X .h5 file.
genometext—Genome identifier (leave empty to auto-detect).
Load 10X MTX node

Load 10X MTX

load10xMtx

Load 10X Genomics MTX directory (matrix.mtx + features + barcodes). Validates Matrix Market header before loading. var_names="gene_symbols" for human-readable names; "gene_ids" for Ensembl IDs.

Node LibraryscRNA-seqSpatial
OutAnnData
Parameters (3)
NameTypeDefaultDescription
directory_pathdirectory—Path to Cell Ranger output directory.
var_namesselectgene_symbols"gene_symbols" or "gene_ids".
make_uniquecheckboxtrueMake variable names unique.
Load CSV / TSV node

Load CSV / TSV

loadCSV

Load a CSV/TSV expression matrix (cells × genes). NOT for cell metadata — use Merge Cell Meta for that. Delimiter auto-detected from .tsv/.txt extension.

Node LibraryscRNA-seqSpatial
OutAnnData
Parameters (4)
NameTypeDefaultDescription
file_pathfile (.csv, .tsv, .txt)—Path to the expression matrix file.
delimiterselect,"," for CSV, "\t" for TSV.
first_column_namescheckboxtrueFirst column as cell names.
transposecheckboxfalseTranspose if genes are rows.
Load Loom node

Load Loom

loadLoom

Load a Loom file. Use Load Velocyto Loom for RNA velocity layers.

Node LibraryscRNA-seq
OutAnnData
Parameters (2)
NameTypeDefaultDescription
file_pathfile (.loom)—Path to the .loom file.
sparsecheckboxtrueLoad as sparse matrix.
Load Text node

Load Text

loadText

Load a generic text expression matrix.

Node LibraryscRNA-seq
OutAnnData
Parameters (4)
NameTypeDefaultDescription
file_pathfile (.txt, .tsv)—Path to the text file.
delimiterselect\tField separator.
first_column_namescheckboxtrueFirst column as cell names.
transposecheckboxfalseTranspose the matrix.
Load Velocyto Loom node

Load Velocyto Loom

loadVelocytoLoom

Load a velocyto .loom for RNA velocity (spliced/unspliced/ambiguous layers). Cell barcodes with sample prefixes (e.g. "sample:AAAC...") are stripped automatically. Connect directly to RNA Velocity.

Node LibraryscRNA-seq
OutAnnData with spliced/unspliced/ambiguous layers
Parameters (1)
NameTypeDefaultDescription
file_pathfile (.loom)—Path to the velocyto .loom file.
Load STARsolo Velocity node

Load STARsolo Velocity

loadSTARVelocity

Load STARsolo Velocyto MTX directory (spliced/unspliced/ambiguous). Run STARsolo with --soloFeatures Velocyto. STARsolo MTX files are genes × cells — auto-transposed.

Node LibraryscRNA-seq
OutAnnData with spliced/unspliced/ambiguous layers
Parameters (1)
NameTypeDefaultDescription
directory_pathdirectory—Path to STARsolo filtered/ directory.
Merge Data node

Merge Data

mergeData

Concatenate multiple AnnData objects with per-input labels and live pre-merge preview. v0.9.0-beta.41+ — labels are entered per-input as cards (NOT comma-separated). Outer = keep all genes, Inner = shared genes only. Layer selection is explicit checkboxes.

Node LibraryscRNA-seq
In2+ AnnData
OutAnnData (merged)
Parameters (6)
NameTypeDefaultDescription
batch_keytextbatchColumn added to obs identifying source dataset.
batch_labels_listarray[]Per-input labels prefilled from source node names.
batch_labelstext—LEGACY — comma-separated labels. Auto-converted to batch_labels_list for backward-compat.
jointextouter"outer" keeps all genes (0-fill), "inner" shared only.
keep_layersarray[]Explicit list of layers to keep. Overrides layer_strategy.
layer_strategytextcommon_only"common_only" or "keep_all" fallback.
Merge Cell Meta node

Merge Cell Meta

mergeCellMeta

Attach external metadata CSV/TSV/Excel to adata.obs with auto-match suggestions and live match-rate preview. v0.9.0-beta.41+. The canonical way to attach phenotype info (group, batch, age, etc.). Two modes: cell_id (1 row per cell) or obs_column (broadcast group-level metadata).

Node LibraryscRNA-seqSpatialBulk RNA-seqMethylation
InAnnData
OutAnnData (with obs columns added)
Parameters (8)
NameTypeDefaultDescription
meta_filetext—Path to metadata file.
match_bytextauto"auto", "cell_id", or "obs_column".
id_coltext—CSV column of cell IDs (cell_id mode).
obs_match_coltext—obs column used as matching key (obs_column mode).
meta_key_coltext—CSV column of broadcast values (obs_column mode).
selected_columnsarray[]Columns to add. Empty = all except key.
unmatched_strategytextfill_nan"fill_nan", "drop_cells", or "error".
allow_positional_fallbackcheckboxfalseOff by default; explicit opt-in.
Subset Data node

Subset Data

subsetData

Filter cells or genes using multi-condition AND/OR builder with live preview. v0.9.0-beta.41+ — replaces the single-condition form. Categorical → multi-select; numeric → range slider + histogram; gene name → async autocomplete + regex.

Node LibraryscRNA-seqSpatialBulk RNA-seqMethylationATAC-seq
InAnnData
OutAnnData (subset)
Parameters (4)
NameTypeDefaultDescription
filter_typetextcells"cells" or "genes".
operationtextkeep"keep" or "exclude".
combine_modetextANDHow conditions combine.
conditionsarray[]List of {column, operator, values?, range?, pattern?}.

Define Groups

defineGroups

Assign cells to custom categorical groups via multi-condition rules; same label across groups acts as OR. Each group is an AND of conditions → one label. Overlap between different-labeled groups is a hard error. Pairs naturally with Subset Data, DEG Analysis, CellPhoneDB.

Node LibraryscRNA-seqSpatialBulk RNA-seqMethylation
InAnnData
OutAnnData (new ordered Categorical column added)
Parameters (4)
NameTypeDefaultDescription
result_columntextcustom_groupNew obs column name.
unmatched_labeltext—Empty → NaN; non-empty fills unmatched cells with that label.
orderedcheckboxtrueWrite pd.Categorical with ordered=True.
groupsarray[]List of {id, label, conditions: [...]}. Conditions within a group combine with AND.

Split Cell ID

splitCellId

Split cell IDs by delimiter into new obs columns (e.g. B_cac10_AAACCTGAG → type/patient/barcode). Place after Load and before QC. Use the new obs columns with Subset Data for group-specific QC. Original cell IDs are preserved as obs_names.

Node LibraryscRNA-seqSpatial
InAnnData
OutAnnData (new obs columns added)
Parameters (3)
NameTypeDefaultDescription
delimiterselect_Character to split on. "_", "-", ".", or custom.
custom_delimitertext—Free-form delimiter used when delimiter='custom'. Ignored otherwise.
column_namestext—Names for new obs columns (e.g. type,patient,barcode).

Obs Inspector

obsInspector

Browse adata.obs and apply small obs edits (drop / rename / dtype convert) in one node. Dedicated UI: multi-select autocompletes, rename pair editor, inline obs preview table, per-column summary accordion (dtype, n_unique, n_missing, value_counts top N bar chart, sample uniques). Read-only outputs are always computed against the post-edit obs. Operation order within a run: drop → rename → to_category → to_string. Missing targets are silently skipped and reported back. All edits are recorded as params so workflows stay reproducible.

Node LibraryscRNA-seqSpatialBulk RNA-seqMethylationATAC-seq
InAnnData
OutAnnData (with requested obs edits applied)
Parameters (7)
NameTypeDefaultDescription
preview_limitnumber50Top-N rows of obs to send to the frontend table (1–500).
value_counts_top_nnumber10How many most-frequent values per column to include in the summary.
drop_columnsarray[]Obs column names to delete. Frontend writes array; legacy comma-string also accepted.
rename_pairsarray[]List of {old, new} dicts. Preferred over rename_map.
rename_maptext—LEGACY — comma-separated 'old:new' pairs ('leiden:cluster, sample:patient'). Used only when rename_pairs is empty/missing. Hand-edited workflow JSONs only — DO NOT emit from AI Chat (use rename_pairs instead).
to_categoryarray[]Obs columns to convert to Categorical.
to_stringarray[]Obs columns to convert to plain string.
Save H5AD node

Save H5AD

saveH5AD

Save AnnData to .h5ad.

Node LibraryscRNA-seqSpatialBulk RNA-seqMethylationATAC-seq
InAnnData
OutFile (.h5ad)
Parameters (2)
NameTypeDefaultDescription
output_pathfile path—Output .h5ad path.
compressionselectgzip"gzip", "lzf", or "none".
Export CSV node

Export CSV

exportCSV

Export analysis results to CSV — 15 export types (markers, pathway, obs, var, lineage_drivers, fate_probabilities, cpdb, bulk_de, gsea, atac_*, dmp, dmr, transcripts, xenium). markers exports a wide-format DEG table with all genes. Each export type has its own column schema.

Node LibraryscRNA-seqSpatialBulk RNA-seqMethylationATAC-seq
InAnnData
OutFile (.csv)
Parameters (8)
NameTypeDefaultDescription
export_typeselectmarkersOne of 15 supported export types.
output_pathfile path—Output CSV path.
marker_keytextrank_genes_groupsadata.uns key for DEG results.
marker_groupsselect—Which DEG groups to export (subset of clusters/conditions), as a list or comma-separated names. Empty = export all groups. Only used when export_type='markers'. Requesting a group that does not exist errors with the available group list.
uns_keytextpathway_enrichmentadata.uns key for pathway data.
gene_set_filtertext—Pathway gene-set substring filter.
run_idtext—Which functional-activity run to export, as reported in the activity node's result. Empty = the most recent run stored in adata.uns['bf_activity_v1']. Only used when export_type='activity'; matters when a workflow chains PROGENy, Hallmark and CollecTRI in sequence, because all three runs live in the same AnnData and the newest one wins by default.
obs_columnobs column—Specific obs column (xenium type only).