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

Excluded participants / runs #28

Open
Remi-Gau opened this issue May 5, 2022 · 5 comments
Open

Excluded participants / runs #28

Remi-Gau opened this issue May 5, 2022 · 5 comments

Comments

@Remi-Gau
Copy link
Contributor

Remi-Gau commented May 5, 2022

Older versions of the model had those, I think.

Would be nice to maybe be able to specify this though...

Otherwise transformers would have to be used to algorithmically exclude participants based on motion or something?

Tagging @rotemb9

@effigies
Copy link
Contributor

effigies commented May 5, 2022

I would probably do this by adding a column in scans.tsv or participants.tsv to mark a subject/run as include/exclude. You could then just use "include": [1] in your Inputs object.

@rotemb9
Copy link

rotemb9 commented May 5, 2022

This would probably work, but I see some issues with that. Mainly, that to know who was actually excluded you would need to go check the file/s. For the participants it's just one file, which is ok, but for the runs it's many files... Might be better to have an explicit way of indicating that, or at least indicating the rule by which this was decided. For example, it's common to exclude runs with more than x% of volumes with FD values or other values above a certain threshold. Would be nice to specify that somehow in the bsm json file, even if it can't actually do the computation (though ideally of course it would also perform the computations with the transformations).
Also, specifically for participants, it would be much simpler to use the "input" to exclude, but for this we would need a "not" operator, to define which subjects to not include rather than who to include (this might be a very long list of included participants).

@jdkent
Copy link

jdkent commented May 5, 2022

For the participants it's just one file, which is ok, but for the runs it's many files... Might be better to have an explicit way of indicating that, or at least indicating the rule by which this was decided. For example, it's common to exclude runs with more than x% of volumes with FD values or other values above a certain threshold.

Sounds like the job for another utility that can read in a confounds file for each participant and write out/modify a scans.tsv to identify which scans should be excluded. I feel like I've done something like this before, I'll see if I can find relevant code.

@adelavega
Copy link
Contributor

+1. I think as far as BIDS Stats Models is concerned, as long as you can specify your inputs, we've done our job. That said, I also agree w/ @rotemb9 that this is a common enough workflow that we should document what best-practice procedure looks like.

@adelavega
Copy link
Contributor

adelavega commented May 5, 2022

I can see the appeal of adding an "Exclude" directive for sure.

Again though, the StatsModels goal is not to be easy to edit by hand. We sort of already gave up on that since its always going to be hard to edit. I think as long as the model is explicit, another tool could make it easy to "Exclude" participants, and then generate the appropriate list of "Inputs".

The problem with having "Exclude" is it adds complexity to the spec and implementations. That said, I could see that certain cases such as this are common enough that it could be worth it, so I'm not 100% again, just think if we can solve it with a tool that writes models that would be better.

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

5 participants