Repository files navigation

dcan signal processing

2024.12.01 - add DCANBOLD_reprocess.py to redo the confound removal part ([task] mode below) for minor differences (e.g. no GSR/different movement parameter file/etc) with an all-inclusive Python script that does not need anything else (MATLAB or toolboxes or Connectome Workbench) except for some basic python packages (numpy,scipy,matplotloib,nibabel) installed.

2025.06.02 - Jim made some updates about loading the files. Also it seems the DCAN lab had some updates since Dec 2024 to incorporate no GSR but their no GSR means no average grayordinate signal in the regressor, but we did not have grayordinates, white matter and CSF signal in the regressor. Maybe fix the naming at some point to avoid confusion and provide different options? Also Donna/me had some scripts to create the white matter signal and CSF signal from the volume (NIFTI) data if they do not exist in the original folder, consider adding those in at some point.

(Below is the original README from the DCAN lab)

** This is a repository for the dcan labs bold signal processing. It is forked from FNL_preproc and is meant to take its place. **

This code repository consists of python wrappers and matlab scripts for signal processing of the bold signal extracted from fMRI data. This program is designed for the explicit output data of the HCP fMRI pipeline or its DCAN derivatives. It is not designed with other preprocessed data in mind, so use at your own peril.

installation

Installation requires use of the matlab compiler tool distributed with matlab, or acquiring an up-to-date version of the binaries available upon request.

git clone git@gitlab.com:Fair_lab/dcan_signal_processing.git

cd dcan_signal_processing

./compile.sh <matlab compiler path>

dcan_bold_proc.py

main wrapper for signal processing scripts.


usage: dcan_bold_proc.py [-h] [-v] [--setup] --subject SUBJECT --task TASK
[--output-folder OUTPUT_FOLDER]
[--legacy-tasknames]
[--filter-order FILTER_ORDER] [--lower-bpf LOWER_BPF]
[--upper-bpf UPPER_BPF] [--fd-threshold FD_THRESHOLD]
[--skip-seconds SKIP_SECONDS]
[--contiguous-frames CONTIGUOUS_FRAMES]
[--brain-radius BRAIN_RADIUS]
[--motion-filter-type {notch,lp}]
[--motion-filter-order MOTION_FILTER_ORDER]
[--band-stop-min BAND_STOP_MIN]
[--band-stop-max BAND_STOP_MAX]
[--motion-filter-option MOTION_FILTER_OPTION]
[--teardown] [--tasklist TASKLIST] [--physio PHYSIO]
Wraps the compiled DCAN Signal Processing Matlab script, version: 4.0.0.
Runs in 3 main modes: [setup], [task], and [teardown].
[setup]: creates white matter and ventricular masks for regression, must be
run prior to task.
[task]: computes fd numbers [1][2], runs regressions on a given task/fmri [3]
and outputs a corrected dtseries, along with motion numbers in an
hdf5 (.mat) formatted file.
[teardown]: concatenates any resting state runs into a single dtseries, and
parcellates all final tasks.
optional arguments:
-h, --help show this help message and exit
-v, --version print the software name and version
--setup prepare white matter and ventricle masks, must be run
prior to individual task runs.
--subject SUBJECT subject/participant id
--task TASK name of fmri data as used in the dcan fmri pipeline.
For bids data it is set to "task-NAME"
--output-folder OUTPUT_FOLDER
output folder which contains all files produced by the
dcan fmri-pipeline. Used for setting up standard
inputs and outputs
--legacy-tasknames
parse input task names as done in dcan_bold_processing <= 4.0.4.
use this flag if the input task filenames use the older DCAN HCP pipeline filename convention in which run index is appended to task name, e.g. task-myTask01 instead of task-myTask_run-01. bold signal filtering:
bold signal filtering parameters.
--filter-order FILTER_ORDER
number of filter coefficients for butterworth bandpass
filter.
--lower-bpf LOWER_BPF
lower cut-off frequency (Hz) for the butterworth
bandpass filter.
--upper-bpf UPPER_BPF
upper cut-off frequency (Hz) for the butterworth
bandpass filter.
framewise displacement:
parameters related to computation of framewise displacment (FD)
--fd-threshold FD_THRESHOLD
upper framewise displacement threshold for use in
signal regression.
--skip-seconds SKIP_SECONDS
number of seconds to cut off the beginning of fmri
time series.
--contiguous-frames CONTIGUOUS_FRAMES
number of contigious frames for power 2014 fd
thresholding.
--brain-radius BRAIN_RADIUS
radius of brain for computation of rotational
displacements
--motion-filter-type {notch,lp}
type of band-stop filter to use for removing
respiratory artifact from motion regressors. Current
options are 'notch' for a notch filter or 'lp' for a
lowpass filter.
--motion-filter-order MOTION_FILTER_ORDER
number of filter coeffecients for the band-stop
filter.
--band-stop-min BAND_STOP_MIN
lower frequency (bpm) for the band-stop motion filter.
--band-stop-max BAND_STOP_MAX
upper frequency (bpm) for the band-stop motion filter.
--motion-filter-option MOTION_FILTER_OPTION
determines direction(s) in which to filter respiratory
artifact. Default is all directions.
--physio PHYSIO input .tsv file containing physio data to
automatically determine motion filter parameters.
Columns, start time, and frequency will also need to
be specified. NOT IMPLEMENTED.
final concatenation:
final stage parameters for after setup and tasks. Concatenates, parcellates,
and saves combined FD numbers.
--teardown flag to run final concatenation steps. After tasks
have completed, concatenate resting state data and
parcellate.
--tasklist TASKLIST comma delimited tasks to be concatenated, pass in
argument multiple times to add more task lists. Also
determines which tasks will be parcellated, so a
single task may be input to parcellate it. Required
for this stage. May be a list of one.
References
----------
[1] Fair DA, Miranda-Dominguez O, et al. Correction of respiratory artifacts
in MRI head motion estimates. bioRxiv [Internet]. 2018 Jan 1; Available from:
http://biorxiv.org/content/early/2018/06/07/337360.abstract
[2] Power J, et al. Methods to detect, characterize, and remove motion
artifact in resting state fMRI. Neuroimage [Internet]. Elsevier Inc.; 2014
Jan 1 [cited 2014 Jul 9];84:32041. doi: 10.1016/j.neuroimage.2013.08.048
[3] Friston KJ, et al. Movement-related effects in fMRI time-series. Magn
Reson Med [Internet]. 1996;35(3):34655. doi: 10.1002/mrm.1910350312

Overview

The script is run with calls to three "modes":

--setup

creates ventricular and wm masks from the anatomical segmentations, and computes mean time courses in these classes for use in bold regression later on.

--task TASKNAME

for each fmri run, this script is called to perform regressions on motion, ventricular and white matter signals, as well as mean signal regression. Framewise displacement (FD) is calculated on the motion numbers and used for regression, but also saved for available use in FD thresholding. If motion band-stop parameters are specified, the motion numbers are first filtered in each spatial dimension then FD is computed. The resulting time series is saved along with a 'grayplot' displaying relevant time series data.

--teardown

concatenates any resting state data which shares the same bids task name, also concatenates any FD numbers and saves out a matlab (hdf5) file with various FD threshold masks computed.

About

functional connectivity preprocessing for resting state fMRI outputs of the dcan-fmri-pipelines

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

