{"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/active-learning-of-neural-population-dynamics","title":"Active learning of neural population dynamics using two-photon holographic optogenetics","arxiv_id":"2412.02529","date":"2024-12-03","proceeding":null,"authors":["Andrew Wagenmaker","Lu Mi","Marton Rozsa","Matthew S. Bull","Karel Svoboda","Kayvon Daie","Matthew D. Golub","Kevin Jamieson"],"abstract":"Recent advances in techniques for monitoring and perturbing neural populations have greatly enhanced our ability to study circuits in the brain. In particular, two-photon holographic optogenetics now enables precise photostimulation of experimenter-specified groups of individual neurons, while simultaneous two-photon calcium imaging enables the measurement of ongoing and induced activity across the neural population. Despite the enormous space of potential photostimulation patterns and the time-consuming nature of photostimulation experiments, very little algorithmic work has been done to determine the most effective photostimulation patterns for identifying the neural population dynamics. Here, we develop methods to efficiently select which neurons to stimulate such that the resulting neural responses will best inform a dynamical model of the neural population activity. Using neural population responses to photostimulation in mouse motor cortex, we demonstrate the efficacy of a low-rank linear dynamical systems model, and develop an active learning procedure which takes advantage of low-rank structure to determine informative photostimulation patterns. We demonstrate our approach on both real and synthetic data, obtaining in some cases as much as a two-fold reduction in the amount of data required to reach a given predictive power. Our active stimulation design method is based on a novel active learning procedure for low-rank regression, which may be of independent interest.","url_abs":"https://arxiv.org/abs/2412.02529v4","url_pdf":"https://arxiv.org/pdf/2412.02529v4.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":[],"tasks":[{"task_slug":"active-learning","task_name":"Active Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2412.02529","atlas_url":"https://app.syntology.ai/?focus=2412.02529","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2412.02529"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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":"deterministic:regex_extraction","url":"https://github.com/MouseLand/suite2p","reach":{"status":"ok","spdx":"GPL-3.0"}}],"summary":{"unverified":15},"by_repo_kind":{"found_in_text":{"samples":15,"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":15,"samples":[{"code_sha256_prefix":"d04d50efd6cd828e","entry":"add_args","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/__main__.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/__main__.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"d04d50efd6cd828e"}},{"code_sha256_prefix":"7ebba07024ed376d","entry":"add_descriptions","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/parameters.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/parameters.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"7ebba07024ed376d"}},{"code_sha256_prefix":"1901e04637145fb3","entry":"classify","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/classification/classify.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/classification/classify.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"1901e04637145fb3"}},{"code_sha256_prefix":"d9b781126dca3894","entry":"correct_bleedthrough","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/detection/chan2detect.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/detection/chan2detect.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"d9b781126dca3894"}},{"code_sha256_prefix":"34e123d4b54cceb3","entry":"default_dict","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/parameters.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/parameters.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"34e123d4b54cceb3"}},{"code_sha256_prefix":"2fac14ef3ae3137a","entry":"generate_markdown","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/generate_settings_docs.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/generate_settings_docs.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"2fac14ef3ae3137a"}},{"code_sha256_prefix":"b22f2c4c58e443ee","entry":"generate_table","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/generate_settings_docs.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/generate_settings_docs.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"b22f2c4c58e443ee"}},{"code_sha256_prefix":"1ee60a51137f886b","entry":"generate_table_for_nested_dict","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/generate_settings_docs.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/generate_settings_docs.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"1ee60a51137f886b"}},{"code_sha256_prefix":"3f9bb61ff0414037","entry":"get_save_folder","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/run_s2p.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/run_s2p.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"3f9bb61ff0414037"}},{"code_sha256_prefix":"9590c8d4a71fb093","entry":"intensity_ratio","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/detection/chan2detect.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/detection/chan2detect.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"9590c8d4a71fb093"}},{"code_sha256_prefix":"18ca816088a1927f","entry":"mask_centers","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/detection/anatomical.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/detection/anatomical.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"18ca816088a1927f"}},{"code_sha256_prefix":"e71bec6130f70c7a","entry":"mask_stats","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/detection/anatomical.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/detection/anatomical.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"e71bec6130f70c7a"}},{"code_sha256_prefix":"6d9a24296b154f2e","entry":"quadrant_mask","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/detection/chan2detect.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/detection/chan2detect.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6d9a24296b154f2e"}},{"code_sha256_prefix":"5f020a369dd4c5be","entry":"roi_detect","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/detection/anatomical.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/detection/anatomical.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"5f020a369dd4c5be"}},{"code_sha256_prefix":"ec8530461cdf318a","entry":"run_plane","repo":"MouseLand/suite2p","repo_kind":"found_in_text","path":"suite2p/run_s2p.py","file_url":"https://github.com/MouseLand/suite2p/blob/HEAD/suite2p/run_s2p.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"ec8530461cdf318a"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}