From 11454194f5210d45197a834777fd50660bfcb4d5 Mon Sep 17 00:00:00 2001 From: Thomas Kemmer Date: Wed, 11 Mar 2026 09:47:44 +0100 Subject: [PATCH 1/2] FragmentDB: add DOD fragment Signed-off-by: Thomas Kemmer --- data/fragmentdb/FragmentDB.json | 1 + data/fragmentdb/fragments/DOD.json | 56 +++++++++++++++++++++++++++ test/preprocessing/test_fragmentdb.jl | 4 +- 3 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 data/fragmentdb/fragments/DOD.json diff --git a/data/fragmentdb/FragmentDB.json b/data/fragmentdb/FragmentDB.json index 0d15a82c..9a438f66 100644 --- a/data/fragmentdb/FragmentDB.json +++ b/data/fragmentdb/FragmentDB.json @@ -28,6 +28,7 @@ "MG": "fragments/MG.json", "ZN": "fragments/ZN.json", "HOH": "fragments/HOH.json", + "DOD": "fragments/DOD.json", "A": "fragments/A.json", "C": "fragments/C.json", "G": "fragments/G.json", diff --git a/data/fragmentdb/fragments/DOD.json b/data/fragmentdb/fragments/DOD.json new file mode 100644 index 00000000..c6b3966d --- /dev/null +++ b/data/fragmentdb/fragments/DOD.json @@ -0,0 +1,56 @@ +{ + "name": "DOD", + "names": [ + "Deuterated water" + ], + "type": "None", + "atoms": [ + { + "name": "O", + "element": "O", + "r": [ + 42.646, + 44.869, + 64.255 + ] + }, + { + "name": "D1", + "element": "H", + "r": [ + 43.596, + 44.869, + 64.255 + ] + }, + { + "name": "D2", + "element": "H", + "r": [ + 42.408, + 44.869, + 65.175 + ] + } + ], + "bonds": [ + { + "number": 1, + "a1": "O", + "a2": "D1", + "order": "Single" + }, + { + "number": 2, + "a1": "O", + "a2": "D2", + "order": "Single" + } + ], + "connections": [], + "variants": [ + { + "name": "DOD" + } + ] +} diff --git a/test/preprocessing/test_fragmentdb.jl b/test/preprocessing/test_fragmentdb.jl index 748233f0..d0825f08 100644 --- a/test/preprocessing/test_fragmentdb.jl +++ b/test/preprocessing/test_fragmentdb.jl @@ -2,7 +2,7 @@ using BiochemicalAlgorithms: get_reference_fragment for fdb in (default_fragmentdb(), FragmentDB(), FragmentDB{Float32}(), FragmentDB{Float64}()) - @test length(fdb.fragments) == 33 + @test length(fdb.fragments) == 34 @test length(fdb.name_mappings) == 6 @test length(fdb.defaults) == 1 @test fdb.defaults["Naming"] == "PDB" @@ -52,7 +52,7 @@ end # show method - @test contains(repr(fdb), "33 fragments") + @test contains(repr(fdb), "34 fragments") end end From 300e763c81a91e4dcc8ba604139c3d96e1a6c524 Mon Sep 17 00:00:00 2001 From: Thomas Kemmer Date: Wed, 11 Mar 2026 09:48:26 +0100 Subject: [PATCH 2/2] FragmentDB: add PO4 fragment Signed-off-by: Thomas Kemmer --- data/fragmentdb/FragmentDB.json | 1 + data/fragmentdb/fragments/PO4.json | 86 +++++++++++++++++++++++++++ test/preprocessing/test_fragmentdb.jl | 4 +- 3 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 data/fragmentdb/fragments/PO4.json diff --git a/data/fragmentdb/FragmentDB.json b/data/fragmentdb/FragmentDB.json index 9a438f66..0ecc583e 100644 --- a/data/fragmentdb/FragmentDB.json +++ b/data/fragmentdb/FragmentDB.json @@ -26,6 +26,7 @@ "NME": "fragments/NME.json", "CA": "fragments/CA.json", "MG": "fragments/MG.json", + "PO4": "fragments/PO4.json", "ZN": "fragments/ZN.json", "HOH": "fragments/HOH.json", "DOD": "fragments/DOD.json", diff --git a/data/fragmentdb/fragments/PO4.json b/data/fragmentdb/fragments/PO4.json new file mode 100644 index 00000000..6201a525 --- /dev/null +++ b/data/fragmentdb/fragments/PO4.json @@ -0,0 +1,86 @@ +{ + "name": "PO4", + "names": [ + "Phosphate ion" + ], + "type": "None", + "atoms": [ + { + "name": "P", + "element": "P", + "r": [ + 0.0, + 0.0, + 0.0 + ] + }, + { + "name": "O1", + "element": "O", + "r": [ + 0.0, + -1.288, + -0.911 + ] + }, + { + "name": "O2", + "element": "O", + "r": [ + 0.0, + 1.288, + -0.911 + ] + }, + { + "name": "O3", + "element": "O", + "r": [ + -1.288, + 0.0, + 0.911 + ] + }, + { + "name": "O4", + "element": "O", + "r": [ + 1.288, + 0.0, + 0.911 + ] + } + ], + "bonds": [ + { + "number": 1, + "a1": "P", + "a2": "O1", + "order": "Double" + }, + { + "number": 1, + "a1": "P", + "a2": "O2", + "order": "Single" + }, + { + "number": 1, + "a1": "P", + "a2": "O3", + "order": "Single" + }, + { + "number": 1, + "a1": "P", + "a2": "O4", + "order": "Single" + } + ], + "connections": [], + "variants": [ + { + "name": "PO4" + } + ] +} diff --git a/test/preprocessing/test_fragmentdb.jl b/test/preprocessing/test_fragmentdb.jl index d0825f08..2e943e52 100644 --- a/test/preprocessing/test_fragmentdb.jl +++ b/test/preprocessing/test_fragmentdb.jl @@ -2,7 +2,7 @@ using BiochemicalAlgorithms: get_reference_fragment for fdb in (default_fragmentdb(), FragmentDB(), FragmentDB{Float32}(), FragmentDB{Float64}()) - @test length(fdb.fragments) == 34 + @test length(fdb.fragments) == 35 @test length(fdb.name_mappings) == 6 @test length(fdb.defaults) == 1 @test fdb.defaults["Naming"] == "PDB" @@ -52,7 +52,7 @@ end # show method - @test contains(repr(fdb), "34 fragments") + @test contains(repr(fdb), "35 fragments") end end