From 8e162a8a116a2e7520cba54b4f641ce2daa54d1d Mon Sep 17 00:00:00 2001 From: Brandon Duane Walker Date: Mon, 3 Jun 2024 13:09:29 -0400 Subject: [PATCH] refactor duplicate --- .../duplicate-plugin/tests/test_duplicate.py | 33 ------------------- .../duplicate-tool}/.bumpversion.cfg | 0 .../duplicate-tool}/.dockerignore | 0 .../duplicate-tool}/.gitignore | 0 .../duplicate-tool}/CHANGELOG.md | 0 .../duplicate-tool}/README.md | 0 .../structure-change/duplicate-tool}/VERSION | 0 .../duplicate-tool/duplicate_0@1@0.cwl} | 0 .../structure-change/duplicate-tool}/ict.yml | 6 ++-- .../duplicate-tool}/pyproject.toml | 0 .../duplicate-tool}/tests/1msn_protein.pdb | 0 .../duplicate-tool}/tests/__init__.py | 0 .../duplicate-tool/tests/test_duplicate.py | 32 ++++++++++++++++++ 13 files changed, 35 insertions(+), 36 deletions(-) delete mode 100644 utils/duplicate-plugin/tests/test_duplicate.py rename utils/{duplicate-plugin => pre-process/structure-change/duplicate-tool}/.bumpversion.cfg (100%) rename utils/{duplicate-plugin => pre-process/structure-change/duplicate-tool}/.dockerignore (100%) rename utils/{duplicate-plugin => pre-process/structure-change/duplicate-tool}/.gitignore (100%) rename utils/{duplicate-plugin => pre-process/structure-change/duplicate-tool}/CHANGELOG.md (100%) rename utils/{duplicate-plugin => pre-process/structure-change/duplicate-tool}/README.md (100%) rename utils/{duplicate-plugin => pre-process/structure-change/duplicate-tool}/VERSION (100%) rename utils/{duplicate-plugin/duplicate.cwl => pre-process/structure-change/duplicate-tool/duplicate_0@1@0.cwl} (100%) rename utils/{duplicate-plugin => pre-process/structure-change/duplicate-tool}/ict.yml (92%) rename utils/{duplicate-plugin => pre-process/structure-change/duplicate-tool}/pyproject.toml (100%) rename utils/{duplicate-plugin => pre-process/structure-change/duplicate-tool}/tests/1msn_protein.pdb (100%) rename utils/{duplicate-plugin => pre-process/structure-change/duplicate-tool}/tests/__init__.py (100%) create mode 100644 utils/pre-process/structure-change/duplicate-tool/tests/test_duplicate.py diff --git a/utils/duplicate-plugin/tests/test_duplicate.py b/utils/duplicate-plugin/tests/test_duplicate.py deleted file mode 100644 index 45f30d2e..00000000 --- a/utils/duplicate-plugin/tests/test_duplicate.py +++ /dev/null @@ -1,33 +0,0 @@ -"""Tests for duplicate.""" -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_duplicate() -> None: - """Test pdb.""" - cwl_file_str = "duplicate.cwl" - cwl_file = Path(__file__).resolve().parent.parent / Path(cwl_file_str) - input_to_props = parse_cwl_arguments(cwl_file) - file_path_str = "1msn_protein.pdb" - file_path = str(Path(__file__).resolve().parent / Path(file_path_str)) - input_to_props["input_pdbqt_singleton_path"]["path"] = file_path - file_dict = input_to_props["input_pdbqt_array_path"][0] - repeats = 2 - input_to_props["input_pdbqt_array_path"] = [] - for i in range(repeats): # noqa: B007 - file_dict["path"] = file_path - input_to_props["input_pdbqt_array_path"].append(file_dict) - input_yaml_path = Path("pdb.yml") - create_input_yaml(input_to_props, input_yaml_path) - - # Just make sure calling cwltool doesnt crash since no outputs - # This cwl file is just outputting duplicates in an array - call_cwltool(cwl_file, input_yaml_path) diff --git a/utils/duplicate-plugin/.bumpversion.cfg b/utils/pre-process/structure-change/duplicate-tool/.bumpversion.cfg similarity index 100% rename from utils/duplicate-plugin/.bumpversion.cfg rename to utils/pre-process/structure-change/duplicate-tool/.bumpversion.cfg diff --git a/utils/duplicate-plugin/.dockerignore b/utils/pre-process/structure-change/duplicate-tool/.dockerignore similarity index 100% rename from utils/duplicate-plugin/.dockerignore rename to utils/pre-process/structure-change/duplicate-tool/.dockerignore diff --git a/utils/duplicate-plugin/.gitignore b/utils/pre-process/structure-change/duplicate-tool/.gitignore similarity index 100% rename from utils/duplicate-plugin/.gitignore rename to utils/pre-process/structure-change/duplicate-tool/.gitignore diff --git a/utils/duplicate-plugin/CHANGELOG.md b/utils/pre-process/structure-change/duplicate-tool/CHANGELOG.md similarity index 100% rename from utils/duplicate-plugin/CHANGELOG.md rename to utils/pre-process/structure-change/duplicate-tool/CHANGELOG.md diff --git a/utils/duplicate-plugin/README.md b/utils/pre-process/structure-change/duplicate-tool/README.md similarity index 100% rename from utils/duplicate-plugin/README.md rename to utils/pre-process/structure-change/duplicate-tool/README.md diff --git a/utils/duplicate-plugin/VERSION b/utils/pre-process/structure-change/duplicate-tool/VERSION similarity index 100% rename from utils/duplicate-plugin/VERSION rename to utils/pre-process/structure-change/duplicate-tool/VERSION diff --git a/utils/duplicate-plugin/duplicate.cwl b/utils/pre-process/structure-change/duplicate-tool/duplicate_0@1@0.cwl similarity index 100% rename from utils/duplicate-plugin/duplicate.cwl rename to utils/pre-process/structure-change/duplicate-tool/duplicate_0@1@0.cwl diff --git a/utils/duplicate-plugin/ict.yml b/utils/pre-process/structure-change/duplicate-tool/ict.yml similarity index 92% rename from utils/duplicate-plugin/ict.yml rename to utils/pre-process/structure-change/duplicate-tool/ict.yml index e0b103b1..b959e6c4 100644 --- a/utils/duplicate-plugin/ict.yml +++ b/utils/pre-process/structure-change/duplicate-tool/ict.yml @@ -1,12 +1,12 @@ specVersion: "0.1.0" name: duplicate version: 0.1.0 -container: duplicate-plugin +container: duplicate-tool entrypoint: title: duplicate description: Duplicates a pdbqt file n times, where n is the length of another array. -author: Data Scientist -contact: data.scientist@labshare.org +author: Brandon Walker, Nazanin Donyapour +contact: brandon.walker@axleinfo.com, nazanin.donyapour@axleinfo.com repository: documentation: citation: diff --git a/utils/duplicate-plugin/pyproject.toml b/utils/pre-process/structure-change/duplicate-tool/pyproject.toml similarity index 100% rename from utils/duplicate-plugin/pyproject.toml rename to utils/pre-process/structure-change/duplicate-tool/pyproject.toml diff --git a/utils/duplicate-plugin/tests/1msn_protein.pdb b/utils/pre-process/structure-change/duplicate-tool/tests/1msn_protein.pdb similarity index 100% rename from utils/duplicate-plugin/tests/1msn_protein.pdb rename to utils/pre-process/structure-change/duplicate-tool/tests/1msn_protein.pdb diff --git a/utils/duplicate-plugin/tests/__init__.py b/utils/pre-process/structure-change/duplicate-tool/tests/__init__.py similarity index 100% rename from utils/duplicate-plugin/tests/__init__.py rename to utils/pre-process/structure-change/duplicate-tool/tests/__init__.py diff --git a/utils/pre-process/structure-change/duplicate-tool/tests/test_duplicate.py b/utils/pre-process/structure-change/duplicate-tool/tests/test_duplicate.py new file mode 100644 index 00000000..895bbd98 --- /dev/null +++ b/utils/pre-process/structure-change/duplicate-tool/tests/test_duplicate.py @@ -0,0 +1,32 @@ +"""Tests for duplicate.""" +from pathlib import Path + +from sophios.api.pythonapi import Step +from sophios.api.pythonapi import Workflow + + +def test_duplicate() -> None: + """Test pdb.""" + # Define paths and input properties + cwl_file_str = "duplicate_0@1@0.cwl" + cwl_file = Path(__file__).resolve().parent.parent / Path(cwl_file_str) + input_pdbqt_singleton_path = Path(__file__).resolve().parent / Path( + "1msn_protein.pdb", + ) + repeats = 2 + + # Create the CWL step + duplicate_step = Step(clt_path=cwl_file) + duplicate_step.input_pdbqt_singleton_path = input_pdbqt_singleton_path + + # Prepare the input_pdbqt_array_path with duplicates + file_dict = {"path": str(input_pdbqt_singleton_path)} + duplicate_step.input_pdbqt_array_path = [file_dict.copy() for _ in range(repeats)] + + # Create the workflow and run it + steps = [duplicate_step] + filename = "duplicate_workflow" + workflow = Workflow(steps, filename) + workflow.run() + + # cant capture stdout to check status