diff --git a/snakecnv/svsnakemake_utils.py b/snakecnv/svsnakemake_utils.py index f4b96de9624dd1ca6ee92d68e6ca3113ce516ee8..cc46fb17c19bdc749013f2dde32668bdce8a9964 100644 --- a/snakecnv/svsnakemake_utils.py +++ b/snakecnv/svsnakemake_utils.py @@ -69,12 +69,15 @@ class SnakemakeUtils: return inputs def get_pindel_chr_batches(self, wildcards): - inputs = [] + inputs = {"D": [], + "INV": [], + "TD": []} for batch in self.chr_batches[wildcards.chrom]: - inputs.append("{batch}/pindel/{chrom}_{svtype}/{chrbatch}/pindel_{chrom}_{svtype}.gz".format( - batch=wildcards.batch, chrom=wildcards.chrom, chrbatch="-".join(map(str, batch)), - svtype=wildcards.svtype - )) + for svtype in inputs: + inputs[svtype].append("{batch}/pindel/{chrom}/{chrbatch}/pindel_{chrom}_{svtype}.gz".format( + batch=wildcards.batch, chrom=wildcards.chrom, chrbatch="-".join(map(str, batch)), + svtype=svtype + )) return inputs diff --git a/snakecnv/tools/pindel.snk b/snakecnv/tools/pindel.snk index 4e1e6d7c4d728663caac5cc92ad93948a74cd291..74c51974d5cd63962385e145e2384d834de6b4c8 100644 --- a/snakecnv/tools/pindel.snk +++ b/snakecnv/tools/pindel.snk @@ -30,9 +30,9 @@ rule pindel: genome = REFERENCE, fai = REFERENCE + ".fai" output: - "{batch}/pindel/{chrom}_{svtype}/{chrbatch}/pindel_{chrom}_D.gz", - "{batch}/pindel/{chrom}_{svtype}/{chrbatch}/pindel_{chrom}_INV.gz", - "{batch}/pindel/{chrom}_{svtype}/{chrbatch}/pindel_{chrom}_TD.gz", + "{batch}/pindel/{chrom}/{chrbatch}/pindel_{chrom}_D.gz", + "{batch}/pindel/{chrom}/{chrbatch}/pindel_{chrom}_INV.gz", + "{batch}/pindel/{chrom}/{chrbatch}/pindel_{chrom}_TD.gz", threads: get_threads("pindel", 4) log: @@ -50,7 +50,7 @@ rule pindel: """ for svtype in D TD INV RP SI LI BP CloseEndMapped INT_final; do - gzip -f {wildcards.batch}/pindel/{wildcards.chrom}_{wildcards.svtype}/{wildcards.chrbatch}/pindel_{wildcards.chrom}_${{svtype}} + gzip -f {wildcards.batch}/pindel/{wildcards.chrom}/{wildcards.chrbatch}/pindel_{wildcards.chrom}_${{svtype}} done """ @@ -58,12 +58,16 @@ rule mergepindelbatches: input: unpack(snakemake_utils.get_pindel_chr_batches) output: - "{batch}/pindel/pindel_{chrom}_{svtype}.gz" + D="{batch}/pindel/pindel_{chrom}_D.gz", + INV="{batch}/pindel/pindel_{chrom}_INV.gz", + TD="{batch}/pindel/pindel_{chrom}_TD.gz" log: stdout = "{batch}/logs/pindel/{chrom}_{svtype}.o", stderr = "{batch}/logs/pindel/{chrom}_{svtype}.e", threads: 1 shell: - "mergepindelbatches.py {output} {input} 1>{log.stdout} 2>{log.stderr}; " + "mergepindelbatches.py {output.D} {input.D} 1>{log.stdout} 2>{log.stderr}; " + "mergepindelbatches.py {output.INV} {input.INV} 1>>{log.stdout} 2>>{log.stderr}; " + "mergepindelbatches.py {output.TD} {input.TD} 1>>{log.stdout} 2>>{log.stderr}; " "rm -rf {wildcards.batch}/pindel/{wildcards.chrom}_{wildcards.svtype}" \ No newline at end of file