Skin-attached bioadhesive patch enabling ultrasound deep brain stimulation and real-time electrophysiological monitoring for REM sleep enhancement.
The 16 matches · 2 of them tie a paragraph to a whole file, not to given lines: weak matches, whose lines are not tinted
- [1] § Results › Design and characterization of CRUTA with adjustable focal depth ↔ NEUSLeeP/Simulations/BeamProfileSkull.m, lines 490–535 · score 0.78 · beam profile, radial FWHM, acoustic field, focal depth, free field, skull
- [2] § Methods › Design and characterization of CRUTA › Acoustic field mapping ↔ NEUSLeeP/Simulations/BeamProfileSkullParameters.m, lines 501–586 · score 0.75 · 0–100 mm, acoustic field, radial profiles, thick, skull, axial
- [3] § Methods › Stress adaptation and REM enhancement evaluation post-FUS with NEUSLeeP › Heart rate variability (RMSSDHRV) ↔ NEUSLeeP/EEG /SleepAnalysis2.m, lines 310–372 · score 0.74 · 5–15 Hz, RR interval, bandpass filter, root, square, peak
- [4] § Methods › Stress adaptation and REM enhancement evaluation post-FUS with NEUSLeeP › Heart rate variability (RMSSDHRV) ↔ NEUSLeeP/EEG /process_HRV.m, lines 39–101 · score 0.74 · 5–15 Hz, RR interval, bandpass filter, root, square, peak
- [5] § Results › Design and characterization of CRUTA with adjustable focal depth ↔ NEUSLeeP/Simulations/BeamProfileSkullParameters.m, lines 501–586 · score 0.67 · beam profile, radial FWHM, acoustic field, skull, thickness, depth
- [6] § Results › Stress response of NEUSLeeP-enabled STN-FUS ↔ MRI-Study/scripts/batch_extract_images_hariri.sh, lines 1–51 · score 0.65 · amygdala ROI, right amygdala, Left Amygdala, bilaterally, Neutral, Anger
- [7] § Results › Stress response of NEUSLeeP-enabled STN-FUS ↔ MRI-Study/scripts/extract_image.sh, lines 1–62 · score 0.65 · amygdala ROI, right amygdala, Left Amygdala, bilaterally, Neutral, Anger
- [8] § Methods › Design and characterization of CRUTA › Acoustic field mapping ↔ NEUSLeeP/Verasonics Vantage Script/DARPA_NEUSLEEP_Study.m, lines 16–104 · score 0.62 · HIFU, LEMO, commercially, Verasonics, dimensional, Vantage
- [9] § Results › Design and characterization of CRUTA with adjustable focal depth ↔ NEUSLeeP/Simulations/BeamProfileSkull.m, lines 490–535 · score 0.57 · peak pressure, Acoustic field, focal depth, skulls, profiles, radial
- [10] § Methods › Material characterization (Eco-PEIE-Gel and ASG) › Stress/strain test ↔ NEUSLeeP/Mechanical Tests/Stress_strainTest_step1.m, lines 55–106 · score 0.55 · stress strain, gauge, Force
- [11] § Methods › Stress adaptation and REM enhancement evaluation post-FUS with NEUSLeeP › Sleep study with NEUSLeeP ↔ NEUSLeeP/EEG /SleepAnalysis2.m, lines 50–131 · score 0.52 · heart rate, EEG, ECG, HRV, monitoring, signal
- [12] § Methods › Material characterization (Eco-PEIE-Gel and ASG) › Adhesion strength/cycle ↔ NEUSLeeP/Simulations/EnergyReleaseRate.m, the whole file · a weak match · score 0.52 · adhesion strength, angle, peel, width
- [13] § Methods › Subthalamic nucleus target engagement using CRUTA › Experimental setup ↔ MRI-Study/scripts/MakeRestingRun1AFNIProcRunScript_Censor0.4.sh, the whole file · a weak match · score 0.52 · pre FUS, post FUS, Fast, EPI, STN, MRI
- [14] § Methods › Stress adaptation and REM enhancement evaluation post-FUS with NEUSLeeP › Sleep study with NEUSLeeP ↔ NEUSLeeP/Verasonics Vantage Script/DARPA_NEUSLEEP_Study.m, lines 16–104 · score 0.52 · computer, LEMO, Verasonics, external, Vantage, transducer
- [15] § Results › Design and characterization of CRUTA with adjustable focal depth ↔ NEUSLeeP/Simulations/BeamProfileSkull.m, lines 46–106 · score 0.51 · concentric ring, CRUTA, skull, delay, axial, mm
- [16] § Results › STN-FUS results in ipsilateral changes of the basal ganglia network ↔ NEUSLeeP/EEG /alpha_band_channels.m, lines 181–231 · score 0.50 · power spectral density, EEG, band, 0.1 Hz
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 · 653 lines · 22 KB · no license · 3 matches
- clear; clc; close all;
- % =========================================================
- % DOMAIN SETUP
- % =========================================================
- Nx = 320; % axial samples
- Ny = 400; % radial samples
- Lx = 100e-3; % axial extent = 100 mm
- Ly = 60e-3; % radial extent = 60 mm -> display as -30 to 30 mm
- dx = Lx / Nx;
- dy = Ly / Ny;
- % Internal k-Wave coordinates
- x = (0:Nx-1) * dx; % m
- y = (0:Ny-1) * dy; % m
- x_mm = x * 1e3;
- y_mm = y * 1e3;
- [Xmm, Ymm] = ndgrid(x_mm, y_mm);
- kgrid = kWaveGrid(Nx, dx, Ny, dy);
- % =========================================================
- % DISPLAY COORDINATES
- % =========================================================
- % Axial display: 0 mm at bottom, 100 mm at top
- axial_disp_mm = x_mm(end) - x_mm;
- % Radial display: -30 mm to 30 mm
- radial_disp_mm = y_mm - mean(y_mm);
- % =========================================================
- % BASE MEDIUM PROPERTIES
- % =========================================================
- c_bg = 1500; % m/s
- rho_bg = 1000; % kg/m^3
- medium_ff.sound_speed = c_bg * ones(Nx, Ny);
- medium_ff.density = rho_bg * ones(Nx, Ny);
- medium_ff.alpha_coeff = 0.75 * ones(Nx, Ny);
- medium_ff.alpha_power = 1.5;
- % =========================================================
- % SOURCE LOCATION
- % =========================================================
- src_row = Nx - 3;
- src_depth_mm_internal = x_mm(src_row);
- src_depth_mm_display = axial_disp_mm(src_row);
- % =========================================================
- % 8-CHANNEL CONCENTRIC RING ARRAY SPECIFICATION
- % =========================================================
- ring_ID_mm = [ 5.35, 10.72, 16.07, 21.43, 26.79, 32.15, 37.51, 42.86 ];
- ring_OD_mm = [10.07, 15.42, 20.78, 26.14, 31.49, 36.86, 42.21, 47.57 ];
- ring_IR_mm = ring_ID_mm / 2;
- ring_OR_mm = ring_OD_mm / 2;
- ring_mid_mm = (ring_IR_mm + ring_OR_mm) / 2;
- nChannels = numel(ring_ID_mm);
- % =========================================================
- % SOURCE MASK: 2D APPROXIMATION OF 8-CHANNEL CRUTA
- % =========================================================
- source.p_mask = zeros(Nx, Ny);
- array_center_mm = 0;
- r_mm = abs(radial_disp_mm - array_center_mm);
- channel_map = zeros(1, Ny); % 0 = inactive, 1..8 = channel
- for ch = 1:nChannels
- idx = (r_mm >= ring_IR_mm(ch)) & (r_mm <= ring_OR_mm(ch));
- channel_map(idx) = ch;
- end
- active_cols = find(channel_map > 0);
- source.p_mask(src_row, active_cols) = 1;
- % =========================================================
- % FOCUSING DELAYS
- % =========================================================
- f0 = 650e3; % Hz
- source_amp = 1e6; % Pa
- target_focus_depth_mm = 72.2;
- focus_dist_mm = target_focus_depth_mm - src_depth_mm_display;
- focus_dist_m = focus_dist_mm * 1e-3;
- if focus_dist_mm <= 0
- error('Target focal depth must be above the source when measured from bottom to top.');
- end
- channel_delay_s = zeros(1, nChannels);
- for ch = 1:nChannels
- r_mid_m = ring_mid_mm(ch) * 1e-3;
- path_excess = sqrt(focus_dist_m^2 + r_mid_m^2) - focus_dist_m;
- channel_delay_s(ch) = path_excess / c_bg;
- end
- channel_delay_s = channel_delay_s - max(channel_delay_s);
- channel_apod = ones(1, nChannels);
- % =========================================================
- % TIME ARRAY
- % =========================================================
- cfl = 0.1;
- t_end = 1.3 * (Lx / c_bg);
- kgrid.makeTime(c_bg, cfl, t_end);
- % =========================================================
- % BUILD SOURCE SIGNALS
- % =========================================================
- active_pts = find(source.p_mask);
- nSrc = numel(active_pts);
- source.p = zeros(nSrc, numel(kgrid.t_array));
- for i = 1:nSrc
- [~, col_idx] = ind2sub([Nx, Ny], active_pts(i));
- ch = channel_map(col_idx);
- if ch > 0
- tau = channel_delay_s(ch);
- source.p(i, :) = channel_apod(ch) * source_amp * ...
- sin(2*pi*f0*(kgrid.t_array + tau));
- end
- end
- % =========================================================
- % SENSOR
- % =========================================================
- sensor.mask = ones(Nx, Ny);
- sensor.record = {'p_max', 'p_rms'};
- % =========================================================
- % SOURCE DISPLAY MAP
- % =========================================================
- source_display = zeros(Nx, Ny);
- for col = 1:Ny
- if channel_map(col) > 0
- source_display(src_row, col) = channel_map(col);
- end
- end
- % =========================================================
- % RUN FREE-FIELD
- % =========================================================
- disp('Running free-field simulation...');
- input_args = {'PMLInside', false, 'PlotPML', false, 'DisplayMask', 'off'};
- sensor_data_ff = kspaceFirstOrder2D(kgrid, medium_ff, source, sensor, input_args{:});
- p_max_ff = reshape(sensor_data_ff.p_max, Nx, Ny);
- p_rms_ff = reshape(sensor_data_ff.p_rms, Nx, Ny);
- % =========================================================
- % FIND FREE-FIELD FOCUS LOCATION
- % =========================================================
- [~, idx_ff] = max(p_max_ff(:));
- [focus_row_ff, focus_col_ff] = ind2sub(size(p_max_ff), idx_ff);
- focus_axial_ff_mm = axial_disp_mm(focus_row_ff);
- focus_radial_ff_mm = radial_disp_mm(focus_col_ff);
- % =========================================================
- % FREE-FIELD FWHM
- % =========================================================
- axial_profile_ff_peak = p_max_ff(:, focus_col_ff);
- radial_profile_ff_peak = p_max_ff(focus_row_ff, :);
- [axial_fwhm_ff_peak_mm, axL_ff_peak, axR_ff_peak] = ...
- local_fwhm(axial_disp_mm, axial_profile_ff_peak);
- [radial_fwhm_ff_peak_mm, rdL_ff_peak, rdR_ff_peak] = ...
- local_fwhm(radial_disp_mm, radial_profile_ff_peak);
- % =========================================================
- % SWEEP CURVATURES FOR SKULL CASES
- % =========================================================
- skull_thickness_mm = 6;
- skull_center_lat_mm = 0;
- % Columns 2-5 in the figure
- curvature_list = [0.003, 0.006, 0.009, 0.012];
- nCurv = numel(curvature_list);
- % Storage
- p_max_sk_all = cell(1, nCurv);
- skull_mask_all = cell(1, nCurv);
- post_skull_mask_all = cell(1, nCurv);
- focus_row_sk_all = nan(1, nCurv);
- focus_col_sk_all = nan(1, nCurv);
- focus_axial_sk_mm_all = nan(1, nCurv);
- focus_radial_sk_mm_all = nan(1, nCurv);
- axial_profile_sk_all = cell(1, nCurv);
- radial_profile_sk_all = cell(1, nCurv);
- axial_valid_sk_all = cell(1, nCurv);
- radial_valid_sk_all = cell(1, nCurv);
- axial_fwhm_sk_mm_all = nan(1, nCurv);
- radial_fwhm_sk_mm_all = nan(1, nCurv);
- axL_sk_all = nan(1, nCurv);
- axR_sk_all = nan(1, nCurv);
- rdL_sk_all = nan(1, nCurv);
- rdR_sk_all = nan(1, nCurv);
- peak_sk_all = nan(1, nCurv);
- for k = 1:nCurv
- curvature_strength = curvature_list(k);
- fprintf('Running skull simulation for curvature = %.4f ...\n', curvature_strength);
- % -----------------------------------------------------
- % SKULL GEOMETRY
- % -----------------------------------------------------
- skull_bottom_disp_mm = (src_depth_mm_display + 1.0) + ...
- curvature_strength * (radial_disp_mm - skull_center_lat_mm).^2;
- skull_top_disp_mm = skull_bottom_disp_mm + skull_thickness_mm;
- % Convert skull surfaces to internal x_mm
- skull_bottom_internal_mm = x_mm(end) - skull_bottom_disp_mm;
- skull_top_internal_mm = x_mm(end) - skull_top_disp_mm;
- skull_bottom_2d = repmat(skull_bottom_internal_mm, Nx, 1);
- skull_top_2d = repmat(skull_top_internal_mm, Nx, 1);
- skull_mask = (Xmm >= skull_top_2d) & (Xmm <= skull_bottom_2d);
- medium_skull = medium_ff;
- medium_skull.sound_speed(skull_mask) = 2800;
- medium_skull.density(skull_mask) = 1900;
- medium_skull.alpha_coeff(skull_mask) = 20;
- % -----------------------------------------------------
- % POST-SKULL VALID FOCUS REGION
- % -----------------------------------------------------
- post_skull_mask = false(Nx, Ny);
- for j = 1:Ny
- skull_rows = find(skull_mask(:, j));
- if isempty(skull_rows)
- post_skull_mask(:, j) = true;
- else
- skull_axial_vals = axial_disp_mm(skull_rows);
- top_of_skull_axial = max(skull_axial_vals);
- post_skull_mask(:, j) = axial_disp_mm(:) > top_of_skull_axial;
- end
- end
- % -----------------------------------------------------
- % RUN WITH SKULL
- % -----------------------------------------------------
- sensor_data_sk = kspaceFirstOrder2D(kgrid, medium_skull, source, sensor, input_args{:});
- p_max_sk = reshape(sensor_data_sk.p_max, Nx, Ny);
- % -----------------------------------------------------
- % FIND FOCUS LOCATION (POST-SKULL ONLY)
- % -----------------------------------------------------
- p_max_sk_post = p_max_sk;
- p_max_sk_post(~post_skull_mask) = -Inf;
- [~, idx_sk] = max(p_max_sk_post(:));
- [focus_row_sk, focus_col_sk] = ind2sub(size(p_max_sk_post), idx_sk);
- focus_axial_sk_mm = axial_disp_mm(focus_row_sk);
- focus_radial_sk_mm = radial_disp_mm(focus_col_sk);
- % -----------------------------------------------------
- % FWHM PROFILES
- % -----------------------------------------------------
- axial_profile_sk_peak = p_max_sk(:, focus_col_sk);
- radial_profile_sk_peak = p_max_sk(focus_row_sk, :);
- axial_valid_sk_peak = (~skull_mask(:, focus_col_sk)) & post_skull_mask(:, focus_col_sk);
- radial_valid_sk_peak = (~skull_mask(focus_row_sk, :).') & post_skull_mask(focus_row_sk, :).';
- [axial_fwhm_sk_peak_mm, axL_sk_peak, axR_sk_peak] = ...
- local_fwhm_masked(axial_disp_mm, axial_profile_sk_peak, axial_valid_sk_peak);
- [radial_fwhm_sk_peak_mm, rdL_sk_peak, rdR_sk_peak] = ...
- local_fwhm_masked(radial_disp_mm, radial_profile_sk_peak, radial_valid_sk_peak);
- % -----------------------------------------------------
- % STORE
- % -----------------------------------------------------
- p_max_sk_all{k} = p_max_sk;
- skull_mask_all{k} = skull_mask;
- post_skull_mask_all{k} = post_skull_mask;
- focus_row_sk_all(k) = focus_row_sk;
- focus_col_sk_all(k) = focus_col_sk;
- focus_axial_sk_mm_all(k) = focus_axial_sk_mm;
- focus_radial_sk_mm_all(k) = focus_radial_sk_mm;
- axial_profile_sk_all{k} = axial_profile_sk_peak;
- radial_profile_sk_all{k} = radial_profile_sk_peak;
- axial_valid_sk_all{k} = axial_valid_sk_peak;
- radial_valid_sk_all{k} = radial_valid_sk_peak;
- axial_fwhm_sk_mm_all(k) = axial_fwhm_sk_peak_mm;
- radial_fwhm_sk_mm_all(k) = radial_fwhm_sk_peak_mm;
- axL_sk_all(k) = axL_sk_peak;
- axR_sk_all(k) = axR_sk_peak;
- rdL_sk_all(k) = rdL_sk_peak;
- rdR_sk_all(k) = rdR_sk_peak;
- peak_sk_all(k) = max(p_max_sk_post(:));
- end
- % =========================================================
- % COMMON COLOR LIMITS
- % =========================================================
- clim_pmax = [0 1.5e6]; % Pa
- clim_prof = [0 2.5]; % MPa
- % =========================================================
- % PLOT 3x5 FIGURE
- % Row 1 = Acoustic field
- % Row 2 = Axial FWHM
- % Row 3 = Radial FWHM
- % Col 1 = Free-field
- % Col 2-5 = Skull with curvature sweep
- % =========================================================
- figure('Color', 'w', 'Name', 'Curvature Sweep: Free-field and Skull Cases', ...
- 'Position', [50 40 1800 950]);
- ax_field = gobjects(1, 5);
- % =========================================================
- % COLUMN 1: FREE-FIELD
- % =========================================================
- ax_field(1) = subplot(3,5,1);
- imagesc(radial_disp_mm, axial_disp_mm, p_max_ff);
- axis image;
- set(gca, 'YDir', 'normal');
- colormap(gca, turbo);
- caxis(clim_pmax);
- hold on;
- plot(focus_radial_ff_mm, focus_axial_ff_mm, 'wo', 'MarkerSize', 8, 'LineWidth', 1.8);
- yline(target_focus_depth_mm, 'w--', '72.2 mm target', 'LineWidth', 1.0);
- title('No Skull');
- xlabel('Radial position (mm)');
- ylabel('Axial depth (mm)');
- xlim([-30 30]);
- ylim([0 100]);
- hold off;
- subplot(3,5,6);
- axial_profile_ff_peak_mpa = axial_profile_ff_peak / 1e6;
- plot(axial_disp_mm, axial_profile_ff_peak_mpa, 'b-', 'LineWidth', 1.5); hold on;
- halfmax_ff_ax = max(axial_profile_ff_peak_mpa) / 2;
- yline(halfmax_ff_ax, 'k--', 'LineWidth', 1);
- if ~isnan(axL_ff_peak), xline(axL_ff_peak, 'r--', 'LineWidth', 1); end
- if ~isnan(axR_ff_peak), xline(axR_ff_peak, 'r--', 'LineWidth', 1); end
- plot([axL_ff_peak axR_ff_peak], [halfmax_ff_ax halfmax_ff_ax], ...
- 'ro', 'MarkerFaceColor', 'r');
- title(sprintf('Axial FWHM = %.2f mm', axial_fwhm_ff_peak_mm));
- xlabel('Axial depth (mm)');
- ylabel('Pressure (MPa)');
- xlim([0 100]);
- ylim(clim_prof);
- grid on;
- hold off;
- subplot(3,5,11);
- radial_profile_ff_peak_mpa = radial_profile_ff_peak / 1e6;
- plot(radial_disp_mm, radial_profile_ff_peak_mpa, 'b-', 'LineWidth', 1.5); hold on;
- halfmax_ff_rd = max(radial_profile_ff_peak_mpa) / 2;
- yline(halfmax_ff_rd, 'k--', 'LineWidth', 1);
- if ~isnan(rdL_ff_peak), xline(rdL_ff_peak, 'r--', 'LineWidth', 1); end
- if ~isnan(rdR_ff_peak), xline(rdR_ff_peak, 'r--', 'LineWidth', 1); end
- plot([rdL_ff_peak rdR_ff_peak], [halfmax_ff_rd halfmax_ff_rd], ...
- 'ro', 'MarkerFaceColor', 'r');
- title(sprintf('Radial FWHM = %.2f mm', radial_fwhm_ff_peak_mm));
- xlabel('Radial position (mm)');
- ylabel('Pressure (MPa)');
- xlim([-30 30]);
- ylim(clim_prof);
- grid on;
- hold off;
- % =========================================================
- % COLUMNS 2-5: SKULL CURVATURE SWEEP
- % =========================================================
- for k = 1:nCurv
- col_idx = k + 1;
- p_max_sk = p_max_sk_all{k};
- skull_mask = skull_mask_all{k};
- focus_axial_sk_mm = focus_axial_sk_mm_all(k);
- focus_radial_sk_mm = focus_radial_sk_mm_all(k);
- axial_profile_sk_peak = axial_profile_sk_all{k};
- radial_profile_sk_peak = radial_profile_sk_all{k};
- axial_valid_sk_peak = axial_valid_sk_all{k};
- radial_valid_sk_peak = radial_valid_sk_all{k};
- axial_fwhm_sk_peak_mm = axial_fwhm_sk_mm_all(k);
- radial_fwhm_sk_peak_mm = radial_fwhm_sk_mm_all(k);
- axL_sk_peak = axL_sk_all(k);
- axR_sk_peak = axR_sk_all(k);
- rdL_sk_peak = rdL_sk_all(k);
- rdR_sk_peak = rdR_sk_all(k);
- curvature_strength = curvature_list(k);
- % ---------------- Row 1: Acoustic field ----------------
- ax_field(col_idx) = subplot(3,5,col_idx);
- imagesc(radial_disp_mm, axial_disp_mm, p_max_sk);
- axis image;
- set(gca, 'YDir', 'normal');
- colormap(gca, turbo);
- caxis(clim_pmax);
- hold on;
- h1 = imagesc(radial_disp_mm, axial_disp_mm, double(skull_mask));
- set(h1, 'AlphaData', 0.16 * double(skull_mask));
- contour(radial_disp_mm, axial_disp_mm, skull_mask, [1 1], 'w', 'LineWidth', 1.5);
- plot(focus_radial_sk_mm, focus_axial_sk_mm, 'wo', 'MarkerSize', 8, 'LineWidth', 1.8);
- yline(target_focus_depth_mm, 'w--', '72.2 mm target', 'LineWidth', 1.0);
- caxis(clim_pmax);
- title(sprintf('Skull, curv = %.4f', curvature_strength));
- xlabel('Radial position (mm)');
- if col_idx == 2
- ylabel('Axial depth (mm)');
- end
- xlim([-30 30]);
- ylim([0 100]);
- hold off;
- % ---------------- Row 2: Axial FWHM ----------------
- subplot(3,5,5 + col_idx);
- axial_profile_sk_peak_mpa = axial_profile_sk_peak / 1e6;
- axial_profile_sk_plot = axial_profile_sk_peak_mpa;
- axial_profile_sk_plot(~axial_valid_sk_peak) = NaN;
- plot(axial_disp_mm, axial_profile_sk_plot, 'b-', 'LineWidth', 1.5); hold on;
- halfmax_sk_ax = max(axial_profile_sk_plot, [], 'omitnan') / 2;
- yline(halfmax_sk_ax, 'k--', 'LineWidth', 1);
- if ~isnan(axL_sk_peak), xline(axL_sk_peak, 'r--', 'LineWidth', 1); end
- if ~isnan(axR_sk_peak), xline(axR_sk_peak, 'r--', 'LineWidth', 1); end
- plot([axL_sk_peak axR_sk_peak], [halfmax_sk_ax halfmax_sk_ax], ...
- 'ro', 'MarkerFaceColor', 'r');
- title(sprintf('Axial FWHM = %.2f mm', -axial_fwhm_sk_peak_mm));
- xlabel('Axial depth (mm)');
- if col_idx == 2
- ylabel('Pressure (MPa)');
- end
- xlim([0 100]);
- ylim(clim_prof);
- grid on;
- hold off;
- % ---------------- Row 3: Radial FWHM ----------------
- subplot(3,5,10 + col_idx);
- radial_profile_sk_peak_mpa = radial_profile_sk_peak / 1e6;
- radial_profile_sk_plot = radial_profile_sk_peak_mpa;
- radial_profile_sk_plot(~radial_valid_sk_peak) = NaN;
- plot(radial_disp_mm, radial_profile_sk_plot, 'b-', 'LineWidth', 1.5); hold on;
- halfmax_sk_rd = max(radial_profile_sk_plot, [], 'omitnan') / 2;
- yline(halfmax_sk_rd, 'k--', 'LineWidth', 1);
- if ~isnan(rdL_sk_peak), xline(rdL_sk_peak, 'r--', 'LineWidth', 1); end
- if ~isnan(rdR_sk_peak), xline(rdR_sk_peak, 'r--', 'LineWidth', 1); end
- plot([rdL_sk_peak rdR_sk_peak], [halfmax_sk_rd halfmax_sk_rd], ...
- 'ro', 'MarkerFaceColor', 'r');
- title(sprintf('Radial FWHM = %.2f mm', radial_fwhm_sk_peak_mm));
- xlabel('Radial position (mm)');
- if col_idx == 2
- ylabel('Pressure (MPa)');
- end
- xlim([-30 30]);
- ylim(clim_prof);
- grid on;
- hold off;
- end
- % =========================================================
- % SINGLE COLORBAR FOR ACOUSTIC FIELD ROW
- % =========================================================
- cb = colorbar(ax_field(end), 'Position', [0.92 0.71 0.012 0.20]);
- ylabel(cb, 'Peak pressure (Pa)');
- % =========================================================
- % SUMMARY METRICS
- % =========================================================
- output_peak_ff = max(p_max_ff(:));
- fprintf('\n===== CURVATURE SWEEP SUMMARY =====\n');
- fprintf('Axial axis : 0 mm bottom -> 100 mm top\n');
- fprintf('Radial axis : -30 mm -> 30 mm\n');
- fprintf('Source axial position : %.2f mm\n', src_depth_mm_display);
- fprintf('Target focal depth : %.2f mm\n', target_focus_depth_mm);
- fprintf('Focus distance from source : %.2f mm\n', focus_dist_mm);
- fprintf('Skull thickness : %.2f mm\n', skull_thickness_mm);
- fprintf('Free-field peak : %.4g Pa\n', output_peak_ff);
- fprintf('Free-field focus : axial = %.2f mm, radial = %.2f mm\n', ...
- focus_axial_ff_mm, focus_radial_ff_mm);
- fprintf('Free-field axial FWHM : %.2f mm\n', axial_fwhm_ff_peak_mm);
- fprintf('Free-field radial FWHM : %.2f mm\n', radial_fwhm_ff_peak_mm);
- fprintf('\n');
- for k = 1:nCurv
- peak_loss_pct = 100 * (1 - peak_sk_all(k) / output_peak_ff);
- focus_shift_axial_mm = focus_axial_sk_mm_all(k) - focus_axial_ff_mm;
- focus_shift_radial_mm = focus_radial_sk_mm_all(k) - focus_radial_ff_mm;
- fprintf('Curvature = %.4f\n', curvature_list(k));
- fprintf(' Skull peak (post-skull) : %.4g Pa\n', peak_sk_all(k));
- fprintf(' Peak loss : %.2f %%\n', peak_loss_pct);
- fprintf(' Focus : axial = %.2f mm, radial = %.2f mm\n', ...
- focus_axial_sk_mm_all(k), focus_radial_sk_mm_all(k));
- fprintf(' Focus shift : axial = %.2f mm, radial = %.2f mm\n', ...
- focus_shift_axial_mm, focus_shift_radial_mm);
- fprintf(' Axial FWHM : %.2f mm\n', axial_fwhm_sk_mm_all(k));
- fprintf(' Radial FWHM : %.2f mm\n', radial_fwhm_sk_mm_all(k));
- fprintf('\n');
- end
- fprintf('===================================\n\n');
- % =========================================================
- % LOCAL FUNCTIONS
- % =========================================================
- function [fwhm, x_left, x_right] = local_fwhm(coord, profile)
- profile = double(profile(:));
- coord = double(coord(:));
- x_left = NaN;
- x_right = NaN;
- fwhm = NaN;
- if all(profile == 0) || max(profile) <= 0
- return;
- end
- [~, imax] = max(profile);
- halfmax = max(profile) / 2;
- above = profile >= halfmax;
- left_idx = find(above(1:imax), 1, 'first');
- right_idx = imax - 1 + find(above(imax:end), 1, 'last');
- if isempty(left_idx) || isempty(right_idx)
- return;
- end
- if left_idx == 1
- x_left = coord(left_idx);
- else
- x1 = coord(left_idx - 1);
- x2 = coord(left_idx);
- y1 = profile(left_idx - 1);
- y2 = profile(left_idx);
- x_left = x1 + (halfmax - y1) * (x2 - x1) / (y2 - y1);
- end
- if right_idx == numel(profile)
- x_right = coord(right_idx);
- else
- x1 = coord(right_idx);
- x2 = coord(right_idx + 1);
- y1 = profile(right_idx);
- y2 = profile(right_idx + 1);
- x_right = x1 + (halfmax - y1) * (x2 - x1) / (y2 - y1);
- end
- fwhm = x_right - x_left;
- end
- function [fwhm, x_left, x_right] = local_fwhm_masked(coord, profile, valid_mask)
- profile = double(profile(:));
- coord = double(coord(:));
- valid_mask = logical(valid_mask(:));
- x_left = NaN;
- x_right = NaN;
- fwhm = NaN;
- if numel(coord) ~= numel(profile) || numel(profile) ~= numel(valid_mask)
- error('coord, profile, and valid_mask must have the same length.');
- end
- profile(~valid_mask) = NaN;
- if all(isnan(profile))
- return;
- end
- peak_val = max(profile, [], 'omitnan');
- if isempty(peak_val) || isnan(peak_val) || peak_val <= 0
- return;
- end
- halfmax = peak_val / 2;
- tmp = profile;
- tmp(isnan(tmp)) = -Inf;
- [~, imax] = max(tmp);
- if ~isfinite(tmp(imax))
- return;
- end
- above = (profile >= halfmax);
- if ~above(imax)
- return;
- end
- left_idx = imax;
- while left_idx > 1 && above(left_idx - 1)
- left_idx = left_idx - 1;
- end
- right_idx = imax;
- while right_idx < numel(profile) && above(right_idx + 1)
- right_idx = right_idx + 1;
- end
- if left_idx == 1 || isnan(profile(left_idx - 1))
- x_left = coord(left_idx);
- else
- x1 = coord(left_idx - 1);
- x2 = coord(left_idx);
- y1 = profile(left_idx - 1);
- y2 = profile(left_idx);
- x_left = x1 + (halfmax - y1) * (x2 - x1) / (y2 - y1);
- end
- if right_idx == numel(profile) || isnan(profile(right_idx + 1))
- x_right = coord(right_idx);
- else
- x1 = coord(right_idx);
- x2 = coord(right_idx + 1);
- y1 = profile(right_idx);
- y2 = profile(right_idx + 1);
- x_right = x1 + (halfmax - y1) * (x2 - x1) / (y2 - y1);
- end
- fwhm = x_right - x_left;
- end
BeamProfileSkull.m at commit baa5d8b, no license · at the source
Overview
- Department of Biomedical Engineering, Cockrell School of Engineering, The University of Texas at Austin, Austin, TX USA
- Department of Psychology, The University of Texas at Austin, Austin, TX USA
- Fralin Biomedical Research Institute, Virginia Polytechnic Institute, Blacksburg, VA USA
- Department of Psychiatry and Behavioral Sciences, The University of Texas Health Science at San Antonio, San Antonio, TX USA
- Department of Psychiatry and Behavioral Sciences, Dell Medical School, The University of Texas at Austin, Austin, TX USA
Abstract
The abstract is not reproduced here: the paper's license (CC BY-NC-ND) does not allow it. Read it in the paper, at the publisher or on Europe PMC.
Repositories
Its files are read in the Code ↔ Paper reader above, with 16 matches between paragraphs and lines of code.
kevintang725/DARPA-NEUSLEEP
baa5d8bbfba157ea4996a239b4ee2b66294bfc0e, 2 April 2026Availability: 1 check, the latest on 27 September 2026: the link answers
- 27 September 2026: the link answers
308 files
- MRI-Study/
HaririTask/ , Python, 578 linesHaririTask_Ver1_lastrun. py - MRI-Study/
HaririTask/ , Python, 578 linesHaririTask_Ver2_lastrun. py - MRI-Study/
scripts/ , Shell, not shown here._ALFF.sh - MRI-Study/
scripts/ , Shell, not shown here._Atlas2ROI.sh - MRI-Study/
scripts/ , Shell, not shown here._Compute_maskBeta.sh - MRI-Study/
scripts/ , Shell, not shown here._Compute_maskfisherZ.sh - MRI-Study/
scripts/ , Shell, not shown here._Compute_maskvalues.sh - MRI-Study/
scripts/ , Shell, not shown here._ExtractBehavData_Harir i_Ver1.sh - MRI-Study/
scripts/ , Shell, not shown here._ExtractBehavData_Harir i_Ver2.sh - MRI-Study/
scripts/ , Shell, not shown here._ExtractGroupLevelStati stics.sh - MRI-Study/
scripts/ , Shell, not shown here._ExtractMVMStatistics.s h - MRI-Study/
scripts/ , Shell, not shown here._ExtractTScores.sh - MRI-Study/
scripts/ , Shell, not shown here._ExtractpTFCEScores.sh - MRI-Study/
scripts/ , Shell, not shown here._FunctionalParcellation Analysis.sh - MRI-Study/
scripts/ , Shell, not shown here._GLT_extract_images.sh - MRI-Study/
scripts/ , Shell, not shown here._HaririMVM.sh - MRI-Study/
scripts/ , Shell, not shown here._HaririResponseTime.sh - MRI-Study/
scripts/ , Shell, not shown here._LinearMixedEffectModel .sh - MRI-Study/
scripts/ , Shell, not shown here._MakeFUS-BOLDAFNIProcRu nScript.sh - MRI-Study/
scripts/ , Shell, not shown here._MakeFUS-BOLDAFNIProcRu nScript_StimBlocks.sh - MRI-Study/
scripts/ , Shell, not shown here._MakeHaririAFNIProcRunS cript.sh - MRI-Study/
scripts/ , Shell, not shown here._MakeHaririTaskAFNIProc RunScript.sh - MRI-Study/
scripts/ , Shell, not shown here._MakeHaririTaskAFNIProc RunScript_StimBlocks.sh - MRI-Study/
scripts/ , Shell, not shown here._MakeRestingRun1AFNIPro cRunScript_Censor0.4.sh - MRI-Study/
scripts/ , Shell, not shown here._MakeRestingRun2AFNIPro cRunScript_Censor0.4.sh - MRI-Study/
scripts/ , Shell, not shown here._MultivariateModel.sh - MRI-Study/
scripts/ , Shell, not shown here._NSRunResting1stLevel.s h - MRI-Study/
scripts/ , Shell, not shown here._NSSSAnalysisPipeline_C ensor0.4_Hariri.sh - MRI-Study/
scripts/ , Shell, not shown here._NSSSAnalysisPipeline_C ensor0.4_HaririTask.sh - MRI-Study/
scripts/ , Shell, not shown here._NSSSAnalysisPipeline_C ensor0.4_PrePost.sh - MRI-Study/
scripts/ , Shell, not shown here._NSSSAnalysisPipeline_C ensor0.4_SinglePad.sh - MRI-Study/
scripts/ , Shell, not shown here._ProbePE.sh - MRI-Study/
scripts/ , Shell, not shown here._Run_NSRunResting1stLev el.sh - MRI-Study/
scripts/ , Shell, not shown here._Run_normandsmoothfunc_ thread1.sh - MRI-Study/
scripts/ , Shell, not shown here._Run_normandsmoothfunc_ thread2.sh - MRI-Study/
scripts/ , Shell, not shown here._RunptfceR.sh - MRI-Study/
scripts/ , Shell, not shown here._RunptfceR_LME.sh - MRI-Study/
scripts/ , Shell, not shown here._SSRunMC.sh - MRI-Study/
scripts/ , Shell, not shown here._SSRun_runtopup.sh - MRI-Study/
scripts/ , Shell, not shown here._Segment_Masks.sh - MRI-Study/
scripts/ , Shell, not shown here._Test.sh - MRI-Study/
scripts/ , Shell, not shown here._WholeBrainExploratoryA nalysis.sh - MRI-Study/
scripts/ , Shell, not shown here._batch_3dLME_hariri.sh - MRI-Study/
scripts/ , Shell, not shown here._batch_3dLME_resting.sh - MRI-Study/
scripts/ , Shell, not shown here._batch_3dLME_resting_St udyA.sh - MRI-Study/
scripts/ , Shell, not shown here._batch_Compute_maskBeta .sh - MRI-Study/
scripts/ , Shell, not shown here._batch_Compute_maskfish erZ.sh - MRI-Study/
scripts/ , Shell, not shown here._batch_Compute_maskpTFC E.sh - MRI-Study/
scripts/ , Shell, not shown here._batch_Compute_maskpTFC E_SD.sh - MRI-Study/
scripts/ , Shell, not shown here._batch_PostAdHoc.sh - MRI-Study/
scripts/ , Shell, not shown here._batch_extract_images_h ariri.sh - MRI-Study/
scripts/ , Shell, not shown here._batch_group_average_im ages_hariri.sh - MRI-Study/
scripts/ , Shell, not shown here._batch_summary.sh - MRI-Study/
scripts/ , Shell, not shown here._dcm2niix.sh - MRI-Study/
scripts/ , MATLAB, not shown here._dmn_statistical_analys is.m - MRI-Study/
scripts/ , Shell, not shown here._extract_image.sh - MRI-Study/
scripts/ , MATLAB, not shown here._fMRI_Analyzer.m - MRI-Study/
scripts/ , Shell, not shown here._maskfunc.sh - MRI-Study/
scripts/ , Shell, not shown here._mcfunc.sh - MRI-Study/
scripts/ , Shell, not shown here._mergeMasks.sh - MRI-Study/
scripts/ , Shell, not shown here._normanat.sh - MRI-Study/
scripts/ , Shell, not shown here._normandsmoothfunc.sh - MRI-Study/
scripts/ , Shell, not shown here._ptfceR.sh - MRI-Study/
scripts/ , MATLAB, not shown here._run_3wayAnova.m - MRI-Study/
scripts/ , Shell, not shown here._run_DMN_HO.sh - MRI-Study/
scripts/ , Shell, not shown here._run_DMN_HO_StudyA.sh - MRI-Study/
scripts/ , Shell, not shown here._runfunc2anat.sh - MRI-Study/
scripts/ , Shell, not shown here._runstruct.sh - MRI-Study/
scripts/ , Shell, not shown here._runtopup.sh - MRI-Study/
scripts/ , Shell, 17 linesALFF.sh - MRI-Study/
scripts/ , Shell, 24 linesAtlas2ROI.sh - MRI-Study/
scripts/ , Shell, 52 linesCompute_maskBeta.sh - MRI-Study/
scripts/ , Shell, 29 linesCompute_maskfisherZ.sh - MRI-Study/
scripts/ , Shell, 23 linesCompute_maskvalues.sh - MRI-Study/
scripts/ , Shell, 52 linesExtractBehavData_Hariri_ Ver1.sh - MRI-Study/
scripts/ , Shell, 52 linesExtractBehavData_Hariri_ Ver2.sh - MRI-Study/
scripts/ , Shell, 32 linesExtractGroupLevelStatist ics.sh - MRI-Study/
scripts/ , Shell, 26 linesExtractMVMStatistics.sh - MRI-Study/
scripts/ , Shell, 32 linesExtractTScores.sh - MRI-Study/
scripts/ , Shell, 32 linesExtractpTFCEScores.sh - MRI-Study/
scripts/ , Shell, 135 linesFunctionalParcellationAn alysis.sh - MRI-Study/
scripts/ , Shell, 106 linesGLT_extract_images.sh - MRI-Study/
scripts/ , Shell, 64 linesHaririMVM.sh - MRI-Study/
scripts/ , Shell, 36 linesHaririResponseTime.sh - MRI-Study/
scripts/ , Shell, 47 linesLinearMixedEffectModel.s h - MRI-Study/
scripts/ , Shell, 51 linesMakeFUS-BOLDAFNIProcRunS cript.sh - MRI-Study/
scripts/ , Shell, 59 linesMakeFUS-BOLDAFNIProcRunS cript_StimBlocks.sh - MRI-Study/
scripts/ , Shell, 59 linesMakeHaririAFNIProcRunScr ipt.sh - MRI-Study/
scripts/ , Shell, 98 linesMakeHaririTaskAFNIProcRu nScript.sh - MRI-Study/
scripts/ , Shell, 94 linesMakeHaririTaskAFNIProcRu nScript_StimBlocks.sh - MRI-Study/
scripts/ , Shell, 53 lines, 1 matchMakeRestingRun1AFNIProcR unScript_Censor0.4.sh - MRI-Study/
scripts/ , Shell, 55 linesMakeRestingRun2AFNIProcR unScript_Censor0.4.sh - MRI-Study/
scripts/ , Shell, 16 linesMultivariateModel.sh - MRI-Study/
scripts/ , Shell, 122 linesNSRunResting1stLevel.sh - MRI-Study/
scripts/ , Shell, 141 linesNSSSAnalysisPipeline_Cen sor0.4_Hariri.sh - MRI-Study/
scripts/ , Shell, 156 linesNSSSAnalysisPipeline_Cen sor0.4_HaririTask.sh - MRI-Study/
scripts/ , Shell, 157 linesNSSSAnalysisPipeline_Cen sor0.4_PrePost.sh - MRI-Study/
scripts/ , Shell, 93 linesNSSSAnalysisPipeline_Cen sor0.4_SinglePad.sh - MRI-Study/
scripts/ , Shell, 50 linesProbePE.sh - MRI-Study/
scripts/ , Shell, 17 linesRun_NSRunResting1stLevel .sh - MRI-Study/
scripts/ , Shell, 15 linesRun_normandsmoothfunc_th read1.sh - MRI-Study/
scripts/ , Shell, 15 linesRun_normandsmoothfunc_th read2.sh - MRI-Study/
scripts/ , Shell, 117 linesRunptfceR.sh - MRI-Study/
scripts/ , Shell, 123 linesRunptfceR_LME.sh - MRI-Study/
scripts/ , Shell, 26 linesSSRunMC.sh - MRI-Study/
scripts/ , Shell, 30 linesSSRun_runtopup.sh - MRI-Study/
scripts/ , Shell, 24 linesSegment_Masks.sh - MRI-Study/
scripts/ , Shell, 194 linesTest.sh - MRI-Study/
scripts/ , Shell, 111 linesWholeBrainExploratoryAna lysis.sh - MRI-Study/
scripts/ , Shell, 144 linesbatch_3dLME_hariri.sh - MRI-Study/
scripts/ , Shell, 139 linesbatch_3dLME_resting.sh - MRI-Study/
scripts/ , Shell, 144 linesbatch_3dLME_resting_Stud yA.sh - MRI-Study/
scripts/ , Shell, 165 linesbatch_Compute_maskBeta.s h - MRI-Study/
scripts/ , Shell, 30 linesbatch_Compute_maskfisher Z.sh - MRI-Study/
scripts/ , Shell, 143 linesbatch_Compute_maskpTFCE. sh - MRI-Study/
scripts/ , Shell, 145 linesbatch_Compute_maskpTFCE_ SD.sh - MRI-Study/
scripts/ , Shell, 27 linesbatch_PostAdHoc.sh - MRI-Study/
scripts/ , Shell, 140 lines, 1 matchbatch_extract_images_har iri.sh - MRI-Study/
scripts/ , Shell, 189 linesbatch_group_average_imag es_hariri.sh - MRI-Study/
scripts/ , Shell, 60 linesbatch_summary.sh - MRI-Study/
scripts/ , Shell, 50 linesdcm2niix.sh - MRI-Study/
scripts/ , MATLAB, 292 linesdmn_statistical_analysis .m - MRI-Study/
scripts/ , Shell, 142 lines, 1 matchextract_image.sh - MRI-Study/
scripts/ , MATLAB, 238 linesfMRI_Analyzer.m - MRI-Study/
scripts/ , Shell, 56 linesmaskfunc.sh - MRI-Study/
scripts/ , Shell, 26 linesmcfunc.sh - MRI-Study/
scripts/ , Shell, 52 linesmergeMasks.sh - MRI-Study/
scripts/ , Shell, 18 linesnormanat.sh - MRI-Study/
scripts/ , Shell, 32 linesnormandsmoothfunc.sh - MRI-Study/
scripts/ , Shell, 101 linesptfceR.sh - MRI-Study/
scripts/ , MATLAB, 283 linesrun_3wayAnova.m - MRI-Study/
scripts/ , Shell, 189 linesrun_DMN_HO.sh - MRI-Study/
scripts/ , Shell, 194 linesrun_DMN_HO_StudyA.sh - MRI-Study/
scripts/ , Shell, 59 linesrunfunc2anat.sh - MRI-Study/
scripts/ , Shell, 140 linesrunstruct.sh - MRI-Study/
scripts/ , Shell, 76 linesruntopup.sh - NEUSLeeP/
EEG / , MATLAB, not shown here._SleepAnalysis2.m - NEUSLeeP/
EEG / , MATLAB, not shown here._preproc_NEUSLEEP_05132 5.m - NEUSLeeP/
EEG / , MATLAB, not shown here._process_HRV.m - NEUSLeeP/
EEG / , MATLAB, 372 lines, 2 matchesSleepAnalysis2.m - NEUSLeeP/
EEG / , MATLAB, 128 linesalpha_band_analysis.m - NEUSLeeP/
EEG / , MATLAB, 248 lines, 1 matchalpha_band_channels.m - NEUSLeeP/
EEG / , MATLAB, 87 linespreproc_NEUSLEEP_051325. m - NEUSLeeP/
EEG / , MATLAB, 185 lines, 1 matchprocess_HRV.m - NEUSLeeP/
Eryhtema_Q_Score_Analysi , MATLAB, 180 liness.m - NEUSLeeP/
Eryhtema_Q_Score_Analysi , MATLAB, 216 liness_v2.m - NEUSLeeP/
Mechanical Tests/ , MATLAB, not shown here._Stress_strainTest_step 1.m - NEUSLeeP/
Mechanical Tests/ , MATLAB, not shown here._Stress_strainTest_step 2.m - NEUSLeeP/
Mechanical Tests/ , MATLAB, not shown here._adhesion.m - NEUSLeeP/
Mechanical Tests/ , MATLAB, not shown here._stress_strain.m - NEUSLeeP/
Mechanical Tests/ , MATLAB, 163 lines, 1 matchStress_strainTest_step1. m - NEUSLeeP/
Mechanical Tests/ , MATLAB, 20 linesStress_strainTest_step2. m - NEUSLeeP/
Mechanical Tests/ , MATLAB, 107 linesadhesion.m - NEUSLeeP/
Mechanical Tests/ , MATLAB, 126 linesstress_strain.m - NEUSLeeP/
Simulations/ , MATLAB, not shown here._EnergyReleaseRate.m - NEUSLeeP/
Simulations/ , MATLAB, not shown here._ThermalDiffusion.m - NEUSLeeP/
Simulations/ , MATLAB, 653 lines, 3 matchesBeamProfileSkull.m - NEUSLeeP/
Simulations/ , MATLAB, 877 lines, 2 matchesBeamProfileSkullParamete rs.m - NEUSLeeP/
Simulations/ , MATLAB, 42 lines, 1 matchEnergyReleaseRate.m - NEUSLeeP/
Simulations/ , MATLAB, 244 linesThermalDiffusion.m - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, 9 linesConnectOscilloscope.m - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, not shown hereOscilloscope/ ._Scan_Acoustic_Field_2D _Longitudinal_Axial.m - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, 302 linesOscilloscope/ Analysis_Acoustic_Field_ XY.m - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, 78 linesOscilloscope/ AnalyzeWaveform.m - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, 13 linesOscilloscope/ ConnectOscilloscope.m - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, 69 linesOscilloscope/ MeasureWaveform.m - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, 197 linesOscilloscope/ Scan_Acoustic_Field_2D_L ongitudinalXY.m - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, 186 linesOscilloscope/ Scan_Acoustic_Field_2D_L ongitudinal_Axial.m - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, 178 linesOscilloscope/ Scan_Acoustic_Field_2D_L ongitudinal_Radial.m - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, 42 linesOscilloscope/ WaveformAnalyzer.m - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, 77 linesOscilloscope/ acquireAndDisplay.m - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, 99 linesOscilloscope/ acquireOscilloscopeData. m - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, 78 linesOscilloscope/ determineAcquisitionSett ings.m - NEUSLeeP/
Ultrasound Measurement System/ , Python, 52 linesOscilloscope/ oscilloscope.py - NEUSLeeP/
Ultrasound Measurement System/ , MATLAB, 577 linesOscilloscope/ vis3d.m - NEUSLeeP/
Ultrasound Measurement System/ , Python, 76 linesSerialArduino.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 7 linespicoscope.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 30 linespicosdk-python-wrappers- master/ anyScopeExamples/ block.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 320 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ PicoDeviceEnums.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 144 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ PicoDeviceStructs.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 3 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ __init__.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 330 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ constants.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 11 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ ctypes_wrapper.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 254 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ device.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 52 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ discover.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 73 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ errors.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 174 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ functions.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 575 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ library.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 189 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ picohrdl.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 171 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ picosynth.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 190 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ pl1000.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 394 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ ps2000.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 864 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ ps2000a.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 381 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ ps3000.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 890 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ ps3000a.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 799 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ ps4000.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 1,060 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ ps4000a.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 552 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ ps5000.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 1,003 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ ps5000a.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 857 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ ps6000.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 817 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ ps6000a.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 326 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ usbDrDaq.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 133 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ usbPT104.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 160 linespicosdk-python-wrappers- master/ build/ lib/ picosdk/ usbtc08.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 44 linespicosdk-python-wrappers- master/ picohrdlExamples/ picohrdlSingleModeExampl e.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 320 linespicosdk-python-wrappers- master/ picosdk/ PicoDeviceEnums.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 144 linespicosdk-python-wrappers- master/ picosdk/ PicoDeviceStructs.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 3 linespicosdk-python-wrappers- master/ picosdk/ __init__.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 330 linespicosdk-python-wrappers- master/ picosdk/ constants.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 11 linespicosdk-python-wrappers- master/ picosdk/ ctypes_wrapper.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 254 linespicosdk-python-wrappers- master/ picosdk/ device.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 52 linespicosdk-python-wrappers- master/ picosdk/ discover.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 73 linespicosdk-python-wrappers- master/ picosdk/ errors.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 174 linespicosdk-python-wrappers- master/ picosdk/ functions.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 575 linespicosdk-python-wrappers- master/ picosdk/ library.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 189 linespicosdk-python-wrappers- master/ picosdk/ picohrdl.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 171 linespicosdk-python-wrappers- master/ picosdk/ picosynth.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 190 linespicosdk-python-wrappers- master/ picosdk/ pl1000.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 394 linespicosdk-python-wrappers- master/ picosdk/ ps2000.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 864 linespicosdk-python-wrappers- master/ picosdk/ ps2000a.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 381 linespicosdk-python-wrappers- master/ picosdk/ ps3000.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 890 linespicosdk-python-wrappers- master/ picosdk/ ps3000a.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 799 linespicosdk-python-wrappers- master/ picosdk/ ps4000.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 1,060 linespicosdk-python-wrappers- master/ picosdk/ ps4000a.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 552 linespicosdk-python-wrappers- master/ picosdk/ ps5000.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 1,003 linespicosdk-python-wrappers- master/ picosdk/ ps5000a.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 857 linespicosdk-python-wrappers- master/ picosdk/ ps6000.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 817 linespicosdk-python-wrappers- master/ picosdk/ ps6000a.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 326 linespicosdk-python-wrappers- master/ picosdk/ usbDrDaq.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 133 linespicosdk-python-wrappers- master/ picosdk/ usbPT104.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 160 linespicosdk-python-wrappers- master/ picosdk/ usbtc08.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 56 linespicosdk-python-wrappers- master/ picosynthExamples/ picosynthFrequencySweepE xample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 33 linespicosdk-python-wrappers- master/ pl1000Examples/ pl1000SingleModeExample. py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 68 linespicosdk-python-wrappers- master/ pl1000Examples/ pl1000StreamingModeExamp le.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 193 linespicosdk-python-wrappers- master/ ps2000Examples/ advanced triggers/ trigger_read_dropout.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 186 linespicosdk-python-wrappers- master/ ps2000Examples/ advanced triggers/ trigger_read_interval.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 188 linespicosdk-python-wrappers- master/ ps2000Examples/ advanced triggers/ trigger_read_pwq.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 190 linespicosdk-python-wrappers- master/ ps2000Examples/ advanced triggers/ trigger_read_runt.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 176 linespicosdk-python-wrappers- master/ ps2000Examples/ advanced triggers/ trigger_read_window.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 190 linespicosdk-python-wrappers- master/ ps2000Examples/ advanced triggers/ trigger_read_wpwq.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 115 linespicosdk-python-wrappers- master/ ps2000Examples/ block_read.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 4 linespicosdk-python-wrappers- master/ ps2000Examples/ device_info.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 139 linespicosdk-python-wrappers- master/ ps2000Examples/ ps2000BlockExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 154 linespicosdk-python-wrappers- master/ ps2000Examples/ ps2000ETSBlockExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 82 linespicosdk-python-wrappers- master/ ps2000Examples/ streaming_mode/ streaming_mode.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 124 linespicosdk-python-wrappers- master/ ps2000Examples/ streaming_mode/ streaming_mode_gathering .py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 118 linespicosdk-python-wrappers- master/ ps2000Examples/ streaming_mode/ streaming_mode_polling.p y - NEUSLeeP/
Ultrasound Measurement System/ , Python, 89 linespicosdk-python-wrappers- master/ ps2000Examples/ streaming_mode/ streaming_mode_threaded. py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 198 linespicosdk-python-wrappers- master/ ps2000aExamples/ ps2000aBlockExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 205 linespicosdk-python-wrappers- master/ ps2000aExamples/ ps2000aBlockExampleCallb ackMethod.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 333 linespicosdk-python-wrappers- master/ ps2000aExamples/ ps2000aMSOBlockExample.p y - NEUSLeeP/
Ultrasound Measurement System/ , Python, 323 linespicosdk-python-wrappers- master/ ps2000aExamples/ ps2000aRapidBlockExample .py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 130 linespicosdk-python-wrappers- master/ ps2000aExamples/ ps2000aSigGen.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 196 linespicosdk-python-wrappers- master/ ps2000aExamples/ ps2000aStreamingExample. py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 199 linespicosdk-python-wrappers- master/ ps3000aExamples/ ps3000aBlockAdvancedTrig gerExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 168 linespicosdk-python-wrappers- master/ ps3000aExamples/ ps3000aBlockExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 187 linespicosdk-python-wrappers- master/ ps3000aExamples/ ps3000aBlockMSOExample.p y - NEUSLeeP/
Ultrasound Measurement System/ , Python, 353 linespicosdk-python-wrappers- master/ ps3000aExamples/ ps3000aRapidBlockExample .py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 131 linespicosdk-python-wrappers- master/ ps3000aExamples/ ps3000aSigGen.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 209 linespicosdk-python-wrappers- master/ ps3000aExamples/ ps3000aStreamingExample. py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 163 linespicosdk-python-wrappers- master/ ps4000Examples/ ps4000BlockExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 185 linespicosdk-python-wrappers- master/ ps4000Examples/ ps4000StreamingExample.p y - NEUSLeeP/
Ultrasound Measurement System/ , Python, 218 linespicosdk-python-wrappers- master/ ps4000aExamples/ ps4000aBlockDropoutTrigg erExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 247 linespicosdk-python-wrappers- master/ ps4000aExamples/ ps4000aRapidBlockExample .py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 133 linespicosdk-python-wrappers- master/ ps4000aExamples/ ps4000aSigGen.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 208 linespicosdk-python-wrappers- master/ ps4000aExamples/ ps4000aStreamingExample. py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 206 linespicosdk-python-wrappers- master/ ps4000aExamples/ ps4444BlockExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 247 linespicosdk-python-wrappers- master/ ps4000aExamples/ ps4824BlockExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 167 linespicosdk-python-wrappers- master/ ps5000Examples/ ps5000BlockExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 295 linespicosdk-python-wrappers- master/ ps5000Examples/ ps5000RapidBlockExample. py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 199 linespicosdk-python-wrappers- master/ ps5000aExamples/ ps5000aBlockAdvancedTrig gerExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 199 linespicosdk-python-wrappers- master/ ps5000aExamples/ ps5000aBlockCallbackExam ple.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 184 linespicosdk-python-wrappers- master/ ps5000aExamples/ ps5000aBlockExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 187 linespicosdk-python-wrappers- master/ ps5000aExamples/ ps5000aBlockMSOExample.p y - NEUSLeeP/
Ultrasound Measurement System/ , Python, 213 linespicosdk-python-wrappers- master/ ps5000aExamples/ ps5000aBlockMSOTriggerEx ample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 354 linespicosdk-python-wrappers- master/ ps5000aExamples/ ps5000aRapidBlockExample .py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 157 linespicosdk-python-wrappers- master/ ps5000aExamples/ ps5000aSigGen.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 212 linespicosdk-python-wrappers- master/ ps5000aExamples/ ps5000aStreamingExample. py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 180 linespicosdk-python-wrappers- master/ ps6000Examples/ ps6000BlockAdvancedTrigg erExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 164 linespicosdk-python-wrappers- master/ ps6000Examples/ ps6000BlockExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 37 linespicosdk-python-wrappers- master/ ps6000Examples/ ps6000GetInfoExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 323 linespicosdk-python-wrappers- master/ ps6000Examples/ ps6000RapidBlockExample. py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 345 linespicosdk-python-wrappers- master/ ps6000Examples/ ps6000RapidBlockTriggerT imestampExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 112 linespicosdk-python-wrappers- master/ ps6000Examples/ ps6000SigGen.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 193 linespicosdk-python-wrappers- master/ ps6000Examples/ ps6000StreamingExample.p y - NEUSLeeP/
Ultrasound Measurement System/ , Python, 161 linespicosdk-python-wrappers- master/ ps6000aExamples/ ps6000aBlockAdvancedTrig gerExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 135 linespicosdk-python-wrappers- master/ ps6000aExamples/ ps6000aBlockExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 181 linespicosdk-python-wrappers- master/ ps6000aExamples/ ps6000aBlockMSOExample.p y - NEUSLeeP/
Ultrasound Measurement System/ , Python, 210 linespicosdk-python-wrappers- master/ ps6000aExamples/ ps6000aRapidBlockExample .py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 104 linespicosdk-python-wrappers- master/ ps6000aExamples/ ps6000aSigGenExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 164 linespicosdk-python-wrappers- master/ ps6000aExamples/ ps6000aStreamingModeExam ple.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 66 linespicosdk-python-wrappers- master/ pt104Examples/ pt104Example.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 36 linespicosdk-python-wrappers- master/ setup.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 36 linespicosdk-python-wrappers- master/ setupPicosynth.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 3 linespicosdk-python-wrappers- master/ test/ __init__.py - NEUSLeeP/
Ultrasound Measurement System/ , Shell, 24 linespicosdk-python-wrappers- master/ test/ run_examples.sh - NEUSLeeP/
Ultrasound Measurement System/ , Python, 72 linespicosdk-python-wrappers- master/ test/ test_discover.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 103 linespicosdk-python-wrappers- master/ test/ test_get_unit_info.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 75 linespicosdk-python-wrappers- master/ test/ test_helpers.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 114 linespicosdk-python-wrappers- master/ test/ test_open_close_unit.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 80 linespicosdk-python-wrappers- master/ test/ test_set_channel.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 159 linespicosdk-python-wrappers- master/ test/ test_timebase.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 90 linespicosdk-python-wrappers- master/ usbdrdaqExamples/ usbdrdaqPhBlockExample.p y - NEUSLeeP/
Ultrasound Measurement System/ , Python, 96 linespicosdk-python-wrappers- master/ usbdrdaqExamples/ usbdrdaqScopeBlockExampl e.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 52 linespicosdk-python-wrappers- master/ usbtc08Examples/ tc08SingleModeExample.py - NEUSLeeP/
Ultrasound Measurement System/ , Python, 59 linespicosdk-python-wrappers- master/ usbtc08Examples/ tc08StreamingModeExample .py - NEUSLeeP/
Verasonics Vantage Script/ , MATLAB, 396 lines, 2 matchesDARPA_NEUSLEEP_Study.m - README.md, Text, 143 lines
Zenodo 19391527
Availability: 1 check, the latest on 27 September 2026: the link answers (HTTP 200)
- 27 September 2026: the link answers (HTTP 200)
Code availability statement
The paper has a code availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:
- it points to the authors' code: kevintang725/
DARPA-NEUSLEEP , Zenodo 19391527
Read it in the paper: doi.org/10.1038/s41467-026-73787-6.
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;
- 307 scripts, each with its path and the digest of its content;
- 16 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 paper has a data availability statement. Its license (CC BY-NC-ND) does not allow reproducing it here; in short, from what the harvester recognized in it:
- no repository, dataset or request procedure was recognized in it
Read it in the paper: doi.org/10.1038/s41467-026-73787-6.
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 1, 27 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 19 authors, 3 keywords, 6 MeSH terms, 1 funder, 125 references.
Cite
This paper
Tang, K. W. K., Baird, B., Moscoso-Barrera, W. D., Yu, M., Yao, M., Jeong, J., Pyatnitskiy, I., Romero Lozano, A., Wang, J., Hsieh, J.-C., Chae, T. S., Song, D., Garcia, J., Mittapalli, R., Bush, A., Legon, W., Mysliwiec, V., Fonzo, G. A., & Wang, H. (2026). Skin-attached bioadhesive patch enabling ultrasound deep brain stimulation and real-time electrophysiological monitoring for REM sleep enhancement. Nature communications, 17(1), 5570. https://
BibTeX
@article{tang2026skin,
author = {Tang, Kai Wing Kevin and Baird, Benjamin and Moscoso-Barrera, William D and Yu, Mengxia and Yao, Mengmeng and Jeong, Jinmo and Pyatnitskiy, Ilya and Romero Lozano, Anakaren and Wang, Jiachen and Hsieh, Ju-Chun and Chae, Tony Sungjin and Song, Daniel and Garcia, Julieta and Mittapalli, Rithvik and Bush, Adam and Legon, Wynn and Mysliwiec, Vincent and Fonzo, Gregory A and Wang, Huiliang},
title = {{Skin-attached bioadhesive patch enabling ultrasound deep brain stimulation and real-time electrophysiological monitoring for REM sleep enhancement}},
journal = {Nature communications},
year = {2026},
month = jun,
volume = {17},
number = {1},
pages = {5570},
publisher = {Nature Publishing Group},
issn = {2041-1723},
doi = {10.1038/
url = {https://
pmid = {42243115},
pmcid = {PMC13294382}
}
RIS
TY - JOUR
AU - Tang, Kai Wing Kevin
AU - Baird, Benjamin
AU - Moscoso-Barrera, William D
AU - Yu, Mengxia
AU - Yao, Mengmeng
AU - Jeong, Jinmo
AU - Pyatnitskiy, Ilya
AU - Romero Lozano, Anakaren
AU - Wang, Jiachen
AU - Hsieh, Ju-Chun
AU - Chae, Tony Sungjin
AU - Song, Daniel
AU - Garcia, Julieta
AU - Mittapalli, Rithvik
AU - Bush, Adam
AU - Legon, Wynn
AU - Mysliwiec, Vincent
AU - Fonzo, Gregory A
AU - Wang, Huiliang
TI - Skin-attached bioadhesive patch enabling ultrasound deep brain stimulation and real-time electrophysiological monitoring for REM sleep enhancement
T2 - Nature communications
J2 - Nat Commun
PY - 2026
DA - 2026/
VL - 17
IS - 1
SP - 5570
SN - 2041-1723
PB - Nature Publishing Group
DO - 10.1038/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1038/
"type": "article-journal",
"title": "Skin-attached bioadhesive patch enabling ultrasound deep brain stimulation and real-time electrophysiological monitoring for REM sleep enhancement",
"container-title": "Nature communications",
"author": [
{
"family": "Tang",
"given": "Kai Wing Kevin"
},
{
"family": "Baird",
"given": "Benjamin"
},
{
"family": "Moscoso-Barrera",
"given": "William D"
},
{
"family": "Yu",
"given": "Mengxia"
},
{
"family": "Yao",
"given": "Mengmeng"
},
{
"family": "Jeong",
"given": "Jinmo"
},
{
"family": "Pyatnitskiy",
"given": "Ilya"
},
{
"family": "Romero Lozano",
"given": "Anakaren"
},
{
"family": "Wang",
"given": "Jiachen"
},
{
"family": "Hsieh",
"given": "Ju-Chun"
},
{
"family": "Chae",
"given": "Tony Sungjin"
},
{
"family": "Song",
"given": "Daniel"
},
{
"family": "Garcia",
"given": "Julieta"
},
{
"family": "Mittapalli",
"given": "Rithvik"
},
{
"family": "Bush",
"given": "Adam"
},
{
"family": "Legon",
"given": "Wynn"
},
{
"family": "Mysliwiec",
"given": "Vincent"
},
{
"family": "Fonzo",
"given": "Gregory A"
},
{
"family": "Wang",
"given": "Huiliang"
}
],
"container-title-short":
"volume": "17",
"issue": "1",
"page": "5570",
"DOI": "10.1038/
"PMID": "42243115",
"PMCID": "PMC13294382",
"ISSN": "2041-1723",
"publisher": "Nature Publishing Group",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
6,
4
]
]
}
}
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.1038/s41467-026-74099-5 [code]
- Right amygdala ablation reduces maladaptive negative interpretation bias and symptoms in a patient with post-traumatic stress disorder.Journal: Nature communicationsIn common: dcm2niix, Image Processing Toolbox, Statistics and Machine Learning Toolbox, clinical / translational, 4 references
- [2] doi:10.1038/s41467-026-76011-7 [code]
- Human cortex organizes dynamic co-fluctuations along the sensorimotor-association
axis. Journal: Nature communicationsIn common: AFNI, EEGLAB, FSL, 5 other tools - [3] doi:10.1016/j.crmeth.2026.101473 [code]
- AmygdalaGo-BOLT for boundary-aware segmentation of the human amygdala.Journal: Cell reports methodsIn common: AFNI, EEGLAB, FSL, 5 other tools
- [4] doi:10.64898/2026.03.12.710517 [code]
- Cortical excitability inversely modulates fMRI connectivity via low-frequency neuronal couplingJournal: bioRxiv (preprint)In common: AFNI, EEGLAB, FSL, 5 other tools
- [5] doi:10.1002/hbm.70512 [code]
- Precision Imaging for Intraindividual Investigation of the Reward Response.Journal: Human brain mappingIn common: dcm2niix, PsychoPy, AFNI, 3 other tools
- [6] doi:10.1162/imag.a.1222 [code]
- Network-based near-scalp personalized brain stimulation targets.Journal: Imaging neuroscience (Cambridge, Mass.)In common: AFNI, FSL, Image Processing Toolbox, 3 other tools, other, 1 reference
- [7] doi:10.1016/j.isci.2026.116586 [code]
- Condition-specific neural signatures of reactivation during post-retrieval rest: An EEG study.Journal: iScienceIn common: PsychoPy, EEGLAB, Image Processing Toolbox, 4 other tools
- [8] doi:10.1371/journal.pbio.3003818 [code]
- Human neuronal firing varies with the frequency of local field potential oscillations.Journal: PLoS biologyIn common: EEGLAB, FSL, Image Processing Toolbox, 2 other tools, 1 reference
- [9] doi:10.1038/s41467-026-74565-0 [code]
- The functional neurobiology of dispositions towards negative emotions.Journal: Nature communicationsIn common: AFNI, FSL, Image Processing Toolbox, 4 other tools
- [10] doi:10.1016/j.cub.2026.05.068 [code]
- An abstract relational map emerges in the human medial prefrontal cortex with consolidation.Journal: Current biology : CBIn common: AFNI, FSL, Image Processing Toolbox, 4 other tools
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, 307 scripts, and 16 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:963036895e0e1ae7…
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.
