diff --git a/assembly.smk b/assembly.smk index acdb80cb6008a702d07334ac44782aff335121fb..59b18c506593371ff3a5f054cddcda72283bc991 100644 --- a/assembly.smk +++ b/assembly.smk @@ -30,18 +30,20 @@ rule khmer: def assembly_input(wildcards): if wildcards.reads == "coassembly": if config["NORMALIZATION"]: - return [expand("work/khmer/{reads}_R1R2.fastq.gz", reads=config["SAMPLES"])] + return {"R1R2": expand("work/khmer/{reads}_R1R2.fastq.gz", reads=config["SAMPLES"])} elif config["SORTMERNA"]: - return [expand("work/sortmerna/{reads}_mRNA.fastq.gz", reads=config["SAMPLES"])] + return {"R1R2": expand("work/sortmerna/{reads}_mRNA.fastq.gz", reads=config["SAMPLES"])} else: - return [expand("DATA/trim/{reads}_R1R2.fastq.gz", reads=config["SAMPLES"])] + return {"R1": expand("DATA/trim/{reads}_R1.fastq.gz", reads=config["SAMPLES"]), "R2": expand("DATA/trim/{reads}_R2.fastq.gz", reads=config["SAMPLES"])} + else: if config["NORMALIZATION"]: - return {"R1R2": "work/khmer/{wildcards.reads}_R1R2.fastq.gz".format(wildcards=wildcards)} + return {"R1R2": ["work/khmer/{wildcards.reads}_R1R2.fastq.gz".format(wildcards=wildcards)]} elif config["SORTMERNA"]: - return {"R1R2": "work/sortmerna/{wildcards.reads}_mRNA.fastq.gz".format(wildcards=wildcards)} + return {"R1R2": ["work/sortmerna/{wildcards.reads}_mRNA.fastq.gz".format(wildcards=wildcards)]} else: - return {"R1R2": "DATA/trim/{wildcards.reads}_R1R2.fastq.gz".format(wildcards=wildcards)} + return {"R1": ["DATA/trim/{wildcards.reads}_R1.fastq.gz".format(wildcards=wildcards)], "R2": ["DATA/trim/{wildcards.reads}_R2.fastq.gz".format(wildcards=wildcards)]} + rule megahit: input: @@ -53,11 +55,11 @@ rule megahit: params: min_len = config["CONTIGS_LEN"], mem_tot = int(250 * 1e9), - input = lambda wildcards, input: ",".join(input), + input = lambda wildcards, input: "-1 %s -2 %s"%(",".join(input.R1), ",".join(input.R2)) if set(['R1', 'R2']).issubset(input.keys()) else "--12 %s"%",".join(input.R1R2), output = lambda wildcards, output: os.path.dirname(str(output.contigs)) shell: "megahit " - "--12 {params.input} " + "{params.input} " "--continue " "--preset meta-large " "--num-cpu-threads {threads} " @@ -78,7 +80,7 @@ rule metaspades: params: min_len = config["CONTIGS_LEN"], mem_tot = 250, - input = lambda wildcards, input: " --12 ".join(input), + input = lambda wildcards, input: "-1 %s -2 %s"%(" -1 ".join(input.R1), " -2 ".join(input.R2)) if set(['R1', 'R2']).issubset(input.keys()) else "--12 %s"%" --12 ".join(input.R1R2), output = lambda wildcards, output: os.path.dirname(str(output.contigs)) shell: "spades.py " @@ -86,7 +88,7 @@ rule metaspades: "--memory {params.mem_tot} " "--tmp-dir /projet/tmp " "--meta " - "--12 {params.input} " + "{params.input} " "-o {params.output} " " ; " "filterSeq.py "