codecov[bot]: # [Codecov](https://codecov.io/gh/HBClab/NiBetaSeries/pull/304?src=pr&el=h1) Report
> Merging [#304](https://codecov.io/gh/HBClab/NiBetaSeries/pull/304?src=pr&el=desc) into [master](https://codecov.io/gh/HBClab/NiBetaSeries/commit/1667c8d3a761713604073e37b13ab15df4abd0c5&el=desc) will **increase** coverage by `0.05%`.
> The diff coverage is `100.00%`.


```diff
@@            Coverage Diff             @@
##           master     #304      +/-   ##
==========================================
+ Coverage   90.01%   90.06%   +0.05%     
==========================================
  Files          10       10              
  Lines         771      775       +4     
  Branches      116      117       +1     
==========================================
+ Hits          694      698       +4     
  Misses         45       45              
  Partials       32       32              
```

diff --git a/docs/FAQ.rst b/docs/FAQ.rst
index ce538a4..1ed0e95 100644
--- a/docs/FAQ.rst
+++ b/docs/FAQ.rst
@@ -7,8 +7,7 @@ Frequently Asked Questions
 
 Does NiBetaSeries work with output from old fMRIPrep (< v1.2.0)?
 ----------------------------------------------------------------
-Yes, NiBetaSeries will currently work with older version of fMRIPrep.
-However, this will not continue to be the case.
+No, NiBetaSeries will not work with older version of fMRIPrep.
 To rename your files, you can use renameOldFMRIPREP_.
 
 .. _renameOldFMRIPREP: https://github.com/HBClab/renameOldFMRIPREP
diff --git a/docs/workflows.rst b/docs/workflows.rst
index 37e7da5..9467ae3 100644
--- a/docs/workflows.rst
+++ b/docs/workflows.rst
@@ -26,6 +26,7 @@ Participant Workflow
         norm_betas=False,
         output_dir='.',
         preproc_img_list=[''],
+        return_residuals=False,
         selected_confounds=[''],
         signal_scaling=0,
         smoothing_kernel=None)
diff --git a/src/nibetaseries/cli/run.py b/src/nibetaseries/cli/run.py
index 46edce5..8f82c77 100644
--- a/src/nibetaseries/cli/run.py
+++ b/src/nibetaseries/cli/run.py
@@ -61,18 +61,22 @@ def get_parser():
     parser.add_argument('-v', '--version', action='version',
                         version=verstr)
 
-    # Atlas Arguments (Required Options)
-    atlas_args = parser.add_argument_group('Required Atlas Arguments')
-    atlas_args.add_argument('-a', '--atlas-img', action='store',
-                            required=('-l' in sys.argv or '--atlas-lut' in sys.argv),
-                            help='input atlas nifti where each voxel within a "region" '
-                                 'is labeled with the same integer and there is a unique '
-                                 'integer associated with each region of interest.')
-    atlas_args.add_argument('-l', '--atlas-lut', action='store',
-                            required=('-a' in sys.argv or '--atlas-img' in sys.argv),
-                            help='atlas look up table (tsv) formatted with the columns: '
-                                  'index, regions which correspond to the regions in the '
-                                  'nifti file specified by --atlas-img.')
+    # Workflow Arguments
+    wf_args = parser.add_argument_group('Workflow Arguments')
+    wf_args.add_argument('-a', '--atlas-img', action='store',
+                         required=('-l' in sys.argv or '--atlas-lut' in sys.argv),
+                         help='input atlas nifti where each voxel within a "region" '
+                              'is labeled with the same integer and there is a unique '
+                              'integer associated with each region of interest.')
+    wf_args.add_argument('-l', '--atlas-lut', action='store',
+                         required=('-a' in sys.argv or '--atlas-img' in sys.argv),
+                         help='atlas look up table (tsv) formatted with the columns: '
+                              'index, regions which correspond to the regions in the '
+                              'nifti file specified by --atlas-img.')
+    wf_args.add_argument('--return-residuals', action='store_true', default=False,
+                         help='setting this option returns the residuals from the model'
+                              'while straightforward for LSA, for any other methods, take'
+                              'the residuals with a grain of salt.')
 
     # preprocessing options
     proc_opts = parser.add_argument_group('Options for processing')
@@ -265,6 +269,7 @@ def main():
             high_pass=opts.high_pass,
             norm_betas=opts.normalize_betas,
             output_dir=output_dir,
