Skip to content

Commit

Permalink
address comments
Browse files Browse the repository at this point in the history
  • Loading branch information
ndonyapour committed Sep 5, 2024
1 parent 682ea9a commit b190fca
Show file tree
Hide file tree
Showing 8 changed files with 107 additions and 94 deletions.
10 changes: 4 additions & 6 deletions utils/extract-pdbids-drugbank-xsdata-plugin/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,12 @@ COPY README.md ${EXEC_DIR}
COPY CHANGELOG.md ${EXEC_DIR}

# Install needed packages here
# errors installing rdkit from poetry so using conda
COPY environment.yml ${EXEC_DIR}
RUN mamba env create -f ${EXEC_DIR}/environment.yml
RUN echo "source activate project_env" > ~/.bashrc
ENV PATH /opt/conda/envs/env/bin:$PATH

COPY src ${EXEC_DIR}/src

ADD Dockerfile .

RUN pip3 install ${EXEC_DIR} --no-cache-dir
#RUN pip3 install -i https://test.pypi.org/simple/ drugbank-schemas

CMD ["--help"]
#CMD ["--help"]
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/bash

version=$(<VERSION)
docker build . -t polusai/extract-pdbids-drugbank-xsdata-plugin:${version}
docker build . -t polusai/extract-pdbids-drugbank-xsdata-tool:${version}
14 changes: 0 additions & 14 deletions utils/extract-pdbids-drugbank-xsdata-plugin/environment.yml

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,18 @@ label: Filter Drugbank database using xsData
doc: |-
Filter Drugbank database using xsData

baseCommand: ["conda", "run", "-n", "project_env", "python", "-m", "polus.mm.utils.extract_pdbids_drugbank_xsdata"]
baseCommand: ["python", "-m", "polus.mm.utils.extract_pdbids_drugbank_xsdata"]

hints:
DockerRequirement:
dockerPull: ndonyapour/extract_pdbids_drugbank_xsdata
dockerPull: ndonyapour/extract_pdbids_drugbank_xsdata_tool

requirements:
InlineJavascriptRequirement: {}
# Enabling InitialWorkDirRequirement will stage the input Drugbank xml file
InitialWorkDirRequirement:
listing:
- $(inputs.drugbank_xml_file_path)
- $(inputs.drugbank_xsd_file_path)

inputs:
drugbank_xml_file_path:
Expand All @@ -31,21 +30,6 @@ inputs:
format: edam:format_2332
inputBinding:
prefix: --drugbank_xml_file_path
default:
class: File
location: ../../../drugbank/drugbank_5.1.10.xml

drugbank_xsd_file_path:
label: Path to the Drugbank schema XSD file
doc: |-
Path to the Drugbank schema XSD file
type: File
format: edam:format_3804
inputBinding:
prefix: --drugbank_xsd_file_path
default:
class: File
location: ../../drugbank/drugbank_5.1.10.xsd

smiles:
label: List of input SMILES # type:
Expand Down
3 changes: 0 additions & 3 deletions utils/extract-pdbids-drugbank-xsdata-plugin/out.txt

This file was deleted.

31 changes: 19 additions & 12 deletions utils/extract-pdbids-drugbank-xsdata-plugin/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,15 +1,30 @@
[tool.poetry]
name = "polus-mm-utils-extract-pdbids-drugbank-xsdata"
version = "0.1.0"
description = "Filter Drugbank database using xsData"
description = "Filter DrugBank database using xsData"
authors = ["Nazanin Donyapour <[email protected]>", "Brandon Walker <[email protected]>"]
readme = "README.md"
packages = [{include = "polus", from = "src"}]

[tool.poetry.dependencies]
python = ">=3.9,<3.12"
python = ">=3.9,<3.13"
typer = "^0.7.0"
cwltool = "3.1.20240404144621"
sophios = "0.1.4"
pandas = "2.2.2"
rdkit = "2024.3.5"

# Specifying xsdata-pydantic with extra options
xsdata-pydantic = { version = "*", extras = ["cli", "lxml", "soap"] }


# Specifying additional index and package
drugbank-schemas = { version = "0.1.4", source = "test-pypi"}

# Ensure the correct priority for the additional index
[[tool.poetry.source]]
name = "test-pypi"
url = "https://test.pypi.org/simple/"
priority = "explicit"

[tool.poetry.group.dev.dependencies]
bump2version = "^1.0.1"
Expand All @@ -19,18 +34,10 @@ pre-commit = "^3.2.1"
black = "^23.3.0"
mypy = "^1.1.1"
ruff = "^0.3.0"
drugbank_schemas = { version = "0.1.4", source = "testpypi" }

[[tool.poetry.source]]
name = "testpypi"
url = "https://test.pypi.org/simple/"
secondary = true

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.pytest.ini_options]
pythonpath = [
"."
]
pythonpath = ["."]
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
"""Package entrypoint for the extract_pdbids_drugbank_xsdata package."""

# Base packages
import argparse
import logging
from os import environ

