Repo for software used in the Chung Lab's Shield paper
This is a collection of the software used in the Chung Lab’s 2018 Shield paper. It is packaged as a docker container (see https://www.docker.com/) so that it can be easily and accurately deployed in labs with a minimum of IT administration support. The dockerfiles can also be used as recipes to build the components.
The software handles the following tasks:
Stitching and destriping volumes acquired from a SPIM microscope or similar. Destriping is performed using PyStripe (https://github.com/chunglabmit/pystripe). The stitching alignment is performed using Terastitcher (https://github.com/abria/TeraStitcher) and the aligned volume is written to disk using TSV (https://github.com/chunglabmit/tsv).
Alignment to the Allen Brain Atlas. This is done using Nuggt (https://github.com/chunglabmit/nuggt). The alignment pipeline that was used is outlined here: https://github.com/chunglabmit/nuggt#alignment-pipeline
Segmentation. The shield-2018 package includes a command, shield-2018-segmentation, that was used to find putative cell centers in the paper. These were then proofread using nuggt. The method robustly finds roughly spherical light objects against a dark background but finds false positives in areas of fiber. It is suggested that users supplant this with either manual editing or a machine-learning method that classifies true and false positive detections. The command parameters are detailed below.
Assignment of detections to the atlas. This is done using the count-points-in-region command.
The preferred method of installation of shield-2018 is as a docker container. If you have Docker installed, this is available as
> docker pull chunglabmit/shield-2018
A typical invocation might be
docker run -v /path-to-stack:/stack \
-v /path-to-output:/output \
chunglabmit/shield-2018 \
shield-2018-segmentation \
--input /stack/img_*.tiff \
--output /output/result.json
Commands from the Terastitcher and Nuggt packages can also be run from this docker. See the Nuggt documentation and the tutorial for more help.
The shield-2018-segment command finds cell centers in a stack of images. The output is a .json file containing a list of lists with each element of the inner list being the Z, Y and X coordinate of one of the cell centers. The format of the command is:
shield-2018-segment \
--input <input-stack-expression> \
--output <output-filename> \
[--block-size-x <block-size-x>] \
[--block-size-y <block-size-y>] \
[--block-size-z <block-size-z>] \
[--crop-x <crop-x>] \
[--crop-y <crop-y>] \
[--crop-z <crop-z>] \
[--padding <padding>] \
[--io-threads <io-threads>] \
[--processing-threads <processing-threads>] \
[--t1min <t1min>] \
[--t1max <t1max>] \
[--t2min <t2min>] \
[--t2max <t2max>] \
[--dog-low <dog-low>] \
[--dog-high <dog-high>] \
[--log-level <log-level>] \
[--log-file <log-file>] \
[--log-format <log-format>]
where
--crop-x 1000,3000
processes the portion of the stack from x=1000 to
x=3000.--dog-high
switch. The default is 30.The alignment for the Shield paper was done using files derived from the Allen Brain Mouse Atlas (2018). These files are available via the GIT repository, https://github.com/chunglabmit/shield-2018-assets See the README.md file for more details.
The docker image stores these files at /allen-brain-mouse-atlas in its filesystem, so they are readily available for use in the Nuggt alignment commands.