{"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/publishing-neural-networks-in-drug-discovery","title":"Publishing Neural Networks in Drug Discovery Might Compromise Training Data Privacy","arxiv_id":"2410.16975","date":"2024-10-22","proceeding":null,"authors":["Fabian P. Krüger","Johan Östman","Lewis Mervin","Igor V. Tetko","Ola Engkvist"],"abstract":"This study investigates the risks of exposing confidential chemical structures when machine learning models trained on these structures are made publicly available. We use membership inference attacks, a common method to assess privacy that is largely unexplored in the context of drug discovery, to examine neural networks for molecular property prediction in a black-box setting. Our results reveal significant privacy risks across all evaluated datasets and neural network architectures. Combining multiple attacks increases these risks. Molecules from minority classes, often the most valuable in drug discovery, are particularly vulnerable. We also found that representing molecules as graphs and using message-passing neural networks may mitigate these risks. We provide a framework to assess privacy risks of classification models and molecular representations. Our findings highlight the need for careful consideration when sharing neural networks trained on proprietary chemical structures, informing organisations and researchers about the trade-offs between data confidentiality and model openness.","url_abs":"https://arxiv.org/abs/2410.16975v1","url_pdf":"https://arxiv.org/pdf/2410.16975v1.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":"publishing-neural-networks-in-drug-discovery","repo_url":"https://github.com/aidotse/leakpro","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"publishing-neural-networks-in-drug-discovery","repo_url":"https://github.com/fabiankruger/molprivacy","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"drug-discovery","task_name":"Drug Discovery"},{"task_slug":"molecular-property-prediction","task_name":"Molecular Property Prediction"},{"task_slug":"property-prediction","task_name":"Property Prediction"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2410.16975","atlas_url":"https://app.syntology.ai/?focus=2410.16975","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.16975"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/aidotse/leakpro","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/fabiankruger/molprivacy","reach":null}],"summary":{"ran_draft_wrong":1,"unverified":6},"by_repo_kind":{"official":{"samples":7,"ran":1,"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":6,"samples":[{"code_sha256_prefix":"d794cf5be250c358","entry":"setup_log","repo":"fabiankruger/molprivacy","repo_kind":"official","path":"src/leakpro/__main__.py","file_url":"https://github.com/fabiankruger/molprivacy/blob/HEAD/src/leakpro/__main__.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d794cf5be250c358"}},{"code_sha256_prefix":"40e19414623504e2","entry":"cross_entropy_loss","repo":"aidotse/leakpro","repo_kind":"official","path":"leakpro/attacks/utils/gan_losses.py","file_url":"https://github.com/aidotse/leakpro/blob/HEAD/leakpro/attacks/utils/gan_losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"40e19414623504e2"}},{"code_sha256_prefix":"410c4f802ef3963a","entry":"get_meanstd","repo":"aidotse/leakpro","repo_kind":"official","path":"leakpro/fl_utils/data_utils.py","file_url":"https://github.com/aidotse/leakpro/blob/HEAD/leakpro/fl_utils/data_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"410c4f802ef3963a"}},{"code_sha256_prefix":"4c7619cd6dc56029","entry":"get_used_tokens","repo":"aidotse/leakpro","repo_kind":"official","path":"leakpro/fl_utils/data_utils.py","file_url":"https://github.com/aidotse/leakpro/blob/HEAD/leakpro/fl_utils/data_utils.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"4c7619cd6dc56029"}},{"code_sha256_prefix":"082f8511f888c815","entry":"max_margin_loss","repo":"aidotse/leakpro","repo_kind":"official","path":"leakpro/attacks/utils/gan_losses.py","file_url":"https://github.com/aidotse/leakpro/blob/HEAD/leakpro/attacks/utils/gan_losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"082f8511f888c815"}},{"code_sha256_prefix":"d97c476db8f72120","entry":"poincare_loss","repo":"aidotse/leakpro","repo_kind":"official","path":"leakpro/attacks/utils/gan_losses.py","file_url":"https://github.com/aidotse/leakpro/blob/HEAD/leakpro/attacks/utils/gan_losses.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"d97c476db8f72120"}},{"code_sha256_prefix":"34ef863b49266b87","entry":"singleton","repo":"aidotse/leakpro","repo_kind":"official","path":"leakpro/attacks/utils/distillation_model_handler.py","file_url":"https://github.com/aidotse/leakpro/blob/HEAD/leakpro/attacks/utils/distillation_model_handler.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"34ef863b49266b87"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}