Projects:ARRA:SlicerEM:AtlasCreator:PCA
From NAMIC Wiki
Home < Projects:ARRA:SlicerEM:AtlasCreator:PCA
Contents
PCA functionality for the Atlas Creator
This content describes the PCA functionality of KilisSandbox.
Create environment for pcaModelling on Mac
$ tcsh % cd /Users/daniel/SLICER/TRUNK/Slicer3/Modules/KilisSandbox/scripts % source setEnvironment % /Users/daniel/SLICER/TRUNK/Slicer3-build/Slicer3 --launch xterm
pcaModelling Help
Main
$ pcaModelling Slicer home is /Users/daniel/SLICER/TRUNK/Slicer3-build ============================ Start PCADistance ======================= Always look at vtkEMPrivateSegment/projects/iccv05/TestExample to see example structure Now can read in raw data with extension .img load multiple volumes by doing -pr "<dir>/*/prefix" eg case*/I.001 - 001 is important bc file has to exist ============================= General Options -ld = load data - default: "1" -pr = file prefix (mandatory) -p2 = file prefix of second Volume -sv = saving output in file formate (sli, img, hdr (analyze), nhdr or nrrd (NRRD), mhd or mha (Meta), nii (Nifti), vtk) - default: nrrd -va = value for function, default: 0.0 ============================= -fc = function (mandatory) - possibilities: distance = Turns a labelmap into a distance map as needed for PCA modelling (*) generate = Generate the PCA model from the training data (*) model = Turns PCA analysis into 3D models (*) parameter = Extracts the PCA shape parameters from a shape representation (e.g. distance map) (*) representation = Determines the shape representation from the PCA shape parameters (*) view = View the PCA model (*) -HELP = help function If the description of a function has (*) then execute -HELP <function> for more detail, e.g. mathImage -HELP com Error: Currently function "" is not implemented ============================ End MathImage =======================
Questions:
- What is the general workflow of the PCA functions? First distance, then generate..?
- Can you give an example of commands which have to be executed during this workflow? (f.e. creating a PCA atlas using segmentations and originals folders?)
- Do we need to integrate all 6 functions in the Atlas Creator?
Distance functionality
$ pcaModelling -HELP distance Slicer home is /Users/daniel/SLICER/TRUNK/Slicer3-build ============================ Start PCADistance ======================= Always look at vtkEMPrivateSegment/projects/iccv05/TestExample to see example structure Now can read in raw data with extension .img load multiple volumes by doing -pr "<dir>/*/prefix" eg case*/I.001 - 001 is important bc file has to exist To transfere the labelmap into a distance map according to the PCA model please define the following values: -path = where should the file be save to -volume = defines the labelmap -va (first) = defines the label of interest -va (second) = Maximum value in the distance map in Euclidean norm (e.g. 100) -va (third) = Distance value of boundary (e.g. 10)
Questions:
- Does the program support .nrrd output and input?
- Do we transfer one label at a time to a distance map?
- Can the maximum and distance values get computed automatically or does the user have to enter them?
Generate functionality
$ pcaModelling -HELP generate Slicer home is /Users/daniel/SLICER/TRUNK/Slicer3-build ============================ Start PCADistance ======================= Always look at vtkEMPrivateSegment/projects/iccv05/TestExample to see example structure Now can read in raw data with extension .img load multiple volumes by doing -pr "<dir>/*/prefix" eg case*/I.001 - 001 is important bc file has to exist To generate the PCA the training data has to be organized the following way <PATH>/case*/<STRUCTURES>/I where -path defines <PATH> the different subjects have to be named case<No> -list defines the different <STRUCTURES> e.g. /projects/iccv05/TestExample/TestEMPCASeg/PCATraining/distance/case1/Background/I.* with -path = /projects/iccv05/TestExample/TestEMPCASeg/PCATraining/distance and -list (Background Foreground) In addition: -max defines the maximum number of Eigenvectors to compute -full defines the full image range, e.g. 1 124, where PCA might only be computed for 40 90 The results will be located in <PATH>/PCA<STRUCTURES> -combine = define all structures in one PCA model (= 1) or define a PCA model for each structure independently (=0) -va do you want to normalize the mean distance map so that it is a real distance map (generally a bad idea)
Questions:
- What does this step do?
- Can you explain the path? <PATH>/case*/<STRUCTURES>/I
- In the Atlas Creator, a case does not have subfolders for structures? Does it mean a threshold by label?
- What does the maximum number of Eigenvectors mean? Should the user specify it?
- Does the full image range switch calculate the PCA for all intensities?
- We probably want to define PCA for each label independently, correct?
- Should we include Normalization even if it is a bad idea? Why is it a bad idea?
Model functionality
$ pcaModelling -HELP model Slicer home is /Users/daniel/SLICER/TRUNK/Slicer3-build ============================ Start PCADistance ======================= Always look at vtkEMPrivateSegment/projects/iccv05/TestExample to see example structure Now can read in raw data with extension .img load multiple volumes by doing -pr "<dir>/*/prefix" eg case*/I.001 - 001 is important bc file has to exist To turn the shape representation into 3D models -list defines the <STRUCTURE> to be considered, e.g. Background -path defines the path of the location of the PCA directory where the subdirectory of PCA<STRUCTURE> define EigenValues_<STRUCTURE>.txt, EigenVector*, and MeanImage e.g. -path is /projects/iccv05/TestExample/TestEMPCASeg and all necessary files are located in /projects/iccv05/TestExample/TestEMPCASeg/PCABackground -max defines the maximum number of Eigenvectors to considere -combine just set this parameter if you have one PCA model for multiple structures bc the directory structure is sliglhty different (e.g. TestEMPCASegBlub/PCATraining/distance/PCAFore_Back/Background/EigenVector5/I)
Questions:
- Why do we need 3D models?
- The PCA directory: Where does it come frome?
- Again, what should we use as Max?
Parameter functionality
$ pcaModelling -HELP parameter Slicer home is /Users/daniel/SLICER/TRUNK/Slicer3-build ============================ Start PCADistance ======================= Always look at vtkEMPrivateSegment/projects/iccv05/TestExample to see example structure Now can read in raw data with extension .img load multiple volumes by doing -pr "<dir>/*/prefix" eg case*/I.001 - 001 is important bc file has to exist To turn the shape representation into shape parameters -list defines the <STRUCTURE> to be considered, e.g. Background -path defines the path of the location of the PCA directory where the subdirectory of PCA<STRUCTURE> define EigenValues_<STRUCTURE>.txt, EigenVector*, and MeanImage e.g. -path is /projects/iccv05/TestExample/TestEMPCASeg and all necessary files are located in /projects/iccv05/TestExample/TestEMPCASeg/PCABackground -max defines the maximum number of Eigenvectors to considere -volume defines the volume that should be transfered from a shape representation into PCA parameters -combine just set this parameter if you have one PCA model for multiple structures bc the directory structure is sliglhty different (e.g. TestEMPCASegBlub/PCATraining/distance/PCAFore_Back/Background/EigenVector5/I) -va (first) (Optional) define a file name to which results should be written
Questions:
- What does this command do?
- What are shape representations and what are shape parameters?
- What is the input and output here?
Representation functionality
$ pcaModelling -HELP representation Slicer home is /Users/daniel/SLICER/TRUNK/Slicer3-build ============================ Start PCADistance ======================= Always look at vtkEMPrivateSegment/projects/iccv05/TestExample to see example structure Now can read in raw data with extension .img load multiple volumes by doing -pr "<dir>/*/prefix" eg case*/I.001 - 001 is important bc file has to exist representation = Determines the shape representation from the PCA shape parameters To turn shape parameters into shape representation (the opposite of function parameter) -list = the <STRUCTURE> to be considered, e.g. Background -path = the path of the location of the PCA directory where the subdirectory of PCA<STRUCTURE> define EigenValues_<STRUCTURE>.txt, EigenVector*, and MeanImage e.g. -path is /projects/iccv05/TestExample/TestEMPCASeg and all necessary files are located in /projects/iccv05/TestExample/TestEMPCASeg/PCABackground -max = the maximum number of Eigenvectors to considere -va (first) = the list of shape parameters, e.g. (1.0 3.4) -va (second) = directory, where the resulting shape representation should be saved to -combine just set this parameter if you have one PCA model for multiple structures bc the directory structure is sliglhty different (e.g. TestEMPCASegBlub/PCATraining/distance/PCAFore_Back/Background/EigenVector5/I)
Questions:
- What does this do?
- Again, how to specify Max?
- Where does the list of shape parameters come from?
View functionality
$ pcaModelling -HELP view Slicer home is /Users/daniel/SLICER/TRUNK/Slicer3-build ============================ Start PCADistance ======================= Always look at vtkEMPrivateSegment/projects/iccv05/TestExample to see example structure Now can read in raw data with extension .img load multiple volumes by doing -pr "<dir>/*/prefix" eg case*/I.001 - 001 is important bc file has to exist To turn the shape representation into shape parameters -list defines the <STRUCTURE> to be considered, e.g. Background -path defines the path of the location of the PCA directory where the subdirectory of PCA<STRUCTURE> define EigenValues_<STRUCTURE>.txt, EigenVector*, and MeanImage e.g. -path is /projects/iccv05/TestExample/TestEMPCASeg and all necessary files are located in /projects/iccv05/TestExample/TestEMPCASeg/PCABackground -max defines the maximum number of Eigenvectors to considere -combine just set this parameter if you have one PCA model for multiple structures bc the directory structure is sliglhty different (e.g. TestEMPCASegBlub/PCATraining/distance/PCAFore_Back/Background/EigenVector5/I)