Plexora

Environment variables

Every environment variable Plexora reads, what it changes and its default.

Generated from Plexora 0.0.55

Environment variables change Plexora for one process or shell session. Most have a command-line flag or a setting with the same effect; where they differ, the order is flag, then environment variable, then the settings file (plexora config), then the built-in default. The data directory has its own order, described in Where your data lives.

Data

PLEXORA_DATA_PATH

The data directory, overriding everything else. Projects, datasets and settings for this session live under it.

export PLEXORA_DATA_PATH=/scratch/me/plexora
PLEXORA_DATA_PATH_DEFAULT

A data directory to use only if this account has not chosen one. A directory recorded with plexora config set data-dir wins over it. plexora connect sets it on the remote host from a saved connection.

PLEXORA_SHARED_PATH

Extra data directories whose projects are listed alongside your own, separated by : (macOS, Linux) or ; (Windows). The same as plexora config set shared-dirs.

export PLEXORA_SHARED_PATH=/lab/shared/plexora
PLEXORA_LIBRARY_PATHdefault <Documents>/Plexora/projects, when it holds projects

Folders of projects that are your own besides your data directory, read and written in place, separated by : (macOS, Linux) or ; (Windows); empty for none. By default, the folder the Plexora website keeps its projects in on this computer (Documents/Plexora/projects), when it exists -- so a project made on the website opens in the desktop app with nothing to import. Unset, with the data directory at its default, new projects made on this computer go in that folder too, so they open on the website; set (even empty), new projects stay in the data directory.

export PLEXORA_LIBRARY_PATH=D:/Plexora/projects
PLEXORA_VOCABULARY_PATHdefault <config directory>/biocognia/markers/overlay.json

Where the markers Plexora learned are kept -- what a model or you said about markers the BioCognia marker graph does not let it gate, so they are not asked about again -- as the graph's overlay (overlay.json in this folder), which SCIMAP Pro reads too. Point several installs at one shared folder and they learn together. BIOCOGNIA_MARKER_GRAPH, the variable both products read, wins over it. A learned_markers.yaml from before the graph, here or under the data directory, moves into the overlay the first time Plexora reads it and is kept as learned_markers.yaml.migrated. plexora ai vocabulary lists and forgets them.

export PLEXORA_VOCABULARY_PATH=/lab/shared/plexora/vocabulary
PLEXORA_EXPERIENCE_PATHdefault <data directory>/.agent/gating/experience

A folder for automatic gating's experience record -- one line per marker each finished gating session decided, and what was done to it afterwards (a gate moved, a classifier layer adopted or discarded). Names, counts, gates and versions only. Read by plexora ai bench experience; nothing reads it into a gate. Point several installs at one shared folder to read their runs together.

export PLEXORA_EXPERIENCE_PATH=/lab/shared/plexora/experience
PLEXORA_MASK_OUTPUTdefault beside

Where a converted segmentation mask is written. beside (the default) writes it next to the original mask so other projects and data nodes reuse it; project writes it under the project's own directory.

PLEXORA_REMOTE_CACHE_BYTESdefault 10737418240 (10 GB)

How much disk, in bytes, the cache of images read from web addresses may use. At least 1 GB. The same as plexora config set remote-cache-gb.

Server

PLEXORA_HOSTdefault 127.0.0.1

The address plexora binds to. Use 0.0.0.0 to accept connections from other machines (for example inside Docker).

PLEXORA_BASE_URL

A URL prefix to serve under, when Plexora sits behind a proxy that forwards a sub-path (JupyterHub, Open OnDemand). Usually detected; set it only when detection fails.

export PLEXORA_BASE_URL=/user/me/proxy/8000
PLEXORA_PLUGINS

Comma-separated plugin names to activate. Unset activates every installed plugin; an empty string starts the core viewer only. The same as plexora --plugins.

export PLEXORA_PLUGINS=roi,cell_explorer
PLEXORA_AUTH_TOKEN

When set, the viewer only opens from a URL carrying ?token=<value> (or the cookie that URL sets, or an X-Plexora-Token header). plexora, plexora --ood, the desktop app and a Jupyter proxy mount set it for you; one already in the environment wins.

PLEXORA_TRUSTED_HOSTS

Comma-separated host names a loopback-bound viewer answers to besides localhost and IP addresses -- the same as plexora --allowed-host. Any other Host is refused, which is what stops a rebound DNS name reaching the viewer.

export PLEXORA_TRUSTED_HOSTS=lab-box
PLEXORA_ALLOWED_ORIGINS

Comma-separated origins whose changes the viewer accepts although the browser calls them another site, for a reverse proxy that rewrites the Host on the way in.

export PLEXORA_ALLOWED_ORIGINS=https://portal.example.org
PLEXORA_ALLOW_FRAMING

Set to 1 to let another site show the viewer in a frame. On already in notebook mode, Colab and behind a hub's proxy.

export PLEXORA_ALLOW_FRAMING=1
PLEXORA_LOG_LEVELdefault WARNING

What the server logs to stderr (DEBUG, INFO, WARNING, ERROR). INFO says what it loads and builds, once each; plexora -v is DEBUG. Every mode; the desktop server applies it to every library's messages too.

PLEXORA_DOCKER

Set to 1 by the Docker image. Tells the import page to show paths as the container sees them.

Data nodes

PLEXORA_NODE_HOSTdefault 127.0.0.1

Default for plexora node serve --host.

PLEXORA_NODE_TOKEN

Default for plexora node serve --token, the shared secret a viewer authenticates with.

PLEXORA_GOOGLE_API

Sends every Google Cloud JSON API call the website's backend makes (plexora/gcloud_rest.py) to one stand-in instead of Google -- <base>/compute/v1, <base>/storage/v1, <base>/v1/projects, <base>/v1/userinfo. For tests against tests/browser/mock_google.py; never set it for real use.

export PLEXORA_GOOGLE_API=http://127.0.0.1:8765
PLEXORA_NODE_ORIGINS

Browser origins a data node allows, separated by commas or spaces, in addition to every plexora node serve --allow-origin. For a launcher that starts nodes for a page served from elsewhere (the hosted viewer, say) without rebuilding each command line. Written as the browser sends them -- http://127.0.0.1:8000 and http://localhost:8000 are different origins.

export PLEXORA_NODE_ORIGINS=https://viewer.plexoraapp.com

Performance

PLEXORA_FEATURE_CACHE_MBdefault 512

Memory, in megabytes, for caching feature columns read on demand from wide tables.

PLEXORA_WIDE_FEATURE_LIMITdefault 1024

Tables with more feature columns than this are read column by column on demand instead of loaded whole (whole-transcriptome matrices).

PLEXORA_MASK_FULL_READ_MAX_BYTESdefault 8589934592 (8 GB)

Largest mask, in bytes, read into memory in one go when converting it. Larger masks are streamed tile by tile, which uses less memory but is slower on network drives.

PLEXORA_TILE_CACHE_MBdefault a sixteenth of the allocated memory, 128 to 2048

Memory, in MB, the viewer's server keeps for image tiles it has already encoded, so a pan back over visited ground or a plane stepped back to is answered without a read -- and, for a z-stack stored plane by plane, the tiles of the next planes made ahead of the one on screen. Budgeted in bytes because a 16-bit tile is about 2 MB and an 8-bit one about 100 KB. A data node has its own (PLEXORA_NODE_TILE_CACHE_MB).

PLEXORA_NO_NUMBA

Set to 1 to skip numba. The kernels then come from plexora-kernels when it is installed, else run as plain Python (slower); useful when numba fails to load.

PLEXORA_KERNELSdefault 1 (used when installed)

Set to 0 to skip plexora-kernels, the package of kernels compiled ahead of time, even when it is installed; the kernels then run through numba, or as plain Python with PLEXORA_NO_NUMBA=1. For comparing the two, or ruling the package out.

Magic select

PLEXORA_SEGMENT_MODEL_DIRdefault <data directory>/.models/segment

Directory magic select's model files are read from and downloaded to. For an offline machine, copy the two files here (or run plexora ai segment install once where there is a network) and nothing is fetched. The same as plexora config set segment-model-dir.

PLEXORA_SEGMENT

Set to 0 to switch magic select off everywhere -- the ROI and QC panels, and the QC agent's snug outlines. Nothing is downloaded and every outline is traced the classical way.

PLEXORA_SEGMENT_DEVICEdefault auto

auto uses a GPU when this machine's ONNX Runtime offers one (CUDA, ROCm, DirectML or Apple's CoreML) and falls back to the CPU; cpu never uses one; gpu refuses to run without one.

PLEXORA_SEGMENT_MODEL_URL

Fetch magic select's model files from this address instead of Plexora's release (a mirror inside a firewalled site). The files are checked against the same checksums either way.

Z-stacks

PLEXORA_VOLUME_BRICKS

Set to 0 to never copy a stack into 3-D bricks. A large stack stored plane by plane is otherwise copied in the background, its zoomed-out levels only, so projections, sections and the 3-D view read across planes quickly.

