Skip to content

Commit

Permalink
added three new parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
VinzentRisch committed Jul 23, 2024
1 parent 73c2c50 commit e3f2abb
Show file tree
Hide file tree
Showing 5 changed files with 85 additions and 0 deletions.
5 changes: 5 additions & 0 deletions q2_amr/amrfinderplus/sample_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ def annotate_sample_data_amrfinderplus(
curated_ident: bool = False,
coverage_min: float = 0.5,
translation_table: str = "11",
report_common: bool = False,
gpipe_org: bool = False,
threads: int = None,
) -> (
AMRFinderPlusAnnotationsDirFmt,
Expand Down Expand Up @@ -72,6 +74,9 @@ def annotate_sample_data_amrfinderplus(
curated_ident=curated_ident,
coverage_min=coverage_min,
translation_table=translation_table,
annotation_format=None,
report_common=report_common,
gpipe_org=gpipe_org,
threads=threads,
)

Expand Down
3 changes: 3 additions & 0 deletions q2_amr/amrfinderplus/tests/test_sample_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ def mock_run_amrfinderplus_n(
curated_ident,
coverage_min,
translation_table,
annotation_format,
report_common,
gpipe_org,
threads,
):
with open(os.path.join(working_dir, "amr_annotations.tsv"), "w"):
Expand Down
56 changes: 56 additions & 0 deletions q2_amr/amrfinderplus/tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ def test_run_amrfinderplus_n(self, mock_run_command):
curated_ident=False,
coverage_min=1,
translation_table="11",
annotation_format="prodigal",
report_common=True,
gpipe_org=True,
threads=4,
)
mock_run_command.assert_called_once_with(
Expand Down Expand Up @@ -57,6 +60,10 @@ def test_run_amrfinderplus_n(self, mock_run_command):
"1",
"--translation_table",
"11",
"--annotation_format",
"prodigal",
"--report_common",
"--gpipe_org",
],
"path_dir",
verbose=True,
Expand All @@ -77,6 +84,9 @@ def test_run_amrfinderplus_n_minimal(self, mock_run_command):
curated_ident=True,
coverage_min=None,
translation_table=None,
annotation_format=None,
report_common=False,
gpipe_org=False,
threads=None,
)
mock_run_command.assert_called_once_with(
Expand All @@ -93,3 +103,49 @@ def test_run_amrfinderplus_n_minimal(self, mock_run_command):
"path_dir",
verbose=True,
)

@patch("q2_amr.amrfinderplus.utils.run_command")
def test_run_amrfinderplus_n_value_error_report_common(self, mock_run_command):
with self.assertRaisesRegex(
ValueError, "--p-report-common requires " "--p-plus and --p-organism"
):
run_amrfinderplus_n(
working_dir="path_dir",
amrfinderplus_db="amrfinderplus_db",
dna_sequences=None,
protein_sequences=None,
gff=None,
organism=None,
plus=False,
report_all_equal=False,
ident_min=None,
curated_ident=True,
coverage_min=None,
translation_table=None,
annotation_format=None,
report_common=True,
gpipe_org=False,
threads=None,
)

@patch("q2_amr.amrfinderplus.utils.run_command")
def test_run_amrfinderplus_n_value_error_gpipe_org(self, mock_run_command):
with self.assertRaisesRegex(ValueError, "--p-gpipe_org requires --p-organism"):
run_amrfinderplus_n(
working_dir="path_dir",
amrfinderplus_db="amrfinderplus_db",
dna_sequences=None,
protein_sequences=None,
gff=None,
organism=None,
plus=False,
report_all_equal=False,
ident_min=None,
curated_ident=True,
coverage_min=None,
translation_table=None,
annotation_format=None,
report_common=False,
gpipe_org=True,
threads=None,
)
16 changes: 16 additions & 0 deletions q2_amr/amrfinderplus/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,17 @@ def run_amrfinderplus_n(
curated_ident,
coverage_min,
translation_table,
annotation_format,
report_common,
gpipe_org,
threads,
):
# Check for unallowed parameter combinations
if report_common and (not plus or not organism):
raise ValueError("--p-report-common requires --p-plus and --p-organism")
if gpipe_org and not organism:
raise ValueError("--p-gpipe_org requires --p-organism")

cmd = [
"amrfinder",
"--database",
Expand Down Expand Up @@ -73,6 +82,13 @@ def run_amrfinderplus_n(
cmd.extend(["--coverage_min", str(coverage_min)])
if translation_table:
cmd.extend(["--translation_table", str(translation_table)])
if annotation_format:
cmd.extend(["--annotation_format", str(annotation_format)])
if report_common:
cmd.append("--report_common")
if gpipe_org:
cmd.append("--gpipe_org")

try:
run_command(cmd, working_dir, verbose=True)
except subprocess.CalledProcessError as e:
Expand Down
5 changes: 5 additions & 0 deletions q2_amr/plugin_setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -1170,6 +1170,8 @@
"curated_ident": Bool,
"coverage_min": Float % Range(0, 1, inclusive_start=True, inclusive_end=True),
"translation_table": Str % Choices(translation_tables),
"report_common": Bool,
"gpipe_org": Bool,
"threads": Int % Range(0, None, inclusive_start=False),
},
outputs=[
Expand Down Expand Up @@ -1204,6 +1206,9 @@
"coverage_min": "Minimum proportion of reference gene covered for a "
"BLAST-based hit (Methods BLAST or PARTIAL).",
"translation_table": "Translation table used for BLASTX.",
"report_common": "Report proteins common to a taxonomy group.",
"gpipe_org": "Use Pathogen Detection taxgroup names as arguments to the "
"organism option",
"threads": "The number of threads to use for processing. AMRFinderPlus "
"defaults to 4 on hosts with >= 4 cores. Setting this number higher"
" than the number of cores on the running host may cause blastp to "
Expand Down

0 comments on commit e3f2abb

Please sign in to comment.