Coda · Field guide Beta

Next Generation Connectomics Analysis in the Browser

A browser-based node editor for connectome data. Wire up the steps — query, traverse, filter, aggregate, plot — and each one shows its result where it sits.

hemibrain · MANC · optic‑lobe · male‑CNS no install, no notebook ~10 minutes
Scroll — the graph builds itself
LC outputs by partner type ▶ Run 1
Hemibrain
Dataset
VersionLatest (v1.2.1)
hemibrain:v1.2.1
Find Neurons
Dataset Neurons
Type^LC\d+$
StatusTraced
— · no Dataset connected
Connectivity
Dataset Table
Neurons
Directiondownstream
Hops1
— · not run yet
Filter
Table Table
Columnweight
Keep≥ 10
6,431 rows
Group By
Table Table
Group bypostType
Aggregatesum(weight)
214 rows
Bar Chart
Table Table
DNp01DNp02DNp04DNp03DNp11
214 bars · sum(weight)
what this step does
Run — this node only
inputs
outputs
parameters
last result
Chapter 1

A node is one step

Every step is a card. Find Neurons runs one query: match a type pattern against a dataset. Here, traced lobula columnar cells — ^LC\d+$.

Inputs left, outputs right, parameters between them, the last result along the bottom. in the header runs this node and whatever is upstream of it.

The stripe down the left edge is run state. Grey here because the Dataset input is empty, so there is nothing to run yet.

Chapter 2

Sockets are typed

A link carries a typed value, not a file. Each socket declares what it accepts, so a link that cannot work is refused as you drag it.

Dataset — a connectome at a version
Neurons — a table guaranteed to carry neuronId
Table — any rows and columns
Matrix — rows × columns of numbers
Geometries — skeletons, meshes and point clouds, drawn in 3D
Transform — a mapping between template spaces
Layers — extra neuroglancer layers to draw alongside

Colour names the material and shape separates the members within it, so a shape repeats across materials and never inside one: a skeleton and a table of Neurons are both filled circles, Matrix and Transform both diamonds, the hue says which. One material can hold several shapes — the three marks above are all Geometries.

Chapter 3

Execution model

Each node has a cost. Cheap ones — Filter, Sort, Group By — re-run automatically after you edited them. Expensive nodes query e.g. a backend and go stale instead.

Run (⇧R) executes everything stale, in dependency order. on the card itself executes that node and only its upstream. Both report progress as a gold ring round the card.

Auto-run means every edit re-runs the whole graph, expensive nodes included. On by default but can be turned off, so an expensive workflow is under your control.

Clear removes all results, so you can start over. It does not remove any nodes or wiring. Also worth trying if a node is stuck in e.g. an error.

Chapter 4

A node for every question

Coda provides nodes for complex operations such as Find Neurons, Connectivity, Paths or Skeletons, and primitives for basic data processing steps - e.g. Filter, Group By, Join, Pivot and so on.

Use the "+" button to add new nodes, or press Tab to open the node browser. Search, category chips, and a port signature on every row, so you can see what a node takes and returns before inserting it.

Add a nodeTab
AllDatasetQueryTransformAnalysisOutput
Build NetworkTable → Network · cheap
Network ViewerNetwork + Layout → Network, Selected
ConnectivityDataset + Neurons → Table · needs Run

Space is the same set as a compact palette, plus every command. Drag a wire into empty canvas and the list narrows to what accepts it — then wires up your pick.

Chapter 5

Viewers are interactive

Bar Chart draws the table and passes the same table on, so a viewer drops into the middle of a chain without breaking it. Table, Heatmap, Scatter Plot, Network Viewer, 3D Viewer and an embedded neuroglancer all behave this way.

Several also emit a selection. Lasso points in Scatter Plot, click nodes in Network Viewer: the picked rows leave by a Selected output and wire onward like anything else.

Scatter Plotpre × post · colour by class
0 4,000 pre post
1,704 points · 10 selected⇧drag to lasso

A selection is an ordinary param: it lands in the saved file and in every downstream provenance key. Picking by eye is a step, not a detour out of the pipeline.

Chapter 6

Save it, send it

A workflow is a simple JSON file that captures every step, every parameter. Save ▸ Download writes it as a .coda.json. Save ▸ Save stores it in your browser’s local storage, so you can close the tab and come back later. Share

A workflow file never contains data/results or your credentials! Whoever opens it gets this pipeline exactly as you left it, presses Run, and can move a threshold to see what changes.

Chapter 7

Exploring a connectome

Connectomes are complex datasets. Coda provides a few simple widgets to get started.

Explore Dataset enables fuzzy search

