{"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/mutagan-a-seq2seq-gan-framework-to-predict","title":"MutaGAN: A Seq2seq GAN Framework to Predict Mutations of Evolving Protein Populations","arxiv_id":"2008.11790","date":"2020-08-26","proceeding":null,"authors":["Daniel S. Berman","Craig Howser","Thomas Mehoke","Jared D. Evans"],"abstract":"The ability to predict the evolution of a pathogen would significantly improve the ability to control, prevent, and treat disease. Despite significant progress in other problem spaces, deep learning has yet to contribute to the issue of predicting mutations of evolving populations. To address this gap, we developed a novel machine learning framework using generative adversarial networks (GANs) with recurrent neural networks (RNNs) to accurately predict genetic mutations and evolution of future biological populations. Using a generalized time-reversible phylogenetic model of protein evolution with bootstrapped maximum likelihood tree estimation, we trained a sequence-to-sequence generator within an adversarial framework, named MutaGAN, to generate complete protein sequences augmented with possible mutations of future virus populations. Influenza virus sequences were identified as an ideal test case for this deep learning framework because it is a significant human pathogen with new strains emerging annually and global surveillance efforts have generated a large amount of publicly available data from the National Center for Biotechnology Information's (NCBI) Influenza Virus Resource (IVR). MutaGAN generated \"child\" sequences from a given \"parent\" protein sequence with a median Levenshtein distance of 2.00 amino acids. Additionally, the generator was able to augment the majority of parent proteins with at least one mutation identified within the global influenza virus population. These results demonstrate the power of the MutaGAN framework to aid in pathogen forecasting with implications for broad utility in evolutionary prediction for any protein population.","url_abs":"https://arxiv.org/abs/2008.11790v1","url_pdf":"https://arxiv.org/pdf/2008.11790v1.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":"mutagan-a-seq2seq-gan-framework-to-predict","repo_url":"https://github.com/1hachem/mutaGAN","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"mutagan-a-seq2seq-gan-framework-to-predict","repo_url":"https://github.com/anuprulez/clade_prediction","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2008.11790","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2008.11790"}},"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/1hachem/mutaGAN","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/anuprulez/clade_prediction","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":18},"by_repo_kind":{"listed":{"samples":18,"ran":0,"repositories":2}},"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":"a179307e89c155b9","entry":"call","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"encoder_decoder_attention.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/encoder_decoder_attention.py","link_basis":"harvester_set","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":"a179307e89c155b9"}},{"code_sha256_prefix":"9b7e2102240fb4e1","entry":"combine_mutation","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"fetch_clades_mutations.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/fetch_clades_mutations.py","link_basis":"harvester_set","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":"9b7e2102240fb4e1"}},{"code_sha256_prefix":"81574ebc24b4093d","entry":"compare_mutations","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"comparison_with_wuhan.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/comparison_with_wuhan.py","link_basis":"harvester_set","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":"81574ebc24b4093d"}},{"code_sha256_prefix":"71684890ef30c730","entry":"create_pf_model","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"neural_network.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/neural_network.py","link_basis":"harvester_set","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":"71684890ef30c730"}},{"code_sha256_prefix":"ded44dd1ac77a10e","entry":"discriminator_loss","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"train_model.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/train_model.py","link_basis":"harvester_set","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":"ded44dd1ac77a10e"}},{"code_sha256_prefix":"694eab49f2d16df0","entry":"generator_loss","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"train_model.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/train_model.py","link_basis":"harvester_set","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":"694eab49f2d16df0"}},{"code_sha256_prefix":"e467f7788d72a508","entry":"get_POS","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"common_mut_tr_gen.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/common_mut_tr_gen.py","link_basis":"harvester_set","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":"e467f7788d72a508"}},{"code_sha256_prefix":"d9835f90f03c1b68","entry":"get_frac_seq_mat","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"create_plots.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/create_plots.py","link_basis":"harvester_set","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":"d9835f90f03c1b68"}},{"code_sha256_prefix":"d07b5ad7e24e5427","entry":"get_item","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"fetch_clades_mutations.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/fetch_clades_mutations.py","link_basis":"harvester_set","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":"d07b5ad7e24e5427"}},{"code_sha256_prefix":"8e9ecf5dfc8df936","entry":"get_path_all_gen_files","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"analyse_generated_seqs.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/analyse_generated_seqs.py","link_basis":"harvester_set","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":"8e9ecf5dfc8df936"}},{"code_sha256_prefix":"2af3d0d3b56301ba","entry":"get_vocab","repo":"1hachem/mutaGAN","repo_kind":"listed","path":"src/encode.py","file_url":"https://github.com/1hachem/mutaGAN/blob/HEAD/src/encode.py","link_basis":"harvester_set","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":"2af3d0d3b56301ba"}},{"code_sha256_prefix":"a89a1950be074cac","entry":"make_disc_par_gen_model","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"neural_network.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/neural_network.py","link_basis":"harvester_set","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":"a89a1950be074cac"}},{"code_sha256_prefix":"df9c791b35996ec0","entry":"make_generator_model","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"neural_network.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/neural_network.py","link_basis":"harvester_set","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":"df9c791b35996ec0"}},{"code_sha256_prefix":"dc880616a10bffc7","entry":"read_json","repo":"1hachem/mutaGAN","repo_kind":"listed","path":"utils/utils.py","file_url":"https://github.com/1hachem/mutaGAN/blob/HEAD/utils/utils.py","link_basis":"harvester_set","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":"dc880616a10bffc7"}},{"code_sha256_prefix":"b2ab6cedad111e4d","entry":"read_json","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"comparison_with_wuhan.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/comparison_with_wuhan.py","link_basis":"harvester_set","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":"b2ab6cedad111e4d"}},{"code_sha256_prefix":"2eff351d33712372","entry":"read_wuhan_hu_1_spike","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"comparison_with_wuhan.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/comparison_with_wuhan.py","link_basis":"harvester_set","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":"2eff351d33712372"}},{"code_sha256_prefix":"b5bcb33681468538","entry":"recursive_branch","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"fetch_clades_mutations.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/fetch_clades_mutations.py","link_basis":"harvester_set","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":"b5bcb33681468538"}},{"code_sha256_prefix":"0dea6a4fd298ee87","entry":"wasserstein_loss","repo":"anuprulez/clade_prediction","repo_kind":"listed","path":"train_model.py","file_url":"https://github.com/anuprulez/clade_prediction/blob/HEAD/train_model.py","link_basis":"harvester_set","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":"0dea6a4fd298ee87"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}