Help us improve
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Share bugs, ideas, or general feedback.
Access NimbusImage scientific imaging datasets via Python API to connect to servers, fetch images as numpy arrays, manage points/polygons annotations, compute properties like area/intensity, export JSON/CSV data, and run Docker workers for segmentation, spot detection, and job tracking.
npx claudepluginhub arjunrajlaboratory/nimbusimage --plugin nimbusimageCompute properties, export data, manage connections, and share NimbusImage datasets using the nimbusimage Python API. Use this skill when the user wants to compute annotation measurements, export data as JSON or CSV, create connections between annotations, share datasets with collaborators, or manage access control. Also use when you see ds.properties, ds.export, ds.connections, or ds.sharing in code, or the user mentions measurements, statistics, data export, lineage tracking, or sharing imaging datasets.
Create, list, filter, update, and delete annotations on NimbusImage datasets using the nimbusimage Python API. Use this skill when the user wants to work with annotations — creating points or polygons, filtering by shape or tags, bulk operations, geometry conversion (shapely, numpy masks), or programmatic annotation manipulation. Also use when you see ds.annotations in code, or the user mentions spots, cells, nuclei, ROIs, polygons, or segmentation masks in an imaging context.
Fetch image data from NimbusImage datasets as numpy arrays using the nimbusimage Python API. Use this skill when the user wants to retrieve image frames, composites, z-stacks, crops, or channel data from a NimbusImage dataset. Also use when you see ds.images in code, or the user mentions getting pixel data, viewing channels, making composites, or processing image arrays from their imaging server.
Connect to a NimbusImage server and work with scientific imaging datasets using the nimbusimage Python API. Use this skill whenever the user mentions NimbusImage, wants to connect to a Girder-based imaging server, list or open datasets, or asks about the nimbusimage package. Also use when you see `import nimbusimage` in code or the user references dataset IDs, channels, z-slices, or time points in an imaging context. This is the entry point — it routes to more specific skills (annotations, images, workers, analyze) for deeper operations.
Run Docker-based computational workers on NimbusImage datasets using the nimbusimage Python API. Use this skill when the user wants to run segmentation, spot detection, property computation, or any Docker worker on their imaging data. Also use when you see ds.annotations.compute or ds.properties.compute in code, or the user mentions running workers, submitting jobs, tracking job status, or automating image analysis pipelines on a NimbusImage server.
Share bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Interact with AI agents built for biology. Owkin build AI agents for biology to accelerate drug discovery and de-risk clinical trials. The Owkin connector currently powers HistoPLUS, an agent that transforms H&E slides from the TCGA database into granular, queryable insights. Researchers can use it to quantify distinct cell types, analyze complex spatial tumor microenvironments, and validate hypotheses through cohort-level survival analysis.
Build high-quality datasets and computer vision models. Visualize datasets, analyze models, find duplicates, run inference, evaluate predictions, and develop custom plugins.
Comprehensive agents and skills for working with the Zarr array storage format
Computer vision image processing and analysis
AI-assisted single-cell RNA-seq analysis with CellWhisperer: dataset processing, cell type scoring, and interactive exploration.
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Self-documenting, self-improving framework for analytical repositories
[![Github Actions][github-actions-image]][github-actions-url]
See this gitbook for documentation.
You can run the server yourself on most reasonably new computers (Mac, Linux, PC). The GPU workers (e.g. Cellpose, Piscis) only work on Linux and possibly Windows, but will fall back to CPU if no GPU is (properly) installed.
The typical install time is probably around 1-2 hours.
Software requirements: Docker (latest version) (be sure to follow the post install instructions for Linux, and Node.js (latest version)
Optional (required for machine learning workers): CUDA for machine learning workers, NVIDIA docker toolkit
Supports all major browsers, including Chrome, Firefox, and Safari. Note that the SAM ViT-B tool requires WebGPU and so is only available on Chrome.
Will run on most Mac, Linux, and PC computers. GPU workers requires a GPU with NVIDIA 535 drivers installed, but will fall back to CPU if no properly installed GPU is detected. Strongly recommend at least 16GB of RAM. To handle very large images, we recommend servers with at least 64GB of RAM.
Install PNPM
npm i -g pnpm
Clone the repo and install node modules:
git clone https://github.com/arjunrajlaboratory/NimbusImage.git
cd NimbusImage
pnpm install
Compile C++ code to wasm with this command:
pnpm emscripten-build
This will run the command pnpm emscripten-build:release.
You can also run pnpm emscripten-build:debug to build with debug symbols.
The following will pull in the SAM models (from the UPennContrast directory):
mkdir -p public/onnx-models/sam/vit_b
cd public/onnx-models/sam/vit_b
wget "https://huggingface.co/rajlab/sam_vit_b/resolve/main/decoder.onnx" -O decoder.onnx
wget "https://huggingface.co/rajlab/sam_vit_b/resolve/main/encoder.onnx" -O encoder.onnx
Start docker images for the backend:
docker compose build
docker compose up -d
This will set up Girder (backend) running on http://localhost:8080
Then, to start the front end (development):
pnpm run dev
If you are on Linux, you may need to run the following:
cat /proc/sys/fs/inotify/max_user_watches
sudo sysctl fs.inotify.max_user_watches=1000000
sudo sysctl -p
You can now access NimbusImage by going to:
http://localhost:5173
To setup an environment for native C++ development for ITK, see itk/README.md.
For technical documentation about tools, see TOOLS.md.
Go to a new directory (NOT the UPennContrast directory) and run
git clone https://github.com/arjunrajlab/ImageAnalysisProject
chmod +x build_machine_learning_workers.sh
chmod +x build_workers.sh
./build_machine_learning_workers.sh
./build_workers.sh
That will install all the workers. The machine learning workers will run on CPU on Linux if a GPU is not available, although will run much more slowly.
IMPORTANT: by default, a admin user will be created with the name admin and the password password. You can use that user to initially log into the system. For security, it is critical to add a new admin user in Girder and then remove the original admin user. To do this, go to localhost:8080, where you can sign into Girder, then go to the Users tab on the left.
Test dataset with RNA FISH images Test N-dimensional dataset with GFP labeled nuclei
Girder will create an assetstore in which all the data is stored.
To change the default settings of the landing pange for unauthenticated users, create a .env file following this pattern:
VITE_GIRDER_URL=http://localhost:8080
VITE_DEFAULT_USER=User
VITE_DEFAULT_PASSWORD=Password
VITE_ZENODO_SAMPLES="nimbusimagesampledatasets"
The users that already opened the app once will have the field "Girder Domain" filled with the last domain they used. Otherwise, the VITE_GIRDER_URL variable will be used. If the default user and password are set, the app will try to log in with these credentials.
To compile for production, run this command:
pnpm build