{"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/periodic-graph-transformers-for-crystal","title":"Periodic Graph Transformers for Crystal Material Property Prediction","arxiv_id":"2209.11807","date":"2022-09-23","proceeding":null,"authors":["Keqiang Yan","Yi Liu","Yuchao Lin","Shuiwang Ji"],"abstract":"We consider representation learning on periodic graphs encoding crystal materials. Different from regular graphs, periodic graphs consist of a minimum unit cell repeating itself on a regular lattice in 3D space. How to effectively encode these periodic structures poses unique challenges not present in regular graph representation learning. In addition to being E(3) invariant, periodic graph representations need to be periodic invariant. That is, the learned representations should be invariant to shifts of cell boundaries as they are artificially imposed. Furthermore, the periodic repeating patterns need to be captured explicitly as lattices of different sizes and orientations may correspond to different materials. In this work, we propose a transformer architecture, known as Matformer, for periodic graph representation learning. Our Matformer is designed to be invariant to periodicity and can capture repeating patterns explicitly. In particular, Matformer encodes periodic patterns by efficient use of geometric distances between the same atoms in neighboring cells. Experimental results on multiple common benchmark datasets show that our Matformer outperforms baseline methods consistently. In addition, our results demonstrate the importance of periodic invariance and explicit repeating pattern encoding for crystal representation learning.","url_abs":"https://arxiv.org/abs/2209.11807v1","url_pdf":"https://arxiv.org/pdf/2209.11807v1.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":"periodic-graph-transformers-for-crystal","repo_url":"https://github.com/YKQ98/Matformer","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"periodic-graph-transformers-for-crystal","repo_url":"https://github.com/divelab/AIRS","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"band-gap","task_name":"Band Gap"},{"task_slug":"formation-energy","task_name":"Formation Energy"},{"task_slug":"graph-representation-learning","task_name":"Graph Representation Learning"},{"task_slug":"prediction","task_name":"Prediction"},{"task_slug":"property-prediction","task_name":"Property Prediction"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/formation-energy-on-jarvis-dft-formation","task":"Formation Energy","dataset":"JARVIS-DFT","model":"Matformer","rank_in_archive_order":3,"of":6,"metrics":{"MAE":"0.0325"},"uses_additional_data":false},{"leaderboard":"/sota/formation-energy-on-materials-project","task":"Formation Energy","dataset":"Materials Project","model":"Matformer","rank_in_archive_order":3,"of":9,"metrics":{"MAE":"21.2"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2209.11807","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2209.11807"}},"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/divelab/AIRS","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/YKQ98/Matformer","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_honours":2,"ran":2,"unverified":5},"by_repo_kind":{"official":{"samples":9,"ran":4,"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":"4390133ddddf910d","entry":"Jn","repo":"YKQ98/Matformer","repo_kind":"official","path":"matformer/features.py","file_url":"https://github.com/YKQ98/Matformer/blob/HEAD/matformer/features.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4390133ddddf910d"}},{"code_sha256_prefix":"5a3e9439dc4d5004","entry":"Jn_zeros","repo":"YKQ98/Matformer","repo_kind":"official","path":"matformer/features.py","file_url":"https://github.com/YKQ98/Matformer/blob/HEAD/matformer/features.py","link_basis":"harvester_set","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5a3e9439dc4d5004"}},{"code_sha256_prefix":"d1b2a74a34974ac6","entry":"canonize_edge","repo":"YKQ98/Matformer","repo_kind":"official","path":"matformer/graphs.py","file_url":"https://github.com/YKQ98/Matformer/blob/HEAD/matformer/graphs.py","link_basis":"harvester_set","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":"d1b2a74a34974ac6"}},{"code_sha256_prefix":"e6eadb1b107cf34d","entry":"mean_absolute_deviation","repo":"YKQ98/Matformer","repo_kind":"official","path":"matformer/data.py","file_url":"https://github.com/YKQ98/Matformer/blob/HEAD/matformer/data.py","link_basis":"harvester_set","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":"e6eadb1b107cf34d"}},{"code_sha256_prefix":"0c77118a38ced667","entry":"batch_norm","repo":"YKQ98/Matformer","repo_kind":"official","path":"matformer/models/bn_utils.py","file_url":"https://github.com/YKQ98/Matformer/blob/HEAD/matformer/models/bn_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":"0c77118a38ced667"}},{"code_sha256_prefix":"953608cf2f2b8f8a","entry":"nearest_neighbor_edges_submit","repo":"YKQ98/Matformer","repo_kind":"official","path":"matformer/graphs.py","file_url":"https://github.com/YKQ98/Matformer/blob/HEAD/matformer/graphs.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":"953608cf2f2b8f8a"}},{"code_sha256_prefix":"97978a877ea59281","entry":"pair_nearest_neighbor_edges","repo":"YKQ98/Matformer","repo_kind":"official","path":"matformer/graphs.py","file_url":"https://github.com/YKQ98/Matformer/blob/HEAD/matformer/graphs.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":"97978a877ea59281"}},{"code_sha256_prefix":"a9939ef4d5714e20","entry":"plot_learning_curve","repo":"YKQ98/Matformer","repo_kind":"official","path":"matformer/utils.py","file_url":"https://github.com/YKQ98/Matformer/blob/HEAD/matformer/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":"a9939ef4d5714e20"}},{"code_sha256_prefix":"57df77fb25e58be3","entry":"spherical_bessel_formulas","repo":"YKQ98/Matformer","repo_kind":"official","path":"matformer/features.py","file_url":"https://github.com/YKQ98/Matformer/blob/HEAD/matformer/features.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":"57df77fb25e58be3"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}