diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 8903147b2..79aabbb5a 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 15.0.1 +current_version = 16.0.0 commit = True tag = True tag_name = v{new_version} diff --git a/.github/workflows/docker_build_publish_release.yml b/.github/workflows/docker_build_publish_release.yml index 6c7612e05..0ad0eb024 100644 --- a/.github/workflows/docker_build_publish_release.yml +++ b/.github/workflows/docker_build_publish_release.yml @@ -11,7 +11,7 @@ jobs: strategy: fail-fast: true matrix: - container-name: [align_qc, annotate, ascatNgs, cadd, cnvkit, cnvpytor, coverage_qc, delly, gatk, htslib, msisensorpro, purecn, somalier, varcall_py3, varcall_py27, vcf2cytosure] + container-name: [align_qc, annotate, ascatNgs, cadd, cnvkit, cnvpytor, coverage_qc, delly, gatk, htslib, msisensorpro, multiqc, purecn, somalier, varcall_py3, varcall_py27, vcf2cytosure] steps: - name: Git checkout id: git_checkout diff --git a/BALSAMIC/__init__.py b/BALSAMIC/__init__.py index e84bc9e25..5e5e9109a 100644 --- a/BALSAMIC/__init__.py +++ b/BALSAMIC/__init__.py @@ -1 +1 @@ -__version__ = "15.0.1" +__version__ = "16.0.0" diff --git a/BALSAMIC/__version__.py b/BALSAMIC/__version__.py index e84bc9e25..5e5e9109a 100644 --- a/BALSAMIC/__version__.py +++ b/BALSAMIC/__version__.py @@ -1 +1 @@ -__version__ = "15.0.1" +__version__ = "16.0.0" diff --git a/BALSAMIC/constants/cluster_analysis.json b/BALSAMIC/constants/cluster_analysis.json index 087d167cf..a87210f52 100644 --- a/BALSAMIC/constants/cluster_analysis.json +++ b/BALSAMIC/constants/cluster_analysis.json @@ -206,7 +206,7 @@ }, "vardict_tumor_only": { "time": "10:00:00", - "n": 9 + "n": 18 }, "sentieon_TNscope": { "time": "24:00:00", diff --git a/BALSAMIC/snakemake_rules/variant_calling/snv_quality_filter.rule b/BALSAMIC/snakemake_rules/variant_calling/snv_quality_filter.rule index f06b909b3..d087231eb 100644 --- a/BALSAMIC/snakemake_rules/variant_calling/snv_quality_filter.rule +++ b/BALSAMIC/snakemake_rules/variant_calling/snv_quality_filter.rule @@ -221,7 +221,6 @@ elif config["analysis"]["sequencing_type"] == 'targeted' and config["analysis"][ AF_min=[SNV_FILTER_SETTINGS.AF_min.tag_value, SNV_FILTER_SETTINGS.AF_min.filter_name], high_normal_tumor_af_frac_filter_name=SNV_FILTER_SETTINGS.high_normal_tumor_af_frac.filter_name, high_normal_tumor_af_frac_value=SNV_FILTER_SETTINGS.high_normal_tumor_af_frac.tag_value, - possible_germline="balsamic_possible_germline", case_name=config["analysis"]["case_id"], threads: get_threads(cluster_config,'bcftools_quality_filter_vardict_tumor_normal') @@ -235,7 +234,6 @@ elif config["analysis"]["sequencing_type"] == 'targeted' and config["analysis"][ bcftools filter --include 'INFO/DP >= {params.DP[0]}' --soft-filter '{params.DP[1]}' --mode '+' | \ bcftools filter --include 'INFO/VD >= {params.AD[0]}' --soft-filter '{params.AD[1]}' --mode '+' | \ bcftools filter --include 'INFO/AF >= {params.AF_min[0]}' --soft-filter '{params.AF_min[1]}' --mode '+' | \ - bcftools filter --exclude 'INFO/STATUS ~ "germline/i"' --soft-filter '{params.possible_germline}' --mode '+' | \ bcftools view -f PASS -o {output.vcf_filtered} -O z; tabix -p vcf -f {output.vcf_filtered}; diff --git a/BALSAMIC/snakemake_rules/variant_calling/snv_t_varcall_tga.rule b/BALSAMIC/snakemake_rules/variant_calling/snv_t_varcall_tga.rule index 33f1c4d13..4106d9fed 100644 --- a/BALSAMIC/snakemake_rules/variant_calling/snv_t_varcall_tga.rule +++ b/BALSAMIC/snakemake_rules/variant_calling/snv_t_varcall_tga.rule @@ -93,7 +93,8 @@ rule vardict_tumor_only: export PERL5LIB=; export TMPDIR={params.tmpdir}; -export VAR_DICT_OPTS='\"-Djava.io.tmpdir={params.tmpdir}\" \"-Xmx45G\"'; +export _JAVA_OPTIONS="-Djava.io.tmpdir={params.tmpdir}"; +export VAR_DICT_OPTS='\"-Xms45G\" \"-Xmx90G\"'; vardict-java -I 600 \ -G {input.fa} \ diff --git a/BALSAMIC/snakemake_rules/variant_calling/snv_tn_varcall_tga.rule b/BALSAMIC/snakemake_rules/variant_calling/snv_tn_varcall_tga.rule index 581f6bf21..8220f052e 100644 --- a/BALSAMIC/snakemake_rules/variant_calling/snv_tn_varcall_tga.rule +++ b/BALSAMIC/snakemake_rules/variant_calling/snv_tn_varcall_tga.rule @@ -94,7 +94,8 @@ rule vardict_tumor_normal: shell: """ export TMPDIR={params.tmpdir}; -export VAR_DICT_OPTS='\"-Djava.io.tmpdir={params.tmpdir}\" \"-Xmx90G\"'; +export _JAVA_OPTIONS="-Djava.io.tmpdir={params.tmpdir}"; +export VAR_DICT_OPTS='\"-Xms45G\" \"-Xmx90G\"'; vardict-java -I 600 -G {input.fa} -f {params.af} -N {params.case_name} \ -b \"{input.bamT}|{input.bamN}\" \ @@ -118,6 +119,8 @@ rule post_process_vardict: params: tmpdir=tempfile.mkdtemp(prefix=tmp_dir), case_name=config["analysis"]["case_id"], + edit_vcf_script= get_script_path("edit_vcf_info.py"), + variant_caller= "vardict" benchmark: Path(benchmark_dir,'post_process_vardict_' + config["analysis"]["case_id"] + ".tsv").as_posix() singularity: @@ -131,13 +134,18 @@ rule post_process_vardict: mkdir -p {params.tmpdir}; export TMPDIR={params.tmpdir}; -bgzip {input.vcf_sorted} ; -tabix -f -p vcf {input.vcf_sorted}.gz ; +python {params.edit_vcf_script} \ +--input_vcf {input.vcf_sorted} \ +--output_vcf {params.tmpdir}/vardict_merged_sorted.temp.vcf \ +--variant_caller {params.variant_caller}; + +bgzip {params.tmpdir}/vardict_merged_sorted.temp.vcf ; +tabix -f -p vcf {params.tmpdir}/vardict_merged_sorted.temp.vcf.gz ; echo \"TUMOR\" > {params.tmpdir}/reheader ; echo \"NORMAL\" >> {params.tmpdir}/reheader ; -bcftools reheader -s {params.tmpdir}/reheader {input.vcf_sorted}.gz -o {output.vcf_vardict} ; +bcftools reheader -s {params.tmpdir}/reheader {params.tmpdir}/vardict_merged_sorted.temp.vcf.gz -o {output.vcf_vardict} ; tabix -f -p vcf {output.vcf_vardict} ; echo -e \"tTUMOR\\tTUMOR\\nNORMAL\\tNORMAL\" > {output.namemap} ; diff --git a/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_normal_tga.rule b/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_normal_tga.rule index a31545edd..0c269cf03 100644 --- a/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_normal_tga.rule +++ b/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_normal_tga.rule @@ -21,7 +21,7 @@ rule manta_tumor_normal: tumor = config_model.get_sample_name_by_type(SampleType.TUMOR), normal = config_model.get_sample_name_by_type(SampleType.NORMAL), case_name = case_id, - manta_install_path = "/opt/conda/share/manta-1.6.0-2", + manta_install_path = "/opt/conda/share/manta-1.6.0-3", low_pr_sr_count_value = MANTA_FILTERS.low_pr_sr_count.tag_value, low_pr_sr_count_filter_name = MANTA_FILTERS.low_pr_sr_count.filter_name, threads: diff --git a/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_normal_wgs.rule b/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_normal_wgs.rule index 0fb9b3679..8a46d0cb3 100644 --- a/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_normal_wgs.rule +++ b/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_normal_wgs.rule @@ -21,7 +21,7 @@ rule manta_tumor_normal: tumor = config_model.get_sample_name_by_type(SampleType.TUMOR), normal = config_model.get_sample_name_by_type(SampleType.NORMAL), case_name = case_id, - manta_install_path = "/opt/conda/share/manta-1.6.0-2", + manta_install_path = "/opt/conda/share/manta-1.6.0-3", low_pr_sr_count_value = MANTA_FILTERS.low_pr_sr_count.tag_value, low_pr_sr_count_filter_name = MANTA_FILTERS.low_pr_sr_count.filter_name, threads: diff --git a/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_only_tga.rule b/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_only_tga.rule index 350483a3f..ae3a0f4b2 100644 --- a/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_only_tga.rule +++ b/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_only_tga.rule @@ -19,7 +19,7 @@ rule manta_tumor_only: runmode = "local", tumor = config_model.get_sample_name_by_type(SampleType.TUMOR), case_name = config["analysis"]["case_id"], - manta_install_path= "/opt/conda/share/manta-1.6.0-2", + manta_install_path= "/opt/conda/share/manta-1.6.0-3", low_pr_sr_count = [MANTA_FILTERS.low_pr_sr_count.tag_value,MANTA_FILTERS.low_pr_sr_count.filter_name], threads: get_threads(cluster_config, "manta_tumor_only") diff --git a/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_only_wgs.rule b/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_only_wgs.rule index 5dc40ad50..ecec796eb 100644 --- a/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_only_wgs.rule +++ b/BALSAMIC/snakemake_rules/variant_calling/somatic_sv_tumor_only_wgs.rule @@ -19,7 +19,7 @@ rule manta_tumor_only: runmode = "local", tumor = config_model.get_sample_name_by_type(SampleType.TUMOR), case_name = config["analysis"]["case_id"], - manta_install_path= "/opt/conda/share/manta-1.6.0-2", + manta_install_path= "/opt/conda/share/manta-1.6.0-3", low_pr_sr_count = [MANTA_FILTERS.low_pr_sr_count.tag_value,MANTA_FILTERS.low_pr_sr_count.filter_name], threads: get_threads(cluster_config, "manta_tumor_only") diff --git a/BALSAMIC/snakemake_rules/variant_calling/tnscope_post_process.rule b/BALSAMIC/snakemake_rules/variant_calling/tnscope_post_process.rule index 965edfb39..e8fc4ca04 100644 --- a/BALSAMIC/snakemake_rules/variant_calling/tnscope_post_process.rule +++ b/BALSAMIC/snakemake_rules/variant_calling/tnscope_post_process.rule @@ -57,7 +57,7 @@ export TMPDIR={params.tmpdir}; mkdir -p {params.tmpdir}; python {params.modify_tnscope_infofield} {input.vcf_tnscope} {params.tmpdir}/vcf_tnscope_snvs_modified.vcf ; -python {params.modify_tnscope_infofield} {params.tmpdir}/vcf_tnscope_snvs_modified.vcf {params.tmpdir}/vcf_tnscope_snvs_modified_found_in_added.vcf ; +python {params.edit_vcf_script} -i {params.tmpdir}/vcf_tnscope_snvs_modified.vcf -o {params.tmpdir}/vcf_tnscope_snvs_modified_found_in_added.vcf -c {params.variant_caller}; bgzip {params.tmpdir}/vcf_tnscope_snvs_modified_found_in_added.vcf ; mv {params.tmpdir}/vcf_tnscope_snvs_modified_found_in_added.vcf.gz {output.vcf_tnscope} ; tabix -p vcf -f {output.vcf_tnscope} ; diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 072998fa7..a79aa97fd 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,4 +1,4 @@ -[X.X.X] +[16.0.0] ------- Added: @@ -20,6 +20,7 @@ Added: * Added family-id to genmod in order to get ranked variants to Scout https://github.com/Clinical-Genomics/BALSAMIC/pull/1475 * Added Raw TNscope calls and unfiltered research-annotated SNVs to delivery https://github.com/Clinical-Genomics/BALSAMIC/pull/1475 * Argument for SNV Artefact LoqusDB to all workflows https://github.com/Clinical-Genomics/BALSAMIC/pull/1481 +* TNscope tag to variant info-field for TGA workflow https://github.com/Clinical-Genomics/BALSAMIC/pull/1497 Changed: ^^^^^^^^ @@ -49,6 +50,7 @@ Removed: * ML model for TNscope https://github.com/Clinical-Genomics/BALSAMIC/pull/1475 * All code associated with TNhaplotyper https://github.com/Clinical-Genomics/BALSAMIC/pull/1475 * Removed research.filtered.pass files from delivery https://github.com/Clinical-Genomics/BALSAMIC/pull/1475 +* Removed VarDict germline filter, replaced by relative normal af / tumor af filter https://github.com/Clinical-Genomics/BALSAMIC/pull/1497 Fixed: ^^^^^^ @@ -58,6 +60,8 @@ Fixed: * CNVkit incorrect version in the documentation https://github.com/Clinical-Genomics/BALSAMIC/pull/1457 * MSIsensor-pro container and updated msisensor to version 1.3.0 https://github.com/Clinical-Genomics/BALSAMIC/pull/1486 * Somalier container and updated somalier to version 0.2.19 https://github.com/Clinical-Genomics/BALSAMIC/pull/1487 +* Vardict memory and tmpdir allocation https://github.com/Clinical-Genomics/BALSAMIC/pull/1492 +* Vardict tumor only allocates dynamic number of cores https://github.com/Clinical-Genomics/BALSAMIC/pull/1495 [15.0.1] -------- diff --git a/CITATION.cff b/CITATION.cff index 70042a152..4fbcedbfd 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -18,5 +18,5 @@ authors: - family-names: "Wirta" given-names: "Valtteri" title: "BALSAMIC: Bioinformatic Analysis pipeLine for SomAtic MutatIons in Cancer" -version: v15.0.1 +version: v16.0.0 url: "https://github.com/Clinical-Genomics/BALSAMIC" diff --git a/README.rst b/README.rst index e4caf4fad..366716c91 100644 --- a/README.rst +++ b/README.rst @@ -4,7 +4,7 @@ -