Motor system model with reinforcement learning drives virtual arm (Dura-Bernal et al 2017)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:194897
"We implemented a model of the motor system with the following components: dorsal premotor cortex (PMd), primary motor cortex (M1), spinal cord and musculoskeletal arm (Figure 1). PMd modulated M1 to select the target to reach, M1 excited the descending spinal cord neurons that drove the arm muscles, and received arm proprioceptive feedback (information about the arm position) via the ascending spinal cord neurons. The large-scale model of M1 consisted of 6,208 spiking Izhikevich model neurons [37] of four types: regular-firing and bursting pyramidal neurons, and fast-spiking and low-threshold-spiking interneurons. These were distributed across cortical layers 2/3, 5A, 5B and 6, with cell properties, proportions, locations, connectivity, weights and delays drawn primarily from mammalian experimental data [38], [39], and described in detail in previous work [29]. The network included 486,491 connections, with synapses modeling properties of four different receptors ..."
Reference:
1 . Dura-Bernal S, Neymotin SA, Kerr CC, Sivagnanam S, Majumdar A, Francis JT, Lytton WW (2017) Evolutionary algorithm optimization of biological learning parameters in a biomimetic neuroprosthesis. IBM Journal of Research and Development (Computational Neuroscience special issue) 61(2/3):6:1-6:14
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
Cell Type(s): Abstract Izhikevich neuron;
Channel(s):
Gap Junctions:
Receptor(s): GabaA; GabaB; NMDA; AMPA;
Gene(s):
Transmitter(s): Glutamate; Gaba;
Simulation Environment: NEURON; Python;
Model Concept(s): Learning; Reinforcement Learning; Reward-modulated STDP; STDP; Motor control; Sensory processing;
Implementer(s): Dura-Bernal, Salvador [salvadordura at gmail.com]; Kerr, Cliff [cliffk at neurosim.downstate.edu];
Search NeuronDB for information about:  GabaA; GabaB; AMPA; NMDA; Gaba; Glutamate;
<Simulation name="human">
	<System name="3DGaitModel2392Arms">
		<AdditionalFileDir name="./Geometry" />
		<AdditionalFileDir name="./obj_textures" />
		<OsimFile name="SUNY_arm_2DOFs_horizon.osim">
			<LoadForces load_all="true" muscle_apply_force="true" need_compute_actu="true" need_load="true" sys_active="true" use_fatigue="false">
			</LoadForces> 
			<LoadGeometry need_load="true" />
		</OsimFile>	
		<ScaleMuscleToRelax name="Muscles" />
		
        <ForceSubsystems>
            <JointLimitActutorForceSubsystem>
                <Coefficients>2500 1000 500 1500</Coefficients>
            </JointLimitActutorForceSubsystem>        
        </ForceSubsystems>

		<EventHandlers>
			<OsgEventHandler>
				<Interval> 0.01</Interval>			
				<Camera graphics_context="true" preset="4">
					<ViewUpDirection value="240 -70 200" />
					<ViewPosition relative="false" value="50 -60 100" />
					<ViewCenter relative="false" value="0 0 0" />
				</Camera>
				<Screen background_color="1.0 1.0 1.0 1.0" position="100 100" resolution="800 600" />
				<ShowBodies value="true" />
				<ShowBodyBaseLines value="false">
					<Scale value="8e-1" />
				</ShowBodyBaseLines>
				<ShowBodyFrames value="false">
					<Scale value="4e-2" />
				</ShowBodyFrames>
				<ShowJoints value="false" />
				<ShowForces value="false" />
				<ShowContactProxyGroups value="false" />
				<ShowContactGroups value="false" />
				<ShowForceSubsystem name="Muscles">
					<DefaultColor> 0.0 0.0 1.0 1.0 </DefaultColor>
					<ColorValueRange> 0.0 1.0 </ColorValueRange>
					<ColorOption value="6" />
					<Radius value="0.0025" />
				</ShowForceSubsystem>
			</OsgEventHandler>
	
			<MuscleStatusEventHandler>
				<Interval> 10e-3</Interval>
				<PntOutput name="SUNY_arm_2DOFs_horizon_static_muscle_status.pnt" /> 
				<LOAMuscleForceSubsystem name="Muscles" />
				<MuscleNames all="false">
					DELT1  DELT2 DELT3 Infraspinatus Latissimus_dorsi_1 Latissimus_dorsi_2 Latissimus_dorsi_3 Teres_minor PECM1 PECM2 PECM3 Coracobrachialis TRIlong TRIlat TRImed BIClong BICshort BRA  
				</MuscleNames>		
				<MuscleVars all="false">	
                    excitation
					activation
					force
				</MuscleVars>		
				<PortSend2>32001</PortSend2>					
			</MuscleStatusEventHandler>
			
			<MuscleExcitationSetterEventHandler>
				<Interval> 10e-3</Interval>
				<LOAMuscleForceSubsystem name="Muscles" />
				<MuscleNames all="true">
					DELT1  DELT2 DELT3 Infraspinatus Latissimus_dorsi_1 Latissimus_dorsi_2 Latissimus_dorsi_3 Teres_minor PECM1 PECM2 PECM3 Coracobrachialis TRIlong TRIlat TRImed BIClong BICshort BRA  
				</MuscleNames>						
				<Body name="SUNY_2DOF_Arm_Model" />
				<CoordinateNames all="true">
					arm_flex   elbow_flex
				</CoordinateNames>	
				<PortReceive>31000</PortReceive>		
			</MuscleExcitationSetterEventHandler>

			<CoordinateOutputEventHandler>
				<Interval> 10e-3</Interval>
				<Body name="SUNY_2DOF_Arm_Model" />
				<CoordinateNames all="true">
					arm_flex   elbow_flex
				</CoordinateNames>					
				<PntOutput name="SUNY_arm_2DOFs_horizon_static_coordinate_status.pnt" /> 
				<PortSend1>32000</PortSend1>		
			</CoordinateOutputEventHandler>
		</EventHandlers>
	</System>
	
	<Dynamics>
		<PntOutput name="SUNY_arm_2DOFs_horizon_static_state.pnt" /> 
		<TimeStep> 1.0e-4 </TimeStep>
		<TimeStepper> 
			<SynTimeStepper />
		</TimeStepper>
		<Integrator>
			<EulerIntegrator />
			<LSODAIntegrator2 max_substeps="500" />
			<RungeKuttaImplicitIntegrator />
		</Integrator>
	</Dynamics>

	<EndTime>10.0</EndTime>
	
</Simulation>

Loading data, please wait...