nipype / pydra

Pydra Dataflow Engine
https://nipype.github.io/pydra/
Other
120 stars 59 forks source link

Foreign Function Tasks #287

Open effigies opened 4 years ago

effigies commented 4 years ago

In Nipype 1.x, we have the MatlabCommand interface, for running MATLAB scripts.

More broadly, we can think of this as a foreign function interface (FFI) that allows us to pass values to a node, which are converted to the input form expected by the foreign function, and run with that scripting engine/interpreter.

I think we can aim for something broad, like ForeignFunctionTask, that could be easily subclassed into RTask, MatlabTask (possibly a separate OctaveTask?), JuliaTask or whatever scripting language people need. I would suggest the base class go here, and MatlabTask go in something like pydra-matlab.

satra commented 4 years ago

i think specialized tasks could have their own package, but i think pydra should have some basic notion of a generic script executor whether python/r/octave/matlab or anything else. perhaps along snakefile or cwl lines. tell me how to create the commandline for you and how to grab/glob outputs from named ports.