- aas_processBIDS generates subject names without "subj-"
- aas_processBIDS and aa_export_toBIDS supports T2-weighted and diffusion data
- aaq_qsub and aaq_matlab_pct are based on the same setting
aap.directory_conventions.poolprofilewhich refers to a more standard profile rather than to a custom function - module domain and modality is changed dynamically according to the input
- processing ASL data
ignoreseriesis implemented- improved compatibility with MATLAB R2015a
- improved compatibility with SPM8
- stand-alone:
- pragmas added to support building stand-alone version
- aa_build_standalone to generate new functions with actualised pragmas
- aamod_math supports
- series of operations
- arithmetic operations (+,-,*,/)
- aamod_convert_structural supports averaging
- aamod_structuralfromnifti
- handles multiple images (+averaging)
- handles multiple modalities (T1, T2)
- saves header (BIDS)
- aamod_convert_diffusion outputs DICOM header
- aamod_diffusion_coreg_extended_2DKI and aamod_diffusion_coreg_extended_2DTI are parallelised across sessions.
- aas_processinput can process pipeline without modelling and pipeline with multiple models
- sessions can be contrasted on first-level
- aamod_coreg_extended_2epi is parallelised across sessions. N.B.: It will not output meanepi (see new module
aamod_coreg_extended_2meanepi) - new modules:
- aamod_coreg_extended_2meanepi
- aamod_split_epi for splitting (subset of) a 4D volume (into 3D)
- aaq_matlab_pct can launch arbitrary number of workers
- handling multiple structurals (e.g. ME-FLASH)
- aamod_epifromnifti handles
- 3D NIfTI source
- path relative to
rawdatadir - manual header
- aamod_secondlevel_threshold:
- default threshold is set to p = 0.05 FWE-corrected
- output for each first-level contrasts
- aa_export_toBIDS handles
- Diffusion data without DICOM header
- fMRI data without events
- MTI and sepcial_sessions) has benn moved to session domain and thus can be missing
aamod_get_dicom_*modules can now also edit DICOM fields- bounding box can be specified for
aamod_norm_write*modules aamod_norm_write*modules can process deformationsaamod_roi_extract*has option to use either the space of the data or the ROI- subjects with different sessions can be analysed
- aamod_firstlevel_contrasts can automatically assign contrasts, unless
uniquebysessionis used.⚠️ Contrast names must be unique both within- and across-sessions!
- aamod_firstlevel_contrasts can automatically assign contrasts, unless
- aamod_coreg_general is prepared for session domain and 4D NIfTI
- killed and finished jobs will not be deleted
- queue viewer is optional
- aaparallel parameters has been added
- aaq_matlab_pct has been tested on MATLAB 2015a
- aaq_matlab_pct accepts
- aaparallel parameters
- external poolprofile function specified in
aap.directory_conventions.poolprofile - pass
aaworker
- TFCE (external) has been updated
- NIfTI input without header is now allowed
- examples aa_user_branching_example1 and aa_user_branching_example2 have been updated
- estimate and reslice flags has been added to aamod_realign
- new modules:
- aamod_reorientto_epi and aamod_reorientto_fieldmap for longitudinal studies
- tsdiffana (external) has been updated
- Motion FingerPrint (external) has been updated
transformsetting of aamod_meg_maxfilt can be negative to specify session based onselected_session- aamod_meg_average_merged can deal with merged data
- new modules:
- aamod_meg_merge: merging MEG sessions
- aamod_meg_grandmean: estimating grabd mean across subjects
- aamod_firstlevel_threshold and aamod_secondlevel_model now can deal with path with "spm" in it
- aamod_firstlevel_threshold and aamod_secondlevel_model now can deal with cases when reslicing activation maps "vanishes" activations
- modality detection for MTI-related modules
- aamod_autoidentifyseries_siemens with missing series
- aamod_autoidentifyseries_siemens with custom
dicom_protocol_field - aas_getfiles_bystream now also uses
aap.options.maximumretrywhen copying streams potentially used jointly with other jobs - coregister after
aamod_norm_noss* - reporting connected pipeline
- reporting branched pipeline with
selected_sessions - reporting
aamod_*dartel_denorm* - reporting MTI
- aamod_bet and derived modules
- aamod_MTI_roi_valid
- aa_export_toBIDS export raw data from aa pipeline in BIDS format (limited functionality)
- automatic inputstream detection (and renaming) for aamod_roi_valid_structural
- automatic inputstream detection (and renaming) for aamod_roi_valid_epi
- full set of secondlevel modules: aamod_secondlevel_model, aamod_secondlevel_contrasts, aamod_secondlevel_threshold, aamod_secondlevel_threshold_register2FS
- downsampling added to aamod_meg_maxfilt
- economise code: aamod_roi_extract and aamod_roi_valid have been replaced/expanded with aamod_roi_extract_epi, aamod_roi_extract_structural, aamod_roi_valid_epi and aamod_roi_valid_structural
- aas_log works with empty
aap - aas_runfslcommand and aas_runFScommand now pass run-time MATLAB path to in-shell MATLAB (if applicable)
- aa_provenance now uses run-time dependency (see "New features ...")
- QueueViewer will not delete jobs finished with errors --> job folder will be kept for debugging
- Termination of the pipeline via aaq_qsubVeiwerClass is correctly detected by aaq_qsub and aa_doprocessing
- aamod_fieldmapfromnifti now correctly outputs TEs from specified header
- Reporting includes distributions of (both the first- and second-level) contrasts
chainsearchandthresholdoptions have been implemented in aamod_waveletdespike- aamod_firstlevel_threshold and aamod_secondlevel_model now correctly outputs coronal sections
- aamod_firstlevel_threshold and aamod_secondlevel_model saves outputs correctly even if path contains "spm"
- aas_add_meg_session now prevents adding the same session multiple times (e.g. when the function is called per subject)
5.0.0 (branch v5 initial)
As the change in the major versioning implies, older user master scripts are not compatible with v5. Examples has been updated to demonstrate new syntax. In addition, pipelines processed with older versions cannot be re-processed with v5 (aap structure stored in aap_parameters.mat is not compatible). A script aa_convert_subjects is provided to convert aap structure stored in aap_parameters.mat. When connecting to a remote pipeline processed with an older version of aa, aa_convert_subjects is automatically called; so no explicit conversion is required.
-
More detailed documentation of several key functions
-
Explicit subject identifier
aap.acq_details.subjects.subjname:aas_addsubject- Subject name is more unambiguously specified
- Subject name is not tied to the data
- Same subject name can be used as a reference in the whole UMS
-
Longitudinal/multi-visit measurement
-
In case of selected_session, only relevant inputs will be retrieved
-
Session-specific fieldmaps
-
aas_addsubjecthas a more intuitive parameterisation -
From NIfTI
- BIDS datasets are supported (full)
-
Reporting remote pipeline
-
Lightweighting: remove ANTs, VBM8 and FreeSurfer deface templates from the package and mark them as (optional) requirements
- aamod_mask_fromsegment accepts different exact thresholds for GM, WM, CSF
- Reorienting input images (structural, diffusion and EPI) to their middle voxel (
aamod_reorienttomiddle_*) - Specifying contrast for certain sessions using format "sessions:[+[...]]"
- Specifying contrast with condition names in a format x[<main ('m') or parametric ('p')><number of basis/parametric function>] (e.g. '+1xTASK|-1xREST' or '+1xTASKp1|-1xRESTm1'). N.B.: It requires regressor names with UPPERCASE letters only!
- Scaling automatic temporal modulation
- aamod_bet_meanepi
- aamod_waveletdespike using explicit brainmask
- Exmaple user master script and tasklist are provided for demo dataset: (aa_user_demo_v2)
- Compatibility with MATLAB r2015b
4.3.0 (branch devel-share)
- Sorting external/extrafunctions
- Acknowledging externals in README.json
-
Dynamic modification of streams (
aas_renamestream) -
Selected_sessions now works also for branching
-
From NIfTI
- 3D NIfTI inputs are fully supported
- NIfTI fieldmaps are supported (
aamod_fieldmapfromnifti) - BIDS datasets are supported (partial)
aamod_fsl_reorienttoMNI
-
New fMRI example to demonstrate some (new) features: (aa_user_fmri_advanced)
- Specifying structural series
- Explaining Motion FingerPrint instead of simple mocoparameters in design
- Automatic slicetiming with exact timing from DICOM header (
autodetectSO) - DARTEL normalisation
- Activation maps projected to surface using FreeSurfer (
aamod_firstlevel_threshold_register2FS) - Second-level GIFT (
aamod_secondlevel_GIFT)
-
automatic temporal modulation
-
aamod_firstlevel_model: option to save residual -
Despiking with BrainWavelet (
aamod_waveletdespike) -
aamod_maths -
aamod_temporalfilter
- Diagnostics (courtesy to Rik Henson)
- Update examples: aa_user_meg.m, aa_user_meg_connect
- Maxfilter (
aamod_meg_maxfilt) allows getting HPI from a session - Maxfilter (
aamod_meg_maxfilt) accepts custom calibration files - Better delegeation of denoising tasks:
aamod_meg_denoise_ICA_1: runs ICAaamod_meg_denoise_ICA_1: thresholds and removes
- Epoching:
aas_add_meg_eventandaamod_meg_epochs - Averaging:
aamod_meg_average
-
Code development
- Simplifying code
- Setting modality -->
aas_getfile_bystreamautomatically detects sessions based on modality - Avoid
eval - Avoid
spm_jobman
- Setting modality -->
- Removing 'orphan' functions
- Update: spm_mods based on SPM12 r6470
- Simplifying code
-
Running
- Compatibility with MATLAB pre-r2012b (local execution only)
qsubcleans jobs from previous execution- Iterative file retrieval (
aap.options.maximumretry) - Specifying streams as diagnostic (
aas_garbagecollectionwill not touch them) - aaworker
- More efficient folder handling:
- aaworker folders are created in ~/.aa (hidden) folder and
- aaworker folders are cleaned up regularly after specified time (
aap.options.aaworkercleanup)
- aaworker structure is passed during
qsub
- More efficient folder handling:
-
Summaries
- Add default message for "Motion correction summary"
- Rename "First level contrasts" to "First level thresholded maps"
-
Code development
- Example module template with session domain (aamod_session)
-
Setting up
aaClassprovides links to "the aa manuscript", to "the aa website" and to examples- Allow specification of subject in the whole UMS in the same way:
aas_addcontrast,aas_addcovariate,aas_addevent,aamod_dartel_createtemplate aap.options.checktasksettingconsistency: Check whether settings have changed since the last execution and re-run the task accordingly regardless of the doneflag (experimental!)- and are saved in the aap_parameters.mat file as fields
aap.internal.aapversionandaap.internal.aappath
-
Running
qsuberror provides links to code- GUI for
qsub aap.options.verbosity:
0 - Does not show any message (still crashes in case of error)
1 - Shows errors only
2 - Shows every message (default)
-
Results
- Vertical workflow chart
- More consistent (and nicer ✨) graph of contrasts
aamod_firstlevel_thresholdcreates overlays along all three axes
Described in "the aa manuscript"