dcan signal processing

2024.12.01 - add DCANBOLD_reprocess.py to redo the confound removal part ([task] mode below) for minor differences (e.g. no GSR/different movement parameter file/etc) with an all-inclusive Python script that does not need anything else (MATLAB or toolboxes or Connectome Workbench) except for some basic python packages (numpy,scipy,matplotloib,nibabel) installed.

2025.06.02 - Jim made some updates about loading the files. Also it seems the DCAN lab had some updates since Dec 2024 to incorporate no GSR but their no GSR means no average grayordinate signal in the regressor, but we did not have grayordinates, white matter and CSF signal in the regressor. Maybe fix the naming at some point to avoid confusion and provide different options? Also Donna/me had some scripts to create the white matter signal and CSF signal from the volume (NIFTI) data if they do not exist in the original folder, consider adding those in at some point.

(Below is the original README from the DCAN lab)

** This is a repository for the dcan labs bold signal processing. It is forked from FNL_preproc and is meant to take its place. **

This code repository consists of python wrappers and matlab scripts for signal processing of the bold signal extracted from fMRI data. This program is designed for the explicit output data of the HCP fMRI pipeline or its DCAN derivatives. It is not designed with other preprocessed data in mind, so use at your own peril.

installation

Installation requires use of the matlab compiler tool distributed with matlab, or acquiring an up-to-date version of the binaries available upon request.

git clone git@gitlab.com:Fair_lab/dcan_signal_processing.git

cd dcan_signal_processing

./compile.sh <matlab compiler path>

dcan_bold_proc.py

main wrapper for signal processing scripts.


usage: dcan_bold_proc.py [-h] [-v] [--setup] --subject SUBJECT --task TASK
[--output-folder OUTPUT_FOLDER]
[--legacy-tasknames]
[--filter-order FILTER_ORDER] [--lower-bpf LOWER_BPF]
[--upper-bpf UPPER_BPF] [--fd-threshold FD_THRESHOLD]
[--skip-seconds SKIP_SECONDS]
[--contiguous-frames CONTIGUOUS_FRAMES]
[--brain-radius BRAIN_RADIUS]
[--motion-filter-type {notch,lp}]
[--motion-filter-order MOTION_FILTER_ORDER]
[--band-stop-min BAND_STOP_MIN]
[--band-stop-max BAND_STOP_MAX]
[--motion-filter-option MOTION_FILTER_OPTION]
[--teardown] [--tasklist TASKLIST] [--physio PHYSIO]
Wraps the compiled DCAN Signal Processing Matlab script, version: 4.0.0.
Runs in 3 main modes: [setup], [task], and [teardown].
[setup]: creates white matter and ventricular masks for regression, must be
run prior to task.
[task]: computes fd numbers [1][2], runs regressions on a given task/fmri [3]
and outputs a corrected dtseries, along with motion numbers in an
hdf5 (.mat) formatted file.
[teardown]: concatenates any resting state runs into a single dtseries, and
parcellates all final tasks.
optional arguments:
-h, --help show this help message and exit
-v, --version print the software name and version
--setup prepare white matter and ventricle masks, must be run
prior to individual task runs.
--subject SUBJECT subject/participant id
--task TASK name of fmri data as used in the dcan fmri pipeline.
For bids data it is set to "task-NAME"
--output-folder OUTPUT_FOLDER
output folder which contains all files produced by the
dcan fmri-pipeline. Used for setting up standard
inputs and outputs
--legacy-tasknames
parse input task names as done in dcan_bold_processing <= 4.0.4.
use this flag if the input task filenames use the older DCAN HCP pipeline filename convention in which run index is appended to task name, e.g. task-myTask01 instead of task-myTask_run-01. bold signal filtering:
bold signal filtering parameters.
--filter-order FILTER_ORDER
number of filter coefficients for butterworth bandpass
filter.
--lower-bpf LOWER_BPF
lower cut-off frequency (Hz) for the butterworth
bandpass filter.
--upper-bpf UPPER_BPF
upper cut-off frequency (Hz) for the butterworth
bandpass filter.
framewise displacement:
parameters related to computation of framewise displacment (FD)
--fd-threshold FD_THRESHOLD
upper framewise displacement threshold for use in
signal regression.
--skip-seconds SKIP_SECONDS
number of seconds to cut off the beginning of fmri
time series.
--contiguous-frames CONTIGUOUS_FRAMES
number of contigious frames for power 2014 fd
thresholding.
--brain-radius BRAIN_RADIUS
radius of brain for computation of rotational
displacements
--motion-filter-type {notch,lp}
type of band-stop filter to use for removing
respiratory artifact from motion regressors. Current
options are 'notch' for a notch filter or 'lp' for a
lowpass filter.
--motion-filter-order MOTION_FILTER_ORDER
number of filter coeffecients for the band-stop
filter.
--band-stop-min BAND_STOP_MIN
lower frequency (bpm) for the band-stop motion filter.
--band-stop-max BAND_STOP_MAX
upper frequency (bpm) for the band-stop motion filter.
--motion-filter-option MOTION_FILTER_OPTION
determines direction(s) in which to filter respiratory
artifact. Default is all directions.
--physio PHYSIO input .tsv file containing physio data to
automatically determine motion filter parameters.
Columns, start time, and frequency will also need to
be specified. NOT IMPLEMENTED.
final concatenation:
final stage parameters for after setup and tasks. Concatenates, parcellates,
and saves combined FD numbers.
--teardown flag to run final concatenation steps. After tasks
have completed, concatenate resting state data and
parcellate.
--tasklist TASKLIST comma delimited tasks to be concatenated, pass in
argument multiple times to add more task lists. Also
determines which tasks will be parcellated, so a
single task may be input to parcellate it. Required
for this stage. May be a list of one.
References
----------
[1] Fair DA, Miranda-Dominguez O, et al. Correction of respiratory artifacts
in MRI head motion estimates. bioRxiv [Internet]. 2018 Jan 1; Available from:
http://biorxiv.org/content/early/2018/06/07/337360.abstract
[2] Power J, et al. Methods to detect, characterize, and remove motion
artifact in resting state fMRI. Neuroimage [Internet]. Elsevier Inc.; 2014
Jan 1 [cited 2014 Jul 9];84:32041. doi: 10.1016/j.neuroimage.2013.08.048
[3] Friston KJ, et al. Movement-related effects in fMRI time-series. Magn
Reson Med [Internet]. 1996;35(3):34655. doi: 10.1002/mrm.1910350312

Overview

The script is run with calls to three "modes":

--setup

creates ventricular and wm masks from the anatomical segmentations, and computes mean time courses in these classes for use in bold regression later on.

--task TASKNAME

for each fmri run, this script is called to perform regressions on motion, ventricular and white matter signals, as well as mean signal regression. Framewise displacement (FD) is calculated on the motion numbers and used for regression, but also saved for available use in FD thresholding. If motion band-stop parameters are specified, the motion numbers are first filtered in each spatial dimension then FD is computed. The resulting time series is saved along with a 'grayplot' displaying relevant time series data.

--teardown

concatenates any resting state data which shares the same bids task name, also concatenates any FD numbers and saves out a matlab (hdf5) file with various FD threshold masks computed.

About

functional connectivity preprocessing for resting state fMRI outputs of the dcan-fmri-pipelines

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

