Skip to content

General Structure

Nathan Muncy edited this page Mar 8, 2022 · 18 revisions

Under construction. A description of how func_processing is organized.

Organization

This project was written for processing functional MRI (EPI) data for the EMU project. Specifically, the project currently supports task and resting state EPI analyses, de/refacing of T1w files, and automated hippocampal subfield segmentation. Each pipeline is organized within a workflow which manage the various resources, and these workflows are written to be run on the HPC.

Packages

Generally, this project is organized around two main packages, workflow and resources. The workflow packages manage the resource package, and the user is intended to control the workflow from the set of scripts found in cli. The resource package contains sub-packages, one for each type of software employed. Currently, there are sub-packages for AFNI, ASHS, and an extra package for reports. Future development incorporating FreeSurfer and fMRIprep is planned, and respective packages should be made as sub-packages of resources.

Likewise, a unique workflow module exists for each type of analysis. For example, the control_afni module controls all AFNI resources for subject task and RS pipelines as well as group-level analyses.

User control

Users can control the workflow package, and therefore the various resources, via cli scripts. A set of scripts are supplied for the various types of analyses currently supported. These scripts utilize the output of checks.py (logs/completed_preprocessing.tsv) to determine which subjects need which files; this dependency was made so files could be moved from the HPC to local storage. The script checks.py can be used both locally and remotely, and should be run to update the referenced log before every cli script execution. That is, run checks.py before each new batch! Finally, note that checks.py requires internet connectivity.

Automation

Batches of jobs, via cli, can be scheduled via scripts in cron. These are currently outdated but left as examples.

Clone this wiki locally