Developer's page

From wiki
Revision as of 15:16, 12 June 2024 by Jblocher (talk | contribs) (Created page with "=Developer's page= ==2016/01/20 - Release details for Slicer == * Useful for script and extension development: http://wiki.slicer.org/slicerWiki/index.php/Release_Details ==2015/10/26 - CMake and Qt5 update == * cmake 3.3.2 installed (with ccmake & cmake-gui): /NIRAL/tools/CMake/cmake-3.3.2/bin/ ** Compiled with OPENSSL ON * Qt 5.5.1: /tools/Qt/Qt5/Qt5.5.1 ** ./configure -opensource -prefix /tools/Qt/Qt5/Qt5.5.1/ -qt-xcb ==2015/07/23 - Francois' reseach update == * Pr...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Developer's page

2016/01/20 - Release details for Slicer

2015/10/26 - CMake and Qt5 update

  • cmake 3.3.2 installed (with ccmake & cmake-gui): /NIRAL/tools/CMake/cmake-3.3.2/bin/
    • Compiled with OPENSSL ON
  • Qt 5.5.1: /tools/Qt/Qt5/Qt5.5.1
    • ./configure -opensource -prefix /tools/Qt/Qt5/Qt5.5.1/ -qt-xcb

2015/07/23 - Francois' reseach update

  • Presentation given on 2015.07.21 by Francois about the tools he has developed
  • Presentation available here

2015/07/08 - DMCTK 3.6.1

  • New version of DCMTK (3.6.1 compiled on the system): /NIRAL/devel/linux/dcmtk-build
  • Installed here: /NIRAL/tools/dcmtk/DCMTK-3.6.1_20150629
  • Old version of dcmdump moved from /tools/bin_linux64/dcmdump to /tools/bin_linux64/dcmdump_v3.5.4
  • New version of dcmdump installed: /tools/bin_linux64/dcmdump_v3.6.1
  • New link created that points to the latest version of dcmdump: /tools/bin_linux64/dcmdump points to /tools/bin_linux64/dcmdump_v3.6.1

2015/06/24 - Slicer Extensions - information and tricks

  • Most information can be found here
  • Before creating an extension, it can be useful to build Slicer (download the source code from the SVN repository here)
  • You can use the Slicer extension wizard to create your extension (here)
  • If the wizard does not allow you to perform the specific action you need, you can also submit modifications manually following these instructions.
  • More information is available here
  • Tricks and things to know:
    • The extension description must fit on one line. Do not insert any new line character in the description string.
    • If the extension needs specific CMake options, do not insert the CMake packaging commands in an inner directory (if your extension is a superbuild extension). When rebuilding your extension from the inner directory, for example with the command "make Experimental", all the options set in the superbuild directory will be erased and this might create a lot of problems (eg: your inner directory will become you superbuild directory, creating a second layer of inner directory).

2015/06/04 - How to make sure that your compiler supports CXX11 in CMake

  • Copy/Paste the following lines of code in your project's CMakeLists.txt file
#snippet taken from: http://www.guyrutenberg.com/2014/01/05/enabling-c11-c0x-in-cmake/
include(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
if(COMPILER_SUPPORTS_CXX11)
  set( EXTRA_FLAG "-std=c++11" )
elseif(COMPILER_SUPPORTS_CXX0X)
  set( EXTRA_FLAG "-std=c++0x" )
else()
  message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
endif()
if( EXTRA_FLAG )
  set( CMAKE_CXX_FLAGS_LIST ${CMAKE_CXX_FLAGS} )
  separate_arguments(CMAKE_CXX_FLAGS_LIST)
  get_property( helpstring CACHE CMAKE_CXX_FLAGS PROPERTY HELPSTRING )
  list(FIND CMAKE_CXX_FLAGS_LIST ${EXTRA_FLAG} found_flag )
  if( found_flag LESS 0 )
    set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_FLAG}" CACHE STRING "${helpstring}" FORCE )
  endif()
endif()

2015/05/14 - ANTS updated on the system

  • ANTS has been updated on the system to version 5cc1c5fc7866733bc0e6cfb4909cdbf1627467d3
    • Source code downloaded here: /NIRAL/devel/linux/ANTS/ANTs_git
    • Code compiled here: /NIRAL/devel/linux/ANTS/ANTs_git-build
    • Installed here: /NIRAL/tools/ANTS (information available in /NIRAL/tools/ANTS/README)
    • Link to current version: /NIRAL/devel/linux/ANTS/Current
  • WarpImageMultiTransform, WarpTensorImageMultiTransform, antsApplyTransforms, and ANTS have been updated in /tools/bin_linux64
  • Older versions of these tools have been archived in /tools/bin_linux64 with the suffix .bak.2015.05.14

2015/04/22 - DTIAtlasBuilder1.3.3 and DTI-Reg1.1.6

  • WarpTensorImageMultiTransform has a bug when resampling DTIs in a reference that does not have the identity matrix as its orientation matrix.
  • DTI-Reg 1.1.6 resamples DTIs with ResampleDTIlogEuclidean even when the registration was performed with ANTS to avoid this issue.
  • DTIAtlasBuilder1.3.3 requires to use DTI-Reg1.1.6

2015/04/22 - DTIAtlasFiberAnalyzer 1.6

  • DTIAtlasFiberAnalyzer has been updated to version 1.6 on the system. It now removes automatically the fibers that contain tensors creating NaN values (by default).

It can also save and load an xml file that contains the paths to the different softwares used. The tab "plotting parameters" got removed, considered bugged/obsolete.

  • DTIAtlasFiberAnalyzer_1.51 has been recompiled. It had been updated to version 1.6 but the version number appearing was still 1.51. This is now corrected.

2015/04/18 - DTIPrep 1.2.5

  • DTIPrep 1.2.5 presents a warning window to the user when output images are being recomputed after visual QC.

2015/04/14 - ResampleDTIlogEuclidean 1.0.2

  • New version of ResampleDTIlogEuclidean on the system
  • This version corrects a bug when not using measurement frames to orient tensors in space (see here)
  • ResampleDTIlogEuclidean link in /tools/bin_linux64 has been updated to point to the new version

2015/03/20 - VTK 5.10.1 with Qt

  • VTK 5.10.1 was recompiled on the system
    • Static
    • Release
    • with Qt 4.8.6
  • It was installed in the following directory: /tools/VTK/VTK_5.10.1/VTK_5.10.1_linux64_stat_Release_Qt4.8.6/

2015/02/23 - Slicer scripts

  • Slicer python scripts installed in /tools/bin_linux64
    • SlicerLoadFiles:
      • Use Slicer like InsightSNAP and load images and models directly from the command line
      • Print the usage:
SlicerLoadFiles --help
      • Load a volume:
SlicerLoadFiles -v path_to_the_colume
    • SlicerInstallExtensionFromFile.py
      • Install a Slicer extension directory from the command line, giving the path to an extension package (*.tar.gz or *.zip)
      • Print the usage:
SlicerInstallExtensionFromFile --help
      • Install an extension:
SlicerInstallExtensionFromFile -e path_to_extension_archive
    • For both script, specify Slicer path with:
      • -s or --slicer in the command line
      • Add the environment variable SLICERPATH and set it to the directory that contains Slicer
      • Add Slicer path to your PATH environment variable

2015/02/21 - freesurfer on killdevil

  • Installed here: /nas02/home/f/b/fbudin/tools/freesurfer-v5.1.0/
  • Had a bug (see here)
  • File causing the issue has been replaced (SearchProjectionOnPial.m by patched file)

2015/02/20 - pycharm-community-4.0.4 installed

  • in /tools/pycharm/pycharm-community-4.0.4
  • executable /tools/pycharm/pycharm-community-4.0.4/bin/pycharm.sh
  • pycharm is an IDE to develop python code
  • It provides autocompletion and a debugger
  • More information available on the official website: http://www.jetbrains.com/pycharm/

2015/02/19 - Slicer installed on Killdevil

  • Slicer is now compiled and installed on killdevil:
    • /nas02/home/f/b/fbudin/tools/Slicer-4.4.0-2015-02-17-linux-amd64
  • The easiest way to run a module from Slicer without having to worry about the libraries is to run it through Slicer
 ie Slicer --launch TractographyLabelMapSeeding 
  • Just in case, users can add to their .cshrc or .bashrc or directly source one of the following file:
    • sourceSlicer.bash
    • sourceSlicer.tcsh
  • These files are available in /nas02/home/f/b/fbudin/tools

2015/01/23 - Mendeley installed on the system (Paper library)

  • Executable: /tools/mendeley/mendeleydesktop-1.13.1-linux-x86_64/bin/mendeleydesktop
  • Advice: Papers (and some configuration files) are downloaded in ./.local/share/data/Mendeley\ Ltd
    • It is a good idea to create a link of that directory to a folder in your work directory (eg: ln -s /work/$USERNAME/Mendeley-Papers/ ~/.local/share/data/Mendeley\ Ltd./)
  • Create a user on www.mendeley.com
  • Create the link in your Firefox toolbar to easily add papers to your library: http://www.mendeley.com/import/


2015/01/15 - CMake-3.1.0

  • CMake-3.1.0 installed on the system
  • Available here: /tools/CMake/cmake-3.1.0/bin/
  • Contains:
    • cmake (command line)
    • ccmake (text GUI)
    • cmake-gui (qt GUI)
  • Build with OPENSSL support (see link )


2015/01/07 - ITK and VTK find necessary components

  • There is a python script in ITK (and VTK) that finds the necessary components for a given project:
Usage: WhatModulesITK.py itkSourceTree applicationFiles
eg: /NIRAL/devel/linux/ITKv4/ITK-Auto/Utilities/Maintenance/WhatModulesITK.py . /opt/Francois/temp/LabTools/niral_utilities/convertITKformats/convertITKformats*
set(ITK_IO_MODULES_USED "")
find_package(ITK COMPONENTS
  ITKCommon
  ITKDiffusionTensorImage
  ITKIOImageBase
  ITKIOMeta
  ITKImageFilterBase
  ITKImageGrid
  ${ITK_IO_MODULES_USED}
)
  • Change 'set(ITK_IO_MODULES_USED "")' with the IO modules that are necessary
eg:
set(ITK_IO_MODULES_USED
# IO Components
ITKIOImageBase
ITKIOGDCM
ITKIOGIPL
ITKIOMeta
ITKIONIFTI
ITKIONRRD
ITKIOTIFF
ITKIOTransformInsightLegacy
ITKIOVTK
ITKIOSpatialObjects
ITKIOTransformBase
ITKIOHDF5
ITKIOTransformMatlab
ITKIOTransformHDF5
)

2014/12/18 - git 2.2.1

  • New version of git on the system
  • Available here: /NIRAL/tools/git/git-2.2.1-linux64/bin/git

2014/12/17 - CMake-3.1.0-rc3

  • CMake-3.1.0-rc3 installed on the system
  • Available here: /tools/CMake/cmake-3.1.0-rc3/bin/
  • Contains:
    • cmake (command line)
    • ccmake (text GUI)
    • cmake-gui (qt GUI)

2014/11/06 - Slicer4.4

  • Slicer 4.4 is installed on the system
  • Available here: /tools/Slicer4/Slicer-4.4.0-linux-amd64/Slicer

2014/10/13 - NeuroLib

  • The NeuroLib is deprecated
  • There is no more version control repository that contain the NeuroLib
  • The source code is available here: /NIRAL/devel/linux/NeuroLib
  • An archived copy is saved on athena: /athena_archive/work/fbudin/NeuroLib.tar.gz

2014/10/09 - dtiestim 1.2.0 installed both on the system and on killdevil

  • dtiestim has a new option to shift negative eigenvalues (the same as DWIToDTIEstimation in 3DSlicer): --shiftNeg
  • It is also possible to apply a coefficient when shifting the eigenvalues, such that all eigenvalues of the corrected tensors are strictly positive (--shiftNegCoeff). The default value for that coefficient is 1.0001. The coefficient must be between 1.0 and 1.001 (included). A coefficient of 1.0 means that the smallest eigenvalue will be 0 after correction.

2014/09/18 - NeosegPipeline_1.0.6 installed both on the system and on killdevil

  • neoseg XML now uses the file orientations instead of specifying RAI for all the files
  • Data parameters are not reset when loading only processing parameters
  • Data parameters can be loaded and saved as an XML file

2014/09/16 - neoseg_2.0.1 and NeosegPipeline_1.0.4 installed

  • NeosegPipeline
    • Reads parameters files better and loads and saves all parameters
    • Parameters that are not saved in the parameters.xml file are options to be set in the commandline (CLI)
    • Requires minimum versions for tools
    • XML files that contain tags on multiple lines are still loadable
  • neoseg (also installed on killdevil)
    • XML files that contain tags on multiple lines are still loadable

2014/09/16 - pycharm-community-3.4.1 installed

  • pycharm is an IDE to develop python code
  • It is installed in /tools/pycharm/pycharm-community-3.4.1
  • To run it, start: /tools/pycharm/pycharm-community-3.4.1/bin/pycharm.sh
  • It provides autocompletion and a debugger
  • More information available on the official website: http://www.jetbrains.com/pycharm/

2014/07/22 - Virtual machines with lab tools installed

  • Virtual machines available in /work/fbudin/VirtualMachineArchives
    • LabToolsUbuntu64.ova
      • Contains all the lab tools on a Ubuntu 14.04 system
      • Password: labtools
    • SL6.5.ovf (needs SL6.5-disk2.vmdk)
      • Only contains lab tools that are available in NAMICExternalProjects
      • Password: labtools
  • Need to install a virtual machine player such as virtualbox
  • Activate your processor virtualization technology in the BIOS of your computer
    • On Intel computers: Intel VT-x
    • On AMD: AMD-V

2014/06/30 - NeosegPipeline installed

2014/06/30 - FiberProfilePlot installed

  • FiberProfilePlot has been compiled and installed on the system, at: /tools/bin_linux64
  • Introduction :
    • WHAT : This script was built to plot the DTI Metrics (FA, MD, RD, AD) along Arclength, for each fiber track of a dataset. The values displayed are stored in a CSV file computed by DTIFiberAnalyzer.
    • WHY : The reason this tool was created was to overcome a bug with OpenOffice that would not allow to have more than 200 columns (then cases).
    • HOW : The script computes a .m file and runs it with Matlab to print the plots in a PDF file. You can then run the .m file again and it will display a figure in matlab with interative plots to select and analyze each of them.
  • Requires :
    • Matlab
  • Use :
    • FiberProfilePlot needs to be run in a terminal.
    • To process a CSV file, you can put his filepath as a parameter
      $ FiberProfilePlot ad_UNC_Right.csv
    • You can give a directory path as a parameter, and FiberProfilePlot will process all the CSV files in it and in the sub-directories
      $ FiberProfilePlot directory/
    • You can also put multiple parameters
      $ FiberProfilePlot ad_UNC_Right.csv fa_UNC_Right.csv directory/
  • This script has a GitHub repo at https://github.com/NIRALUser/FiberProfilePlot

2014/06/30 - CalaTK updated on system

  • A new version of CalaTK (2.0) has been compiled on the system, at: /tools/CalaTK
  • The main updates are :
    • faster registration using the StepLengthSelection algorithm for linesearch
    • optimized reader and writers to be consistent with other tools at NIRAL
  • The applications available are :
    • LDDMM - An implementation of LDDMM
      $ LDDMM input_source.nhdr input_target.nhdr output_transform.nhdr --writeAsDisplacement --config input_config.json --configOut output_config.json --cleanConfigOutput --cleanedConfigurationType normal
    • applyMap - Applies a map to transform a source image to target space.
      $ applyMap input_transform.nhdr input_source.nhdr output_target.nhdr --readAsDisplacement
    • AtlasBuilder - Cross-sectional atlas-building - not tested
    • GeometricMetamorphosis - Implements the geometric metamorphosis model which allows for image registration under some forms of pathologies - not tested
    • LongitudinalAtlasBuilding - Longitudinal Atlas Building - not tested
    • MetamorphosisShooting - An implementation of Shooting for Metamorphosis - not tested
  • The first version of LDDMM was removed from /tools/bin_linux64
  • The documentation is available on the system: /tools/CalaTK/Documentation.html
  • Examples are available on the system:
    • Example of a configuration file at: /tools/CalaTK/Examples
    • Scripts to test the LDDMM optimum parameters at: /tools/CalaTK/Examples/ScriptsTest
  • To use those applications from anywhere, add them to your PATH:
    • with tcsh:
      $ setenv PATH /tools/CalaTK:${PATH}
    • with bash:
      $ export PATH=/tools/CalaTK:${PATH}

2014/06/17 - svn 1.7.17 installed

  • A new version of svn (1.7.17) has been compiled and installed on the system
  • It is installed here: /tools/svn/svn-1.7.17/bin
  • To use it as your default svn, add it to your PATH:
    • with tcsh: setenv PATH /tools/svn/svn-1.7.17/bin:${PATH}
    • with bash: export PATH=/tools/svn/svn-1.7.17/bin:${PATH}

2014/05/12 - CMake MD5sum issue and OpenSSL

  • When compiling certain tools using the Superbuild paradigm, CMake will download packages. This is particularly true for python and python packages. After downloading the package, CMake will check the MD5sum of the downloaded archive and compare it to the expected value that is given is the CMakeLists.txt
  • The checksum might be wrong if CMake is not compiled with OpenSSL
  • To check if CMake is built with OpenSSL:
strings cmake | grep OPENSSL
  • A work around consists in downloading the package manually with wget (make sure that the package downloaded with CMake has been removed as wget will not overwrite it). Re-run cmake that will not overwrite the package downloaded by wget
  • The solution: recompile CMake with OpenSSL:
    • Download CMake source code
    • Configure CMake project with the following option: -DCMAKE_USE_OPENSSL:BOOL=1

2014/02/24 - New Lab projects

2014/01/28 - Updates on the system

  • New version of DTIPrep: 1.2.3. It saves the transforms used for the Eddy motion correction in the QC xml and allows the user to save those transforms in an external file. The suffix of this file can be chosen in the EddyMotionCorrection section
  • VTK6.1 installed on the system
    • Compiled in Release with default options (dynamic): /NIRAL/tools/VTK/VTK_6.1.0/VTK_6.1.0_linux64_dyn_release
    • Compiled in Release with Qt4.8.2 and Python 2.7.5 (dynamic): /NIRAL/tools/VTK/VTK_6.1.0/VTK_6.1.0_linux64_dyn_release_Python2.7.5_Qt4.8.2

2013/12/16 - Updated repository of ShapeWorks in Git

https://github.com/SCIInstitute/shapeworks

2013/10/22 - New version of Slicer4 installed on the system

  • Slicer-4.3.1-linux-amd64

2013/10/01 - New version of DTIPrep

  • DTIPrep1.2.1 is compiled and installed on the system (/tools/bin_linux64)
    • It is possible to compute the brain mask using bet2 with the IDWI
    • The tools paths are auto-completed when loading a protocol file that contains them

2013/09/11 - How to use Qt Creator

  • If you want to open an existing project
    • Import/Create your source folder with the CMakeLists.txt and your files
    • Open QtCreator: QtCreator 2.7 in /tools/qtcreator-2.7.0/bin/qtcreator
    • Click on : File -> Open file or project
    • Select the CMakeLists.txt of your project
    • Choose your binary folder
    • Configure your project with ccmake
  • If you modify your CMakeLists.txt
    • Close your project ( right click on the project name )
    • Run cmake the usual way in a terminal
    • Re-open your project
  • If you just want to add a file to your project
    • Add the file to your source folder
    • Modify your CMakeLists.txt
    • Close and re-open your project ( the new file will be opened automatically )
  • If you have multiple projects open at the same time and you want to change the one which is running
    • Right click on the project
    • Click on: set "your project" as Active project
  • NOTE: If you want to reset the configuration of your project, and reset your qtcreator you will have to delete-rename the folder in ~/.config/QtProject

2013/09/10 - Meeting minutes

  • Reminder of the previous developer's page update: Where to find the code
  • Slicer 4.3.0 has been added to the system: /tools/Slicer4/Slicer-4.3.0-linux-amd64/
  • QtCreator
    • Very useful when developing tools in C++ and CMake
    • /tools/qtcreator-2.7.0/bin/qtcreator
    • How to Use QtCreator
  • Update of ParaToSPHARMMeshCLP by Aditya
  • rpath
    • Allow to embed path to libraries in an executable (linux and Mac)
    • Example

2013/08/22 - Where to find the lab projects

2013/08/22 - External projects source code

2013/08/20 - Meeting minutes

  • Remind people of FAQ
  • Remind people of CompiledTools
  • AutoSeg: use version 2.10b
  • Reminder: Don't forget about the image orientation when processing an image.

2013/08/16 Updated software

  • ImageMath: modification of the behavior when correcting a NaN value in an image. Instead of replacing a NaN with a given value, it now uses the average of the (non-NaN) neighbor values
  • CropDTI: CropDTI was not saving the orientation of the input image, the origin was not modified to keep the output image at the same location and the measurement frame was not copied over into the output image. It has been updated on the system as well as on killdevil.

2013/08/14 - Updated version of SPHARM-PDM in Killdevil

  • An updated version of SPHARM-PDM has been installed in Killdevil in the following location. This version will be kept up-to-date when major changes will be introduced to the SPHARM-PDM package.
 $ /lustre/scr/b/p/paniagub/spharm-pdm/bin

2013/08/13 - Compiling in Killdevil

  • If you are using tools that use superbuild architecture, and that use git, you might have to run the following command to install Git.
 $ module add git

2013/08/06 - Reminder: Updating tools on the system

  • When updating or installing a tool on the system, edit this

2013/08/05 - Github accounts

      Name                         Username 
  Francois Budin                 fbudin69500
  Beatriz Paniagua               bpaniagua
  Adrien Kaiser                  adrienkaiser
  Marie Jacquemard               mjacquem
  Alexis Girault                 agirault
  Juliette Pera                  juliettepera
  Marie Cherel                   marie-cherel2013
  Joohwi Lee                     telnet2
  Yundi Shi                      Wendyuu
  Jean-Yves Yang                 jeanyves-yang
  Martin Styner                  styner
  Julia Lopinto                  JuliaLopinto
  Lucie Macron                   luciemac
  Clement Vachet                 clementsan

2013/08/05 - Python programming guide lines

2013/07/29 - New software and libraries

  • New version of git available on the system: /tools/git/git-1.8.3.4-linux64/
  • New version of ITKv4
    • /NIRAL/tools/ITK/ITKv4.4.1/ITKv4.4.1_THL64_dyn/
    • /NIRAL/tools/ITK/ITKv4.4.1/ITKv4.4.1_THL64_stat_ITK3compatible/
  • New compilations of SlicerExecutionModel:
    • /NIRAL/devel/linux/SlicerExecutionModel/SlicerExecutionModel-build_ITKv4.4.1_dyn
    • /NIRAL/devel/linux/SlicerExecutionModel/SlicerExecutionModel-build_ITKv4.4.1_stat_ITK3compatible
  • New version of Qt5: /NIRAL/tools/Qt/Qt5/Qt5.1-dyn
    • VTK 6.0.0 has not been built against Qt5 because it requires Qt4.x
    • xcb-util-devel.x86_64 had to be installed to be able to compile Qt5 (on europa.ia.unc.edu)

2013/07/23 - Meeting minutes

  • Mentioned Python updates - See wiki updates from 2013/07/16
    • If problems with python, connect to a server, and try to use python on the server
  • VTK 6.0.0 compiled against Qt 4.8.2 and Python 2.7.5
  • Mentioned Demian tool, qtcreator, and other tools

2013/07/16 - tract_querier

  • It allows you to select only the fiber bundles you want, that start, go through or do not go through specific regions.
  • Software that Demian Wassermann has written (https://github.com/demianw/tract_querier)
  • Installed it on the system.
  • Before running the software on the system, please update your PATHs as follows:
setenv PYTHONPATH /tools/Python/Python-2.7.5
setenv PATH /tools/Python/Python-2.7.5/bin/:${PATH}
setenv LD_LIBRARY_PATH /NIRAL/tools/VTK/VTK_5.10.1/VTK_5.10.1_X64_dyn_release_Qt4.8.2_Python/lib/vtk-5.10:/tools/Python/Python-2.7.5/lib/:${LD_LIBRARY_PATH}
  • To use it, you need a tractography file (typically a full brain tractography), a parcellation map and a query file (explained below). Typical command line:
tract_querier -t tractography_file.vtk -a wmparc.nii.gz -q wmql_script.qry -o tract_output
  • Available label maps
    • Using the Freesurfer parcellation map: a query file is already available on the system (/tools/Python/Python-2.7.5/tract_querier/queries/freesurfer_queries.qry).
    • Mori atlas (JHU_MNI_SS_WMPM_Type_II.qry): /tools/Python/Python-2.7.5/tract_querier/queries/mori_queries.qry
  • For each label maps, two *.qry files are necessary:
    • One description file in which each label is given a name (e.g.:FreeSurfer.qry, JHU_MNI_SS_WMPM_Type_II.qry)
    • A query file that defines which fiber bundles are going to be extracted and saved.

2013/07/12 - New version of python

  • A new version of python (2.7.5) is compiled and installed on the system
  • Add the following to your ~/.auxcshrc
setenv PYTHONPATH /tools/Python/Python-2.7.5
setenv PATH /tools/Python/Python-2.7.5/bin/:${PATH}
setenv LD_LIBRARY_PATH /NIRAL/tools/VTK/VTK_5.10.1/VTK_5.10.1_X64_dyn_release_Qt4.8.2_Python/lib/vtk-5.10:/tools/Python/Python-2.7.5/lib/:${LD_LIBRARY_PATH}
  • Numerous python libraries have been added, including SimpleITK and VTK
  • New version of Canopy installed: /tools/Python/Canopy/canopy
    • When run for the first time, it needs to install some files in HOME
    • Once it is locally installed, it starts directly when run
    • It creates a shortcut in Application/Programming

2013/07/09 - Using killdevil

2013/07/09 - Tools Updates

  • qtcreator 2.7.0 is installed on the system.
    • It is installed in /tools/qtcreator-2.7.0/
    • You can add "/tools/qtcreator-2.7.0/bin/" to your path (e.g. if using tcsh, add "setenv PATH ${PATH}:/tools/qtcreator-2.7.0/bin/" to ~/.auxcshrc)
  • New version of Slicer installed on the system (to be run from the servers). It might not be stable on the local machines due to graphic driver issues: /tools/Slicer4/Slicer-4.2.0-2013-07-08-linux-amd64/Slicer

2013/07/03 - Tools Updates

  • /NIRAL/devel/linux/SlicerExecutionModel/SlicerExecutionModel was updated to the lastest available revision
  • All the compiled versions of SlicerExecutionModel in /NIRAL/devel/linux/SlicerExecutionModel were recompiled

2013/07/02 - Tools Updates

  • MeshTransform has been recompiled and installed in /tools/bin_linux64

2013/06/13 - ITK Tutorials

2013/06/12 - Merge Labels

  • New python script in /tools/bin_linux64/ called MergeLabels.py

2013/06/12 - DSI Studio

  • DSI Studio is installed on the system here: /tools/bin_linux64/dsi_studio (build tree is /devel/linux/DSIStudio/build/dsi_studio).
  • If not using the full path to run it, it might complain that it doesn't find the FA template (which is also in /tools/bin_linux64), so this environment variable can be set:

setenv DSI_STUDIO_FA_TEMPLATE /tools/bin_linux64/FMRIB58_FA_1mm.nii.gz (If DSI Studio still does not find the template, just run it using the full path and it will find it)

  • DSI Studio is compiled statically and needs the path to the Boost libraries in /devel/linux. Need to add this path in the library path:

setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/devel/linux/Boost/boost_1_52_0_x64_release/lib

2013/06/12 - Slicer Extensions tutorial and FAQ

2013/06/11 - Meeting minutes

  • New software installed on the system (see previous entries in this page for details):
    • ParaView-4.0.0-RC1-Linux-64bit
    • SimpleITK, ipython and notebook
    • ITKTransformTools - updated in /tools/bin_linux64
    • Slicer-4.2.0-2013-06-06-linux-amd64
    • MeshMath - updated in /tools/bin_linux64: new option to translate meshes. Beware that the coordinates in VTK space and ITK space may be different. The translation may need to be inverted along some axes.
    • DTIAtlasBuilder_1.3a is available in /tools/bin_linux64. This a alpha version and candidate for the 1.3 release which will contain the following changes:
      • File/Folder management: keep original subject names instead of using "CaseX" and put final files in specific folders (FinalTensors and FinalDeformationFields)
      • Automatically update files/folders names if running DTIAtlasBuilder over a previous computation done with an older version
      • Add step at the beginning to filter and set to zero negative values in tensors to avoid issues in registration
      • New Interface features: drag&drop images and text files (CSV, parameters and software configuration files), "clean output folder" button, keyboard shortcuts, remove duplicated cases, improve enable/disable buttons
      • Other minor bug fixes
  • SPHARM has been updated on NITRC. The latest version needs to be compiled and installed on the system (Bea)
  • A meeting for the people interested in developing Slicer extensions has been organized on Wednesday June 12th at 10am.

2013/06/10 - screen installed on the servers

  • screen, a "full-screen window manager that multiplexes a physical terminal between several processes" has been installed on the servers. To learn how to use it, you can read this tutorial

2013/06/07 - New version of Slicer4

  • A new version of Slicer4 has been compiled and installed on the system:
    • /tools/Slicer4/Slicer-4.2.0-2013-06-06-linux-amd64/Slicer
  • It should be more stable than the releases that are available on slicer.org and that tend to be unstable on the system
  • SimpleITK is integrated to this version of Slicer4

2013/06/07 - ITKTransformTools

  • ITKTransformTools, a tool that has been developped to process ITKTransforms in many ways, has been updated in:
    • /tools/bin_linux64/
    • killdevil.unc.edu:/lustre/scr/f/b/fbudin/tools/
  • New options:
    • Invert: gives the inverse of an ITKTransform. Limited to rigid and affine transforms
    • Concatenate: concatenate all the given transforms into one transform
      • If the user gives only rigid and affine transform (readable with ITK::TransformFileReader), the output will be an ITKTransform file
      • If the user gives a reference image in addition to rigid and affine transforms, the output will be a displacement field
      • If the user gives (at least) a BSpline or a deformation field (H-field or displacement field), the output will be a displacement field. A reference image will be necessary to give the output displacement field properties (spacing, size,...)

2013/06/05 - SimpleITK, ipython and notebook

  • Python environment:
    • Use Canopi: /NIRAL/devel/linux/Python/ThirdParty/canopy/canopy
      • The first time it is run, it will download and install python packages in ~/Enthought (takes a few minutes, 259MB)
      • It includes Python packages Numpy, Scipy, IPython, Matplotlib, Pandas, Traits, Enaml,...
    • Use python available on the system
      • Set your python path: (in tcsh): setenv PYTHONPATH /NIRAL/devel/linux/Python/ThirdParty
      • Set your PATH to use Python-2.7.5 (instead of python-2.6.6 which is the defaults version on the system): setenv PATH /tools/Python/Python-2.7.5/bin/:${PATH}
      • Start python with 'python'
      • Start ipython with '/NIRAL/devel/linux/Python/ThirdParty/ipython' (or add /NIRAL/devel/linux/Python/ThirdParty/ to PATH)
      • SimpleITK ( How to Use) has been installed in /NIRAL/devel/linux/Python/ThirdParty
      • The following python libraries have been added: Jinja2, matplotlib-1.2.0, pyzmq-13.1.0-py2.6, tornado-3.0.2-py2.6, SimpleITK-0.6.1-py2.6
      • Start python notebook: /NIRAL/devel/linux/Python/ThirdParty/ipython notebook --pylab inline (exit process in terminal with Ctrl+C). WARNING: For unknown reasons, it is not possible to start the notebook typing just 'ipython notebook --pylab inline' and it is not possible to import scipy in notebook

2013/05/23 - New version of Paraview installed - 4.0.0-RC1

  • Installed in: /NIRAL/tools/ParaView-4.0.0-RC1-Linux-64bit

2013/05/21 - Meeting minutes

  • itksys documentation: There is no real documentation (ie doxygen pages or tutorial). To know the functions that are available, read the c++ code. Each function is well documented. The code is available in ITKv3_SOURCE_Code/Utilities/kwsys/ (ITKv3) and ITKv4_SOURCE_Code/Modules/ThirdParty/KWSys/src/KWSys/ (ITKv4).
  • To set up Slicer's environment variables to run a software:
    • Modify your .auxchrc or .bashrc file (that is in your home directory)
    • Or run the command the following way: Slicer --launch your_command
  • SPHARM:
    • A Bug has been reported in the batchmake scripts that are generated and run. The command line that runs SegPostProcess always uses "gipl" as the output extension which leads to lose of orientation information. This should be changed such that the extension of the output image matches the one of the input image.
    • The documentation for SPHARM and the modules it contains can be found on its MediaWiki page
    • GenParaMesh was hanging sometimes. The bug has been found and corrected. The version on the system has not yet been corrected but will soon.
    • SegPostProcess had a different behavior when compiled with ITKv4 than with ITKv3. The spacing of the image was not interpreted the same way in both versions. If one wants to reproduced the same behavior in SegPostProcess when compiled with ITKv4 as it was doing with ITKv3, use the flag "--UseUnitSpacing"
    • DTIPrep1.2 is available as a binary file for MacOS on NITRC


2013/05/16 - Killdevil GLIBCXX error

  • A library issue has been detected on killdevil. The issue looks like this:
 <executable>: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by <executable>)
 <executable>: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by <executable>)
  • We are not sure where the issue comes from, but a possible workaround proposed by the killdevil folks is:
 $ module rm gcc python
 $ module add python gcc

