-
Notifications
You must be signed in to change notification settings - Fork 3
/
Assembly_map.snake
61 lines (55 loc) · 2.68 KB
/
Assembly_map.snake
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# ---- Assembly ----------------------------------------------------------------
# Assemble with MegaHIT
rule megahit:
input: left=lambda w:R1[w["group"]],
right=lambda w:R2[w["group"]],
sample_processing= IN+"/quality_done"
output: "{group}/contigs/contigs.fa"
params: left=lambda w: ",".join(R1[w["group"]]),
right=lambda w: ",".join(R2[w["group"]]),
dir="{group}/assembly",
Additional_params = ASSEMBLER_PARAMS,
assembly = "../assembly/final.contigs.fa"
threads: 32
resources:
slurm_partition = get_resource("partition",mult=5),
mem_mb = get_resource("mem",mult=5),
# exclude = "n80546,n83030,n83032"
log: "{group}/assembly/assembly.log"
conda : CONDA_ENV + "/megahit.yaml"
# singularity : "docker://quay.io/annacprice/megahit:1.2.9"
shell: """
phymem=$(awk '/MemTotal/{{print $2}}' /proc/meminfo)
mem=$(echo "{resources.mem_mb} * 1024 / $phymem " | bc -l )
megahit -1 {params.left} -2 {params.right} {params.Additional_params} -t {threads} -m $mem --continue -o {params.dir} -f &> {log}
ln -s {params.assembly} {output}
"""
# ---- bwa index file -------------------------------------------
rule bwa_index:
input: "{path}/contigs.fa"
output: touch("{path}/index.done")
log: "{path}/index.log"
params : 10000000000
resources:
slurm_partition = get_resource("partition"),
mem_mb=get_resource("mem"),
message: "Building bwa index for {input}"
conda : CONDA_ENV + "/bwasamtools.yaml"
singularity: "docker://quay.io/annacprice/bwasamtools:1.10"
shell: "bwa index -b {params} {input} &> {log}"
# ---- map reads to the assembly contigs--------------------------------------------------
rule bwa_mem_to_bam:
input: index="{group}/contigs/index.done",
contigs="{group}/contigs/contigs.fa",
left=lambda w:replace_extensions(SAMPLE_READS[w.sample][0],FILTER), right=lambda w:replace_extensions(SAMPLE_READS[w.sample][1],FILTER)
output: temp("{group}/map/{sample}_mapped_sorted.bam")
threads: 10
resources:
slurm_partition = get_resource("partition", mult=10),
mem_mb = get_resource("mem", mult=10),
nb_map = 1
log: "{group}/map/{sample}_map.log"
message: "bwa mem mapping followed by samtool sorting for {input}"
conda : CONDA_ENV + "/bwasamtools.yaml"
singularity: "docker://quay.io/annacprice/bwasamtools:1.10"
shell: "bwa mem -t {threads} {input.contigs} {input.left} {input.right} 2>{log} | samtools view -b -F 4 -@{threads} - | samtools sort -@{threads} - > {output}"