Installing an atlas from an online repository
function install_melbourne_atlas
%% Get data from web:
if ~exist('melbourne_subcortex_atlas','dir')
websave('melbourne_subcortex_atlas.zip','https://github.com/yetianmed/subcortex/archive/master.zip');
unzip('melbourne_subcortex_atlas.zip','melbourne_subcortex_atlas');
end Super-powers are granted randomly so please submit an issue if you're not happy with yours.base=fullfile('melbourne_subcortex_atlas','subcortex-master','Group-Parcellation','3T','Subcortex-Only');
outdir=fullfile(ea_space,'atlases',['Melbourne Subcortex Atlas (Tian 2020)']);
mkdir(outdir);
mkdir([outdir,filesep,'lh']); mkdir([outdir,filesep,'rh']);%% Iterate Scales (The atlas defines 4 scales of parcellation granularity)
for s=1:4
copyfile(fullfile(base,['Tian_Subcortex_S',num2str(s),'_3T_label.txt']),...
fullfile(ea_space,'labeling',['Tian_Subcortex_S',num2str(s),'_3T.txt']));
copyfile(fullfile(base,['Tian_Subcortex_S',num2str(s),'_3T.nii']),...
fullfile(ea_space,'labeling',['Tian_Subcortex_S',num2str(s),'_3T.nii']))
fid=fopen(fullfile(ea_space,'labeling',['Tian_Subcortex_S',num2str(s),'_3T.txt']),'r');
A=textscan(fid,'%s\n');
A=A{1};
fclose(fid);
fid=fopen(fullfile(ea_space,'labeling',['Tian_Subcortex_S',num2str(s),'_3T.txt']),'w');
for entry=1:length(A)
A{entry}=strrep(A{entry},'-rh','');
A{entry}=strrep(A{entry},'-lh','');
fprintf(fid,'%d %s\n',entry,A{entry});
end
try rmdir(fullfile(ea_space,'atlases',['Tian_Subcortex_S',num2str(s),'_3T']),'s'); end % make sure earlier versions are not installed anymore.
% Use ea_labeling2atlas as a "hack" to convert from labeling to atlas
% format. See
% https://netstim.gitbook.io/leaddbs/installation/acquiring_and_setting_atlases#what-is-the-difference-between-a-labeling-and-an-atlas-in-lead-dbs
% for more info.
ea_labeling2atlas(['Tian_Subcortex_S',num2str(s),'_3T']);
delete(fullfile(ea_space,'labeling',['Tian_Subcortex_S',num2str(s),'_3T.txt']));
delete(fullfile(ea_space,'labeling',['Tian_Subcortex_S',num2str(s),'_3T.nii']));
% Aggregate all scales into one atlas:
d=dir(fullfile(ea_space,'atlases',['Tian_Subcortex_S',num2str(s),'_3T'],'lh','*.nii'));
for fi=1:length(d)
copyfile(fullfile(ea_space,'atlases',['Tian_Subcortex_S',num2str(s),'_3T'],'lh',d(fi).name),...
fullfile(outdir,'lh',d(fi).name));
copyfile(fullfile(ea_space,'atlases',['Tian_Subcortex_S',num2str(s),'_3T'],'rh',d(fi).name),...
fullfile(outdir,'rh',d(fi).name));
gzip(fullfile(outdir,'lh',d(fi).name));
delete(fullfile(outdir,'lh',d(fi).name));
gzip(fullfile(outdir,'rh',d(fi).name));
delete(fullfile(outdir,'rh',d(fi).name));
Sstruc{s}{fi}=[d(fi).name,'.gz'];
end
% Afterwards single-scale atlases can be deleted again.
rmdir(fullfile(ea_space,'atlases',['Tian_Subcortex_S',num2str(s),'_3T']),'s');
end
ea_delete([outdir,filesep,'atlas_index.mat']);


Last updated