Using simbuilder to build Lower Urinary Tract (LUT) network model

·       The base model can be downloaded from https://tjbanks.github.io/SimBuilder/  

·       A generalized neuron network builder based on Marianne Bezaires CA1 model.

Extract the zip folder and run sim_builder.exe to get started.

 

 

 

Network Model Builder: Add general description

 

1)     General: Add general description

 

RunName: Name of Simulation run // lutrun

Scale: Network Scale (1:Scale) // Where is this used? Fullscale = 1

SimDuration: Duration of Time simulated (msec) // 30000

Temporal Resolution: Temporal resolution of the simulation (msec) // 0.01

StepBy: Number of milliseconds to run at a time // 100

RandomVrest: Standard deviation away from Vrest for RMP of each cell // 0.0

RandomVinit: if not zero, then initial values are randomized// 0

 

2)     Data Sources: Add general description

 

Stimulation: Filename of the stimulation protocol used to stimulate the network. In the SimBuilderBase folder look for Stimulation folder. By default there are several stimulation types provided that are used in original CA1 model.

 NOTE: You will need to create your own stimulation if you cannot use the ones already there and save it as name_stimulation.hoc in stimulation folder to use it via simbuilder. Show example case for LUT proj?

Stimulators are connected to real cells here.

Use spontaneous for background and specific connections for stimulators specified in main.hoc file

Ecca3sintrain: Add general description

Oscillation: This uses the phasic file under datasets. phasic_xx.dat file is created based on phasic simulation parameters set in section 6 below. NOTE: hoc file is similar to Ecca2sintrain.

Pulse: I find this is more specific to hippocampus model and its connection perforant path projections to different cells. I believe Perforant path stimulation is provided from elsewhere. Vinay to check later for Hipp model

Ripple: This file is checking if a certain cell are Ca3 ripple or on_cells and connecting them and associate different netstim to both.

Ripple_Spontaneous: Loads cells connectivity for ripple and spontaneous stimulation

Spontaneous: Poisson background input can be provided using this file.

This file defines two procedures related to spontaneous stimulation:

·       connectStims: this is used when each cell needs to have its own, unique excitatory spike train input. This procedure connects a specific artificial cell to each real cell of the model, so that each real cell has its own independent input.

·       setNoise: this procedure sets the properties of the random number generators that are then associated to the noise functionality of the artificial cells. Each artificial cell has its own, unique random stream that is associated to its noise algorithm. The noise algorithm then draws from that random number stream to determine the interspike intervals that define the spike train pattern of the cell.

Spontpos: Same as spontaneous stimulation above but modified to include stimulation based on position either by absolute position (x,y) or relative to a point.

Test: a test case of pulse stimulation. 

Vector: Uses gid to connect and provide netstim. More appropriate to use in LUT proj for stimulators. Need to update according to LUT stimulators.

Connectivity: Filename of the connection protocol used to connect the cells of the network. Individual files specifying probability, strength and delay of each connection type. (SW_BLA is implemented in a different way)

Try_all_randfaststim: This file defines and calls a procedure for creating connections between all of the cells of the network. MakeArtConns flag to 0 (This will not allow artificial cell connections) or will need to ensure that the ConnData dataset (conndata_###.dat file) being used specifies 0 connections for the connections that they do not want managed by this algorithm.

Does not allow a presynaptic cell to make multiple connections to a single postsynaptic cell.

Try_all_repeatstim: "repeatconn" algorithm will keep making multiple connections from a cell that satisfies the distance and type requirements so that the overall convergence onto the postsynaptic cell satisfies the desired level. However,this will result in a rigid, strongly interconnected network.

ConnData: File identifier connection dataset to use. // Ex:105, file associated conndata_105.dat will be used.

SynData: File identifier synapse dataset to use. // Ex: 205 file associated syndata_205.dat will be used.

NumData: File identifier number of cells dataset to use. // Ex: 305 file associated cellnumbers_305.dat will be used.

PhasicData: File identifier phasic dataset to use. // Ex: 405 file associated phasic_405.dat will be used.

 

3)     Spacial Config: (Used default for now but LUT model doesn’t have spatial dependency) Need to add more details on where and how they are used etc.

 

4)     LFP Config: (Used default for now but LUT model don’t need this) Need to add more details on where and how they are used etc.

 

5)     Miscellaneous:

UID: Unique ID for this simulation run // 55555

RandomSeeds: Method used to assign seeds to random processors //0 ( what different methods we have?)

Positioning: Algorithm used to position the cells (Need to find more info)

FracTraces: The percent of cells to record intracellularly, for each cell type// 1

JobNumber: Job number assigned by supercomputer // 0

JobHours: Number of hours to let the run go for // 4

TopProc: NEURON process name in the top command// nrniv

