I find one of the behaviours that has crept in to some of the modules (notably normalization) suboptimal.
This is that some streams - notably the structural streams, and things to do with BET - have started passing many files with different purposes. So, for example, the structural stream contains both the non-normalized (mms_) and normalized (w_) image. And the segmentation images (in some versions of the code) are output in a single "anatomical" stream.
The problem with this is that it means a module that receives this either has to do file filtering - so assuming something about the filename structure of the inputs - or rely upon the order of the files, which is opaque and could easily break.
I would suggest we revert to having all of the files within a stream being in some sense exchangeable, and use different streams to represent different kinds of data. It comes with a small extra programming overhead, but I think will save pain in the long run.
What do you all think?
I find one of the behaviours that has crept in to some of the modules (notably normalization) suboptimal.
This is that some streams - notably the structural streams, and things to do with BET - have started passing many files with different purposes. So, for example, the structural stream contains both the non-normalized (mms_) and normalized (w_) image. And the segmentation images (in some versions of the code) are output in a single "anatomical" stream.
The problem with this is that it means a module that receives this either has to do file filtering - so assuming something about the filename structure of the inputs - or rely upon the order of the files, which is opaque and could easily break.
I would suggest we revert to having all of the files within a stream being in some sense exchangeable, and use different streams to represent different kinds of data. It comes with a small extra programming overhead, but I think will save pain in the long run.
What do you all think?