https://github.com/arjunrajlaboratory/nimbusimage

UPenn ?

https://github.com/arjunrajlaboratory/nimbusimage

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

UPenn ?

Basic Info
Statistics
  • Stars: 11
  • Watchers: 6
  • Forks: 6
  • Open Issues: 125
  • Releases: 0
Created over 6 years ago · Last pushed 10 months ago
Metadata Files
Readme License

README.md

NimbusImage

Github Actions

Documentation

See this gitbook for documentation.

System requirements

General notes

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

Supported browsers

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.

Hardware requirements

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.

Development environment

Install PNPM sh npm i -g pnpm

Clone the repo and install node modules:

sh git clone https://github.com/arjunrajlaboratory/NimbusImage.git cd NimbusImage pnpm install

Compile C++ code to wasm with this command:

sh 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): sh 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:

sh 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):

sh pnpm run dev

If you are on Linux, you may need to run the following:

sh 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: sh 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.

To install the workers:

Go to a new directory (NOT the UPennContrast directory) and run sh 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.

Login details

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.

Demo and test data

Quick start Vignettes

Test dataset with RNA FISH images Test N-dimensional dataset with GFP labeled nuclei

Girder Defaults

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.

Compile and minify for production

To compile for production, run this command:

pnpm build

It will also produce a stats.html file at the root of the project. This file is generated by the rollup-plugin-visualizer. You can change the generated file by playing with the options of the plugin in vite.config.ts (see the github page of the plugin).

If you want to preview the production build:

pnpm run serve

You can now access NimbusImage by going to: sh http://localhost:4173

Lints and fixes files

pnpm lint:fix

Run typescript compiler

pnpm tsc

Customize configuration

See Configuration Reference.

Credits

NimbusImage has been developed by the lab of Arjun Raj at the University of Pennsylvania and Kitware. NimbusImage relies on Girder, an open-source content management system developed by Kitware, and its large_image plugin, which enables Girder to read, process, and serve image datasets at scale.

Owner

  • Name: Arjun Raj's systems biology lab
  • Login: arjunrajlaboratory
  • Kind: organization

GitHub Events

Total
  • Create event: 104
  • Commit comment event: 1
  • Issues event: 26
  • Watch event: 2
  • Delete event: 98
  • Member event: 1
  • Issue comment event: 62
  • Push event: 263
  • Pull request review event: 82
  • Pull request review comment event: 64
  • Pull request event: 201
Last Year
  • Create event: 104
  • Commit comment event: 1
  • Issues event: 26
  • Watch event: 2
  • Delete event: 98
  • Member event: 1
  • Issue comment event: 62
  • Push event: 263
  • Pull request review event: 82
  • Pull request review comment event: 64
  • Pull request event: 201

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 18
  • Total pull requests: 135
  • Average time to close issues: 8 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 2
  • Total pull request authors: 4
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.39
  • Merged pull requests: 100
  • Bot issues: 0
  • Bot pull requests: 3
Past Year
  • Issues: 12
  • Pull requests: 132
  • Average time to close issues: 5 days
  • Average time to close pull requests: 3 days
  • Issue authors: 2
  • Pull request authors: 3
  • Average comments per issue: 0.25
  • Average comments per pull request: 0.39
  • Merged pull requests: 100
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • arjunrajlab (17)
  • alievakrash (1)
Pull Request Authors
  • arjunrajlab (109)
  • pchoisel (19)
  • manthey (4)
  • dependabot[bot] (3)
Top Labels
Issue Labels
enhancement (5) bug (3)
Pull Request Labels
dependencies (3)

Dependencies

devops/girder/annotation_client/requirements.txt pypi
  • girder-client *
devops/girder/plugins/AnnotationPlugin/requirements-dev.txt pypi
  • docker *
  • girder >=3.0.13.dev6
  • girder >=3.0.4
  • girder-jobs >=3.0.3
  • tox *
devops/girder/plugins/AnnotationPlugin/setup.py pypi
  • girder_worker *
  • girder_worker_utils *
devops/girder/annotation_client/setup.py pypi
.github/workflows/node.yaml actions
  • actions/checkout v1 composite
  • actions/setup-node v1 composite
devops/girder/Dockerfile docker
  • girder/girder latest-py3 build