DegreeStim: Degree of stimulation; meaning depends on Stimulation type // check for spontaneous

RandomSeedsConn: Starting highIndex used by connectivity streams // 0 Look into this

RandomSeedsStim: Starting highIndex used by stimulation streams //0 Look into this

AxConVel: Axonal conduction delay in um/ms, usually 250-500 // Set to 0 to use constant value of 1.4 ms

myConDelay: Axonal conduction delay (~1.2)

NumTracesPyr: The maximum number of pyramidal cells to record intracellularly // Not sure about value

PercentCellDeath: Percent of cells that are killed (removed), for cell types flagged for cell death // 0

RandomSynWgt: value >0 indicates that synapse weights should vary with the specified weight as the mean. 1: a normal distribution, 2: a lognormal distribution, 3: a uniform distribution // 0 (check)

synVar: Fraction of the mean synapse weight that should be set as the standard deviation in the normal distribution of synapse weights for randomized synapse weights. // 0.03

6)     Print/Output:

 

PrintVoltage: Flag for recording and printing intracellular voltage traces for select cells //1

PrintTerminal: Level of printouts to screen (affects run time) 0: minimal, 1: some, 2: max printouts// 1

PrintConnDetails:  Flag for printing the detailed connection matrix //1

PrintCellPositions: Flag for printing the cell positions //0

PrintConnSummary: Flag for printing the summary connection matrix // 1

NumTraces: The maximum number of cells to record intracellularly, for each cell type// 100

EstWriteTime: Number of seconds to save for the run to write out its results // 1000

CatFlag:  Whether to concatenate and remove trace connection files // 1

Once you click save parameters file. Simbuilder will save the values from network model builder into parameters.hoc file under steupfiles folder.

 

Cells: Create cells here

 You will have to change your original template file to match templates files under cells folder and name it class_xx.hoc . This is important otherwise you will not be able to choose the appropriate cell template using simbuilder.

 

Close simbuilder and open again, Network Model Builder values should be automatically saved. Now click Cells => New => give a numerical identifier (Ex: 105) your cells data will be saved under datasets/ cellnumbers_105.dat

 

You can select Add row and begin populating cells here.

Ex: Friendly Cell Name (MPGb), Cell File Name (MPG), Number of Cells (250), Layer Index (0), Artificial:1, Real:0 (0)

 

Cell File Name: You will choose the class_celltemplate file using drop down menu.

Layer Index: This specifies which layer the soma of the neuron is present. Ex: Oriens, Pyramidale, Radiatum and Lacunosum-Moleculare in hippocampal CA1 // LUT model doesn’t have layers for now.

Artificial/Real: Artificial cells can be your netstim/ source stimulation //In LUT model MPG stim, HG stim and PUD stim are artificial cells.

 

Connections: making connections between cells. You will be able to define synaptic weights, convergence values and no of synapses per connection. // LUT model connection file is located under datasets/conndata_105.dat

If you click Generate New from Current Cells File it will automatically populate a table with the real cells plus artificial cells on left and real cells on top. You can switch between Synaptic Weights, Convergence and Synapses to edit their values for specific connection type.

Synaptic Weights: Strength of connection between the two neurons specified. // default values chosen for LUT model are 0.1 and need to be tuned.

Convergence: Total number of connections to be randomly distributed between the presynaptic type and post synaptic type. // 10 if connection ratio is 1:10 if connection ratio is 1:1 and 0.1 if connection ratio is 10:1

 

Synapses: You will be able to define your synapse properties here

 

Click Create New and give a number identifier. You will be able to select a presynaptic cell from cells created and a postsynaptic cell then specify synapse type. (Currently only Excitatory synapse: MyExp2Sid and Inhibitory synapse: ExpGABAab are available).Then you will be able to attach the synapse to specific post synaptic target from lists created in your class_celltemplate files. Ex: soma_list, dendrite_list etc.. // LUT model has only soma_list.

Synapse parameters can be varied depending on distance by making different synapses depending on condition1 or 2.

For each synapse you will specify rise time, decay time and reveral potential. The notations are different for inb synapses. // Default values for LUT model (Tau1a=2.0ms, Tau2a=6.3ms, ea =0mV, Tau1b=2.0ms, Tau2b=6.3ms, eb=-80mV)

 

Phasic Stimulation: You can create stimulators here.

Click Create New and give a number identifier. You will be able to select an artificial cell from cells list.

Specify max frequency, Noise level, Depth and Phase. // LUT model values (MPGstim: 80Hz, 0.5,0,0) (HGstim: 80Hz, 0.5,0,0) (PUDstim: 33Hz, 0.5,0,0)

However if you are trying to time your stimulation properly this can be done by changing class_ppstim.hoc (Need to check if this works, especially spontaneous stimulation and ppstim)