dcan signal processing

2024.12.01 - add DCANBOLD_reprocess.py to redo the confound removal part ([task] mode below) for minor differences (e.g. no GSR/different movement parameter file/etc) with an all-inclusive Python script that does not need anything else (MATLAB or toolboxes or Connectome Workbench) except for some basic python packages (numpy,scipy,matplotloib,nibabel) installed.

2025.06.02 - Jim made some updates about loading the files. Also it seems the DCAN lab had some updates since Dec 2024 to incorporate no GSR but their no GSR means no average grayordinate signal in the regressor, but we did not have grayordinates, white matter and CSF signal in the regressor. Maybe fix the naming at some point to avoid confusion and provide different options? Also Donna/me had some scripts to create the white matter signal and CSF signal from the volume (NIFTI) data if they do not exist in the original folder, consider adding those in at some point.

(Below is the original README from the DCAN lab)

** This is a repository for the dcan labs bold signal processing. It is forked from FNL_preproc and is meant to take its place. **

This code repository consists of python wrappers and matlab scripts for signal processing of the bold signal extracted from fMRI data. This program is designed for the explicit output data of the HCP fMRI pipeline or its DCAN derivatives. It is not designed with other preprocessed data in mind, so use at your own peril.

installation

Installation requires use of the matlab compiler tool distributed with matlab, or acquiring an up-to-date version of the binaries available upon request.

git clone git@gitlab.com:Fair_lab/dcan_signal_processing.git

cd dcan_signal_processing

./compile.sh <matlab compiler path>

dcan_bold_proc.py

main wrapper for signal processing scripts.


usage: dcan_bold_proc.py [-h] [-v] [--setup] --subject SUBJECT --task TASK
[--output-folder OUTPUT_FOLDER]
[--legacy-tasknames]
[--filter-order FILTER_ORDER] [--lower-bpf LOWER_BPF]
[--upper-bpf UPPER_BPF] [--fd-threshold FD_THRESHOLD]
[--skip-seconds SKIP_SECONDS]
[--contiguous-frames CONTIGUOUS_FRAMES]
[--brain-radius BRAIN_RADIUS]
[--motion-filter-type {notch,lp}]
[--motion-filter-order MOTION_FILTER_ORDER]
[--band-stop-min BAND_STOP_MIN]
[--band-stop-max BAND_STOP_MAX]
[--motion-filter-option MOTION_FILTER_OPTION]
[--teardown] [--tasklist TASKLIST] [--physio PHYSIO]
Wraps the compiled DCAN Signal Processing Matlab script, version: 4.0.0.
Runs in 3 main modes: [setup], [task], and [teardown].
[setup]: creates white matter and ventricular masks for regression, must be
run prior to task.
[task]: computes fd numbers [1][2], runs regressions on a given task/fmri [3]
and outputs a corrected dtseries, along with motion numbers in an
hdf5 (.mat) formatted file.
[teardown]: concatenates any resting state runs into a single dtseries, and
parcellates all final tasks.
optional arguments:
-h, --help show this help message and exit
-v, --version print the software name and version
--setup prepare white matter and ventricle masks, must be run
prior to individual task runs.
--subject SUBJECT subject/participant id
--task TASK name of fmri data as used in the dcan fmri pipeline.
For bids data it is set to "task-NAME"
--output-folder OUTPUT_FOLDER
output folder which contains all files produced by the
dcan fmri-pipeline. Used for setting up standard
inputs and outputs
--legacy-tasknames
parse input task names as done in dcan_bold_processing <= 4.0.4.
use this flag if the input task filenames use the older DCAN HCP pipeline filename convention in which run index is appended to task name, e.g. task-myTask01 instead of task-myTask_run-01. bold signal filtering:
bold signal filtering parameters.
--filter-order FILTER_ORDER
number of filter coefficients for butterworth bandpass
filter.
--lower-bpf LOWER_BPF
lower cut-off frequency (Hz) for the butterworth
bandpass filter.
--upper-bpf UPPER_BPF
upper cut-off frequency (Hz) for the butterworth
bandpass filter.
framewise displacement:
parameters related to computation of framewise displacment (FD)
--fd-threshold FD_THRESHOLD
upper framewise displacement threshold for use in
signal regression.
--skip-seconds SKIP_SECONDS
number of seconds to cut off the beginning of fmri
time series.
--contiguous-frames CONTIGUOUS_FRAMES
number of contigious frames for power 2014 fd
thresholding.
--brain-radius BRAIN_RADIUS
radius of brain for computation of rotational
displacements
--motion-filter-type {notch,lp}
type of band-stop filter to use for removing
respiratory artifact from motion regressors. Current
options are 'notch' for a notch filter or 'lp' for a
lowpass filter.
--motion-filter-order MOTION_FILTER_ORDER
number of filter coeffecients for the band-stop
filter.
--band-stop-min BAND_STOP_MIN
lower frequency (bpm) for the band-stop motion filter.
--band-stop-max BAND_STOP_MAX
upper frequency (bpm) for the band-stop motion filter.
--motion-filter-option MOTION_FILTER_OPTION
determines direction(s) in which to filter respiratory
artifact. Default is all directions.
--physio PHYSIO input .tsv file containing physio data to
automatically determine motion filter parameters.
Columns, start time, and frequency will also need to
be specified. NOT IMPLEMENTED.
final concatenation:
final stage parameters for after setup and tasks. Concatenates, parcellates,
and saves combined FD numbers.
--teardown flag to run final concatenation steps. After tasks
have completed, concatenate resting state data and
parcellate.
--tasklist TASKLIST comma delimited tasks to be concatenated, pass in
argument multiple times to add more task lists. Also
determines which tasks will be parcellated, so a
single task may be input to parcellate it. Required
for this stage. May be a list of one.
References
----------
[1] Fair DA, Miranda-Dominguez O, et al. Correction of respiratory artifacts
in MRI head motion estimates. bioRxiv [Internet]. 2018 Jan 1; Available from:
http://biorxiv.org/content/early/2018/06/07/337360.abstract
[2] Power J, et al. Methods to detect, characterize, and remove motion
artifact in resting state fMRI. Neuroimage [Internet]. Elsevier Inc.; 2014
Jan 1 [cited 2014 Jul 9];84:32041. doi: 10.1016/j.neuroimage.2013.08.048
[3] Friston KJ, et al. Movement-related effects in fMRI time-series. Magn
Reson Med [Internet]. 1996;35(3):34655. doi: 10.1002/mrm.1910350312

Overview

The script is run with calls to three "modes":

--setup

creates ventricular and wm masks from the anatomical segmentations, and computes mean time courses in these classes for use in bold regression later on.

--task TASKNAME

for each fmri run, this script is called to perform regressions on motion, ventricular and white matter signals, as well as mean signal regression. Framewise displacement (FD) is calculated on the motion numbers and used for regression, but also saved for available use in FD thresholding. If motion band-stop parameters are specified, the motion numbers are first filtered in each spatial dimension then FD is computed. The resulting time series is saved along with a 'grayplot' displaying relevant time series data.

--teardown

concatenates any resting state data which shares the same bids task name, also concatenates any FD numbers and saves out a matlab (hdf5) file with various FD threshold masks computed.

About

functional connectivity preprocessing for resting state fMRI outputs of the dcan-fmri-pipelines

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

