blik

blik

Python tool for visualising and interacting with cryo-ET and subtomogram averaging data.

logo

DOI Paper DOI License PyPI Python Version CI codecov

blik showcase

blik is a tool for visualising and interacting with cryo-ET and subtomogram averaging data. It leverages the fast, multi-dimensional napari viewer and the scientific python stack.

DISCLAIMER: this package is in development phase. Expect bugs and crashes. Please, report them on the issue tracker and ask if anything is unclear!

Installation

You can either install blik through the napari plugin system, through pip, or get both napari and blik directly with:

pip install "blik[all]"

The [all] qualifier also installs pyqt5 as the napari GUI backend, and a few additional napari plugins that you might find useful in your workflow:

Nightly build

If you'd like the most up to date blik possible, you can install directly from the main branch on github. This also uses napari main, so expect some instability!

pip install "git+https://github.com/brisvag/blik.git@main#egg=blik[all]"
pip install "git+https://github.com/napari/napari.git@main#egg=napari[all]"

Basic Usage

From the command line:

napari -w blik -- /path/to.star /path/to/mrc/files/*

The -w blik is important for proper initialization of all the layers. Always open the main widget open to ensure nothing goes wrong!

blik is just napari. Particles and images are exposed as simple napari layers, which can be analysed and manipulated with simple python, and most importantly other napari plugins.

Widgets

The main widget has a few functions:

  • experiment: quickly switch to a different experiment id (typically, everything related to an individual tomogram such as volume, particles and segmentations)
  • new: generate a new segmentation, a new manually-picked set of particles, or a new surface, sphere, or filament picking for segmentation, particle generation or volume resampling.
  • add to exp: add a layer to the currently selected experiment (just a shorthand for layer.metadata['experiment_id'] = current_exp_id)
  • slice_thickness: changes the slicing thickness in all dimensions in napari. Images will be averaged over that thickness, and all particles in the slice will be displayed.

There are also widgets for picking surfaces, spheres and filaments:

  • surface: process a previously picked surface picking layer to generate a surface mesh and distribute particles on it for subtomogram averaging, or resample a tomogram along the surface.
  • sphere: process a previously picked sphere picking layer to generate a sphere mesh and distribute particles on it for subtomogram averaging.
  • filament: process a previously picked filament picking layer to generate a filament and distribute particles on it for subtomogram averaging, or resample a tomogram along the filament.

If you use blik, please cite the repo on zenodo and the paper on Plos Biology: https://doi.org/10.1371/journal.pbio.3002447.

Version:

  • 0.9.1

Last updated:

  • 08 August 2024

First released:

  • 15 June 2021

License:

Supported data:

  • Information not submitted

Plugin type:

  • Information not submitted

GitHub activity:

  • Stars: 23
  • Forks: 8
  • Issues + PRs: 4

Python versions supported:

Operating system:

  • Information not submitted

Requirements:

  • cryohub>=0.6.4
  • cryotypes>=0.2.0
  • dask
  • einops
  • magicgui>=0.4.0
  • morphosamplers[segment]>=0.0.10
  • numpy
  • packaging
  • pandas
  • pydantic<2
  • scipy