Using napari¶
napari is a general purpose interactive image viewer for Python with some support for cryoET data formats and for streaming data from remote storage services like AWS-S3. We added some extra tools and documentation to help use napari with the CryoET Data Portal.
Installation¶
Installing complex Python packages like napari can be difficult, especially as it and its dependencies evolve over time.
We strongly recommend isolating your installation in an environment to manage this complexity.
If you followed the quick start guide and already created a virtual environment to install the cryoet-data-portal
package, you may be able to reuse that environment for installing napari.
However, many napari users and developers use the conda
environment manager, so we recommend that here instead.
Download and install miniconda and run the following commands to create and activate a conda environment.
conda create -y -n napari-env -c conda-forge python=3.9
conda activate napari-env
From here, installing the latest version of napari with pip
should work for most platforms.
pip install -U "napari[all]"
Attention
For ARM macOS (Apple Silicon), pre-built packages of Qt5 are not available on PyPI, so the above command will fail. Instead, either install Qt6 separately with the following two commands
pip install -U napari
pip install -U PyQt6
or use conda
or mamba
as described in the latest napari installation instructions.
After successful installation, open napari by simply running
napari
from the command line. Also see the main napari documentation for other ways to run napari.
If you run into problems with the commands above, see the latest napari documentation for more detailed installation instructions or reach out to cryoetdataportal@chanzuckerberg.org
Plugins¶
napari has some built-in functionality, but relies heavily on an ecosystem of plugins to provide support for the wide variety of data formats in the scientific imaging community.
For the CryoET Data Portal, we recommend installing two plugins to read the formats used to store tomograms.
pip install -U napari_mrcfile_reader napari_ome_zarr
After installing these two plugins, you should be able open tomograms from the data portal in both the MRC and OME-zarr formats. The simplest way to open local files and folders in napari is to drag and drop them onto napari’s main canvas. Alternatively, access napari’s file menu and click on Open File(s) or Open Folder items to select local files and folders.
Open a tomogram¶
Instead of opening files manually in napari, you can write Python to automate this process. The following code finds all tomograms with a particular annotator and minimum tomogram size using the Python client and opens the first one in napari.
Attention
This example depends on installing the napari-ome-zarr plugin mentioned above.
import napari
from cryoet_data_portal import Client, Tomogram
client = Client()
# Find all tomograms with annotations by Sara Goetz and at least 300 voxels
# in the Z dimension
tomograms = Tomogram.find(
client,
[
Tomogram.run.annotations.authors.name._in(["Sara Goetz"]),
Tomogram.size_z > 300,
],
)
for tomo in tomograms:
print(tomo.name)
print(tomo.size_z)
url = tomo.https_omezarr_dir
viewer = napari.Viewer()
viewer.open(url, plugin="napari-ome-zarr")
break
napari.run()
After running this from the command line, napari should open and display the multi-scale OME-zarr tomogram after printing the run name and z-size
TS_026
1000
though this may take a while depending on your network connection.
Data portal plugin¶
We also built a plugin that lets you browse the CryoET Data Portal in napari to quickly display tomograms, annotations, and metadata
This plugin can be installed from PyPI by running
pip install -U napari-cryoet-data-portal
After installation, navigate to napari’s Plugins menu and click on the CryoET Data Portal item to open the browser.
See the plugin’s README for details on how to use it.