.. _`bio/star/index`: STAR INDEX ========== .. image:: https://img.shields.io/github/issues-pr/snakemake/snakemake-wrappers/bio/star/index?label=version%20update%20pull%20requests :target: https://github.com/snakemake/snakemake-wrappers/pulls?q=is%3Apr+is%3Aopen+label%3Abio/star/index Index fasta sequences with STAR **URL**: https://github.com/alexdobin/STAR Example ------- This wrapper can be used in the following way: .. code-block:: python rule star_index: input: fasta="{genome}.fasta", output: directory("{genome}"), message: "Testing STAR index" threads: 1 params: extra="", log: "logs/star_index_{genome}.log", wrapper: "v3.0.1/bio/star/index" 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. Software dependencies --------------------- * ``star=2.7.11a`` Input/Output ------------ **Input:** * A (multi)fasta formatted file **Output:** * A directory containing the indexed sequence for downstream STAR mapping Params ------ * ``sjdbOverhang``: length of the donor/acceptor sequence on each side of the junctions (optional) * ``extra``: additional program arguments. Authors ------- * Thibault Dayris * Tomás Di Domenico * Filipe G. Vieira Code ---- .. code-block:: python """Snakemake wrapper for STAR index""" __author__ = "Thibault Dayris" __copyright__ = "Copyright 2019, Dayris Thibault" __email__ = "thibault.dayris@gustaveroussy.fr" __license__ = "MIT" import tempfile from snakemake.shell import shell from snakemake.utils import makedirs log = snakemake.log_fmt_shell(stdout=True, stderr=True) extra = snakemake.params.get("extra", "") sjdb_overhang = snakemake.params.get("sjdbOverhang", "") if sjdb_overhang: sjdb_overhang = f"--sjdbOverhang {sjdb_overhang}" gtf = snakemake.input.get("gtf", "") if gtf: gtf = f"--sjdbGTFfile {gtf}" with tempfile.TemporaryDirectory() as tmpdir: shell( "STAR" " --runThreadN {snakemake.threads}" # Number of threads " --runMode genomeGenerate" # Indexation mode " --genomeFastaFiles {snakemake.input.fasta}" # Path to fasta files " {sjdb_overhang}" # Read-len - 1 " {gtf}" # Highly recommended GTF " {extra}" # Optional parameters " --outTmpDir {tmpdir}/STARtmp" # Temp dir " --genomeDir {snakemake.output}" # Path to output " {log}" # Logging ) .. |nl| raw:: html