Human tactile FA1 neurons (Hay and Pruszynski 2020)

 Download zip file 
Help downloading and running models
"... we show that synaptic integration across the complex signals from the first-order neuronal population could underlie human ability to accurately (< 3°) and rapidly process the orientation of edges moving across the fingertip. We first derive spiking models of human first-order tactile neurons that fit and predict responses to moving edges with high accuracy. We then use the model neurons in simulating the peripheral neuronal population that innervates a fingertip. We train classifiers performing synaptic integration across the neuronal population activity, and show that synaptic integration across first-order neurons can process edge orientations with high acuity and speed. ... our models suggest that integration of fast-decaying (AMPA-like) synaptic inputs within short timescales is critical for discriminating fine orientations, whereas integration of slow-decaying (NMDA-like) synaptic inputs supports discrimination of coarser orientations and maintains robustness over longer timescales"
1 . Hay E, Pruszynski JA (2020) Orientation processing by synaptic integration across first-order tactile neurons. PLoS Comput Biol 16:e1008303 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Neuron or other electrically excitable cell; Axon; Realistic Network;
Brain Region(s)/Organism: Human;
Cell Type(s):
Gap Junctions:
Receptor(s): AMPA; NMDA;
Simulation Environment: MATLAB;
Model Concept(s): Sensory coding; Synaptic Integration; Receptive field;
Search NeuronDB for information about:  AMPA; NMDA;
% Author: Etay Hay
% Orientation processing by synaptic integration across first-order tactile neurons (Hay and Pruszynski 2020)

function [] = sim_edge_response(Ntype,model_type,task_type,noise_level,stim_angles)
	warning off
	close all;

	% Data of spikes in time and space 
	% 1 - time (s)
	% 2 - position translation (mm)
	% 3 - position rotation (mm)
	% 4 - instantaneous speed (mm/s)
	% 5 - instantaneous contact force
	cellnames = {...
		'pd1101FAI_Nerve____VideoCCLWDIR0__Drumpilot3-313.b00',... % opposite direction
		'pd1103FAI_Nerve____VideoCCLWDIR0__Drumpilot3-317.b00',... % opposite direction
		'sc1203FAI_Nerve____VideoCCLWDIR0__Drumpilot3-324.b00',... % opposite direction
		'JO1601FAI_Nerve____VideoCCLWDIR0__Drumpilot3-343.b00',... % opposite direction
		'SH1701FAI_Nerve____VideoCCLWDIR90_Drumpilot3-357.b00',... % opposite direction
		'SH1703FAI_Nerve____VideoCCLWDIR90_Drumpilot3-358.b00',... % opposite direction
		'ha28FAI_Nerve____VideoCCLWDIR0__Drumpilot3-444.b00',... % opposite direction , noisy response and between stims
		'is3201FAI_Nerve____VideoCLW_DIR0__Drumpilot3-423.b00',... % receptive field larger than dot spacing

	drum_speed = .03; % (mm/ms)
	dx = drum_speed; % RF resolution x-axis (mm)
	dy = 0.4; % RF resolution y-axis (mm)
	data = load(['../../Data/Tactile/',cellnames{modeled_cells(1)},'.txt']);
	dot_xy = get_dotxy(modeled_cells(1));
	sim_param = struct('dx',dx,'dy',dy,'data',data,'drum_speed',drum_speed,'dot_xy',dot_xy,'cellnum',modeled_cells(1),'patch_length_x',12,'patch_length_y',12);

	models2 = tile_patch(Ntype,s_models,sim_param);
	if noise_level == 0
		Ntrials = 2;
		Ntrials = 100;
	Ncells = length(models2);
	%stim_angles = [-20:5:-5,-3,-1,1,3,5:5:20];
	for k = 1:length(stim_angles)
		if task_type == 1
			stim_type = 'line';
		elseif task_type == 2
			stim_type = 'linepress';
		elseif task_type == 3
			stim_type = 'line3mm';
		stim_list{k} = {stim_type,stim_angles(k)};
	t_start = 0;
	t_win = 0;
	for k = 1:length(stim_list)
		disp([stim_list{k}{1},' ',num2str(stim_list{k}{2})])
		for k2 = 1:Ntrials
			[stim1, tempo] = get_stim(stim_list{k},sim_param);
			noise_stim = get_noise_stim(stim1,noise_level,dy/dx);
			parfor (i=1:Ncells,3)
				[m_spike_times{i,k,k2},temp] = run_drum_stim(models2{i},stim_list{k},sim_param,t_start,t_win,noise_stim);
		m_t{k} = tempo;