diff --git a/CHANGELOG.md b/CHANGELOG.md index 2823a1c30e..b2fc20aeeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,10 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) a - [#110](https://github.com/nf-core/sarek/pull/110) - Fix `snpEff` report issue cf [#106](https://github.com/nf-core/sarek/issues/106) - [#126](https://github.com/nf-core/sarek/pull/126) - Fix `iGenomes` paths - [#127](https://github.com/nf-core/sarek/pull/127), [#128](https://github.com/nf-core/sarek/pull/128) - Fix `ASCAT` +- [#129](https://github.com/nf-core/sarek/pull/129)- Fix issue with Channel `channel ch_software_versions_yaml` +- [#129](https://github.com/nf-core/sarek/pull/129)- Apply @drpatelh fix for `mardown_to_html.py` compatibility with Python 2 +- [#129](https://github.com/nf-core/sarek/pull/129)- Removed `Python` `3.7.3` from conda environment due to incompatibility +- [#129](https://github.com/nf-core/sarek/pull/129)- Change ascii characters that were not supported from the `output.md` docs ### `Deprecated` diff --git a/bin/markdown_to_html.py b/bin/markdown_to_html.py index 57cc4263fe..690b5d9602 100755 --- a/bin/markdown_to_html.py +++ b/bin/markdown_to_html.py @@ -4,9 +4,10 @@ import markdown import os import sys +import io def convert_markdown(in_fn): - input_md = open(in_fn, mode="r", encoding="utf-8").read() + input_md = io.open(in_fn, mode="r", encoding='utf-8').read() html = markdown.markdown( "[TOC]\n" + input_md, extensions = [ diff --git a/conf/base.config b/conf/base.config index ee3bfa7604..929158315c 100644 --- a/conf/base.config +++ b/conf/base.config @@ -48,7 +48,7 @@ process { memory = {params.max_memory} } - withName:get_software_versions { + withName:Get_software_versions { cache = false } diff --git a/docs/output.md b/docs/output.md index a915674114..493957cf9f 100644 --- a/docs/output.md +++ b/docs/output.md @@ -119,7 +119,7 @@ For all samples: - `duplicateMarked_[SAMPLE].tsv` and `recalibrated_[SAMPLE].tsv` - TSV files to start Sarek from `recalibration` or `variantcalling` steps for a specific sample. -> :warning: Only with [`--sentieon`](usage.md#--sentieon) +> `/!\` Only with [`--sentieon`](usage.md#--sentieon) For all samples: **Output directory: `results/Preprocessing/TSV`** @@ -242,9 +242,9 @@ Using [Strelka Best Practices](https://github.com/Illumina/strelka/blob/v2.9.x/d #### Sentieon DNAseq -> :warning: Only with [`--sentieon`](usage.md#--sentieon) +> `/!\` Only with [`--sentieon`](usage.md#--sentieon) -[Sentieon DNAseq](https://www.sentieon.com/products/#dnaseq) implements the same mathematics used in the Broad Institute’s BWA-GATK HaplotypeCaller 3.3-4.1 Best Practices Workflow pipeline. +[Sentieon DNAseq](https://www.sentieon.com/products/#dnaseq) implements the same mathematics used in the Broad Institute's BWA-GATK HaplotypeCaller 3.3-4.1 Best Practices Workflow pipeline. For further reading and documentation see the [Sentieon DNAseq user guide](https://support.sentieon.com/manual/DNAseq_usage/dnaseq/). @@ -256,7 +256,7 @@ For all samples: #### Sentieon DNAscope -> :warning: Only with [`--sentieon`](usage.md#--sentieon) +> `/!\` Only with [`--sentieon`](usage.md#--sentieon) [Sentieon DNAscope](https://www.sentieon.com/products) calls SNPs and small indels. @@ -270,7 +270,7 @@ For all samples: #### Sentieon TNscope -> :warning: Only with [`--sentieon`](usage.md#--sentieon) +> `/!\` Only with [`--sentieon`](usage.md#--sentieon) [Sentieon TNscope](https://www.sentieon.com/products/#tnscope) calls SNPs and small indels on an Tumor/Normal pair. @@ -339,7 +339,7 @@ For all samples: - `TIDDIT_[SAMPLE].signals.tab` - tab file describing coverage across the genome, binned per 50 bp - `TIDDIT_[SAMPLE].ploidy.tab` - - tab file describing the estimated ploïdy and coverage across each contig + - tab file describing the estimated ploidy and coverage across each contig - `TIDDIT_[SAMPLE].old.vcf` - VCF including the low qualiy calls - `TIDDIT_[SAMPLE].wig` @@ -349,7 +349,7 @@ For all samples: #### Sentieon DNAscope SV -> :warning: Only with [`--sentieon`](usage.md#--sentieon) +> `/!\` Only with [`--sentieon`](usage.md#--sentieon) [Sentieon DNAscope](https://www.sentieon.com/products) can perform structural variant calling in addition to calling SNPs and small indels. diff --git a/docs/usage.md b/docs/usage.md index 9c9dd45a73..c06a875743 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -292,7 +292,7 @@ Use this to disable g.vcf from `HaplotypeCaller`. ### --skip_qc Use this to disable specific QC and Reporting tools. -Available: `all`, `bamQC`, `BCFtools`, `FastQC`, `MultiQC`, `samtools`, `vcftools`, `versions` +Available: `all`, `bamQC`, `BaseRecalibrator`, `BCFtools`, `Documentation`, `FastQC`, `MultiQC`, `samtools`, `vcftools`, `versions` Default: `None` ### --skipQC diff --git a/environment.yml b/environment.yml index a268548910..4d4851d98f 100644 --- a/environment.yml +++ b/environment.yml @@ -6,7 +6,6 @@ channels: - bioconda - defaults dependencies: - - conda-forge::python=3.7.3 - conda-forge::markdown=3.1.1 - conda-forge::pymdown-extensions=6.0 - conda-forge::pygments=2.5.2 diff --git a/main.nf b/main.nf index d3f930be4a..708b2cce92 100644 --- a/main.nf +++ b/main.nf @@ -30,14 +30,14 @@ def helpMessage() { nextflow run nf-core/sarek --input sample.tsv -profile docker Mandatory arguments: - --input [file] Path to input TSV file on mapping, recalibrate and variantcalling steps - Multiple TSV files can be specified with quotes - Works also with the path to a directory on mapping step with a single germline sample only - Alternatively, path to VCF input file on annotate step - Multiple VCF files can be specified with quotes - -profile [str] Configuration profile to use - Can use multiple (comma separated) - Available: conda, docker, singularity, test and more + --input [file] Path to input TSV file on mapping, recalibrate and variantcalling steps + Multiple TSV files can be specified with quotes + Works also with the path to a directory on mapping step with a single germline sample only + Alternatively, path to VCF input file on annotate step + Multiple VCF files can be specified with quotes + -profile [str] Configuration profile to use + Can use multiple (comma separated) + Available: conda, docker, singularity, test and more --genome [str] Name of iGenomes reference --step [str] Specify starting step Available: Mapping, Recalibrate, VariantCalling, Annotate @@ -57,7 +57,7 @@ def helpMessage() { snpEff, VEP, merge Default: None --skip_qc [str] Specify which QC tools to skip when running Sarek - Available: all, bamQC, BCFtools, FastQC, MultiQC, samtools, vcftools, versions + Available: all, bamQC, BaseRecalibrator, BCFtools, Documentation, FastQC, MultiQC, samtools, vcftools, versions Default: None --annotate_tools [str] Specify from which tools Sarek will look for VCF files to annotate, only for step annotate Available: HaplotypeCaller, Manta, Mutect2, Strelka, TIDDIT @@ -622,7 +622,7 @@ process Get_software_versions { """ } -yamlSoftwareVersion = yamlSoftwareVersion.dump(tag:'SOFTWARE VERSIONS') +ch_software_versions_yaml = ch_software_versions_yaml.dump(tag:'SOFTWARE VERSIONS') /* ================================================================================ @@ -1399,6 +1399,8 @@ process GatherBQSRReports { """ } +if ('baserecalibrator' in skipQC) baseRecalibratorReport.close() + recalTable = recalTable.dump(tag:'RECAL TABLE') (recalTableTSV, recalTableSampleTSV) = recalTableTSV.mix(recalTableTSVnoInt).into(2) @@ -3309,6 +3311,8 @@ process Output_documentation { output: file "results_description.html" + when: !('documentation' in skipQC) + script: """ markdown_to_html.py $output_docs -o results_description.html @@ -3346,8 +3350,6 @@ workflow.onComplete { email_fields['summary']['Nextflow Build'] = workflow.nextflow.build email_fields['summary']['Nextflow Compile Timestamp'] = workflow.nextflow.timestamp - // TODO nf-core: If not using MultiQC, strip out this code (including params.max_multiqc_email_size) - // On success try attach the multiqc report def mqc_report = null try { if (workflow.success) { @@ -3541,7 +3543,9 @@ def defineAnnoList() { def defineSkipQClist() { return [ 'bamqc', + 'baserecalibrator', 'bcftools', + 'documentation', 'fastqc', 'markduplicates', 'multiqc',