Human tactile FA1 neurons (Hay and Pruszynski 2020)

 Download zip file 
Help downloading and running models
Accession:266798
"... 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"
Reference:
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):
Channel(s):
Gap Junctions:
Receptor(s): AMPA; NMDA;
Gene(s):
Transmitter(s):
Simulation Environment: MATLAB;
Model Concept(s): Sensory coding; Synaptic Integration; Receptive field;
Implementer(s):
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 [] = plot_model_innervation(model,patch_length,plot_mode)
	colors = {[255,219,172]/255,[0,0,0]/255,0.6*[1,1,1]};
	rectangle('position',[0 0 patch_length patch_length],'facecolor',colors{1},'edgecolor','k')
	d_mr = model.d_mr;
	hold on
	[indsR,indsC] = find(model.mr_loc == 1);
	shifti = (patch_length - d_mr*(max(indsR) + min(indsR)))/2; 
	shiftj = (patch_length - d_mr*(max(indsC) + min(indsC)))/2;
	if (plot_mode == 1)
		verts0 = [];
		verts1 = [];
		for k = 1:size(model.mr_loc,1)
			inds = find(model.mr_loc(k,:)==1);
			if ~isempty(inds)
				[vmin,imin] = min(inds);
				verts0(end+1,:) = [k,vmin];
				[vmax,imax] = max(inds);
				verts1(end+1,:) = [k,vmax];
			end
		end
		verts = [verts0(1,:);verts1;verts0(end:-1:1,:)];
		plot(verts(:,2)*d_mr+shiftj-d_mr/2,verts(:,1)*d_mr+shifti-d_mr/2,'color',colors{3})	
	end
	for k = 1:size(model.mr_subset,1)
		i = model.mr_subset(k,1);
		j = model.mr_subset(k,2);
		plot(j*d_mr+shiftj-d_mr/2,i*d_mr+shifti-d_mr/2,'o','color',colors{2},'markerfacecolor',colors{2},'markersize',1)
	end
	hold off
	xlim([0,patch_length])
	ylim([0,patch_length])
	axis off
end