dcan signal processing

2024.12.01 - add DCANBOLD_reprocess.py to redo the confound removal part ([task] mode below) for minor differences (e.g. no GSR/different movement parameter file/etc) with an all-inclusive Python script that does not need anything else (MATLAB or toolboxes or Connectome Workbench) except for some basic python packages (numpy,scipy,matplotloib,nibabel) installed.

2025.06.02 - Jim made some updates about loading the files. Also it seems the DCAN lab had some updates since Dec 2024 to incorporate no GSR but their no GSR means no average grayordinate signal in the regressor, but we did not have grayordinates, white matter and CSF signal in the regressor. Maybe fix the naming at some point to avoid confusion and provide different options? Also Donna/me had some scripts to create the white matter signal and CSF signal from the volume (NIFTI) data if they do not exist in the original folder, consider adding those in at some point.

(Below is the original README from the DCAN lab)

** This is a repository for the dcan labs bold signal processing. It is forked from FNL_preproc and is meant to take its place. **

This code repository consists of python wrappers and matlab scripts for signal processing of the bold signal extracted from fMRI data. This program is designed for the explicit output data of the HCP fMRI pipeline or its DCAN derivatives. It is not designed with other preprocessed data in mind, so use at your own peril.

installation

Installation requires use of the matlab compiler tool distributed with matlab, or acquiring an up-to-date version of the binaries available upon request.

git clone git@gitlab.com:Fair_lab/dcan_signal_processing.git

cd dcan_signal_processing

./compile.sh <matlab compiler path>

dcan_bold_proc.py

main wrapper for signal processing scripts.


usage: dcan_bold_proc.py [-h] [-v] [--setup] --subject SUBJECT --task TASK
[--output-folder OUTPUT_FOLDER]
[--legacy-tasknames]
[--filter-order FILTER_ORDER] [--lower-bpf LOWER_BPF]
[--upper-bpf UPPER_BPF] [--fd-threshold FD_THRESHOLD]
[--skip-seconds SKIP_SECONDS]
[--contiguous-frames CONTIGUOUS_FRAMES]
[--brain-radius BRAIN_RADIUS]
[--motion-filter-type {notch,lp}]
[--motion-filter-order MOTION_FILTER_ORDER]
[--band-stop-min BAND_STOP_MIN]
[--band-stop-max BAND_STOP_MAX]
[--motion-filter-option MOTION_FILTER_OPTION]
[--teardown] [--tasklist TASKLIST] [--physio PHYSIO]
Wraps the compiled DCAN Signal Processing Matlab script, version: 4.0.0.
Runs in 3 main modes: [setup], [task], and [teardown].
[setup]: creates white matter and ventricular masks for regression, must be
run prior to task.
[task]: computes fd numbers [1][2], runs regressions on a given task/fmri [3]
and outputs a corrected dtseries, along with motion numbers in an
hdf5 (.mat) formatted file.
[teardown]: concatenates any resting state runs into a single dtseries, and
parcellates all final tasks.
optional arguments:
-h, --help show this help message and exit
-v, --version print the software name and version
--setup prepare white matter and ventricle masks, must be run
prior to individual task runs.
--subject SUBJECT subject/participant id
--task TASK name of fmri data as used in the dcan fmri pipeline.
For bids data it is set to "task-NAME"
--output-folder OUTPUT_FOLDER
output folder which contains all files produced by the
dcan fmri-pipeline. Used for setting up standard
inputs and outputs
--legacy-tasknames
parse input task names as done in dcan_bold_processing <= 4.0.4.
use this flag if the input task filenames use the older DCAN HCP pipeline filename convention in which run index is appended to task name, e.g. task-myTask01 instead of task-myTask_run-01. bold signal filtering:
bold signal filtering parameters.
--filter-order FILTER_ORDER
number of filter coefficients for butterworth bandpass
filter.
--lower-bpf LOWER_BPF
lower cut-off frequency (Hz) for the butterworth
bandpass filter.
--upper-bpf UPPER_BPF
upper cut-off frequency (Hz) for the butterworth
bandpass filter.
framewise displacement:
parameters related to computation of framewise displacment (FD)
--fd-threshold FD_THRESHOLD
upper framewise displacement threshold for use in
signal regression.
--skip-seconds SKIP_SECONDS
number of seconds to cut off the beginning of fmri
time series.
--contiguous-frames CONTIGUOUS_FRAMES
number of contigious frames for power 2014 fd
thresholding.
--brain-radius BRAIN_RADIUS
radius of brain for computation of rotational
displacements
--motion-filter-type {notch,lp}
type of band-stop filter to use for removing
respiratory artifact from motion regressors. Current
options are 'notch' for a notch filter or 'lp' for a
lowpass filter.
--motion-filter-order MOTION_FILTER_ORDER
number of filter coeffecients for the band-stop
filter.
--band-stop-min BAND_STOP_MIN
lower frequency (bpm) for the band-stop motion filter.
--band-stop-max BAND_STOP_MAX
upper frequency (bpm) for the band-stop motion filter.
--motion-filter-option MOTION_FILTER_OPTION
determines direction(s) in which to filter respiratory
artifact. Default is all directions.
--physio PHYSIO input .tsv file containing physio data to
automatically determine motion filter parameters.
Columns, start time, and frequency will also need to
be specified. NOT IMPLEMENTED.
final concatenation:
final stage parameters for after setup and tasks. Concatenates, parcellates,
and saves combined FD numbers.
--teardown flag to run final concatenation steps. After tasks
have completed, concatenate resting state data and
parcellate.
--tasklist TASKLIST comma delimited tasks to be concatenated, pass in
argument multiple times to add more task lists. Also
determines which tasks will be parcellated, so a
single task may be input to parcellate it. Required
for this stage. May be a list of one.
References
----------
[1] Fair DA, Miranda-Dominguez O, et al. Correction of respiratory artifacts
in MRI head motion estimates. bioRxiv [Internet]. 2018 Jan 1; Available from:
http://biorxiv.org/content/early/2018/06/07/337360.abstract
[2] Power J, et al. Methods to detect, characterize, and remove motion
artifact in resting state fMRI. Neuroimage [Internet]. Elsevier Inc.; 2014
Jan 1 [cited 2014 Jul 9];84:32041. doi: 10.1016/j.neuroimage.2013.08.048
[3] Friston KJ, et al. Movement-related effects in fMRI time-series. Magn
Reson Med [Internet]. 1996;35(3):34655. doi: 10.1002/mrm.1910350312

Overview

The script is run with calls to three "modes":

--setup

creates ventricular and wm masks from the anatomical segmentations, and computes mean time courses in these classes for use in bold regression later on.

--task TASKNAME

for each fmri run, this script is called to perform regressions on motion, ventricular and white matter signals, as well as mean signal regression. Framewise displacement (FD) is calculated on the motion numbers and used for regression, but also saved for available use in FD thresholding. If motion band-stop parameters are specified, the motion numbers are first filtered in each spatial dimension then FD is computed. The resulting time series is saved along with a 'grayplot' displaying relevant time series data.

--teardown

concatenates any resting state data which shares the same bids task name, also concatenates any FD numbers and saves out a matlab (hdf5) file with various FD threshold masks computed.

About

functional connectivity preprocessing for resting state fMRI outputs of the dcan-fmri-pipelines

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

dcan signal processing

2024.12.01 - add DCANBOLD_reprocess.py to redo the confound removal part ([task] mode below) for minor differences (e.g. no GSR/different movement parameter file/etc) with an all-inclusive Python script that does not need anything else (MATLAB or toolboxes or Connectome Workbench) except for some basic python packages (numpy,scipy,matplotloib,nibabel) installed.

2025.06.02 - Jim made some updates about loading the files. Also it seems the DCAN lab had some updates since Dec 2024 to incorporate no GSR but their no GSR means no average grayordinate signal in the regressor, but we did not have grayordinates, white matter and CSF signal in the regressor. Maybe fix the naming at some point to avoid confusion and provide different options? Also Donna/me had some scripts to create the white matter signal and CSF signal from the volume (NIFTI) data if they do not exist in the original folder, consider adding those in at some point.

(Below is the original README from the DCAN lab)

** This is a repository for the dcan labs bold signal processing. It is forked from FNL_preproc and is meant to take its place. **

This code repository consists of python wrappers and matlab scripts for signal processing of the bold signal extracted from fMRI data. This program is designed for the explicit output data of the HCP fMRI pipeline or its DCAN derivatives. It is not designed with other preprocessed data in mind, so use at your own peril.

installation

Installation requires use of the matlab compiler tool distributed with matlab, or acquiring an up-to-date version of the binaries available upon request.

git clone git@gitlab.com:Fair_lab/dcan_signal_processing.git

cd dcan_signal_processing

./compile.sh <matlab compiler path>

dcan_bold_proc.py

main wrapper for signal processing scripts.


usage: dcan_bold_proc.py [-h] [-v] [--setup] --subject SUBJECT --task TASK
[--output-folder OUTPUT_FOLDER]
[--legacy-tasknames]
[--filter-order FILTER_ORDER] [--lower-bpf LOWER_BPF]
[--upper-bpf UPPER_BPF] [--fd-threshold FD_THRESHOLD]
[--skip-seconds SKIP_SECONDS]
[--contiguous-frames CONTIGUOUS_FRAMES]
[--brain-radius BRAIN_RADIUS]
[--motion-filter-type {notch,lp}]
[--motion-filter-order MOTION_FILTER_ORDER]
[--band-stop-min BAND_STOP_MIN]
[--band-stop-max BAND_STOP_MAX]
[--motion-filter-option MOTION_FILTER_OPTION]
[--teardown] [--tasklist TASKLIST] [--physio PHYSIO]
Wraps the compiled DCAN Signal Processing Matlab script, version: 4.0.0.
Runs in 3 main modes: [setup], [task], and [teardown].
[setup]: creates white matter and ventricular masks for regression, must be
run prior to task.
[task]: computes fd numbers [1][2], runs regressions on a given task/fmri [3]
and outputs a corrected dtseries, along with motion numbers in an
hdf5 (.mat) formatted file.
[teardown]: concatenates any resting state runs into a single dtseries, and
parcellates all final tasks.
optional arguments:
-h, --help show this help message and exit
-v, --version print the software name and version
--setup prepare white matter and ventricle masks, must be run
prior to individual task runs.
--subject SUBJECT subject/participant id
--task TASK name of fmri data as used in the dcan fmri pipeline.
For bids data it is set to "task-NAME"
--output-folder OUTPUT_FOLDER
output folder which contains all files produced by the
dcan fmri-pipeline. Used for setting up standard
inputs and outputs
--legacy-tasknames
parse input task names as done in dcan_bold_processing <= 4.0.4.
use this flag if the input task filenames use the older DCAN HCP pipeline filename convention in which run index is appended to task name, e.g. task-myTask01 instead of task-myTask_run-01. bold signal filtering:
bold signal filtering parameters.
--filter-order FILTER_ORDER
number of filter coefficients for butterworth bandpass
filter.
--lower-bpf LOWER_BPF
lower cut-off frequency (Hz) for the butterworth
bandpass filter.
--upper-bpf UPPER_BPF
upper cut-off frequency (Hz) for the butterworth
bandpass filter.
framewise displacement:
parameters related to computation of framewise displacment (FD)
--fd-threshold FD_THRESHOLD
upper framewise displacement threshold for use in
signal regression.
--skip-seconds SKIP_SECONDS
number of seconds to cut off the beginning of fmri
time series.
--contiguous-frames CONTIGUOUS_FRAMES
number of contigious frames for power 2014 fd
thresholding.
--brain-radius BRAIN_RADIUS
radius of brain for computation of rotational
displacements
--motion-filter-type {notch,lp}
type of band-stop filter to use for removing
respiratory artifact from motion regressors. Current
options are 'notch' for a notch filter or 'lp' for a
lowpass filter.
--motion-filter-order MOTION_FILTER_ORDER
number of filter coeffecients for the band-stop
filter.
--band-stop-min BAND_STOP_MIN
lower frequency (bpm) for the band-stop motion filter.
--band-stop-max BAND_STOP_MAX
upper frequency (bpm) for the band-stop motion filter.
--motion-filter-option MOTION_FILTER_OPTION
determines direction(s) in which to filter respiratory
artifact. Default is all directions.
--physio PHYSIO input .tsv file containing physio data to
automatically determine motion filter parameters.
Columns, start time, and frequency will also need to
be specified. NOT IMPLEMENTED.
final concatenation:
final stage parameters for after setup and tasks. Concatenates, parcellates,
and saves combined FD numbers.
--teardown flag to run final concatenation steps. After tasks
have completed, concatenate resting state data and
parcellate.
--tasklist TASKLIST comma delimited tasks to be concatenated, pass in
argument multiple times to add more task lists. Also
determines which tasks will be parcellated, so a
single task may be input to parcellate it. Required
for this stage. May be a list of one.
References
----------
[1] Fair DA, Miranda-Dominguez O, et al. Correction of respiratory artifacts
in MRI head motion estimates. bioRxiv [Internet]. 2018 Jan 1; Available from:
http://biorxiv.org/content/early/2018/06/07/337360.abstract
[2] Power J, et al. Methods to detect, characterize, and remove motion
artifact in resting state fMRI. Neuroimage [Internet]. Elsevier Inc.; 2014
Jan 1 [cited 2014 Jul 9];84:32041. doi: 10.1016/j.neuroimage.2013.08.048
[3] Friston KJ, et al. Movement-related effects in fMRI time-series. Magn
Reson Med [Internet]. 1996;35(3):34655. doi: 10.1002/mrm.1910350312

Overview

The script is run with calls to three "modes":

--setup

creates ventricular and wm masks from the anatomical segmentations, and computes mean time courses in these classes for use in bold regression later on.

--task TASKNAME

for each fmri run, this script is called to perform regressions on motion, ventricular and white matter signals, as well as mean signal regression. Framewise displacement (FD) is calculated on the motion numbers and used for regression, but also saved for available use in FD thresholding. If motion band-stop parameters are specified, the motion numbers are first filtered in each spatial dimension then FD is computed. The resulting time series is saved along with a 'grayplot' displaying relevant time series data.

--teardown

concatenates any resting state data which shares the same bids task name, also concatenates any FD numbers and saves out a matlab (hdf5) file with various FD threshold masks computed.

About

functional connectivity preprocessing for resting state fMRI outputs of the dcan-fmri-pipelines

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