A dataset’s whole neuron table is downloaded once and searched locally. Type something into the search box and the table filters down to matching rows. Alternatively, use the simple query language to match on specific columns: type==LC4. Regex also works: type~^LC[0-9]+$. Select neurons of interest to send them downstream into your analysis.

Find Neurons for structured search

Define and combine filters on any column, and the table updates in real time. Where the backend supports it, this will run a live query and return the results. Otherwise, it will filter the local table.

Dataset Summary provides a birds-eye view

This nodes summarizes the dataset: annotations, neuron counts, completion rate, etc. What is shown depends on what the dataset publishes.

Neuron Profile provides neuron-level summaries

Identity, transmitter, synapse totals, strongest partners, the per‑ROI split and the morphology — one neuron at a time. Page through a collection freely; pin one and it leaves by Current.

Explore Datasethemibrain:v1.2.1
LC4 1722342154 visual projectionsoma RTracedacetylcholine
LC4 1691981778 visual projectionsoma RTracedacetylcholine
LC4 1660633120 visual projectionsoma LTracedacetylcholine
LC4 1629482093 visual projectionsoma LTracedacetylcholine
Hits68 rows
Selected2 rows
Allthe whole index
Neuron Profile2 of 2  ‹ ›
Identity LC4 1722342154 · soma R
Synapses 1,043 pre · 2,388 post acetylcholine
Top outputs DNp01148 DNp0296 DNp0471
By region PVLP(R)61% LO(R)33% PLP(R)6%
Current → the pinned neuron
Chapter 8

Point it at a real connectome

Coda does not host any connectomes itself. Instead, we fetch the data from the primary sources, such as neuprint.janelia.org.

Login or paste a token once

Even public connectome datasets often require you to make an account. When trying to access them via Coda, you will be prompted to either log in with the same account or paste an authentication token.

Credentials stay in this browser

Held in local storage, never sent to a third party or written into a saved workflow. A .coda.json you send a colleague carries the analysis and not your credentials.

Multiple nodes per dataset

Some datasets are hosted on multiple backends. For example, the public release of the FlyWire dataset is available via both neuPrint and CAVE. Coda supports both but note that each of these backends has slightly different data and capabilities.

Credit comes attached

Every published dataset node arrives with a Description card wired to it: what the dataset covers and the papers its authors ask you to cite. Delete it if you like but please do not forget to give credit where it is due.

ConnectionsneuPrint
eyJhbGciOiJSUzI1NiIsImtpZCI6IjNkZTgw…
Test Forget
connected · 6 datasets
Hemibrainv1.2.1
MANCv1.2.3
Optic Lobev1.1
MaleCNSv1.0

Each type of backend requires a different token. Coda will prompt you the first time you try to access a dataset, and then store it in local storage for future sessions.

Chapter 9

Getting around the canvas

Everything can be done with the mouse, but keyboard shortcuts speed up the workflow. For power-users: Space brings up a command palette.

SpaceCommands and nodes, fuzzy‑searched
TabBrowse all nodes, with previews
⇧RRun everything that is stale
IShow or hide the inspector
HCollapse the selected cards
MMute the selection
⌘DDuplicate the selection
⌘ZUndo — including a drag, back to where it began

Initials work in the palette: ra → Run All, gb → Group By.

Drag pans. Panning is the common gesture, so it is the bare one.
⇧ + drag draws a selection box.
Scroll zooms. Double‑click empty canvas adds a node there.
Drag a wire into empty space for a list filtered to what accepts it — your pick arrives wired.
Drag either end of a wire off its socket to re-route; right‑click it for a menu. A drop on a socket that refuses snaps back rather than cutting the link.
The corner controls auto-arrange the graph left to right, once or continuously.
Chapter 10

Where a workflow goes

Four places, and one of them has strings attached.

Save ▸ Download · durable

A .coda.json file

Plain JSON — put it in a repository, a supplement, an email, and reproduces the pipeline wherever it lands. Results are not in it: the recipe, not the meal.

Save ▸ In this browser · convenient

The browser shelf

A named copy in this machine, listed under Open and on the start page. Good for picking up where you left off.

Not a backup! Per browser and per profile, not synced, empty in a private window, and cleared with the site data. Anything you would be sorry to lose, download.

Share workflow ▸ Copy to clipboard

A workflow link

The JSON encoded into a shareable link. Paste it into an email or a chat, or just save it in a note for yourself.

Save ▸ In this browser · convenient

The data

A workflow file never contains results. If you want to keep the outputs you have to download them as CSV, SVG, PNG, etc. via the either the Download button in a node's footer, or via the dedicated Download node.

Open it and add one node.

Nothing to install, and the demo data needs no accounts. Start from one, take it apart, point it at your own question.

Coda is in beta. The core is in place; we’ll keep adding nodes and fixing bugs, but a workflow saved today should keep opening in later builds.