diff --git a/utils/config-tag-pdb2gmx-plugin/.bumpversion.cfg b/utils/config-tag-pdb2gmx-plugin/.bumpversion.cfg new file mode 100644 index 00000000..9d1cfdbb --- /dev/null +++ b/utils/config-tag-pdb2gmx-plugin/.bumpversion.cfg @@ -0,0 +1,29 @@ +[bumpversion] +current_version = 0.1.0 +commit = False +tag = False +parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\-(?P[a-z]+)(?P\d+))? +serialize = + {major}.{minor}.{patch}-{release}{dev} + {major}.{minor}.{patch} + +[bumpversion:part:release] +optional_value = _ +first_value = dev +values = + dev + _ + +[bumpversion:part:dev] + +[bumpversion:file:pyproject.toml] +search = version = "{current_version}" +replace = version = "{new_version}" + +[bumpversion:file:VERSION] + +[bumpversion:file:README.md] + +[bumpversion:file:plugin.json] + +[bumpversion:file:src/polus/mm/utils/config_tag_pdb2gmx/__init__.py] diff --git a/utils/config-tag-pdb2gmx-plugin/.dockerignore b/utils/config-tag-pdb2gmx-plugin/.dockerignore new file mode 100644 index 00000000..7c603f81 --- /dev/null +++ b/utils/config-tag-pdb2gmx-plugin/.dockerignore @@ -0,0 +1,4 @@ +.venv +out +tests +__pycache__ diff --git a/utils/config-tag-pdb2gmx-plugin/.gitignore b/utils/config-tag-pdb2gmx-plugin/.gitignore new file mode 100644 index 00000000..c04bc49f --- /dev/null +++ b/utils/config-tag-pdb2gmx-plugin/.gitignore @@ -0,0 +1 @@ +poetry.lock diff --git a/utils/config-tag-pdb2gmx-plugin/CHANGELOG.md b/utils/config-tag-pdb2gmx-plugin/CHANGELOG.md new file mode 100644 index 00000000..b67793f7 --- /dev/null +++ b/utils/config-tag-pdb2gmx-plugin/CHANGELOG.md @@ -0,0 +1,5 @@ +# CHANGELOG + +## 0.1.0 + +Initial release. diff --git a/utils/config-tag-pdb2gmx-plugin/README.md b/utils/config-tag-pdb2gmx-plugin/README.md new file mode 100644 index 00000000..6b5c3d00 --- /dev/null +++ b/utils/config-tag-pdb2gmx-plugin/README.md @@ -0,0 +1,15 @@ +# config_tag_pdb2gmx (0.1.0) + +Returns a dictionary of the given arguments as a JSON-encoded string. + +## Options + +This plugin takes 4 input arguments and 1 output argument: + +| Name | Description | I/O | Type | Default | +|---------------|-------------------------|--------|--------|---------| +| water_type | | Input | string | string | +| forcefield | | Input | string | string | +| ignh | | Input | boolean | boolean | +| merge | | Input | boolean | boolean | +| output_config_string | A dictionary of the given arguments as a JSON-encoded string. | Output | string | string | diff --git a/utils/config-tag-pdb2gmx-plugin/VERSION b/utils/config-tag-pdb2gmx-plugin/VERSION new file mode 100644 index 00000000..6e8bf73a --- /dev/null +++ b/utils/config-tag-pdb2gmx-plugin/VERSION @@ -0,0 +1 @@ +0.1.0 diff --git a/utils/config-tag-pdb2gmx-plugin/config_tag_pdb2gmx.cwl b/utils/config-tag-pdb2gmx-plugin/config_tag_pdb2gmx.cwl new file mode 100644 index 00000000..9e497317 --- /dev/null +++ b/utils/config-tag-pdb2gmx-plugin/config_tag_pdb2gmx.cwl @@ -0,0 +1,56 @@ +#!/usr/bin/env cwl-runner +class: CommandLineTool +cwlVersion: v1.0 + +label: Returns a dictionary of the given arguments as a JSON-encoded string. +doc: |- + Returns a dictionary of the given arguments as a JSON-encoded string. + +baseCommand: echo # Anything, unused + +requirements: + InlineJavascriptRequirement: {} + +inputs: + water_type: + type: string + format: + - edam:format_2330 + + forcefield: + type: string + format: edam:format_2330 + + ignh: + type: boolean + format: edam:format_2330 + + merge: + type: boolean + format: edam:format_2330 + +# TODO: his + +outputs: + output_config_string: + label: A dictionary of the given arguments as a JSON-encoded string. + doc: |- + A dictionary of the given arguments as a JSON-encoded string. + type: string + #format: edam:format_2330 # "'str' object does not support item assignment"" + outputBinding: + outputEval: | + ${ + var config = {}; + config["water_type"] = inputs.water_type; + config["force_field"] = inputs.forcefield; // Note underscore + config["ignh"] = inputs.ignh; + config["merge"] = inputs.merge; + return JSON.stringify(config); + } + +$namespaces: + edam: https://edamontology.org/ + +$schemas: +- https://raw.githubusercontent.com/edamontology/edamontology/master/EDAM_dev.owl diff --git a/utils/config-tag-pdb2gmx-plugin/ict.yml b/utils/config-tag-pdb2gmx-plugin/ict.yml new file mode 100644 index 00000000..784d3df1 --- /dev/null +++ b/utils/config-tag-pdb2gmx-plugin/ict.yml @@ -0,0 +1,60 @@ +specVersion: "0.1.0" +name: config_tag_pdb2gmx +version: 0.1.0 +container: config-tag-pdb2gmx-plugin +entrypoint: +title: config_tag_pdb2gmx +description: Returns a dictionary of the given arguments as a JSON-encoded string. +author: Data Scientist +contact: data.scientist@labshare.org +repository: +documentation: +citation: + +inputs: + - name: water_type + required: true + description: + type: string + format: + uri: edam:format_2330 + - name: forcefield + required: true + description: + type: string + format: + uri: edam:format_2330 + - name: ignh + required: true + description: + type: boolean + format: + uri: edam:format_2330 + - name: merge + required: true + description: + type: boolean + format: + uri: edam:format_2330 +outputs: + - name: output_config_string + required: true + description: A dictionary of the given arguments as a JSON-encoded string. + type: string +ui: + - key: inputs.water_type + title: "water_type: " + description: "" + type: string + - key: inputs.forcefield + title: "forcefield: " + description: "" + type: string + - key: inputs.ignh + title: "ignh: " + description: "" + type: checkbox + - key: inputs.merge + title: "merge: " + description: "" + type: checkbox diff --git a/utils/config-tag-pdb2gmx-plugin/pyproject.toml b/utils/config-tag-pdb2gmx-plugin/pyproject.toml new file mode 100644 index 00000000..1b367b09 --- /dev/null +++ b/utils/config-tag-pdb2gmx-plugin/pyproject.toml @@ -0,0 +1,30 @@ +[tool.poetry] +name = "polus-mm-utils-config-tag-pdb2gmx" +version = "0.1.0" +description = "Returns a dictionary of the given arguments as a JSON-encoded string." +authors = ["Data Scientist "] +readme = "README.md" + +[tool.poetry.dependencies] +python = ">=3.9,<3.12" +typer = "^0.7.0" +cwl-utils = "0.33" +cwltool = "3.1.20240404144621" + +[tool.poetry.group.dev.dependencies] +bump2version = "^1.0.1" +pytest = "^7.4" +pytest-sugar = "^0.9.6" +pre-commit = "^3.2.1" +black = "^23.3.0" +mypy = "^1.1.1" +ruff = "^0.0.270" + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[tool.pytest.ini_options] +pythonpath = [ + "." +] diff --git a/utils/config-tag-pdb2gmx-plugin/tests/__init__.py b/utils/config-tag-pdb2gmx-plugin/tests/__init__.py new file mode 100644 index 00000000..af479fdb --- /dev/null +++ b/utils/config-tag-pdb2gmx-plugin/tests/__init__.py @@ -0,0 +1 @@ +"""Tests for config_tag_pdb2gmx.""" diff --git a/utils/config-tag-pdb2gmx-plugin/tests/test_config_tag_pdb2gmx.py b/utils/config-tag-pdb2gmx-plugin/tests/test_config_tag_pdb2gmx.py new file mode 100644 index 00000000..11dcc100 --- /dev/null +++ b/utils/config-tag-pdb2gmx-plugin/tests/test_config_tag_pdb2gmx.py @@ -0,0 +1,27 @@ +"""Tests for config_tag_pdb2gmx.""" +import sys +from pathlib import Path + +current_dir = Path(__file__).resolve().parent +target_dir = current_dir.parent.parent.parent / "cwl_utils" +sys.path.append(str(target_dir)) + +from cwl_utilities import call_cwltool # noqa: E402 +from cwl_utilities import create_input_yaml # noqa: E402 +from cwl_utilities import parse_cwl_arguments # noqa: E402 + + +def test_config_tag_pdb2gmx() -> None: + """Test config_tag_pdb2gmx.""" + cwl_file = Path("config_tag_pdb2gmx.cwl") + input_to_props = parse_cwl_arguments(cwl_file) + + input_to_props["water_type"] = "spec" + input_to_props["forcefield"] = "mber99sb-ildn" + input_to_props["ignh"] = True + input_to_props["merge"] = False + input_yaml_path = Path("config_tag_pdb2gmx.yml") + + create_input_yaml(input_to_props, input_yaml_path) + stdout, stderr = call_cwltool(cwl_file, input_yaml_path) + assert "success" in stderr