{"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/generating-multi-modal-and-multi-attribute","title":"Multi-Modal and Multi-Attribute Generation of Single Cells with CFGen","arxiv_id":"2407.11734","date":"2024-07-16","proceeding":null,"authors":["Alessandro Palma","Till Richter","Hanyi Zhang","Manuel Lubetzki","Alexander Tong","Andrea Dittadi","Fabian Theis"],"abstract":"Generative modeling of single-cell RNA-seq data is crucial for tasks like trajectory inference, batch effect removal, and simulation of realistic cellular data. However, recent deep generative models simulating synthetic single cells from noise operate on pre-processed continuous gene expression approximations, overlooking the discrete nature of single-cell data, which limits their effectiveness and hinders the incorporation of robust noise models. Additionally, aspects like controllable multi-modal and multi-label generation of cellular data remain underexplored. This work introduces CellFlow for Generation (CFGen), a flow-based conditional generative model that preserves the inherent discreteness of single-cell data. CFGen generates whole-genome multi-modal single-cell data reliably, improving the recovery of crucial biological data characteristics while tackling relevant generative tasks such as rare cell type augmentation and batch correction. We also introduce a novel framework for compositional data generation using Flow Matching. By showcasing CFGen on a diverse set of biological datasets and settings, we provide evidence of its value to the fields of computational biology and deep generative models.","url_abs":"https://arxiv.org/abs/2407.11734v2","url_pdf":"https://arxiv.org/pdf/2407.11734v2.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":"generating-multi-modal-and-multi-attribute","repo_url":"https://github.com/theislab/CFGen","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"attribute","task_name":"Attribute"},{"task_slug":"data-augmentation","task_name":"Data Augmentation"}],"methods":[{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2407.11734","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2407.11734"}},"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/theislab/CFGen","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":4,"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"official":{"samples":7,"ran":5,"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":"6e6ba2d3fe1b0791","entry":"compute_pairwise_distance","repo":"theislab/CFGen","repo_kind":"official","path":"cfgen/eval/distribution_distances.py","file_url":"https://github.com/theislab/CFGen/blob/HEAD/cfgen/eval/distribution_distances.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6e6ba2d3fe1b0791"}},{"code_sha256_prefix":"280348f666658113","entry":"get_kth_value","repo":"theislab/CFGen","repo_kind":"official","path":"cfgen/eval/distribution_distances.py","file_url":"https://github.com/theislab/CFGen/blob/HEAD/cfgen/eval/distribution_distances.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"280348f666658113"}},{"code_sha256_prefix":"bb890357a4a87c70","entry":"linear_mmd2","repo":"theislab/CFGen","repo_kind":"official","path":"cfgen/eval/mmd.py","file_url":"https://github.com/theislab/CFGen/blob/HEAD/cfgen/eval/mmd.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bb890357a4a87c70"}},{"code_sha256_prefix":"661038d37be136e9","entry":"mix_rbf_mmd2","repo":"theislab/CFGen","repo_kind":"official","path":"cfgen/eval/mmd.py","file_url":"https://github.com/theislab/CFGen/blob/HEAD/cfgen/eval/mmd.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"661038d37be136e9"}},{"code_sha256_prefix":"9970f30509d9c6ff","entry":"poly_mmd2","repo":"theislab/CFGen","repo_kind":"official","path":"cfgen/eval/mmd.py","file_url":"https://github.com/theislab/CFGen/blob/HEAD/cfgen/eval/mmd.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9970f30509d9c6ff"}},{"code_sha256_prefix":"370a184a7bada287","entry":"process_labels","repo":"theislab/CFGen","repo_kind":"official","path":"cfgen/eval/compute_evaluation_metrics.py","file_url":"https://github.com/theislab/CFGen/blob/HEAD/cfgen/eval/compute_evaluation_metrics.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":"370a184a7bada287"}},{"code_sha256_prefix":"32f49750b3c8c6fc","entry":"wasserstein","repo":"theislab/CFGen","repo_kind":"official","path":"cfgen/eval/optimal_transport.py","file_url":"https://github.com/theislab/CFGen/blob/HEAD/cfgen/eval/optimal_transport.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":"32f49750b3c8c6fc"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}