Configuration Reference#
All configuration lives in a single YAML file (lc_config.yaml) with
three top-level sections, plus a separate subseslist.tsv.
Copy the bundled examples to get started:
lc copy_configs --output /path/to/basedir/code/
general#
Project-level settings shared by all pipelines.
general:
basedir: /scratch/tlei/VOTCLOC
bidsdir_name: BIDS
container: rtppreproc
analysis_name: main
host: DIPC
deriv_layout: legacy
force: True
Key |
Type |
Description |
|---|---|---|
|
str |
Absolute path to the project root directory. |
|
str |
Name of the BIDS directory (one level under |
|
str |
Pipeline or analysis type to run. See Core Concepts for the full list. |
|
str |
Name tag appended to the derivatives folder (e.g. |
|
str |
Compute host: |
|
str |
|
|
bool |
Overwrite existing files in the analysis directory. |
container_specific#
Parameters passed to the container or analysis pipeline. Keyed by container
name; only the block matching general.container is used at runtime.
Note
Current state of this section:
The RTP2 DWI pipeline blocks (
rtppreproc,rtp2-preproc,freesurferator,anatrois, etc.) are documented manually below. These configs are hand-written by the user and consumed directly by the container prepare logic indwi_prepare.The fMRI-GLM prepare pipeline (
fMRI-GLM) already has a built-in config generator. Runningrun_glm_prepare()without a config (or callinglc preparewith nocontainer_specificblock) will write a fully annotated examplelc_config_example.yamlto the current directory. See Prepare — fMRI GLM for the full key reference.In the near future, every pipeline class will expose the same
write_example_confighelper so that users never need to writecontainer_specificblocks by hand. The RTP2 DWI pipelines will be the next to receive this treatment.
rtppreproc / rtp2-preproc#
container_specific:
rtppreproc:
version: 1.2.0-3.0.3
precontainer_anat: freesurferator_0.2.1_7.4.1
anat_analysis_name: main
separated_shell_files: True
rpe: True
Key |
Description |
|---|---|
|
Container version tag; used in the derivatives folder name. |
|
Name of the anatomical derivatives folder (FreeSurfer / anatrois output). |
|
Analysis name inside the anatomical derivatives folder. |
|
|
|
|
freesurferator / anatrois#
container_specific:
freesurferator:
version: 0.2.1_7.4.1
pre_fs: True
prefs_dir_name: anatrois_4.5.3-7.3.2
prefs_analysis_name: "01"
prefs_zipname: '^freesurferator.*.zip$|^anatrois.*\.zip$'
annotfile: /path/to/annots.zip
use_src_session: T01
Key |
Description |
|---|---|
|
Whether a pre-run FreeSurfer result is available. |
|
Derivatives folder containing the pre-run FreeSurfer. |
|
Analysis name inside that folder. |
|
Regex pattern to locate the pre-run zip file. |
|
Optional path to a FreeSurfer annotation zip. |
|
Session ID to use as the T1 source (e.g. |
fMRI-GLM#
Tip
Rather than writing this block by hand, let the pipeline generate an annotated example for you:
lc prepare --lc_config lc_config.yaml # omit container_specific.fMRI-GLM
# → writes lc_config_example.yaml in the current directory
See Prepare — fMRI GLM for a full explanation of every key and the prepare workflow.
container_specific:
fMRI-GLM:
is_WC: False
output_bids: BIDS_WC # WC mode only
fmriprep_analysis_name: fmriprep-25.1.4
task: null
start_scans: 5
space: fsnative
contrast_yaml: /path/to/contrast.yaml
output_name: glm_output
slice_timing_ref: 0.5
use_smoothed: False
dry_run: False
sm: null
mask: null
selected_runs: null
power_analysis: False
n_iterations: 10
seed: 42
total_runs: 10
host_options#
HPC scheduler settings. One block per host; only the block matching
general.host is used.
DIPC — SLURM#
host_options:
DIPC:
use_module: True
apptainer: Apptainer
manager: slurm
system: scratch
tmpdir: /scratch/tlei/tmp
mount_options: ['/scratch']
job_name: votcloc
cores: 20
memory: 32G
partition: general
qos: regular
walltime: '10:00:00'
BCBL — SGE#
host_options:
BCBL:
use_module: True
apptainer: apptainer/latest
manager: sge
mount_options: ['/bcbl', '/tmp', '/scratch']
job_name: votcloc
cores: 8
memory: 32G
queue: long.q
walltime: '25:30:00'
local#
host_options:
local:
use_module: True # set False if apptainer is in PATH without module load
apptainer: apptainer/latest
mount_options: ['/bcbl', '/tmp', '/scratch', '/export']
manager: local
launch_mode: parallel # 'serial' or 'parallel'
max_workers: 2 # parallel only: max concurrent containers
mem_per_job: 32g # parallel only: memory cap per worker (e.g. 32g, 512m)
Key |
Type |
Description |
|---|---|---|
|
bool |
|
|
str |
Module name passed to |
|
list |
Filesystem paths to bind-mount into every container. |
|
str |
|
|
int |
Maximum number of containers running at the same time (parallel mode
only). Rule of thumb: |
|
str |
Memory ceiling per worker process enforced by the OS ( |
subseslist.txt#
A comma-separated file specifying which subjects and sessions to process.
sub,ses,RUN
01,T01,True
01,T02,True
02,T01,False
Column |
Description |
|---|---|
|
Subject ID without the |
|
Session ID without the |
|
|
Tip
Generate a subseslist from an existing BIDS directory automatically:
lc gen_subses --basedir /path/to/BIDS --name subseslist.tsv