import typer
from polus.mm.utils.extract_pdbids_drugbank_xsdata.extract_pdbids_drugbank_xsdata import ( # noqa: E501
extract_pdbids_drugbank_xsdata,
)
Expand All @@ -17,52 +17,60 @@
logger = logging.getLogger("polus.mm.utils.extract_pdbids_drugbank_xsdata.")
logger.setLevel(POLUS_LOG)

app = typer.Typer(help="extract_pdbids_drugbank_xsdata.")

def main(args: argparse.Namespace) -> None:
"""extract_pdbids_drugbank_xsdata."""
logger.info(f"drugbank_xml_file_path: {args.drugbank_xml_file_path}")
logger.info(f"smiles: {args.smiles}")
logger.info(f"inchi: {args.inchi}")
logger.info(f"inchi_keys: {args.inchi_keys}")
logger.info(f"output_txt_path: {args.output_txt_path}")

extract_pdbids_drugbank_xsdata(
drugbank_xml_file_path=args.drugbank_xml_file_path,
smiles=args.smiles,
inchi=args.inchi,
inchi_keys=args.inchi_keys,
output_txt_path=args.output_txt_path,
)


@app.command()
def main(
drugbank_xml_file_path: str = typer.Option(
...,
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="extract_pdbids_drugbank_xsdata.")

parser.add_argument(
"--drugbank_xml_file_path",
type=str,
required=True,
help="Path to the Drugbank xml file",
),
smiles: list[str] = typer.Option(
...,
)
parser.add_argument(
"--smiles",
type=str,
nargs="+",
required=True,
help="List of input SMILES, Type string[], File type input",
),
inchi: list[str] = typer.Option(
...,
)
parser.add_argument(
"--inchi",
help="List of input SMILES, Type string[], File type input",
),
inchi_keys: list[str] = typer.Option(
...,
type=str,
nargs="+",
required=True,
help="List of input InChI, Type string[], File type input",
)
parser.add_argument(
"--inchi_keys",
help="List of input SMILES, Type string[], File type input",
),
output_txt_path: str = typer.Option(
...,
type=str,
nargs="+",
required=True,
help="List of input InChI keys, Type string[], File type input",
)
parser.add_argument(
"--output_txt_path",
type=str,
required=True,
help="Path to the text dataset file, Type string, File type output",
),
) -> None:
"""extract_pdbids_drugbank_xsdata."""
logger.info(f"drugbank_xml_file_path: {drugbank_xml_file_path}")
logger.info(f"smiles: {smiles}")
logger.info(f"inchi: {inchi}")
logger.info(f"inchi_keys: {inchi_keys}")
logger.info(f"output_txt_path: {output_txt_path}")

extract_pdbids_drugbank_xsdata(
drugbank_xml_file_path=drugbank_xml_file_path,
smiles=smiles,
inchi=inchi,
inchi_keys=inchi_keys,
output_txt_path=output_txt_path,
)


if __name__ == "__main__":
app()
args = parser.parse_args()
main(args)
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
from polus.mm.utils.extract_pdbids_drugbank_xsdata.extract_pdbids_drugbank_xsdata import ( # noqa: E501
extract_pdbids_drugbank_xsdata,
)
from sophios.api.pythonapi import Step
from sophios.api.pythonapi import Workflow


def test_extract_pdbids_drugbank_xsdata() -> None:
Expand All @@ -15,6 +17,37 @@ def test_extract_pdbids_drugbank_xsdata() -> None:

input_xml_path = str(Path(__file__).resolve().parent / Path(input_xml_path))

extract_pdbids_drugbank_xsdata(input_xml_path, [], inchi, [], "out.txt")
extract_pdbids_drugbank_xsdata(input_xml_path, [], inchi, [], "output.txt")

assert Path("out.txt").exists()
assert Path("output.txt").exists()


def test_extract_pdbids_drugbank_xsdata_cwl() -> None:
"""Test extract_pdbids_drugbank_xsdata CWL."""
cwl_file = Path("extract_pdbids_drugbank_xsdata_0@[email protected]")

# Create the step for the CWL file
extract_pdbids_drugbank_xsdata_step = Step(clt_path=cwl_file)

input_xml_path = "drugbank_10_fake_records_5.1.10.xml"
input_xml_path = str(Path(__file__).resolve().parent / Path(input_xml_path))

inchi = ["InChI3491", "InChI8564", "InChI7556"]

extract_pdbids_drugbank_xsdata_step.drugbank_xml_file_path = input_xml_path
extract_pdbids_drugbank_xsdata_step.inchi = inchi
extract_pdbids_drugbank_xsdata_step.output_txt_path = "output_cwl.txt"

# Define the workflow with the step
steps = [extract_pdbids_drugbank_xsdata_step]
filename = "extract_pdbids_drugbank_xsdata"
workflow = Workflow(steps, filename)

# Run the workflow
workflow.run()

# Check for the existence of the output file
outdir = Path("outdir")
assert any(
file.name == "output_cwl.txt" for file in outdir.rglob("*")
), "The file output_cwl.txt was not found."

0 comments on commit b190fca

Please sign in to comment.