2013/04/26 - FADTTS v3.01 and SPHARM

  • Installed FADTTS_V3.01 on killdevil: /lustre/scr/f/b/fbudin/tools/FADTTS_V3.01_2
  • SegPostProcessCLP, GenParaMeshCLP, and ParaToSPHARMMeshCLP have been modified and recompiled on killdevil. This should fix a few issues, but SegPostProcess is still buggy.

2013/04/22 - ResampleDTIlogEuclidean

  • New version installed on the system and on killdevil that should handle affine transforms given by ANTS (itk::MatrixOffsetTransformBase)

2013/04/22 - DTIAtlasBuilder

  • DTIAtlasBuilder was recompiled on killdevil and is available in /lustre/scr/f/b/fbudin/tools (version 1.2 | Compiled 04/22/2013)

2013/04/03 - MeshMath

  • New version with support for modifying VTK pointData

2013/04/03 - SPHARM

  • SPHARM-pdm has been recompiled on killdevil and is available in /lustre/scr/f/b/fbudin/tools/SPHARM
  • fiberstats has been recompiled and installed in /tools/bin_linux64/fiberstats

2013/04/02 - Meeting minutes

  • DTIPrep 1.2 is not yet compiled and installed on killdevil. There are some problems due to Qt and DTIPrep itself.
  • SPHARM is being recompiled on killdevil but it is not finished yet
  • DicomToNrrdConverter_bmatrix is an old tool. Try to use DicomToNrrdConverter that is embedded in Slicer4
  • CALATK tools available in /tools/bin_linux64 are being updated
  • Matlab: has to be run from a server (pan/pegasus/...): /tools/Matlab2011a/bin/matlab
  • DWIAtlas has been updated in /tools/bin_linux64