PLEXORA_VOLUME_LEVEL_BUDGETdefault 268435456 (256 MB)

Bytes of one channel's whole stack at the finest level the background copy takes; it copies that level and every coarser one.

PLEXORA_ROI_BRICK_BUDGETdefault 4294967296 (4 GB)

Disk, in bytes, kept for areas prepared at finer levels ("Prepare this area", and the section panes once the view settles); the areas used least recently go first.

PLEXORA_IMS_CHUNK_CACHE_MBdefault 96

Memory, in MB, for decoded chunks of each Imaris channel read through HDF5's own chunk cache (up to six at once) -- used only for an Imaris file whose chunks Plexora does not decompress itself (anything but deflate, with or without shuffle).

PLEXORA_CHUNK_CACHE_MBdefault an eighth of the allocated memory, 256 to 8192

Memory, in MB, for decoded chunks of z-stacks, shared by every stack and channel being read -- an Imaris file's chunks, an OME-Zarr store's, and the bricks of a stack's 3-D copy. A plane next to one already read, a section beside the last, the block of planes read ahead of the one on screen, and the 3-D view's level reuse chunks instead of decompressing them again. Sized from the memory this process was given (a cluster job's allocation, not the node's).

PLEXORA_DECODE_THREADSdefault twice the allocated cores, 4 to 32

Threads that read and decompress z-stack chunks, outside the file locks the readers hold. A quarter as many again read in the background (window scans, the planes read ahead), so they never queue in front of a tile.

PLEXORA_IMS_INDEXdefault 1 (on)

Set to 0 to stop Plexora working out, once per file and in the background, where every chunk of a large Imaris file (1 GB or more) on a disk is. With that index kept under the data directory, a cold tile reads 2.5-4x faster from a cluster filesystem; without it the file still reads, as it would on first open.

PLEXORA_NODE_TILE_CACHE_MBdefault a sixteenth of the allocated memory, 128 to 2048

Memory, in MB, a data node keeps for tiles it has already encoded, so a plane or view stepped back to is answered without a read. Budgeted in bytes because a 16-bit tile is about 2 MB and an 8-bit one about 100 KB.

PLEXORA_SECTION_READ_BUDGET_MBdefault 256

What one tile of an XZ or YZ section may decompress, in MB. A section through a stack stored plane by plane reads every plane it crosses; past the budget the tile is computed at a coarser level and drawn up (and not cached), until the area is prepared in 3-D.

PLEXORA_LEVEL_CACHE_MBdefault 512

Memory, in MB, for the 3-D view's levels already built (quantized voxels of one channel each), so a second viewer or a reload is not read again.

PLEXORA_LEVEL_GATEdefault 3

How many 3-D view levels are built at once; further requests wait their turn.

PLEXORA_SURFACE_BUDGET_TRIANGLESdefault 5000000

The most triangles one surface may have (Surface Studio). A request past it is refused with the estimate and what to change -- a lower quality, a smaller region or fewer cells -- rather than built and then not drawable in a browser.

PLEXORA_SURFACE_THREADSdefault 8

How many threads build one set of cell surfaces (a 3-D mask's, in one pass over it); at most the cores this process may use. A data node reads its own.

PLEXORA_SURFACE_PREVIEW_VOXELSdefault 2000000

Voxels the Surface Studio threshold preview reads (a coarse level of the area asked for, kept in memory while the slider moves).

PLEXORA_PROJECTION_GATEdefault half the cores, at least 2

How many projection tiles (MIP, mean and the like) are computed at once.

PLEXORA_PLANE_CACHEdefault 512

How many planes of a z-stack are kept ready to read (their pyramids), for scrubbing back and forth through a deep stack.

PLEXORA_WINDOW_SCAN

Set to inline to compute a z-stack's brightness window before its first tile, as before; by default the first tiles use a provisional window and the exact one is computed in the background.

AI agents

PLEXORA_AI_MODELS

Path of the task-to-model file an agent driving Plexora over MCP follows (which model answers each gating and QC task). Defaults to ai-models.yaml beside the settings file; plexora ai models init writes a starting one. Absent, the agent chooses every model.

PLEXORA_MODEL_JUDGEMENT

The model your agent client runs judgement work on (reading pictures, placing a gate). Overrides plexora ai tiers judgement=<model>; unset, the client picks its most capable model.

PLEXORA_MODEL_ROUTINE

The model your agent client runs routine work on (tool relay, listing, write-ups). Overrides plexora ai tiers routine=<model>; unset, the client picks its cheapest model that calls tools reliably.

On this page