Skip to content

Commit

Permalink
runners for release 0.2.3
Browse files Browse the repository at this point in the history
  • Loading branch information
deaconjs committed Aug 24, 2022
1 parent 4d2047a commit 5adc3f9
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 42 deletions.
2 changes: 1 addition & 1 deletion dist/run_fcsadaptor.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash

SCRIPT_NAME=$0
DEFAULT_VERSION="0.2.2"
DEFAULT_VERSION="0.2.1"
DOCKER_IMAGE=ncbi/fcs-adaptor:${DEFAULT_VERSION}
SINGULARITY_IMAGE=""
CONTAINER_ENGINE="docker"
Expand Down
62 changes: 21 additions & 41 deletions dist/run_fcsgx.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#!/usr/bin/env python3
import argparse
import os
from pathlib import Path
Expand All @@ -12,7 +13,7 @@

CONTAINER = "run_gx"
DEFAULT_CONTAINER_DB = "/app/db/gxdb"
DEFAULT_VERSION = "0.2.2"
DEFAULT_VERSION = "0.2.1"
DEFAULT_DOCKER_IMAGE = f"ncbi/fcs-gx:{DEFAULT_VERSION}"
DEFAULT_SINGULARITY_IMAGE = f"fcs-gx.{DEFAULT_VERSION}.sif"
# FILE_MANIFEST = "sing-image.manifest"
Expand Down Expand Up @@ -76,16 +77,11 @@ def run_retrieve_db(self):

docker_image = self.args.docker_image
container_engine = self.args.container_engine
if container_engine == "docker":
subprocess.run(
[container_engine, "pull", docker_image],
shell=False,
check=True,
)
elif container_engine == "singularity":
if container_engine == "singularity":
if docker_image == os.getenv("GX_DOCKER_IMAGE", default=DEFAULT_DOCKER_IMAGE):
# image not specified -->> download from the ftp site
docker_image = self.retrieve_singularity_image(DEFAULT_SINGULARITY_IMAGE)
self.args.docker_image = docker_image

mount_arg = ""
if container_engine == "docker":
Expand All @@ -99,14 +95,11 @@ def run_retrieve_db(self):
extra_docker_args = [mount_arg, str(expanded_gxdb_disk) + ":/db-disk-volume/"]
extra_db_args = ["--gx-db-disk", "/db-disk-volume/"]

name_args = []
if container_engine == "docker":
name_args = ["--name", "retrieve_db"]
extra_docker_args.extend(["--tty"])

retrieve_db_args = [
container_engine,
"run",
*name_args,
mount_arg,
str(expanded_gxdb) + ":" + str(self.args.container_db),
*extra_docker_args,
Expand All @@ -122,8 +115,6 @@ def run_retrieve_db(self):
shell=False,
check=True,
)
if container_engine == "docker":
subprocess.run([container_engine, "container", "rm", "retrieve_db"], shell=False, check=True)

def run_gx(self):
expanded_gxdb = Path(os.path.realpath(os.path.dirname(self.args.gx_db)))
Expand All @@ -137,13 +128,6 @@ def run_gx(self):
container_engine = self.args.container_engine
docker_image = self.args.docker_image

if container_engine == "docker":
subprocess.run([container_engine, "pull", docker_image], shell=False, check=True)

name_args = []
if container_engine == "docker":
name_args = ["--name", CONTAINER]

mount_arg = ""
if container_engine == "docker":
mount_arg = "-v"
Expand All @@ -153,63 +137,55 @@ def run_gx(self):
docker_args = [
container_engine,
"run",
*name_args,
mount_arg,
str(expanded_gxdb) + ":" + str(self.args.container_db),
mount_arg,
str(fasta_path) + ":" + str(Path("/sample-volume/")),
str(fasta_path) + ":" + "/sample-volume/",
mount_arg,
str(expanded_output) + ":" + str(Path("/output-volume/")),
str(expanded_output) + ":" + "/output-volume/",
docker_image,
"python3",
str(GX_BIN_DIR / "run_gx"),
"--fasta",
str(Path("/sample-volume/") / fasta_name),
"--out-dir",
str(Path("/output-volume/")),
"/output-volume/",
"--gx-db",
str(self.args.container_db / gxdb_name),
"--tax-id",
str(self.args.tax_id),
"--split-fasta=" + ("T" if self.args.split_fasta else "F"),
]

if self.args.out_basename:
docker_args.extend(["--out-basename", self.args.out_basename])
if self.args.blast_div:
docker_args.extend(["--div", self.args.blast_div])
if self.args.allow_same_species:
docker_args.extend(["--allow-same-species", self.args.allow_same_species])
if self.args.env_file:
docker_args.extend(["--env-file", str(Path("/sample-volume/") / self.args.env_file)])

print(docker_args)
if self.args.debug:
print(docker_args)
subprocess.run(docker_args, shell=False, check=True)

if container_engine == "docker":
subprocess.run([container_engine, "container", "rm", CONTAINER], shell=False, check=True)

def run_verify_checksums(self):
expanded_gxdb = Path(os.path.realpath(os.path.dirname(self.args.gx_db)))
gxdb_name = os.path.basename(self.args.gx_db)

container_engine = self.args.container_engine
docker_image = self.args.docker_image

if container_engine == "docker":
subprocess.run([container_engine, "pull", docker_image], shell=False, check=True)

mount_arg = ""
if container_engine == "docker":
mount_arg = "-v"
elif container_engine == "singularity":
mount_arg = "--bind"

name_args = []
if container_engine == "docker":
name_args = ["--name", "verify_checksums"]

docker_args = [
container_engine,
"run",
*name_args,
mount_arg,
str(expanded_gxdb) + ":" + str(self.args.container_db),
docker_image,
Expand All @@ -219,12 +195,10 @@ def run_verify_checksums(self):
str(self.args.container_db / gxdb_name),
"--debug",
]
print(docker_args)
if self.args.debug:
print(docker_args)
subprocess.run(docker_args, shell=False, check=True)

if container_engine == "docker":
subprocess.run([container_engine, "container", "rm", "verify_checksums"], shell=False, check=True)

def run(self):
self.run_retrieve_db()
if self.args.fasta:
Expand Down Expand Up @@ -314,6 +288,12 @@ def main() -> int:
action="store_true",
help="database file's checksum will be verified",
)
parser.add_argument(
"--env-file",
default=None,
help="file with environment variables",
)

args = parser.parse_args()
retcode = 0
try:
Expand Down

0 comments on commit 5adc3f9

Please sign in to comment.