Skip to content
John Bogovic edited this page Aug 21, 2018 · 20 revisions

JRC2018 Fly brain template

Central brain

We have generated a unisex, female, and male central brain template.

Image file locations

All images are located in this directory:
/groups/saalfeld/public/jrc2018

Copies saved as unsigned 16-bit integers are located in:
/groups/saalfeld/public/jrc2018/ushort

Resolution Unisex Female Male
0.1882680 um isotropic JRC2018_UNISEX_HRiso.nrrd JRC2018_FEMALE_HRiso.nrrd JRC2018_MALE_HRiso.nrrd
0.38 um isotropic JRC2018_UNISEX_38um_iso.nrrd JRC2018_FEMALE_38um_iso.nrrd JRC2018_MALE_38um_iso.nrrd
0.44 um isotropic JRC2018_UNISEX_40x.nrrd JRC2018_FEMALE_40x.nrrd JRC2018_MALE_40x.nrrd
0.6214809 um isotropic JRC2018_UNISEX_20x_gen1_iso.nrrd JRC2018_FEMALE_20x_gen1_iso.nrrd JRC2018_MALE_20x_gen1_iso.nrrd
0.6214809 x 0.6214809 x 1.0 JRC2018_UNISEX_20x_gen1.nrrd JRC2018_FEMALE_20x_gen1.nrrd JRC2018_MALE_20x_gen1.nrrd
0.5189161 um isotropic JRC2018_UNISEX_20xHR_iso.nrrd JRC2018_FEMALE_20xHR_iso.nrrd JRC2018_MALE_20xHR_iso.nrrd
0.5189161 x 0.5189161 x 1.0 um JRC2018_UNISEX_20xHR.nrrd JRC2018_FEMALE_20xHR.nrrd JRC2018_MALE_20xHR.nrrd

Bridge transformations

These bridges were computed with ANTs. These displacement fields and transform files are stored in the folders tabulated below. Also in the folder are copies of the transforms that work with CMTK's reformatx command. See this page for how the conversion was done.

The first template in each pair is the "target" for registration.

Bridge location
Female to Unisex /groups/saalfeld/public/jrc2018/transformations/jrc2018U-jrc2018F
Male to Unisex /groups/saalfeld/public/jrc2018/transformations/jrc2018U-jrc2018M
Female to Male /groups/saalfeld/public/jrc2018/transformations/jrc2018U-jrc2018M
Inter-template bridges
JRC18 F - JFRC10 /groups/saalfeld/public/jrc2018/transformations/jrc2018F-jrc2010
JRC18 M - JFRC10 /groups/saalfeld/public/jrc2018/transformations/jrc2018M-jrc2010
JRC18 F - JFRC13 /groups/saalfeld/public/jrc2018/transformations/jrc2018F-jrc2013
JRC18 M - JFRC13 /groups/saalfeld/public/jrc2018/transformations/jrc2018M-jrc2013
JRC18 F - FCWB /groups/saalfeld/public/jrc2018/transformations/jrc2018F-FCWB
JRC18 M - FCWB /groups/saalfeld/public/jrc2018/transformations/jrc2018M-FCWB

Examples

  • Female to unisex
/groups/saalfeld/public/jrc2018/code/femaleToUnisex <moving-image-in-jrc2018_MALE-space> <target-image-in-jrc_UNISEX-space> <output-file>
  • Male to unisex
/groups/saalfeld/public/jrc2018/code/maleToUnisex <moving-image-in-jrc2018_FEMALE-space> <target-image-in-jrc_UNISEX-space> <output-file>
  • Using CMTK (forward)
# As an example, transform the JRC2018-Female to JRC2018-Unisex
# Apply the forward transformation to the female template
reformatx -o jrc18F-in-unisex-space.nrrd \
   --floating JRC2018_FEMALE_40x.nrrd \
   JRC2018_UNISEX_40x.nrrd \
   /groups/saalfeld/public/jrc2018/transformations/jrc2018U-jrc2018F/jrc2018U-jrc2018F_Warp_cmtk.nrrd \
   /groups/saalfeld/public/jrc2018/transformations/jrc2018U-jrc2018F/jrc2018U-jrc2018F_GenericAffine_cmtk
  • Using CMTK (inverse)
