Skip to content

Commit

Permalink
Optional spikeins report
Browse files Browse the repository at this point in the history
Only run if spikeins_db is set in config.
  • Loading branch information
yesimon committed Apr 11, 2016
1 parent 2fcbc0f commit aba821b
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 37 deletions.
35 changes: 20 additions & 15 deletions pipes/Snakefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
This is a basic framework for processing of of viral genomes, currently
tailored for EBOV. Some generalization work needed to expand this
to generic viral genomes with an arbitrary number of segments/chromosomes.
Make copies of this Snakefile and config.yaml to your analysis directory and
customize as needed.
"""
Expand All @@ -25,21 +25,26 @@ include: os.path.join(pipesDir, 'ncbi.rules')
include: os.path.join(pipesDir, 'intrahost.rules')
include: os.path.join(pipesDir, 'reports.rules')

all_inputs = [
# create final assemblies for all samples
expand("{data_dir}/{subdir}/{sample}.fasta",
data_dir=config["data_dir"], subdir=config["subdirs"]["assembly"],
sample=read_samples_file(config["samples_assembly"])),
# create BAMs of aligned reads to own consensus and to common ref
expand("{data_dir}/{subdir}/{sample}.bam",
data_dir=config["data_dir"], subdir=config["subdirs"]["align_self"],
sample=read_samples_file(config["samples_assembly"])),
# intrahost variant calling
config["data_dir"]+'/'+config["subdirs"]["intrahost"] +'/isnvs.vcf.gz',
# create summary reports
config["reports_dir"]+'/summary.fastqc.txt',
]

if config.get('spikeins_db'):
all_inputs.append(config["reports_dir"]+'/summary.spike_count.txt')

rule all:
input:
# create final assemblies for all samples
expand("{data_dir}/{subdir}/{sample}.fasta",
data_dir=config["data_dir"], subdir=config["subdirs"]["assembly"],
sample=read_samples_file(config["samples_assembly"])),
# create BAMs of aligned reads to own consensus and to common ref
expand("{data_dir}/{subdir}/{sample}.bam",
data_dir=config["data_dir"], subdir=config["subdirs"]["align_self"],
sample=read_samples_file(config["samples_assembly"])),
# intrahost variant calling
config["data_dir"]+'/'+config["subdirs"]["intrahost"] +'/isnvs.vcf.gz',
# create summary reports
config["reports_dir"]+'/summary.fastqc.txt',
config["reports_dir"]+'/summary.spike_count.txt'
input: all_inputs
params: LSF="-N"
run:
if "job_profiler" in config:
Expand Down
46 changes: 24 additions & 22 deletions pipes/rules/reports.rules
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@ __author__ = 'Kristian Andersen <andersen@broadinstitute.org>, Daniel Park <dpar
from snakemake.utils import makedirs
import os, os.path, gzip, shutil

all_reports = [config["reports_dir"]+'/summary.fastqc.txt']

if config.get("spikeins_db"):
all_reports.append(config["reports_dir"]+'/summary.spike_count.txt')

rule all_reports:
input:
config["reports_dir"]+'/summary.fastqc.txt',
config["reports_dir"]+'/summary.spike_count.txt'
input: all_reports
params: LSF="-N"


Expand Down Expand Up @@ -42,23 +44,23 @@ rule consolidate_fastqc:

#-----------SPIKE-INS------------------

rule spikein_report:
input: config["data_dir"]+'/'+config["subdirs"]["depletion"]+'/{sample}.cleaned.bam'
output: config["reports_dir"]+'/spike_count/{sample}.spike_count.txt'
resources: mem=3
params: LSF=config.get('LSF_queues', {}).get('short', '-W 4:00'),
UGER=config.get('UGER_queues', {}).get('short', '-q short'),
logid="{sample}",
spikeins_db=config["spikeins_db"]
run:
makedirs(os.path.join(config["reports_dir"], 'spike_count'))
makedirs(os.path.join(config["tmp_dir"], config["subdirs"]["depletion"]))
shell("{config[bin_dir]}/read_utils.py align_and_count_hits {input} {params.spikeins_db} {output}")

rule consolidate_spike_count:
input: expand("{{dir}}/spike_count/{sample}.spike_count.txt", \
sample=read_samples_file(config["samples_per_run"]))
output: '{dir}/summary.spike_count.txt'
params: logid="all"
shell: "{config[bin_dir]}/reports.py consolidate_spike_count {wildcards.dir}/spike_count {output}"
if config.get("spikeins_db"):
rule spikein_report:
input: config["data_dir"]+'/'+config["subdirs"]["depletion"]+'/{sample}.cleaned.bam'
output: config["reports_dir"]+'/spike_count/{sample}.spike_count.txt'
resources: mem=3
params: LSF=config.get('LSF_queues', {}).get('short', '-W 4:00'),
UGER=config.get('UGER_queues', {}).get('short', '-q short'),
logid="{sample}",
spikeins_db=config["spikeins_db"]
run:
makedirs(os.path.join(config["reports_dir"], 'spike_count'))
makedirs(os.path.join(config["tmp_dir"], config["subdirs"]["depletion"]))
shell("{config[bin_dir]}/read_utils.py align_and_count_hits {input} {params.spikeins_db} {output}")

rule consolidate_spike_count:
input: expand("{{dir}}/spike_count/{sample}.spike_count.txt", \
sample=read_samples_file(config["samples_per_run"]))
output: '{dir}/summary.spike_count.txt'
params: logid="all"
shell: "{config[bin_dir]}/reports.py consolidate_spike_count {wildcards.dir}/spike_count {output}"

0 comments on commit aba821b

Please sign in to comment.