From 5fc23164beda7a406341d0bd0aa0afd9895f6a77 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Tue, 12 Nov 2024 14:33:07 +0000 Subject: [PATCH 01/38] Provide config for report + add params to this config --- config/nxf_vcf.config | 1 + install.sh | 2 ++ modules/vcf/report.nf | 6 +++++- modules/vcf/templates/report.sh | 4 ++++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/config/nxf_vcf.config b/config/nxf_vcf.config index f3bc09245..6e748ee3e 100644 --- a/config/nxf_vcf.config +++ b/config/nxf_vcf.config @@ -112,6 +112,7 @@ params { max_records = "" max_samples = "" template = "${projectDir}/resources/vip-report-template-v6.2.0.html" + config = "${projectDir}/resources/vip-report-config-v1.0.0.json" metadata = "${projectDir}/resources/field_metadata.json" GRCh38 { diff --git a/install.sh b/install.sh index 07d8e8eb9..4affa0550 100755 --- a/install.sh +++ b/install.sh @@ -146,7 +146,9 @@ download_files() { # update utils/install.sh when updating inheritance.tsv urls+=("df31eb0fe9ebd9ae26c8d6f5f7ba6e57" "resources/inheritance_20240115.tsv") urls+=("7138e76a38d6f67935699d06082ecacf" "resources/vep/cache/homo_sapiens_refseq_vep_111_GRCh38.tar.gz") + #FIXME update to new template -> urls+=("78962f0c7c6fe5c63ef7c66b627c95a0" "resources/vip-report-template-v6.2.0.html") + urls+=("6a4335f27f93d51f7760c9b2b28ad212" "resources/vip-report-config-v1.0.0.json") # when modifying urls array, please keep list in 'ls -l' order for ((i = 0; i < ${#urls[@]}; i += 2)); do download_file "${base_url}" "${urls[i+1]}" "${urls[i+0]}" "${output_dir}" "${validate}" diff --git a/modules/vcf/report.nf b/modules/vcf/report.nf index 5fe006d8b..af296a92b 100644 --- a/modules/vcf/report.nf +++ b/modules/vcf/report.nf @@ -1,5 +1,6 @@ include { basename } from './utils' include { createPedigree } from '../utils' +import groovy.json.JsonOutput process report { label 'vcf_report' @@ -30,12 +31,15 @@ process report { template = params.vcf.report.template crams = meta.crams ? meta.crams.collect { "${it.individual_id}=${it.cram}" }.join(",") : "" includeCrams = params.vcf.report.include_crams - + config = params.vcf.report.config + paramsJson = JsonOutput.toJson(params).replaceAll ("/","\\\\/").replaceAll ("\\\"","\\\\\""); + probands = meta.probands.collect{ proband -> proband.individual_id }.join(",") hpoIds = meta.project.samples.findAll{ sample -> !sample.hpo_ids.isEmpty() }.collect{ sample -> [sample.individual_id, sample.hpo_ids.join(";")].join("/") }.join(",") pedigree = "${meta.project.id}.ped" pedigreeContent = createPedigree(meta.project.samples) + template 'report.sh' stub: diff --git a/modules/vcf/templates/report.sh b/modules/vcf/templates/report.sh index 891748ad8..e50cd0211 100644 --- a/modules/vcf/templates/report.sh +++ b/modules/vcf/templates/report.sh @@ -60,6 +60,10 @@ report() { if [ -n "!{template}" ]; then args+=("--template" "!{template}") fi + if [ -n "!{config}" ]; then + sed 's/VIP_PARAMS_PLACEHOLDER/!{paramsJson}/g' "!{config}" > "processed_config.json" + args+=("--template_config" "processed_config.json") + fi if [ -n "!{crams}" ] && [[ "!{includeCrams}" == "true" ]]; then args+=("--cram" "!{crams}") fi From 1e1d807f23263299c20c8f61edefade38d9aa2ec Mon Sep 17 00:00:00 2001 From: dennishendriksen Date: Fri, 22 Nov 2024 11:22:43 +0100 Subject: [PATCH 02/38] update field_metadata.json and vcf_report_config.json --- config/nxf_vcf.config | 2 +- install.sh | 5 +- modules/vcf/report.nf | 6 +- modules/vcf/templates/report.sh | 4 +- resources/field_metadata.json | 474 +++++++++++++++++++++----- resources/vcf_report_config.json | 558 +++++++++++++++++++++++++++++++ 6 files changed, 952 insertions(+), 97 deletions(-) create mode 100644 resources/vcf_report_config.json diff --git a/config/nxf_vcf.config b/config/nxf_vcf.config index 6e748ee3e..912126d24 100644 --- a/config/nxf_vcf.config +++ b/config/nxf_vcf.config @@ -112,7 +112,7 @@ params { max_records = "" max_samples = "" template = "${projectDir}/resources/vip-report-template-v6.2.0.html" - config = "${projectDir}/resources/vip-report-config-v1.0.0.json" + config = "${projectDir}/resources/vcf_report_config.json" metadata = "${projectDir}/resources/field_metadata.json" GRCh38 { diff --git a/install.sh b/install.sh index 4affa0550..293d9a4e6 100755 --- a/install.sh +++ b/install.sh @@ -146,9 +146,8 @@ download_files() { # update utils/install.sh when updating inheritance.tsv urls+=("df31eb0fe9ebd9ae26c8d6f5f7ba6e57" "resources/inheritance_20240115.tsv") urls+=("7138e76a38d6f67935699d06082ecacf" "resources/vep/cache/homo_sapiens_refseq_vep_111_GRCh38.tar.gz") - #FIXME update to new template -> - urls+=("78962f0c7c6fe5c63ef7c66b627c95a0" "resources/vip-report-template-v6.2.0.html") - urls+=("6a4335f27f93d51f7760c9b2b28ad212" "resources/vip-report-config-v1.0.0.json") + #FIXME update to released template once available + urls+=("603e4ab9cecdd30e00147defabd7720f" "resources/vip-report-template-v7.0.0-dev.html") # when modifying urls array, please keep list in 'ls -l' order for ((i = 0; i < ${#urls[@]}; i += 2)); do download_file "${base_url}" "${urls[i+1]}" "${urls[i+0]}" "${output_dir}" "${validate}" diff --git a/modules/vcf/report.nf b/modules/vcf/report.nf index af296a92b..719ce719d 100644 --- a/modules/vcf/report.nf +++ b/modules/vcf/report.nf @@ -31,9 +31,9 @@ process report { template = params.vcf.report.template crams = meta.crams ? meta.crams.collect { "${it.individual_id}=${it.cram}" }.join(",") : "" includeCrams = params.vcf.report.include_crams - config = params.vcf.report.config - paramsJson = JsonOutput.toJson(params).replaceAll ("/","\\\\/").replaceAll ("\\\"","\\\\\""); - + + configJsonStr = JsonOutput.toJson(new File(params.vcf.report.config).getText('UTF-8').replaceFirst("\\{", "\"vip\": {\"filter_field\": {\"type\": \"genotype\",\"name\": \"VIPC_S\"},\"params\":" + JsonOutput.toJson(params) + "},")) + probands = meta.probands.collect{ proband -> proband.individual_id }.join(",") hpoIds = meta.project.samples.findAll{ sample -> !sample.hpo_ids.isEmpty() }.collect{ sample -> [sample.individual_id, sample.hpo_ids.join(";")].join("/") }.join(",") pedigree = "${meta.project.id}.ped" diff --git a/modules/vcf/templates/report.sh b/modules/vcf/templates/report.sh index e50cd0211..ad99bea5b 100644 --- a/modules/vcf/templates/report.sh +++ b/modules/vcf/templates/report.sh @@ -61,8 +61,8 @@ report() { args+=("--template" "!{template}") fi if [ -n "!{config}" ]; then - sed 's/VIP_PARAMS_PLACEHOLDER/!{paramsJson}/g' "!{config}" > "processed_config.json" - args+=("--template_config" "processed_config.json") + echo "!{configJsonStr}" > "vip_report_config.json" + args+=("--template_config" "vip_report_config.json") fi if [ -n "!{crams}" ] && [[ "!{includeCrams}" == "true" ]]; then args+=("--cram" "!{crams}") diff --git a/resources/field_metadata.json b/resources/field_metadata.json index 345ba6483..ac62b41e3 100644 --- a/resources/field_metadata.json +++ b/resources/field_metadata.json @@ -1,21 +1,93 @@ { "format": { + "ADFL": { + "label": "Flanking reads", + "description": "Number of flanking reads consistent with the allele", + "numberType": "NUMBER", + "numberCount": 1, + "type": "STRING" + }, + "ADIR": { + "label": "In-repeat reads", + "description": "Number of in-repeat reads consistent with the allele", + "numberType": "NUMBER", + "numberCount": 1, + "type": "STRING" + }, + "ADSP": { + "label": "Spanning reads", + "description": "Number of spanning reads consistent with the allele", + "numberType": "NUMBER", + "numberCount": 1, + "type": "STRING" + }, + "LC": { + "label": "Coverage", + "description": "Locus coverage", + "numberType": "NUMBER", + "numberCount": 1, + "type": "FLOAT" + }, + "REPCI": { + "label": "Repeat CI", + "description": "Confidence interval for the number of repeat units spanned by the allele", + "numberType": "NUMBER", + "numberCount": 1, + "type": "STRING" + }, + "REPCN": { + "label": "Repeats", + "description": "Number of repeat units spanned by the allele", + "numberType": "NUMBER", + "numberCount": 1, + "type": "STRING" + }, "VI": { "label": "Inheritance", "description": "An enumeration of possible inheritance modes based on the pedigree of the sample. Potential values: AD, AD_IP, AR, AR_C, XLR, XLD, YL, MT", "numberType": "OTHER", "separator": ",", "type": "CATEGORICAL", - "categories": [ - "AD", - "AD_IP", - "AR", - "AR_C", - "XLD", - "XLR", - "YL", - "MT" - ] + "categories": { + "AD": { + "label": "AD", + "description": "Autosomal dominant" + }, + "AD_IP": { + "label": "AD_IP", + "description": "Autosomal dominant incomplete penetrance" + }, + "AR": { + "label": "AR", + "description": "Autosomal recessive" + }, + "AR_C": { + "label": "AR_C", + "description": "Autosomal recessive compound hetrozygote" + }, + "XLD": { + "label": "XLD", + "description": "X-linked dominant" + }, + "XLR": { + "label": "XLR", + "description": "X-linked recessive" + }, + "YL": { + "label": "YL", + "description": "Y-linked" + }, + "MT": { + "label": "MT", + "description": "Mitochondrial" + } + } + }, + "VIPC_S": { + "label": "VIP sample classification", + "numberType": "OTHER", + "type": "STRING", + "separator": "," } }, "info": { @@ -41,13 +113,28 @@ "numberType": "NUMBER", "numberCount": 1, "type": "CATEGORICAL", - "categories": [ - "B", - "LB", - "VUS", - "LP", - "P" - ] + "categories": { + "B": { + "label": "B", + "description": "Benign" + }, + "LB": { + "label": "LB", + "description": "Likely benign" + }, + "VUS": { + "label": "VUS", + "description": "Variant of uncertain significance" + }, + "LP": { + "label": "LP", + "description": "Likely pathogenic" + }, + "P": { + "label": "P", + "description": "Pathogenic" + } + } }, "CAPICE_SC": { "label": "CAPICE", @@ -90,19 +177,37 @@ "type": "INTEGER" }, "clinVar_CLNSIG": { - "label": "ClinVar variant", + "label": "ClinVar", "description": "Clinical significance for this single variant", "numberType": "OTHER", "separator": "/", "type": "CATEGORICAL", - "categories": [ - "Benign", - "Likely_benign", - "Uncertain_significance", - "Likely_pathogenic", - "Pathogenic", - "Conflicting_interpretations_of_pathogenicity" - ] + "categories": { + "Benign": { + "label": "B", + "description": "Benign" + }, + "Likely_benign": { + "label": "LB", + "description": "Likely benign" + }, + "Uncertain_significance": { + "label": "VUS", + "description": "Variant of uncertain significance" + }, + "Likely_pathogenic": { + "label": "LP", + "description": "Likely pathogenic" + }, + "Pathogenic": { + "label": "P", + "description": "Pathogenic" + }, + "Conflicting_interpretations_of_pathogenicity": { + "label": "Conflict", + "description": "Conflicting interpretations of pathogenicity" + } + } }, "clinVar_CLNSIGINCL": { "label": "ClinVar variant combination", @@ -110,14 +215,32 @@ "numberType": "OTHER", "separator": "&", "type": "CATEGORICAL", - "categories": [ - "Benign", - "Likely_benign", - "Uncertain_significance", - "Likely_pathogenic", - "Pathogenic", - "Conflicting_interpretations_of_pathogenicity" - ] + "categories": { + "Benign": { + "label": "B", + "description": "Benign" + }, + "Likely_benign": { + "label": "LB", + "description": "Likely benign" + }, + "Uncertain_significance": { + "label": "VUS", + "description": "Variant of uncertain significance" + }, + "Likely_pathogenic": { + "label": "LP", + "description": "Likely pathogenic" + }, + "Pathogenic": { + "label": "P", + "description": "Pathogenic" + }, + "Conflicting_interpretations_of_pathogenicity": { + "label": "Conflict", + "description": "Conflicting interpretations of pathogenicity" + } + } }, "clinVar_CLNREVSTAT": { "label": "ClinVar status", @@ -125,17 +248,43 @@ "numberType": "OTHER", "separator": "&", "type": "CATEGORICAL", - "categories": [ - "practice_guideline", - "reviewed_by_expert_panel", - "criteria_provided", - "_multiple_submitters", - "_no_conflicts", - "_single_submitter", - "_conflicting_interpretations", - "no_assertion_criteria_provided", - "no_assertion_provided" - ] + "categories": { + "practice_guideline": { + "label": "Practice guideline", + "description": "There is a submitted record with a classification from a practice guideline" + }, + "reviewed_by_expert_panel": { + "label": "Reviewed by expert panel", + "description": "There is a submitted record with a classification from an expert panel" + }, + "criteria_provided": { + "label": "Criteria provided", + "description": "Assertion criteria and evidence for the classification (or a public contact) were provided" + }, + "_multiple_submitters": { + "label": "Multiple submitters", + "description": "There are multiple submitted records with a classification" + }, + "_no_conflicts": { + "label": "No conflicts", + "description": "The classifications agree" + }, + "_single_submitter": { + "label": "Single submitter", + "description": "There is a single submitted record with a classification" + }, + "_conflicting_interpretations": { + "label": "Conflicting_interpretations", + "description": "There are conflicting classifications" + }, + "no_assertion_criteria_provided": { + "label": "No assertion criteria provided", + "description": "There are one or more submitted records with a classification but without assertion criteria and evidence for the classification (or a public contact)" + }, + "no_assertion_provided": { + "label": "No assertion provided" + } + } }, "Consequence": { "label": "Effect", @@ -199,11 +348,20 @@ "numberType": "NUMBER", "numberCount": 1, "type": "CATEGORICAL", - "categories": [ - "Transcript", - "RegulatoryFeature", - "MotifFeature" - ], + "categories": { + "Transcript": { + "label": "Transcript", + "description": "Transcript" + }, + "RegulatoryFeature": { + "label": "Regulatory", + "description": "Regulatory feature" + }, + "MotifFeature": { + "label": "Motif", + "description": "Motif feature" + } + }, "required": true }, "FLAGS": { @@ -215,14 +373,20 @@ }, "GADO_PD": { "label": "GADO_PD", - "description": "The GADO prediction for the relation between the HPO terms of the proband(s) and the gene, HC: high confidence, LC: low confidence.", + "description": "Gene-phenotypes association based on the GeneNetwork Assisted Diagnostic Optimization (GADO) gene prioritization Z-scores, see https://www.genenetwork.nl/gado and https://doi.org/10.1038/s41467-019-10649-4", "numberType": "NUMBER", "numberCount": 1, "type": "CATEGORICAL", - "categories": [ - "LC", - "HC" - ] + "categories": { + "HC": { + "label": "High confidence", + "description": "Gene phenotype relation predicted by GADO with high confidence; Z-Score greater than 5" + }, + "LC": { + "label": "Low confidence", + "description": "Gene phenotype relation predicted by GADO with low confidence; Z-Score greater than 3 but below 5" + } + } }, "GADO_SC": { "label": "GADO_SC", @@ -268,15 +432,22 @@ }, "gnomAD_SRC": { "label": "gnomAD SRC", - "description": "gnomAD source (E=exomes, G=genomes, T=total)", + "description": "gnomAD source", "numberType": "NUMBER", "numberCount": 1, "type": "CATEGORICAL", - "categories": [ - "E", - "G", - "T" - ] + "categories": { + "E": { + "label": "Exomes" + }, + "G": { + "label": "Genomes" + }, + "T": { + "label": "Total", + "description": "Total: exomes & genomes" + } + } }, "gnomAD_QC": { "label": "gnomAD QC", @@ -308,7 +479,7 @@ }, "HPO": { "label": "HPO", - "description": "Human phenotype ontology matches.", + "description": "Human Phenotype Ontology (HPO) terms describing phenotypic abnormalities, see https://hpo.jax.org/ and https://doi.org/10.1093/nar/gkad1005", "numberType": "OTHER", "separator": "&", "type": "STRING" @@ -319,27 +490,82 @@ "numberType": "NUMBER", "numberCount": 1, "type": "CATEGORICAL", - "categories": [ - "LOW", - "MODERATE", - "HIGH", - "MODIFIER" - ], + "categories": { + "LOW": { + "label": "Low" + }, + "MODERATE": { + "label": "Moderate" + }, + "HIGH": { + "label": "High" + }, + "MODIFIER": { + "label": "Modifier" + } + }, "required": true }, "IncompletePenetrance": { "label": "Gene: Inc.Pen.", - "description": "The gene is associated with Incomplete Penetrance (1:true)", + "description": "Is gene associated with incomplete penetrance?", "numberType": "NUMBER", "numberCount": 1, - "type": "STRING" + "type": "CATEGORICAL", + "categories": { + "1": { + "label": "True", + "description": "Gene is associated with incomplete penetrance" + } + }, + "nullValue": { + "label": "False" + } }, "InheritanceModesGene": { "label": "Inh.Pat.", "description": "Inheritance pattern", "numberType": "OTHER", "separator": "&", - "type": "STRING" + "type": "CATEGORICAL", + "categories": { + "AD": { + "label": "AD", + "description": "Autosomal dominant" + }, + "AD_IP": { + "label": "AD_IP", + "description": "Autosomal dominant incomplete penetrance" + }, + "AR": { + "label": "AR", + "description": "Autosomal recessive" + }, + "AR_C": { + "label": "AR_C", + "description": "Autosomal recessive compound hetrozygote" + }, + "XL": { + "label": "XL", + "description": "X-linked" + }, + "XLD": { + "label": "XLD", + "description": "X-linked dominant" + }, + "XLR": { + "label": "XLR", + "description": "X-linked recessive" + }, + "YL": { + "label": "YL", + "description": "Y-linked" + }, + "MT": { + "label": "MT", + "description": "Mitochondrial" + } + } }, "ncER": { "label": "ncER", @@ -447,8 +673,8 @@ "type": "STRING" }, "VIPC": { - "label": "VIP", - "description": "VIP classification", + "label": "VIP classification", + "description": "Variant consequence classification predicted by the Variant Interpretation Pipeline (VIP), see https://vip.molgeniscloud.org/ and https://doi.org/10.1101/2024.04.11.24305656", "numberType": "NUMBER", "numberCount": 1, "type": "STRING", @@ -464,17 +690,32 @@ }, "VKGL_CL": { "label": "VKGL", - "description": "VKGL consensus classification", + "description": "Variant consensus classification from the Vereniging Klinisch Genetische Laboratoriumdiagnostiek (VKGL) datashare database, see https://vkgl.nl/nl/diagnostiek/vkgl-datashare-database", "numberType": "NUMBER", "numberCount": 1, "type": "CATEGORICAL", - "categories": [ - "B", - "LB", - "VUS", - "LP", - "P" - ] + "categories": { + "B": { + "label": "B", + "description": "Benign" + }, + "LB": { + "label": "LB", + "description": "Likely benign" + }, + "VUS": { + "label": "VUS", + "description": "Variant of uncertain significance" + }, + "LP": { + "label": "LP", + "description": "Likely pathogenic" + }, + "P": { + "label": "P", + "description": "Pathogenic" + } + } }, "VKGL_UMCG": { "label": "MVL", @@ -482,15 +723,72 @@ "numberType": "NUMBER", "numberCount": 1, "type": "CATEGORICAL", - "categories": [ - "B", - "LB", - "VUS", - "LP", - "P" - ] + "categories": { + "B": { + "label": "B", + "description": "Benign" + }, + "LB": { + "label": "LB", + "description": "Likely benign" + }, + "VUS": { + "label": "VUS", + "description": "Variant of uncertain significance" + }, + "LP": { + "label": "LP", + "description": "Likely pathogenic" + }, + "P": { + "label": "P", + "description": "Pathogenic" + } + } + } + } + }, + "STR_NORMAL_MAX": { + "label": "STR normal max", + "description": "Maximum number of repeats allowed to call as normal as defined in the Stranger catalogue", + "numberType": "NUMBER", + "numberCount": 1, + "type": "INTEGER" + }, + "STR_PATHOLOGIC_MIN": { + "label": "STR pathologic min", + "description": "Mininum number of repeats required to call as pathologic as defined in the Stranger catalogue", + "numberType": "NUMBER", + "numberCount": 1, + "type": "INTEGER" + }, + "STR_STATUS": { + "label": "STR status", + "description": "Repeat expansion status as decided by Stranger", + "numberType": "NUMBER", + "numberCount": 1, + "type": "CATEGORICAL", + "categories": { + "normal": { + "label": "normal", + "description": "Repeat count is smaller than or equal to the maximum number of repeats allowed to call as normal" + }, + "pre_mutation": { + "label": "pre-mutation", + "description": "Repeat count is greater than the maximum number of repeats allowed to call as normal and smaller than the minimum number of repeats required to call as pathologic" + }, + "full_mutation": { + "label": "full-mutation", + "description": "Repeat count is greater than or equal to the minimum number of repeats required to call as pathologic" } } + }, + "SVTYPE": { + "label": "SV type", + "description": "Type of structural variant", + "numberType": "NUMBER", + "numberCount": 1, + "type": "STRING" } } } diff --git a/resources/vcf_report_config.json b/resources/vcf_report_config.json new file mode 100644 index 000000000..a8e690d86 --- /dev/null +++ b/resources/vcf_report_config.json @@ -0,0 +1,558 @@ +{ + "sample_variants": { + "sorts": { + "all": [ + { + "selected": true, + "orders": [ + { + "direction": "desc", + "field": { + "type": "info", + "name": "CSQ/CAPICE_SC" + } + } + ] + }, + { + "selected": false, + "orders": [ + { + "direction": "asc", + "field": { + "type": "info", + "name": "CSQ/CAPICE_SC" + } + } + ] + }, + { + "selected": false, + "orders": [ + { + "direction": "desc", + "field": { + "type": "info", + "name": "CSQ/gnomAD_HN" + } + } + ] + }, + { + "selected": false, + "orders": [ + { + "direction": "asc", + "field": { + "type": "info", + "name": "CSQ/gnomAD_HN" + } + } + ] + } + ], + "str": [ + { + "selected": false, + "orders": [ + { + "direction": "desc", + "field": { + "type": "info", + "name": "STR_NORMAL_MAX" + } + } + ] + }, + { + "selected": false, + "orders": [ + { + "direction": "asc", + "field": { + "type": "info", + "name": "STR_NORMAL_MAX" + } + } + ] + }, + { + "selected": false, + "orders": [ + { + "direction": "desc", + "field": { + "type": "info", + "name": "STR_PATHOLOGIC_MIN" + } + } + ] + }, + { + "selected": false, + "orders": [ + { + "direction": "asc", + "field": { + "type": "info", + "name": "STR_PATHOLOGIC_MIN" + } + } + ] + } + ] + }, + "cells": { + "all": [ + { + "type": "composed", + "name": "locus" + }, + { + "type": "composed", + "name": "ref" + }, + { + "type": "info", + "name": "SVTYPE", + "label": "Type" + }, + { + "type": "composed", + "name": "genotype" + }, + { + "type": "group", + "fields": [ + { + "type": "info", + "name": "CSQ/Consequence" + }, + { + "type": "composed", + "name": "gene" + }, + { + "type": "composed", + "name": "inheritancePattern" + }, + { + "type": "composed", + "name": "hpo" + }, + { + "type": "info", + "name": "CSQ/HGVSc" + }, + { + "type": "info", + "name": "CSQ/HGVSp" + }, + { + "type": "info", + "name": "CSQ/CAPICE_SC" + }, + { + "type": "composed", + "name": "vipC" + }, + { + "type": "composed", + "name": "vipCS" + }, + { + "type": "composed", + "name": "vkgl" + }, + { + "type": "composed", + "name": "clinVar" + }, + { + "type": "composed", + "name": "gnomAdAf" + }, + { + "type": "info", + "name": "CSQ/gnomAD_HN" + }, + { + "type": "info", + "name": "CSQ/PUBMED" + } + ] + } + ], + "snv": [ + { + "type": "composed", + "name": "locus" + }, + { + "type": "composed", + "name": "ref" + }, + { + "type": "info", + "name": "SVTYPE" + }, + { + "type": "composed", + "name": "genotype" + }, + { + "type": "group", + "fields": [ + { + "type": "info", + "name": "CSQ/Consequence" + }, + { + "type": "composed", + "name": "gene" + }, + { + "type": "info", + "name": "CSQ/IncompletePenetrance" + }, + { + "type": "composed", + "name": "inheritancePattern" + }, + { + "type": "info", + "name": "CSQ/HGVSc" + }, + { + "type": "info", + "name": "CSQ/HGVSp" + }, + { + "type": "info", + "name": "CSQ/CAPICE_SC" + }, + { + "type": "composed", + "name": "vipC" + }, + { + "type": "composed", + "name": "vipCS" + }, + { + "type": "composed", + "name": "vkgl" + }, + { + "type": "info", + "name": "CSQ/clinVar_CLNSIG" + }, + { + "type": "info", + "name": "CSQ/gnomAD_AF" + }, + { + "type": "info", + "name": "CSQ/gnomAD_HN" + }, + { + "type": "info", + "name": "CSQ/PUBMED" + } + ] + } + ], + "str": [ + { + "type": "composed", + "name": "locus" + }, + { + "type": "composed", + "name": "genotype" + }, + { + "type": "genotype", + "name": "REPCI" + }, + { + "type": "genotype", + "name": "LC" + }, + { + "type": "genotype", + "name": "ADSP" + }, + { + "type": "info", + "name": "STR_NORMAL_MAX" + }, + { + "type": "info", + "name": "STR_PATHOLOGIC_MIN" + }, + { + "type": "group", + "fields": [ + { + "type": "composed", + "name": "gene" + }, + { + "type": "info", + "name": "CSQ/Feature" + }, + { + "type": "composed", + "name": "inheritancePattern" + }, + { + "type": "composed", + "name": "vipC" + }, + { + "type": "composed", + "name": "vipCS" + } + ] + } + ] + }, + "filters": { + "all": [ + { + "type": "composed", + "name": "locus" + }, + { + "type": "info", + "name": "CSQ/SYMBOL" + }, + { + "type": "composed", + "name": "hpo", + "label": "Gene-phenotype association (HPO)" + }, + { + "type": "info", + "name": "CSQ/GADO_PD", + "label": "Gene-phenotype association (GADO)" + }, + { + "type": "info", + "name": "CSQ/IncompletePenetrance" + }, + { + "type": "composed", + "name": "vipC" + }, + { + "type": "composed", + "name": "vipCS" + }, + { + "type": "info", + "name": "CSQ/VKGL_CL" + }, + { + "type": "info", + "name": "CSQ/clinVar_CLNSIG" + }, + { + "type": "genotype", + "name": "VI" + }, + { + "type": "composed", + "name": "inheritanceMatch", + "label": "Inheritance match", + "description": "Indication if the inheritance pattern of any gene associated with the variant matches the inheritance pattern suitable for the samples in the family of the sample. For more information see https://github.com/molgenis/vip-inheritance-matcher ." + }, + { + "type": "composed", + "name": "deNovo", + "label": "De Novo", + "description": "Indication if the variant is De Novo or inherited from the parents of the sample." + }, + { + "type": "composed", + "name": "allelicImbalance", + "label": "Allelic Imbalance", + "description": "Sample genotype shows allelic imbalance, calculated by: the allelic depth (AD) value of the first allele divided by the sum of the AD values for the genotype. For hetrozygotic genotypes values below 0.02 or above 0.8 are considered imbalanced. For homozygotic genotypes values between 0.02 and 0.98 are considered imbalanced." + } + ], + "str": [ + { + "type": "composed", + "name": "locus" + }, + { + "type": "info", + "name": "CSQ/HPO", + "label": "Gene-phenotype association (HPO)" + }, + { + "type": "info", + "name": "CSQ/GADO_PD", + "label": "Gene-phenotype association (GADO)" + }, + { + "type": "info", + "name": "CSQ/SYMBOL" + }, + { + "type": "composed", + "name": "vipC" + }, + { + "type": "composed", + "name": "vipCS" + } + ] + }, + "recordsPerPage": { + "str": [ + { + "number": 10 + }, + { + "number": 20, + "selected": true + }, + { + "number": 50 + }, + { + "number": 100 + } + ] + } + }, + "variants": { + "cells": { + "all": [ + { + "type": "composed", + "name": "locus" + }, + { + "type": "fixed", + "name": "id" + }, + { + "type": "fixed", + "name": "ref" + }, + { + "type": "fixed", + "name": "alt" + }, + { + "type": "fixed", + "name": "qual" + }, + { + "type": "fixed", + "name": "filter" + }, + { + "type": "info", + "name": ".*" + } + ] + }, + "filters": { + "all": [ + { + "type": "composed", + "name": "locus" + }, + { + "type": "fixed", + "name": "id" + }, + { + "type": "fixed", + "name": "ref" + }, + { + "type": "fixed", + "name": "alt" + }, + { + "type": "fixed", + "name": "qual" + }, + { + "type": "fixed", + "name": "filter" + }, + { + "type": "info", + "name": ".*" + } + ] + } + }, + "sample_variant": { + "cells": { + "all": [ + { + "type": "composed", + "name": "vipC" + }, + { + "type": "composed", + "name": "vipCS" + }, + { + "type": "info", + "name": "CSQ/((?!VIPC|VIPP).)*" + } + ] + }, + "sample_cells": { + "all": [ + { + "type": "composed", + "name": "genotype", + "label": "Genotype" + }, + { + "type": "genotype", + "name": "((?!GT|VIPC_S|VIPP_S).)*" + } + ] + } + }, + "variant": { + "cells": { + "all": [ + { + "type": "composed", + "name": "vipC" + }, + { + "type": "info", + "name": "CSQ/((?!VIPC|VIPP).)*" + } + ] + } + }, + "sample_variant_consequence": { + "sample_cells": { + "all": [ + { + "type": "composed", + "name": "genotype", + "label": "Genotype" + }, + { + "type": "genotype", + "name": "((?!GT|VIPC_S|VIPP_S).)*" + } + ] + } + }, + "variant_consequence": {} +} From 0c20c527ee2fea2d49b72a62313e61bdb5ab7ed4 Mon Sep 17 00:00:00 2001 From: dennishendriksen Date: Fri, 22 Nov 2024 11:27:14 +0100 Subject: [PATCH 03/38] fix config --- config/nxf_vcf.config | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/nxf_vcf.config b/config/nxf_vcf.config index 912126d24..661bb6a9a 100644 --- a/config/nxf_vcf.config +++ b/config/nxf_vcf.config @@ -111,7 +111,8 @@ params { include_crams = true max_records = "" max_samples = "" - template = "${projectDir}/resources/vip-report-template-v6.2.0.html" + //FIXME update to released template once available + template = "${projectDir}/resources/vip-report-template-v7.0.0-dev.html" config = "${projectDir}/resources/vcf_report_config.json" metadata = "${projectDir}/resources/field_metadata.json" From e6a8e8702b01882d3fd7b00de47063eb57d2a6d2 Mon Sep 17 00:00:00 2001 From: dennishendriksen Date: Mon, 25 Nov 2024 10:42:36 +0100 Subject: [PATCH 04/38] fix:update config to be compatible with latest vip-report-template --- resources/vcf_report_config.json | 47 ++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/resources/vcf_report_config.json b/resources/vcf_report_config.json index a8e690d86..b1955b2f6 100644 --- a/resources/vcf_report_config.json +++ b/resources/vcf_report_config.json @@ -109,7 +109,7 @@ "name": "locus" }, { - "type": "composed", + "type": "fixed", "name": "ref" }, { @@ -119,7 +119,18 @@ }, { "type": "composed", - "name": "genotype" + "name": "genotype", + "label": "Proband" + }, + { + "type": "composed", + "name": "genotype_maternal", + "label": "Mother" + }, + { + "type": "composed", + "name": "genotype_paternal", + "label": "Father" }, { "type": "group", @@ -189,7 +200,7 @@ "name": "locus" }, { - "type": "composed", + "type": "fixed", "name": "ref" }, { @@ -198,7 +209,18 @@ }, { "type": "composed", - "name": "genotype" + "name": "genotype", + "label": "Proband" + }, + { + "type": "composed", + "name": "genotype_maternal", + "label": "Mother" + }, + { + "type": "composed", + "name": "genotype_paternal", + "label": "Father" }, { "type": "group", @@ -239,6 +261,10 @@ "type": "composed", "name": "vipCS" }, + { + "type": "composed", + "name": "vipCS" + }, { "type": "composed", "name": "vkgl" @@ -269,7 +295,18 @@ }, { "type": "composed", - "name": "genotype" + "name": "genotype", + "label": "Proband" + }, + { + "type": "composed", + "name": "genotype_maternal", + "label": "Mother" + }, + { + "type": "composed", + "name": "genotype_paternal", + "label": "Father" }, { "type": "genotype", From 8fc7b2dddad767dbec27c2cc8d840f62d1bb1a39 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Tue, 26 Nov 2024 14:43:32 +0000 Subject: [PATCH 05/38] Updated decision tree and inheritance modules --- config/nxf_vcf.config | 4 ++-- install.sh | 4 ++-- utils/apptainer/build.sh | 4 ++-- ...-decision-tree-4.1.4.def => vcf-decision-tree-5.1.0.def} | 6 +++--- ...-matcher-3.2.1.def => vcf-inheritance-matcher-3.3.0.def} | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) rename utils/apptainer/def/{vcf-decision-tree-4.1.4.def => vcf-decision-tree-5.1.0.def} (80%) rename utils/apptainer/def/{vcf-inheritance-matcher-3.2.1.def => vcf-inheritance-matcher-3.3.0.def} (95%) diff --git a/config/nxf_vcf.config b/config/nxf_vcf.config index 6e748ee3e..a5532e355 100644 --- a/config/nxf_vcf.config +++ b/config/nxf_vcf.config @@ -8,8 +8,8 @@ env { CMD_FILTERVEP = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vep-111.0.sif filter_vep" CMD_STRANGER = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/stranger-0.8.1_v2.sif stranger" CMD_VCFREPORT="apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-report-7.0.3.sif" - CMD_VCFDECISIONTREE = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-decision-tree-4.1.4.sif" - CMD_VCFINHERITANCEMATCHER = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-inheritance-matcher-3.2.1.sif" + CMD_VCFDECISIONTREE = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-decision-tree-5.1.0.sif" + CMD_VCFINHERITANCEMATCHER = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-inheritance-matcher-3.3.0.sif" // workaround for SAMtools https://github.com/samtools/samtools/issues/1366#issuecomment-769170935 REF_PATH = ":" diff --git a/install.sh b/install.sh index 4affa0550..0ffadc828 100755 --- a/install.sh +++ b/install.sh @@ -87,8 +87,8 @@ download_files() { urls+=("4d58cc7a4e3e497a245095a62562e27e" "images/spectre-0.2.1-patched_v2.sif") urls+=("8f6e06847776448e004df8b863571109" "images/straglr-1.4.4_vip_v3.sif") urls+=("9c69ac645e04b91c8f480289c536429c" "images/stranger-0.8.1_v2.sif") - urls+=("3855ced7eb0c72f283d098d7938d8586" "images/vcf-decision-tree-4.1.4.sif") - urls+=("f238b75e85e8a097447bad471369d0b2" "images/vcf-inheritance-matcher-3.2.1.sif") + urls+=("" "images/vcf-decision-tree-5.1.0.sif") + urls+=("" "images/vcf-inheritance-matcher-3.3.0.sif") urls+=("87b2d9031b1b8351d2da14dd0095fbea" "images/vcf-report-7.0.3.sif") urls+=("7bffc236a7c65b2b2e2e5f7d64beaa87" "images/vep-111.0.sif") urls+=("82be3c18406e7c027ee4cec83a723d71" "nextflow-24.04.2-all") diff --git a/utils/apptainer/build.sh b/utils/apptainer/build.sh index 2dc46cdc9..4c5562d12 100644 --- a/utils/apptainer/build.sh +++ b/utils/apptainer/build.sh @@ -96,8 +96,8 @@ main() { images+=("spectre-0.2.1-patched_v2") images+=("stranger-0.8.1_v2") images+=("straglr-1.4.4_vip_v3") - images+=("vcf-decision-tree-4.1.4") - images+=("vcf-inheritance-matcher-3.2.1") + images+=("vcf-decision-tree-5.1.0") + images+=("vcf-inheritance-matcher-3.3.0") images+=("vcf-report-7.0.3") for i in "${!images[@]}"; do diff --git a/utils/apptainer/def/vcf-decision-tree-4.1.4.def b/utils/apptainer/def/vcf-decision-tree-5.1.0.def similarity index 80% rename from utils/apptainer/def/vcf-decision-tree-4.1.4.def rename to utils/apptainer/def/vcf-decision-tree-5.1.0.def index 55baaa5de..cdbaa43e6 100644 --- a/utils/apptainer/def/vcf-decision-tree-4.1.4.def +++ b/utils/apptainer/def/vcf-decision-tree-5.1.0.def @@ -6,9 +6,9 @@ From: sif/build/openjdk-21.sif Usage: java -jar /opt/vcf-decision-tree/lib/vcf-decision-tree.jar %post - version_major=4 + version_major=5 version_minor=1 - version_patch=4 + version_patch=0 # install apk update @@ -16,7 +16,7 @@ From: sif/build/openjdk-21.sif mkdir -p /opt/vcf-decision-tree/lib curl -Ls -o /opt/vcf-decision-tree/lib/vcf-decision-tree.jar "https://github.com/molgenis/vip-decision-tree/releases/download/v${version_major}.${version_minor}.${version_patch}/vcf-decision-tree.jar" - echo "da4f0ae7a45e5923a6202c990a24f6331a492efa973fb3b590e14384f3fc0adb /opt/vcf-decision-tree/lib/vcf-decision-tree.jar" | sha256sum -c + echo "5c40990aa4f300627e3bed261b2173361db165aea4c5b4aa84012df6277f95be /opt/vcf-decision-tree/lib/vcf-decision-tree.jar" | sha256sum -c # cleanup apk del .build-dependencies diff --git a/utils/apptainer/def/vcf-inheritance-matcher-3.2.1.def b/utils/apptainer/def/vcf-inheritance-matcher-3.3.0.def similarity index 95% rename from utils/apptainer/def/vcf-inheritance-matcher-3.2.1.def rename to utils/apptainer/def/vcf-inheritance-matcher-3.3.0.def index 9cefcb396..e60939ef3 100644 --- a/utils/apptainer/def/vcf-inheritance-matcher-3.2.1.def +++ b/utils/apptainer/def/vcf-inheritance-matcher-3.3.0.def @@ -7,8 +7,8 @@ From: sif/build/openjdk-21.sif %post version_major=3 - version_minor=2 - version_patch=1 + version_minor=3 + version_patch=0 # install apk update From 1be85faaa2bf79de51734cf9ba70d778d17a2cde Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Tue, 26 Nov 2024 14:44:18 +0000 Subject: [PATCH 06/38] update inheritance and decision tree images --- utils/apptainer/def/vcf-decision-tree-5.1.0.def | 2 +- utils/apptainer/def/vcf-inheritance-matcher-3.3.0.def | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/apptainer/def/vcf-decision-tree-5.1.0.def b/utils/apptainer/def/vcf-decision-tree-5.1.0.def index cdbaa43e6..7eeac0b8b 100644 --- a/utils/apptainer/def/vcf-decision-tree-5.1.0.def +++ b/utils/apptainer/def/vcf-decision-tree-5.1.0.def @@ -16,7 +16,7 @@ From: sif/build/openjdk-21.sif mkdir -p /opt/vcf-decision-tree/lib curl -Ls -o /opt/vcf-decision-tree/lib/vcf-decision-tree.jar "https://github.com/molgenis/vip-decision-tree/releases/download/v${version_major}.${version_minor}.${version_patch}/vcf-decision-tree.jar" - echo "5c40990aa4f300627e3bed261b2173361db165aea4c5b4aa84012df6277f95be /opt/vcf-decision-tree/lib/vcf-decision-tree.jar" | sha256sum -c + echo "bfb69bb27bd5c23f95e2e1d0c8b72cb8b92c2ab29e887e70a431e11dcab12269 /opt/vcf-decision-tree/lib/vcf-decision-tree.jar" | sha256sum -c # cleanup apk del .build-dependencies diff --git a/utils/apptainer/def/vcf-inheritance-matcher-3.3.0.def b/utils/apptainer/def/vcf-inheritance-matcher-3.3.0.def index e60939ef3..e2a5568d4 100644 --- a/utils/apptainer/def/vcf-inheritance-matcher-3.3.0.def +++ b/utils/apptainer/def/vcf-inheritance-matcher-3.3.0.def @@ -16,7 +16,7 @@ From: sif/build/openjdk-21.sif mkdir -p /opt/vcf-inheritance-matcher/lib curl -Ls -o /opt/vcf-inheritance-matcher/lib/vcf-inheritance-matcher.jar "https://github.com/molgenis/vip-inheritance-matcher/releases/download/v${version_major}.${version_minor}.${version_patch}/vcf-inheritance-matcher.jar" - echo "9d40033e69188277ac342844b2e50d4044b824ae92638c9ffe1cf1219e1df699 /opt/vcf-inheritance-matcher/lib/vcf-inheritance-matcher.jar" | sha256sum -c + echo "fd77a8dfaa0b09376e12e67ca7448db5f6ef3741371a84469a1ca1cb89a6e231 /opt/vcf-inheritance-matcher/lib/vcf-inheritance-matcher.jar" | sha256sum -c # cleanup apk del .build-dependencies From 9f8c6308fa43e9017ef8478ec5ff7f9fd8737784 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Tue, 26 Nov 2024 14:55:18 +0000 Subject: [PATCH 07/38] update md5sums --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 37ca54fa7..d9da65cc1 100755 --- a/install.sh +++ b/install.sh @@ -87,8 +87,8 @@ download_files() { urls+=("4d58cc7a4e3e497a245095a62562e27e" "images/spectre-0.2.1-patched_v2.sif") urls+=("8f6e06847776448e004df8b863571109" "images/straglr-1.4.4_vip_v3.sif") urls+=("9c69ac645e04b91c8f480289c536429c" "images/stranger-0.8.1_v2.sif") - urls+=("" "images/vcf-decision-tree-5.1.0.sif") - urls+=("" "images/vcf-inheritance-matcher-3.3.0.sif") + urls+=("2cedfcd0b435ee1a45527baae73598bf" "images/vcf-decision-tree-5.1.0.sif") + urls+=("fd316154b78ae5f2487ee6bb47288bf1" "images/vcf-inheritance-matcher-3.3.0.sif") urls+=("87b2d9031b1b8351d2da14dd0095fbea" "images/vcf-report-7.0.3.sif") urls+=("7bffc236a7c65b2b2e2e5f7d64beaa87" "images/vep-111.0.sif") urls+=("82be3c18406e7c027ee4cec83a723d71" "nextflow-24.04.2-all") From c62d48990bf2adcb780a9072d37bfe9848116d3c Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Tue, 26 Nov 2024 15:55:40 +0000 Subject: [PATCH 08/38] Update decision-tree to 5.1.1 --- config/nxf_vcf.config | 2 +- install.sh | 2 +- utils/apptainer/build.sh | 2 +- ...cf-decision-tree-5.1.0.def => vcf-decision-tree-5.1.1.def} | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) rename utils/apptainer/def/{vcf-decision-tree-5.1.0.def => vcf-decision-tree-5.1.1.def} (82%) diff --git a/config/nxf_vcf.config b/config/nxf_vcf.config index 80b25af27..251410727 100644 --- a/config/nxf_vcf.config +++ b/config/nxf_vcf.config @@ -8,7 +8,7 @@ env { CMD_FILTERVEP = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vep-111.0.sif filter_vep" CMD_STRANGER = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/stranger-0.8.1_v2.sif stranger" CMD_VCFREPORT="apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-report-7.0.3.sif" - CMD_VCFDECISIONTREE = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-decision-tree-5.1.0.sif" + CMD_VCFDECISIONTREE = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-decision-tree-5.1.1.sif" CMD_VCFINHERITANCEMATCHER = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-inheritance-matcher-3.3.0.sif" // workaround for SAMtools https://github.com/samtools/samtools/issues/1366#issuecomment-769170935 diff --git a/install.sh b/install.sh index d9da65cc1..bd828f6ee 100755 --- a/install.sh +++ b/install.sh @@ -87,7 +87,7 @@ download_files() { urls+=("4d58cc7a4e3e497a245095a62562e27e" "images/spectre-0.2.1-patched_v2.sif") urls+=("8f6e06847776448e004df8b863571109" "images/straglr-1.4.4_vip_v3.sif") urls+=("9c69ac645e04b91c8f480289c536429c" "images/stranger-0.8.1_v2.sif") - urls+=("2cedfcd0b435ee1a45527baae73598bf" "images/vcf-decision-tree-5.1.0.sif") + urls+=("" "images/vcf-decision-tree-5.1.1.sif") urls+=("fd316154b78ae5f2487ee6bb47288bf1" "images/vcf-inheritance-matcher-3.3.0.sif") urls+=("87b2d9031b1b8351d2da14dd0095fbea" "images/vcf-report-7.0.3.sif") urls+=("7bffc236a7c65b2b2e2e5f7d64beaa87" "images/vep-111.0.sif") diff --git a/utils/apptainer/build.sh b/utils/apptainer/build.sh index 4c5562d12..e0751d9c7 100644 --- a/utils/apptainer/build.sh +++ b/utils/apptainer/build.sh @@ -96,7 +96,7 @@ main() { images+=("spectre-0.2.1-patched_v2") images+=("stranger-0.8.1_v2") images+=("straglr-1.4.4_vip_v3") - images+=("vcf-decision-tree-5.1.0") + images+=("vcf-decision-tree-5.1.1") images+=("vcf-inheritance-matcher-3.3.0") images+=("vcf-report-7.0.3") diff --git a/utils/apptainer/def/vcf-decision-tree-5.1.0.def b/utils/apptainer/def/vcf-decision-tree-5.1.1.def similarity index 82% rename from utils/apptainer/def/vcf-decision-tree-5.1.0.def rename to utils/apptainer/def/vcf-decision-tree-5.1.1.def index 7eeac0b8b..de7fee6a8 100644 --- a/utils/apptainer/def/vcf-decision-tree-5.1.0.def +++ b/utils/apptainer/def/vcf-decision-tree-5.1.1.def @@ -8,7 +8,7 @@ From: sif/build/openjdk-21.sif %post version_major=5 version_minor=1 - version_patch=0 + version_patch=1 # install apk update @@ -16,7 +16,7 @@ From: sif/build/openjdk-21.sif mkdir -p /opt/vcf-decision-tree/lib curl -Ls -o /opt/vcf-decision-tree/lib/vcf-decision-tree.jar "https://github.com/molgenis/vip-decision-tree/releases/download/v${version_major}.${version_minor}.${version_patch}/vcf-decision-tree.jar" - echo "bfb69bb27bd5c23f95e2e1d0c8b72cb8b92c2ab29e887e70a431e11dcab12269 /opt/vcf-decision-tree/lib/vcf-decision-tree.jar" | sha256sum -c + echo "c0687c5a05b0789ed516a0228c072ef8ba7ff0695c4ccd6cc4d8629f40cbe552 /opt/vcf-decision-tree/lib/vcf-decision-tree.jar" | sha256sum -c # cleanup apk del .build-dependencies From f710e47debccb0867c30d7b75a2862c5930ce7b2 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Wed, 27 Nov 2024 07:58:16 +0000 Subject: [PATCH 09/38] update md5sum --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index bd828f6ee..050919a17 100755 --- a/install.sh +++ b/install.sh @@ -87,7 +87,7 @@ download_files() { urls+=("4d58cc7a4e3e497a245095a62562e27e" "images/spectre-0.2.1-patched_v2.sif") urls+=("8f6e06847776448e004df8b863571109" "images/straglr-1.4.4_vip_v3.sif") urls+=("9c69ac645e04b91c8f480289c536429c" "images/stranger-0.8.1_v2.sif") - urls+=("" "images/vcf-decision-tree-5.1.1.sif") + urls+=("8575e48d7da8a7f0728d08dc204e42a5" "images/vcf-decision-tree-5.1.1.sif") urls+=("fd316154b78ae5f2487ee6bb47288bf1" "images/vcf-inheritance-matcher-3.3.0.sif") urls+=("87b2d9031b1b8351d2da14dd0095fbea" "images/vcf-report-7.0.3.sif") urls+=("7bffc236a7c65b2b2e2e5f7d64beaa87" "images/vep-111.0.sif") From 76a75b1ec44098f9a5af0994b902557fc86a2ee3 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Wed, 27 Nov 2024 09:16:11 +0000 Subject: [PATCH 10/38] inheritance matcher 3.3.1 --- config/nxf_vcf.config | 2 +- install.sh | 2 +- utils/apptainer/build.sh | 2 +- ...ce-matcher-3.3.0.def => vcf-inheritance-matcher-3.3.1.def} | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) rename utils/apptainer/def/{vcf-inheritance-matcher-3.3.0.def => vcf-inheritance-matcher-3.3.1.def} (84%) diff --git a/config/nxf_vcf.config b/config/nxf_vcf.config index 251410727..54bd735d6 100644 --- a/config/nxf_vcf.config +++ b/config/nxf_vcf.config @@ -9,7 +9,7 @@ env { CMD_STRANGER = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/stranger-0.8.1_v2.sif stranger" CMD_VCFREPORT="apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-report-7.0.3.sif" CMD_VCFDECISIONTREE = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-decision-tree-5.1.1.sif" - CMD_VCFINHERITANCEMATCHER = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-inheritance-matcher-3.3.0.sif" + CMD_VCFINHERITANCEMATCHER = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-inheritance-matcher-3.3.1.sif" // workaround for SAMtools https://github.com/samtools/samtools/issues/1366#issuecomment-769170935 REF_PATH = ":" diff --git a/install.sh b/install.sh index 050919a17..b29f57815 100755 --- a/install.sh +++ b/install.sh @@ -88,7 +88,7 @@ download_files() { urls+=("8f6e06847776448e004df8b863571109" "images/straglr-1.4.4_vip_v3.sif") urls+=("9c69ac645e04b91c8f480289c536429c" "images/stranger-0.8.1_v2.sif") urls+=("8575e48d7da8a7f0728d08dc204e42a5" "images/vcf-decision-tree-5.1.1.sif") - urls+=("fd316154b78ae5f2487ee6bb47288bf1" "images/vcf-inheritance-matcher-3.3.0.sif") + urls+=("fd316154b78ae5f2487ee6bb47288bf1" "images/vcf-inheritance-matcher-3.3.1.sif") urls+=("87b2d9031b1b8351d2da14dd0095fbea" "images/vcf-report-7.0.3.sif") urls+=("7bffc236a7c65b2b2e2e5f7d64beaa87" "images/vep-111.0.sif") urls+=("82be3c18406e7c027ee4cec83a723d71" "nextflow-24.04.2-all") diff --git a/utils/apptainer/build.sh b/utils/apptainer/build.sh index e0751d9c7..bde484a57 100644 --- a/utils/apptainer/build.sh +++ b/utils/apptainer/build.sh @@ -97,7 +97,7 @@ main() { images+=("stranger-0.8.1_v2") images+=("straglr-1.4.4_vip_v3") images+=("vcf-decision-tree-5.1.1") - images+=("vcf-inheritance-matcher-3.3.0") + images+=("vcf-inheritance-matcher-3.3.1") images+=("vcf-report-7.0.3") for i in "${!images[@]}"; do diff --git a/utils/apptainer/def/vcf-inheritance-matcher-3.3.0.def b/utils/apptainer/def/vcf-inheritance-matcher-3.3.1.def similarity index 84% rename from utils/apptainer/def/vcf-inheritance-matcher-3.3.0.def rename to utils/apptainer/def/vcf-inheritance-matcher-3.3.1.def index e2a5568d4..3e97add89 100644 --- a/utils/apptainer/def/vcf-inheritance-matcher-3.3.0.def +++ b/utils/apptainer/def/vcf-inheritance-matcher-3.3.1.def @@ -8,7 +8,7 @@ From: sif/build/openjdk-21.sif %post version_major=3 version_minor=3 - version_patch=0 + version_patch=1 # install apk update @@ -16,7 +16,7 @@ From: sif/build/openjdk-21.sif mkdir -p /opt/vcf-inheritance-matcher/lib curl -Ls -o /opt/vcf-inheritance-matcher/lib/vcf-inheritance-matcher.jar "https://github.com/molgenis/vip-inheritance-matcher/releases/download/v${version_major}.${version_minor}.${version_patch}/vcf-inheritance-matcher.jar" - echo "fd77a8dfaa0b09376e12e67ca7448db5f6ef3741371a84469a1ca1cb89a6e231 /opt/vcf-inheritance-matcher/lib/vcf-inheritance-matcher.jar" | sha256sum -c + echo "58d05fec3abbb2c2db7db5faec28df4c1684102ac97bafbf1c3036569691aaab /opt/vcf-inheritance-matcher/lib/vcf-inheritance-matcher.jar" | sha256sum -c # cleanup apk del .build-dependencies From 98feae587e65f10b205bf6d847f34d9e97997e42 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Wed, 27 Nov 2024 09:27:56 +0000 Subject: [PATCH 11/38] update md5sum --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index b29f57815..e315a0144 100755 --- a/install.sh +++ b/install.sh @@ -88,7 +88,7 @@ download_files() { urls+=("8f6e06847776448e004df8b863571109" "images/straglr-1.4.4_vip_v3.sif") urls+=("9c69ac645e04b91c8f480289c536429c" "images/stranger-0.8.1_v2.sif") urls+=("8575e48d7da8a7f0728d08dc204e42a5" "images/vcf-decision-tree-5.1.1.sif") - urls+=("fd316154b78ae5f2487ee6bb47288bf1" "images/vcf-inheritance-matcher-3.3.1.sif") + urls+=("cd149c9cc4266e4c4c8e596a52cf6cd8" "images/vcf-inheritance-matcher-3.3.1.sif") urls+=("87b2d9031b1b8351d2da14dd0095fbea" "images/vcf-report-7.0.3.sif") urls+=("7bffc236a7c65b2b2e2e5f7d64beaa87" "images/vep-111.0.sif") urls+=("82be3c18406e7c027ee4cec83a723d71" "nextflow-24.04.2-all") From 0dbe10acc94c0998c48708f86ee04ecc7a1b6a35 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Wed, 27 Nov 2024 10:26:13 +0000 Subject: [PATCH 12/38] inheritance match v3.3.2 --- config/nxf_vcf.config | 2 +- install.sh | 2 +- utils/apptainer/build.sh | 2 +- ...ce-matcher-3.3.1.def => vcf-inheritance-matcher-3.3.2.def} | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) rename utils/apptainer/def/{vcf-inheritance-matcher-3.3.1.def => vcf-inheritance-matcher-3.3.2.def} (84%) diff --git a/config/nxf_vcf.config b/config/nxf_vcf.config index 54bd735d6..49cfa950e 100644 --- a/config/nxf_vcf.config +++ b/config/nxf_vcf.config @@ -9,7 +9,7 @@ env { CMD_STRANGER = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/stranger-0.8.1_v2.sif stranger" CMD_VCFREPORT="apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-report-7.0.3.sif" CMD_VCFDECISIONTREE = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-decision-tree-5.1.1.sif" - CMD_VCFINHERITANCEMATCHER = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-inheritance-matcher-3.3.1.sif" + CMD_VCFINHERITANCEMATCHER = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-inheritance-matcher-3.3.2.sif" // workaround for SAMtools https://github.com/samtools/samtools/issues/1366#issuecomment-769170935 REF_PATH = ":" diff --git a/install.sh b/install.sh index e315a0144..a21bd7204 100755 --- a/install.sh +++ b/install.sh @@ -88,7 +88,7 @@ download_files() { urls+=("8f6e06847776448e004df8b863571109" "images/straglr-1.4.4_vip_v3.sif") urls+=("9c69ac645e04b91c8f480289c536429c" "images/stranger-0.8.1_v2.sif") urls+=("8575e48d7da8a7f0728d08dc204e42a5" "images/vcf-decision-tree-5.1.1.sif") - urls+=("cd149c9cc4266e4c4c8e596a52cf6cd8" "images/vcf-inheritance-matcher-3.3.1.sif") + urls+=("" "images/vcf-inheritance-matcher-3.3.2.sif") urls+=("87b2d9031b1b8351d2da14dd0095fbea" "images/vcf-report-7.0.3.sif") urls+=("7bffc236a7c65b2b2e2e5f7d64beaa87" "images/vep-111.0.sif") urls+=("82be3c18406e7c027ee4cec83a723d71" "nextflow-24.04.2-all") diff --git a/utils/apptainer/build.sh b/utils/apptainer/build.sh index bde484a57..566d07432 100644 --- a/utils/apptainer/build.sh +++ b/utils/apptainer/build.sh @@ -97,7 +97,7 @@ main() { images+=("stranger-0.8.1_v2") images+=("straglr-1.4.4_vip_v3") images+=("vcf-decision-tree-5.1.1") - images+=("vcf-inheritance-matcher-3.3.1") + images+=("vcf-inheritance-matcher-3.3.2") images+=("vcf-report-7.0.3") for i in "${!images[@]}"; do diff --git a/utils/apptainer/def/vcf-inheritance-matcher-3.3.1.def b/utils/apptainer/def/vcf-inheritance-matcher-3.3.2.def similarity index 84% rename from utils/apptainer/def/vcf-inheritance-matcher-3.3.1.def rename to utils/apptainer/def/vcf-inheritance-matcher-3.3.2.def index 3e97add89..480ac9f8a 100644 --- a/utils/apptainer/def/vcf-inheritance-matcher-3.3.1.def +++ b/utils/apptainer/def/vcf-inheritance-matcher-3.3.2.def @@ -8,7 +8,7 @@ From: sif/build/openjdk-21.sif %post version_major=3 version_minor=3 - version_patch=1 + version_patch=2 # install apk update @@ -16,7 +16,7 @@ From: sif/build/openjdk-21.sif mkdir -p /opt/vcf-inheritance-matcher/lib curl -Ls -o /opt/vcf-inheritance-matcher/lib/vcf-inheritance-matcher.jar "https://github.com/molgenis/vip-inheritance-matcher/releases/download/v${version_major}.${version_minor}.${version_patch}/vcf-inheritance-matcher.jar" - echo "58d05fec3abbb2c2db7db5faec28df4c1684102ac97bafbf1c3036569691aaab /opt/vcf-inheritance-matcher/lib/vcf-inheritance-matcher.jar" | sha256sum -c + echo "92331d16c06c00c00b84c3c28aab910ee50b439add0c23e7219515514a2875ae /opt/vcf-inheritance-matcher/lib/vcf-inheritance-matcher.jar" | sha256sum -c # cleanup apk del .build-dependencies From c6e0e6d30f0abddd83532fc9e5b0b55dec47e4b3 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Wed, 27 Nov 2024 10:28:55 +0000 Subject: [PATCH 13/38] update md5sum --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index a21bd7204..294ef4b6e 100755 --- a/install.sh +++ b/install.sh @@ -88,7 +88,7 @@ download_files() { urls+=("8f6e06847776448e004df8b863571109" "images/straglr-1.4.4_vip_v3.sif") urls+=("9c69ac645e04b91c8f480289c536429c" "images/stranger-0.8.1_v2.sif") urls+=("8575e48d7da8a7f0728d08dc204e42a5" "images/vcf-decision-tree-5.1.1.sif") - urls+=("" "images/vcf-inheritance-matcher-3.3.2.sif") + urls+=("57a7329781d3cb0e5491c5f84fd49dcd" "images/vcf-inheritance-matcher-3.3.2.sif") urls+=("87b2d9031b1b8351d2da14dd0095fbea" "images/vcf-report-7.0.3.sif") urls+=("7bffc236a7c65b2b2e2e5f7d64beaa87" "images/vep-111.0.sif") urls+=("82be3c18406e7c027ee4cec83a723d71" "nextflow-24.04.2-all") From 9855e05d4d9a6c5f0969a10165e5b33163ef2d21 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Wed, 27 Nov 2024 10:35:32 +0000 Subject: [PATCH 14/38] provide metadata to inheritance matcher --- modules/vcf/inheritance.nf | 1 + modules/vcf/templates/inheritance.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/modules/vcf/inheritance.nf b/modules/vcf/inheritance.nf index 0ec6a9e7a..cdb271c19 100644 --- a/modules/vcf/inheritance.nf +++ b/modules/vcf/inheritance.nf @@ -16,6 +16,7 @@ process inheritance { vcfOutIndex = "${vcfOut}.csi" vcfOutStats = "${vcfOut}.stats" + metadata = params.vcf.classify.metadata probands = meta.probands.collect{ proband -> proband.individual_id}.join(",") pedigree = "${meta.project.id}.ped" pedigreeContent = createPedigree(meta.project.samples) diff --git a/modules/vcf/templates/inheritance.sh b/modules/vcf/templates/inheritance.sh index caedfffc8..2ed261c4c 100644 --- a/modules/vcf/templates/inheritance.sh +++ b/modules/vcf/templates/inheritance.sh @@ -13,6 +13,7 @@ inheritance () { args+=("-jar" "/opt/vcf-inheritance-matcher/lib/vcf-inheritance-matcher.jar") args+=("--input" "!{vcf}_replaced.vcf.gz") args+=("--output" "!{vcfOut}_replaced.vcf.gz") + args+=("--metadata" "!{metadata}") if [ -n "!{pedigree}" ]; then args+=("--pedigree" "!{pedigree}") fi From c8d05940130cdbb5b0eb5a529f9cf0388fdcf3c9 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Thu, 28 Nov 2024 11:56:11 +0000 Subject: [PATCH 15/38] Report version 7.2.0 --- config/nxf_vcf.config | 2 +- install.sh | 2 +- utils/apptainer/build.sh | 2 +- .../def/{vcf-report-7.0.3.def => vcf-report-7.2.0.def} | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) rename utils/apptainer/def/{vcf-report-7.0.3.def => vcf-report-7.2.0.def} (78%) diff --git a/config/nxf_vcf.config b/config/nxf_vcf.config index 49cfa950e..c6c098086 100644 --- a/config/nxf_vcf.config +++ b/config/nxf_vcf.config @@ -7,7 +7,7 @@ env { CMD_VEP = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vep-111.0.sif vep" CMD_FILTERVEP = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vep-111.0.sif filter_vep" CMD_STRANGER = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/stranger-0.8.1_v2.sif stranger" - CMD_VCFREPORT="apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-report-7.0.3.sif" + CMD_VCFREPORT="apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-report-7.2.0.sif" CMD_VCFDECISIONTREE = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-decision-tree-5.1.1.sif" CMD_VCFINHERITANCEMATCHER = "apptainer exec --no-mount home --bind \${TMPDIR} ${APPTAINER_CACHEDIR}/vcf-inheritance-matcher-3.3.2.sif" diff --git a/install.sh b/install.sh index 294ef4b6e..0170ddd32 100755 --- a/install.sh +++ b/install.sh @@ -89,7 +89,7 @@ download_files() { urls+=("9c69ac645e04b91c8f480289c536429c" "images/stranger-0.8.1_v2.sif") urls+=("8575e48d7da8a7f0728d08dc204e42a5" "images/vcf-decision-tree-5.1.1.sif") urls+=("57a7329781d3cb0e5491c5f84fd49dcd" "images/vcf-inheritance-matcher-3.3.2.sif") - urls+=("87b2d9031b1b8351d2da14dd0095fbea" "images/vcf-report-7.0.3.sif") + urls+=("87b2d9031b1b8351d2da14dd0095fbea" "images/vcf-report-7.2.0.sif") urls+=("7bffc236a7c65b2b2e2e5f7d64beaa87" "images/vep-111.0.sif") urls+=("82be3c18406e7c027ee4cec83a723d71" "nextflow-24.04.2-all") if [ "${assembly}" == "ALL" ] || [ "${assembly}" == "GRCh37" ]; then diff --git a/utils/apptainer/build.sh b/utils/apptainer/build.sh index 566d07432..857e852f3 100644 --- a/utils/apptainer/build.sh +++ b/utils/apptainer/build.sh @@ -98,7 +98,7 @@ main() { images+=("straglr-1.4.4_vip_v3") images+=("vcf-decision-tree-5.1.1") images+=("vcf-inheritance-matcher-3.3.2") - images+=("vcf-report-7.0.3") + images+=("vcf-report-7.2.0") for i in "${!images[@]}"; do echo "---Building ${images[$i]}---" diff --git a/utils/apptainer/def/vcf-report-7.0.3.def b/utils/apptainer/def/vcf-report-7.2.0.def similarity index 78% rename from utils/apptainer/def/vcf-report-7.0.3.def rename to utils/apptainer/def/vcf-report-7.2.0.def index a9f2c9681..502d1e2ed 100644 --- a/utils/apptainer/def/vcf-report-7.0.3.def +++ b/utils/apptainer/def/vcf-report-7.2.0.def @@ -7,8 +7,8 @@ From: sif/build/openjdk-21.sif %post version_major=7 - version_minor=0 - version_patch=3 + version_minor=2 + version_patch=0 # install apk update @@ -16,7 +16,7 @@ From: sif/build/openjdk-21.sif mkdir -p /opt/vcf-report/lib curl -Ls -o /opt/vcf-report/lib/vcf-report.jar "https://github.com/molgenis/vip-report/releases/download/v${version_major}.${version_minor}.${version_patch}/vcf-report.jar" - echo "c081d478d14378136c1fd0691068d7760911602bf308dd48386016a2284e0458 /opt/vcf-report/lib/vcf-report.jar" | sha256sum -c + echo "06d49d172d01c102f483fe5a00b9f7b6e5186b84f7d173597c34f1a6b7034443 /opt/vcf-report/lib/vcf-report.jar" | sha256sum -c # cleanup apk del .build-dependencies From ee552fa7cf7983d2245d4652d76b2d63e51c7ff9 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Thu, 28 Nov 2024 12:02:10 +0000 Subject: [PATCH 16/38] Update template + md5sums --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 0170ddd32..f8c73127d 100755 --- a/install.sh +++ b/install.sh @@ -89,7 +89,7 @@ download_files() { urls+=("9c69ac645e04b91c8f480289c536429c" "images/stranger-0.8.1_v2.sif") urls+=("8575e48d7da8a7f0728d08dc204e42a5" "images/vcf-decision-tree-5.1.1.sif") urls+=("57a7329781d3cb0e5491c5f84fd49dcd" "images/vcf-inheritance-matcher-3.3.2.sif") - urls+=("87b2d9031b1b8351d2da14dd0095fbea" "images/vcf-report-7.2.0.sif") + urls+=("9357590531fd4f1af1ab610ddafbdd3b" "images/vcf-report-7.2.0.sif") urls+=("7bffc236a7c65b2b2e2e5f7d64beaa87" "images/vep-111.0.sif") urls+=("82be3c18406e7c027ee4cec83a723d71" "nextflow-24.04.2-all") if [ "${assembly}" == "ALL" ] || [ "${assembly}" == "GRCh37" ]; then @@ -147,7 +147,7 @@ download_files() { urls+=("df31eb0fe9ebd9ae26c8d6f5f7ba6e57" "resources/inheritance_20240115.tsv") urls+=("7138e76a38d6f67935699d06082ecacf" "resources/vep/cache/homo_sapiens_refseq_vep_111_GRCh38.tar.gz") #FIXME update to released template once available - urls+=("603e4ab9cecdd30e00147defabd7720f" "resources/vip-report-template-v7.0.0-dev.html") + urls+=("0643d06a7bae77f8e749406dfbb0fdef" "resources/vip-report-template-v7.0.1.html") # when modifying urls array, please keep list in 'ls -l' order for ((i = 0; i < ${#urls[@]}; i += 2)); do download_file "${base_url}" "${urls[i+1]}" "${urls[i+0]}" "${output_dir}" "${validate}" From 9fa2a81bc29c940bc4aad5876beef98ca1dcaa42 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Thu, 28 Nov 2024 12:35:35 +0000 Subject: [PATCH 17/38] bump template in config --- config/nxf_vcf.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/nxf_vcf.config b/config/nxf_vcf.config index c6c098086..843361139 100644 --- a/config/nxf_vcf.config +++ b/config/nxf_vcf.config @@ -112,7 +112,7 @@ params { max_records = "" max_samples = "" //FIXME update to released template once available - template = "${projectDir}/resources/vip-report-template-v7.0.0-dev.html" + template = "${projectDir}/resources/vip-report-template-v7.0.1.html" config = "${projectDir}/resources/vcf_report_config.json" metadata = "${projectDir}/resources/field_metadata.json" From aef67f89c43505686583a0ab8555b2660acb214b Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Thu, 28 Nov 2024 12:41:58 +0000 Subject: [PATCH 18/38] Fix report module --- modules/vcf/templates/report.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/vcf/templates/report.sh b/modules/vcf/templates/report.sh index ad99bea5b..6b876fd90 100644 --- a/modules/vcf/templates/report.sh +++ b/modules/vcf/templates/report.sh @@ -60,7 +60,7 @@ report() { if [ -n "!{template}" ]; then args+=("--template" "!{template}") fi - if [ -n "!{config}" ]; then + if [ -n "!{configJsonStr}" ]; then echo "!{configJsonStr}" > "vip_report_config.json" args+=("--template_config" "vip_report_config.json") fi From fe7e7d11ba3331d7a1f2ecb12d4c5e406173c183 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Thu, 28 Nov 2024 12:48:12 +0000 Subject: [PATCH 19/38] Fix config creation --- modules/vcf/templates/report.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/vcf/templates/report.sh b/modules/vcf/templates/report.sh index 6b876fd90..6637ea2e8 100644 --- a/modules/vcf/templates/report.sh +++ b/modules/vcf/templates/report.sh @@ -61,7 +61,7 @@ report() { args+=("--template" "!{template}") fi if [ -n "!{configJsonStr}" ]; then - echo "!{configJsonStr}" > "vip_report_config.json" + echo -e "!{configJsonStr}" > "vip_report_config.json" args+=("--template_config" "vip_report_config.json") fi if [ -n "!{crams}" ] && [[ "!{includeCrams}" == "true" ]]; then From fdbbce36e0496de57e664c5f8659ffd0fafc20db Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Thu, 28 Nov 2024 13:16:52 +0000 Subject: [PATCH 20/38] escape '(' and ')' in vip config --- modules/vcf/report.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/vcf/report.nf b/modules/vcf/report.nf index 719ce719d..beb466252 100644 --- a/modules/vcf/report.nf +++ b/modules/vcf/report.nf @@ -32,7 +32,7 @@ process report { crams = meta.crams ? meta.crams.collect { "${it.individual_id}=${it.cram}" }.join(",") : "" includeCrams = params.vcf.report.include_crams - configJsonStr = JsonOutput.toJson(new File(params.vcf.report.config).getText('UTF-8').replaceFirst("\\{", "\"vip\": {\"filter_field\": {\"type\": \"genotype\",\"name\": \"VIPC_S\"},\"params\":" + JsonOutput.toJson(params) + "},")) + configJsonStr = JsonOutput.toJson(new File(params.vcf.report.config).getText('UTF-8').replaceFirst("\\{", "\"vip\": {\"filter_field\": {\"type\": \"genotype\",\"name\": \"VIPC_S\"},\"params\":" + JsonOutput.toJson(params) + "},")).replaceAll ("\\)","\\\\)").replaceAll ("\\(","\\\\(") probands = meta.probands.collect{ proband -> proband.individual_id }.join(",") hpoIds = meta.project.samples.findAll{ sample -> !sample.hpo_ids.isEmpty() }.collect{ sample -> [sample.individual_id, sample.hpo_ids.join(";")].join("/") }.join(",") From a1133bda96856a4c3a7fb73609c33aa587920757 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Thu, 28 Nov 2024 14:11:48 +0000 Subject: [PATCH 21/38] Fix json config creation --- modules/vcf/report.nf | 2 +- modules/vcf/templates/report.sh | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/vcf/report.nf b/modules/vcf/report.nf index beb466252..aba06d468 100644 --- a/modules/vcf/report.nf +++ b/modules/vcf/report.nf @@ -32,7 +32,7 @@ process report { crams = meta.crams ? meta.crams.collect { "${it.individual_id}=${it.cram}" }.join(",") : "" includeCrams = params.vcf.report.include_crams - configJsonStr = JsonOutput.toJson(new File(params.vcf.report.config).getText('UTF-8').replaceFirst("\\{", "\"vip\": {\"filter_field\": {\"type\": \"genotype\",\"name\": \"VIPC_S\"},\"params\":" + JsonOutput.toJson(params) + "},")).replaceAll ("\\)","\\\\)").replaceAll ("\\(","\\\\(") + configJsonStr = JsonOutput.toJson(new File(params.vcf.report.config).getText('UTF-8').replaceFirst("\\{", "{\"vip\": {\"filter_field\": {\"type\": \"genotype\",\"name\": \"VIPC_S\"},\"params\":" + JsonOutput.toJson(params) + "}")) probands = meta.probands.collect{ proband -> proband.individual_id }.join(",") hpoIds = meta.project.samples.findAll{ sample -> !sample.hpo_ids.isEmpty() }.collect{ sample -> [sample.individual_id, sample.hpo_ids.join(";")].join("/") }.join(",") diff --git a/modules/vcf/templates/report.sh b/modules/vcf/templates/report.sh index 6637ea2e8..a08020fc2 100644 --- a/modules/vcf/templates/report.sh +++ b/modules/vcf/templates/report.sh @@ -60,10 +60,10 @@ report() { if [ -n "!{template}" ]; then args+=("--template" "!{template}") fi - if [ -n "!{configJsonStr}" ]; then - echo -e "!{configJsonStr}" > "vip_report_config.json" +cat << EOF > "vip_report_config.json" +!{configJsonStr} +EOF args+=("--template_config" "vip_report_config.json") - fi if [ -n "!{crams}" ] && [[ "!{includeCrams}" == "true" ]]; then args+=("--cram" "!{crams}") fi From e640b53103909ad5dce54ab496e1c3f086fcfd01 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Thu, 28 Nov 2024 14:23:04 +0000 Subject: [PATCH 22/38] attempt config fix --- modules/vcf/report.nf | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/vcf/report.nf b/modules/vcf/report.nf index aba06d468..8bc2bef3f 100644 --- a/modules/vcf/report.nf +++ b/modules/vcf/report.nf @@ -33,6 +33,7 @@ process report { includeCrams = params.vcf.report.include_crams configJsonStr = JsonOutput.toJson(new File(params.vcf.report.config).getText('UTF-8').replaceFirst("\\{", "{\"vip\": {\"filter_field\": {\"type\": \"genotype\",\"name\": \"VIPC_S\"},\"params\":" + JsonOutput.toJson(params) + "}")) + configJsonStr = configJsonStr.replaceAll ("/","\\\\/").replaceAll ("\\\"","\\\\\"") probands = meta.probands.collect{ proband -> proband.individual_id }.join(",") hpoIds = meta.project.samples.findAll{ sample -> !sample.hpo_ids.isEmpty() }.collect{ sample -> [sample.individual_id, sample.hpo_ids.join(";")].join("/") }.join(",") From 05161e2b60225d8d46b5fde5ca645455fa269d70 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Thu, 28 Nov 2024 14:33:58 +0000 Subject: [PATCH 23/38] Fix config double toJson --- modules/vcf/report.nf | 2 +- modules/vcf/templates/report.sh | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/vcf/report.nf b/modules/vcf/report.nf index 8bc2bef3f..ff0ec33db 100644 --- a/modules/vcf/report.nf +++ b/modules/vcf/report.nf @@ -32,7 +32,7 @@ process report { crams = meta.crams ? meta.crams.collect { "${it.individual_id}=${it.cram}" }.join(",") : "" includeCrams = params.vcf.report.include_crams - configJsonStr = JsonOutput.toJson(new File(params.vcf.report.config).getText('UTF-8').replaceFirst("\\{", "{\"vip\": {\"filter_field\": {\"type\": \"genotype\",\"name\": \"VIPC_S\"},\"params\":" + JsonOutput.toJson(params) + "}")) + configJsonStr = new File(params.vcf.report.config).getText('UTF-8').replaceFirst("\\{", "{\"vip\": {\"filter_field\": {\"type\": \"genotype\",\"name\": \"VIPC_S\"},\"params\":" + JsonOutput.toJson(params) + "}") configJsonStr = configJsonStr.replaceAll ("/","\\\\/").replaceAll ("\\\"","\\\\\"") probands = meta.probands.collect{ proband -> proband.individual_id }.join(",") diff --git a/modules/vcf/templates/report.sh b/modules/vcf/templates/report.sh index a08020fc2..89dc3840e 100644 --- a/modules/vcf/templates/report.sh +++ b/modules/vcf/templates/report.sh @@ -60,9 +60,7 @@ report() { if [ -n "!{template}" ]; then args+=("--template" "!{template}") fi -cat << EOF > "vip_report_config.json" -!{configJsonStr} -EOF + echo -e "!{configJsonStr}" > "vip_report_config.json" args+=("--template_config" "vip_report_config.json") if [ -n "!{crams}" ] && [[ "!{includeCrams}" == "true" ]]; then args+=("--cram" "!{crams}") From 91a9f3c3152b0630101cbf9a16aa636e7ade3f32 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Thu, 28 Nov 2024 14:49:46 +0000 Subject: [PATCH 24/38] Fix the config --- modules/vcf/report.nf | 3 +-- modules/vcf/templates/report.sh | 6 ++++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/vcf/report.nf b/modules/vcf/report.nf index ff0ec33db..1a78cc96e 100644 --- a/modules/vcf/report.nf +++ b/modules/vcf/report.nf @@ -32,8 +32,7 @@ process report { crams = meta.crams ? meta.crams.collect { "${it.individual_id}=${it.cram}" }.join(",") : "" includeCrams = params.vcf.report.include_crams - configJsonStr = new File(params.vcf.report.config).getText('UTF-8').replaceFirst("\\{", "{\"vip\": {\"filter_field\": {\"type\": \"genotype\",\"name\": \"VIPC_S\"},\"params\":" + JsonOutput.toJson(params) + "}") - configJsonStr = configJsonStr.replaceAll ("/","\\\\/").replaceAll ("\\\"","\\\\\"") + configJsonStr = new File(params.vcf.report.config).getText('UTF-8').replaceFirst("\\{", "{\"vip\": {\"filter_field\": {\"type\": \"genotype\",\"name\": \"VIPC_S\"},\"params\":" + JsonOutput.toJson(params) + "},") probands = meta.probands.collect{ proband -> proband.individual_id }.join(",") hpoIds = meta.project.samples.findAll{ sample -> !sample.hpo_ids.isEmpty() }.collect{ sample -> [sample.individual_id, sample.hpo_ids.join(";")].join("/") }.join(",") diff --git a/modules/vcf/templates/report.sh b/modules/vcf/templates/report.sh index 89dc3840e..255c9e064 100644 --- a/modules/vcf/templates/report.sh +++ b/modules/vcf/templates/report.sh @@ -60,8 +60,10 @@ report() { if [ -n "!{template}" ]; then args+=("--template" "!{template}") fi - echo -e "!{configJsonStr}" > "vip_report_config.json" - args+=("--template_config" "vip_report_config.json") + cat << EOF > "vip_report_config.json" +!{configJsonStr} +EOF + args+=("--template_config" "vip_report_config.json") if [ -n "!{crams}" ] && [[ "!{includeCrams}" == "true" ]]; then args+=("--cram" "!{crams}") fi From a509effecaccad11864bd2be99a59c2e1a0f4717 Mon Sep 17 00:00:00 2001 From: dennishendriksen Date: Thu, 28 Nov 2024 16:59:02 +0100 Subject: [PATCH 25/38] chore:remove resolved FIXME --- config/nxf_vcf.config | 1 - 1 file changed, 1 deletion(-) diff --git a/config/nxf_vcf.config b/config/nxf_vcf.config index 843361139..27a6d99ef 100644 --- a/config/nxf_vcf.config +++ b/config/nxf_vcf.config @@ -111,7 +111,6 @@ params { include_crams = true max_records = "" max_samples = "" - //FIXME update to released template once available template = "${projectDir}/resources/vip-report-template-v7.0.1.html" config = "${projectDir}/resources/vcf_report_config.json" metadata = "${projectDir}/resources/field_metadata.json" From aff47dd327be9ab653605b8e411be8df97d63ae8 Mon Sep 17 00:00:00 2001 From: dennishendriksen Date: Fri, 29 Nov 2024 10:10:10 +0100 Subject: [PATCH 26/38] chore:bump template --- config/nxf_vcf.config | 2 +- install.sh | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/config/nxf_vcf.config b/config/nxf_vcf.config index 27a6d99ef..2a23083da 100644 --- a/config/nxf_vcf.config +++ b/config/nxf_vcf.config @@ -111,7 +111,7 @@ params { include_crams = true max_records = "" max_samples = "" - template = "${projectDir}/resources/vip-report-template-v7.0.1.html" + template = "${projectDir}/resources/vip-report-template-v7.0.2.html" config = "${projectDir}/resources/vcf_report_config.json" metadata = "${projectDir}/resources/field_metadata.json" diff --git a/install.sh b/install.sh index 5e3579100..fe40b98a5 100755 --- a/install.sh +++ b/install.sh @@ -147,8 +147,7 @@ download_files() { # update utils/install.sh when updating inheritance.tsv urls+=("df31eb0fe9ebd9ae26c8d6f5f7ba6e57" "resources/inheritance_20240115.tsv") urls+=("7138e76a38d6f67935699d06082ecacf" "resources/vep/cache/homo_sapiens_refseq_vep_111_GRCh38.tar.gz") - #FIXME update to released template once available - urls+=("0643d06a7bae77f8e749406dfbb0fdef" "resources/vip-report-template-v7.0.1.html") + urls+=("e5d17440fc84b49b2fba7a30b500ca93" "resources/vip-report-template-v7.0.2.html") # when modifying urls array, please keep list in 'ls -l' order for ((i = 0; i < ${#urls[@]}; i += 2)); do download_file "${base_url}" "${urls[i+1]}" "${urls[i+0]}" "${output_dir}" "${validate}" From 5fdd0ee943167133e1a2f4e680e55b6318fb6a2d Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Fri, 29 Nov 2024 12:08:18 +0000 Subject: [PATCH 27/38] Update ClinVar creating script and ClinVar resource --- install.sh | 4 +-- resources/field_metadata.json | 12 +++++--- utils/create_clinvar.sh | 53 +++++++++++++++++++++++++++++++++-- 3 files changed, 60 insertions(+), 9 deletions(-) diff --git a/install.sh b/install.sh index f8c73127d..92a3611c8 100755 --- a/install.sh +++ b/install.sh @@ -110,8 +110,8 @@ download_files() { urls+=("498c22d840476a757be5f5b0e382f8d6" "resources/GRCh38/GRCh38_ncER_perc.bed.gz.tbi") urls+=("7cc9cafbdde0b00f8007bc2911310b50" "resources/GRCh38/capice_model_v5.1.2-v3.ubj") urls+=("03d4fb2f5fe500daa77c54455626f8f5" "resources/GRCh38/clinical_repeats.bed") - urls+=("52a5ef527d2509d2196329a67b447975" "resources/GRCh38/clinvar_20241001-stripped.tsv.gz") - urls+=("1231b9c88fb19034d313c4e003667238" "resources/GRCh38/clinvar_20241001-stripped.tsv.gz.tbi") + urls+=("8a80c7c7c99757840b27fffae7924c2e" "resources/GRCh38/clinvar_20241126-stripped.tsv.gz") + urls+=("d8f7ef4667f0685e17e67a79612467f1" "resources/GRCh38/clinvar_20241126-stripped.tsv.gz.tbi") urls+=("72f12f9ee918878030022c46ec850038" "resources/GRCh38/expansionhunter_variant_catalog.json") urls+=("e4c68d0e98a9b5401542b2e8d5b05e82" "resources/GRCh38/gnomad.total.v4.1.sites.stripped.tsv.gz") urls+=("eebfca693425c159d87479fef26d3774" "resources/GRCh38/gnomad.total.v4.1.sites.stripped.tsv.gz.tbi") diff --git a/resources/field_metadata.json b/resources/field_metadata.json index ac62b41e3..a3ac845e0 100644 --- a/resources/field_metadata.json +++ b/resources/field_metadata.json @@ -203,9 +203,13 @@ "label": "P", "description": "Pathogenic" }, - "Conflicting_interpretations_of_pathogenicity": { + "Conflicting_classifications_of_pathogenicity": { "label": "Conflict", - "description": "Conflicting interpretations of pathogenicity" + "description": "Conflicting classifications of pathogenicity" + }, + "Other": { + "label": "Other", + "description": "Classifications that do not match the common categorical values." } } }, @@ -236,9 +240,9 @@ "label": "P", "description": "Pathogenic" }, - "Conflicting_interpretations_of_pathogenicity": { + "Conflicting_classifications_of_pathogenicity": { "label": "Conflict", - "description": "Conflicting interpretations of pathogenicity" + "description": "Conflicting classifications of pathogenicity" } } }, diff --git a/utils/create_clinvar.sh b/utils/create_clinvar.sh index b945975aa..edcad1b7e 100644 --- a/utils/create_clinvar.sh +++ b/utils/create_clinvar.sh @@ -19,11 +19,56 @@ strip() { echo -e "1 chr1\n2 chr2\n3 chr3\n4 chr4\n5 chr5\n6 chr6\n7 chr7\n8 chr8\n9 chr9\n10 chr10\n11 chr11\n12 chr12\n13 chr13\n14 chr14\n15 chr15\n16 chr16\n17 chr17\n18 chr18\n19 chr19\n20 chr20\n21 chr21\n22 chr22\nX chrX\nY chrY\nMT chrM\n" > "chr_mapping.tmp" bcftools annotate --rename-chrs chr_mapping.tmp --no-version --threads 8 "${input}" |\ bcftools query --print-header --format '%CHROM\t%POS\t%ID\t%REF\t%ALT\t%INFO/CLNSIG\t%INFO/CLNSIGINCL\t%INFO/CLNREVSTAT\n' |\ - bgzip --stdout --compress-level 9 --threads 8 > "${output}" - tabix "${output}" --begin 2 --end 2 --sequence 1 --skip-lines 1 + bgzip --stdout --compress-level 9 --threads 8 > "${output}" + rm "chr_mapping.tmp" } +map(){ + local -r input="${1}" + local -r output="${2}" + + zcat "${input}" | awk 'BEGIN { + FS=OFS="\t"; + mapping["Benign"]="Benign"; + mapping["Likely_benign"]="Likely_benign"; + mapping["Uncertain_significance"]="Uncertain_significance"; + mapping["Likely_pathogenic"]="Likely_pathogenic"; + mapping["Pathogenic"]="Pathogenic"; + mapping["Conflicting_classifications_of_pathogenicity"]="Conflicting_classifications_of_pathogenicity"; + mapping["Benign/Likely_benign"]="Likely_benign"; + mapping["Pathogenic/Likely_pathogenic"]="Likely_pathogenic"; + } + { + split($6, values, "|"); + new_values = ""; + delete seen; + + for (i in values) { + val = values[i]; + if (val in mapping) { + val = mapping[val]; + } + else{ + val = "Other"; + } + if (!seen[val]++) { + new_values = (new_values == "" ? val : new_values "|" val); + } + } + $6 = new_values; + print + }' | + bgzip --stdout --compress-level 9 --threads 8 > "${output}" + + rm "${input}" +} + +index(){ + local -r output="${1}" + tabix "${output}" --begin 2 --end 2 --sequence 1 --skip-lines 1 +} + validate() { local -r input="${1}" local -r output="${2}" @@ -126,7 +171,9 @@ main() { fi validate "${input}" "${output}" "${assembly}" - strip "${input}" "${output}" "${assembly}" + strip "${input}" "${input}_stripped.tsv" "${assembly}" + map "${input}_stripped.tsv" "${output}" + index "${output}" } main "${@}" From 1f71ca9886354f0134452692d8b95f7b044cb409 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Fri, 29 Nov 2024 12:30:29 +0000 Subject: [PATCH 28/38] Fix metadata for clinVar_CLNREVSTAT --- resources/field_metadata.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/field_metadata.json b/resources/field_metadata.json index a3ac845e0..305a52754 100644 --- a/resources/field_metadata.json +++ b/resources/field_metadata.json @@ -277,8 +277,8 @@ "label": "Single submitter", "description": "There is a single submitted record with a classification" }, - "_conflicting_interpretations": { - "label": "Conflicting_interpretations", + "_conflicting_classifications": { + "label": "Conflicting_classifications", "description": "There are conflicting classifications" }, "no_assertion_criteria_provided": { From 7051c1eecdf7cfb5edf16f6fb68adbf185a71baa Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Fri, 29 Nov 2024 12:45:48 +0000 Subject: [PATCH 29/38] Update vcf config t use new clinvar --- config/nxf_vcf.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/nxf_vcf.config b/config/nxf_vcf.config index 2a23083da..4675298b3 100644 --- a/config/nxf_vcf.config +++ b/config/nxf_vcf.config @@ -66,7 +66,7 @@ params { expansionhunter_variant_catalog = "${projectDir}/resources/GRCh38/expansionhunter_variant_catalog.json" stranger_catalog = "${projectDir}/resources/GRCh38/variant_catalog_grch38_fixed.json" vep_custom_phylop = "${projectDir}/resources/GRCh38/hg38.phyloP100way.bw" - vep_plugin_clinvar = "${projectDir}/resources/GRCh38/clinvar_20241001-stripped.tsv.gz" + vep_plugin_clinvar = "${projectDir}/resources/GRCh38/clinvar_20241126-stripped.tsv.gz" vep_plugin_gnomad = "${projectDir}/resources/GRCh38/gnomad.total.v4.1.sites.stripped.tsv.gz" vep_plugin_spliceai_indel = "${projectDir}/resources/GRCh38/spliceai_scores.masked.indel.hg38.vcf.gz" vep_plugin_spliceai_snv = "${projectDir}/resources/GRCh38/spliceai_scores.masked.snv.hg38.vcf.gz" From d83b0de755461a09e09f7a836560f11ef2462f6b Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Fri, 29 Nov 2024 13:02:19 +0000 Subject: [PATCH 30/38] clinVar_CLNREVSTAT metadata update --- resources/field_metadata.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/resources/field_metadata.json b/resources/field_metadata.json index 305a52754..cc09f6c0c 100644 --- a/resources/field_metadata.json +++ b/resources/field_metadata.json @@ -287,6 +287,15 @@ }, "no_assertion_provided": { "label": "No assertion provided" + }, + "no_classification_for_the_single_variant": { + "label": "No classification for the single variant" + }, + "no_classification_provided": { + "label": "No classification provided" + }, + "no_classifications_from_unflagged_records": { + "label": "No classifications from unflagged records" } } }, From 3bc4f479a92330cffef0c942caeb81603f13a0c5 Mon Sep 17 00:00:00 2001 From: bartcharbon Date: Fri, 29 Nov 2024 13:26:54 +0000 Subject: [PATCH 31/38] Update clinvar separator --- resources/field_metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/field_metadata.json b/resources/field_metadata.json index cc09f6c0c..165768cda 100644 --- a/resources/field_metadata.json +++ b/resources/field_metadata.json @@ -180,7 +180,7 @@ "label": "ClinVar", "description": "Clinical significance for this single variant", "numberType": "OTHER", - "separator": "/", + "separator": "&", "type": "CATEGORICAL", "categories": { "Benign": { From b7a47b0752b55f963b6230c89a90e08b4370f0cc Mon Sep 17 00:00:00 2001 From: dennishendriksen Date: Sat, 30 Nov 2024 10:55:19 +0100 Subject: [PATCH 32/38] fix:create_clinvar.sh output header --- utils/create_clinvar.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utils/create_clinvar.sh b/utils/create_clinvar.sh index edcad1b7e..bb3793699 100644 --- a/utils/create_clinvar.sh +++ b/utils/create_clinvar.sh @@ -39,7 +39,10 @@ map(){ mapping["Benign/Likely_benign"]="Likely_benign"; mapping["Pathogenic/Likely_pathogenic"]="Likely_pathogenic"; } - { + NR==1 { + print + } + NR>1 { split($6, values, "|"); new_values = ""; delete seen; From 598197201f277eb45c75e5c6bd6ec4717440222c Mon Sep 17 00:00:00 2001 From: dennishendriksen Date: Sat, 30 Nov 2024 10:57:43 +0100 Subject: [PATCH 33/38] fix:header of clinvar resource --- install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install.sh b/install.sh index 183d54b2b..dd1261e00 100755 --- a/install.sh +++ b/install.sh @@ -110,8 +110,8 @@ download_files() { urls+=("498c22d840476a757be5f5b0e382f8d6" "resources/GRCh38/GRCh38_ncER_perc.bed.gz.tbi") urls+=("7cc9cafbdde0b00f8007bc2911310b50" "resources/GRCh38/capice_model_v5.1.2-v3.ubj") urls+=("03d4fb2f5fe500daa77c54455626f8f5" "resources/GRCh38/clinical_repeats.bed") - urls+=("8a80c7c7c99757840b27fffae7924c2e" "resources/GRCh38/clinvar_20241126-stripped.tsv.gz") - urls+=("d8f7ef4667f0685e17e67a79612467f1" "resources/GRCh38/clinvar_20241126-stripped.tsv.gz.tbi") + urls+=("8da13608d59915f031beade9c3981c2e" "resources/GRCh38/clinvar_20241126-stripped.tsv.gz") + urls+=("6b1ed6d55e870e37d2bed360abc26fe2" "resources/GRCh38/clinvar_20241126-stripped.tsv.gz.tbi") urls+=("72f12f9ee918878030022c46ec850038" "resources/GRCh38/expansionhunter_variant_catalog.json") urls+=("e4c68d0e98a9b5401542b2e8d5b05e82" "resources/GRCh38/gnomad.total.v4.1.sites.stripped.tsv.gz") urls+=("eebfca693425c159d87479fef26d3774" "resources/GRCh38/gnomad.total.v4.1.sites.stripped.tsv.gz.tbi") From aa8045f687e5e557953e2e8724cb3ef3f9887458 Mon Sep 17 00:00:00 2001 From: dennishendriksen Date: Sat, 30 Nov 2024 10:58:48 +0100 Subject: [PATCH 34/38] fix:clinVar_CLNSIGINCL in field_metadata.json --- resources/field_metadata.json | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/resources/field_metadata.json b/resources/field_metadata.json index 165768cda..d9da4b0a0 100644 --- a/resources/field_metadata.json +++ b/resources/field_metadata.json @@ -218,33 +218,7 @@ "description": "Clinical significance for a haplotype or genotype that includes this variant", "numberType": "OTHER", "separator": "&", - "type": "CATEGORICAL", - "categories": { - "Benign": { - "label": "B", - "description": "Benign" - }, - "Likely_benign": { - "label": "LB", - "description": "Likely benign" - }, - "Uncertain_significance": { - "label": "VUS", - "description": "Variant of uncertain significance" - }, - "Likely_pathogenic": { - "label": "LP", - "description": "Likely pathogenic" - }, - "Pathogenic": { - "label": "P", - "description": "Pathogenic" - }, - "Conflicting_classifications_of_pathogenicity": { - "label": "Conflict", - "description": "Conflicting classifications of pathogenicity" - } - } + "type": "STRING" }, "clinVar_CLNREVSTAT": { "label": "ClinVar status", From 5984d09c07b849a501b4c22bb58a244013298ebe Mon Sep 17 00:00:00 2001 From: dennishendriksen Date: Sat, 30 Nov 2024 11:04:28 +0100 Subject: [PATCH 35/38] fix:clinVar_CLNSIGINCL in decision tree --- resources/decision_tree_GRCh38.json | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/resources/decision_tree_GRCh38.json b/resources/decision_tree_GRCh38.json index 1b6ea5520..507efaf9a 100644 --- a/resources/decision_tree_GRCh38.json +++ b/resources/decision_tree_GRCh38.json @@ -65,7 +65,9 @@ { "field": "INFO/CSQ/clinVar_CLNSIG", "operator": "contains_any", - "value": [ "Conflicting_interpretations_of_pathogenicity" ] + "value": [ + "Conflicting_classifications_of_pathogenicity" + ] } ], "outcomeTrue": { @@ -78,7 +80,10 @@ { "field": "INFO/CSQ/clinVar_CLNSIG", "operator": "contains_any", - "value": [ "Likely_pathogenic", "Pathogenic" ] + "value": [ + "Likely_pathogenic", + "Pathogenic" + ] } ], "outcomeTrue": { @@ -91,7 +96,9 @@ { "field": "INFO/CSQ/clinVar_CLNSIG", "operator": "contains_any", - "value": [ "Uncertain_significance" ] + "value": [ + "Uncertain_significance" + ] } ], "outcomeTrue": { @@ -104,7 +111,10 @@ { "field": "INFO/CSQ/clinVar_CLNSIG", "operator": "contains_any", - "value": [ "Likely_benign", "Benign" ] + "value": [ + "Likely_benign", + "Benign" + ] } ], "outcomeTrue": { From 00ad87c6076602ae60c57948a3240e2e402f056c Mon Sep 17 00:00:00 2001 From: dennishendriksen Date: Sat, 30 Nov 2024 11:11:33 +0100 Subject: [PATCH 36/38] fix:annotation docs for clinVar_CLNSIGINCL --- docs/advanced/annotations.md | 114 ++++++++++++++++++++++++++--------- 1 file changed, 85 insertions(+), 29 deletions(-) diff --git a/docs/advanced/annotations.md b/docs/advanced/annotations.md index b81d4fa21..94a6cde50 100644 --- a/docs/advanced/annotations.md +++ b/docs/advanced/annotations.md @@ -1,9 +1,15 @@ # Annotations -VIP annotates variant effects and genotype data for samples using a rich set of tools. Annotions can be used to [classify variants using classification trees](classification_trees.md) and displayed in [reports](report_templates.md). + +VIP annotates variant effects and genotype data for samples using a rich set of tools. Annotions can be used +to [classify variants using classification trees](classification_trees.md) and displayed +in [reports](report_templates.md). ## Overview -The table contains annotations available in most output files. Depending on the workflow and the configuration used additional annotations might be available, -check the output file headers for the complete overview. Similarly, some annotations listed below might be missing from your output file depending on the sample sheet content and configuration. + +The table contains annotations available in most output files. Depending on the workflow and the configuration used +additional annotations might be available, +check the output file headers for the complete overview. Similarly, some annotations listed below might be missing from +your output file depending on the sample sheet content and configuration. | annotation | type | source | description | |---------------------------------------------|------------------|---------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -30,7 +36,7 @@ check the output file headers for the complete overview. Similarly, some annotat | INFO/CSQ/CLIN_SIG | string list | VEP | ClinVar classification(s) (do not use, see [here](https://github.com/Ensembl/ensembl-vep/issues/1213)) | | INFO/CSQ/clinVar_CLNID | integer list | VEP plugin | ClinVar variation identifier | | INFO/CSQ/clinVar_CLNREVSTAT | categorical list | VEP plugin | ClinVar review status for the Variation ID. Categories: practice_guideline, reviewed_by_expert_panel, criteria_provided, _multiple_submitters, _no_conflicts, _single_submitter, _conflicting_interpretations, no_assertion_criteria_provided, no_assertion_provided | -| INFO/CSQ/clinVar_CLNSIG | string | VEP plugin | Clinical significance for this single variant; multiple values are separated by a vertical bar. Categories: Benign, Likely_benign, Uncertain_significance, Likely_pathogenic, Pathogenic, Conflicting_interpretations_of_pathogenicity | +| INFO/CSQ/clinVar_CLNSIG | string | VEP plugin | Clinical significance for this single variant; multiple values are separated by a vertical bar. Categories: Benign, Likely_benign, Uncertain_significance, Likely_pathogenic, Pathogenic, Conflicting_classifications_of_pathogenicity, Other | | INFO/CSQ/clinVar_CLNSIGINCL | string | VEP plugin | Clinical significance for a haplotype or genotype that includes this variant. Reported as pairs of VariationID:clinical significance; multiple values are separated by a vertical bar. Categories: Benign, Likely_benign, Uncertain_significance, Likely_pathogenic, Pathogenic, Conflicting_interpretations_of_pathogenicity | | INFO/CSQ/Codons | string | VEP | Reference and variant codon sequence | | INFO/CSQ/Consequence | string list | VEP | Effect(s) described as Sequence Ontology term(s) | @@ -102,64 +108,114 @@ check the output file headers for the complete overview. Similarly, some annotat | INFO/CSQ/VKGL_CL | string | VEP plugin | VKGL consensus variant classification | ## Details -VIP uses the [Ensemble Effect Predictor](https://github.com/Ensembl/ensembl-vep) to annotate all variants with their consequences. We use VEP with the `refseq` option for the transcripts, and with the flags for `sift` and `polyphen` annotations enabled. + +VIP uses the [Ensemble Effect Predictor](https://github.com/Ensembl/ensembl-vep) to annotate all variants with their +consequences. We use VEP with the `refseq` option for the transcripts, and with the flags for `sift` and `polyphen` +annotations enabled. ### Plugins + Below we describe the other sources which we annotate using the VEP plugin framework. #### CAPICE -[CAPICE](https://github.com/molgenis/capice) is a computational method for predicting the pathogenicity of SNVs and InDels. It is a gradient boosting tree model trained using a variety of genomic annotations used by CADD score and trained on the clinical significance. CAPICE performs consistently across diverse independent synthetic, and real clinical data sets. It ourperforms the current best method in pathogenicity estimation for variants of different molecular consequences and allele frequency. -We run the CAPICE application in the VIP pipeline and use a VEP plugin to annotate the VEP output with the scores from the CAPICE output file. +[CAPICE](https://github.com/molgenis/capice) is a computational method for predicting the pathogenicity of SNVs and +InDels. It is a gradient boosting tree model trained using a variety of genomic annotations used by CADD score and +trained on the clinical significance. CAPICE performs consistently across diverse independent synthetic, and real +clinical data sets. It ourperforms the current best method in pathogenicity estimation for variants of different +molecular consequences and allele frequency. + +We run the CAPICE application in the VIP pipeline and use a VEP plugin to annotate the VEP output with the scores from +the CAPICE output file. #### VKGL -The datashare workgroup of VKGL has set up a [central database](https://www.vkgl.nl/nl/diagnostiek/vkgl-datashare-database) to enable mutual sharing of variant classifications through a partly automatic process. An additional goal is the public sharing of these data. The currently publicly available part of the database consists of DNA variant classifications established based on (former) diagnostic questions. -We add the classifications from an export of the database and use a VEP plugin to annotate the VEP output with the classifications from the this file. +The datashare workgroup of VKGL has set up +a [central database](https://www.vkgl.nl/nl/diagnostiek/vkgl-datashare-database) to enable mutual sharing of variant +classifications through a partly automatic process. An additional goal is the public sharing of these data. The +currently publicly available part of the database consists of DNA variant classifications established based on (former) +diagnostic questions. + +We add the classifications from an export of the database and use a VEP plugin to annotate the VEP output with the +classifications from the this file. #### SpliceAI -SpliceAI is an open-source deep learning splicing prediction algorithm that has demonstrated in the past few years its high ability to predict splicing defects caused by DNA variations. -We add the scores from the available precomputed scores of SpliceAI and use a copy of the available [VEP plugin](https://github.com/Ensembl/VEP_plugins/blob/release/109/SpliceAI.pm) to annotate the VEP output with the classifications from the this file. +SpliceAI is an open-source deep learning splicing prediction algorithm that has demonstrated in the past few years its +high ability to predict splicing defects caused by DNA variations. + +We add the scores from the available precomputed scores of SpliceAI and use a copy of the +available [VEP plugin](https://github.com/Ensembl/VEP_plugins/blob/release/109/SpliceAI.pm) to annotate the VEP output +with the classifications from the this file. #### AnnotSV -[AnnotSV](https://lbgi.fr/AnnotSV/) is a program for annotating and ranking structural variations from genomes of several organisms. -We run the AnnotSV application in the VIP pipeline and use a VEP plugin to annotate the VEP output with the scores from the AnnotSV output file. +[AnnotSV](https://lbgi.fr/AnnotSV/) is a program for annotating and ranking structural variations from genomes of +several organisms. + +We run the AnnotSV application in the VIP pipeline and use a VEP plugin to annotate the VEP output with the scores from +the AnnotSV output file. #### HPO -A file based on the HPO [phenotype_to_genes.txt](http://purl.obolibrary.org/obo/hp/hpoa/phenotype_to_genes.txt) is used to annotate VEP consequences with the inheritance modes associated with the gene of this consequence. + +A file based on the HPO [phenotype_to_genes.txt](http://purl.obolibrary.org/obo/hp/hpoa/phenotype_to_genes.txt) is used +to annotate VEP consequences with the inheritance modes associated with the gene of this consequence. #### Inheritance -A file based on the [CGD database](https://research.nhgri.nih.gov/CGD/) is used to annotate VEP consequences with the inheritance modes associated with the gene of this consequence. + +A file based on the [CGD database](https://research.nhgri.nih.gov/CGD/) is used to annotate VEP consequences with the +inheritance modes associated with the gene of this consequence. #### Grantham -The [Grantham score](https://www.science.org/doi/10.1126/science.185.4154.862) attempts to predict the distance between two amino acids, in an evolutionary sense. A lower Grantham score reflects less evolutionary distance. A higher Grantham score reflects a greater evolutionary distance. -We use a copy of the VEP plugin by Duarte Molha to annotate the VEP output with Grantham scores. +The [Grantham score](https://www.science.org/doi/10.1126/science.185.4154.862) attempts to predict the distance between +two amino acids, in an evolutionary sense. A lower Grantham score reflects less evolutionary distance. A higher Grantham +score reflects a greater evolutionary distance. + +We use a copy of the VEP plugin by Duarte Molha to annotate the VEP output with Grantham scores. #### GADO -[GADO](https://www.nature.com/articles/s41467-019-10649-4/) can be used to prioritize genes based on the HPO terms of a patient.. -We run the GADO commandline application in the VIP pipeline and use a VEP plugin to annotate the VEP output with the scores from the GADO output file. +[GADO](https://www.nature.com/articles/s41467-019-10649-4/) can be used to prioritize genes based on the HPO terms of a +patient.. + +We run the GADO commandline application in the VIP pipeline and use a VEP plugin to annotate the VEP output with the +scores from the GADO output file. #### AlphScore -[AlphScore](https://doi.org/10.5281/zenodo.6288138) is a method to predict the pathogenicity of missense variants using features derived from AlphaFold2. + +[AlphScore](https://doi.org/10.5281/zenodo.6288138) is a method to predict the pathogenicity of missense variants using +features derived from AlphaFold2. We add the available precomputed scores of AlphScore using a custom VEP plugin. #### ncER -[The non-coding essential regulation (ncER)](https://www.nature.com/articles/s41467-019-13212-3) score indicates if a region is likely to be essential in terms of regulation. -The ncER file VIP uses is the version provided by GREEN-VARAN (https://github.com/edg1983/GREEN-VARAN) on Zenodo: https://zenodo.org/records/5636163 + +[The non-coding essential regulation (ncER)](https://www.nature.com/articles/s41467-019-13212-3) score indicates if a +region is likely to be essential in terms of regulation. +The ncER file VIP uses is the version provided by GREEN-VARAN (https://github.com/edg1983/GREEN-VARAN) on +Zenodo: https://zenodo.org/records/5636163 #### ReMM -[The Regulatory Mendelian Mutation (ReMM)](https://charite.github.io/software-remm-score.html) score was created for relevance prediction of non-coding variations (SNVs and small InDels) in the human genome (hg19) in terms of Mendelian diseases. The VEP plugin is build on top of the GREEN-DB dataset (GRCh38) for ReMM scores: https://zenodo.org/records/3955933 + +[The Regulatory Mendelian Mutation (ReMM)](https://charite.github.io/software-remm-score.html) score was created for +relevance prediction of non-coding variations (SNVs and small InDels) in the human genome (hg19) in terms of Mendelian +diseases. The VEP plugin is build on top of the GREEN-DB dataset (GRCh38) for ReMM +scores: https://zenodo.org/records/3955933 #### FATHMM-MKL -[FATHMM-MKL](https://fathmm.biocompute.org.uk/fathmmMKL.htm) predicts the Functional Consequences of Coding and Non-Coding Single Nucleotide Variants (SNVs) - This plugin annotates non-coding scores only, and is build on top of the GREEN-DB dataset (GRCh38) for FATHMM-MKL non coding scores: https://zenodo.org/records/3981121 - #### GREEN-DB constraint scores -[GREEN-DB](https://doi.org/10.1101/2020.09.17.301960) GREEN-DB is a comprehensive collection of 2.4 million regulatory elements in the human genome collected from previously published databases, high-throughput screenings and functional studies. -This plugin annotates the constrain scores only, and is build on top of the GREEN-DB bed files (GRCh38): https://zenodo.org/records/5636209 -GREEN-DB constrains scores are annotated per region type: enhancers, promotors, bivalent, insulators, silencers. If multiple regions of the same type overlap, VIP annotates the highest constraint score. \ No newline at end of file +[FATHMM-MKL](https://fathmm.biocompute.org.uk/fathmmMKL.htm) predicts the Functional Consequences of Coding and +Non-Coding Single Nucleotide Variants (SNVs) +This plugin annotates non-coding scores only, and is build on top of the GREEN-DB dataset (GRCh38) for FATHMM-MKL non +coding scores: https://zenodo.org/records/3981121 + +#### GREEN-DB constraint scores + +[GREEN-DB](https://doi.org/10.1101/2020.09.17.301960) GREEN-DB is a comprehensive collection of 2.4 million regulatory +elements in the human genome collected from previously published databases, high-throughput screenings and functional +studies. +This plugin annotates the constrain scores only, and is build on top of the GREEN-DB bed files ( +GRCh38): https://zenodo.org/records/5636209 +GREEN-DB constrains scores are annotated per region type: enhancers, promotors, bivalent, insulators, silencers. If +multiple regions of the same type overlap, VIP annotates the highest constraint score. \ No newline at end of file From 8ba5089557f52bd5ad17b5e09ae78cfb5ce4ab20 Mon Sep 17 00:00:00 2001 From: dennishendriksen Date: Sat, 30 Nov 2024 11:33:40 +0100 Subject: [PATCH 37/38] chore:remove unused vcf-decision-tree-5.0.0.def --- .../apptainer/def/vcf-decision-tree-5.0.0.def | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 utils/apptainer/def/vcf-decision-tree-5.0.0.def diff --git a/utils/apptainer/def/vcf-decision-tree-5.0.0.def b/utils/apptainer/def/vcf-decision-tree-5.0.0.def deleted file mode 100644 index 4073f10ea..000000000 --- a/utils/apptainer/def/vcf-decision-tree-5.0.0.def +++ /dev/null @@ -1,23 +0,0 @@ -Bootstrap: localimage -From: sif/build/openjdk-21.sif - -%help - Command-line application to generate a report for any VCF (Variant Call Format) file based on a report template. - Usage: java -jar /opt/vcf-decision-tree/lib/vcf-decision-tree.jar - -%post - version_major=5 - version_minor=0 - version_patch=0 - - # install - apk update - apk add --virtual=.build-dependencies curl - - mkdir -p /opt/vcf-decision-tree/lib - curl -Ls -o /opt/vcf-decision-tree/lib/vcf-decision-tree.jar "https://github.com/molgenis/vip-decision-tree/releases/download/v${version_major}.${version_minor}.${version_patch}/vcf-decision-tree.jar" - echo "5c40990aa4f300627e3bed261b2173361db165aea4c5b4aa84012df6277f95be /opt/vcf-decision-tree/lib/vcf-decision-tree.jar" | sha256sum -c - - # cleanup - apk del .build-dependencies - rm -rf /var/cache/apk/* From c804d9e34951e16ad5c8d738f07971e8c5535dc6 Mon Sep 17 00:00:00 2001 From: dennishendriksen Date: Sat, 30 Nov 2024 11:43:33 +0100 Subject: [PATCH 38/38] chore:update docs --- docs/advanced/report_templates.md | 15 +++++++++++++-- docs/usage/config.md | 3 ++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/docs/advanced/report_templates.md b/docs/advanced/report_templates.md index 08b0b2539..811c53bb8 100644 --- a/docs/advanced/report_templates.md +++ b/docs/advanced/report_templates.md @@ -1,8 +1,10 @@ # Report templates + VIP outputs a standalone HTML report that can be viewed in any modern browser. The report is based on the input sample sheet information and the output variant `vcf` data. ## Default + As a default VIP uses a report template that is suitable for most analysis: ![Example report](../img/report_example.png) @@ -10,7 +12,9 @@ As a default VIP uses a report template that is suitable for most analysis: *Above: default report template* ## Customization -Using the `vcf.report.template` parameter (see [here](../usage/config.md#parameters)) it is possible to specify a different report template to create reports tailered to your needs. + +Using the `vcf.report.template` parameter (see [here](../usage/config.md#parameters)) it is possible to specify a +different report template to create reports tailered to your needs. The following repositories might be of interest when creating a new report template: @@ -22,4 +26,11 @@ The following repositories might be of interest when creating a new report templ The `vip-report` tool creates reports based on a report template as described in the following repositories: - [vip-report](https://github.com/molgenis/vip-report) -- [vip-utils](https://github.com/molgenis/vip-utils) \ No newline at end of file +- [vip-utils](https://github.com/molgenis/vip-utils) + +## Configuration + +A configuration .json file can be used in combination with a `vcf.report.template` to create reports that e.g. show +specific variant content or variant filters. The allowed contents of a configuration .json file depends on the +`vcf.report.template` used. For the default `vcf.report.template` the configuration options are +described [here](https://github.com/molgenis/vip-report-template). \ No newline at end of file diff --git a/docs/usage/config.md b/docs/usage/config.md index 95940dd16..979a2fbb9 100644 --- a/docs/usage/config.md +++ b/docs/usage/config.md @@ -74,7 +74,7 @@ Both the zipped and unzipped fasta should have an index. | sv.cutesv.min_read_len | 500 | Ignores reads that only report alignments with not longer than bp | | sv.cutesv.min_siglength | 10 | Minimum length of SV signal to be extracted | | sv.cutesv.min_size | 30 | Minimum size of SV to be reported | -| sv.cutesv.min_support | 2 | Minimum number of reads that support a SV to be reported. Please note that the default is lower than the default of cuteSV itself to prevent missed SV calls. | +| sv.cutesv.min_support | 2 | Minimum number of reads that support a SV to be reported. Please note that the default is lower than the default of cuteSV itself to prevent missed SV calls. | | sv.cutesv.read_range | 1000 | The interval range for counting reads distribution | | sv.cutesv.report_readid | false | Enable to report supporting read ids for each SV | | sv.cutesv.retain_work_dir | false | Enable to retain temporary folder and files | @@ -142,6 +142,7 @@ Both the zipped and unzipped fasta should have an index. | vcf.report.include_crams | true | allowed values: [true, false]. true: include cram files in the report for showing alignments in the genome browser, false: do not include the crams in the report, no aligments are shown in the genome browser. This will result in a smaller report size. | | vcf.report.max_records | | | | vcf.report.max_samples | | | +| vcf.report.config | | `vcf.report.template` configuration file | | vcf.report.template | | for details, see [here](../advanced/report_templates.md) | | vcf.report.GRCh38.genes | *installed* | |