Coda · Field guide Beta

Next Generation Connectomics Analysis in the Browser

A browser-based node editor for connectome data. Each step of an analysis (query, traverse, filter, aggregate, plot) is a node, and every node shows its result right on the canvas.

hemibrain · MANC · optic‑lobe · male‑CNS no install, no notebook ~10 minutes
Scroll down to build the graph
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
inputs
outputs
parameters
last result
Chapter 1

A node is one step

Every step is a card. Find Neurons runs one query: it matches a type pattern against a dataset. Here we ask for traced lobula columnar cells with ^LC\d+$.

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

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

Chapter 2

Sockets and types

Each socket has a type that says what it accepts. If you try to connect two sockets that don't fit, Coda won't let you draw the link.

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

The colour tells you the general kind of data and the shape tells you the type within it. The same shape can appear in two colours: a skeleton and a table of Neurons are both filled circles, Matrix and Transform are both diamonds. One colour can also have several shapes: the three marks above are all Geometries.

Chapter 3

Execution model

Each node has a cost. Cheap ones such as Filter Table, Sort or Group By re-run automatically after you edit them. Expensive nodes, e.g. ones that query a backend, go stale instead.

Run (⇧R) executes everything stale, in dependency order. ▶ on the card itself executes only that node and what is upstream of it. Either way, a gold ring around the card shows its progress.

Auto-run means every edit re-runs the whole graph, expensive nodes included. It is on by default, but you can turn it off to control when an expensive workflow runs.

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, e.g. in 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 Table, Group By, Join, Pivot and so on.

Use the "+" button to add new nodes, or press Tab to open the node browser. The browser has a search box and category chips, and each row shows the node's port signature, i.e. what it takes and what it returns.

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

Space opens a compact palette with the same nodes plus every command. If you drag a wire into empty canvas, the list only shows nodes that accept it, and the node you pick arrives already wired up.

Chapter 5

Viewers

Bar Chart draws the table and also passes the same table on, so you can put a viewer in the middle of a chain. Table, Heatmap, Scatter Plot, Network Viewer, 3D View and Neuroglancer all work this way.

Several viewers also let you select things. Lasso points in Scatter Plot or click nodes in Network Viewer, and the picked rows come out of a Selected output that you can wire onward like any other.

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

A selection is stored like any other parameter: it is saved with the workflow, and changing it counts as an edit like any other.

Chapter 6

Save it, send it

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

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 bird’s-eye view

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

Neuron Profile provides neuron-level summaries

Shows identity, transmitter, synapse totals, strongest partners, synapses per ROI and the morphology for one neuron at a time. You can page through a whole set of neurons. Pin one and it comes out of the Current output.

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.

Log in 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

Tokens are kept in your browser’s local storage. They are only sent to the server they belong to and are never written into a saved workflow, so a .coda.json you send to a colleague contains the analysis but 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.

Citing the data

Every published dataset node comes with a Description card wired to it. It tells you what the dataset covers and which 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 moving nodes

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

Drag pans the canvas.
⇧ + drag draws a selection box.
Scroll zooms. Double‑click empty canvas adds a node there.
Drag a wire into empty space to get a list of nodes that accept it. The one you pick arrives wired up.
Drag either end of a wire off its socket to re-route it, or right‑click it for a menu. If you drop it on a socket that doesn’t accept it, the wire goes back to where it was.
The corner controls auto-arrange the graph left to right, once or continuously.
Chapter 10

Keeping your work

There are three ways to keep a workflow, and its results have to be downloaded separately.

Save ▸ Download .coda.json · durable

A .coda.json file

Plain JSON that you can put in a repository, a paper’s supplement or an email. Whoever opens it gets the same pipeline. It contains the steps, not the results.

Save ▸ Save in this browser · convenient

The browser shelf

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

Not a backup! It is per browser and per profile, not synced, empty in a private window, and gone when you clear the site data. If you would be sorry to lose it, download it.

Share workflow ▸ Copy

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.

Download

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 either the Download button in a node's footer, or via the dedicated Download node.

Try it yourself

There is nothing to install, and the demo data needs no account. Let the Workflow Wizard build you a starting point, change it, then 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.