# Description of DAPI template This repository contains a three-dimensional population-based average atlas, the DAPI template, of the C57BL/6 mouse brain stained with the commonly employed fluorescence nuclear stain DAPI. The [DAPI template](./data/dapi_template.nii.gz), [accompanying segmentation](./data/dapi_template_segmentation_full.nii.gz), and a [simplified segmentation](./data/dapi_template_segmentation_simple.nii.gz) can be found as nifti files in ```data/```. Moreover, the repository contains all the raw data (```data/mice/```) and the full code base (```template_creation_pipieline/```) which was used in the construction of the template. The DAPI template, is constructued from consecutive coronal brain slices of 12 male mice aged between 10-11 weeks. Each mouse brain is first reconstructed into a three-dimensional volume and then an iterative averaging process of these reconstructed brain volumes was employed to yield the final population-based average. The repository also includes an automatic segmentation/spatial normalization pipeline (```automatic_segmentation_program/```) for novel coronal slices described below. You can also find a [guide](#overlay-with-allenccf) on how to visualize the AllenCCF on top of the DAPI template. # Automatic slice segmentation Program for automatic segmentation to a DAPI-stained coronal mouse brain slices. **Getting started** - [Setup your environment](#setting-up-the-environment) with the correct python version, python packages, and Advanced Normalization Tools (ANTs). - Download the and unzip the [example folder](./Example_folder.zip). - In a terminal window, navigate into the unzipped example folder. - Run the runner_example.sh with the command ```bash runner_example.sh``` - The automatically created segmentation can be found in ```Brain_example/Segmentation.nii```. - To visualize the segmentation, open one of the channels ```Brain_example/im_c2.nii``` as main image and open the segmentation image ```Brain_example/Segmentation.nii``` as segmentation. Can for instance be done in [ITK-SNAP](http://www.itksnap.org/). For detailed parameter and output description go to the [automatic segmentation program](./automatic_segmentation_program). ## Setting up the environment Below is a quick guide to setup the enviroment on a UNIX (Mac and Linux) system * The program requires Python 3.7+. You can get the newest version of python by installing Anaconda (https://www.anaconda.com). To check your version of python, type ```python --version``` * Install or update all packages listed in `requirements.txt`. All packages can be installed/updated using `pip`. To install a package, e.g. nibabel: ```pip install nibabel```. To check the version of a package ```pip freeze | grep nibabel``` * Install ANTs, preferably using precompiled binaries, available (for Mac/Linux) at [https://github.com/ANTsX/ANTs/releases/tag/v2.1.0](https://github.com/ANTsX/ANTs/releases/tag/v2.1.0) * Create ANTSPATH and add it to your path. This is done by editing the config file for the terminal shell. *The config-file is often named ```~/.bashrc``` or ```~/.bashprofile```*. In the config-file add the following lines ```sh export ANTSPATH=usr/local/bin/ANTs export PATH=$PATH:$ANTSPATH ``` Here, ANTs was installed in ```/usr/local/bin/ANTs```. After adding this to the config-file, restart the terminal and test if the path was added correctly by typing ```sh which antsRegistration ``` The correct path should then be printed. If permission is denied, the file needs to be made executable - this is done using the command ```chmod +x <...>/antsRegistration``` ## Prerequisites * A high-resolution, DAPI modality TIFF image of a coronal mouse brain slice. Can have multiple channels. * The DAPI template file (.nii or .nii.gz) * A segmentation of the DAPI template (.nii or .nii.gz) ## Usage Use runner.py to preprocess and output a segmentation registred to the slice. For detailed parameter and output description go to the [automatic segmentation program](./automatic_segmentation_program). ## Overlay with AllenCCF To visualize the Allen CCF on top of the DAPI template: 1. Download the [DAPI template](./data/dapi_template.nii.gz). 2. Download the current AllenCCF template in the desired resolution from the [download page](https://download.alleninstitute.org/informatics-archive/current-release/mouse_ccf/average_template/). 3. Download the [transformation](./ccf_to_dapi_affine_transformation.txt). 4. Apply the transformation to the AllenCCF template. Using *average_template_25.nrrd* as example, this can either be done with: **ANTs** ``` antsApplyTransforms \ -i average_template_25.nrrd \ -d 3 \ -r dapi_template.nii.gz \ -o average_template_25_registered_to_dapi.nii.gz \ -t ccf_to_dapi_affine_transformation.txt ``` **ITK-SNAP** 1. Open the DAPI template (*dapi_template.nii.gz*) in ITK-SNAP 2. Add the AllenCCF template (*average_template_25.nrrd*) as a seperate image (File->Add Another Image). 3. Open Tools->Registration, which will open a panel to the right. 4. In the bottom right, press the folder icon (*'Load transformation from file'*) and choose the transformation (*ccf_to_dapi_affine_transformation.txt*). 5. If you want to save the transformed AllenCCF, press the reslice icon (*'Reslice the moving...'*) and choose *ok*. Now you have 3 small images in the top right corner of each plane. Press the bottom one, press the little drop-down in the small image, and choose *'save image'*.