2013/03/19 - New tools

  • DTIPrep_1.1.6 has been installed on killdevil. It is available in /lustre/scr/f/b/fbudin/tools/DTIPrep_1.1.6_linux64

2013/03/05 - Limit number of threads generated by tools

  • This option can be useful mostly for Killdevil, where the number of cores allowed is limited, to prevent programs from taking more resource than requested.
  • Most tools use ITK filters, so the option to limit the number of threads is the following ITK environment variable:

ITK_GLOBAL_DEFAULT_NUMBER_OF_THREAD

To set it in a tcsh shell:    setenv ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS 1
To set it in a bash script:   export ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS=1
To set it in a python script: os.putenv("ITK_GLOBAL_DEFAULT_NUMBER_OF_THREADS","1")
  • On killdevil, as this variable needs to be declared in the same bash session where the command will be executed, i.e. just before executing the command, it will not work if the variable is set and then the command is submitted, because this variable is not propagated with bsub.

In that case, you need to write a small script which will declare the variable and then run the command and submit the script instead of the command directly, so it declares the variable and then executes the command in the same session.

2013/02/21 - Meeting minutes

  • Tools on killdevil have been updated. New version of DTI-Reg and DTIAtlasBuilder. The tools are available in /lustre/scr/f/b/fbudin/tools/

