Replies: 1 comment 11 replies
|
Hi @Alena795! Thanks for considering using Koma :) As you noticed, Koma is designed to be extended. The Bloch–McConnell equation is something we are interested in implementing later this year, after multi-receive and pTx support. We would also be happy to receive contributions from the community. For Bloch–McConnell specifically, some heavier lifting would be needed. For example, the exchange constants, pool fractions, and other pool-specific properties would need to be added to the Everything related to the simulation itself could likely be extended without touching the core source code. For instance, we could add an One important point is that implementing the simulation may not be the hardest part. A more challenging aspect may be defining a If you can help us define a relevant experiment with an expected result, that would help a lot. Otherwise, I would be happy to discuss this further in a meeting and guide you through the implementation. I am also thinking that the exchange constants, pool fractions, and other properties such as T1, T2, and off-resonance could be defined for every position. However, that level of flexibility may not be necessary for an initial implementation. We could start with a simpler version first, possibly one that does not require defining a completely new |
Uh oh!
There was an error while loading. Please reload this page.
Hello,
First of all, thank you very much for developing KomaMRI.
I would like to ask about the feasibility of implementing a two-pool Bloch–McConnell simulator, using the extensibility of “SimulationMethod”. In the paper “KomaMRI.jl: An open-source framework for general MRI simulations with GPU acceleration”, it is stated that “The Bloch–McConnell equations could also be implemented accurately with the operator splitting method” suggesting that a multi-pool exchange model could be possible in Koma.
From reading the Koma documentation, especially the parts mentioning:
it seems that KomaMRI is intentionally designed so that the simulator is not fundamentally tied to the standard Bloch state representation (Mx, My, Mz). My understanding is that Bloch–McConnell dynamics mainly require replacing the magnetization state representation and redefining the rotation/relaxation steps with appropriate operator splitting in the precession/excitation functions. Instead of a single-pool state (Mx,My,Mz), one would evolve a multi-pool state such as: (Mxa,Mya,Mza,Mxb,Myb,Mzb).
So I suppose my question is: could the simulator architecture support a multi-pool Bloch–McConnell implementation purely through external extension using a custom SimulationMethod, or would changes in the source code be necessary?
Thank you very much!
All reactions