TOULLIGQC

https://img.shields.io/github/issues-pr/snakemake/snakemake-wrappers/bio/toulligqc?label=version%20update%20pull%20requests

A post sequencing QC tool for Oxford Nanopore sequencers.

URL: https://github.com/GenomiqueENS/toulligQC

Example

This wrapper can be used in the following way:

rule toulligqc_sequencing_summary:
    input:
        "demodata/sequencing_summary.txt",
    output:
        "toulligqc_sequencing_summary/report.html",
    log:
        "toulligqc_sequencing_summary/merged.log",
    params:
        extra="",  # optional additional parameters as string
    wrapper:
        "v5.6.1-7-g2ff6d79/bio/toulligqc"

rule toulligqc_bam:
    input:
        "demodata/test.sorted.bam",
    output:
        "toulligqc_bam/report.html",
    log:
        "toulligqc_bam/merged.log",
    params:
        extra="",  # optional additional parameters as string
    wrapper:
        "v5.6.1-7-g2ff6d79/bio/toulligqc"

rule toulligqc_fastq:
    input:
        "demodata/test.fastq.gz",
    output:
        "toulligqc_fastq/report.html",
    log:
        "toulligqc_fastq/merged.log",
    params:
        extra="",  # optional additional parameters as string
    wrapper:
        "v5.6.1-7-g2ff6d79/bio/toulligqc"

Note that input, output and log file paths can be chosen freely.

When running with

snakemake --use-conda

the software dependencies will be automatically deployed into an isolated environment before execution.

Software dependencies

  • toulligqc=2.5.6

  • snakemake-wrapper-utils=0.6.2

Input/Output

Input:

  • path to input data. Can be either a sequencing summary file, fastq file (uncompressed/ compressed) or bam file.

Output:

  • report and plots of QC results

Params

  • extra: Optional parameters for toulligqc

Authors

  • Ali Hamraoui

  • Salomé Brunon

Code

__author__ = "Salomé Brunon"
__copyright__ = "Copyright 2024, Salomé Brunon"
__email__ = "salome.brunon@gmail.com"
__license__ = "CECILL-2.1"

from snakemake.shell import shell
from pathlib import Path

extra = snakemake.params.get("extra", "")
log = snakemake.log_fmt_shell(stdout=True, stderr=True)

input_path = Path(snakemake.input[0])
if input_path.suffix == ".gz":
    input_path = input_path.with_suffix("")

if input_path.suffix in [".fastq", ".fq"]:
    input_flag = "--fastq "
elif input_path.suffix == ".bam":
    input_flag = "--bam "
else:
    input_flag = "--sequencing-summary-source "

outdir = Path(snakemake.output[0]).parent

shell("toulligqc {input_flag} {snakemake.input[0]} {extra} --force -n {outdir} {log}")