{"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/codonmpnn-for-organism-specific-and-codon","title":"CodonMPNN for Organism Specific and Codon Optimal Inverse Folding","arxiv_id":"2409.17265","date":"2024-09-25","proceeding":null,"authors":["Hannes Stark","Umesh Padia","Julia Balla","Cameron Diao","George Church"],"abstract":"Generating protein sequences conditioned on protein structures is an impactful technique for protein engineering. When synthesizing engineered proteins, they are commonly translated into DNA and expressed in an organism such as yeast. One difficulty in this process is that the expression rates can be low due to suboptimal codon sequences for expressing a protein in a host organism. We propose CodonMPNN, which generates a codon sequence conditioned on a protein backbone structure and an organism label. If naturally occurring DNA sequences are close to codon optimality, CodonMPNN could learn to generate codon sequences with higher expression yields than heuristic codon choices for generated amino acid sequences. Experiments show that CodonMPNN retains the performance of previous inverse folding approaches and recovers wild-type codons more frequently than baselines. Furthermore, CodonMPNN has a higher likelihood of generating high-fitness codon sequences than low-fitness codon sequences for the same protein sequence. Code is available at https://github.com/HannesStark/CodonMPNN.","url_abs":"https://arxiv.org/abs/2409.17265v1","url_pdf":"https://arxiv.org/pdf/2409.17265v1.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":"codonmpnn-for-organism-specific-and-codon","repo_url":"https://github.com/hannesstark/codonmpnn","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2409.17265","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2409.17265"}},"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":"deterministic:regex_extraction","url":"https://github.com/HannesStark/CodonMPNN","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/hannesstark/codonmpnn","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_fixture":3,"ran":6,"ran_draft_wrong":1,"unverified":2},"by_repo_kind":{"official":{"samples":12,"ran":10,"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":"ee91093a4bcd2f9f","entry":"gather_edges","repo":"HannesStark/CodonMPNN","repo_kind":"official","path":"codon/utils/pmpnn.py","file_url":"https://github.com/HannesStark/CodonMPNN/blob/HEAD/codon/utils/pmpnn.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ee91093a4bcd2f9f"}},{"code_sha256_prefix":"d1e5df8af4e52e48","entry":"gather_log","repo":"hannesstark/codonmpnn","repo_kind":"official","path":"codon/wrapper.py","file_url":"https://github.com/hannesstark/codonmpnn/blob/HEAD/codon/wrapper.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":"d1e5df8af4e52e48"}},{"code_sha256_prefix":"2b89e352a944b025","entry":"gather_nodes","repo":"HannesStark/CodonMPNN","repo_kind":"official","path":"codon/utils/pmpnn.py","file_url":"https://github.com/HannesStark/CodonMPNN/blob/HEAD/codon/utils/pmpnn.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"2b89e352a944b025"}},{"code_sha256_prefix":"77cd7ee3a9fa2105","entry":"gather_nodes","repo":"hannesstark/codonmpnn","repo_kind":"official","path":"codon/utils/pmpnn.py","file_url":"https://github.com/hannesstark/codonmpnn/blob/HEAD/codon/utils/pmpnn.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"77cd7ee3a9fa2105"}},{"code_sha256_prefix":"80c136deefde6bce","entry":"get_aligned_rmsd","repo":"hannesstark/codonmpnn","repo_kind":"official","path":"codon/utils/foldability_utils.py","file_url":"https://github.com/hannesstark/codonmpnn/blob/HEAD/codon/utils/foldability_utils.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":"80c136deefde6bce"}},{"code_sha256_prefix":"6d7a23db92232fe7","entry":"get_log_mean","repo":"hannesstark/codonmpnn","repo_kind":"official","path":"codon/wrapper.py","file_url":"https://github.com/hannesstark/codonmpnn/blob/HEAD/codon/wrapper.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":"6d7a23db92232fe7"}},{"code_sha256_prefix":"e066a651617bbd2d","entry":"get_weird_pmpnn_stuff","repo":"HannesStark/CodonMPNN","repo_kind":"official","path":"codon/utils/pmpnn.py","file_url":"https://github.com/HannesStark/CodonMPNN/blob/HEAD/codon/utils/pmpnn.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e066a651617bbd2d"}},{"code_sha256_prefix":"c7d3a02c3dc97e6a","entry":"get_weird_pmpnn_stuff","repo":"hannesstark/codonmpnn","repo_kind":"official","path":"codon/utils/pmpnn.py","file_url":"https://github.com/hannesstark/codonmpnn/blob/HEAD/codon/utils/pmpnn.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":"c7d3a02c3dc97e6a"}},{"code_sha256_prefix":"5693967e08c16256","entry":"multi_seq_collate","repo":"hannesstark/codonmpnn","repo_kind":"official","path":"codon/datasets.py","file_url":"https://github.com/hannesstark/codonmpnn/blob/HEAD/codon/datasets.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":"5693967e08c16256"}},{"code_sha256_prefix":"76963c496a2e0091","entry":"seq_collate","repo":"hannesstark/codonmpnn","repo_kind":"official","path":"codon/datasets.py","file_url":"https://github.com/hannesstark/codonmpnn/blob/HEAD/codon/datasets.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":"76963c496a2e0091"}},{"code_sha256_prefix":"ae83abf1a9db1e77","entry":"gather_edges","repo":"hannesstark/codonmpnn","repo_kind":"official","path":"codon/utils/pmpnn.py","file_url":"https://github.com/hannesstark/codonmpnn/blob/HEAD/codon/utils/pmpnn.py","link_basis":"plan_row","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":"ae83abf1a9db1e77"}},{"code_sha256_prefix":"ec9a324c17c1d5ce","entry":"get_logger","repo":"hannesstark/codonmpnn","repo_kind":"official","path":"codon/utils/logging.py","file_url":"https://github.com/hannesstark/codonmpnn/blob/HEAD/codon/utils/logging.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":"ec9a324c17c1d5ce"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}