2013/02/19 - Meeting minutes

  • ITKv4 hackathon: Is there any project that uses ITKv3 that needs to be converted to ITKv4 or start a new project? Bring it to Kitware to get help. Around April or May.
  • FiberViewer: Should be recompiled on the system. It needs SOViewer to be recompiled. Problem on the new system to be solved. Check if needs FLTK or Qt to be recompiled. Check version of Qt used.
  • No library missing on the system as far as the developers are concerned
  • DTIAtlasBuilder has been updated. The new version has been updated on the system and on killdevil.
  • DTIAtlasBuilder, DTIPrep, FiberViewer and DTIAtlasFiberAnalyzer have been integrated to Slicer4 as extensions. They are available in Slicer4 nightly and Slicer4.2. All those extensions work on linux, but not all of them work on Mac and Windows. To be aware of which extension is working on which platform, and to find information on how to run all tools please visit:

http://www.na-mic.org/Wiki/index.php/SPIE_2013_Course_Preparation

  • If one wants to develop an extension for Slicer4, ask Adrien or Francois who integrated tools in Slicer4 as extensions


2013/01/31 - Static Qt 4.7.4

  • Qt version 4.7.4 has been recompiled statically and is available here: /NIRAL/tools/Qt/Qt4.7.4_stat

2013/01/22 - Meeting minutes

  • SOViewer library recompile it on the system
  • FiberViewer: recompile on the system once SOViewer is recompiled
  • FTLK 1.1.9 - recompiled and installed on the system: /NIRAL/tools/FLTK/fltk_1.1.9_THL_stat
  • Slicer 4.2.1 and 4.2.2-1 compiled from source code: /NIRAL/devel/linux/Slicer4_linux64

