Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Photon migration simulation #62

Open
rob-luke opened this issue Apr 19, 2020 · 4 comments
Open

Photon migration simulation #62

rob-luke opened this issue Apr 19, 2020 · 4 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@rob-luke
Copy link
Member

rob-luke commented Apr 19, 2020

Add ability to simulate photon migration between source and detector optodes.

Existing solutions

Open design decisions

Here is some of the issues I am considering. Feedback is much appreciated.

  • How to do head segmentation?
    • MNE has support to create boundary element model with three layers (inner skull, outer skull, and skin). Is this sufficient?
    • MNE tutorial could be repurposed (link)?
  • Provide a standard head to do migration on? MNE and Nilearn provide standard heads.
    • I have been using fsaverage for existing MNE tutorials, is this still appropriate?
  • External API?
  • Plotting support. Nilearn plot_stat_map looks appropriate to display the photon migration.
    • Would fit with using Niimg-like objects

Potentially relevant links

@larsoner
Copy link
Member

Be careful about licenses. MNE is BSD so you can only use compatible sources, unless you get the author's permission to relicense under BSD. MCX is GPL so it's off limits for example.

@rob-luke
Copy link
Member Author

Thanks for the comment @larsoner, I am new to license issues, so appreciate the help.

MNE is BSD so you can only use compatible sources

Does this mean that for BSD code I could not even call a command line script that was (for example) GPL? So I could not run...

subprocess.call("gpl_licensed_command_line_program_already_installed_by_user")

@larsoner
Copy link
Member

IANAL but IIRC you can call GPL code binaries, but you cannot link to GPL libraries (like .so / .dll dynamic or especially static linking) unless they are LGPL, and cannot use GPL source code to develop algorithms in BSD libraries. See for example:

https://opensource.stackexchange.com/questions/4106/can-i-dynamically-call-a-lgpl-gpl-software-in-my-closed-source-application

@rob-luke
Copy link
Member Author

rob-luke commented Sep 7, 2021

Ok some progress here. I had a chat with @fangq about potential mechanisms to pass data to a photon migration software. I think as a first approach we could export necessary information in a handy json format which can be read directly in to MCX Cloud http://mcx.space/cloud/ . In the long run it would be good to have all computation locally, but I don't own a GPU, and offloading to this service will skip headaches with dependencies etc to start with.

Just sharing my thoughts out loud here so I don't forget in a few months.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants