.. _`bio/ragtag/scaffold`: RAGTAG-SCAFFOLD =============== .. image:: https://img.shields.io/github/issues-pr/snakemake/snakemake-wrappers/bio/ragtag/scaffold?label=version%20update%20pull%20requests :target: https://github.com/snakemake/snakemake-wrappers/pulls?q=is%3Apr+is%3Aopen+label%3Abio/ragtag/scaffold Homology-based assembly scaffolding. **URL**: https://github.com/malonge/RagTag/wiki/scaffold Example ------- This wrapper can be used in the following way: .. code-block:: python rule scaffold: input: query="fasta/{query}.fasta", ref="fasta/{reference}.fasta", output: fasta="{query}_scaffold_{reference}/ragtag.scaffold.fasta", agp="{query}_scaffold_{reference}/ragtag.scaffold.agp", stats="{query}_scaffold_{reference}/ragtag.scaffold.stats", params: extra="", threads: 16 log: "logs/ragtag/{query}_scaffold_{reference}.log", wrapper: "v3.0.1/bio/ragtag/scaffold" Note that input, output and log file paths can be chosen freely. When running with .. code-block:: bash snakemake --use-conda the software dependencies will be automatically deployed into an isolated environment before execution. Notes ----- Multiple threads can be used during Minimap/Unimap alignment. Software dependencies --------------------- * ``ragtag=2.1.0`` Input/Output ------------ **Input:** * ``ref``: reference fasta file (uncompressed or bgzipped) * ``query``: query fasta file (uncompressed or bgzipped) **Output:** * ``fasta``: The scaffolds in FASTA format, defined by the ordering and orientations of ragtag.scaffold.agp. * ``agp``: The ordering and orientations of query sequences in AGP format. * ``stats``: Summary statistics for the scaffolding process. Params ------ * ``extra``: additional parameters Authors ------- * Curro Campuzano Jiménez Code ---- .. code-block:: python """Snakemake wrapper for ragtag-scaffold.""" __author__ = "Curro Campuzano Jiménez" __copyright__ = "Copyright 2023, Curro Campuzano Jiménez" __email__ = "campuzanocurro@gmail.com" __license__ = "MIT" from snakemake.shell import shell import tempfile log = snakemake.log_fmt_shell(stdout=True, stderr=True) extra = snakemake.params.get("extra", "") assert snakemake.output.keys(), "Output must contain at least one named file." valid_keys = ["agp", "fasta", "stats"] for key in snakemake.output.keys(): assert ( key in valid_keys ), "Invalid key in output. Valid keys are: %r. Given: %r." % (valid_keys, key) with tempfile.TemporaryDirectory() as tmpdir: shell( "ragtag.py scaffold" " {snakemake.input.ref}" " {snakemake.input.query}" " {extra}" " -o {tmpdir} -t {snakemake.threads}" " {log}" ) for key in valid_keys: outfile = snakemake.output.get(key) if outfile: shell("mv {tmpdir}/ragtag.scaffold.{key} {outfile}") .. |nl| raw:: html