2012/12/04 - Meeting minutes

  • Reminder: Libraries reinstalled and recompiled on the system:
    • BatchMake 3.20
    • fftw
    • SlicerExecutionModel
  • Python 2.7.3 is compiled and installed. simpleITK, VTK, numpy, scipy, pyci, matplatlib libraries are installed too in the pyhton directory.
  • KWMeshVisu is reinstalled
  • New version of VTK compiled: vtk5.10 with tclwarp on.
  • KWidget recompiled.
  • ITK and VTK git versions compiled. VTK_git installed, not ITK.
  • R recompiled and isntalled in /tools/Rscript
  • CURRENT directory created in /tools/ and /devel/linux/ to keep track of latest version of tools installed and compiled. *.env file can be created and installed in CURRENT directory to automatically set up environment variables.

2012/12/07 - SlicerExecutionModel

  • All the versions of SlicerExecutionModel that are available in /NIRAL/devel/linux/SlicerExecutionModel have been reconfigured and recompiled for the new file system.

2012/12/06 - Python Update

  • Python 2.7.3 version was compiled and installed in /tools/Python/Python-2.7.3 and /tools/Python/Current is linked
  • To use this version, please update environment variables as described in /tools/Python/Current/python.env
  • You can simply run 'source /tools/Python/Current/python.env' or copy and paste into your .auxcshrc
  • Python libraries can be easily installed using 'pip', 'easy_install', or 'setup_tools'
  • Current installed libraries
    • numpy
    • scipy
    • mdp
    • setuptools
    • matplotlib
    • PySide
    • VTK, ITk
    • iPython
  • PYTHON_INSTALL_COMMANDS

