Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
af5e9a6
FIX -MEEG: align sourceatlas to sourcemodel
Oct 20, 2021
97263f4
TYPO
Oct 24, 2021
1b07726
FIX - thresholding using probabilistic extent
Oct 24, 2021
ebd4859
CI - GitHub Action
tiborauer Oct 26, 2021
6fbe96a
FIX - CI
tiborauer Oct 26, 2021
14c06b1
FIX - CI
tiborauer Oct 26, 2021
4deb82a
FIX - CI
tiborauer Oct 26, 2021
e283138
ENH - CI: custom path for tools
tiborauer Oct 26, 2021
7bbb942
FIX - CI: install tools
tiborauer Oct 26, 2021
3d62035
CI - data
tiborauer Oct 26, 2021
3692fe4
FIX - CI
tiborauer Oct 26, 2021
bc9c059
FIX - CI: AWS
tiborauer Oct 26, 2021
b9e4850
CI - FSL, disk size
tiborauer Oct 26, 2021
625e1b9
FIX - CI: Python2 for FSL
tiborauer Oct 26, 2021
d2d7b89
FIX - CI: quiet FSL install
tiborauer Oct 26, 2021
6f8c5df
FIX - CI: FSL
tiborauer Oct 26, 2021
80716af
FIX - CI: FSL
tiborauer Oct 26, 2021
1aa3ffc
FIX - CI: FSL
tiborauer Oct 26, 2021
a677db7
FIX - CI: space
tiborauer Oct 26, 2021
d565ed7
CI - test
tiborauer Oct 26, 2021
2983594
FIX - CI: typo
tiborauer Oct 26, 2021
7add364
CI - parameterset and FSL config
tiborauer Oct 26, 2021
219ded5
FIX - CI: demo data
tiborauer Oct 26, 2021
6a52fc9
FIX - CI: FSL config
tiborauer Oct 26, 2021
cedd36d
FIX - CLI: FSL config
tiborauer Oct 26, 2021
975f866
CI: test
tiborauer Oct 26, 2021
f71600d
FIX - CI: test
tiborauer Oct 26, 2021
06dad13
FIX - CI: typo
tiborauer Oct 26, 2021
3ba3e71
FIX - CI: FSL config
tiborauer Oct 26, 2021
d12eddb
FIX - CI: FSL
tiborauer Oct 26, 2021
2ccd253
FIX - CI: FSL
tiborauer Oct 26, 2021
45a877c
CI: test
tiborauer Oct 26, 2021
e7a1535
FIX - CI: FSL
tiborauer Oct 26, 2021
83fd80f
FIX - CI: line ending
tiborauer Oct 26, 2021
6e94791
FIX - CI: typo
tiborauer Oct 26, 2021
2039ab3
CI: test
tiborauer Oct 26, 2021
3f78187
FIX - CI: FSL
tiborauer Oct 26, 2021
dff7dac
CI: test
tiborauer Oct 26, 2021
0e9897a
CI: test
tiborauer Oct 26, 2021
9b1aa98
CI: test
tiborauer Oct 26, 2021
3aa4412
CI: test
tiborauer Oct 26, 2021
77fc623
CI: test
tiborauer Oct 26, 2021
e78e35c
CI - FSL
tiborauer Oct 26, 2021
fcd768c
ENH - aa_test error report
tiborauer Oct 27, 2021
fcc239a
FIX - CI: parameterset
tiborauer Oct 27, 2021
7d81404
FIX - TEST: single aa_demo directory in rawdatadir
tiborauer Oct 27, 2021
0fc0e8b
FIX - CI: parameterset
tiborauer Oct 27, 2021
b67ec94
CI: separate jobs for each test
tiborauer Oct 27, 2021
5344e27
FIX - CI: typo
tiborauer Oct 27, 2021
7b42937
FIX - CI: freesurfer, FSL, results
tiborauer Oct 27, 2021
72b999d
FIX - CI: FaceMasking, FSL for T1
tiborauer Oct 27, 2021
5536884
FIX - CI: FaceMasking
tiborauer Oct 27, 2021
3e763fe
FIX - CI: FaceMasking, reduce fMRI
tiborauer Oct 28, 2021
4c93abd
FIX - issue #263
tiborauer Oct 28, 2021
0f0fbb7
FIX - CI: disk size and FSL
tiborauer Oct 28, 2021
43f464a
FIX - CI: disk size, fMRI subject number
tiborauer Oct 28, 2021
6600c30
CI: reduce FSL install for template only
tiborauer Oct 28, 2021
72cb10a
FIX - CI: paths
tiborauer Oct 28, 2021
f4611cf
CI: more space (for fMRI)
tiborauer Oct 28, 2021
b8a8424
CI: save space
tiborauer Oct 28, 2021
a9157bd
FIX CI/test - 4 subjects for fmri + space
tiborauer Oct 29, 2021
3378280
CI - test 51.5 GB space
tiborauer Oct 29, 2021
5f9aefd
CI - final space=51GB
tiborauer Oct 29, 2021
54ee38a
FIX - CI: typo
tiborauer Oct 29, 2021
c2cc6dc
Merge branch 'master' into master
tiborauer Oct 29, 2021
fe9106f
Merge pull request #178 from automaticanalysis/master
tiborauer Oct 29, 2021
f3c4de7
Create test.yml
tiborauer Nov 6, 2021
45292c6
FIX - CI: SPM toolbox parameters
tiborauer Nov 6, 2021
bf9c6de
CI - test
tiborauer Nov 6, 2021
7188dfe
CI
tiborauer Nov 6, 2021
5a4e363
CI
tiborauer Nov 6, 2021
0665be3
CLEAN - CI
Nov 8, 2021
1386bd8
Merge branch '5.7.0' of github.com:tiborauer/automaticanalysis
Nov 8, 2021
6fef5f9
Merge branch '5.7.0' of github.com:tiborauer/automaticanalysis
Nov 8, 2021
2254c89
Merge branch 'master' into resync
tiborauer Nov 13, 2021
fcf01fc
Merge pull request #184 from automaticanalysis/resync
tiborauer Nov 13, 2021
05df156
CLEAN - CI
tiborauer Nov 13, 2021
0649eea
CLEAN - aa_delete_deststage as aa_tool
Nov 13, 2021
09bd6f7
VERSION
Nov 13, 2021
d011044
FIX - aaq initialSubmitArguments for SLURM/Torque
Nov 13, 2021
ced6fd6
FIX - aaq task duration
Nov 14, 2021
061e670
CI - descriptive name
Nov 14, 2021
38baefe
FIX - hard-coded debug leftover
Nov 15, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
970 changes: 485 additions & 485 deletions .github/workflows/aa_test.yml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion aa.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"Name": "automaticanalysis",
"Version": "5.7.0",
"Version": "5.7.1",
"Date": "Jun 2021",
"ManuscriptRef": "Cusack R, Vicente-Grabovetsky A, Mitchell DJ, Wild CJ, Auer T, Linke AC, Peelle JE (2015). Automatic analysis (aa): Efficient neuroimaging workflows and parallel processing using Matlab and XML. Frontiers in Neuroinformatics 8:90.",
"ManuscriptURL": "http:\/\/dx.doi.org\/10.3389\/fninf.2014.00090",
Expand Down
8 changes: 6 additions & 2 deletions aa_engine/aaq/aaq.m
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,9 @@ function save(obj,fn)
end

