PennLINC / aslprep

Preprocessing of arterial spin labeling (ASL) data
https://aslprep.readthedocs.io
Other
41 stars 15 forks source link

SCRUB limited by chi-squared values to scans with <= 100 control-label pairs #394

Open tsalo opened 8 months ago

tsalo commented 8 months ago

Summary

The function _getchisquare relies on hardcoded chi-squared values, which only go up to 100 dof, which means that any scans with more than that number of control-label pairs will raise an error.

I recall trying out different settings in scipy.stats.chi2 calls before, but not being able to figure out where these specific chi-squared values come from, so I need to ask Sudipto Dolui for help.

This stems from https://neurostars.org/t/aslprep-basil-doesnt-work/28631.

Additional details

What were you trying to do?

Run ASLPrep with scorescrub enabled on dat awith 135 control-label pairs.

What did you expect to happen?

What actually happened?

Traceback:
    Traceback (most recent call last):
      File "/usr/local/miniconda/lib/python3.9/site-packages/nipype/interfaces/base/core.py", line 397, in run
        runtime = self._run_interface(runtime)
      File "/usr/local/miniconda/lib/python3.9/site-packages/aslprep/interfaces/cbf.py", line 745, in _run_interface
        cbfscrub = _scrubcbf(
      File "/usr/local/miniconda/lib/python3.9/site-packages/aslprep/utils/cbf.py", line 439, in _scrubcbf
        thresh1, thresh3 = _getchisquare(y.shape[0])
      File "/usr/local/miniconda/lib/python3.9/site-packages/aslprep/utils/cbf.py", line 273, in _getchisquare
        return a[n - 1], b[n - 1]
    IndexError: list index out of range