[41c1e8]: / exseek / snakefiles / rename_fastq.snakemake

Download this file

43 lines (39 with data), 1.4 kB

include: 'common.snakemake'

def get_all_inputs(wildcards):
    inputs = []
    if config['paired_end']:
        inputs += expand('{output_dir}/unmapped/{sample_id}/clean_{mate_index}.fastq.gz',
            output_dir=output_dir, sample_id=sample_ids, mate_index=[1, 2])
    else:
        inputs += expand('{output_dir}/unmapped/{sample_id}/clean.fastq.gz',
            output_dir=output_dir, sample_id=sample_ids, mate_index=[1, 2])
    return inputs

rule all:
    input:
        get_all_inputs

rule rename_fastq_pe:
    input:
        auto_gzip_input('{output_dir}/cutadapt/{sample_id}_{mate_index}.fastq')
    output:
        '{output_dir}/unmapped/{sample_id}/clean_{mate_index}.fastq.gz'
    threads: 
        1
    wildcard_constraints:
        mate_index='[12]'
    shell:
        r'''{bin_dir}/auto_uncompress {input} \
            | awk 'NR%4==1{{printf "@%012d\n", int(NR/4);next}} NR%4==3{{printf "+\n";next}} {{print}}' \
            | pigz -c -p {threads} > {output}
        '''

rule rename_fastq_se:
    input:
        auto_gzip_input('{output_dir}/cutadapt/{sample_id}.fastq')
    output:
        '{output_dir}/unmapped/{sample_id}/clean.fastq.gz'
    threads: 
        1
    shell:
        r'''{bin_dir}/auto_uncompress {input} \
            | awk 'NR%4==1{{printf "@%012d\n", int(NR/4);next}} NR%4==3{{printf "+\n";next}} {{print}}' \
            | pigz -c -p {threads} > {output}
        '''