Literature DB >> 35854412

History of Monte Carlo modeling of light transport in tissues using mcml.c.

Steven L Jacques1.   

Abstract

The Monte Carlo simulation called mcml.c was written and shared on-line since 1992. This perspective summarizes the contributions by the people involved in the development of mcml.c, and work by others extending the code.

Entities:  

Mesh:

Year:  2022        PMID: 35854412      PMCID: PMC9295704          DOI: 10.1117/1.JBO.27.8.083002

Source DB:  PubMed          Journal:  J Biomed Opt        ISSN: 1083-3668            Impact factor:   3.758


The JBO Special Section Celebrating 30 Years of Open Source Monte Carlo Codes in Biomedical Optics (Volume 27 Issue 8) commemorates the open source versions of Monte Carlo modeling for biological tissues. About 30 years ago (1992) as the internet was just becoming popular, a program called mcml.c (Monte Carlo multi-layered) was posted on a website at the University of Texas M. D. Anderson Cancer Center (UTMDACC). After the year 2000, the program has been posted at the Oregon Medical Laser Center (https://omlc.org/software/mc), and has been widely used. The paper introducing the program (Wang et al.) has been cited 4095 times as of 7 July 2022, according to Google Scholar. The mcml.c simulation has guided design of diagnostic and therapeutic devices and clinical protocols. This editorial recalls the people who participated in its development. Steven Jacques in 1985 wrote an early Monte Carlo (MC) code while working as a research associate at the Wellman Center for Photomedicine, Massachusetts General Hospital, Boston. At that time, early developments of laser and light applications in medicine were being pursued. People were irradiating skin sites and examining biopsies to determine the damage or effect. However, the penetration of light into tissue was not well known, except for Kubelka–Munk simulations. Certainly, the computational methods were available in other fields (astrophysics, atmospherics, oceanics) but the medical laser community was still on a learning curve about computation. His MC simulation sampled an exponential probability for the photon stepsize. Jacques implemented a lookup-table approach to encoding various scattering functions and explored their effect on observable total and angular reflectance and transmittance for comparison with experiments on ex vivo skin. Steve is now an affiliate professor of bioengineering at the University of Washington, Seattle. Marleen Keijzer wrote the second version of the MC code, working as a graduate student (Delft University, The Netherlands) in the Jacques lab. She wrote the steps of HOP, DROP, SPIN, CHECK in the current mcml.c that described the repeated actions on a simulated photon as it propagates until terminated. Her original names for these steps were in Dutch. This version was written in cylindrical coordinates, which proved to be an awkward approach, but she got it working. She implemented a model of aorta tissue (epithelium, mucosa, submucosa) and demonstrated the delivery of light into a multi-layered tissue. She demonstrated the delivery of excitation light into aorta and the collection of fluorescence from the tissue. At the time, there was a unique shape to the measured autofluorescence of aorta. Her work with another student, Rebecca Richards-Kortum in the MIT lab of Michael Feld, showed this shape to be strongly affected by reabsorption of autofluorescence by hemoglobin in the tissue. Marleen is a professor in the Delft Institute of Applied Mathematics of the Delft University of Technology (TU Delft), The Netherlands. Scott Prahl wrote the third version of the MC code, as a graduate student (University of Texas-Austin in the lab of A. J. Welch). He collaborated in the Jacques lab on experimental goniometric measurements of light scattering (reflectance and transmittance) by ex vivo skin samples. These experiments showed scattering consistent with a Henyey–Greenstein (HG) scattering function, and he incorporated an analytic sampling of the HG function into the MC code. He simplified the code by using Cartesian coordinates. His work showed that HG scattering was a convenient and sufficiently accurate way to characterize and predict tissue scattering, and HG scattering has been widely used. In 1996 when the Jacques lab moved to the Oregon Medical Laser Center (OMLC) and the Oregon Health & Science University (OHSU) in Portland, Oregon, Scott also at OMLC created a widely used website for sharing the MC code (http://omlc.org/software/mc). Scott is a professor of electrical engineering and renewable energy (EERE) at the Oregon Institute of Technology (Oregon Tech). Lihong Wang wrote in 1992 the fourth version of the MC code, as a postdoc in the Jacques lab at UTMDACC. He reorganized the code so that it handled multiple planar layers with each layer having unique optical properties including refractive index. The pre-compiled code used an input file to specify a particular simulation, which was very convenient and greatly helped many to use the code. He wrote the 173-page manual for the code (https://omlc.org/software/mc/man_mcml.pdf), in which he also verified the code by comparing to previous literature. He set up the first website at UTMDACC for sharing of the MC code. He was first author of the publication of the method, which is widely cited. Lihong is a professor of medical engineering and electrical engineering at the California Institute of Technology (Caltech). In summary, this team of Steve, Marleen, Scott, and Lihong (Fig. 1) contributed to the mcml.c development. A key aspect of this effort was the commitment to an open source code and actively sharing the code on websites. Subsequently, improvements on mcml.c were made, as described next. However, mcml.c is simple to use and I often use mcml.c for solutions to problems.
Fig. 1

The team that built the Monte Carlo code in mcml.c.

The team that built the Monte Carlo code in mcml.c. Erik Alerstam et al. at Lund University in 2008 published a CUDA version of mcml.c to provide GPU-accelerated computations. This program is available for download (https://www.atomic.physics.lu.se/biophotonics/research/monte-carlo-simulations/gpu-monte-carlo), and greatly increases the speed of computation. Jessica Ramella-Roman wrote a polarized-light version of mcml.c as a graduate student at OHSU in the Jacques lab (Fig. 2) collaborating with Scott Prahl., The code allowed simulations of the Stokes vector of escaping light (reflectance and transmittance) from a slab of tissue. Her code is publicly shared on the OMLC website (https://omlc.org/ software/polarization). Recently, a GPU-accelerated version of her code has been incorporated into MCX (Q. Fang, Northeastern University). Jessica is now a professor of biomedical engineering at Florida International University, Miami, Florida.
Fig. 2

Others who modified mcml.c. Ramella-Roman implemented polarized-light MC code. Chen and Ting contributed to a voxelated version. Tran implemented a version that allowed 3D structures with varying refractive indices, where boundaries were smoothed between regions of differing refractive index. Alerstam implemented a GPU-accelerated version of mcml.c. Doronin implemented a GPU-accelerated version of mcml.c called mcxyz.c. Marti and Kragh Hansen developed a parallel processing version of mcxyz.c implemented within MATLAB as a teaching tool, called mcmatlab.

Others who modified mcml.c. Ramella-Roman implemented polarized-light MC code. Chen and Ting contributed to a voxelated version. Tran implemented a version that allowed 3D structures with varying refractive indices, where boundaries were smoothed between regions of differing refractive index. Alerstam implemented a GPU-accelerated version of mcml.c. Doronin implemented a GPU-accelerated version of mcml.c called mcxyz.c. Marti and Kragh Hansen developed a parallel processing version of mcxyz.c implemented within MATLAB as a teaching tool, called mcmatlab. Yin-chu Chen as a graduate student at OHSU and OMLC in the Prahl lab (Fig. 2), implemented a voxelated MC code in 2005. Li Ting as a postdoc at OHSU in the Jacques lab (Fig. 2) implemented a voxelated version of mcml.c called mcxyz.c in 2014, inspired by the voxelated MC code of Boas et al. These two implementations were combined into the current version of mcxyz.c (https://omlc.org/software/mc/mcxyz). The program allows each voxel to be a different tissue type with unique optical properties. Anh Phong Tran as a graduate student at Northeastern University, Boston (Fig. 2), modified mcxyz.c to allow for unique refractive indices () for each voxel. The program has a pre-processing step which finds smooth approximate boundaries between regions of voxels with shared , such that refraction (reflectance and transmittance) at boundaries is based on the smooth boundaries and not on the cubic voxels themselves. Alex Doronin as a postdoc at Otago University, New Zealand, in Igor Meglinski’s lab (Fig. 2), implemented a CUDA version of mcxyz.c for GPU-accelerated simulations and shares the code on his website (https://github.com/aledoronin). Alex is an assistant professor in the School of Engineering and Computer Science at Victoria University of Wellington. Dominik Marti, Anders Kragh Hansen, et al. (Fig. 2) at Denmark Technical University, Copenhagen, collaborated on a MATLAB-based version of mcxyz.c called mcmatlab to introduce students to MC modeling. The code is downloadable (https://gitlab.gbar.dtu.dk/biophotonics/MCmatlab), and runs from within a MATLAB environment. The code runs parallel processors so it is about 8-fold faster than mcxyz.c on a single CPU. It is an excellent vehicle for introducing students to Monte Carlo simulations. There are many others who have implemented MC code in various forms for various purposes. This editorial does not attempt a review of MC simulations, but rather recounts the work that has built the original mcml.c code and some immediate improvements. The original goal of mcml.c was to provide an open source description of the basic kernel of computation for MC simulations so as to help others advance the programming. To be commemorating mcml.c after 30 years indicates some success toward that goal.
  11 in total

1.  Fluorescence spectroscopy of turbid media: Autofluorescence of the human aorta.

Authors:  M Keijzer; R R Richards-Kortum; S L Jacques; M S Feld
Journal:  Appl Opt       Date:  1989-10-15       Impact factor: 1.980

2.  Three dimensional Monte Carlo code for photon migration through complex heterogeneous media including the adult human head.

Authors:  David Boas; J Culver; J Stott; A Dunn
Journal:  Opt Express       Date:  2002-02-11       Impact factor: 3.894

3.  Three Monte Carlo programs of polarized light transport into scattering media: part II.

Authors:  Jessica C Ramella-Roman; Scott A Prahl; Steven L Jacques
Journal:  Opt Express       Date:  2005-12-12       Impact factor: 3.894

4.  Three Monte Carlo programs of polarized light transport into scattering media: part I.

Authors:  Jessica Ramella-Roman; Scott Prahl; Steve Jacques
Journal:  Opt Express       Date:  2005-06-13       Impact factor: 3.894

5.  Parallel computing with graphics processing units for high-speed Monte Carlo simulation of photon migration.

Authors:  Erik Alerstam; Tomas Svensson; Stefan Andersson-Engels
Journal:  J Biomed Opt       Date:  2008 Nov-Dec       Impact factor: 3.170

6.  MCmatlab: an open-source, user-friendly, MATLAB-integrated three-dimensional Monte Carlo light transport solver with heat diffusion and tissue damage.

Authors:  Dominik Marti; Rikke N Aasbjerg; Peter E Andersen; Anders K Hansen
Journal:  J Biomed Opt       Date:  2018-12       Impact factor: 3.170

7.  Light distributions in artery tissue: Monte Carlo simulations for finite-diameter laser beams.

Authors:  M Keijzer; S L Jacques; S A Prahl; A J Welch
Journal:  Lasers Surg Med       Date:  1989       Impact factor: 4.025

8.  MCML--Monte Carlo modeling of light transport in multi-layered tissues.

Authors:  L Wang; S L Jacques; L Zheng
Journal:  Comput Methods Programs Biomed       Date:  1995-07       Impact factor: 5.428

9.  Graphics-processing-unit-accelerated Monte Carlo simulation of polarized light in complex three-dimensional media.

Authors:  Shijie Yan; Steven L Jacques; Jessica C Ramella-Roman; Qianqian Fang
Journal:  J Biomed Opt       Date:  2022-05       Impact factor: 3.758

10.  Modeling voxel-based Monte Carlo light transport with curved and oblique boundary surfaces.

Authors:  Anh Phong Tran; Steven Jacques
Journal:  J Biomed Opt       Date:  2020-02       Impact factor: 3.170

View more
  1 in total

1.  Special Section Guest Editorial: Introduction to the Special Section Celebrating 30 years of Open Source Monte Carlo Codes in Biomedical Optics.

Authors:  Qianqian Fang; Fabrizio Martelli; Lothar Lilge
Journal:  J Biomed Opt       Date:  2022-08       Impact factor: 3.758

  1 in total

北京卡尤迪生物科技股份有限公司 © 2022-2023.