Collection of tools for working with microscopy data in jupyter notebooks.
Outside of this repo some useful tools are:
manual image segmentation: ipysegment
colony counting: skimage counter
colony counting2: web tool
choose points of interest and output files of the points: laser pointer
I prefer python over ImageJ/FIJI for analyzing microscopy images, but I really miss the nice interactive image viewing provided imagej. The point of this repo is keep all the microscopy image tools I might make in a single place. I'll strive to replicate the most useful manual interaction tools provided by ImageJ in such a way to be useful to an advanced python user. Three key goals:
- Limit distance to data
- Should always be trivial to extract the data from manual interaction to a numpy array
- Should feel good to use
- I don't want my tools to make me sad, only my experiment not working gets to do that...
- Doesn't look gross
- similar to the above, so many people have thought hard about web design surely I can make use of some of that.
Mostly created by looking through the options that FIJI provides and picking out the ones that seem useful and that aren't already sastified by something like scikit-image or just generic numpy functions
- Adjust image brightness and contrast
- skimage auto isn't always great, get whatever FIJI auto does
- Image Stack viewer
- Use PIMS to store image data
- Region of interest selectors
- ipysegment probably will be helpful for this.
- also see https://github.com/ideonate/jupyter-innotater for bounding boxes
- Basic image annotation (i.e. mspaint drawing)
- surely this already exists?
Need to make sure that everything exposes the relevant variables in such a way that they can be jslink
ed together in order to achieve goal 2.
I used the following bash commands to create envs. Add them to your .bashrc
, do source ~/.bashrc
and then run jlab-env-full micro
jlab-env-basic ()
{
conda create -n $1 --override-channels --strict-channel-priority -c conda-forge -c anaconda jupyterlab nodejs python mamba -y
conda activate $1
}
jlab-env-full ()
{
conda create -n $1 python -y
conda activate $1
conda install -c conda-forge mamba -y
mamba install -c conda-forge jupyterlab nodejs scipy matplotlib numpy ipympl pandas -y
pip install jupyterlab-git
jupyter labextension install @jupyter-widgets/jupyterlab-manager --no-build
jupyter lab build --name=$1
}