# As an example, transform the JRC2018-Unisex to JRC2018-Female
# Apply the inverse transformation to the unisex template
reformatx -o jrc18U-in-female-space.nrrd \
   --floating JRC2018_UNISEX_40x.nrrd \
    JRC2018_FEMALE_40x.nrrd \
   -i /groups/saalfeld/public/jrc2018/transformations/jrc2018U-jrc2018F/jrc2018U-jrc2018F_GenericAffine_cmtk \
   /groups/saalfeld/public/jrc2018/transformations/jrc2018U-jrc2018F/jrc2018U-jrc2018F_Warp_cmtk.nrrd

VNC

We have generated unisex, female and male ventral nerve cord templates, in this directory:

/groups/saalfeld/public/jrc2018VNC/ushort

Image file locations

Resolution Unisex Female Male
0.1882680 um isotropic JRC2018_VNC_UNISEX_HRiso.nrrd JRC2018_VNC_FEMALE_HRiso.nrrd JRC2018_VNC_MALE_HRiso.nrrd
0.461122 x 0.461122 x 0.700000 um JRC2018_VNC_UNISEX_447.nrrd JRC2018_VNC_FEMALE_447.nrrd JRC2018_VNC_MALE_447.nrrd
0.4 x 0.4 x 0.4 um JRC2018_VNC_UNISEX_4iso.nrrd JRC2018_VNC_FEMALE_4iso.nrrd JRC2018_VNC_MALE_4iso.nrrd

Bridge transformation

Bridge location
Female to Unisex /groups/saalfeld/public/jrc2018VNC/transformations/jrc2018U-jrc2018F
Male to Unisex /groups/saalfeld/public/jrc2018VNC/transformations/jrc2018U-jrc2018M
Female to Male /groups/saalfeld/public/jrc2018VNC/transformations/jrc2018U-jrc2018M

Examples

  • Female to unisex
/groups/saalfeld/public/jrc2018/code/femaleToUnisexVNC <moving-image-in-jrc2018_MALE-space> <target-image-in-jrc_UNISEX-space> <output-file>
  • Male to unisex
/groups/saalfeld/public/jrc2018/code/maleToUnisexVNC <moving-image-in-jrc2018_FEMALE-space> <target-image-in-jrc_UNISEX-space> <output-file>

Analysis

Central brain

We compared the various templates and registration algorithms with respect to quality and run time. The winners are (sorted by increasing run time):

  • CMTK Hideo - JRC2018
  • CMTK COG - JRC2018
  • ANTs Dog - JRC2018

The winners are (sorted by decreasing quality / increasing speed ):

  • ANTs Dog - JRC2018
  • CMTK COG - JRC2018
  • CMTK Hideo - JRC2018

This means that the fastest algorithm has the lowest quality and the slowest has the highest quality. We suggest trying the fastest algorithm (CMTK Hideo) first for any given brain. If the quality is not convincing, try the second fastest (CMTK COG). If the quality is not convincing, try the third (ANTs Dog). The scripts to perform the registration are here:

  1. cmtkHideo
  2. cmtkCOG
  3. ANTs Dog

We recommend registering each brain to the M/F template rather than directly to the unisex template.

Resolution

We have preliminary tests measuring registration quality across different resolutions: (0.6um, 1.2um, and 2.4um isotropic) using the cmtkCOG as the registration algorithm, and found that quality was nearly identical for all three resolutions.

Ventral nerve cord

We have not yet done evaluation, but expect the conclusions drawn for the central brain will apply for the VNC as well

General code and scripts

  • Register and render:
    • /groups/saalfeld/public/jrc2018/code/runRegistrationAndRender
    • runRegistrationAndRender -m <moving image> -t <target image> -s <image defining space to render into> -o <output name> -r <registration script>
    • Example using cmtk: /groups/saalfeld/public/jrc2018/examples/cmtk_registration_and_render/run
  • Run registration at one resolution, produce output at a different resolution:
    • /groups/saalfeld/public/jrc2018/examples/transforms_and_bridges/registerRender
  • Script that downsamples highest resolution images
    • /groups/saalfeld/public/jrc2018/code/downsampling
  • How to downsample an image
    • downsampleGauss -i <input image> -o <output image> -r "rx,ry,rz" -j <number of threads (optional)>
      • where rx, ry, and rz are the desired x, y, and z-resolutions
      • See registerRender script above for examples