dcan signal processing

2024.12.01 - add DCANBOLD_reprocess.py to redo the confound removal part ([task] mode below) for minor differences (e.g. no GSR/different movement parameter file/etc) with an all-inclusive Python script that does not need anything else (MATLAB or toolboxes or Connectome Workbench) except for some basic python packages (numpy,scipy,matplotloib,nibabel) installed.

2025.06.02 - Jim made some updates about loading the files. Also it seems the DCAN lab had some updates since Dec 2024 to incorporate no GSR but their no GSR means no average grayordinate signal in the regressor, but we did not have grayordinates, white matter and CSF signal in the regressor. Maybe fix the naming at some point to avoid confusion and provide different options? Also Donna/me had some scripts to create the white matter signal and CSF signal from the volume (NIFTI) data if they do not exist in the original folder, consider adding those in at some point.

(Below is the original README from the DCAN lab)

** This is a repository for the dcan labs bold signal processing. It is forked from FNL_preproc and is meant to take its place. **

This code repository consists of python wrappers and matlab scripts for signal processing of the bold signal extracted from fMRI data. This program is designed for the explicit output data of the HCP fMRI pipeline or its DCAN derivatives. It is not designed with other preprocessed data in mind, so use at your own peril.

installation

Installation requires use of the matlab compiler tool distributed with matlab, or acquiring an up-to-date version of the binaries available upon request.

git clone git@gitlab.com:Fair_lab/dcan_signal_processing.git

cd dcan_signal_processing

./compile.sh <matlab compiler path>

dcan_bold_proc.py

main wrapper for signal processing scripts.


usage: dcan_bold_proc.py [-h] [-v] [--setup] --subject SUBJECT --task TASK
[--output-folder OUTPUT_FOLDER]
[--legacy-tasknames]
[--filter-order FILTER_ORDER] [--lower-bpf LOWER_BPF]
[--upper-bpf UPPER_BPF] [--fd-threshold FD_THRESHOLD]
[--skip-seconds SKIP_SECONDS]
[--contiguous-frames CONTIGUOUS_FRAMES]
[--brain-radius BRAIN_RADIUS]
[--motion-filter-type {notch,lp}]
[--motion-filter-order MOTION_FILTER_ORDER]
[--band-stop-min BAND_STOP_MIN]
[--band-stop-max BAND_STOP_MAX]
[--motion-filter-option MOTION_FILTER_OPTION]
[--teardown] [--tasklist TASKLIST] [--physio PHYSIO]
Wraps the compiled DCAN Signal Processing Matlab script, version: 4.0.0.
Runs in 3 main modes: [setup], [task], and [teardown].
[setup]: creates white matter and ventricular masks for regression, must be
run prior to task.
[task]: computes fd numbers [1][2], runs regressions on a given task/fmri [3]
and outputs a corrected dtseries, along with motion numbers in an
hdf5 (.mat) formatted file.
[teardown]: concatenates any resting state runs into a single dtseries, and
parcellates all final tasks.
optional arguments:
-h, --help show this help message and exit
-v, --version print the software name and version
--setup prepare white matter and ventricle masks, must be run
prior to individual task runs.
--subject SUBJECT subject/participant id
--task TASK name of fmri data as used in the dcan fmri pipeline.
For bids data it is set to "task-NAME"
--output-folder OUTPUT_FOLDER
output folder which contains all files produced by the
dcan fmri-pipeline. Used for setting up standard
inputs and outputs
--legacy-tasknames
parse input task names as done in dcan_bold_processing <= 4.0.4.
use this flag if the input task filenames use the older DCAN HCP pipeline filename convention in which run index is appended to task name, e.g. task-myTask01 instead of task-myTask_run-01. bold signal filtering:
bold signal filtering parameters.
--filter-order FILTER_ORDER
number of filter coefficients for butterworth bandpass
filter.
--lower-bpf LOWER_BPF
lower cut-off frequency (Hz) for the butterworth
bandpass filter.
--upper-bpf UPPER_BPF
upper cut-off frequency (Hz) for the butterworth
bandpass filter.
framewise displacement:
parameters related to computation of framewise displacment (FD)
--fd-threshold FD_THRESHOLD
upper framewise displacement threshold for use in
signal regression.
--skip-seconds SKIP_SECONDS
number of seconds to cut off the beginning of fmri
time series.
--contiguous-frames CONTIGUOUS_FRAMES
number of contigious frames for power 2014 fd
thresholding.
--brain-radius BRAIN_RADIUS
radius of brain for computation of rotational
displacements
--motion-filter-type {notch,lp}
type of band-stop filter to use for removing
respiratory artifact from motion regressors. Current
options are 'notch' for a notch filter or 'lp' for a
lowpass filter.
--motion-filter-order MOTION_FILTER_ORDER
number of filter coeffecients for the band-stop
filter.
--band-stop-min BAND_STOP_MIN
lower frequency (bpm) for the band-stop motion filter.
--band-stop-max BAND_STOP_MAX
upper frequency (bpm) for the band-stop motion filter.
--motion-filter-option MOTION_FILTER_OPTION
determines direction(s) in which to filter respiratory
artifact. Default is all directions.
--physio PHYSIO input .tsv file containing physio data to
automatically determine motion filter parameters.
Columns, start time, and frequency will also need to
be specified. NOT IMPLEMENTED.
final concatenation:
final stage parameters for after setup and tasks. Concatenates, parcellates,
and saves combined FD numbers.
--teardown flag to run final concatenation steps. After tasks
have completed, concatenate resting state data and
parcellate.
--tasklist TASKLIST comma delimited tasks to be concatenated, pass in
argument multiple times to add more task lists. Also
determines which tasks will be parcellated, so a
single task may be input to parcellate it. Required
for this stage. May be a list of one.
References
----------
[1] Fair DA, Miranda-Dominguez O, et al. Correction of respiratory artifacts
in MRI head motion estimates. bioRxiv [Internet]. 2018 Jan 1; Available from:
http://biorxiv.org/content/early/2018/06/07/337360.abstract
[2] Power J, et al. Methods to detect, characterize, and remove motion
artifact in resting state fMRI. Neuroimage [Internet]. Elsevier Inc.; 2014
Jan 1 [cited 2014 Jul 9];84:32041. doi: 10.1016/j.neuroimage.2013.08.048
[3] Friston KJ, et al. Movement-related effects in fMRI time-series. Magn
Reson Med [Internet]. 1996;35(3):34655. doi: 10.1002/mrm.1910350312

Overview

The script is run with calls to three "modes":

--setup

creates ventricular and wm masks from the anatomical segmentations, and computes mean time courses in these classes for use in bold regression later on.

--task TASKNAME

for each fmri run, this script is called to perform regressions on motion, ventricular and white matter signals, as well as mean signal regression. Framewise displacement (FD) is calculated on the motion numbers and used for regression, but also saved for available use in FD thresholding. If motion band-stop parameters are specified, the motion numbers are first filtered in each spatial dimension then FD is computed. The resulting time series is saved along with a 'grayplot' displaying relevant time series data.

--teardown

concatenates any resting state data which shares the same bids task name, also concatenates any FD numbers and saves out a matlab (hdf5) file with various FD threshold masks computed.

About

functional connectivity preprocessing for resting state fMRI outputs of the dcan-fmri-pipelines

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

