-
Notifications
You must be signed in to change notification settings - Fork 6
make population average
A population average consists of the mean intensity image of baseline volumes that have been mapped into the same space. It provides a representative image that has high signal/noise ratio which is amenable to manual/semi automatic segmentation.
A population average is required by LAMA for phenotype detection for mapping baselines and mutants into the same space.
To create a population average, we use the process of gradual refinement using rigid, then non-rigid registration as described here. In contrast to registration for phenotype-detection where the target remains the same throughout the process, the outputs from each stage are averaged to form the target for the subsequent stage.
We provide our previously made population averages and label maps from C57/Bl6N embryos:
E14.5 @ 14μm resolution
E18.5 coming soon
An E15.5 @ 28μm population average and label map has also been created by Michael Wong et. al., At The Centre for Phenogenomics
If you want to create your own population average you will need several baselines volumes. The more specimens you have, the better the final result will be. Around 15 or more specimens should be enough.
- Ensure all volumes have the same dimensions.
- Place the baseline volumes into folder named inputs and put in a project folder along with the config file.
Then
$ lama_reg.py -c path/to/config
See the registration page for details about the config
To tell lama to make a population average set the following .
generate_new_target_each_stage: true
Also, for population average construction, each resolution of the deformable stage in the config must be its own stage.
For example below, these are the two first deformable resolotions. Note each stage has NumberOfResolutions = 1 In this way the target will get rebuilt after each resoltuion.
### def1
[[registration_stage_params]]
stage_id = "deformable_128"
[registration_stage_params.elastix_parameters]
Registration = "MultiResolutionRegistration"
NumberOfResolutions = 1
NumberOfSpatialSamples = 200000
MaximumStepLength = 3.0
NumberOfGradientMeasurements = 10
NumberOfSamplesForExactGradient = 20000
NumberOfJacobianMeasurements = 4000
MaximumNumberOfIterations = 250
AutomaticParameterEstimation = "true"
UseAdaptiveStepSizes = "true"
ASGDParameterEstimationMethod = "DisplacementDistribution"
Transform = "BSplineTransform"
Metric = "AdvancedMattesMutualInformation"
FinalGridSpacingInVoxels = 128
##def2
[[registration_stage_params]]
stage_id = "deformable_64"
inherit_elx_params = "deformable_128"
[registration_stage_params.elastix_parameters]
FinalGridSpacingInVoxels = 64
...
An output/averages folder will be created (along with many more, which you can delete if you only want the population average volume). The final population average with the same name as the last stage of registration e.g deformable.nrrd
Manually labeling the population average can be done using ITK-SNAP