2012/12/05 - Library needs update

  • The library libfftw3f.so.3 was in the former /devel, it needs to be recompiled on the new system

2012/12/05 - New system updates

  • BatchMake 3.20 has been recompiled and reinstalled on the new system.
    • Compiled version: /NIRAL/devel/linux/BatchMake_compilation/BatchMake-1.3/BatchMake-build_THL
    • Installed version: /NIRAL/tools/BatchMake/BatchMake_1.3_linux64_dyn_3.20/lib/BatchMake

2012/12/04 - Meeting minutes

  • Reminder:
    • installed tools/libraries should be in /NIRAL/tools/
    • compiled tools/libraries should be in /NIRAL/devel/
  • New version of cmake in /NIRAL/tools/CMake (2.8.10)
  • To do: Replace old cmake in /NIRAL/tools/bin_linux64 by newly installed version
  • devel currently moved by Joe to /NIRAL/devel. There will be a link /devel pointing to /NIRAL/devel.
  • /opt/local link is removed
  • /tools/devl link is removed
  • Problems due to new servers
    • Qt4.8.2 and Qt4.7.4 are being recompiled and will be installed in /tools/Qt ->Done.
      • Qt4.8.2 is installed in /NIRAL/tools/Qt/Qt4.8.2/Qt4.8.2_linux64_THL
      • Qt4.7.4 is installed in /NIRAL/tools/Qt/Qt4.7.4-linux64_THL
    • QWT: needs to be recompiled once Qt is recompiled. Aditya is going to do that
    • Libraries working:
      • ITKv4.1 -> /NIRAL/tools/ITK/ITKv4.1.0/ITKv4.1.0_v3Compatible_linux64/lib/cmake/ITK-4.1
    • Libraries not working:
      • ITK3.20 -> /NIRAL/tools/ITK/ITK_3.20.0/ITK_3.20.0_linux64_dyn_THL -> seems to work on Europa: needs further testing
      • Francois will recompile ITK3.20
    • Francois: send email to developers' list when Qt and ITK are recompiled
  • Usage of killdevil
    • Compiled tools are available in /lustre/scr/f/b/fbudin/tools/
    • To save space:
    • use /lustre/scr/
    • or /netscr/
    • or mv files that are not used for processing in ~/ms. ~/ms is not accessible from processing nodes

2012/11/29 - New tools compiled on killdevil

  • AutoSeg_2.9
  • freesurfer-v5.1.0
  • ABC
  • BatchMake
  • CortThickCLP
  • imconvert3
  • neoseg ->doesn't work yet on killdevil
  • The complete list of the tools available on killdevil is available here

2012/11/06 - List of tools developed by the lab (not part of larger projects)

  • NIRAL_Utilities: http://www.nitrc.org/projects/niral_utilities/
    • CropTools - CropImage, Crop4DImage, CropDTI
    • CurveCompare (Source code in NIRALUser, only Superbuild included in NIRAL_Utilities)
    • DTIAtlasBuilder (Source code in NIRALUser, only Superbuild included in NIRAL_Utilities)
    • DWI_NiftiNrrdConversion
    • ImageMath
    • ImageStat
    • PolydataMerge
    • PolydataTransform
    • TransformDeformationField
    • convertITKformats
    • Unsupported - IntensityRescaler: Should compile against an unknown version of Qt (2?3?).
  • NIRALUser: https://github.com/organizations/NIRALUser/
    • DTIAtlasBuilder (Source code )
    • CurveCompare (Source code)

2012/11/06 - Meeting

  • New tools in http://pandora.ia.unc.edu/wiki/index.php/CompiledTools
    • DTIAtlasBuilder
    • DTI-Reg_1.1.2
    • GreedyAtlas
  • List lab tools in a new entry after the meeting: NIRALUser (Github) and NIRAL_Uitilities (NITRC)
  • New command line tools should always be created using SlicerExecutionModel (also refered as GenerateCLP) to be 3D Slicer compatible:
    • Source code of Slicer Execution Model (SEM): https://github.com/Slicer/SlicerExecutionModel
    • Compiled on the system:
      • Not installed because the installation step is not set up properly
      • Multiple versions on the system in: /biomed-resimg/crews_rodent/devel/linux/SlicerExecutionModel
      • Use the appropriate version according to the chosen ITK version. SlicerExecutionModel is compiled against ITK. If different versions of ITK are used to compile SlicerExecutionModel and the desired command line, compilation and running error will arise.
    • Documentation to create 3D Slicer command line tools: http://www.slicer.org/slicerWiki/index.php/Slicer3:Execution_Model_Documentation
    • Command line modules should use the appropriate XML tags to generate the appropriate Slicer interface.
      • <string> should not be used to try to load a file. It should only be used for an actual string input
      • <file> should only be used for file types that are not directly handled by 3DSlicer
      • <image> and <geometry> should be used for images and volumes (fiber bundle, model)

2012/10/23 - First meeting

  • Frequency of the meeting: agreement on having a bi-weelky meeting to take good habits and not forget to discuss about the different problems
  • /tools/bin_linux64:
  • Libraries on the system:
    • Compile libraries in /biomed-resimg/crews_rodent/devel/linux (Be careful, they can be removed anytime)
    • Install them in /tools/. It uses less space on the system once install. Those should not be removed.
    • Compile tools against libraries that are in /tools/, not in /biomed-resimg/crews_rodent/devel/linux/
  • Version Control:
    • Developers should create a github account (https://github.com/)
    • There is a NIRALUser organization on github to fork individual projects that are of interest to other people: https://github.com/NIRALUser
    • People can be added to that organization once they have a github account
    • If one tool is very interesting, it can be integrated to NIRALUtilities on NITRC using Superbuild (http://www.nitrc.org/projects/niral_utilities)
    • The tools in NIRAL_Utilities should be independent. Each tool can be compiled separately.
  • When a new small tool/script is develop, the developer should add an entry on this page to allow other developers to be aware that the tool exists (where the tool is, what it does). Just write a short description.
  • During the lab meeting, mention new tools/libraries compiled or installed. Add an entry about it on this page.
  • A lot of our lab tools are compiled on killdevil. They are accessible here: /lustre/scr/f/b/fbudin/tools/. If any problem, ask Francois

2012/10/22 - First Entry: Information and upcoming meeting

The first developer's meeting will happen tomorrow (October 23nd) from 4pm to 5pm. The topics of discussion will be:

  • How regular should this meeting be? biweekly?
  • Current ongoing projects: List them all and who is working on them
  • Should we have a short presentation of one tool at each meeting? What is does, where to find it, how to use it.
  • What are the good practices:
    • Tools compiled in static in /tools/bin_linux64
    • Where to store and publish the tool and its sources? on NITRC as a separate project? on github? in NIRALUtilities? (https://github.com/organizations/NIRALUser)
    • Where is the documentation/tutorial?
    • How to keep people updated about the new versions? Should we have a blog entry by the developer every time a new version comes out?
    • Using lab tools on killdevil: /lustre/scr/f/b/fbudin/tools/
  • Any other question?