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

Investigate generating Slicer CLI definitions from DIPY workflows #4

Open
ebrahimebrahim opened this issue Mar 18, 2024 · 1 comment
Assignees

Comments

@ebrahimebrahim
Copy link
Member

SlicerDIPY

I'm not aware of any such extension. But I don't see anything tricky in the dipy package dependencies so it should be straightforward to run it in the Slicer Python environment.

some standardized interface [...] convert all into individual slicer CLI modules

The Slicer CLI modules are just declared with an xml file that declares input and output arguments.

It looks to me like there is some way to build off of IntrospectiveArgumentParser and cli_flows to grab the input/output arguments and export appropriate xml for each one. I don't exactly know the details, but it assembles an argparse parser so all the information must be there one way or another.

Doing this will drop any caching/chaining support, though, since the Slicer CLI runner saves nodes to temp directory and runs the CLI on those files. There may be some way to specify metadata out of band but I suspect that'll clobber any caching mechanisms.

https://github.com/dipy/dipy/blob/master/dipy/workflows/base.py

https://github.com/dipy/dipy/blob/master/dipy/workflows/cli.py

@ebrahimebrahim
Copy link
Member Author

I think must be the "SlicerDIPY" that I was remembering/hallucinating earlier: https://www.na-mic.org/wiki/2017_Winter_Project_Week/DiPy_in_Slicer

And I couldn't find much on the Slicer discourse.

So it seems there isn't much already done in this space.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants