Single-Shot 2D Radial Echo Planar Imaging for Functional MRI.
The 2 matches · 1 of them tie a paragraph to a whole file, not to given lines: a weak match, whose lines are not tinted
- [1] § Theory › Trajectory and KWIC Filter Design ↔ trajectory/mk2DrEPItraj.m, lines 5–16 · score 0.60 · GA rotations, Golden angle, pseudo, blipping, gradient, Trajectory
- [2] § Methods › Image Reconstruction ↔ nufft/nufft/example_nufft1_reverse.m, the whole file · a weak match · score 0.51 · Fourier transformation, component, iterative, NUFFT, linear, fast
Paper
Loaded from Europe PMC by your browser, not stored by OSCR: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
MATLAB · 278 lines · 9.9 KB · no license · 1 match
- %% generate 2D radial EPI trajectory (as used in ss-rEPI publication)
- clear
- addpath(genpath('xxx'))
- %% Script options
- write_files = 0;
- trajnum = 66;
- GreRotType = 3; % 0: arbiturar angle between grad echoes, needs to set RotEcho in deg.
- rot = 10; % 1: sequentially, if SeqOpt =1 will optimize gradients for whirl gradients (combine rot blipping with downwinding (flower shape)
- SeqOpt = 0; % 2: sGA rotation, n defines order of small Golden Angle
- n = 6; % 3: pseudo golden angle
- Nturns = 7; % target number of 180 deg turns during course of GRE train
- do_simulation = 1; % do multi blade k space simulation (not saved)
- Nrot = 7; % number of shots for simulation
- %% Sampling parameters
- fovx = 21;
- nx = 104; % sampling points in x (&y)
- Nechoes = 53; % number of GRE lines, will be adjusted in pseudo GA type
- %% Define constants
- PN = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199];
- gam = 26751; % rad/sec/g
- gambar = gam/2/pi; % Hz/g
- dgdtmax = 15000; % gauss/cm/sec
- gmax = 3; % gauss/cm
- dt = 10E-6;
- gscale = gmax;
- %% Initialize rotation between grandient echoes
- tau = (1+sqrt(5))/2;
- ga_all = pi./(tau+(1:10)-1);
- ga1 = pi/(tau+1-1);
- gan = pi/(tau+n-1);
- RotEcho = rot /360*2*pi;
- %% Determine Rotation between GRE lines
- NechoLines=Nechoes;
- switch GreRotType
- case 0
- ga = RotEcho;
- case 1
- ga = 1*pi/Nechoes;
- case 2
- ga = gan;
- case 3
- [~,closestIndex] = min(abs(Nechoes-PN));
- Ne = PN(closestIndex);
- ga_temp = Nturns*pi/Ne;
- [~,closestIndex] = min(abs(ga_temp-ga_all));
- ga_temp = ga_all(closestIndex);
- Nturns = round(ga_temp*Ne/pi);
- fprintf('# turns changed to: %d\n', Nturns);
- ga = Nturns*pi/Ne;
- fprintf('rotation set to: %d (ga = %d) \n', ga,ga_temp);
- fprintf('#Echoes set to: %d (Nechoes = %d) \n', Ne, Nechoes);
- Nechoes=Ne;
- case default
- ga = RotEcho;
- end
- %% Define k-space
- gx0 = [];
- gy0 = [];
- gz = [];
- ad = [];
- %% Define Rotation between z
- dtheta = ga;
- %% Build gradients
- % define radial line
- [gr0,nr,nf,~,ad0] = dotrap3((nx-1)/fovx/gambar,gmax,dgdtmax*0.8,dt);
- ngr0 = length(gr0);
- % define k space parameters
- k_max = gambar*sum(gr0)*dt/2;
- k_rot = 2*sin(dtheta/2)*k_max;
- k_z = 0;
- k_blip_sum_back = sqrt(k_rot^2+(k_z)^2);
- % Generate Gradients
- if dtheta ~= 0
- gb = dotrap2(k_blip_sum_back/gambar,gmax,dgdtmax,dt)/k_blip_sum_back*k_rot; %rotation blip
- gzb = [];
- gzb_back = [];
- else
- gb = 0;
- gzb = 0;
- gzb_back = 0;
- end
- ext=[nr (length(gb))/2 (length(gzb)/2) (length(gzb_back)/2)];
- [npext,inpext] = max(ext);
- switch inpext
- case 1
- gr1 = gr0;
- ad1 = ad0;
- ngr1 = length(gr1);
- gb1 = [zeros(1,floor(npext-ext(2))) gb zeros(1,ceil(npext-ext(2)))];
- gzb1 = [zeros(1,floor(npext-ext(3))) gzb zeros(1,ceil(npext-ext(3)))];
- gzb_back1 = [zeros(1,floor(npext-ext(4))) gzb_back zeros(1,ceil(npext-ext(4)))];
- ngbmed= floor(length(gb1)/2);
- ngbrest=length(gb1)-ngbmed;
- case 2
- gr1 = [zeros(1,npext-ext(1)) gr0 zeros(1,npext-ext(1))];
- ad1 = [zeros(1,npext-ext(1)) ad0 zeros(1,npext-ext(1))];
- ngr1 = length(gr1);
- gb1 = gb;
- gzb1 = [zeros(1,floor(npext-ext(3))) gzb zeros(1,ceil(npext-ext(3)))];
- gzb_back1 = [zeros(1,floor(npext-ext(4))) gzb_back zeros(1,ceil(npext-ext(4)))];
- ngbmed= floor(length(gb1)/2);
- ngbrest=length(gb1)-ngbmed;
- case 3
- gr1 = [zeros(1,npext-ext(1)) gr0 zeros(1,npext-ext(1))];
- ad1 = [zeros(1,npext-ext(1)) ad0 zeros(1,npext-ext(1))];
- ngr1 = length(gr1);
- gb1 = [zeros(1,floor(npext-ext(2))) gb zeros(1,ceil(npext-ext(2)))];
- gzb1 = gzb;
- gzb_back1 = gzb_back;
- ngbmed= floor(length(gb1)/2);
- ngbrest=length(gb1)-ngbmed;
- end
- % Combine Gradients
- beta = ((1:NechoLines)-2)*dtheta+dtheta/2;
- for z = 1:NechoLines
- theta = (z-1)*dtheta;
- if z == 1
- gx0 = [gx0(1:end) gr1(1:end-ngbmed) gr1(1+end-ngbmed:end)-sin(beta(z+1))*gb1(1:ngbmed)];
- gy0 = [gy0(1:end) 0*gr1(1:end-ngbmed) 0*gr1(1+end-ngbmed:end)+cos(beta(z+1))*gb1(1:ngbmed)];
- gz = [gz(1:end) 0*gr1(1:end-ngbmed) gzb1(1:ngbmed)];
- ad = [ad(1:end) ad1];
- elseif z == NechoLines
- gx0 = [gx0(1:end) -sin(beta(z))*gb1(1+ngbmed:end)*(-1)^(z)+cos(theta)*gr1(1:ngbrest)*(-1)^(z-1) cos(theta)*gr1(1+ngbrest:end)*(-1)^(z-1)];
- gy0 = [gy0(1:end) cos(beta(z))*gb1(1+ngbmed:end)*(-1)^(z)+sin(theta)*gr1(1:ngbrest)*(-1)^(z-1) sin(theta)*gr1(1+ngbrest:end)*(-1)^(z-1)];
- gz = [gz(1:end) gzb1(1+ngbmed:end) 0*gr1(1+ngbrest:end)];
- ad = [ad(1:end) ad1];
- else
- gx0 = [gx0(1:end) -sin(beta(z))*gb1(1+ngbmed:end)*(-1)^(z)+cos(theta)*gr1(1:ngbrest)*(-1)^(z-1) cos(theta)*gr1(1+ngbrest:end-ngbmed)*(-1)^(z-1) -sin(beta(z+1))*gb1(1:ngbmed)*(-1)^(z-1)+cos(theta)*gr1(end-ngbmed+1:end)*(-1)^(z-1)];
- gy0 = [gy0(1:end) cos(beta(z))*gb1(1+ngbmed:end)*(-1)^(z)+sin(theta)*gr1(1:ngbrest)*(-1)^(z-1) sin(theta)*gr1(1+ngbrest:end-ngbmed)*(-1)^(z-1) cos(beta(z+1))*gb1(1:ngbmed)*(-1)^(z-1)+sin(theta)*gr1(end-ngbmed+1:end)*(-1)^(z-1)];
- gz = [gz(1:end) gzb1(1+ngbmed:end) 0*gr1(1+ngbrest:end-ngbmed) -gzb_back1(1:ngbmed)];
- ad = [ad(1:end) ad1];
- end
- kxx1=cumsum(gx0);
- kyy1=cumsum(gy0);
- end
- %% Make pre-winders
- k_all = k_max;
- gw = -dotrap2(k_all/gambar,gmax,dgdtmax,dt);
- gxw = gw;
- gyw = 0*gw;
- gzw = 0*gw;
- k_max = gambar*sum(gr0(find(ad0)))*dt/2;
- %% build final waveforms
- ad = [0*gxw(1:end-1) ad];
- gx = [gxw(1:end-1) gx0];
- gy = [gyw(1:end-1) gy0];
- gz = [gzw(1:end-1) gz];
- npnts = length(gx)
- %% Check k-space
- kxx = cumsum(gx)*gambar*dt;
- kyy = cumsum(gy)*gambar*dt;
- kzz = cumsum(gz)*gambar*dt;
- ind = find(ad);
- figure(1),subplot(1,1,1);
- plot3(kxx(ind),kyy(ind),kzz(ind),'.b','MarkerSize',8);
- xlabel('k_x (1/cm)','FontSize',16);
- ylabel('k_y (1/cm)','FontSize',16);
- zlabel('k_z (1/cm)','FontSize',16);
- axis('tight');
- set(gca,'FontSize',20);
- view(-100,10);
- axis('on')
- %% Plot the pulse %%
- figure(2)
- timevec = (1:npnts)*dt*1000;
- subplot(4,1,1)
- plot(timevec,gx,'-b','LineWidth',2);
- axis([0 timevec((npnts)) -1.1*gmax 1.1*gmax]);
- ylabel('G_x (g/cm)','FontSize',16);
- set(gca,'FontSize',22);
- subplot(4,1,2)
- plot(timevec,gy,'-b','LineWidth',2);
- axis([0 timevec((npnts)) -1.1*gmax 1.1*gmax]);
- ylabel('G_y (g/cm)','FontSize',16);
- set(gca,'FontSize',22);
- subplot(4,1,3)
- plot(timevec,gz,'-b','LineWidth',2);
- axis([0 timevec((npnts)) -1.1*gmax/10 1.1*gmax/10]);
- ylabel('G_z (g/cm)','FontSize',16);
- set(gca,'FontSize',22);
- subplot(4,1,4)
- plot(timevec,ad,'-b','LineWidth',2);
- axis([0 timevec((npnts)) -gmax gmax]);
- ylabel('AD','FontSize',20);
- xlabel('Time (ms)','FontSize',16);
- set(gca,'FontSize',22);
- %% multi-shot simulation (golden angle)
- if do_simulation
- gax = floor(Nrot*ga1/pi)*pi/Nrot;
- kxrot=[];
- kyrot=[];
- kzrot=[];
- for l=0:Nrot-1
- kxrot=[kxrot kxx(ind)*cos(gax*l)+kyy(ind)*sin(gax*l)];
- kyrot=[kyrot kyy(ind)*cos(gax*l)-kxx(ind)*sin(gax*l)];
- kzrot=[kzrot kzz(ind)];
- end
- figure(20),subplot(1,1,1);
- plot3(kxrot,kyrot,kzrot,'.','color','[0 0 0.8]', 'MarkerSize',8);
- xlabel('k_x (1/cm)','FontSize',12);
- ylabel('k_y (1/cm)','FontSize',12);
- zlabel('k_z (1/cm)','FontSize',12);
- axis('tight');
- set(gca,'FontSize',20);
- axis([-max(kxx) max(kxx) -max(kxx) max(kxx)]);
- view(-100,10);
- axis('off')
- end
- %% Check pulse%%
- disp('effective_resolution:');
- nx_eff=floor(k_max*2*fovx)
- fprintf('Nechoes: %d; ', Nechoes);
- fprintf('phi: %d; ', ga*180/pi);
- fprintf('fovx: %d; ', fovx);
- if max(sqrt(gx.^2+gy.^2+gz.^2))>gmax
- display ('----------------------ERROR: MAX GRADIENT POWER VIOLATION----------------------');
- display (max(sqrt(gx.^2+gy.^2+gz.^2)));
- end
- if dgdtmax<max(diff(sqrt(gx.^2+gy.^2+gz.^2))/dt)
- display ('-------------------------ERROR: MAX SLEW RATE VIOLATION------------------------');
- display (max(diff(sqrt(gx.^2+gy.^2+gz.^2))/dt));
- end
- check=find(isnan(gx+gy+gz+ad));
- if check
- display ('-------------------------ERROR: NaN in Pulsevector------------------------');
- return
- end
- display ('----------------------Sampling efficiency (ADC ON/length)----------------------');
- display (length(find(ad))/length(ad));
- %%
- if write_files
- %% write files %%
- fname1=['sstraj.', num2str(npnts)];
- fid=fopen([fname1,'.',num2str(trajnum),'.gx'],'w');
- fprintf(fid, '%f\n', gx/gscale);
- fclose(fid);
- fid=fopen([fname1,'.',num2str(trajnum),'.gy'],'w');
- fprintf(fid, '%f\n', gy/gscale);
- fclose(fid);
- fid=fopen([fname1,'.',num2str(trajnum),'.gz'],'w');
- fprintf(fid, '%f\n', -gz/gscale);
- fclose(fid);
- fid=fopen([fname1,'.',num2str(trajnum),'.ad'],'w');
- fprintf(fid, '%f\n', ad);
- fclose(fid);
- %% write header
- fid=fopen([fname1,'.',num2str(trajnum),'.hdr'],'w');
- fprintf(fid,'fovxy=%f trajnum=%d trajectory_type=%d do_buff=%d calimode=%d GreRotType=%d rot=%d SeqOpt=%d n=%d Nturns=%d do_simulation=%d Nrot=%d kzflip=%d w=%f Nblips=%d nxy=%d nz=%d Nechoes=%d SpiralTwist=%d fblip=%d dgdtmax=%d gmax=%d dt=%e', fovx, trajnum, trajectory_type, do_buff, calimode, GreRotType, rot, SeqOpt, n, Nturns, do_simulation, Nrot, kzflip, w, Nblips, nx, nz, Nechoes, SpiralTwist, fblip, dgdtmax, gmax, dt);
- fprintf(fid,' fovxy=%f nxy=%d fovz=%f nz=%d rxy=%d rz=%d gmax=%d',fovx,nx_eff,fovzz,Nblips,NechoLines,Nblips, gmax);
- fclose(fid);
- end
mk2DrEPItraj.m at commit 5e64e4e, no license · at the source
Overview
- Department of Medicine, John A. Burns School of Medicine, University of Hawaii, Honolulu, Hawaii, USA
- Bernard and Irene Schwartz Center for Biomedical Imaging, Department of Radiology, New York University Grossman School of Medicine, New York, New York, USA
Abstract
Purpose: To develop a novel single‐shot radial echo planar imaging (ss‐rEPI) technique for rapid, distortion‐free brain imaging in functional MRI experiments.
Methods: Radial multi‐gradient echo (radial mGRE) data were acquired on a 3T clinical scanner using a 2D ss‐rEPI readout with small golden‐angle rotations between echoes. Images were reconstructed using an iterative conjugate‐gradient method incorporating coil sensitivities, B 0 field inhomogeneities, transverse relaxation, and field‐drift correction to account for signal inconsistencies in the extended mGRE readout. Additional k‐space‐weighted image contrast (KWIC) filtering prior to reconstruction helped reduce model mismatches at low spatial frequencies. Single‐shot rEPI image quality, contrast, and distortion were assessed against multi‐shot radial mGRE reference data. Retrospective adjustment of the KWIC filter and target TE in the reconstruction allowed the generation of multiple T 2*weighted and phase contrast images from a single ss‐rEPI scan, enabling quantitative T 2* mapping and QSM. Visual BOLD fMRI experiments were conducted and evaluated against Cartesian EPI measurements.
Results: Twenty‐four 3 mm thick slices of distortion‐free, multi‐contrast brain images were obtained at 2 × 2 and 1.5 mm2 (ramp‐sampled) in‐plane resolution with an acquisition time of under 1.7 s. In multi‐session fMRI experiments on two subjects, ss‐rEPI demonstrated BOLD activation in the visual cortex comparable to standard EPI while also enabling functional T 2* measurements.
Conclusion: Single‐shot rEPI enables rapid, distortion‐free 2D multi‐contrast brain imaging, offering a promising alternative to Cartesian EPI. Accurate ∆B 0 modeling is critical for ss‐rEPI performance. Advanced reconstruction techniques and self‐calibration methods could further enhance its speed, performance, and applicability across diverse MRI techniques.
Reproduced under the paper's license (CC BY-NC), from the paper cited above.
Repositories
Its files are read in the Code ↔ Paper reader above, with 2 matches between paragraphs and lines of code.
crettenm/ss-rEPI
5e64e4e9dc33ce4a0b27adb59033c982f90ee55f, 11 May 2026Availability: 1 check, the latest on 28 September 2026: the link answers
- 28 September 2026: the link answers
304 files
- @TVOP/
TVOP.m , MATLAB, 11 lines - @TVOP/
ctranspose.m , MATLAB, 4 lines - @TVOP/
mtimes.m , MATLAB, 10 lines - @TVOP/
private/ , MATLAB, 24 linesD.m - @TVOP/
private/ , MATLAB, 24 linesadjD.m - @TVOP/
times.m , MATLAB, 4 lines - model_based_reconstructi
on/ , MATLAB, 20 linescompressCoils_ss.m - model_based_reconstructi
on/ , MATLAB, 7 linescostfunction_lin_kfilt.m - model_based_reconstructi
on/ , MATLAB, 43 linesforward_operator_lin_kfi lt.m - model_based_reconstructi
on/ , MATLAB, 112 linesgradient_lin_kfilt.m - model_based_reconstructi
on/ , MATLAB, 24 linesobjective_lin_kfilt.m - model_based_reconstructi
on/ , MATLAB, 297 linesrecon_SSrEPI.m - nufft/
@Fatrix/ , MATLAB, 98 linesFatrix.m - nufft/
@Fatrix/ , MATLAB, 12 linesGblock.m - nufft/
@Fatrix/ , MATLAB, 8 linesabs.m - nufft/
@Fatrix/ , MATLAB, 24 linesblock_setup.m - nufft/
@Fatrix/ , MATLAB, 7 linesblockify_data.m - nufft/
@Fatrix/ , MATLAB, 18 linesbuild_gram.m - nufft/
@Fatrix/ , MATLAB, 8 linesctranspose.m - nufft/
@Fatrix/ , MATLAB, 17 linesdisplay.m - nufft/
@Fatrix/ , MATLAB, 9 linesfree.m - nufft/
@Fatrix/ , MATLAB, 5 lineshorzcat.m - nufft/
@Fatrix/ , MATLAB, 3 linesminmax.m - nufft/
@Fatrix/ , MATLAB, 11 linesminus.m - nufft/
@Fatrix/ , MATLAB, 66 linesmtimes.m - nufft/
@Fatrix/ , MATLAB, 40 linesmtimes_block.m - nufft/
@Fatrix/ , MATLAB, 12 linesplus.m - nufft/
@Fatrix/ , MATLAB, 10 linespower.m - nufft/
@Fatrix/ , MATLAB, 34 linesprivate/ do_cascade.m - nufft/
@Fatrix/ , MATLAB, 17 linessize.m - nufft/
@Fatrix/ , MATLAB, 29 linessubsasgn.m - nufft/
@Fatrix/ , MATLAB, 115 linessubsref.m - nufft/
@Fatrix/ , MATLAB, 6 linessum.m - nufft/
@Fatrix/ , MATLAB, 8 linesufun.m - nufft/
@Fatrix/ , MATLAB, 5 linesvertcat.m - nufft/
@NUFFT2D/ , MATLAB, 52 linesNUFFT2D.m - nufft/
@NUFFT2D/ , MATLAB, 4 linesctranspose.m - nufft/
@NUFFT2D/ , MATLAB, 24 linesmtimes.m - nufft/
@NUFFT2D/ , MATLAB, 4 linestranspose.m - nufft/
my_dcf.m , MATLAB, 220 lines - nufft/
nufft/ , MATLAB, 77 linesarchive/ dtft_adj_arrayfun.m - nufft/
nufft/ , MATLAB, 89 linesarchive/ nufft1.m - nufft/
nufft/ , MATLAB, 54 linesarchive/ nufft1_adj.m - nufft/
nufft/ , MATLAB, 103 linesarchive/ nufft1_init.m - nufft/
nufft/ , MATLAB, 105 linesarchive/ nufft1_init_kb.m - nufft/
nufft/ , MATLAB, 95 linesarchive/ nufft2.m - nufft/
nufft/ , MATLAB, 65 linesarchive/ nufft2_adj.m - nufft/
nufft/ , MATLAB, 105 linesarchive/ nufft2_bilinear.m - nufft/
nufft/ , MATLAB, 176 linesarchive/ nufft2_init.m - nufft/
nufft/ , MATLAB, 166 linesarchive/ nufft2_init_kb.m - nufft/
nufft/ , MATLAB, 37 linesarchive/ nufft2_init_kb_matej.m - nufft/
nufft/ , MATLAB, 25 linesarchive/ test_nufft_sym.m - nufft/
nufft/ , MATLAB, 152 linesdtft.m - nufft/
nufft/ , MATLAB, 33 linesdtft1.m - nufft/
nufft/ , MATLAB, 61 linesdtft2.m - nufft/
nufft/ , MATLAB, 57 linesdtft2_adj.m - nufft/
nufft/ , MATLAB, 96 linesdtft_adj.m - nufft/
nufft/ , MATLAB, 11 linesdtft_mex.m - nufft/
nufft/ , MATLAB, 191 linesdtft_test.m - nufft/
nufft/ , MATLAB, 110 lines, 1 matchexample_nufft1_reverse.m - nufft/
nufft/ , MATLAB, 50 linesexample_nufft_antenna.m - nufft/
nufft/ , MATLAB, 96 linesfftn_fast.m - nufft/
nufft/ , MATLAB, 147 linesfig_nufft_emax.m - nufft/
nufft/ , MATLAB, 23 linesfig_taper_cos3.m - nufft/
nufft/ , C, 320 linesgreengard/ back_grid.c - nufft/
nufft/ , C, 122 linesgreengard/ back_grid_pow.c - nufft/
nufft/ , C, 312 linesgreengard/ forw_grid.c - nufft/
nufft/ , C, 122 linesgreengard/ forw_grid_pow.c - nufft/
nufft/ , MATLAB, 28 linesgreengard/ gg_Gnufft.m - nufft/
nufft/ , MATLAB, 14 linesgreengard/ gg_Gnufft_back.m - nufft/
nufft/ , MATLAB, 15 linesgreengard/ gg_Gnufft_forw.m - nufft/
nufft/ , MATLAB, 57 linesgreengard/ gg_Gnufft_init.m - nufft/
nufft/ , MATLAB, 214 linesgreengard/ gg_Gnufft_test.m - nufft/
nufft/ , MATLAB, 58 linesgreengard/ ggnuffttest_type1.m - nufft/
nufft/ , MATLAB, 77 linesgreengard/ ggnuffttest_type1_2d.m - nufft/
nufft/ , MATLAB, 54 linesgreengard/ ggnuffttest_type2.m - nufft/
nufft/ , MATLAB, 73 linesgreengard/ ggnuffttest_type2_2d.m - nufft/
nufft/ , MATLAB, 3 linesgreengard/ nrmse.m - nufft/
nufft/ , MATLAB, 12 linesgreengard/ test_all_gg_nufft.m - nufft/
nufft/ , MATLAB, 81 linesifftn_fast.m - nufft/
nufft/ , MATLAB, 117 linesinterp_table_test.m - nufft/
nufft/ , MATLAB, 143 lineskaiser_bessel.m - nufft/
nufft/ , MATLAB, 106 lineskaiser_bessel_ft.m - nufft/
nufft/ , MATLAB, 92 lineskaiser_bessel_xray.m - nufft/
nufft/ , MATLAB, 668 linesnewfft.m - nufft/
nufft/ , MATLAB, 165 linesnufft.m - nufft/
nufft/ , MATLAB, 258 linesnufft1_build.m - nufft/
nufft/ , MATLAB, 19 linesnufft1_emax.m - nufft/
nufft/ , MATLAB, 125 linesnufft1_err_mm.m - nufft/
nufft/ , MATLAB, 175 linesnufft1_error.m - nufft/
nufft/ , MATLAB, 40 linesnufft1_kernel.m - nufft/
nufft/ , MATLAB, 40 linesnufft1_time.m - nufft/
nufft/ , MATLAB, 90 linesnufft2_err_mm.m - nufft/
nufft/ , MATLAB, 77 linesnufft_adj - Copy.m - nufft/
nufft/ , MATLAB, 78 linesnufft_adj.m - nufft/
nufft/ , MATLAB, 54 linesnufft_alpha_kb_fit.m - nufft/
nufft/ , MATLAB, 85 linesnufft_best_alpha.m - nufft/
nufft/ , MATLAB, 39 linesnufft_best_gauss.m - nufft/
nufft/ , MATLAB, 73 linesnufft_diric.m - nufft/
nufft/ , MATLAB, 54 linesnufft_gauss.m - nufft/
nufft/ , MATLAB, 337 linesnufft_init.m - nufft/
nufft/ , MATLAB, 90 linesnufft_scale.m - nufft/
nufft/ , MATLAB, 29 linesnufft_scale_kb.m - nufft/
nufft/ , MATLAB, 35 linesnufft_sinc.m - nufft/
nufft/ , MATLAB, 70 linesnufft_table_adj.m - nufft/
nufft/ , MATLAB, 10 linesnufft_table_change.m - nufft/
nufft/ , MATLAB, 160 linesnufft_table_init.m - nufft/
nufft/ , MATLAB, 73 linesnufft_table_interp.m - nufft/
nufft/ , MATLAB, 263 linesnufft_table_test.m - nufft/
nufft/ , MATLAB, 89 linesnufft_tune_gauss.m - nufft/
nufft/ , MATLAB, 160 linesnufft_tune_kaiser.m - nufft/
nufft/ , MATLAB, 80 linesprivate/ newfft_approx_adj.m - nufft/
nufft/ , MATLAB, 79 linesprivate/ newfft_approx_for.m - nufft/
nufft/ , MATLAB, 21 linesprivate/ newfft_exact_adj.m - nufft/
nufft/ , MATLAB, 20 linesprivate/ newfft_exact_for.m - nufft/
nufft/ , MATLAB, 31 linesprivate/ newfft_exact_p.m - nufft/
nufft/ , MATLAB, 241 linesprivate/ newfft_table_init.m - nufft/
nufft/ , MATLAB, 86 linesprivate/ nufft_T.m - nufft/
nufft/ , MATLAB, 52 linesprivate/ nufft_alpha.m - nufft/
nufft/ , MATLAB, 22 linesprivate/ nufft_coef.m - nufft/
nufft/ , MATLAB, 78 linesprivate/ nufft_interp_zn.m - nufft/
nufft/ , MATLAB, 53 linesprivate/ nufft_offset.m - nufft/
nufft/ , MATLAB, 49 linesprivate/ nufft_r.m - nufft/
nufft/ , MATLAB, 22 linesprivate/ nufft_samples.m - nufft/
nufft/ , C/C++, 45 linestable/ def,table.h - nufft/
nufft/ , C/C++, 75 linestable/ def,table1.h - nufft/
nufft/ , C/C++, 95 linestable/ def,table2.h - nufft/
nufft/ , C/C++, 115 linestable/ def,table3.h - nufft/
nufft/ , C/C++, 135 linestable/ def,table4.h - nufft/
nufft/ , C, 174 linestable/ interp1_table1_adj.c - nufft/
nufft/ , C, 177 linestable/ interp1_table1_for.c - nufft/
nufft/ , MATLAB, 12 linestable/ interp1_table1_import.m - nufft/
nufft/ , C, 146 linestable/ interp1_table_adj_mex.c - nufft/
nufft/ , C, 139 linestable/ interp1_table_mex.c - nufft/
nufft/ , C, 275 linestable/ interp2_table1_adj.c - nufft/
nufft/ , C, 287 linestable/ interp2_table1_for.c - nufft/
nufft/ , C, 149 linestable/ interp2_table_adj_mex.c - nufft/
nufft/ , C, 146 linestable/ interp2_table_mex.c - nufft/
nufft/ , C, 358 linestable/ interp3_table1_adj.c - nufft/
nufft/ , C, 381 linestable/ interp3_table1_for.c - nufft/
nufft/ , C, 169 linestable/ interp3_table_adj_mex.c - nufft/
nufft/ , C, 166 linestable/ interp3_table_mex.c - nufft/
nufft/ , C, 453 linestable/ interp4_table1_adj.c - nufft/
nufft/ , C, 484 linestable/ interp4_table1_for.c - nufft/
nufft/ , C, 183 linestable/ interp4_table_adj_mex.c - nufft/
nufft/ , C, 184 linestable/ interp4_table_mex.c - nufft/
nufft/ , MATLAB, 18 linestable/ mex_build_table.m - nufft/
nufft/ , MATLAB, 20 linestest_all_nufft.m - nufft/
nufft/ , MATLAB, 62 linestsp2003figs/ fig_error_J.m - nufft/
nufft/ , MATLAB, 64 linestsp2003figs/ fig_interp_alf1.m - nufft/
show.m , MATLAB, 14 lines - nufft/
show3d.m , MATLAB, 21 lines - nufft/
utilities/ , MATLAB, 45 lines@strum/ display.m - nufft/
utilities/ , MATLAB, 4 lines@strum/ isfield.m - nufft/
utilities/ , MATLAB, 8 lines@strum/ numel.m - nufft/
utilities/ , MATLAB, 4 lines@strum/ plus.m - nufft/
utilities/ , MATLAB, 114 lines@strum/ strum.m - nufft/
utilities/ , MATLAB, 39 lines@strum/ subsasgn.m - nufft/
utilities/ , MATLAB, 76 lines@strum/ subsref.m - nufft/
utilities/ , MATLAB, 311 linesGsparse.m - nufft/
utilities/ , MATLAB, 27 linesarch/ @double/ stack.m - nufft/
utilities/ , MATLAB, 118 linesarch/ mat_write.m - nufft/
utilities/ , MATLAB, 42 linesarch/ vararg_get.m - nufft/
utilities/ , MATLAB, 7 linesarch/ vararg_pairs.m - nufft/
utilities/ , MATLAB, 36 linesarg_get.m - nufft/
utilities/ , MATLAB, 67 linesarg_pair.m - nufft/
utilities/ , MATLAB, 7 linesbeeper.m - nufft/
utilities/ , MATLAB, 43 linesblank_unmash.m - nufft/
utilities/ , MATLAB, 218 linesbspline_1d_coef.m - nufft/
utilities/ , MATLAB, 157 linesbspline_1d_interp.m - nufft/
utilities/ , MATLAB, 301 linesbspline_1d_synth.m - nufft/
utilities/ , MATLAB, 26 linescaller_name.m - nufft/
utilities/ , MATLAB, 4 linescol.m - nufft/
utilities/ , MATLAB, 10 linescomplexify.m - nufft/
utilities/ , MATLAB, 82 linescpu.m - nufft/
utilities/ , MATLAB, 5 linesdeg2rad.m - nufft/
utilities/ , MATLAB, 6 linesdetex.m - nufft/
utilities/ , MATLAB, 51 linesdft_sym_check.m - nufft/
utilities/ , MATLAB, 14 linesdiffc.m - nufft/
utilities/ , MATLAB, 20 linesdifff.m - nufft/
utilities/ , MATLAB, 47 linesdims_same.m - nufft/
utilities/ , MATLAB, 7 linesdiv0.m - nufft/
utilities/ , MATLAB, 51 linesdouble6.m - nufft/
utilities/ , MATLAB, 16 linesdoubles.m - nufft/
utilities/ , MATLAB, 58 linesdownsample1.m - nufft/
utilities/ , MATLAB, 35 linesdownsample2.m - nufft/
utilities/ , MATLAB, 86 linesdownsample3.m - nufft/
utilities/ , MATLAB, 12 linesdsingle.m - nufft/
utilities/ , MATLAB, 97 linesembed.m - nufft/
utilities/ , MATLAB, 74 linesequivs.m - nufft/
utilities/ , MATLAB, 16 linesfail.m - nufft/
utilities/ , MATLAB, 140 linesfiltmat.m - nufft/
utilities/ , MATLAB, 494 linesfld_read.m - nufft/
utilities/ , MATLAB, 249 linesfld_write.m - nufft/
utilities/ , MATLAB, 8 linesflipdims.m - nufft/
utilities/ , MATLAB, 98 linesfractional_delay.m - nufft/
utilities/ , MATLAB, 47 linesfwhm.m - nufft/
utilities/ , MATLAB, 88 linesfwhm1.m - nufft/
utilities/ , MATLAB, 159 linesfwhm2.m - nufft/
utilities/ , MATLAB, 65 linesfwhm_match.m - nufft/
utilities/ , MATLAB, 26 linesgaussian_kernel.m - nufft/
utilities/ , MATLAB, 44 linesgroup2d.m - nufft/
utilities/ , MATLAB, 28 lineshas_aspire.m - nufft/
utilities/ , MATLAB, 29 lineshas_mex_jf.m - nufft/
utilities/ , MATLAB, 68 lineshighrate_centers.m - nufft/
utilities/ , MATLAB, 178 lineshist_bin_int.m - nufft/
utilities/ , MATLAB, 104 lineshist_equal.m - nufft/
utilities/ , MATLAB, 32 linesifft_sym.m - nufft/
utilities/ , MATLAB, 41 linesimax.m - nufft/
utilities/ , MATLAB, 19 linesimin.m - nufft/
utilities/ , MATLAB, 87 linesinterp1_jump.m - nufft/
utilities/ , MATLAB, 49 linesinterp1_lagrange.m - nufft/
utilities/ , MATLAB, 49 linesinterp1x.m - nufft/
utilities/ , MATLAB, 9 linesis_pre_v7.m - nufft/
utilities/ , MATLAB, 5 linesisfreemat.m - nufft/
utilities/ , MATLAB, 43 linesisvar.m - nufft/
utilities/ , MATLAB, 217 linesjf.m - nufft/
utilities/ , MATLAB, 39 linesjf_assert.m - nufft/
utilities/ , MATLAB, 64 linesjf_dcm_write.m - nufft/
utilities/ , MATLAB, 94 linesjf_equal.m - nufft/
utilities/ , MATLAB, 109 linesjf_histn.m - nufft/
utilities/ , MATLAB, 86 linesjf_protected_names.m - nufft/
utilities/ , MATLAB, 20 linesjf_whos_nan.m - nufft/
utilities/ , MATLAB, 13 linesjinc.m - nufft/
utilities/ , MATLAB, 197 lineskde_pmf1.m - nufft/
utilities/ , MATLAB, 261 lineskde_pmf2.m - nufft/
utilities/ , MATLAB, 78 lineskde_pmf_width.m - nufft/
utilities/ , MATLAB, 183 lineslloyd_max_hist.m - nufft/
utilities/ , MATLAB, 46 linesload_ascii_skip_header.m - nufft/
utilities/ , MATLAB, 27 linesmag_angle_real.m - nufft/
utilities/ , MATLAB, 32 linesmasker.m - nufft/
utilities/ , MATLAB, 27 linesmat_read.m - nufft/
utilities/ , MATLAB, 102 linesmax_percent_diff.m - nufft/
utilities/ , MATLAB, 137 linesmin_cos_quad.m - nufft/
utilities/ , MATLAB, 121 linesminmax.m - nufft/
utilities/ , MATLAB, 8 linesmod0.m - nufft/
utilities/ , MATLAB, 4 linesnans.m - nufft/
utilities/ , MATLAB, 6 linesncol.m - nufft/
utilities/ , MATLAB, 82 linesndgrid_jf.m - nufft/
utilities/ , MATLAB, 59 linesnrms.m - nufft/
utilities/ , MATLAB, 6 linesnrow.m - nufft/
utilities/ , MATLAB, 17 linesnum2list.m - nufft/
utilities/ , MATLAB, 25 linesos_run.m - nufft/
utilities/ , MATLAB, 49 linesouter_sum.m - nufft/
utilities/ , MATLAB, 47 linespad_into_center.m - nufft/
utilities/ , MATLAB, 57 linespadn.m - nufft/
utilities/ , MATLAB, 13 linespath_find_dir.m - nufft/
utilities/ , MATLAB, 55 linespoisson.m - nufft/
utilities/ , MATLAB, 14 linespoisson0.m - nufft/
utilities/ , MATLAB, 25 linespoisson1.m - nufft/
utilities/ , MATLAB, 84 linespoisson2.m - nufft/
utilities/ , MATLAB, 14 linespoisson2unif.m - nufft/
utilities/ , MATLAB, 61 linespoly_string.m - nufft/
utilities/ , MATLAB, 33 linespr.m - nufft/
utilities/ , MATLAB, 8 linesprintf.m - nufft/
utilities/ , MATLAB, 14 linesprintm.m - nufft/
utilities/ , MATLAB, 7 linesprintv.m - nufft/
utilities/ , MATLAB, 58 linesprivate/ jf_color_order.m - nufft/
utilities/ , MATLAB, 24 linesprivate/ jf_has_hct2.m - nufft/
utilities/ , MATLAB, 19 linesprivate/ jf_hct_arg.m - nufft/
utilities/ , MATLAB, 25 linesprivate/ jf_mid3.m - nufft/
utilities/ , MATLAB, 4 linesprivate/ jf_normcdf.m - nufft/
utilities/ , MATLAB, 50 linesprivate/ jf_prctile.m - nufft/
utilities/ , MATLAB, 54 linesprivate/ jf_rm_toolbox.m - nufft/
utilities/ , MATLAB, 98 linesprivate/ jf_struct_recurse.m - nufft/
utilities/ , MATLAB, 93 linesprompt.m - nufft/
utilities/ , MATLAB, 5 linesrad2deg.m - nufft/
utilities/ , MATLAB, 77 linesread.m - nufft/
utilities/ , MATLAB, 98 linesreale.m - nufft/
utilities/ , MATLAB, 4 linesrect.m - nufft/
utilities/ , MATLAB, 30 linesremove_spaces.m - nufft/
utilities/ , MATLAB, 8 linesrepeat_slice.m - nufft/
utilities/ , MATLAB, 9 linesrepout.m - nufft/
utilities/ , MATLAB, 58 linesreshapee.m - nufft/
utilities/ , MATLAB, 37 linesreshaper.m - nufft/
utilities/ , MATLAB, 38 linesrms.m - nufft/
utilities/ , MATLAB, 75 linesrun_mfile_local.m - nufft/
utilities/ , MATLAB, 52 linessinc_periodic.m - nufft/
utilities/ , MATLAB, 17 linessingle_ws.m - nufft/
utilities/ , MATLAB, 30 linessino_mash.m - nufft/
utilities/ , MATLAB, 19 linesspdiag.m - nufft/
utilities/ , MATLAB, 45 linesstackpick.m - nufft/
utilities/ , MATLAB, 71 linesstackup.m - nufft/
utilities/ , MATLAB, 14 linesstreq.m - nufft/
utilities/ , MATLAB, 8 linesstrreps.m - nufft/
utilities/ , MATLAB, 63 linesstrum_test.m - nufft/
utilities/ , MATLAB, 6 linessubv2ind.m - nufft/
utilities/ , MATLAB, 36 linesswapdim.m - nufft/
utilities/ , MATLAB, 44 linestest_all.m - nufft/
utilities/ , MATLAB, 52 linestest_all_util.m - nufft/
utilities/ , MATLAB, 38 linestest_dir.m - nufft/
utilities/ , MATLAB, 152 linesticker.m - nufft/
utilities/ , MATLAB, 40 linestruncate_precision.m - nufft/
utilities/ , MATLAB, 31 linesunpadn.m - nufft/
utilities/ , MATLAB, 29 linesupsample_rep.m - nufft/
utilities/ , MATLAB, 243 linesvararg_pair.m - nufft/
utilities/ , MATLAB, 13 linesvcorrcoef.m - nufft/
utilities/ , MATLAB, 7 lineswarn.m - nufft/
utilities/ , MATLAB, 11 lineszero_tiny_negative.m - run_SSrEPI.m, MATLAB, 78 lines
- trajectory/
dotrap2.m , MATLAB, 21 lines - trajectory/
dotrap3.m , MATLAB, 21 lines - trajectory/
mk2DrEPItraj.m , MATLAB, 278 lines, 1 match - README.md, Text, 50 lines
Zenodo 19520791
Availability: 1 check, the latest on 28 September 2026: the link answers (HTTP 200)
- 28 September 2026: the link answers (HTTP 200)
The paper's code and data availability statement is in the Data section.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 2 repositories of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 303 scripts, each with its path and the digest of its content;
- 2 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
No dataset and no data link were found in the paper.
Data Availability Statement
The reconstruction code, raw k‐space data, and main scripts are available at https://
Reproduced under the paper's license (CC BY-NC), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 2, 28 September 2026
- Publisher: n/a → Wiley
Version 1, 28 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 5 authors, 6 keywords, 10 MeSH terms, 1 funder, 57 references.
Cite
This paper
Rettenmeier, C. A., Yu, Z., Edwards‐Calma, K., Block, K. T., & Stenger, V. A. (2026). Single-Shot 2D Radial Echo Planar Imaging for Functional MRI. Magnetic resonance in medicine, 96(3), 1245-1260. https://
BibTeX
@article{rettenmeier2026
author = {Rettenmeier, Christoph A and Yu, Zidan and Edwards‐Calma, Krystalyn and Block, Kai Tobias and Stenger, V Andrew},
title = {{Single-Shot 2D Radial Echo Planar Imaging for Functional MRI}},
journal = {Magnetic resonance in medicine},
year = {2026},
month = may,
volume = {96},
number = {3},
pages = {1245--1260},
publisher = {Wiley},
issn = {0740-3194},
doi = {10.1002/
url = {https://
pmid = {42143757},
pmcid = {PMC13327459}
}
RIS
TY - JOUR
AU - Rettenmeier, Christoph A
AU - Yu, Zidan
AU - Edwards‐Calma, Krystalyn
AU - Block, Kai Tobias
AU - Stenger, V Andrew
TI - Single-Shot 2D Radial Echo Planar Imaging for Functional MRI
T2 - Magnetic resonance in medicine
J2 - Magn Reson Med
PY - 2026
DA - 2026/
VL - 96
IS - 3
SP - 1245
EP - 1260
SN - 0740-3194
PB - Wiley
DO - 10.1002/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1002/
"type": "article-journal",
"title": "Single-Shot 2D Radial Echo Planar Imaging for Functional MRI",
"container-title": "Magnetic resonance in medicine",
"author": [
{
"family": "Rettenmeier",
"given": "Christoph A"
},
{
"family": "Yu",
"given": "Zidan"
},
{
"family": "Edwards‐Calma",
"given": "Krystalyn"
},
{
"family": "Block",
"given": "Kai Tobias"
},
{
"family": "Stenger",
"given": "V Andrew"
}
],
"container-title-short":
"volume": "96",
"issue": "3",
"page": "1245-1260",
"DOI": "10.1002/
"PMID": "42143757",
"PMCID": "PMC13327459",
"ISSN": "0740-3194",
"publisher": "Wiley",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
5,
17
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1002/mrm.70333 [code]
- Phase-Pole-Free Images and Smooth Coil Sensitivity Maps by Regularized Nonlinear Inversion.Journal: Magnetic resonance in medicineIn common: 7 references
- [2] doi:10.1002/mrm.70439 [code]
- Group-Patch Joint Compression: Compressing Dynamic B&
lt;sub& gt;0& lt;/ sub& gt; and Static RF Spatial Modulations Across k-Space Subregion Groups for Highly Accelerated MRI. Journal: Magnetic resonance in medicineIn common: 5 references - [3] doi:10.1038/s41598-026-58377-2 [code]
- A novel distortion-matched anatomical imaging sequence for high-fidelity functional mapping in submillimeter-resolution
fMRI. Journal: Scientific reportsIn common: fMRI, 4 references - [4] doi:10.1002/mrm.70469 [code]
- Laterally Oscillating Trajectory for Undersampling Slices: LOTUS.Journal: Magnetic resonance in medicineIn common: 4 references
- [5] doi:10.7554/elife.92805 [code]
- Brain-wide mapping of layer-specific functional connectivity in the human cortex at 3T using draining-vein-suppressed
fMRI. Journal: eLifeIn common: Signal Processing Toolbox, fMRI, 3 references - [6] doi:10.1162/imag.a.1247 [code]
- Evaluating BOLD functional MRI biophysical simulation approaches: Impact of vascular geometry, magnetic field calculations, and water diffusion models.Journal: Imaging neuroscience (Cambridge, Mass.)In common: fMRI, 3 references
- [7] doi:10.1002/nbm.70305 [code]
- Reducing Noise Induced by Cardiac Pulsatility in Brain Maps of R&
lt;sub& gt;2& lt;/ sub& gt;* and Magnetic Susceptibility Using Tailored k-space Sampling. Journal: NMR in biomedicineIn common: Signal Processing Toolbox, 2 references - [8] doi:10.1162/imag.a.1354 [code]
- Development of a 24-channel 3T phased-array coil for fMRI in awake monkeys: Mitigating spatiotemporal artifacts in ferumoxytol-weighted functional connectivity estimation.Journal: Imaging neuroscience (Cambridge, Mass.)In common: fMRI, 3 references
- [9] doi:10.1111/ejn.70666
- Resting State Functional Connectivity Among Cortical and Subcortical Grey Matter Structures Can Distinguish Fallers in Parkinson's Disease.Journal: The European journal of neuroscienceIn common: fMRI, 3 references
- [10] doi:10.1038/s41467-026-72934-3 [code]
- Multi-focal ultrasound neuromodulation to the dorsal anterior cingulate cortex disrupts behavioural and neural pain processing.Journal: Nature communicationsIn common: fMRI, 3 references
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 2 repositories of the authors' code, each at its verified commit and with its license, 303 scripts, and 2 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:42d85b837e10bd0c…
Add the badge to its README
The badge links the code to this page. Copy one of these into the README of the paper's code: only you decide where it goes, and nothing is changed for you.
Markdown
[, paste the snippet at the top, then “Commit changes…” and, to review it first, “Create a new branch and start a pull request”. You open the pull request; OSCR asks for no permission.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: questions and error reports about this paper and its code, from signed-in readers and its authors. It opens with sign-in.
Reproductions: reports from readers who ran the authors' code: what they reproduced, with which environment, commit and data. It opens with sign-in.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
