imaris_extensions
Algorithmic and Utility Extensions for the Imaris Program
Science Score: 85.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 6 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
✓Committers with academic emails
2 of 3 committers (66.7%) from academic institutions -
✓Institutional organization owner
Organization niaid has institutional domain (www.niaid.nih.gov) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (17.1%) to scientific vocabulary
Keywords from Contributors
Repository
Algorithmic and Utility Extensions for the Imaris Program
Basic Info
- Host: GitHub
- Owner: niaid
- License: apache-2.0
- Language: Python
- Default Branch: main
- Size: 422 KB
Statistics
- Stars: 18
- Watchers: 9
- Forks: 3
- Open Issues: 2
- Releases: 1
Metadata Files
README.md
SimpleITK Imaris Extensions
This repository contains extensions, plugins, for the Imaris (Oxford Instruments) microscopy image analysis program. They either provide additional image analysis capabilities via the open source SimpleITK image analysis library, or are utilities that allow the user to easily modify meta-data associated with images stored in the Imaris file format (e.g. channel names, colors).
The extensions are designed so that they can be run either as independent programs or via the Imaris extension mechanism. When run as independent programs they can be used on any of the standard operating systems (Windows/OSX/Linux).
Software development notes:
- We use the black code formatter to ensure uniform code style.
- The code is tested on Linux/OSX/Windows with Python versions 3.7 and 3.10.
- As the testing data is rather large, we use git-lfs. To obtain the data using standard git commands you will have to install git-lfs on your system.
- Details on how to contribute can be found here.
Downloading and Updating
- Using zip file:
Download the zip file for a specific release or the latest code's zip file. Replace older versions with the contents of the zip file (don't forget to keep the
run_extensions.bat,run_extensions.shfiles which you previously modified for your setup). - Using git:
Initially, clone repository using git (with GitHub account).
git clone https://github.com/niaid/imaris_extensions.gitUpdate to latest code:git pull - If updating, you will want to remove or rename the existing Python environment:
conda remove -n imaris --allorconda rename -n imaris old_imarisThen, recreate theimarisenvironment, step 2 in the setup instructions below.
How to Cite
If you find these extensions useful in your research, support our efforts by citing it as:
Z. Yaniv, B. Lowekamp, "SimpleITK Imaris Extensions", doi: 10.5281/zenodo.7854019.
Extensions Listing
⚠ WARNINGS
Avoid converting files into imaris format using a network or external drive, this has the potential to produce corrupt files that are hard to identify as such (unless you enjoy hours of debugging). This issue is not specific to the work found here. For more details see the XTRegisterSameChannel documentation.
Corrupt files will cause the extensions to fail with an error message "...OSError: Can't read data (inflate() failed)". In some cases imaris is able to read such files while the extensions fail to do so. A solution, that often works, is to read the file into imaris and then "Save as" to a new file which can then be read by the extensions.
Out of memory errors will cause the extensions to fail with an error message along the lines of "...Failed to allocate memory for image.". The minimal RAM size required to run an extension depends on the image sizes and the specific extension in use. For common image sizes, 16GB of RAM is often sufficient, 64GB or more is desirable. If memory size is not sufficient, consider increasing the size of the machine's virtual memory. Experience has shown us that some extensions, e.g. XTChannelArithmetic, do work on systems with only 8GB of RAM when configured appropriately (using a memory efficient slice-by-slice processing at the cost of longer runtimes).
Algorithms
- XTRegisterSameChannel - Registration of 2D or 3D images that share a common channel (correlation based affine alignment). Sample datasets are freely available on zenodo
. A video illustrating the usage of the extension is available on YouTube.
- XTChannelArithmetic - Perform channel arithmetic, and more advanced channel manipulations via short SimpleITK expressions (short SimpleITK programs).
- XTVirtualHEStain - Create a virtual H&E stain from a fluoresence image and add the RGB image as three new channels to the original image.
- More to come.
Utilities
- XTConfigureChannelSettings - Configure channel settings, name, description and visualization configuration specified via a csv file or an Imaris file.
- XTExportChannelSettings - Export channel settings, name, description and visualization configuration to a csv file. The resulting csv file can be easily edited and then applied to other imaris files using the XTConfigureChannelSettings extension.
- More to come.
Setup
- Install a Python version. The specific Python version you need depends on your version of Imaris (for us this is Python 3.7.0). Running the extensions as independent programs is less restrictive, requiring the use of Python version 3.6 or above.[Miniconda download].
- Configure and install the required Python packages.
- On Windows: open the Anaconda Prompt (found under the Anaconda3 start menu).
- On Linux/OSX: on the command line
source path_to_your_anaconda3/bin/activate basecd path_to_your_extensions_directory conda env create -f environment.yml- Configure Imaris to point to your Python executable and to the directory containing the extensions (see Imaris manual).
Note: this is an optional step, if you don't have the Imaris software on the specific machine you can still run the extensions. - Edit one of these files, set the path to your Python executable:
Windows:run_extensions.bat
OSX/Linux:run_extensions.sh
- Configure Imaris to point to your Python executable and to the directory containing the extensions (see Imaris manual).
- Run the relevant script:
Windows: double click the run_extensions.bat.
OSX/Linux: from a terminal, make the script executable chmod +x run_extensions.sh and run it ./run_extensions.sh.
Bonus: On OSX, you can configure things so that double clicking the script in Finder will run it. In Finder,
1. Right-click the run_extensions.sh file and select "Open with" and then "Other..."
2. Change the "Enable" dropdown menu from "Recommended Applications" to "All Applications".
3. Search for "Terminal" and select it (check the "Always Open With" if you want all shell scripts to be run via terminal, otherwise leave it unchecked).
Owner
- Name: National Institute of Allergy and Infectious Diseases (NIAID)
- Login: niaid
- Kind: organization
- Location: Bethesda, Maryland, USA
- Website: https://www.niaid.nih.gov
- Repositories: 40
- Profile: https://github.com/niaid
Citation (CITATION.cff)
cff-version: 1.2.0
title: "SimpleITK Imaris Extensions"
message: "If you find this software useful in your work, support our efforts by citing it using the following information."
type: software
authors:
- family-names: Yaniv
given-names: Ziv
orcid: 'https://orcid.org/0000-0003-0315-7727'
- family-names: Lowekamp
given-names: Bradley C.
orcid: 'https://orcid.org/0000-0002-4579-5738'
doi: 10.5281/zenodo.7854019
url: 'https://github.com/niaid/imaris_extensions'
GitHub Events
Total
- Watch event: 5
- Delete event: 1
- Push event: 4
- Pull request event: 5
- Create event: 1
Last Year
- Watch event: 5
- Delete event: 1
- Push event: 4
- Pull request event: 5
- Create event: 1
Committers
Last synced: 9 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Ziv Yaniv | z****v@n****v | 91 |
| Bradley Lowekamp | b****p@m****v | 2 |
| dependabot[bot] | 4****] | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 8
- Total pull requests: 79
- Average time to close issues: 6 months
- Average time to close pull requests: about 22 hours
- Total issue authors: 7
- Total pull request authors: 3
- Average comments per issue: 2.88
- Average comments per pull request: 0.0
- Merged pull requests: 78
- Bot issues: 0
- Bot pull requests: 4
Past Year
- Issues: 0
- Pull requests: 6
- Average time to close issues: N/A
- Average time to close pull requests: about 3 hours
- Issue authors: 0
- Pull request authors: 2
- Average comments per issue: 0
- Average comments per pull request: 0.0
- Merged pull requests: 6
- Bot issues: 0
- Bot pull requests: 2
Top Authors
Issue Authors
- zivy (2)
- Clob9100 (1)
- speranzaee (1)
- linjing-fang (1)
- rosedever (1)
- lfyqr (1)
- Noush-A (1)
Pull Request Authors
- zivy (73)
- dependabot[bot] (4)
- blowekamp (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- PySide2 *
- SimpleITK >=2.0.0
- docutils *
- h5py >=2.10.0
- matplotlib *
- numpy *
- openpyxl *
- pandas *
- pygments *
- qdarkstyle *
- black * development
- flake8 * development
- pre-commit * development
- pytest * development
- actions/cache v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- docutils
- h5py >=2.10.0
- matplotlib
- numpy
- openpyxl
- pandas
- pip
- pygments
- pyside2
- python 3.7.0.*
- simpleitk >=2.0.0