07-08, 08:00–12:00 (US/Pacific), Ballroom D
With cameras in everything from microscopes to telescopes to satellites, scientists produce image data in countless formats, shapes, sizes, and dimensions. Python provides a rich ecosystem of libraries to make sense of them. napari is a Python library for multidimensional image visualization, but it does double duty as a standalone application that can be easily extended with GUI tools for analysis, visualization, and annotation. In this tutorial, we'll start with the basics of image visualization and analysis in Python, then show how to extend the napari user interface to make analysis workflows as easy as pushing a button, and finally show how to share these extensions as plugins, which can be easily installed by users and collaborators. If you work with images (particularly multidimensional images), and especially if you work with scientists who may not be comfortable with Python, this tutorial might be for you!
Just like we take more pictures of food than we will ever look at, scientists are using powerful microscopes, telescopes, satellites, MRI machines and myriad other sensors to produce more images than they can ever look at. These images come in different file formats, they might be 3D, contain a timelapse component, many different channels, or other features that increase the complexity of loading them for visualization. Even when specialised viewers provide ways to load these images and look at them, analyzing them and visualizing the results of these analyses can still be a challenge.
This tutorial is aimed at folks who have some experience in scientific computing with Python. To get the most out of it, you should be familiar with NumPy arrays, Jupyter notebooks, and Python scripts. Ideally, you should have some idea of how images can be represented as arrays of numbers, and the types of analyses that might be performed on these arrays e.g. filtering and segmentation. You don’t necessarily need to be familiar with how these tools and methods work - it’s enough to know that they are out there!
The tutorial will be split into three main parts, each around an hour to 75 minutes long. Each part will cover a different aspect of how napari can be used to simplify your analysis workflows, and the workflows of your colleagues and coworkers.
Part 1: Using Python and napari to view and analyze imaging data
In this section we will look at opening and viewing 2D, 3D and even 4D images in napari. We will see how different layer types can help you display your analysis results, how Jupyter notebooks can streamline your image processing, and how napari’s plugins can help you access different analyses through the napari viewer.
Part 2: Customizing your analysis workflow by extending napari’s functionality
We will teach you how to customize your analysis workflow by adding new keybindings and mouse bindings to napari, and adding event handlers that can listen for different layer and viewer events. Finally, we will show you how easy it can be to add your own GUI widgets with minimal code.
Part 3: Distributing your customized functionality with plugins
Once you’re happy with your customized analysis tools, you may want to distribute them to other colleagues and coworkers, or to napari users at large! This section will cover how to package your custom bits of code into pip-installable napari plugins.
Preliminary installation instructions can be found at this link
Prerequisites –- Some experience with scientific computing in Python
- Familiarity with executing Jupyter notebooks and Python scrips
- Familiarity with NumPy arrays
I am a postdoctoral researcher at the University of Minnesota studying brain development in the Department of Pediatrics. When I'm not at the lab bench, I spend most of my time supporting other biologists doing my passion, microscopy and bio-image analysis. I learned Python to unify image processing and data analysis and have fallen in love with the open-source community. To this end, I have begun to contribute to the n-dimensional image viewer napari and its plugin ecosystem with my own tool, napari-ndev, intended to (batch) process bioimages from start to finish with no coding necessary. I hope to bring accessible, high-quality, reproducible science to all, regardless of their experience with programming.
I'm currently a PhD student working on timelapse microscopy data analysis, and I've been learning and working with Python for almost a decade now! I love the open-source community and everything it has to offer the world, and I've been lucky enough to make my own contributions to the community as a core developer for napari - an n-dimensional image viewer written entirely in Python. I'm passionate about making coding more accessible for scientists who want to make their own lives easier, and I love teaching everything from the fundamentals to the nitty gritty.
Peter is a napari core developer and a Systems Analyst in the Imaging Applications and Machine Learning team in Research IT at The Jackson Laboratory. In this day job, Peter supports users of open source imaging applications and workflows, both on local devices and on HPC. He also runs workshops to help users ease into the various applications. As a napari core developer, he focuses on user-facing bugs and issues, UI/UX, documentation, etc.