- What is FullMonte?
- The FullMonte Suite of Tools consists of
- Process flow
- Installation Options
- Where to go next?
What is FullMonte?
- FullMonte is a flexible and accurate simulator for light propagation in complex media, such as biological tissue. It is also the fastest open-source tetrahedral mesh-based Monte Carlo software model available. It has the ability to model light propagation through turbid (highly-scattering) media such as living tissue. Our group has also created several tools that help prepare problems for FullMonte or leverage it to optimize light distributions for specific purposes, such as photodynamic therapy (PDT) planning. This wiki describes how this full suite of tools fits together and what you can do with them.
Lines of Code
- approx. 120.000
The FullMonte Suite of Tools consists of
- FullMonteSW is a fast and accurate simulator of light propagation which supports arbitrary media (tissue types) and geometries (3D structures).
- Meshtool generates tetrahedral volume meshes suitable for use with FullMonteSW from polyhedral surfaces such as those emitted by ITK-Snap. ITK-Snap is often used to delineate or segment tissues in 3D medical images; MeshTool can convert these segmented images into meshes that FullMonteSW can operate upon.
- PDT-space is a tool used for treatment planning of photodynamic therapy (PDT). It optimizes the power allocation to a set of light probes to destroy a tumour while minimizing damage to the healthy organs-at-risk tissue surrounding the tumour. PDT-space can use FullMonteSW to simulate the light propagation for the various probe power allocations it considers.
- Under construction: The PDT GUI will integrate the above tools in a single user interface, along with visualization of their outputs.
- Note: The VTK procedures (blue box) have to be run natively (not through a docker container) on the computer
graph LR A[MeshTool] --> B[Mesh] B1[Tissue's Optical Properties] --> C B --> C[FullMonteSW] B2[Light Source Positions] --> C C --> D[VTK File] D --> D1[VTK] subgraph VTK D1--> D2[Mesh Visualization] end D --> E[PDT Space] E --> F1[Optimized Power of Sources] E --> F2[Final Fluence Distribution]
FullMonte offers two options for building the project. You can use a docker container with either a precompiled image with FullMonteSW already installed or an image where you need to build FullMonte from source. The other option is a native install on your machine. This only work if your are running a UNIX distriubtion.
graph TD A[Install Options] --> B[Docker] A --> C[Native] subgraph "For Users _" B --> D[Pre-Installed FullMonte Image] end subgraph "For Developers" B --> E[FullMonte source build Image] C --> F[Build FullMonte from source] end click D "fullmontesw-container" "Link to user install wiki" click E "Developer-Guide#docker-development-install" "Link to docker -dev install wiki" click F "Developer-Guide#native-development-install-linux-only" "Link to native install wiki"
For Users of FullMonteSW, we recommend to use our Docker image of FullMonteSW. Instructions on how to setup FullMonteSW with Docker are given here:
Developers have two options for installing FullMonteSW:
- Recommended as all libraries and additional software is provided by the Docker image and does not need to be installed manually. However, it is required to build FullMonteSW from source.
- Some libraries must be installed natively to allow visualization of outputs
- Because Docker is a container (like a lightweight virtual machine), direct graphics access is not supported with our pre-built docker containers
- Vtk for visualization should be installed natively
- Coming soon: PDT-GUI should be installed natively