{"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/multi-marginal-schrodinger-bridges-with","title":"Multi-marginal Schrödinger Bridges with Iterative Reference Refinement","arxiv_id":"2408.06277","date":"2024-08-12","proceeding":null,"authors":["Yunyi Shen","Renato Berlinghieri","Tamara Broderick"],"abstract":"Practitioners often aim to infer an unobserved population trajectory using sample snapshots at multiple time points. E.g., given single-cell sequencing data, scientists would like to learn how gene expression changes over a cell's life cycle. But sequencing any cell destroys that cell. So we can access data for any particular cell only at a single time point, but we have data across many cells. The deep learning community has recently explored using Schr\\\"odinger bridges (SBs) and their extensions in similar settings. However, existing methods either (1) interpolate between just two time points or (2) require a single fixed reference dynamic (often set to Brownian motion within SBs). But learning piecewise from adjacent time points can fail to capture long-term dependencies. And practitioners are typically able to specify a model family for the reference dynamic but not the exact values of the parameters within it. So we propose a new method that (1) learns the unobserved trajectories from sample snapshots across multiple time points and (2) requires specification only of a family of reference dynamics, not a single fixed one. We demonstrate the advantages of our method on simulated and real data.","url_abs":"https://arxiv.org/abs/2408.06277v4","url_pdf":"https://arxiv.org/pdf/2408.06277v4.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":"multi-marginal-schrodinger-bridges-with","repo_url":"https://github.com/YunyiShen/SBIRR","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[],"methods":[{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2408.06277","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2408.06277"}},"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/YunyiShen/SBIRR","reach":{"status":"ok"}}],"summary":{"ran":5,"ran_violates":1,"unverified":2},"by_repo_kind":{"official":{"samples":8,"ran":6,"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":8,"samples":[{"code_sha256_prefix":"52f20840a665f5a3","entry":"get_size_to_live_tensors","repo":"YunyiShen/SBIRR","repo_kind":"official","path":"package/SBIRR/mem_utils.py","file_url":"https://github.com/YunyiShen/SBIRR/blob/HEAD/package/SBIRR/mem_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"52f20840a665f5a3"}},{"code_sha256_prefix":"6d5acfb0087d1ee7","entry":"prod","repo":"YunyiShen/SBIRR","repo_kind":"official","path":"package/SBIRR/mem_utils.py","file_url":"https://github.com/YunyiShen/SBIRR/blob/HEAD/package/SBIRR/mem_utils.py","link_basis":"plan_row","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"well_formed","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6d5acfb0087d1ee7"}},{"code_sha256_prefix":"8924c0af3b27df7b","entry":"sizeof_fmt","repo":"YunyiShen/SBIRR","repo_kind":"official","path":"package/SBIRR/mem_utils.py","file_url":"https://github.com/YunyiShen/SBIRR/blob/HEAD/package/SBIRR/mem_utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8924c0af3b27df7b"}},{"code_sha256_prefix":"7f2d2f88dee95708","entry":"train_nn","repo":"YunyiShen/SBIRR","repo_kind":"official","path":"package/SBIRR/NN.py","file_url":"https://github.com/YunyiShen/SBIRR/blob/HEAD/package/SBIRR/NN.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7f2d2f88dee95708"}},{"code_sha256_prefix":"4a73bf965b924b8e","entry":"train_nn","repo":"YunyiShen/SBIRR","repo_kind":"official","path":"package/SBIRR/gradient_field_NN.py","file_url":"https://github.com/YunyiShen/SBIRR/blob/HEAD/package/SBIRR/gradient_field_NN.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4a73bf965b924b8e"}},{"code_sha256_prefix":"ed07714df265d383","entry":"train_nn_gradient","repo":"YunyiShen/SBIRR","repo_kind":"official","path":"package/SBIRR/gradient_field_NN.py","file_url":"https://github.com/YunyiShen/SBIRR/blob/HEAD/package/SBIRR/gradient_field_NN.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ed07714df265d383"}},{"code_sha256_prefix":"f0aeb58900ab20ae","entry":"plot_trajectories_2","repo":"YunyiShen/SBIRR","repo_kind":"official","path":"package/SBIRR/utils.py","file_url":"https://github.com/YunyiShen/SBIRR/blob/HEAD/package/SBIRR/utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f0aeb58900ab20ae"}},{"code_sha256_prefix":"36edfcc3e2a05cbd","entry":"solve_sde_RK","repo":"YunyiShen/SBIRR","repo_kind":"official","path":"package/SBIRR/SDE_solver.py","file_url":"https://github.com/YunyiShen/SBIRR/blob/HEAD/package/SBIRR/SDE_solver.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"36edfcc3e2a05cbd"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}