Exercise 5 - Choice Probability - Populations of Direction Selective Cells with Readout Units


Objectives: Some references on choice probability:


  1. Download the parameter files

    • DS_Simp_RO.moo - Direction Selective Simple Cells and Opponent Readout Neurons with 16 inputs.

    • DS_Simp_RO.in8.moo - Direction Selective Simple Cells and Opponent Readout Neurons with 8 inputs.

    • DS_Simp_RO.in4.moo - Direction Selective Simple Cells and Opponent Readout Neurons with 4 inputs.

    • DS_Simp_RO.in2.moo - Direction Selective Simple Cells and Opponent Readout Neurons with 2 inputs.

    • DS_Simp_RO.in1.moo - Direction Selective Simple Cells and Opponent Readout Neurons with 1 input.

    • dot_zero_seed.stm - stimulus parameters for coherent random dot stereogram stimuli where each trial uses a different seed to generate the dot pattern.

    • t_opp_all.rsp - response to be saved for DS_Simp_RO model.

    • t_opp_in8.rsp - response to be saved for DS_Simp_RO.in8 model.

    • t_opp_in4.rsp - response to be saved for DS_Simp_RO.in4 model.

    • t_opp_in2.rsp - response to be saved for DS_Simp_RO.in2 model.

    • t_opp_in1.rsp - response to be saved for DS_Simp_RO.in1 model.

  2. Examine the contents of the model parameter file

    Open a model file in a text editor. Note there are several populations:

    • LGN and LGN_D are two LGN populations that differ only in response latency (the temporal filter for LGN_D units is delayed by 20 ms relative to LGN).
    • IN and EX are inhibitory and excitatory V1 units respectively that take input from the LGN population. IN_D and EX_D are V1 units that take input from LGN_D
    • DS and DS_OPP take input from all 4 IN and EX populations. The phase of the templates that select the inputs differs between each of the four populations, generating direction selective responses. DS units all have a direction preference around 0 degrees, while DS_OPP units all prefer 180 degrees.
    • RO and RO_OPP are units that take input from a pool of DS or DS_OPP units respectively. The weights of these inputs are uniform. Thus they act as 'readout' units that simply average the activity of the pool of inputs they sample from.

    Note that for each model file provided, almost all parameters are identical except that there are a different number of DS and DS_OPP units pooled by the RO and RO_OPP readout neurons: 16 inputs in the original DS_Simp_RO.moo file, 8 inputs in DS_Simp_RO.in8.moo, etc., down to a single input in the pool in DS_Simp_RO.in1.moo.

  3. Run the models using the dot stimulus with multiple seeds.

    Each run of wm uses one of the different model files, each having a different pooling size, as described above. Thus they also have different response files, to record outputs from only the DS/DS_OPP units in the pool:

    
      wm mod DS_Simp_RO.moo dot_zero_seed.stm t_opp_all.rsp tn 1024 write_ndata RO.dotzeroall.coh08.8.8.3.nd direction 0 coherence 0.8 dotdens 8 dotsize 3.0 speed 8.0
    
      wm mod DS_Simp_RO.in8.moo dot_zero_seed.stm t_opp_in8.rsp tn 1024 write_ndata RO.in8.dotzeroall.coh08.8.8.3.nd direction 0 coherence 0.8 dotdens 8 dotsize 3.0 speed 8.0
    
      wm mod DS_Simp_RO.in4.moo dot_zero_seed.stm t_opp_in4.rsp tn 1024 write_ndata RO.in4.dotzeroall.coh08.8.8.3.nd direction 0 coherence 0.8 dotdens 8 dotsize 3.0 speed 8.0
    
      wm mod DS_Simp_RO.in2.moo dot_zero_seed.stm t_opp_in2.rsp tn 1024 write_ndata RO.in2.dotzeroall.coh08.8.8.3.nd direction 0 coherence 0.8 dotdens 8 dotsize 3.0 speed 8.0
    
    wm mod DS_Simp_RO.in1.moo dot_zero_seed.stm t_opp_in1.rsp tn 1024 write_ndata RO.in1.dotzeroall.coh08.8.8.3.nd direction 0 coherence 0.8 dotdens 8 dotsize 3.0 speed 8.0
    
    

    The outputs are written to .nd files with an RO. prefix.

    Alternatively, if the simulations are too slow and you are running out of time, you can download precomputed .nd files here:

  4. View the response using the nData browser (nd)

    Open one of the data files,

    
      nd RO.dotzeroall.coh08.8.8.3.nd
    
    

    The Raster analysis should be selected. Since we are using different seeds for each trial here, the spike trains will be irregular for each trial.

    You can also make a note of the channels saved to the files. The DS units give input to RO while the RO_OPP unit gets input from DS_OPP cells.

  5. Calculating choice probabilities

    There are two steps to the choice probability analysis, each involving a different .nda file:

    • cprob.nda - this file calculates a choice variable for each trial, appends this to the data and outputs to another .nd file. For this exercise, we are calculating the decision using the 'ro1' and 'roopp1' units, with choice = 1 when the spike count of ro1 is higher than roopp1 on that trial, and 0 when this is not the case.

    • chp_print.nda - this file takes the .nd file with the choice variable output from cprob.nda and calculates the choice probability value for a single unit, set using chan in the nda file. Output can be sent to the command line (default) or appended to a file for further processing.

    You want to calculate the choice probability (CP) value for each input in the pool to the ro1 unit, and then average the CP values from all inputs to reach a final CP value for that simulation.

    Thus for each output .nd file from the above wm runs, you will run:

    
      nda cprob.nda RO.dotzeroall.coh0.8.8.3.nd RO.dotzeroall.coh0.8.8.3.cp.nd chan ro1 histogram_file ro1.all.c0.choice.hist.pl
    
    

    to generate a new .nd file with the choice variable computed and appended, and then run:

    
      nda chp_print.nda RO.dotzeroall.coh08.8.8.3.cp.nd aa.pl chan ds_3_1_1 histogram_file ds311.all.c08.cp.hist.pl
    
    

    for each of the input DS units in the pool for that simulation. Once you have recorded all the CP values from the pool, compute the average to obtain a final CP value for that pool size. Plot the CP value vs. pool size. Again, if time is running short, a list of all the nda commands for generating all the necessary CP values can be downloaded here:

    You will still need to record the CP values for each pool size and compute the averages yourself.



    End of Exercise 5