{"id":29227214,"url":"https://github.com/royerlab/dexp","last_synced_at":"2025-07-03T09:10:16.757Z","repository":{"id":37072593,"uuid":"196109847","full_name":"royerlab/dexp","owner":"royerlab","description":"Dataset EXploration \u0026 Processing","archived":false,"fork":false,"pushed_at":"2023-05-11T00:15:18.000Z","size":5055,"stargazers_count":32,"open_issues_count":12,"forks_count":6,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-12T22:49:52.247Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://royerlab.github.io/dexp","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/royerlab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-07-10T01:41:20.000Z","updated_at":"2025-03-13T03:41:57.000Z","dependencies_parsed_at":"2025-04-13T13:14:18.097Z","dependency_job_id":"ea9ece7d-bd12-4d55-a4ab-3cb6ac5abb1a","html_url":"https://github.com/royerlab/dexp","commit_stats":null,"previous_names":[],"tags_count":49,"template":false,"template_full_name":null,"purl":"pkg:github/royerlab/dexp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royerlab%2Fdexp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royerlab%2Fdexp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royerlab%2Fdexp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royerlab%2Fdexp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/royerlab","download_url":"https://codeload.github.com/royerlab/dexp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/royerlab%2Fdexp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260355367,"owners_count":22996465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-03T09:10:14.985Z","updated_at":"2025-07-03T09:10:16.741Z","avatar_url":"https://github.com/royerlab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![fishcolorproj](https://user-images.githubusercontent.com/1870994/113943035-b61b0c00-97b6-11eb-8cfd-ac78e2976ebb.png)\n# **dexp** | light-sheet Dataset EXploration and Processing\n\n**dexp** is a [napari](https://napari.org/), [CuPy](https://cupy.dev/), [Zarr](https://zarr.readthedocs.io/en/stable/), and [DASK](https://dask.org/) based library for managing, processing and visualizing light-sheet microscopy datasets. It consists in light-sheet specialised image processing functions (equalisation, denoising, dehazing, registration, fusion, stabilization, deskewing, deconvolution), visualization functions (napari-based viewing, 2D/3D rendering, video compositing and resizing, mp4 generation), as well as dataset management functions (copy, crop, concatenation, tiff conversion). Almost all functions are GPU accelerated via [CuPy](https://cupy.dev/) but also have a [numpy](https://numpy.org/)-based fallback option for testing on small datasets. In addition to a functional API, DEXP offers a command line interface that makes it very easy for non-coders to pipeline large processing jobs all the way from a large multi-terabyte raw dataset to fully processed and rendered video in MP4 format.\n\n\n## How to install **dexp**\n\n### Prerequisites:\n\n**dexp** works on OSX and Windows, but it is recomended to use the latest version of Ubuntu.\nWe recommend a machine with NVIDIA graphics card with at least 12G.\n\nFirst, make sure to have a [working python installation](https://github.com/royerlab/dexp/wiki/Installing-Python).\nSecond, make sure to have a compatible and functional [CUDA installation](https://github.com/royerlab/dexp/wiki/Installing-CUDA)\n\nOnce these prerequisites are satified, you can install **dexp**.\n\n### Installation:\n\n**dexp** can simply be installed with:\n\n```\npip install dexp\n```\n\nTo installs **dexp** with GPU support, the optional features and colored console output:\n```\nconda install cupy\npip install dexp[optional,colored]\n```\n\n**For OSX users:** Before installating dexp, you will first need to install cairo:\n```\nbrew install cairo\n```\n\n### Quick conda environment setup and installation:\n\nThere are multiple options when using a conda environment:\n\n- You can create our suggested DEXP (and some additional packages) environment by, it requires GPU:\n\n   ```\n   conda env create --name dexp --file env-linux-gpu.yaml\n   ```\n\n- Or create your own conda environment from scratch with the following commands delete any existing dexp environment, recreate it, install **dexp** with CUDA support and [napari](https://napari.org/):\n   ```\n   conda deactivate\n   conda env remove --name dexp\n   conda create -y --name dexp python=3.9\n   conda activate dexp\n   conda install cupy\n   pip install dexp[optional,colored]\n   pip install napari[all]\n   ```\n\n   If you are having problems with the cuda/cuda-toolkit the best is to use conda to install the correct version of the cudatoolkit:\n   ```\n   conda install -c conda-forge cudatoolkit==11.2.2\n   ```\n   You can check [here](https://anaconda.org/conda-forge/cudatoolkit/files) for the best matching version.\n\n   Notes:\n   - You might get some error messages recommending you install missing libraries such as CUDNN, CuTensor, nccl, etc... These messages often come with instructions on what to do.\n   - Adjust your driver version (here 11.2) to your card(s) and drivers.\n   - Windows users should call `conda install -c conda-forge pyopencl` before running the second to last step.\n\n### Leveraging extra CUDA libraries for faster processing:\n\nIf you want you **dexp** CUDA-based processing to be even faster, you can install additional libraries such as CUDNN and CUTENSOR\nwith the following command:\n\n```\nconda install -y -c conda-forge cudnn cutensor nccl\n```\n\nor\n\n```\ndexp-install cudalibs 11.2\n```\n\nChange the CUDA version accordingly.\n\n### **dexp** Zarr dataset structure\n\nThe zarr datasets injested and written by **dexp** are organized as below:\n\n```bash\n/ (root)\n └── channel1 (group)\n     ├── channel1 (array)\n     ├── channel1_projection_0 (optional)\n     ├── channel1_projection_1 (optional)\n     └── channel1_projection_2 (optional)\n  └── channel2 (group)\n     ├── channel2 (array)\n     ├── channel2_projection_0 (optional)\n     ├── channel2_projection_1 (optional)\n     └── channel2_projection_2 (optional)\n  └── more channels ...\n```\n\nChannels (zarr group) could be of a particular emission color (e.g. DAPI, GFP, etc), or/and of a particular imaging views\n(e.g. view1 and view2 in a dual view acquisition).\nUnder each channel group, there could be multiple zarr array. The array that has the same name as the group name is typically\na n-dimentional stack (e.g. time-z-y-x). The projections of that nd array are optional (useful for quick exploration of the\nnd stack). When writting output datasets **dexp** automatically generates these projections. Future versions of **dexp** might\nadd more such convenience arrays, high in the list is of course downscaled version sof the stacks for faster visualisation and\nbrowsing...\n\nNote: Our goal is to eventually transition to a ome-zarr and/or ngff storage by defaut for both reading and writting.\nFor reading we have also support for specific dataset produced by our light-sheet microscopes, see [here](https://github.com/royerlab/dexp/wiki/dexp-dataset-formats) for supported microscopes and formats. This is currently limited but contributions are very welcome!\n\n\n### DaXi\nDEXP supports processing datasets acquired on the [DaXi microscope](https://github.com/royerlab/daxi) ([paper](https://www.biorxiv.org/content/10.1101/2020.09.22.309229v2)).\nYou can test processing of DaXi data using an [example dataset](https://drive.google.com/drive/folders/1c-xtJd4INtTll1s1HEbs1rIRF2M7Hg1X)\n\n\n### Versions\n\nThe list of released versions can be found [here](https://pypi.org/project/dexp/#history). The version format is: YYYY.MM.DD.M where YYYY is the year, MM the month, dd the day, and M is the number of elapsed minutes of the day. Git tags are automatically set to link pipy versions to github tagged versions so that the corresponding code can be inspected on github, probably the most important feature. This is a very simple and semantically clear versionning scheme that accomodates for a rapid rate of updates.\n\n### How to use **dexp** ?\n\nIn depth documentation can be found [here](https://royerlab.github.io/dexp/index.html) for both command line  commands and for the python API.\n\n### Contributors:\n\nJordao Bragantini, Ahmet Can Solak, Bin Yang, and Loic A Royer\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froyerlab%2Fdexp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froyerlab%2Fdexp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froyerlab%2Fdexp/lists"}