Algorithms configuration file

The following is the default configuration file, this file describes:

  • The name of each included algorithm

  • The programming language and location of the analysis file

  • The parameters used by the algorithm and its descriptions for validation

  • The plots figures and functions

  • The text to cite the algorithm

  1encore_runners:
  2  svd:
  3    enabled: True
  4    full_name: Singular Value Decomposition
  5    language: MATLAB
  6    folder_path: 'SVD'
  7    analysis_function: run_svd
  8    plot_function: plot_svd
  9    ensemble_color: red
 10    needed_data:
 11      - data_neuronal_activity
 12    parameters:
 13      pks:
 14        object_name: svd_edit_pks
 15        display_name: Coactive neurons (pks)
 16        description: |
 17          Minimum amount of active neurons in a 
 18          single population vector to be considered as significative.
 19        default_value: 3
 20        min_value: 0
 21        max_value: MAX_VAL
 22      scut:
 23        object_name: svd_edit_scut
 24        display_name: Low similarity threshold (scut)
 25        description: |
 26          This is a threshold of co-activity.
 27          The threshold for the low similarity filter.
 28          Suggested range 0.22-0.25
 29          Highly synchronous data requires higher values.
 30          Use 0 for an automated threshold.
 31        default_value: 0.22
 32        min_value: 0
 33        max_value: MAX_VAL
 34      hcut:
 35        object_name: svd_edit_hcut
 36        display_name: hcut
 37        description: |
 38          Another threshold for co-activity. Further removes noise.
 39          A value of 0 do not change the original binary matrix.
 40        default_value: 0.22
 41        min_value: 0
 42        max_value: MAX_VAL
 43      fixed_ens_cant:
 44        object_name: svd_edit_fixed_states_cant
 45        display_name: Fix number of ensembles
 46        description: |
 47          When different from 0, fixed the number of ensembles
 48          identified, taking that amount of the main singular values.
 49        default_value: 0
 50        min_value: 0
 51        max_value: MAX_VAL
 52      state_cut:
 53        object_name: svd_edit_statecut
 54        display_name: state_cut
 55        description: |
 56          The maximum number of states is a fraction  of the total number of cells.
 57          This helps to define the maximum number of ensembles.
 58        default_value: 6
 59        min_value: 0
 60        max_value: MAX_VAL
 61      csi_start:
 62        object_name: svd_edit_csistart
 63        display_name: csi_vec_start
 64        description: This is the csi start
 65        default_value: 0.01
 66        min_value: 0
 67        max_value: MAX_VAL
 68      csi_step:
 69        object_name: svd_lbl_csistep
 70        display_name: csi_vec_step
 71        description: This is the csi step
 72        default_value: 0.01
 73        min_value: 0
 74        max_value: MAX_VAL
 75      csi_end:
 76        object_name: svd_edit_csiend
 77        display_name: csi_vec_end
 78        description: This is the csi end
 79        default_value: 0.10
 80        min_value: 0
 81        max_value: MAX_VAL
 82      tf_idf_norm:
 83        object_name: svd_check_tfidf
 84        display_name: Perform TF-IDF normalization
 85        description: |
 86          Whether of not to perform TF-IDF normalization.
 87          This normalization removes neurons that may appear in two or more different ensembles.
 88        default_value: True
 89      parallel_processing:
 90        object_name: svd_check_parallel
 91        display_name: Perform parallel
 92        description: Check this box to calculate the similarity matrix  using parallel computing.
 93        default_value: False
 94    figures:
 95      - name: svd_plot_similaritymap
 96        display_name: Similarity map
 97      - name: svd_plot_binarysimmap
 98        display_name: Binarized similarity map
 99      - name: svd_plot_activity_spikes
