diff --git a/Snakefile b/Snakefile index a7c30185ef7a131bb6336b55c5eae68cfc37531c..664c5cbec9a64673f83f32a545ef49bd306cb3bb 100755 --- a/Snakefile +++ b/Snakefile @@ -212,8 +212,8 @@ if config["star_mapping"]["do"]: star_index_fasta = unpack(mapping_index) star_mapping_splice_file = unpack(annot_index) star_index_log = "02-Mapping/STAR/logs/STAR_{REF}_indexing.log" - star_index_output_done = config["genome"]["genome_directory"]+"{REF}/STAR/SAindex" - star_index_output_dir = config["genome"]["genome_directory"]+"{REF}/STAR/" + star_index_output_done = config["genome"]["genome_directory"]+"/{REF}/STAR/SAindex" + star_index_output_dir = config["genome"]["genome_directory"]+"/{REF}/STAR/" include: os.path.join(RULES, "star_index.rules") @@ -223,7 +223,7 @@ if config["star_mapping"]["do"]: star_mapping_pass1_done = star_index_output_done star_mapping_pass1_index = star_index_output_dir star_mapping_pass1_logs = "02-Mapping/STAR/logs/{SAMPLE}_{REF}_init.out" - star_mapping_pass1_output_prefix = "02-Mapping/STAR/{REF}/{SAMPLE}_{REF}_init_" + star_mapping_pass1_output_prefix = "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_init_" star_mapping_pass1_junctions = "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_init_SJ.out.tab" star_mapping_pass1_bam = "02-Mapping/{REF}/STAR/{SAMPLE}_{REF}_init_Aligned.sortedByCoord.out.bam" star_mapping_pass1_read_groups = "" @@ -291,8 +291,8 @@ if config["feature_counts"]["do"]: #---------------------------------- flagstat_input = counting_index -flagstat_logs = "02-Mapping/Flagstats/{REF}/{MAP}/logs/{SAMPLE}_{REF}.out" -flagstat_output = "02-Mapping/Flagstats/{REF}/{MAP}/{SAMPLE}_{REF}_stats.out" +flagstat_logs = "02-Mapping/{REF}/{MAP}/logs/{SAMPLE}_{REF}.out" +flagstat_output = "02-Mapping/{REF}/{MAP}/{SAMPLE}_{REF}_stats.out" final_output.extend(expand(flagstat_output, SAMPLE=samples, REF=ref, MAP=mapper)) include: os.path.join(RULES, "flagstat.rules") diff --git a/workflow/rules/sortmerna.rules b/workflow/rules/sortmerna.rules index c176c464aef02d69c9257aa4d1193558d09fb03f..27795ce5dcaea388b321495df0ce78b595b498c3 100755 --- a/workflow/rules/sortmerna.rules +++ b/workflow/rules/sortmerna.rules @@ -44,8 +44,8 @@ rule sortmerna: set +o pipefail #tmp="{input.fastq}" #infiles=($tmp) - fasta={input.fasta} - index=${{fasta%%.fa}} + fasta="{input.fasta}" + index=${{fasta%.fa}} if [[ ! -s ${{index}}.stats ]] then @@ -53,7 +53,7 @@ rule sortmerna: fi - sortmerna --ref $${{fasta}},${{index}} -a {threads} --reads {input.fastq} --aligned outfile_rRNA --fastx --sam --num_alignments 1 --other outfile_noRNA --log -v > {log.out} 2> {log.err} + sortmerna --ref ${{fasta}},${{index}} -a {threads} --reads {input.fastq} --aligned outfile_rRNA --fastx --sam --num_alignments 1 --other outfile_noRNA --log -v > {log.out} 2> {log.err} pigz -fc outfile_rRNA > {output.rRNA} diff --git a/workflow/rules/star_mapping_pass1.rules b/workflow/rules/star_mapping_pass1.rules index c1df88d488673dc96b8e8394b12e5046af22d5dc..516ead4a87e0e51dca4486843ee7fce663f0de4a 100755 --- a/workflow/rules/star_mapping_pass1.rules +++ b/workflow/rules/star_mapping_pass1.rules @@ -45,15 +45,27 @@ rule star_mapping_pass1: star_mapping_pass1_logs shell: """ - STAR --genomeDir {params.index} \ - --readFilesIn {input.fastq} \ - --runThreadN {threads} \ - --genomeLoad NoSharedMemory \ - --outSAMtype BAM SortedByCoordinate \ - --readFilesCommand zcat \ - --seedSearchStartLmax 20 \ - --outFileNamePrefix {params.prefix} \ - {params.kwargs} 2> {log} + if [[ {input.fastq} == "*.gz" ]] + then + STAR --genomeDir {params.index} \ + --readFilesIn {input.fastq} \ + --runThreadN {threads} \ + --genomeLoad NoSharedMemory \ + --outSAMtype BAM SortedByCoordinate \ + --readFilesCommand zcat \ + --seedSearchStartLmax 20 \ + --outFileNamePrefix {params.prefix} \ + {params.kwargs} 2> {log} + else + STAR --genomeDir {params.index} \ + --readFilesIn {input.fastq} \ + --runThreadN {threads} \ + --genomeLoad NoSharedMemory \ + --outSAMtype BAM SortedByCoordinate \ + --seedSearchStartLmax 20 \ + --outFileNamePrefix {params.prefix} \ + {params.kwargs} 2> {log} + fi samtools index {params.prefix}Aligned.sortedByCoord.out.bam 2>> {log} diff --git a/workflow/rules/star_mapping_pass2.rules b/workflow/rules/star_mapping_pass2.rules index a792f700945a73d6ff649f98ba4a4e4885884a20..daae75f7d4cb39c0561106d910b22202c1b2f240 100755 --- a/workflow/rules/star_mapping_pass2.rules +++ b/workflow/rules/star_mapping_pass2.rules @@ -46,17 +46,31 @@ rule star_mapping_pass2: star_mapping_pass2_logs shell: """ - STAR --genomeDir {params.index} \ - --readFilesIn {input.fastq} \ - --runThreadN {threads} \ - --genomeLoad NoSharedMemory \ - --outSAMtype BAM SortedByCoordinate \ - --readFilesCommand zcat \ - --seedSearchStartLmax 20 \ - --outFileNamePrefix {params.prefix} \ - --outSAMattrRGline {params.RG} \ - --sjdbFileChrStartEnd {input.sjdb} \ - {params.kwargs} 2> {log} + if [[ {input.fastq} == "*.gz" ]] + then + STAR --genomeDir {params.index} \ + --readFilesIn {input.fastq} \ + --runThreadN {threads} \ + --genomeLoad NoSharedMemory \ + --outSAMtype BAM SortedByCoordinate \ + --readFilesCommand zcat \ + --seedSearchStartLmax 20 \ + --outFileNamePrefix {params.prefix} \ + --outSAMattrRGline {params.RG} \ + --sjdbFileChrStartEnd {input.sjdb} \ + {params.kwargs} 2> {log} + else + STAR --genomeDir {params.index} \ + --readFilesIn {input.fastq} \ + --runThreadN {threads} \ + --genomeLoad NoSharedMemory \ + --outSAMtype BAM SortedByCoordinate \ + --seedSearchStartLmax 20 \ + --outFileNamePrefix {params.prefix} \ + --outSAMattrRGline {params.RG} \ + --sjdbFileChrStartEnd {input.sjdb} \ + {params.kwargs} 2> {log} + fi samtools index {params.prefix}Aligned.sortedByCoord.out.bam 2>> {log}