-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_batch_conn_05_project.m
More file actions
120 lines (103 loc) · 3.8 KB
/
run_batch_conn_05_project.m
File metadata and controls
120 lines (103 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
%% Project-specific first-level analysis (generated)
% PROJECT_DIR set to the CONN project
PROJECT_DIR = '/data/local/069_BW01/conn';
PROJECT_FILE = 'conn_project.mat';
% Analysis options
RUN_ROI_TO_ROI = true; % Compute ROI-to-ROI connectivity
RUN_SEED_TO_VOXEL = true; % Compute seed-to-voxel connectivity (slower)
RUN_LOCAL_CORRELATION = false; % Compute local correlation maps (local functional connectivity)
% Connectivity measure
CONNECTIVITY_MEASURE = 'correlation'; % 'correlation', 'partial correlation', 'regression'
fprintf('\n============================================\n');
fprintf('CONN First-Level Analysis (Step 5)\n');
fprintf('============================================\n\n');
% Load project
project_path = fullfile(PROJECT_DIR, PROJECT_FILE);
if ~isfile(project_path)
error('Project file not found: %s', project_path);
end
fprintf('Project: %s\n\n', project_path);
% Initialize BATCH
clear BATCH
BATCH.filename = project_path;
% ===== FIRST-LEVEL ANALYSIS CONFIGURATION =====
fprintf('Analysis configuration:\n');
if RUN_ROI_TO_ROI
fprintf(' ROI-to-ROI: enabled\n');
else
fprintf(' ROI-to-ROI: disabled\n');
end
if RUN_SEED_TO_VOXEL
fprintf(' Seed-to-Voxel: enabled\n');
else
fprintf(' Seed-to-Voxel: disabled\n');
end
if RUN_LOCAL_CORRELATION
fprintf(' Local-corr: enabled\n');
else
fprintf(' Local-corr: disabled\n');
end
fprintf(' Measure: %s\n\n', CONNECTIVITY_MEASURE);
% Run ROI-to-ROI and Seed-to-Voxel analyses sequentially to avoid struct-array assignment issues
if RUN_ROI_TO_ROI
BATCH_ROI = [];
BATCH_ROI.filename = project_path;
BATCH_ROI.Analysis.analysis_number = 1; % ROI-to-ROI analysis
BATCH_ROI.Analysis.measure = 1; % Bivariate correlation
if strcmp(CONNECTIVITY_MEASURE, 'partial correlation')
BATCH_ROI.Analysis.measure = 2;
elseif strcmp(CONNECTIVITY_MEASURE, 'regression')
BATCH_ROI.Analysis.measure = 3;
end
BATCH_ROI.Analysis.done = 1;
BATCH_ROI.Analysis.overwrite = 1;
fprintf('Running ROI-to-ROI analysis...\n');
try
conn_batch(BATCH_ROI);
fprintf('ROI-to-ROI analysis finished.\n');
catch ME
fprintf('ROI-to-ROI analysis failed: %s\n', ME.message);
rethrow(ME);
end
end
if RUN_SEED_TO_VOXEL
BATCH_SBC = [];
BATCH_SBC.filename = project_path;
BATCH_SBC.Analysis.analysis_number = 2; % Seed-to-voxel
BATCH_SBC.Analysis.measure = 1; % correlation
BATCH_SBC.Analysis.done = 1;
BATCH_SBC.Analysis.overwrite = 1;
fprintf('Running Seed-to-Voxel analysis (SBC)...\n');
try
conn_batch(BATCH_SBC);
fprintf('Seed-to-Voxel analysis finished.\n');
catch ME
fprintf('Seed-to-Voxel analysis failed: %s\n', ME.message);
rethrow(ME);
end
end
if RUN_LOCAL_CORRELATION
fprintf('Local-correlation requested, but requires custom implementation in CONN. Skipping.\n');
end
% ===== RUN ANALYSIS =====
fprintf('Running first-level analysis...\n');
fprintf('This will:\n');
fprintf(' 1. Extract ROI timeseries from denoised data\n');
fprintf(' 2. Compute connectivity matrices\n');
fprintf(' 3. Save results for second-level analysis\n\n');
BATCH.Analysis.done = 1;
BATCH.Analysis.overwrite = 1;
try
conn_batch(BATCH);
fprintf('First-level analysis completed successfully.\n\n');
catch ME
fprintf('Error during analysis:\n%s\n', ME.message);
rethrow(ME);
end
fprintf('============================================\n');
fprintf('First-Level Analysis Complete!\n');
fprintf('============================================\n\n');
fprintf('Output locations:\n');
fprintf(' Results: %s/results/firstlevel/\n', PROJECT_DIR);
fprintf(' ROI timeseries: %s/conn_project/data/ROI_Subject*.mat\n', PROJECT_DIR);
fprintf(' Project file: %s\n\n', project_path);