STAR INDEX¶
Index fasta sequences with STAR
URL: https://github.com/alexdobin/STAR
Example¶
This wrapper can be used in the following way:
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:
"v1.31.1-39-gb5b9878a/bio/star/index"
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¶
star=2.7.10b
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¶
"""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
)