+            return_residuals=opts.return_residuals,
             run_label=opts.run_label,
             signal_scaling=signal_scaling,
             selected_confounds=opts.confounds,
diff --git a/src/nibetaseries/workflows/base.py b/src/nibetaseries/workflows/base.py
index 2c13d32..581bc52 100644
--- a/src/nibetaseries/workflows/base.py
+++ b/src/nibetaseries/workflows/base.py
@@ -32,8 +32,8 @@ from ..interfaces.nilearn import CensorVolumes
 def init_nibetaseries_participant_wf(
     estimator, atlas_img, atlas_lut, bids_dir,
     database_path, derivatives_pipeline_dir, exclude_description_label,
-    fir_delays, hrf_model, high_pass, norm_betas, output_dir, run_label,
-    selected_confounds, session_label, signal_scaling, smoothing_kernel,
+    fir_delays, hrf_model, high_pass, norm_betas, output_dir, return_residuals,
+    run_label, selected_confounds, session_label, signal_scaling, smoothing_kernel,
     space_label, subject_list, task_label, description_label, work_dir,
         ):
 
@@ -67,6 +67,9 @@ def init_nibetaseries_participant_wf(
             If True, beta estimates are divided by the square root of their variance
         output_dir : str
             Directory where derivatives are saved
+        return_residuals : bool
+            Output the residuals from the betaseries model into the
+            derivatives directory
         run_label : str or None
             Include bold series containing this run label
         selected_confounds : list
@@ -177,6 +180,7 @@ It is released under the [CC0]\
             norm_betas=norm_betas,
             output_dir=output_dir,
             preproc_img_list=preproc_img_list,
+            return_residuals=return_residuals,
             selected_confounds=selected_confounds,
             signal_scaling=signal_scaling,
             smoothing_kernel=smoothing_kernel,
@@ -197,8 +201,8 @@ It is released under the [CC0]\
 def init_single_subject_wf(
     estimator, atlas_img, atlas_lut, bold_metadata_list, brainmask_list,
     confound_tsv_list, events_tsv_list, fir_delays, hrf_model, high_pass,
-    name, norm_betas, output_dir, preproc_img_list, selected_confounds,
-    signal_scaling, smoothing_kernel,
+    name, norm_betas, output_dir, preproc_img_list, return_residuals,
+    selected_confounds, signal_scaling, smoothing_kernel,
         ):
     """
     This workflow completes the generation of the betaseries files
@@ -257,6 +261,9 @@ def init_single_subject_wf(
             Directory where derivatives are saved
         preproc_img_list : list
             list of preprocessed bold files
+        return_residuals : bool
+            Output the residuals from the betaseries model into the
+            derivatives directory
         selected_confounds : list or None
             the list of confounds to be included in regression
         signal_scaling : False or 0
@@ -311,7 +318,8 @@ def init_single_subject_wf(
 
     output_node = pe.Node(niu.IdentityInterface(fields=['correlation_matrix',
                                                         'correlation_fig',
-                                                        'betaseries_file']),
+                                                        'betaseries_file',
+                                                        'residual_file']),
                           name='output_node')
 
     # initialize the betaseries workflow
@@ -389,6 +397,20 @@ def init_single_subject_wf(
             (output_node, ds_correlation_fig, [('correlation_fig', 'in_file')]),
         ])
 
+    if return_residuals:
+        ds_residual_file = pe.MapNode(DerivativesDataSink(base_directory=output_dir),
+                                      iterfield=['in_file'],
+                                      name='ds_residual_file')
+
+        workflow.connect([
+            (betaseries_wf, output_node,
+                [('output_node.residual_file', 'residual_file')]),
+            (output_node, ds_residual_file,
+                [('residual_file', 'in_file')]),
+            (input_node, ds_residual_file,
+                [('preproc_img', 'source_file')]),
+        ])
+
     return workflow
 
 
diff --git a/src/nibetaseries/workflows/model.py b/src/nibetaseries/workflows/model.py
index 5cf2b42..7c42dca 100644
--- a/src/nibetaseries/workflows/model.py
+++ b/src/nibetaseries/workflows/model.py
@@ -85,7 +85,10 @@ def init_betaseries_wf(name="betaseries_wf",
     betaseries_files
         One file per trial type, with each file being
         as long as the number of events for that trial type.
-        (assuming the number of trials for any trial type is above 2)
+    residual_file
+        The residual time series after running beta series.
+        For LSA this is straight forward, but be cautious when
+        interpreting residuals from LSS.
 
     """
     workflow = Workflow(name=name)
@@ -129,7 +132,8 @@ def init_betaseries_wf(name="betaseries_wf",
                 high_pass=high_pass),
             name='betaseries_node')
 
-    output_node = pe.Node(niu.IdentityInterface(fields=['betaseries_files']),
+    output_node = pe.Node(niu.IdentityInterface(fields=['betaseries_files',
+                                                        'residual_file']),
                           name='output_node')
 
     # main workflow
@@ -139,7 +143,8 @@ def init_betaseries_wf(name="betaseries_wf",
                                        ('bold_mask_file', 'mask_file'),
                                        ('bold_metadata', 'bold_metadata'),
                                        ('confounds_file', 'confounds_file')]),
-        (betaseries_node, output_node, [('beta_maps', 'betaseries_files')]),
+        (betaseries_node, output_node, [('beta_maps', 'betaseries_files'),
+                                        ('residual', 'residual_file')]),
     ])
 
     return workflow

connect residuals to output
**Is your feature request related to a problem? Please describe.**
While residuals were added to the interfaces (#294), these are not connected to the main workflow for users.
**Describe the solution you'd like**
Pass residual to the output directory.

**Describe alternatives you've considered**
Keeping it as an interface since using the residuals could be viewed as a "niche" use case of observing the "left-over" correlation between regions after accounting for the trial-to-trial variance.

**Additional context**
Add any other context or screenshots about the feature request here.

diff --git a/src/nibetaseries/cli/tests/test_run.py b/src/nibetaseries/cli/tests/test_run.py
index 5c8fd75..c4181dc 100644
--- a/src/nibetaseries/cli/tests/test_run.py
+++ b/src/nibetaseries/cli/tests/test_run.py
@@ -37,17 +37,18 @@ def test_conditional_arguments(monkeypatch):
 
 
 @pytest.mark.parametrize(
-    "use_atlas,estimator,fir_delays,hrf_model,part_label,use_signal_scaling,norm_betas",
+    ("use_atlas,estimator,fir_delays,hrf_model,part_label,"
+     "use_signal_scaling,norm_betas,return_residuals"),
     [
-        (True, 'lsa', None, 'spm', '01', True, True),
-        (False, 'lss', None, 'spm', 'sub-01', False, False),
-        (True, 'lss', [0, 1, 2, 3, 4], 'fir', None, False, True)
+        (True, 'lsa', None, 'spm', '01', True, True, True),
+        (False, 'lss', None, 'spm', 'sub-01', False, False, False),
+        (True, 'lss', [0, 1, 2, 3, 4], 'fir', None, False, True, True),
     ])
 def test_nibs(
         bids_dir, deriv_dir, sub_fmriprep, sub_metadata, bold_file, preproc_file,
         sub_events, confounds_file, brainmask_file, atlas_file, atlas_lut,
         estimator, fir_delays, hrf_model, monkeypatch, part_label, use_atlas,
-        use_signal_scaling, norm_betas):
+        use_signal_scaling, norm_betas, return_residuals):
     import sys
     bids_dir = str(bids_dir)
     out_dir = os.path.join(bids_dir, 'derivatives')
