diff --git a/workflow/rules/sortmerna.rules b/workflow/rules/sortmerna.rules index 2128bb866aa92c883ab949af7c550c9bb483e295..6837b05ba3dc79ac1956b7706f2d270ea03dd408 100755 --- a/workflow/rules/sortmerna.rules +++ b/workflow/rules/sortmerna.rules @@ -30,6 +30,8 @@ rule sortmerna: output: rRNA = temp(sortmerna_outfile_rRNA), no_rRNA = temp(sortmerna_outfile_no_rRNA) + params: + tmpdir = config['tmpdir'] singularity: "rnaflow.img" shadow: "shallow" @@ -38,25 +40,28 @@ rule sortmerna: out = sortmerna_logs_out threads: 6 envmodules: - "sortmerna/2.1b" + "sortmerna/4.3.4" shell: """ set +o pipefail - #tmp="{input.fastq}" - #infiles=($tmp) + tmp="{input.fastq}" + infiles=($tmp) fasta="{input.fasta}" - index=${{fasta%.fa}} + idxdir=$(dirname ${{fasta}})"/sortmerna/" - if [[ ! -s ${{index}}.stats ]] - then - indexdb_rna --ref ${{fasta}},${{index}} - fi + if [[ ${{#infiles[@]}} -eq 2 ]]; + then + sortmerna --ref ${{fasta}} --idx-dir ${{idxdir}} --workdir {params.tmpdir} -threads {threads} --reads ${{infiles[0]}} --reads ${{infiles[1]}} --aligned {output.rRNA} --fastx --out2 --paired_out --other {output.no_rRNA} -v > {log.out} 2> {log.err} + mv {output.no_rRNA}.fastq {output.no_rRNA} + mv {output.rRNA}.fastq {output.rRNA} - sortmerna --ref ${{fasta}},${{index}} -a {threads} --reads {input.fastq} --aligned {output.rRNA} --fastx --other {output.no_rRNA} --log -v > {log.out} 2> {log.err} + else + sortmerna --ref ${{fasta}} --idx-dir ${{idxdir}} --workdir {params.tmpdir} -threads {threads} --reads ${{infiles[0]}} --aligned {output.rRNA} --fastx --other {output.no_rRNA} -v > {log.out} 2> {log.err} + mv {output.no_rRNA}.fastq {output.no_rRNA} + mv {output.rRNA}.fastq {output.rRNA} + fi - mv {output.no_rRNA}.fastq {output.no_rRNA} - mv {output.rRNA}.fastq {output.rRNA} """