100        display_name: Activity spikes
101      - name: svd_plot_singularvalues
102        display_name: Singular Values
103      - name: svd_plot_components
104        display_name: Components
105      - name: svd_plot_timecourse
106        display_name: Ensembles timecourse
107      - name: svd_plot_cellsinens
108        display_name: Cells in ensembles
109    source: 'For details about this method, see the following chapter: Velazquez-Contreras, R., Carrillo-Reid, L. (2025). Identification of Neuronal Ensembles from Similarity Maps Using Singular Value Decomposition. In: Carrillo-Reid, L. (eds) Identification, Characterization, and Manipulation of Neuronal Ensembles. Neuromethods, vol 215. Humana, New York, NY. https://doi.org/10.1007/978-1-0716-4208-5_5'
110  pca:
111    enabled: True
112    full_name: Principal Component Analysis
113    language: MATLAB
114    folder_path: 'NeuralEnsembles'
115    analysis_function: run_pca
116    plot_function: plot_pca
117    ensemble_color: blue
118    needed_data:
119      - data_neuronal_activity
120    parameters:
121      dc:
122        object_name: pca_edit_dc
123        display_name: dc
124        description: Cut off for distances.
125        default_value: 0.01
126        min_value: 0.0
127        max_value: MAX_VAL
128      npcs:
129        object_name: pca_edit_npcs
130        display_name: Num. of principal components
131        description: Number of principal components to use to extract ensembles.
132        default_value: 3
133        min_value: 0
134        max_value: MAX_VAL
135      minspk:
136        object_name: pca_edit_minspk
137        display_name: Min population spike
138        description: Minimum number of active neurons to be considered part of the analysis
139        default_value: 3
140        min_value: 0
141        max_value: MAX_VAL
142      nsur:
143        object_name: pca_edit_nsur
144        display_name: Number of surrogates
145        description: Surrogates for core-cells, should be 1000 or more.
146        default_value: 1000
147        min_value: 0
148        max_value: MAX_VAL
149      prct:
150        object_name: pca_edit_prct
151        display_name: Percentile for core-cells
152        description: Percentile on the core cell distribution.
153        default_value: 99.90
154        min_value: 0
155        max_value: 100
156      cent_thr:
157        object_name: pca_edit_centthr
158        display_name: Centroid detection threshold
159        description: Centroid detection threshold
160        default_value: 99.90
161        min_value: 0
162        max_value: 100
163      inner_corr:
164        object_name: pca_edit_innercorr
165        display_name: Inter-assembly correlation threshold
166        description: Inter-assembly correlation threshold
167        default_value: 5.0
168        min_value: 0
169        max_value: MAX_VAL
170      minsize:
171        object_name: pca_edit_minsize
172        display_name: Min assembly size
173        description: Minimum number of cells that can form an ensemble.
174        default_value: 3
175        min_value: 1
176        max_value: MAX_VAL
177    figures:
178      - name: pca_plot_eigs
179        display_name: Eigen values
180      - name: pca_plot_pca
181        display_name: Principal components
182      - name: pca_plot_rhodelta
183        display_name: rho vs delta
184      - name: pca_plot_corrne
185        display_name: Corr n,e
186      - name: pca_plot_corecells
187        display_name: Core cells
188      - name: pca_plot_innerens
189        display_name: Inner ensemble correlations
190      - name: pca_plot_timecourse
191        display_name: Ensembles timecourse
192      - name: pca_plot_cellsinens
193        display_name: Cells in ensembles
194      
195    source: 'For details about this method, see the following paper: Herzog et al. 2021 "Scalable and accurate automated method for neuronal ensemble detection in spiking neural networks. https://pubmed.ncbi.nlm.nih.gov/34329314/ Rubén Herzog Dec 2021'
196  ica:
197    enabled: True
198    full_name: Independent Component Analysis
199    language: MATLAB
200    folder_path: 'Cell-Assembly-Detection'
201    analysis_function: run_ica
202    plot_function: plot_ica
203    ensemble_color: green
204    needed_data:
205      - data_neuronal_activity
206    parameters:
207      threshold_method:
208        object_name: ica_threshold_method
209        display_name: "Threshold method to identify\nthe number of ensembles"
210        description: |
211          Metric used to identify activity patterns.
212          Each one uses PCA  but different shuffling methods to determine the number of ensembles.
213          Select one and hover again to see help about it.
214        type: enum
215        default_value: MarcenkoPastur
216        options:
217          - value: MarcenkoPastur
218            label: MarcenkoPastur
219            description: Uses the analytical bound over the principal components.
220          - value: binshuffling
221            label: binshuffling
222            description: |
223              Estimate eigenvalue distribution for independent activity
224              from surrogate matrices generated by shuffling time bins.
225          - value: circularshift
226            label: circularshift
227            description: |
228              Estimate eigenvalue distribution for independent activity
229              from surrogate matrices generated by random circular shifts of original spike matrix.
230      permutations_percentile:
231        object_name: ica_edit_perpercentile
232        display_name: Permutation percentile
233        description: |
234          Defines which percentile of the surrogate distribution of 
235          maximal eigenvalues is used as statistical threshold.
236          It must be a number between 0 and 100 (95 or larger recommended).
237          Not used when MarcenkoPastur is chosen.
238        default_value: 95.0
239        min_value: 0
240        max_value: 100
241      number_of_permutations:
242        object_name: ica_edit_percant
243        display_name: Number of permutations
244        description: |
245          Defines how many surrogate matrices are generated (100 or more recommended).
246          Not used when MarcenkoPastur is chosen.
247        default_value: 20
248        min_value: 0
249        max_value: MAX_VAL
250      min_ensembles_cant:
251        object_name: ica_edit_min_ensembles_cant
252        display_name: Minimum number of ensembles
253        description: |
254          Set a minimum number of ensembles.
255          Use 0 for to remove the limit.
256          This may override the result from the shuffling algorithms.
257        default_value: 0
258        min_value: 0
259        max_value: MAX_VAL
260      max_ensembles_cant:
261        object_name: ica_edit_max_ensembles_cant
262        display_name: Maximum number of ensembles
263        description: |
264          Set a maximum number of ensembles.
265          Use 0 for to remove the limit.
266          This may override the result from the shuffling algorithms.
267        default_value: 0
268        min_value: 0
269        max_value: MAX_VAL
270      patterns_method:
271        object_name: ica_radio_method
272        display_name: Method to extract the ensemble's activity
273        description: |
274          Method used to identify when each ensemble is active.
275          This is independent from the PCA used to identify the number of ensembles.
276        type: enum
277        default_value: ICA
278        options:
279          - value: ICA
280            label: ICA
281            description: Uses Independent Component Analysis
282          - value: PCA
283            label: PCA
284            description: Uses Principal Component Analysis
285      number_of_iterations:
286        object_name: ica_edit_iterations
287        display_name: Number of iterations
288        description: | 
289          Number of iterations for fastICA algorithm (100 or more recommended). 
290          Not used when PCA is chosen.
291        default_value: 500
292        min_value: 0
293        max_value: MAX_VAL
294      threshold_for_p_value:
295        object_name: threshold_for_p_value
296        display_name: Threshold for neurons in ensembles
297        description: | 
298          Identify the significative values to binarize the z-score weight matrix.
299          This selects the neurons in each ensemble
300          A value of 1.96 equals a 0.05 p value.
301        default_value: 1.96
302        min_value: 0.001
303        max_value: 2.000
304        
305    figures:
306      - name: ica_plot_assemblys_heatmap
307        display_name: Weight of neurons in ensembles
308      - name: ica_plot_binary_patterns
309        display_name: Neurons in ensembles
310      - name: ica_plot_assemblys
311        display_name: Assembly patterns
312      - name: ica_plot_activity
313        display_name: Activity of cells assemblies
314      - name: ica_plot_binary_assemblies
315        display_name: Binary cell assemblies
316      
317    source: "For details about this method, see the following paper: Lopes-dos-Santos V, Ribeiro S, Tort AB (2013) Detecting cell assemblies in large neuronal populations. J Neurosci Methods 220(2):149-66. 10.1016/j.jneumeth.2013.04.010"
318  x2p:
319    enabled: True
320    full_name: Xsembles2P
321    language: MATLAB
322    folder_path: 'Xsembles2P'
323    analysis_function: run_x2p
324    plot_function: plot_x2p
325    ensemble_color: orange
326    needed_data:
327      - data_neuronal_activity
328    parameters:
329      NetworkBin:
330        object_name: x2p_edit_bin
331        display_name: Network bin
332        description: Defines the size of the bin for the raster
333        default_value: 1
334        min_value: 1
335        max_value: MAX_VAL
336      NetworkIterations:
337        object_name: x2p_edit_iterations
338        display_name: "Number of shuffling\niterations for the network"
339        description: |
340          Number of iterations for the network 
341          while calculating functional connectivity.
342        default_value: 1000
343        min_value: 1
344        max_value: MAX_VAL
345      NetworkSignificance:
346        object_name: x2p_edit_significance
347        display_name: Network significance
348        description: Significance threshold to identify different states
349        default_value: 0.05
350        min_value: 0
351        max_value: 1
352      CoactiveNeuronsThreshold:
353        object_name: x2p_edit_threshold
354        display_name: Coactive neurons threshold
355        description: Minimum number of neurons to be active at the same time to consider that population vector
356        default_value: 2
357        min_value: 1
358        max_value: MAX_VAL
359      ClusteringRangeStart:
360        object_name: x2p_edit_rangestart
361        display_name: Clustering range start
362        description: Minimum cant of ensembles to identify
363        default_value: 3
364        min_value: 1
365        max_value: MAX_VAL
366      ClusteringRangeEnd:
367        object_name: x2p_edit_rangeend
368        display_name: Clustering range end
369        description: Maximum cant of ensembles to identify
370        default_value: 10
371        min_value: 1
372        max_value: MAX_VAL
373      ClusteringFixed:
374        object_name: 'x2p_edit_fixed'
375        display_name: Clustering fixed
376        description: When different from 0, sets an exact number of ensembles to select.
377        default_value: 0
378        min_value: 0
379        max_value: MAX_VAL
380      EnsembleIterations:
381        object_name: x2p_edit_itensemble
382        display_name: "Iterations to test similarity\nwithin ensemble vectors"
383        description: Iterations ensemble
384        default_value: 1000
385        min_value: 1
386        max_value: MAX_VAL
387      ParallelProcessing:
388        object_name: x2p_check_parallel
389        display_name: Parallel processing
390        description: Whether or not to use a parallel pool to do calculations
391        default_value: False
392        
393    figures:
394      - name: x2p_plot_similarity
395        display_name: Similarity
396      - name: x2p_plot_epi
397        display_name: Ensemble participation index
398      - name: x2p_plot_onsemact
399        display_name: Onsemble activity
400      - name: x2p_plot_offsemact
401        display_name: Offsemble activity
402      - name: x2p_plot_activity
403        display_name: Activity
404      - name: x2p_plot_onsemneu
405        display_name: Onsemble neurons
406      - name: x2p_plot_offsemneu
407        display_name: Offsemble neurons
408      
409    source: "For details about this method, see the following paper: Perez-Ortega, J., Akrouh, A. & Yuste, R. 2024. Stimulus encoding by specific inactivation of cortical neurons. Nat Commun 15, 3192. doi: 10.1038/s41467-024-47515-x"
410  sgc:
411    enabled: True
412    full_name: Similarity Graph Clustering
413    language: MATLAB
414    folder_path: 'SGC'
415    analysis_function: run_sgc
416    plot_function: plot_sgc
417    ensemble_color: pink
418    needed_data:
419      - data_dFFo
420    parameters:
421      use_first_derivative:
422        object_name: sgc_check_firstderiv
423        display_name: Use first derivative of dFFo
424        description: Check this box to use the first derivative of the calcium signals instead of the calcium signal
425        default_value: False
426      standard_deviations_threshold:
427        object_name: sgc_edit_stdthreshold
428        display_name: Standard deviations threshold
429        description: This threshold will be used to identify moments of neuronal activity
430        default_value: 2
431        min_value: 1
432        max_value: MAX_VAL
433      shuffling_rounds:
434        object_name: sgc_edit_shuff
435        display_name: Shuffling rounds
436        description: Number of times the data will be shuffled before identifying activity patterns
437        default_value: 1000
438        min_value: 1
439        max_value: MAX_VAL
440      coactivity_significance_level:
441        object_name: sgc_edit_sig
442        display_name: Coactivivity significance level
443        description: Alpha value to determine a coactivation moment as significative
444        default_value: 0.05
445        min_value: 0.0000001
446        max_value: 1
447      montecarlo_rounds:
448        object_name: sgc_edit_monterounds
449        display_name: Montecarlo rounds
450        description: Number of Montecarlo rounds to use for the data
451        default_value: 5
452        min_value: 1
453        max_value: MAX_VAL
454      montecarlo_steps:
455        object_name: sgc_edit_montesteps
456        display_name: Montecarlo steps
457        description: Montecarlo steps
458        default_value: 10000
459        min_value: 1
460        max_value: MAX_VAL
461      affinity_threshold:
462        object_name: sgc_edit_affthres
463        display_name: Affinity threshold
464        description: Affinity threshold
465        default_value: 0.2
466        min_value: 0.00001
467        max_value: MAX_VAL
468        
469    figures:
470      - name: sgc_plot_timecourse
471        display_name: Ensembles timecourse
472      - name: sgc_plot_cellsinens
473        display_name: Cells in ensembles
474      
475    source: "For details about this method, see the following paper: L. Avitan et al. 'Spontaneous Activity in the Zebrafish Tectum Reorganizes over Development and Is Influenced by Visual Experience'. Curr. Biol. 27 (2017). DOI: 10.1016/j.cub.2017.06.056"
476  example:
477    enabled: True
478    full_name: Example Algorithm
479    language: Python
480    folder_path: ''
481    analysis_function: run_example
482    plot_function: plot_example
483    ensemble_color: pink
484    needed_data:
485      - data_dFFo
486      - data_neuronal_activity
487    parameters:
488      int_parameter_ensembles:
489          object_name: example_int_ensembles
490          display_name: Number of ensembles
491          description: Integer values from 0 to 8.
492          default_value: 5
493          min_value: 1
494          max_value: 8
495      int_parameter_A:
496        object_name: example_int_parameter_A
497        display_name: Integer parameter A
498        description: Integer values from -10 to 50.
499        default_value: 5
500        min_value: -10
501        max_value: 50
502      int_parameter_B:
503        object_name: example_int_parameter_B
504        display_name: Integer parameter B
505        description: Integer values from 0 to 100.
506        default_value: 8
507        min_value: 0
508        max_value: 100
509      float_parameter:
510        object_name: example_float_parameter
511        display_name: Result A with B
512        description: Integer values from -1000 to "infinity".
513        default_value: 0.0
514        min_value: -1000
515        max_value: MAX_VAL
516      threshold_parameter:
517        object_name: example_threshold_parameter
518        display_name: Threshold parameter
519        description: Decimal values from 0 to 1, used as threshold for the dummy procedure.
520        default_value: 0.5
521        min_value: 0
522        max_value: 1
523      bool_parameter:
524        object_name: example_bool_parameter
525        display_name: Boolean parameter
526        description: This box checked means True, unchecked means False
527        default_value: False
528      selection_parameter:
529        object_name: example_selection
530        display_name: Multiple selection parameter
531        description: This parameters selects only one of many
532        type: enum
533        default_value: SUM
534        options:
535          - value: SUM
536            label: Sum the parameters A and B
537            description: The values will be summed
538          - value: MEAN
539            label: Mean of the parameters A and B
540            description: The mean of the values will be used
541    figures:
542      - name: example_plot_raster
543        display_name: Raster of the activity
544      - name: example_plot_dFFo
545        display_name: dFFo of a neuron
546      - name: example_plot_secondary_dFFo
547        display_name: Secondary dFFo plot
548      - name: example_plot_many_dFFo
549        display_name: dFFo of many cells
550    source: ENCORE example algorithm to demonstrate the integration of new custom algorithms. This function only simulates the identification of ensembles. Also, allows the user to make a dry run of the analysis without installing the MATLAB engine. Check the documentation for more details on adding a new algorithm.