{"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/arxiv-2607-19083","title":"GEqTrain: A Configuration-Driven Framework for Retargeting Equivariant Graph Neural Networks Across 3D Scientific Tasks","arxiv_id":"2607.19083","date":"2026-07-21","proceeding":null,"authors":["Daniele Angioletti","Marco Nobile","Vittorio Limongelli"],"abstract":"Equivariant graph neural networks provide a powerful modeling language for three-dimensional scientific data, but their reuse is often limited by implementations tied to specific tasks, outputs, and training regimes. We present GEqTrain, a configuration-driven framework that separates dataset semantics, model composition, and training objectives. Raw data are mapped to typed node-, edge-, and graph-level fields, while model stacks, losses, and training workflows are assembled declaratively through Hydra configurations. A shared equivariant backbone and training infrastructure can therefore be retargeted to a new task primarily through configuration. We demonstrate this flexibility on three different problems handled within one software stack: coarse-grained-to-atomistic backmapping of biomolecular systems, prediction of NMR chemical shifts in molecular solids, and equivariant generative modeling. Our aim is not to surpass individually optimized task-specific systems, but to show that a shared representation and training infrastructure can achieve competitive accuracy across qualitatively different tasks at the cost of a configuration change. We further introduce GEqDiff, a generative extension based on equivariant flow matching. GEqDiff treats user-defined equivariant fields as first-class generation targets, jointly transporting Cartesian positions and non-scalar node fields spanning representations up to l=3 within a single equivariant flow. We validate this capability on a controlled synthetic benchmark inspired by protein secondary-structure motifs, showing that fields with heterogeneous transformation properties can be reconstructed jointly and with high fidelity. By reducing the software overhead of moving between predictive and generative, scalar and tensorial settings, GEqTrain aims to make equivariant modeling more reproducible, extensible, and reusable.","url_abs":"https://arxiv.org/abs/2607.19083","url_pdf":"https://arxiv.org/pdf/2607.19083","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2607.19083","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2607.19083"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/limresgrp/GEqTrain","reach":null},{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/limresgrp/HEroBM","reach":null}],"summary":{"ran":11,"unverified":1},"by_repo_kind":{"found_in_text":{"samples":12,"ran":11,"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":"6b8b0eb713532e4a","entry":"Rx","repo":"limresgrp/HEroBM","repo_kind":"found_in_text","path":"herobm/utils/geometry.py","file_url":"https://github.com/limresgrp/HEroBM/blob/HEAD/herobm/utils/geometry.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":"6b8b0eb713532e4a"}},{"code_sha256_prefix":"951eac29355e2ecb","entry":"Ry","repo":"limresgrp/HEroBM","repo_kind":"found_in_text","path":"herobm/utils/geometry.py","file_url":"https://github.com/limresgrp/HEroBM/blob/HEAD/herobm/utils/geometry.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":"951eac29355e2ecb"}},{"code_sha256_prefix":"9941099a1fcab677","entry":"Rz","repo":"limresgrp/HEroBM","repo_kind":"found_in_text","path":"herobm/utils/geometry.py","file_url":"https://github.com/limresgrp/HEroBM/blob/HEAD/herobm/utils/geometry.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":"9941099a1fcab677"}},{"code_sha256_prefix":"93770f571e2ac2d5","entry":"add_suffix","repo":"limresgrp/GEqTrain","repo_kind":"found_in_text","path":"geqtrain/model/_build.py","file_url":"https://github.com/limresgrp/GEqTrain/blob/HEAD/geqtrain/model/_build.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":"93770f571e2ac2d5"}},{"code_sha256_prefix":"990b33dfeee0113e","entry":"cat_interleave","repo":"limresgrp/HEroBM","repo_kind":"found_in_text","path":"herobm/utils/backbone.py","file_url":"https://github.com/limresgrp/HEroBM/blob/HEAD/herobm/utils/backbone.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":"990b33dfeee0113e"}},{"code_sha256_prefix":"e260cca689001022","entry":"close_gaps","repo":"limresgrp/HEroBM","repo_kind":"found_in_text","path":"herobm/backmapping/hierarchical_backmapping.py","file_url":"https://github.com/limresgrp/HEroBM/blob/HEAD/herobm/backmapping/hierarchical_backmapping.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":"e260cca689001022"}},{"code_sha256_prefix":"d7157b9ddb0fabbe","entry":"list2maskedarray","repo":"limresgrp/HEroBM","repo_kind":"found_in_text","path":"herobm/mapper/hierarchical_mapper.py","file_url":"https://github.com/limresgrp/HEroBM/blob/HEAD/herobm/mapper/hierarchical_mapper.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":"d7157b9ddb0fabbe"}},{"code_sha256_prefix":"81dd09f5d9856e2d","entry":"normalise","repo":"limresgrp/HEroBM","repo_kind":"found_in_text","path":"herobm/utils/analysis.py","file_url":"https://github.com/limresgrp/HEroBM/blob/HEAD/herobm/utils/analysis.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":"81dd09f5d9856e2d"}},{"code_sha256_prefix":"91ace5ed446f6bab","entry":"parse_model_builders","repo":"limresgrp/GEqTrain","repo_kind":"found_in_text","path":"geqtrain/model/_build.py","file_url":"https://github.com/limresgrp/GEqTrain/blob/HEAD/geqtrain/model/_build.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":"91ace5ed446f6bab"}},{"code_sha256_prefix":"72e9a263eb79e874","entry":"plot_rama_janin","repo":"limresgrp/HEroBM","repo_kind":"found_in_text","path":"herobm/utils/analysis.py","file_url":"https://github.com/limresgrp/HEroBM/blob/HEAD/herobm/utils/analysis.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":"72e9a263eb79e874"}},{"code_sha256_prefix":"f823339d74f0b2d3","entry":"remove_suffix","repo":"limresgrp/GEqTrain","repo_kind":"found_in_text","path":"geqtrain/model/_build.py","file_url":"https://github.com/limresgrp/GEqTrain/blob/HEAD/geqtrain/model/_build.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":"f823339d74f0b2d3"}},{"code_sha256_prefix":"45bcf6d412c9c884","entry":"minimize_bead_distances","repo":"limresgrp/HEroBM","repo_kind":"found_in_text","path":"herobm/backmapping/minimize_cg.py","file_url":"https://github.com/limresgrp/HEroBM/blob/HEAD/herobm/backmapping/minimize_cg.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":"45bcf6d412c9c884"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}