dcan signal processing

2024.12.01 - add DCANBOLD_reprocess.py to redo the confound removal part ([task] mode below) for minor differences (e.g. no GSR/different movement parameter file/etc) with an all-inclusive Python script that does not need anything else (MATLAB or toolboxes or Connectome Workbench) except for some basic python packages (numpy,scipy,matplotloib,nibabel) installed.

2025.06.02 - Jim made some updates about loading the files. Also it seems the DCAN lab had some updates since Dec 2024 to incorporate no GSR but their no GSR means no average grayordinate signal in the regressor, but we did not have grayordinates, white matter and CSF signal in the regressor. Maybe fix the naming at some point to avoid confusion and provide different options? Also Donna/me had some scripts to create the white matter signal and CSF signal from the volume (NIFTI) data if they do not exist in the original folder, consider adding those in at some point.

(Below is the original README from the DCAN lab)

** This is a repository for the dcan labs bold signal processing. It is forked from FNL_preproc and is meant to take its place. **

This code repository consists of python wrappers and matlab scripts for signal processing of the bold signal extracted from fMRI data. This program is designed for the explicit output data of the HCP fMRI pipeline or its DCAN derivatives. It is not designed with other preprocessed data in mind, so use at your own peril.

installation

Installation requires use of the matlab compiler tool distributed with matlab, or acquiring an up-to-date version of the binaries available upon request.

git clone git@gitlab.com:Fair_lab/dcan_signal_processing.git

cd dcan_signal_processing

./compile.sh <matlab compiler path>

dcan_bold_proc.py

main wrapper for signal processing scripts.


usage: dcan_bold_proc.py [-h] [-v] [--setup] --subject SUBJECT --task TASK
[--output-folder OUTPUT_FOLDER]
[--legacy-tasknames]
[--filter-order FILTER_ORDER] [--lower-bpf LOWER_BPF]
[--upper-bpf UPPER_BPF] [--fd-threshold FD_THRESHOLD]
[--skip-seconds SKIP_SECONDS]
[--contiguous-frames CONTIGUOUS_FRAMES]
[--brain-radius BRAIN_RADIUS]
[--motion-filter-type {notch,lp}]
[--motion-filter-order MOTION_FILTER_ORDER]
[--band-stop-min BAND_STOP_MIN]
[--band-stop-max BAND_STOP_MAX]
[--motion-filter-option MOTION_FILTER_OPTION]
[--teardown] [--tasklist TASKLIST] [--physio PHYSIO]
Wraps the compiled DCAN Signal Processing Matlab script, version: 4.0.0.
Runs in 3 main modes: [setup], [task], and [teardown].
[setup]: creates white matter and ventricular masks for regression, must be
run prior to task.
[task]: computes fd numbers [1][2], runs regressions on a given task/fmri [3]
and outputs a corrected dtseries, along with motion numbers in an
hdf5 (.mat) formatted file.
[teardown]: concatenates any resting state runs into a single dtseries, and
parcellates all final tasks.
optional arguments:
-h, --help show this help message and exit
-v, --version print the software name and version
--setup prepare white matter and ventricle masks, must be run
prior to individual task runs.
--subject SUBJECT subject/participant id
--task TASK name of fmri data as used in the dcan fmri pipeline.
For bids data it is set to "task-NAME"
--output-folder OUTPUT_FOLDER
output folder which contains all files produced by the
dcan fmri-pipeline. Used for setting up standard
inputs and outputs
--legacy-tasknames
parse input task names as done in dcan_bold_processing <= 4.0.4.
use this flag if the input task filenames use the older DCAN HCP pipeline filename convention in which run index is appended to task name, e.g. task-myTask01 instead of task-myTask_run-01. bold signal filtering:
bold signal filtering parameters.
--filter-order FILTER_ORDER
number of filter coefficients for butterworth bandpass
filter.
--lower-bpf LOWER_BPF
lower cut-off frequency (Hz) for the butterworth
bandpass filter.
--upper-bpf UPPER_BPF
upper cut-off frequency (Hz) for the butterworth
bandpass filter.
framewise displacement:
parameters related to computation of framewise displacment (FD)
--fd-threshold FD_THRESHOLD
upper framewise displacement threshold for use in
signal regression.
--skip-seconds SKIP_SECONDS
number of seconds to cut off the beginning of fmri
time series.
--contiguous-frames CONTIGUOUS_FRAMES
number of contigious frames for power 2014 fd
thresholding.
--brain-radius BRAIN_RADIUS
radius of brain for computation of rotational
displacements
--motion-filter-type {notch,lp}
type of band-stop filter to use for removing
respiratory artifact from motion regressors. Current
options are 'notch' for a notch filter or 'lp' for a
lowpass filter.
--motion-filter-order MOTION_FILTER_ORDER
number of filter coeffecients for the band-stop
filter.
--band-stop-min BAND_STOP_MIN
lower frequency (bpm) for the band-stop motion filter.
--band-stop-max BAND_STOP_MAX
upper frequency (bpm) for the band-stop motion filter.
--motion-filter-option MOTION_FILTER_OPTION
determines direction(s) in which to filter respiratory
artifact. Default is all directions.
--physio PHYSIO input .tsv file containing physio data to
automatically determine motion filter parameters.
Columns, start time, and frequency will also need to
be specified. NOT IMPLEMENTED.
final concatenation:
final stage parameters for after setup and tasks. Concatenates, parcellates,
and saves combined FD numbers.
--teardown flag to run final concatenation steps. After tasks
have completed, concatenate resting state data and
parcellate.
--tasklist TASKLIST comma delimited tasks to be concatenated, pass in
argument multiple times to add more task lists. Also
determines which tasks will be parcellated, so a
single task may be input to parcellate it. Required
for this stage. May be a list of one.
References
----------
[1] Fair DA, Miranda-Dominguez O, et al. Correction of respiratory artifacts
in MRI head motion estimates. bioRxiv [Internet]. 2018 Jan 1; Available from:
http://biorxiv.org/content/early/2018/06/07/337360.abstract
[2] Power J, et al. Methods to detect, characterize, and remove motion
artifact in resting state fMRI. Neuroimage [Internet]. Elsevier Inc.; 2014
Jan 1 [cited 2014 Jul 9];84:32041. doi: 10.1016/j.neuroimage.2013.08.048
[3] Friston KJ, et al. Movement-related effects in fMRI time-series. Magn
Reson Med [Internet]. 1996;35(3):34655. doi: 10.1002/mrm.1910350312

Overview

The script is run with calls to three "modes":

--setup

creates ventricular and wm masks from the anatomical segmentations, and computes mean time courses in these classes for use in bold regression later on.

--task TASKNAME

for each fmri run, this script is called to perform regressions on motion, ventricular and white matter signals, as well as mean signal regression. Framewise displacement (FD) is calculated on the motion numbers and used for regression, but also saved for available use in FD thresholding. If motion band-stop parameters are specified, the motion numbers are first filtered in each spatial dimension then FD is computed. The resulting time series is saved along with a 'grayplot' displaying relevant time series data.

--teardown

concatenates any resting state data which shares the same bids task name, also concatenates any FD numbers and saves out a matlab (hdf5) file with various FD threshold masks computed.

About

functional connectivity preprocessing for resting state fMRI outputs of the dcan-fmri-pipelines

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

