{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/trial-matching-capturing-variability-with","title":"Trial matching: capturing variability with data-constrained spiking neural networks","arxiv_id":"2306.03603","date":"2023-06-06","proceeding":"NeurIPS 2023 11","authors":["Christos Sourmpis","Carl Petersen","Wulfram Gerstner","Guillaume Bellec"],"abstract":"Simultaneous behavioral and electrophysiological recordings call for new methods to reveal the interactions between neural activity and behavior. A milestone would be an interpretable model of the co-variability of spiking activity and behavior across trials. Here, we model a mouse cortical sensory-motor pathway in a tactile detection task reported by licking with a large recurrent spiking neural network (RSNN), fitted to the recordings via gradient-based optimization. We focus specifically on the difficulty to match the trial-to-trial variability in the data. Our solution relies on optimal transport to define a distance between the distributions of generated and recorded trials. The technique is applied to artificial data and neural recordings covering six cortical areas. We find that the resulting RSNN can generate realistic cortical activity and predict jaw movements across the main modes of trial-to-trial variability. Our analysis also identifies an unexpected mode of variability in the data corresponding to task-irrelevant movements of the mouse.","url_abs":"https://arxiv.org/abs/2306.03603v2","url_pdf":"https://arxiv.org/pdf/2306.03603v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"trial-matching-capturing-variability-with","repo_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[{"method_slug":"focus","method_name":"Focus"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2306.03603","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.03603"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":16},"by_repo_kind":{"official":{"samples":16,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"11674efba59f4974","entry":"balance_trial_type","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"datasets/dataloader.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/datasets/dataloader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"11674efba59f4974"}},{"code_sha256_prefix":"7870c872a518ef56","entry":"divide_max_eig","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"models/rec_weight_matrix.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/models/rec_weight_matrix.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7870c872a518ef56"}},{"code_sha256_prefix":"1c3cf82188837b05","entry":"firing_rate_loss","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"infopath/losses.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/infopath/losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1c3cf82188837b05"}},{"code_sha256_prefix":"8056c8ec51b1015a","entry":"firing_rates","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"datasets/pseudodata.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/datasets/pseudodata.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8056c8ec51b1015a"}},{"code_sha256_prefix":"ff57b8451376888d","entry":"forward_backward_split","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"infopath/loss_splitter.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/infopath/loss_splitter.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ff57b8451376888d"}},{"code_sha256_prefix":"8e8d4e11a5c554cf","entry":"keep_trial_types_behaviour","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"datasets/dataloader.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/datasets/dataloader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8e8d4e11a5c554cf"}},{"code_sha256_prefix":"bb0bda1c2df02d4a","entry":"load_opt_old","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"infopath/config.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/infopath/config.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bb0bda1c2df02d4a"}},{"code_sha256_prefix":"bd02845f0343ce95","entry":"load_training_opt","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"infopath/config.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/infopath/config.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bd02845f0343ce95"}},{"code_sha256_prefix":"f74304bd98138a07","entry":"make_kernels","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"datasets/pseudodata.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/datasets/pseudodata.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f74304bd98138a07"}},{"code_sha256_prefix":"d21ee6be74d717ad","entry":"make_onset_timeseries","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"datasets/pseudodata.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/datasets/pseudodata.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d21ee6be74d717ad"}},{"code_sha256_prefix":"18eb4144ecf9f5a0","entry":"norm_squared","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"infopath/loss_splitter.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/infopath/loss_splitter.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"18eb4144ecf9f5a0"}},{"code_sha256_prefix":"7139dbc0132df4af","entry":"num_areas","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"infopath/model_loader.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/infopath/model_loader.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"7139dbc0132df4af"}},{"code_sha256_prefix":"91545f885a44942c","entry":"post_synaptic_weight","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"models/rec_weight_matrix.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/models/rec_weight_matrix.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"91545f885a44942c"}},{"code_sha256_prefix":"f73b206cea5b28f7","entry":"restricted_inter_inh_thetas_init","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"models/rec_weight_matrix.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/models/rec_weight_matrix.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f73b206cea5b28f7"}},{"code_sha256_prefix":"4eff8fc364ab552d","entry":"scale_function","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"infopath/config.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/infopath/config.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4eff8fc364ab552d"}},{"code_sha256_prefix":"8a89f77bfb5bb95c","entry":"truncated_proj_a_on_b","repo":"epfl-lcn/pub-sourmpis2023-neurips","repo_kind":"official","path":"infopath/loss_splitter.py","file_url":"https://github.com/epfl-lcn/pub-sourmpis2023-neurips/blob/HEAD/infopath/loss_splitter.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8a89f77bfb5bb95c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}