diff --git a/src/mmaseq/config/species_configs/A_pleuropneumoniae.yaml b/src/mmaseq/config/species_configs/A_pleuropneumoniae.yaml new file mode 100644 index 00000000..7b6f8bcf --- /dev/null +++ b/src/mmaseq/config/species_configs/A_pleuropneumoniae.yaml @@ -0,0 +1,2 @@ +serovar_detector: + reads: True \ No newline at end of file diff --git a/src/mmaseq/config/species_configs/test.yaml b/src/mmaseq/config/species_configs/test.yaml index f8bea168..ca472351 100644 --- a/src/mmaseq/config/species_configs/test.yaml +++ b/src/mmaseq/config/species_configs/test.yaml @@ -98,3 +98,6 @@ sistr: kmeraligner: database : [vancomycin, vancomycinOperon] reads: True + +serovar_detector: + reads: True diff --git a/src/mmaseq/data/samplesheet.tsv b/src/mmaseq/data/samplesheet.tsv index 9d872b0f..9629a6d4 100755 --- a/src/mmaseq/data/samplesheet.tsv +++ b/src/mmaseq/data/samplesheet.tsv @@ -6,3 +6,4 @@ SRR26205262 reads/SRR26205262_1.fastq.gz reads/SRR26205262_2.fastq.gz assemblies ERR2929615 reads/ERR2929615_1.fastq.gz reads/ERR2929615_2.fastq.gz assemblies/ERR2929615.fasta E_Faecalis.yaml ERR2929578 reads/ERR2929578_1.fastq.gz reads/ERR2929578_2.fastq.gz assemblies/ERR2929578.fasta E_Faecium.yaml ERR142064 reads/ERR142064_1.fastq.gz reads/ERR142064_2.fastq.gz assemblies/ERR142064.fasta C_difficile.yaml +ERR14229029 reads/ERR14229029_1.fastq.gz reads/ERR14229029_2.fastq.gz assemblies/ERR14229029.fasta A_pleuropneumoniae.yaml \ No newline at end of file diff --git a/src/mmaseq/workflow/envs/serovar_detector.yaml b/src/mmaseq/workflow/envs/serovar_detector.yaml new file mode 100644 index 00000000..5343a695 --- /dev/null +++ b/src/mmaseq/workflow/envs/serovar_detector.yaml @@ -0,0 +1,3 @@ +name: serovar_detector +dependencies: + - bioconda::serovar_detector diff --git a/src/mmaseq/workflow/rules/Analysis.smk b/src/mmaseq/workflow/rules/Analysis.smk index a1f3eff7..df91318d 100644 --- a/src/mmaseq/workflow/rules/Analysis.smk +++ b/src/mmaseq/workflow/rules/Analysis.smk @@ -449,6 +449,33 @@ rule serotypefinder: mv $OUTDIR/{params.tmp_results} {output.results} >> {log.stdout} 2>&1 """ + +rule serovar_detector: + input: + assembly = rules.assembly.output.assembly + params: + tmp_results = "serovars.tsv" + output: + results = f"{outdir}/{{sample}}/raw/serovar_detector/serovar_detector.tsv" + conda: + ENVS_DIR / "serovar_detector.yaml" + log: + stdout = f"{logdir}/serovar_detector_{{sample}}.log" + shell: + """ + INDIR = $(dirname {input.assembly}) + OUTDIR = $(dirname {output.results}) + + cmd="serovar_detector -a $INDIR -o $OUTDIR -t 1" + + echo "Executing command:\n$cmd\n" > {log.stdout} 2>&1 + eval $cmd >> {log.stdout} 2>&1 + + echo "Renaming result files" >> {log.stdout} 2>&1 + mv $OUTDIR/{params.tmp_results} {output.results} >> {log.stdout} 2>&1 + """ + + ### SNP Analysis ### # Samtools and bcftools diff --git a/src/mmaseq/workflow/rules/Paired_Reads.smk b/src/mmaseq/workflow/rules/Paired_Reads.smk index d8670d41..cacb2945 100644 --- a/src/mmaseq/workflow/rules/Paired_Reads.smk +++ b/src/mmaseq/workflow/rules/Paired_Reads.smk @@ -385,6 +385,34 @@ rule PR_serotypefinder: mv $OUTDIR/{params.tmp_results} {output.results} >> {log.stdout} 2>&1 """ + +rule PR_serovar_detector: + input: + R1 = lambda wc: samplesheet.loc[wc.sample, "read1"], + R2 = lambda wc: samplesheet.loc[wc.sample, "read2"] + params: + tmp_results = "serovars.tsv" + output: + results = f"{outdir}/{{sample}}/raw/PR/serovar_detector/serovar_detector.tsv" + conda: + ENVS_DIR / "serovar_detector.yaml" + log: + stdout = f"{logdir}/PR/serovar_detector_{{sample}}.log" + shell: + """ + INDIR = $(dirname {input.R1}) + OUTDIR = $(dirname {output.results}) + + cmd="serovar_detector -r $INDIR -o $OUTDIR -t 1" + + echo "Executing command:\n$cmd\n" > {log.stdout} 2>&1 + eval $cmd >> {log.stdout} 2>&1 + + echo "Renaming result files" >> {log.stdout} 2>&1 + mv $OUTDIR/{params.tmp_results} {output.results} >> {log.stdout} 2>&1 + """ + + rule PR_lrefinder: input: res = rules.PR_kmeraligner.output.results,