Skip to content

Commit

Permalink
Merge branch 'main' into 26_change_read_in_text
Browse files Browse the repository at this point in the history
  • Loading branch information
VinzentRisch committed Jan 16, 2024
2 parents ed4331d + c0ca96d commit c9a49ed
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 21 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/black.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
name: Lint
name: Black

on: [push, pull_request]

jobs:
lint:
black:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: psf/black@stable
with:
version: "23.12.1"
args: ". --check --extend-exclude '.*_version\.py$'"
options: ". --check --extend-exclude '.*_version\\.py$' --verbose"
7 changes: 5 additions & 2 deletions q2_amr/card/reads.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,11 @@ def annotate_reads_card(
for map_type, des_dir in zip(
["allele", "gene"], [samp_allele_dir, samp_gene_dir]
):
files = [f"{map_type}_mapping_data.txt", "overall_mapping_stats.txt"]

files = [f"{map_type}_mapping_data.txt"]
# mapping statistics only go to the allele directories
files.append(
"overall_mapping_stats.txt"
) if map_type == "allele" else None
for file in files:
shutil.copy(
os.path.join(samp_input_dir, "output." + file),
Expand Down
34 changes: 26 additions & 8 deletions q2_amr/plugin_setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
)
from q2_types.sample_data import SampleData
from q2_types_genomics.per_sample_data import MAGs
from qiime2.core.type import Bool, Choices, Int, Range, Str
from qiime2.core.type import Bool, Choices, Int, Properties, Range, Str, TypeMap
from qiime2.plugin import Citations, Plugin

from q2_amr import __version__
Expand Down Expand Up @@ -118,21 +118,41 @@
citations=[citations["alcock_card_2023"]],
)

P_aligner, T_allele_annotation, T_gene_annotation = TypeMap(
{
Str
% Choices("kma"): (
SampleData[CARDAlleleAnnotation % Properties("kma")],
SampleData[CARDGeneAnnotation % Properties("kma")],
),
Str
% Choices("bowtie2"): (
SampleData[CARDAlleleAnnotation % Properties("bowtie2")],
SampleData[CARDGeneAnnotation % Properties("bowtie2")],
),
Str
% Choices("bwa"): (
SampleData[CARDAlleleAnnotation % Properties("bwa")],
SampleData[CARDGeneAnnotation % Properties("bwa")],
),
}
)

plugin.methods.register_function(
function=annotate_reads_card,
inputs={
"reads": SampleData[PairedEndSequencesWithQuality | SequencesWithQuality],
"card_db": CARDDatabase,
},
parameters={
"aligner": Str % Choices(["kma", "bowtie2", "bwa"]),
"aligner": P_aligner,
"threads": Int % Range(0, None, inclusive_start=False),
"include_wildcard": Bool,
"include_other_models": Bool,
},
outputs=[
("amr_allele_annotation", SampleData[CARDAlleleAnnotation]),
("amr_gene_annotation", SampleData[CARDGeneAnnotation]),
("amr_allele_annotation", T_allele_annotation),
("amr_gene_annotation", T_gene_annotation),
("allele_feature_table", FeatureTable[Frequency]),
("gene_feature_table", FeatureTable[Frequency]),
],
Expand Down Expand Up @@ -196,11 +216,9 @@

plugin.visualizers.register_function(
function=visualize_annotation_stats,
inputs={"amr_reads_annotation": CARDGeneAnnotation | CARDAlleleAnnotation},
inputs={"amr_reads_annotation": SampleData[CARDAlleleAnnotation]},
parameters={},
input_descriptions={
"amr_reads_annotation": "AMR annotation mapped on alleles or genes."
},
input_descriptions={"amr_reads_annotation": "AMR annotations on the allele level."},
parameter_descriptions={},
name="Visualize mapping statistics.",
description="Visualize mapping statistics of an annotate-reads-card output.",
Expand Down
5 changes: 4 additions & 1 deletion q2_amr/tests/card/test_reads.py
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,10 @@ def annotate_reads_card_test_body(self, read_type):
# resulting CARD annotation objects
for num in [0, 1]:
map_type = "allele" if num == 0 else "gene"
files = [f"{map_type}_mapping_data.txt", "overall_mapping_stats.txt"]
files = [f"{map_type}_mapping_data.txt"]
files.append(
"overall_mapping_stats.txt"
) if map_type == "allele" else None
for samp in ["sample1", "sample2"]:
for file in files:
self.assertTrue(
Expand Down
7 changes: 0 additions & 7 deletions q2_amr/types/_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -421,14 +421,7 @@ class CARDGeneAnnotationDirectoryFormat(MultiDirValidationMixin, model.Directory
gene = model.FileCollection(
r".+(gene_mapping_data.txt)$", format=CARDGeneAnnotationFormat
)
stats = model.FileCollection(
r".+(overall_mapping_stats.txt)$", format=CARDAnnotationStatsFormat
)

@gene.set_path_maker
def gene_path_maker(self, sample_id):
return "%s/gene_mapping_data.txt" % sample_id

@stats.set_path_maker
def stats_path_maker(self, sample_id):
return "%s/overall_mapping_stats.txt" % sample_id

0 comments on commit c9a49ed

Please sign in to comment.