Skip to content
Snippets Groups Projects
Commit e8d91743 authored by Thomas Faraut's avatar Thomas Faraut
Browse files

some comestic changes

parent f9dacd58
No related branches found
No related tags found
1 merge request!13some comestic changes
...@@ -21,7 +21,7 @@ workdir: wdir ...@@ -21,7 +21,7 @@ workdir: wdir
snakemake_utils = SnakemakeUtils(samples) snakemake_utils = SnakemakeUtils(samples)
include: "tools/threads.snk" include: "tools/utils.snk"
localrules: all_align localrules: all_align
...@@ -91,4 +91,4 @@ rule markduplicate: ...@@ -91,4 +91,4 @@ rule markduplicate:
""" """
picard MarkDuplicates I={input.bam} O={output.bam} M={output.metrics} REMOVE_DUPLICATES=true 1> {log.stdout} \ picard MarkDuplicates I={input.bam} O={output.bam} M={output.metrics} REMOVE_DUPLICATES=true 1> {log.stdout} \
2> {log.stderr}; 2> {log.stderr};
""" """
\ No newline at end of file
import sys import sys
import os import os
include: "tools/utils.snk"
ROOTPATH = os.path.dirname(os.path.dirname(workflow.snakefile)) ROOTPATH = os.path.dirname(os.path.dirname(workflow.snakefile))
sys.path.insert(0, os.path.join(ROOTPATH, "lib")) sys.path.insert(0, os.path.join(ROOTPATH, "lib"))
os.environ["PYTHONPATH"] = os.path.join(ROOTPATH, "lib") os.environ["PYTHONPATH"] = os.path.join(ROOTPATH, "lib")
...@@ -70,7 +73,6 @@ bp_inputs, bp_params = buildpop_inputs() ...@@ -70,7 +73,6 @@ bp_inputs, bp_params = buildpop_inputs()
bp_outputs = buildpop_outputs() bp_outputs = buildpop_outputs()
include: "tools/threads.snk"
include: "align.snk" include: "align.snk"
include: "referencebundle.snk" include: "referencebundle.snk"
include: "detection.snk" include: "detection.snk"
...@@ -229,4 +231,3 @@ rule buildresults: ...@@ -229,4 +231,3 @@ rule buildresults:
touch results/{wildcards.svtype}/Summarized_results_{wildcards.svtype}.ipynb touch results/{wildcards.svtype}/Summarized_results_{wildcards.svtype}.ipynb
touch results/{wildcards.svtype}/Summarized_results_{wildcards.svtype}.html touch results/{wildcards.svtype}/Summarized_results_{wildcards.svtype}.html
""" """
...@@ -8,6 +8,8 @@ from os.path import join ...@@ -8,6 +8,8 @@ from os.path import join
from pyfaidx import Fasta from pyfaidx import Fasta
# from natsort import natsorted # from natsort import natsorted
include: "tools/utils.snk"
ROOTPATH = os.path.dirname(workflow.snakefile) ROOTPATH = os.path.dirname(workflow.snakefile)
sys.path.insert(0, os.path.join(ROOTPATH, "lib")) sys.path.insert(0, os.path.join(ROOTPATH, "lib"))
os.environ["PYTHONPATH"] = os.path.join(ROOTPATH, "lib") os.environ["PYTHONPATH"] = os.path.join(ROOTPATH, "lib")
...@@ -30,15 +32,11 @@ SUFF_TYPES = ("gcmask", "svmask", "lcmask") ...@@ -30,15 +32,11 @@ SUFF_TYPES = ("gcmask", "svmask", "lcmask")
p_repeats = re.compile('.*(Satellite|Simple_repeat|Low_complexity).*') p_repeats = re.compile('.*(Satellite|Simple_repeat|Low_complexity).*')
p_repeats_all = re.compile('.*(Satellite|Simple_repeat|Line|SINE|LTR).*') p_repeats_all = re.compile('.*(Satellite|Simple_repeat|Line|SINE|LTR).*')
def message(mes):
sys.stderr.write("|--- " + mes + "\n")
include: "tools/threads.snk"
CHROMS = config['chromosomes'] CHROMS = config['chromosomes']
PERL5LIB = get_perl5lib()
shell.prefix("export PATH=%s/bin:\"$PATH\";" % ROOTPATH) shell.prefix("export PATH=%s/bin:\"$PATH\"; export PERL5LIB=%s; " % (ROOTPATH, PERL5LIB))
rule final: rule final:
input: input:
...@@ -54,19 +52,24 @@ rule final: ...@@ -54,19 +52,24 @@ rule final:
rule get_fasta: rule get_fasta:
input: input:
SUBDIR + PREFIX+"_raw.fasta" fasta=SUBDIR + PREFIX+"_raw.fasta",
fai=SUBDIR + PREFIX+"_raw.fasta.fai"
output: output:
SUBDIR + PREFIX+".fasta" SUBDIR + PREFIX+".fasta"
run: params:
from Bio import SeqIO chromosomes=CHROMS
with open(input[0], "rU") as handle, open(output[0], "w") as f: shell:
for seq in SeqIO.parse(handle, "fasta"): "samtools faidx {input.fasta} {params.chromosomes} > {output}"
if seq.id in CHROMS: # run:
SeqIO.write([seq], f, "fasta") # from Bio import SeqIO
os.remove(input[0]) # with open(input[0], "rU") as handle, open(output[0], "w") as f:
i_fai = input[0] + ".fai" # for seq in SeqIO.parse(handle, "fasta"):
if os.path.exists(i_fai): # if seq.id in CHROMS:
os.remove(i_fai) # SeqIO.write([seq], f, "fasta")
# os.remove(input[0])
# i_fai = input[0] + ".fai"
# if os.path.exists(i_fai):
# os.remove(i_fai)
rule index: rule index:
input: input:
...@@ -74,7 +77,7 @@ rule index: ...@@ -74,7 +77,7 @@ rule index:
output: output:
SUBDIR + "{type}.fasta.fai" SUBDIR + "{type}.fasta.fai"
log: log:
"logs/index/{type}.log" SUBDIR + "logs/index/{type}.log"
shell: shell:
"samtools faidx {input} &> {log}" "samtools faidx {input} &> {log}"
...@@ -100,6 +103,8 @@ rule preparesvmask: ...@@ -100,6 +103,8 @@ rule preparesvmask:
"export PATH=$SV_DIR/bwa:\"$PATH\"; export LD_LIBRARY_PATH=$SV_DIR/bwa:\"$LD_LIBRARY_PATH\"; " "export PATH=$SV_DIR/bwa:\"$PATH\"; export LD_LIBRARY_PATH=$SV_DIR/bwa:\"$LD_LIBRARY_PATH\"; "
"ln {input.fasta} {output.seq}; " "ln {input.fasta} {output.seq}; "
"samtools faidx {output.seq}; " "samtools faidx {output.seq}; "
# Checking genome size for bwa index
#"genomesize=`cat {output.seq}.fai | awk '{ totsize = totsize +$0}END{ print totsize}'`; "
"bwa index -a bwtsw {output.seq} 2> {log} || bwa index -a is {output.seq} 2> {log}" "bwa index -a bwtsw {output.seq} 2> {log} || bwa index -a is {output.seq} 2> {log}"
rule mergesvmask: rule mergesvmask:
...@@ -151,13 +156,16 @@ rule repeatmask: ...@@ -151,13 +156,16 @@ rule repeatmask:
output: output:
SUBDIR + "reference.fasta.out" SUBDIR + "reference.fasta.out"
params: params:
sp = config['species'] sp = config['species'],
perl5lib = PERL5LIB
threads: threads:
get_threads("repeatmask", 12) get_threads("repeatmask", 12)
shell: shell:
"export PATH=$SV_DIR/bwa:\"$PATH\"; export LD_LIBRARY_PATH=$SV_DIR/bwa:\"$LD_LIBRARY_PATH\"; " """
"RepeatMasker -pa {threads} -species {params.sp} -xsmall {input.fasta}" export PERL5LIB={params.perl5lib}
" > {input.fasta}.repeatmasker.log" RepeatMasker -pa {threads} -species {params.sp} -xsmall {input.fasta}
> {input.fasta}.repeatmasker.log
"""
rule rdmask: rule rdmask:
input: input:
......
import os
import shutil
ROOTPATH = os.path.dirname(os.path.dirname(workflow.snakefile))
sys.path.insert(0, os.path.join(ROOTPATH, "lib"))
os.environ["PYTHONPATH"] = os.path.join(ROOTPATH, "lib")
def get_threads(rule, default):
cluster_config = snakemake.workflow.cluster_config
if rule in cluster_config and "threads" in cluster_config[rule]:
return cluster_config[rule]["threads"]
if "default" in cluster_config and "threads" in cluster_config["default"]:
return cluster_config["default"]["threads"]
return default
def get_perl5lib():
condaprefix = os.environ["CONDA_PREFIX"]
perllibpath = os.path.join(condaprefix, "lib", "perl5")
return perllibpath
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment