From 6c698970354fd0a3b9668e4ed1dbd08822f284b4 Mon Sep 17 00:00:00 2001 From: Nicola Soranzo Date: Mon, 10 Mar 2025 17:29:58 +0000 Subject: [PATCH] Add rDock prm datatype --- .../config/sample/datatypes_conf.xml.sample | 1 + lib/galaxy/datatypes/test/test.prm | 26 +++++++++++++++++++ lib/galaxy/datatypes/text.py | 26 +++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 lib/galaxy/datatypes/test/test.prm diff --git a/lib/galaxy/config/sample/datatypes_conf.xml.sample b/lib/galaxy/config/sample/datatypes_conf.xml.sample index 96447c66461..edd029bd986 100644 --- a/lib/galaxy/config/sample/datatypes_conf.xml.sample +++ b/lib/galaxy/config/sample/datatypes_conf.xml.sample @@ -732,6 +732,7 @@ + diff --git a/lib/galaxy/datatypes/test/test.prm b/lib/galaxy/datatypes/test/test.prm new file mode 100644 index 00000000000..b7c2114e148 --- /dev/null +++ b/lib/galaxy/datatypes/test/test.prm @@ -0,0 +1,26 @@ +RBT_PARAMETER_FILE_V1.00 +TITLE R_1YET +RECEPTOR_FILE R_1YET_protein.mol2 +RECEPTOR_FLEX 3.0 + +################################################################## +### CAVITY DEFINITION: REFERENCE LIGAND METHOD +################################################################## +SECTION MAPPER + SITE_MAPPER RbtLigandSiteMapper + REF_MOL 1YET_c.sd + RADIUS 6.0 + SMALL_SPHERE 1.0 + MIN_VOLUME 100 + MAX_CAVITIES 1 + VOL_INCR 0.0 + GRIDSTEP 0.5 +END_SECTION + +################################# +#CAVITY RESTRAINT PENALTY +################################# +SECTION CAVITY + SCORING_FUNCTION RbtCavityGridSF + WEIGHT 1.0 +END_SECTION diff --git a/lib/galaxy/datatypes/text.py b/lib/galaxy/datatypes/text.py index 6c6b587aaa4..3c67057dbc2 100644 --- a/lib/galaxy/datatypes/text.py +++ b/lib/galaxy/datatypes/text.py @@ -1422,3 +1422,29 @@ class FormattedDensity(Text): (lines[9].strip() == end_header and lines[10].strip() == grid_points) or (lines[9].strip() == end_header_spin and lines[10].strip() == grid_points_spin) ) + + +@build_sniff_from_prefix +class Prm(Text): + """rDock prm format + + For system definition files, scoring function definition files and search + protocol definition files. + """ + + file_ext = "prm" + + def sniff_prefix(self, file_prefix: FilePrefix) -> bool: + """ + Determines whether the file is in prm format, according to + https://rdock.github.io/documentation/html_docs/reference-guide/file-formats.html + + >>> from galaxy.datatypes.sniff import get_test_fname + >>> fname = get_test_fname("test.prm") + >>> Prm().sniff(fname) + True + >>> fname = get_test_fname("larch_potentials.inp") + >>> Prm().sniff(fname) + False + """ + return file_prefix.startswith("RBT_PARAMETER_FILE_V1.00")