{"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/janus-parallel-tempered-genetic-algorithm","title":"JANUS: Parallel Tempered Genetic Algorithm Guided by Deep Neural Networks for Inverse Molecular Design","arxiv_id":"2106.04011","date":"2021-06-07","proceeding":null,"authors":["AkshatKumar Nigam","Robert Pollice","Alan Aspuru-Guzik"],"abstract":"Inverse molecular design, i.e., designing molecules with specific target properties, can be posed as an optimization problem. High-dimensional optimization tasks in the natural sciences are commonly tackled via population-based metaheuristic optimization algorithms such as evolutionary algorithms. However, expensive property evaluation, which is often required, can limit the widespread use of such approaches as the associated cost can become prohibitive. Herein, we present JANUS, a genetic algorithm that is inspired by parallel tempering. It propagates two populations, one for exploration and another for exploitation, improving optimization by reducing expensive property evaluations. Additionally, JANUS is augmented by a deep neural network that approximates molecular properties via active learning for enhanced sampling of the chemical space. Our method uses the SELFIES molecular representation and the STONED algorithm for the efficient generation of structures, and outperforms other generative models in common inverse molecular design tasks achieving state-of-the-art performance.","url_abs":"https://arxiv.org/abs/2106.04011v2","url_pdf":"https://arxiv.org/pdf/2106.04011v2.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":"janus-parallel-tempered-genetic-algorithm","repo_url":"https://github.com/aspuru-guzik-group/janus","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"active-learning","task_name":"Active Learning"},{"task_slug":"evolutionary-algorithms","task_name":"Evolutionary Algorithms"},{"task_slug":"metaheuristic-optimization","task_name":"Metaheuristic Optimization"},{"task_slug":"molecular-representation","task_name":"molecular representation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2106.04011","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2106.04011"}},"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/aspuru-guzik-group/janus","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran":1,"unverified":3},"by_repo_kind":{"official":{"samples":4,"ran":1,"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":"3e00ba37467a39b3","entry":"get_device","repo":"aspuru-guzik-group/janus","repo_kind":"official","path":"src/janus/network.py","file_url":"https://github.com/aspuru-guzik-group/janus/blob/HEAD/src/janus/network.py","link_basis":"plan_row","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3e00ba37467a39b3"}},{"code_sha256_prefix":"1257979c9fb38df8","entry":"get_bond_indeces","repo":"aspuru-guzik-group/janus","repo_kind":"official","path":"src/janus/features.py","file_url":"https://github.com/aspuru-guzik-group/janus/blob/HEAD/src/janus/features.py","link_basis":"plan_row","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1257979c9fb38df8"}},{"code_sha256_prefix":"1db94f889b29ea38","entry":"get_mol_feature","repo":"aspuru-guzik-group/janus","repo_kind":"official","path":"src/janus/network.py","file_url":"https://github.com/aspuru-guzik-group/janus/blob/HEAD/src/janus/network.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1db94f889b29ea38"}},{"code_sha256_prefix":"e3577c72f978f9e3","entry":"obtain_features","repo":"aspuru-guzik-group/janus","repo_kind":"official","path":"src/janus/network.py","file_url":"https://github.com/aspuru-guzik-group/janus/blob/HEAD/src/janus/network.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e3577c72f978f9e3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}