Pipeline for tissue extraction and analysis of surfaces from volumetric mircroscopy data using blender
Project description
blender-tissue-cartography
What this tool does
Tissue cartography extracts and cartographically projects curved surfaces from volumetric image data. This turns your 3d data into 2d data which is much easier to visualize, analyze, and computationally process. Tissue cartography is particularly useful in developmental biology, analyzing 3d microscopy data by taking advantage of the laminar, sheet-like organization of many biological tissues. For more on tissue cartography, see our methods paper, Heemskerk & Streichan 2015 and Mitchell & Cislo 2023.
blender_tissue_cartography comprises an add-on to do tissue
cartography using the popular 3d creation software
blender, a python library for creating
custom/automatized analysis pipelines, and a set of template analysis
pipelines/tutorials.
Work in progress!
This project is a work in progress and may change rapidly. Please update regularly.
Installation
blender_tissue_cartography comprises both a Blender add-on and a
python library.
-
The add-on does tissue cartography 100% within the Blender graphical user interface. Use the add-on if you quickly want to process a new dataset, or if you are not a coding expert.
-
The python library allows expert users to develop custom or automatized pipelines.
System requirements Both the Python library and the add-on have no
minimum system requirements and can run on any modern laptop. For
processing volumetric image data, you will need sufficient RAM (at least
~4x of the size of the volumetric data, e.g. 8GB RAM dfor a 2GB
volumetric .tif file). Blender will run much faster if your computer
has a GPU. The MeshLab library which is required for some
(non-essential) operations is not available of new ARM Apple computers.
Blender add-on
-
Install the non-python programs: Blender 4.3 (pre-4.3 version will not work) and Ilastik. You do not need to install python or any python libraries.
-
From GitHub, download the file
blender_addon/blender_tissue_cartography-1.0.0-[XXX].zipwhere[XXX]is your operating system (e.g.linux_x64). You do not need to unpacl the.zip.- If your operating system is not available, you can also download
blender_addon/blender_tissue_cartography.py. In this case you will need to install the python libraryscikit-imagein Blender’s Python interface.
- If your operating system is not available, you can also download
-
Install the add-on: Click “Edit -> Preferences -> Add-ons -> Add-on Settings -> Install from disk” and select the
.zipfile you just downloaded (you don’t need to unpack it). -
Restart Blender. The add-on can now be found under “Scene -> Tissue Cartography”.
Python library
-
Install the non-python programs: Fiji (optional), Ilastik, Meshlab (optional), and Blender.
-
Install Python via anaconda/miniconda, if you haven’t already.
-
Install
blender_tissue_cartography: runpip install blender-tissue-cartographyin a command window. -
(Optional) Install extra Python library for
pymeshlab, required for some advanced (re)meshing functionality. This package is not available on new ARM Apple computers.- run
pip install pymeshlabin a command window
- run
The project is hosted on pip, with source code on GitHub.
Developer installation
If you want to extend blender_tissue_cartography:
-
Clone the github repository.
-
Create a
condaenvironment with all Python dependencies and install theblender_tissue_cartographymodule. Open a command window in theblender-tissue-cartographydirectory and type:conda env create -n blender_tissue_cartography -f environment.ymlconda activate blender_tissue_cartographypip install -e .
-
(Optional) Install extra Python library for
pymeshlab, required for some advanced functionality (remeshing and surface reconstruction from within Python).pip install pymeshlab- Note that this package is not available on new ARM Apple computers.
-
Install nbdev
Known issues
-
When using the add-on, please save your
.blendproject to disk before using any of the add-on functionality. Otherwise, Blender may crash. -
3D
.tiffiles loaded into Blender are not saved to the.blend(which would explode in size). If you close Blender, you need to reimport your 3D image data. -
Please report any issues or bugs you find on GitHub!
Documentation
-
Datasets and interactive Jupyter notebooks for the tutorials can be downloaded from GitHub
-
The methods paper explains the general idea of tissue cartography, the design of
blender_tissue_cartography, and shows several examples.
Basic usage
For a complete set of tutorials, see the documentation website.
Tissue cartography workflow
Tissue cartography starts with a 3D, volumetric image.
-
Create a segmentation of your 3D data to identify the surface you want to extract
-
Convert the segmentation into a mesh of your surface of interest
-
Cartographically unwrap the mesh into a 2D plane
-
Project your 3D data onto the unwrapped mesh
-
Visualize the results in 3D using blender or use the 2D projected data for quantitative analysis.
-
Batch process multiple 3D images (e.g. frames of a movie)
Blender add-on
The Blender add-on allows you to carry out steps 2-5 entirely within Blender. Here is a screenshot using the example Drosophila dataset:
Left: Projected 2D image. Center: 3D view of image data (volume bounding box, image slices, and extracted surface). Right: Tissue Cartography add-on panel.
In Blender, you can edit meshes and cartographic projections interactively - you can create a preliminary projection of your data automatically, and use it as guidance when editing your cartographic map in blender. Here, we edit the “seam” of our cartographic map based on the region occupied by cells during zebrafish epiboly (tutorial 6).
Dynamic datasets
blender_tissue_cartography also allows creating cartographic
projections of dynamic datasets (i.e. movies), where the surface of
interest can move or deform over time. The user creates a cartographic
projection for a reference timepoint which is transfered to all other
time-points using surface-to-surface registration algorithms. This
generates consistent projections across all timepoints - see tuorials
8
and
9.
Python library
For advanced users, the blender_tissue_cartography library allows
creating custom and automated tissue cartography pipelines, typically
run from a jupyter computational notebook (which can also serve as lab
notebook - notes, comments on the data). blender_tissue_cartography
also provides tools for correct quantitative analysis of image data on
curved surfaces.
Below is a screenshot to give you an idea of the workflow for the
example Drosophila dataset: Volumetric data in ImageJ (center),
jupyter computational notebook to run the blender_tissue_cartography
module (left), and blender project with extracted mesh and texture
(right).
Tutorials
Fully worked-out tutoruals are provided on the documentation
webpage.
Test data for the tutorials can be downloaded from the nbs/Tutorials/
directory.
For the Python library, tutorials take the form of jupyter computational
notebooks which you can download and run on your own computer (click the
green button “Code” to download a .zip.) To run a tutorial on your
computer, follow the installation instructions and then launch
jupyter and work
through the notebooks in the Tutorials directory in order. I
recommended being comfortable with running simple Python code (you don’t
have to do any coding yourself).
The tutorial notebooks can be used as templates for your own analysis pipelines. Here is an example of a jupyter computational notebook (left), and the created projection visualized in Blender (right).
Notes for Python beginners
-
You will need a working Python installation (see here: installing anaconda/miniconda, and know how to launch jupyter notebooks. You will run the computational notebooks in your browser. Here is a video tutorial
-
Create a new folder for each tissue cartography project. Do not place them into the folder into which you unpacked
blender_tissue_cartography- otherwise, your files will be overwritten if you want to update the software -
The repository contains two sets of notebooks: in the
nbsfolder and in thenbs/Tutorialsfolder. Thenbs-notebooks are for developing the code. If you don’t want to develop/adapt the code to your needs, you don’t need to look at them. Copy a notebook from thenbs/Tutorialsfolder - e.g.03_basics_example.ipynb- into your project folder to use it as a template. -
You do not need to copy functions into your notebooks manually. If you follow the installation instructions, the code will be installed as a Python package and can be “imported” by Python. See tutorials!
Software stack
Note: the Python libraries will be installed automatically if you follow the installation instructions above.
Required
- Python, with the following libraries
- Ilastik Image classification and segmentation,
- Blender Mesh editing and UV mapping.
Optional
-
Meshlab GUI and Python library with advanced surface reconstruction tools (required for some workflows).
-
Python libraries:
Other useful software
- MicroscopyNodes plug-in
for rendering volumetric
.tiffiles in blender - Boundary First Flattening advanced tool for creating UV maps with graphical and command line interface
- pyFM python library for
mesh-to-mesh registration (for dynamic data) which may complement the
algorithms that ship with
blender_tissue-cartography
Acknowledgements
This software is being developed by Nikolas Claussen in the Streichan lab at UCSB. We thank Cecile Regis, Susan Wopat, Noah Mitchell, An Yan, Pieter Derksen, Matthew Lefebvre, Sean Komura, Gary Han, Boris Fosso, and Dillon Cislo, for sharing data, advice, and software testing.
Citation
If you use blender_tissue_cartography for your work, please cite:
Nikolas Claussen, Cécile Regis, Susan Wopat, and Sebastian Streichan: Blender tissue cartography: an intuitive tool for the analysis of dynamic 3D microscopy data. bioRxiv 2025.02.04.636523; doi: https://doi.org/10.1101/2025.02.04.636523
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file blender_tissue_cartography-0.0.4.tar.gz.
File metadata
- Download URL: blender_tissue_cartography-0.0.4.tar.gz
- Upload date:
- Size: 66.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d75b7e85b1fc938aefdf01c6e32f75aadbe0d94bfcd7d57fd4b33e498d5a044b
|
|
| MD5 |
5bae5c876f799c6f0ebe78bf582ae9c2
|
|
| BLAKE2b-256 |
a2c659ef108e60ec63626dfb41ea0b059057f5c043e7c94b2c3a5a9158200ccc
|
File details
Details for the file blender_tissue_cartography-0.0.4-py3-none-any.whl.
File metadata
- Download URL: blender_tissue_cartography-0.0.4-py3-none-any.whl
- Upload date:
- Size: 69.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36d29fda65b46d64a159eaae01c9bfc53c16cc078fd600796639c656ddce6127
|
|
| MD5 |
3e52eebcf32e75a2191f912e938e72b8
|
|
| BLAKE2b-256 |
084eac9659ae9974a2138bc4f4ff79005ea27a7086fa7b1c6354d488aeda234c
|