dcan signal processing

2024.12.01 - add DCANBOLD_reprocess.py to redo the confound removal part ([task] mode below) for minor differences (e.g. no GSR/different movement parameter file/etc) with an all-inclusive Python script that does not need anything else (MATLAB or toolboxes or Connectome Workbench) except for some basic python packages (numpy,scipy,matplotloib,nibabel) installed.

2025.06.02 - Jim made some updates about loading the files. Also it seems the DCAN lab had some updates since Dec 2024 to incorporate no GSR but their no GSR means no average grayordinate signal in the regressor, but we did not have grayordinates, white matter and CSF signal in the regressor. Maybe fix the naming at some point to avoid confusion and provide different options? Also Donna/me had some scripts to create the white matter signal and CSF signal from the volume (NIFTI) data if they do not exist in the original folder, consider adding those in at some point.

(Below is the original README from the DCAN lab)

** This is a repository for the dcan labs bold signal processing. It is forked from FNL_preproc and is meant to take its place. **

This code repository consists of python wrappers and matlab scripts for signal processing of the bold signal extracted from fMRI data. This program is designed for the explicit output data of the HCP fMRI pipeline or its DCAN derivatives. It is not designed with other preprocessed data in mind, so use at your own peril.

installation

Installation requires use of the matlab compiler tool distributed with matlab, or acquiring an up-to-date version of the binaries available upon request.

git clone git@gitlab.com:Fair_lab/dcan_signal_processing.git

cd dcan_signal_processing

./compile.sh <matlab compiler path>

dcan_bold_proc.py

main wrapper for signal processing scripts.


usage: dcan_bold_proc.py [-h] [-v] [--setup] --subject SUBJECT --task TASK
[--output-folder OUTPUT_FOLDER]
[--legacy-tasknames]
[--filter-order FILTER_ORDER] [--lower-bpf LOWER_BPF]
[--upper-bpf UPPER_BPF] [--fd-threshold FD_THRESHOLD]
[--skip-seconds SKIP_SECONDS]
[--contiguous-frames CONTIGUOUS_FRAMES]
[--brain-radius BRAIN_RADIUS]
[--motion-filter-type {notch,lp}]
[--motion-filter-order MOTION_FILTER_ORDER]
[--band-stop-min BAND_STOP_MIN]
[--band-stop-max BAND_STOP_MAX]
[--motion-filter-option MOTION_FILTER_OPTION]
[--teardown] [--tasklist TASKLIST] [--physio PHYSIO]
Wraps the compiled DCAN Signal Processing Matlab script, version: 4.0.0.
Runs in 3 main modes: [setup], [task], and [teardown].
[setup]: creates white matter and ventricular masks for regression, must be
run prior to task.
[task]: computes fd numbers [1][2], runs regressions on a given task/fmri [3]
and outputs a corrected dtseries, along with motion numbers in an
hdf5 (.mat) formatted file.
[teardown]: concatenates any resting state runs into a single dtseries, and
parcellates all final tasks.
optional arguments:
-h, --help show this help message and exit
-v, --version print the software name and version
--setup prepare white matter and ventricle masks, must be run
prior to individual task runs.
--subject SUBJECT subject/participant id
--task TASK name of fmri data as used in the dcan fmri pipeline.
For bids data it is set to "task-NAME"
--output-folder OUTPUT_FOLDER
output folder which contains all files produced by the
dcan fmri-pipeline. Used for setting up standard
inputs and outputs
--legacy-tasknames
parse input task names as done in dcan_bold_processing <= 4.0.4.
use this flag if the input task filenames use the older DCAN HCP pipeline filename convention in which run index is appended to task name, e.g. task-myTask01 instead of task-myTask_run-01. bold signal filtering:
bold signal filtering parameters.
--filter-order FILTER_ORDER
number of filter coefficients for butterworth bandpass
filter.
--lower-bpf LOWER_BPF
lower cut-off frequency (Hz) for the butterworth
bandpass filter.
--upper-bpf UPPER_BPF
upper cut-off frequency (Hz) for the butterworth
bandpass filter.
framewise displacement:
parameters related to computation of framewise displacment (FD)
--fd-threshold FD_THRESHOLD
upper framewise displacement threshold for use in
signal regression.
--skip-seconds SKIP_SECONDS
number of seconds to cut off the beginning of fmri
time series.
--contiguous-frames CONTIGUOUS_FRAMES
number of contigious frames for power 2014 fd
thresholding.
--brain-radius BRAIN_RADIUS
radius of brain for computation of rotational
displacements
--motion-filter-type {notch,lp}
type of band-stop filter to use for removing
respiratory artifact from motion regressors. Current
options are 'notch' for a notch filter or 'lp' for a
lowpass filter.
--motion-filter-order MOTION_FILTER_ORDER
number of filter coeffecients for the band-stop
filter.
--band-stop-min BAND_STOP_MIN
lower frequency (bpm) for the band-stop motion filter.
--band-stop-max BAND_STOP_MAX
upper frequency (bpm) for the band-stop motion filter.
--motion-filter-option MOTION_FILTER_OPTION
determines direction(s) in which to filter respiratory
artifact. Default is all directions.
--physio PHYSIO input .tsv file containing physio data to
automatically determine motion filter parameters.
Columns, start time, and frequency will also need to
be specified. NOT IMPLEMENTED.
final concatenation:
final stage parameters for after setup and tasks. Concatenates, parcellates,
and saves combined FD numbers.
--teardown flag to run final concatenation steps. After tasks
have completed, concatenate resting state data and
parcellate.
--tasklist TASKLIST comma delimited tasks to be concatenated, pass in
argument multiple times to add more task lists. Also
determines which tasks will be parcellated, so a
single task may be input to parcellate it. Required
for this stage. May be a list of one.
References
----------
[1] Fair DA, Miranda-Dominguez O, et al. Correction of respiratory artifacts
in MRI head motion estimates. bioRxiv [Internet]. 2018 Jan 1; Available from:
http://biorxiv.org/content/early/2018/06/07/337360.abstract
[2] Power J, et al. Methods to detect, characterize, and remove motion
artifact in resting state fMRI. Neuroimage [Internet]. Elsevier Inc.; 2014
Jan 1 [cited 2014 Jul 9];84:32041. doi: 10.1016/j.neuroimage.2013.08.048
[3] Friston KJ, et al. Movement-related effects in fMRI time-series. Magn
Reson Med [Internet]. 1996;35(3):34655. doi: 10.1002/mrm.1910350312

Overview

The script is run with calls to three "modes":

--setup

creates ventricular and wm masks from the anatomical segmentations, and computes mean time courses in these classes for use in bold regression later on.

--task TASKNAME

for each fmri run, this script is called to perform regressions on motion, ventricular and white matter signals, as well as mean signal regression. Framewise displacement (FD) is calculated on the motion numbers and used for regression, but also saved for available use in FD thresholding. If motion band-stop parameters are specified, the motion numbers are first filtered in each spatial dimension then FD is computed. The resulting time series is saved along with a 'grayplot' displaying relevant time series data.

--teardown

concatenates any resting state data which shares the same bids task name, also concatenates any FD numbers and saves out a matlab (hdf5) file with various FD threshold masks computed.

About

functional connectivity preprocessing for resting state fMRI outputs of the dcan-fmri-pipelines

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages