Difference between revisions of "RTK wiki help"

From Openrtk
Jump to navigation Jump to search
 
(89 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
= Welcome to RTK =
 
= Welcome to RTK =
  
The RTK project emerged in June 2010 at the International Conference on the use of Computer in Radiation Therapy when Gregory Sharp and Simon Rit discussed the lack of open-source solutions for cone-beam CT reconstruction. At that time, Plastimatch could perform filtered backprojection reconstruction on CPU and GPU but the architecture of the software did not allow easy evolution towards new iterative algorithms. They decided then to develop a new platform based on the already famous ITK.
+
The Reconstruction Toolkit (RTK) is an open-source and cross-platform software for fast circular cone-beam CT reconstruction based on the Insight Toolkit (ITK). RTK is developed by the RTK consortium. This is the wiki documentation, other information is available here:
  
The initial developments were based on existing codes and the platform rapidly allowed efficient filtered backprojection reconstruction using the raw data of several cone-beam CT scanners used in radiation therapy. These developments attracted the interest of the Université Catholique de Louvain and the company Ion Beam Application (IBA) who were developing the first cone-beam CT scanner in a proton therapy treatment room. RTK is now used in IBA scanners.
+
[http://www.openrtk.org/ Main website]
  
Today, these partners are gathered in the RTK consortium. The RTK platform provides an efficient platform for continuous developments whiile benefiting from the new features of ITK.
+
[http://www.openrtk.org/RTK/project/project.html Project]
  
Consult RTK's webpage for more information, [http://www.openrtk.org RTK's webpage]  
+
[http://www.openrtk.org/RTK/resources/resources.html Resources]
  
== Users ==
+
[http://www.openrtk.org/RTK/project/contactus.html Contact us]
  
In this section you will find useful and necessary information in order to proceed using RTK:
+
= GettingStarted.md =
  
* [[RTK/Users|User's guide section]]
+
See the [https://github.com/SimonRit/RTK/blob/master/GettingStarted.md Getting started] and [https://github.com/SimonRit/RTK/blob/master/INSTALLATION.md installation] pages.
  
== Developers ==
+
= Docker =
  
In this section you will find the necessary information to start developing for RTK:
+
Another installation solution is to use the Docker solution provided by Thomas Baudier:
  
* [[RTK/Developers|Developer's guide section]]
+
  docker pull tbaudier/rtk:v1.3.0
 +
  docker run -ti --rm -e DISPLAY=$DISPLAY -v [Documents]:/home tbaudier/rtk:v1.3.0 bash
 +
 
 +
Information on what is installed can be reached using the commands:
 +
 
 +
  docker images
 +
  docker ps -a
 +
 
 +
To clean it after use, you can do:
 +
 
 +
  docker rm -f [container id]
 +
  docker rmi -f [image id]
 +
 
 +
= Tutorials =
 +
 
 +
== Tutorial 0 - Building a HelloWorld application with RTK ==
 +
RTK is a library, therefore it's meant to be integrated into application. This tutorial shows how to create a simple FirstReconstruction project that links with RTK. The source code for this tutorial is located in [https://github.com/SimonRit/RTK/tree/master/examples/FirstReconstruction RTK/examples/FirstReconstruction].
 +
 
 +
* First you need to create a [https://github.com/SimonRit/RTK/blob/master/examples/FirstReconstruction/CMakeLists.txt CMakeLists.txt],
 +
* Create a [https://github.com/SimonRit/RTK/blob/master/examples/FirstReconstruction/FirstReconstruction.cxx FirstReconstruction.cxx] file,
 +
* Run CMake on the FirstReconstruction directory and create a HelloWorld-bin,
 +
* Configure and build the project using your favorite compiler,
 +
* Run <code>FirstReconstruction image.mha geometry.xml</code>. If everything runs correctly, you should see a few messages ending with <code>Done!</code> and two new files in the current directory, image.mha and geometry.xml. image.mha is the reconstruction of a sphere from 360 projections and geometry.xml is the geometry file in the [http://www.openrtk.org/Doxygen/DocGeo3D.html RTK format].
 +
 
 +
== Tutorial 1 - Modifying a basic RTK application ==
 +
 
 +
In [https://github.com/SimonRit/RTK/tree/master/applications/rtktutorialapplication applications/rtktutorialapplication/], you will find a very basic RTK application that can be used as a starting point for building more complex applications. There are many existing applications in [https://github.com/SimonRit/RTK/tree/master/applications applications] which can directly be used. See examples below.
 +
 
 +
= Wrapping =
 +
 
 +
[[SimpleRTK]] provides a wrapping mechanism to several languages such as Python and C#.
 +
 
 +
[[WaterPreCorrection]] is an example of SimpleRTK processing to correct for cupping.
 +
 
 +
[[FanBeam]] is an example of SimpleRTK processing to do 2D fan-beam reconstructions.
 +
 
 +
You can also [[WrappersCompilation|compile them yourself]].
 +
 
 +
= Applications =
 +
 
 +
RTK also provide a set of command line applications that are compiled if the cmake option BUILD_APPLICATIONS is turned on. Each application uses [[http://www.gnu.org/software/gengetopt/gengetopt.html gengetopt]] to allow parsing of the command line options. The manual of each application can be obtained with the --help or -h option. They can be executed sequentially in bash scripts. We provide below links to examples of use for RTK applications.
 +
 
 +
* [[RTK/Scripts/FDK | FDK Shepp Logan ]]
 +
* [[RTK/Scripts/3DCG | 3D Conjugate Gradient ]]
 +
* [[RTK/Scripts/ForwardProjection | Forward projection ]]
 +
* [[RTK/Scripts/RayBoxIntersection | Ray/box projections and reconstruction ]]
 +
* [[RTK/Scripts/DrawGeometricPhantom | 3D geometric phantom ]]
 +
* [[RTK/Scripts/CreateGammexPhantom | 3D gammex phantom ]]
 +
* [[RTK/Scripts/AmsterdamShroud | Amsterdam Shroud image ]]
 +
* [[RTK/Examples/ElektaReconstruction | Reconstruct from Elekta Data]]
 +
* [[RTK/Examples/VarianReconstruction | Reconstruct from Varian Data]]
 +
* [[RTK/Examples/MCCBCTReconstruction | Motion-compensated reconstruction ]]
 +
* [[RTK/Examples/ADMMTVReconstruction | Total variation-regularized reconstruction ]]
 +
* [[RTK/Examples/ADMMWaveletsReconstruction | Daubechies wavelets-regularized reconstruction ]]
 +
* [[RTK/Examples/4DROOSTERReconstruction | 4DROOSTER: Total variation-regularized 3D + time reconstruction ]]
 +
 
 +
= Image quality =
 +
 
 +
[[RTK/ImageQuality | Summary of existing and future developments for image quality in RTK]]
 +
 
 +
= Geometry =
 +
 
 +
The description of the [http://www.openrtk.org/Doxygen/classrtk_1_1ThreeDCircularProjectionGeometry.html 3D circular geometry] is based on the international standard IEC 61217 which has been designed for cone-beam imagers on isocentric radiotherapy systems, but it can be used for any 3D circular trajectory. The fixed coordinate system of RTK and the fixed coordinate system of IEC 61217 are the same. A clear understanding of the geometry is essential for the use of a tomography package. The geometry description has been written in this [http://www.openrtk.org/Doxygen/DocGeo3D.html Doxygen page].
 +
 
 +
== ImagX geometry ==
 +
 
 +
We provide as an example of geometry conversion the [[File:GeometryImagX.pdf]] specifications of the geometry used by the ImagX project (IBA/UCL) with the [[File:GeometryImagX.txt]] script file developed in [http://maxima.sourceforge.net Maxima] to do the conversion.
 +
 
 +
= Developer's corner =
 +
 
 +
== Developer's documentation ==
 +
 
 +
We only provide the [http://www.openrtk.org/Doxygen/index.html doxygen documentation] at the moment.
 +
 
 +
== Coding style  ==
 +
 
 +
RTK is based on ITK and aims at following its coding conventions. Any developer should follow these conventions when submitting new code or contributions to the existing one. We strongly recommend you to read thoroughly [http://www.itk.org/Wiki/ITK/Coding_Style_Guide ITK's style guide].
 +
 
 +
== Testing  ==
 +
 
 +
* The RTK dashboard is available at [http://my.cdash.org/index.php?project=RTK RTK Dashboard]
 +
* [[RTK/TestingDatasets | Documentation ]] on how to add datasets for testing (Girder+CDash)
 +
 
 +
== Meetings ==
 +
 
 +
* [[RTK/Meetings/OnImageQualityInStaticCBCT | July 31, 2015 - RTK user meeting on image quality in static CBCT]]

Latest revision as of 17:05, 8 December 2019

Welcome to RTK

The Reconstruction Toolkit (RTK) is an open-source and cross-platform software for fast circular cone-beam CT reconstruction based on the Insight Toolkit (ITK). RTK is developed by the RTK consortium. This is the wiki documentation, other information is available here:

Main website

Project

Resources

Contact us

GettingStarted.md

See the Getting started and installation pages.

Docker

Another installation solution is to use the Docker solution provided by Thomas Baudier:

 docker pull tbaudier/rtk:v1.3.0
 docker run -ti --rm -e DISPLAY=$DISPLAY -v [Documents]:/home tbaudier/rtk:v1.3.0 bash

Information on what is installed can be reached using the commands:

 docker images
 docker ps -a

To clean it after use, you can do:

 docker rm -f [container id]
 docker rmi -f [image id]

Tutorials

Tutorial 0 - Building a HelloWorld application with RTK

RTK is a library, therefore it's meant to be integrated into application. This tutorial shows how to create a simple FirstReconstruction project that links with RTK. The source code for this tutorial is located in RTK/examples/FirstReconstruction.

  • First you need to create a CMakeLists.txt,
  • Create a FirstReconstruction.cxx file,
  • Run CMake on the FirstReconstruction directory and create a HelloWorld-bin,
  • Configure and build the project using your favorite compiler,
  • Run FirstReconstruction image.mha geometry.xml. If everything runs correctly, you should see a few messages ending with Done! and two new files in the current directory, image.mha and geometry.xml. image.mha is the reconstruction of a sphere from 360 projections and geometry.xml is the geometry file in the RTK format.

Tutorial 1 - Modifying a basic RTK application

In applications/rtktutorialapplication/, you will find a very basic RTK application that can be used as a starting point for building more complex applications. There are many existing applications in applications which can directly be used. See examples below.

Wrapping

SimpleRTK provides a wrapping mechanism to several languages such as Python and C#.

WaterPreCorrection is an example of SimpleRTK processing to correct for cupping.

FanBeam is an example of SimpleRTK processing to do 2D fan-beam reconstructions.

You can also compile them yourself.

Applications

RTK also provide a set of command line applications that are compiled if the cmake option BUILD_APPLICATIONS is turned on. Each application uses [gengetopt] to allow parsing of the command line options. The manual of each application can be obtained with the --help or -h option. They can be executed sequentially in bash scripts. We provide below links to examples of use for RTK applications.

Image quality

Summary of existing and future developments for image quality in RTK

Geometry

The description of the 3D circular geometry is based on the international standard IEC 61217 which has been designed for cone-beam imagers on isocentric radiotherapy systems, but it can be used for any 3D circular trajectory. The fixed coordinate system of RTK and the fixed coordinate system of IEC 61217 are the same. A clear understanding of the geometry is essential for the use of a tomography package. The geometry description has been written in this Doxygen page.

ImagX geometry

We provide as an example of geometry conversion the File:GeometryImagX.pdf specifications of the geometry used by the ImagX project (IBA/UCL) with the File:GeometryImagX.txt script file developed in Maxima to do the conversion.

Developer's corner

Developer's documentation

We only provide the doxygen documentation at the moment.

Coding style

RTK is based on ITK and aims at following its coding conventions. Any developer should follow these conventions when submitting new code or contributions to the existing one. We strongly recommend you to read thoroughly ITK's style guide.

Testing

Meetings