case 'parallel.cluster.Slurm'
if ~isempty(obj.initialSubmitArguments), obj.initialSubmitArguments = " " + obj.initialSubmitArguments; end
if strlength(obj.initialSubmitArguments) > 0 && ~startsWith(obj.initialSubmitArguments,' ')
obj.initialSubmitArguments = " " + obj.initialSubmitArguments;
end
obj.pool.SubmitArguments = compose("--mem=%dG --time=%d", mem, walltime*60);
if isMaxFiltInTasklist && isNeuromagSpec
obj.initialSubmitArguments = obj.initialSubmitArguments + " --constraint=maxfilter";
Expand All @@ -229,7 +231,9 @@ function save(obj,fn)
end

case 'parallel.cluster.Torque'
if ~isempty(obj.initialSubmitArguments), obj.initialSubmitArguments = " " + obj.initialSubmitArguments; end
if strlength(obj.initialSubmitArguments) > 0 && ~startsWith(obj.initialSubmitArguments,' ')
obj.initialSubmitArguments = " " + obj.initialSubmitArguments;
end
obj.pool.SubmitArguments = compose("-l mem=%dGB, walltime=%d:00:00", mem, walltime);
if isMaxFiltInTasklist && isNeuromagSpec
% TODO: clarify whether/how NODESET should be eliminated
Expand Down
6 changes: 5 additions & 1 deletion aa_engine/aaq/aaq_batch.m
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,11 @@ function runall(obj, dontcloseexistingworkers, waitforalljobs) %#ok<INUSL>
startTime = char(Task.StartDateTime);
finishTime = char(Task.FinishDateTime);
if ~isempty(finishTime)
usedTime = char(Task.RunningDuration);
if isprop(Task,'RunningDuration')
usedTime = char(Task.RunningDuration);
else
usedTime = aas_getTaskDuration(Task);
end
end
elseif isprop(Task,'StartTime')
startTime = Task.StartTime;
Expand Down
1 change: 0 additions & 1 deletion aa_engine/aas_getfiles_bystream.m
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,6 @@
inpstreamdesc = '';
allfiles = '';
md5 = '';
unix('touch /Users/peellelab/000_AAS_GETFILE_FAIL3.txt');
end

end
2 changes: 1 addition & 1 deletion aa_modules/aamod_CONN.m
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
function [aap,resp]=aamod_CONN_validate(aap,task,subj)
function [aap,resp]=aamod_CONN(aap,task,subj)
resp='';

switch task
Expand Down
9 changes: 6 additions & 3 deletions aa_modules/aamod_firstlevel_threshold.m
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@
try doTFCE = aap.tasklist.currenttask.settings.threshold.doTFCE; catch, doTFCE = 0; end % TFCE?
corr = aap.tasklist.currenttask.settings.threshold.correction; % correction
u0 = aap.tasklist.currenttask.settings.threshold.p; % height threshold
k = aap.tasklist.currenttask.settings.threshold.extent; % extent threshold {voxels}
nSl = aap.tasklist.currenttask.settings.overlay.nth_slice;
tra = aap.tasklist.currenttask.settings.overlay.transparency;
Outputs.thr = '';
Expand Down Expand Up @@ -202,6 +201,7 @@
n = 1; % No conjunction

if doTFCE
k = aas_getsetting(aap,'threshold.extent');
job.spmmat = {fSPM};
job.mask = {fullfile(fileparts(fSPM),'mask.nii,1')};
job.conspec = struct( ...
Expand Down Expand Up @@ -249,8 +249,8 @@
end

% Extent threshold filtering
if ischar(k) % probability-based
k = strsplit(k,':'); k{2} = str2double(k{2});
if ischar(aas_getsetting(aap,'threshold.extent')) % probability-based
k = strsplit(aas_getsetting(aap,'threshold.extent'),':'); k{2} = str2double(k{2});
iSPM = SPM;
iSPM.Ic = c;
iSPM.thresDesc = corr;
Expand All @@ -268,6 +268,9 @@
pInd = strcmp(T.hdr(1,:),'cluster') & strcmp(T.hdr(2,:),k{1});
kInd = strcmp(T.hdr(2,:),'equivk');
k = min(cell2mat(T.dat(cellfun(@(p) ~isempty(p) && p<k{2}, T.dat(:,pInd)),kInd)));
if isempty(k), k = Inf; end
else
k = aas_getsetting(aap,'threshold.extent');
end

A = spm_clusters(XYZ);
Expand Down
5 changes: 5 additions & 0 deletions aa_modules/aamod_meeg_preparesourcemodel.m
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,11 @@
sourceatlas.aparclabel = vertcat(spm_file(atlaslh.aparclabel,'prefix','lh_'),spm_file(atlaslh.aparclabel,'prefix','rh_'));
sourceatlas.aparc = vertcat(atlaslh.aparc, atlasrh.aparc+numel(atlaslh.aparclabel));

% register to sourcemodel
FT.addExternal('freesurfer');
fsmri = MRIread(mrifn);
sourceatlas = ft_transform_geometry(fsmri.vox2ras/fsmri.tkrvox2ras, sourceatlas);

% diag
fname = fullfile(aas_getsubjpath(aap,subj),['diagnostic_' aap.tasklist.main.module(aap.tasklist.currenttask.modulenumber).name '_atlas.jpg']);
if ~exist(fname,'file')
Expand Down
9 changes: 6 additions & 3 deletions aa_modules/aamod_secondlevel_threshold.m
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@

% Init
u0 = aap.tasklist.currenttask.settings.threshold.p; % height threshold
k = aap.tasklist.currenttask.settings.threshold.extent; % extent threshold {voxels}
nSl = aap.tasklist.currenttask.settings.overlay.nth_slice;
tra = aap.tasklist.currenttask.settings.overlay.transparency;

Expand Down Expand Up @@ -190,6 +189,7 @@
if strcmp(corr,'TFCE') && strcmp(STAT,'F'), corr = 'FWE'; end % TFCE does not support F-test -> FWE

if strcmp(corr,'TFCE')
k = aas_getsetting(aap,'threshold.extent');
job.spmmat = {fnSPM};
job.mask = {fullfile(fileparts(fnSPM),'mask.nii,1')};
job.conspec = struct( ...
Expand Down Expand Up @@ -236,8 +236,8 @@
end

% Extent threshold filtering
if ischar(k) % probability-based
k = strsplit(k,':'); k{2} = str2double(k{2});
if ischar(aas_getsetting(aap,'threshold.extent')) % probability-based
k = strsplit(aas_getsetting(aap,'threshold.extent'),':'); k{2} = str2double(k{2});
iSPM = SPM;
iSPM.Ic = c;
iSPM.thresDesc = corr;
Expand All @@ -255,6 +255,9 @@
pInd = strcmp(T.hdr(1,:),'cluster') & strcmp(T.hdr(2,:),k{1});
kInd = strcmp(T.hdr(2,:),'equivk');
k = min(cell2mat(T.dat(cellfun(@(p) ~isempty(p) && p<k{2}, T.dat(:,pInd)),kInd)));
if isempty(k), k = Inf; end
else
k = aas_getsetting(aap,'threshold.extent');
end

A = spm_clusters(XYZ);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
function dirs2delete = aas_delete_deststage(aap,indices,varargin)
function dirs2delete = aa_delete_deststage(aap,indices,varargin)
% recursively delete/backup destination stages
%
% It removes or backs up existing (intermediate) steps of a workflow before
% the re-execution of these steps (with different settings).
%
% Compulosory positional arguments:
% aap: aap structure actualised for the stage whose destinations
% are to be removed/backed-up
% indices: array of indices corresponding to the domain of the stage,
% e.g.
% study - []
% subject - [subj]
% session - [subj sess]
%
% Optional parameters (key-value pairs):
% includeCurrent: whether to remove/back up the current stage, as well
% (default: false)
% dryrun: whether to only compile the list of stage folders to be
% removed/backed-up (default: false)
% backupFolder: path to the folder in which the stages are backed-up,
% The folder will be created if does not exist. If empty,
% the operation is delete rather than back-up. (default: '')

argParse = inputParser;
argParse.addParameter('includeCurrent',false,@(x) islogical(x) || isnumeric(x));
Expand Down
Loading