@@ -79,6 +80,8 @@ def test_nibs(
         args.extend([str(d) for d in fir_delays])
     if part_label:
         args.extend(["--participant-label", part_label])
+    if return_residuals:
+        args.append('--return-residuals')
 
     monkeypatch.setattr(sys, 'argv', args)
     assert main() is None
diff --git a/src/nibetaseries/workflows/tests/test_base.py b/src/nibetaseries/workflows/tests/test_base.py
index d6f668f..3ed0e58 100644
--- a/src/nibetaseries/workflows/tests/test_base.py
+++ b/src/nibetaseries/workflows/tests/test_base.py
@@ -45,6 +45,7 @@ def test_valid_init_nibetaseries_participant_wf(
         high_pass=0.008,
         norm_betas=norm_betas,
         output_dir=output_dir,
+        return_residuals=False,
         run_label=None,
         selected_confounds=['white_matter', 'csf'],
         session_label=None,
@@ -91,6 +92,7 @@ def test_filters_init_nibetaseries_participant_wf(
             high_pass=0.008,
             norm_betas=False,
             output_dir=output_dir,
+            return_residuals=False,
             run_label=run_label,
             selected_confounds=['white_matter', 'csf'],
             session_label=session_label,

pip install -e .[dev]
parse_log_pytest
requirements.txt
pytest pytest-cov pytest-xdist pytest-mock pytest-asyncio jupyter seaborn tox
apt-get update apt-get install -y gcc
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
aiofiles==22.1.0
aiosqlite==0.19.0
anyio==3.7.1
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.2.3
attrs==24.2.0
Babel==2.14.0
backcall==0.2.0
beautifulsoup4==4.13.3
bids-validator==1.14.0
bleach==6.0.0
build==0.10.0
cached-property==1.5.2
cachetools==5.5.2
certifi @ file:///croot/certifi_1671487769961/work/certifi
cffi==1.15.1
chardet==5.2.0
charset-normalizer==3.4.1
check-manifest==0.50
ci-info==0.3.0
citeproc-py==0.6.0
click==8.1.8
codecov==2.1.13
colorama==0.4.6
comm==0.1.4
coverage==7.2.7
cycler==0.11.0
debugpy==1.7.0
decorator==5.1.1
defusedxml==0.7.1
distlib==0.3.9
docopt==0.6.2
duecredit==0.6.5
entrypoints==0.4
etelemetry==0.3.1
exceptiongroup==1.2.2
execnet==2.0.2
fastjsonschema==2.21.1
filelock==3.12.2
flake8==5.0.4
fonttools==4.38.0
fqdn==1.5.1
greenlet==3.1.1
idna==3.10
imageio==2.31.2
importlib-metadata==4.2.0
importlib-resources==5.12.0
iniconfig==2.0.0
ipykernel==6.16.2
ipython==7.34.0
ipython-genutils==0.2.0
ipywidgets==8.1.5
isodate==0.6.1
isoduration==20.11.0
jedi==0.19.2
Jinja2==3.1.6
json5==0.9.16
jsonpointer==3.0.0
jsonschema==4.17.3
jupyter==1.1.1
jupyter-console==6.6.3
jupyter-events==0.6.3
jupyter-server==1.24.0
jupyter-ydoc==0.2.5
jupyter_client==7.4.9
jupyter_core==4.12.0
jupyter_server_fileid==0.9.3
jupyter_server_ydoc==0.8.0
jupyterlab==3.6.8
jupyterlab-pygments==0.2.2
jupyterlab_server==2.24.0
jupyterlab_widgets==3.0.13
kiwisolver==1.4.5
lxml==5.3.1
MarkupSafe==2.1.5
matplotlib==2.2.5
matplotlib-inline==0.1.6
mccabe==0.7.0
mistune==3.0.2
mne==0.18.2
nbclassic==1.2.0
nbclient==0.7.4
nbconvert==7.6.0
nbformat==5.8.0
nest-asyncio==1.6.0
networkx==2.6.3
neurdflib==5.0.1
nibabel==2.4.1
-e git+https://github.com/HBClab/NiBetaSeries.git@45e16203adcd6e6fdb7d7c88e1ee920d7b5a846b#egg=nibetaseries
nilearn==0.4.2
nipype==1.4.2
nistats==0.0.1b2
niworkflows==1.0.4
notebook==6.5.7
notebook_shim==0.2.4
num2words==0.5.14
numpy==1.21.6
packaging==24.0
pandas==0.24.2
pandocfilters==1.5.1
parso==0.8.4
patsy==1.0.1
pexpect==4.9.0
pickleshare==0.7.5
Pillow==9.5.0
pkgutil_resolve_name==1.3.10
platformdirs==4.0.0
pluggy==1.2.0
prometheus-client==0.17.1
prompt_toolkit==3.0.48
prov==2.0.1
psutil==7.0.0
ptyprocess==0.7.0
pybids==0.9.5
pycodestyle==2.9.1
pycparser==2.21
pydot==2.0.0
pydotplus==2.0.2
pyflakes==2.5.0
Pygments==2.17.2
pyparsing==3.1.4
pyproject-api==1.5.3
pyproject_hooks==1.2.0
pyrsistent==0.19.3
pytest==7.4.4
pytest-asyncio==0.21.2
pytest-cov==4.1.0
pytest-mock==3.11.1
pytest-xdist==3.5.0
python-dateutil==2.9.0.post0
python-json-logger==3.0.1
pytz==2025.2
PyWavelets==1.3.0
PyYAML==6.0.1
pyzmq==26.2.1
rdflib==6.3.2
requests==2.31.0
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
scikit-image==0.19.3
scikit-learn==0.19.2
scipy==1.7.3
seaborn==0.11.2
Send2Trash==1.8.3
simplejson==3.20.1
six==1.17.0
sniffio==1.3.1
soupsieve==2.4.1
SQLAlchemy==2.0.40
svgutils==0.3.4
templateflow==0.4.2
terminado==0.17.1
tifffile==2021.11.2
tinycss2==1.2.1
tomli==2.0.1
tornado==6.2
tox==4.8.0
tqdm==4.67.1
traitlets==5.9.0
traits==6.4.3
transforms3d==0.4.2
typing_extensions==4.7.1
uri-template==1.3.0
urllib3==2.0.7
virtualenv==20.26.6
wcwidth==0.2.13
webcolors==1.13
webencodings==0.5.1
websocket-client==1.6.1
widgetsnbextension==4.0.13
y-py==0.6.2
ypy-websocket==0.8.4
zipp==3.15.0

name: NiBetaSeries
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=1.1.1w=h7f8727e_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - aiofiles==22.1.0
      - aiosqlite==0.19.0
      - anyio==3.7.1
      - argon2-cffi==23.1.0
      - argon2-cffi-bindings==21.2.0
      - arrow==1.2.3
      - attrs==24.2.0
      - babel==2.14.0
      - backcall==0.2.0
      - beautifulsoup4==4.13.3
      - bids-validator==1.14.0
      - bleach==6.0.0
      - build==0.10.0
      - cached-property==1.5.2
      - cachetools==5.5.2
      - cffi==1.15.1
      - chardet==5.2.0
      - charset-normalizer==3.4.1
      - check-manifest==0.50
      - ci-info==0.3.0
      - citeproc-py==0.6.0
      - click==8.1.8
      - codecov==2.1.13
      - colorama==0.4.6
      - comm==0.1.4
      - coverage==7.2.7
      - cycler==0.11.0
      - debugpy==1.7.0
      - decorator==5.1.1
      - defusedxml==0.7.1
      - distlib==0.3.9
      - docopt==0.6.2
      - duecredit==0.6.5
      - entrypoints==0.4
      - etelemetry==0.3.1
      - exceptiongroup==1.2.2
      - execnet==2.0.2
      - fastjsonschema==2.21.1
      - filelock==3.12.2
      - flake8==5.0.4
      - fonttools==4.38.0
      - fqdn==1.5.1
      - greenlet==3.1.1
      - idna==3.10
      - imageio==2.31.2
      - importlib-metadata==4.2.0
      - importlib-resources==5.12.0
      - iniconfig==2.0.0
      - ipykernel==6.16.2
      - ipython==7.34.0
      - ipython-genutils==0.2.0
      - ipywidgets==8.1.5
      - isodate==0.6.1
      - isoduration==20.11.0
      - jedi==0.19.2
      - jinja2==3.1.6
      - json5==0.9.16
      - jsonpointer==3.0.0
      - jsonschema==4.17.3
      - jupyter==1.1.1
      - jupyter-client==7.4.9
      - jupyter-console==6.6.3
      - jupyter-core==4.12.0
      - jupyter-events==0.6.3
      - jupyter-server==1.24.0
      - jupyter-server-fileid==0.9.3
      - jupyter-server-ydoc==0.8.0
      - jupyter-ydoc==0.2.5
      - jupyterlab==3.6.8
      - jupyterlab-pygments==0.2.2
      - jupyterlab-server==2.24.0
      - jupyterlab-widgets==3.0.13
      - kiwisolver==1.4.5
      - lxml==5.3.1
      - markupsafe==2.1.5
      - matplotlib==2.2.5
      - matplotlib-inline==0.1.6
      - mccabe==0.7.0
      - mistune==3.0.2
      - mne==0.18.2
      - nbclassic==1.2.0
      - nbclient==0.7.4
      - nbconvert==7.6.0
      - nbformat==5.8.0
      - nest-asyncio==1.6.0
      - networkx==2.6.3
      - neurdflib==5.0.1
      - nibabel==2.4.1
      - nibetaseries==0.5.0.post1+g45e1620
      - nilearn==0.4.2
      - nipype==1.4.2
      - nistats==0.0.1b2
      - niworkflows==1.0.4
      - notebook==6.5.7
      - notebook-shim==0.2.4
      - num2words==0.5.14
      - numpy==1.21.6
      - packaging==24.0
      - pandas==0.24.2
      - pandocfilters==1.5.1
      - parso==0.8.4
      - patsy==1.0.1
      - pexpect==4.9.0
      - pickleshare==0.7.5
      - pillow==9.5.0
      - pkgutil-resolve-name==1.3.10
      - platformdirs==4.0.0
      - pluggy==1.2.0
      - prometheus-client==0.17.1
      - prompt-toolkit==3.0.48
      - prov==2.0.1
      - psutil==7.0.0
      - ptyprocess==0.7.0
      - pybids==0.9.5
      - pycodestyle==2.9.1
      - pycparser==2.21
      - pydot==2.0.0
      - pydotplus==2.0.2
      - pyflakes==2.5.0
      - pygments==2.17.2
      - pyparsing==3.1.4
      - pyproject-api==1.5.3
      - pyproject-hooks==1.2.0
      - pyrsistent==0.19.3
      - pytest==7.4.4
      - pytest-asyncio==0.21.2
      - pytest-cov==4.1.0
      - pytest-mock==3.11.1
      - pytest-xdist==3.5.0
      - python-dateutil==2.9.0.post0
      - python-json-logger==3.0.1
      - pytz==2025.2
      - pywavelets==1.3.0
      - pyyaml==6.0.1
      - pyzmq==26.2.1
      - rdflib==6.3.2
      - requests==2.31.0
      - rfc3339-validator==0.1.4
      - rfc3986-validator==0.1.1
      - scikit-image==0.19.3
      - scikit-learn==0.19.2
      - scipy==1.7.3
      - seaborn==0.11.2
      - send2trash==1.8.3
      - simplejson==3.20.1
      - six==1.17.0
      - sniffio==1.3.1
      - soupsieve==2.4.1
      - sqlalchemy==2.0.40
      - svgutils==0.3.4
      - templateflow==0.4.2
      - terminado==0.17.1
      - tifffile==2021.11.2
      - tinycss2==1.2.1
      - tomli==2.0.1
      - tornado==6.2
      - tox==4.8.0
      - tqdm==4.67.1
      - traitlets==5.9.0
      - traits==6.4.3
      - transforms3d==0.4.2
      - typing-extensions==4.7.1
      - uri-template==1.3.0
      - urllib3==2.0.7
      - virtualenv==20.26.6
      - wcwidth==0.2.13
      - webcolors==1.13
      - webencodings==0.5.1
      - websocket-client==1.6.1
      - widgetsnbextension==4.0.13
      - y-py==0.6.2
      - ypy-websocket==0.8.4
      - zipp==3.15.0
prefix: /opt/conda/envs/NiBetaSeries

src/nibetaseries/workflows/tests/test_base.py::test_valid_init_nibetaseries_participant_wf[lsa-None-spm-0-True] src/nibetaseries/workflows/tests/test_base.py::test_valid_init_nibetaseries_participant_wf[lss-None-spm-False-False] src/nibetaseries/workflows/tests/test_base.py::test_valid_init_nibetaseries_participant_wf[lss-fir_delays2-fir-False-True] src/nibetaseries/workflows/tests/test_base.py::test_filters_init_nibetaseries_participant_wf[these-are-not-valid-filters] src/nibetaseries/workflows/tests/test_base.py::test_filters_init_nibetaseries_participant_wf[123-123-123-123-123]
src/nibetaseries/cli/tests/test_run.py::test_nibs[True-lsa-None-spm-01-True-True-True] src/nibetaseries/cli/tests/test_run.py::test_nibs[False-lss-None-spm-sub-01-False-False-False] src/nibetaseries/cli/tests/test_run.py::test_nibs[True-lss-fir_delays2-fir-None-False-True-True]
src/nibetaseries/cli/tests/test_run.py::test_get_parser src/nibetaseries/cli/tests/test_run.py::test_conditional_arguments src/nibetaseries/cli/tests/test_run.py::test_init src/nibetaseries/cli/tests/test_run.py::test_deriv_directory src/nibetaseries/cli/tests/test_run.py::test_fir_delays src/nibetaseries/workflows/tests/test_base.py::test_check_bs_len[fnames0-lengths0-expected_out0] src/nibetaseries/workflows/tests/test_base.py::test_check_bs_len[fnames1-lengths1-expected_out1] src/nibetaseries/workflows/tests/test_base.py::test_check_bs_len[fnames2-lengths2-None]
src/nibetaseries/workflows/model.py docs/workflows.rst docs/FAQ.rst src/nibetaseries/cli/run.py src/nibetaseries/workflows/base.py
src/nibetaseries/workflows/model.py docs/workflows.rst docs/FAQ.rst src/nibetaseries/cli/run.py src/nibetaseries/workflows/base.py