poldracklab / fitlins

Fit Linear Models to BIDS Datasets
https://fitlins.readthedocs.io
Apache License 2.0
73 stars 30 forks source link

Adapt FSL Level1Design to handle LoadBIDSModel outputs #114

Open effigies opened 5 years ago

effigies commented 5 years ago

This will probably require someone with extensive FSL experience, as the nipype Level1Design is very convoluted.

akimbler commented 4 years ago

@effigies I'd like to work on this issue. I have a few questions though.

Assuming that the dense output of LoadBIDSModel has already had the requisite transforms applied, it might be easier to just avoid working with the Level1Design interface altogether and instead just load the design and contrast matrices. FILMGLS can take the design matrix with minimal changes that can be constructed by just creating a simple interface around Text2Vest which hasn't been implemented in Nipype as far as I recall, or just writing the matrix and contrast files from scratch by with added /NumWaves /NumPoints and /Matrix headers for FSL to read.

adelavega commented 4 years ago

Cool, that generic FSL interface to FILMGLS would probably be a nice contribution on its own that later can be ported to nipype.

effigies commented 4 years ago

There is a FILMGLS interface already that we may be able to use without modification.

One of the useful questions when looking at the different tools is precisely the differences in design matrix generated by a model specification, so that would still be good to generalize.

Nonetheless, being able to swap out the estimator is still a goal, so full speed ahead there.

adelavega commented 4 years ago

I agree about your first point in principle, but isn't the idea of fitlins to use pybids for all that stuff? So that might be a good goal but I'm not sure if it'll ever make sense in fitlins, unless FSL were to implement reading in BIDS-StatsModels (which seems unlikely).

jdkent commented 2 years ago

I'm thinking about picking this up, FSL crowd should get some :heart: . Text2Vest still looks like a good way to go, so I can open a pull request to nipype first. Then I will see if FILMGLS can be used without modification?