Re: [mcx-users] Questions About MMC Pathlength, Fluorescence, and Jacobian Validity

66 views
Skip to first unread message
Message has been deleted

Qianqian Fang

unread,
May 18, 2025, 6:05:41 PMMay 18
to mcx-...@googlegroups.com, Zobia Chaudhry

hi Zobia, see my replies below

On 5/16/25 18:01, Zobia Chaudhry wrote:

You don't often get email from zobiach...@gmail.com. Learn why this is important

Dear Dr. Fang,

I hope you're doing well. I had a few questions regarding how MMC handles certain aspects of simulation, and I’d really appreciate your insights:

1. What exactly is the pathlength that MMC calculates,


MMC, like MCX, outputs partial pathlengths (ppath) for every detected photon. a ppath stores the accumulative pathlength that a photon-packet travels within a specific tissue type (or label). For example, if a domain contains 3 tissue types (1, 2, 3), the ppath for any given detected photon is a 1x3 vector, storing the ppath for medium type 1/2/3. if you have 1000 detected photon packets, the ppl output is a 1000x3 2D array.

when analyzing data using ppl output, one must consider the photon's weight at detection. the pathlengths associated with photon packets with high detected weight plays a bigger role in the result compared to those from low-weight photon packets.


and what is the best way to extract or compute it?


depends on how you call mmc - if you use mmclab, it is the 2nd output, detp.{ppath,...}, of mmclab; if you use mmc binary, the data are stored in a .mch file

please be aware that the raw numerical values stored in a length unit matching that is used mesh node - if your mesh nodes are not in mm unit, you must scale this value (by setting and using cfg.unitinmm in mmclab)


2. Are the pathlengths generated by MMC weighted by the absorption coefficient (μₐ) in addition to the scattering coefficient (μₛ)?


the ppath values are in length unit without additional weights. however, as I mentioned above, when creating quantities (such as mean pathlength, or meat time of flight) using these length values, you must weight them according to the photon's weight at detection, which is computed using only the mua of the medium.

there are different ways of handling mua/mus in path and weight updates in photon MC simulations. the following JOSA-A paper by Sassaroli and Martelli had compared these methods and showed their pros and cons.

https://pubmed.ncbi.nlm.nih.gov/23201658/

MMC and MCX uses the method referred to as the microscopic Beer-Lambert Law (mBLL) approach in this comparison, which is considered to yield faster convergence compared to other approaches, such as the Albedo-weight (AW) approach used by MCML (and its derivatives).



3. How can MMC be used to run fluorescence simulations. I suspect it might be a matter of placing point sources or detectors deeper in the medium, but I’m not entirely sure. Any guidance or references would be appreciated.


for direct simulation of fluoresence source, please see this recent reply

https://groups.google.com/g/mcx-users/c/uJ-DEguNgss/m/MeEtB5DwEwAJ



Additionally, I wanted to ask about the validity of Jacobian calculations in non-diffusive media:

1. Is the assumption still valid that Jacobians can be calculated as
J(row,:) = Green_s(i,:) .* Green_d(j,:) / Green_sd(row);
even when the medium is not diffusive? I believe so, but I’d like to confirm.


yes. the adjoint formulation for building the Jacobian works for both diffusive and non-diffusive media.

light, as a form of electromagnetic wave, follows the principles of reciprocity. the adjoint formulation for building the Jacobian is a result of principle of reciprocity, which I independently derived in my 2004 paper when I worked on microwave tomography as a graduate student, see Section II.B2, especially Eqs. 22-29

http://fanglab.org/wiki/upload/TMI_MicrowaveTomography_Fang_2004.pdf


2. Lastly, can Jacobians still be interpreted as derivatives with respect to μₐ in non-diffusive or near-diffusive conditions?


yes, that's the very definition of the Jacobian - it is the Fréchet derivative of a multi-output (phi_sd measurements at all src/det pairs) and multi-variable (mu = mua, or mus', or both) function Phi(phi_sd, mu)


hope this is helpful.


Qianqian



Thanks so much for your time and for your work on MMC!

Best regards,
Zobia
--
You received this message because you are subscribed to the Google Groups "mcx-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mcx-users+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/mcx-users/df8769e0-3eea-43d4-a877-f3d88647d2f8n%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages