Newer
Older
'''
Run ALFA from stranded bedgraph files
'''
input:
plus = os.path.join(
config["output_dir"],
gtf = lambda wildcards:
os.path.join(
config["alfa_indexes"],
BIOPZ-Katsantoni Maria
committed
get_sample(
'organism',
search_id='index',
search_value=wildcards.sample),
get_sample(
'index_size',
search_id='index',
search_value=wildcards.sample),
"ALFA",
"sorted_genes.stranded.ALFA_index")
output:
biotypes = os.path.join(
config["output_dir"],
"ALFA_plots.Biotypes.pdf"),
categories = os.path.join(
config["output_dir"],
"ALFA_plots.Categories.pdf"),
table = os.path.join(
config["output_dir"],
out_dir = lambda wildcards, output:
os.path.dirname(output.biotypes),
BIOPZ-Katsantoni Maria
committed
get_sample(
'alfa_directionality',
search_id='index',
search_value=wildcards.sample),
genome_index = lambda wildcards, input:
os.path.abspath(
os.path.join(
os.path.dirname(input.gtf),
"sorted_genes")),
"samples",
"{sample}",
"alfa_qc.{unique}.log")
"(cd {params.out_dir}; \
alfa \
-g {params.genome_index} \
--bedgraph {params.plus} {params.minus} {params.name} \
'''
Run ALFA from stranded bedgraph files on all samples
'''
tables = lambda wildcards:
expand(
os.path.join(
config["output_dir"],
"samples",
"{sample}",
"ALFA",
"{unique}",
BIOPZ-Katsantoni Maria
committed
sample=pd.unique(samples_table.index.values),
output:
biotypes = os.path.join(
config["output_dir"],
"ALFA",
"ALFA_plots.Biotypes.pdf"),
categories = os.path.join(
config["output_dir"],
"ALFA",
out_dir = lambda wildcards, output:
os.path.dirname(output.biotypes)
log:
os.path.join(
config["log_dir"],
"alfa_qc_all_samples.{unique}.log")
"(alfa -c {input.tables} -o {params.out_dir}) &> {log}"
expand(
os.path.join(
config["output_dir"],
"ALFA",
"{unique}",
"ALFA_plots.{annotation}.pdf"),
unique=["Unique", "UniqueMultiple"],
annotation=["Categories", "Biotypes"])
log:
os.path.join(
config["log_dir"],
"alfa_qc_all_samples.concat.log")
"docker://zavolab/imagemagick:7.0.8"
"(convert -append -density {params.density} \
{input} {output}) &> {log}"
rule prepare_multiqc_config:
'''
Prepare config for the MultiQC
'''
input:
script = os.path.join(
workflow.basedir,
"workflow",
"scripts",
output:
multiqc_config = os.path.join(
config["output_dir"],
"multiqc_config.yaml")
logo_path = config['report_logo'],
multiqc_intro_text = config['report_description'],
url = config['report_url']
log:
stderr = os.path.join(
config["log_dir"],
"prepare_multiqc_config.stderr.log"),
stdout = os.path.join(
config["log_dir"],
"prepare_multiqc_config.stdout.log")
shell:
--intro-text '{params.multiqc_intro_text}' \
--custom-logo {params.logo_path} \
--url '{params.url}') \
BIOPZ-Katsantoni Maria
committed
sample=pd.unique(samples_table.index.values),
mate="fq1"),
fastqc_pe = expand(
os.path.join(
config['output_dir'],
"samples",
"{sample}",
"fastqc",
"{mate}"),
BIOPZ-Katsantoni Maria
committed
sample=[i for i in pd.unique(
samples_table[samples_table['seqmode'] == 'pe'].index.values)],
mate="fq2"),
pseudoalignment = expand(
os.path.join(
config['output_dir'],
BIOPZ-Katsantoni Maria
committed
sample=[i for i in pd.unique(samples_table.index.values)],
seqmode=[get_sample('seqmode', search_id='index', search_value=i)
for i in pd.unique(samples_table.index.values)]),
config["output_dir"],
"multiqc_config.yaml")
output:
multiqc_report = directory(
os.path.join(
config["output_dir"],
"multiqc_summary"))
results_dir = os.path.join(
config["output_dir"]),
log_dir = config["log_dir"]
stderr = os.path.join(
config["log_dir"],
stdout = os.path.join(
config["log_dir"],
singularity:
"docker://ewels/multiqc:1.7"
shell:
"(multiqc \
--outdir {output.multiqc_report} \
--config {input.multiqc_config} \
{params.results_dir} \
{params.log_dir};) \
1> {log.stdout} 2> {log.stderr}"
sort bedGraphs in order to work with bedGraphtobigWig
config["output_dir"],
"samples",
"{sample}",
"ALFA",
"{unique}",
sorted_bg = os.path.join(
config["output_dir"],
"samples",
"{sample}",
"bigWig",
"{unique}",
"{sample}_{unique}_{strand}.sorted.bg")
singularity:
"docker://cjh4zavolab/bedtools:2.27"
stderr = os.path.join(
config["log_dir"],
"sort_bg_{unique}_{strand}.stderr.log")
"(sortBed \
-i {input.bg} \
> {output.sorted_bg};) 2> {log.stderr}"
bedGraphtobigWig, for viewing in genome browsers
sorted_bg = os.path.join(
config["output_dir"],
"samples",
"{sample}",
"bigWig",
"{unique}",
"{sample}_{unique}_{strand}.sorted.bg"),
chr_sizes = lambda wildcards:
os.path.join(
config['star_indexes'],
BIOPZ-Katsantoni Maria
committed
get_sample(
'organism',
search_id='index',
search_value=wildcards.sample),
get_sample(
'index_size',
search_id='index',
search_value=wildcards.sample),
"STAR_index",
"chrNameLength.txt")
bigWig = os.path.join(
config["output_dir"],
"samples",
"{sample}",
"bigWig",
"{unique}",
"{sample}_{unique}_{strand}.bw")
singularity:
"docker://zavolab/bedgraphtobigwig:4-slim"
stderr = os.path.join(
config["log_dir"],
"samples",
"{sample}",
"bigwig_{unique}_{strand}.stderr.log"),
stdout = os.path.join(
config["log_dir"],
"samples",
"{sample}",
"bigwig_{unique}_{strand}.stdout.log")
"(bedGraphToBigWig \
{input.sorted_bg} \
{input.chr_sizes} \
{output.bigWig};) \
1> {log.stdout} 2> {log.stderr}"