From 27f681b8da42d96b5d4a045ed965fa6899707f31 Mon Sep 17 00:00:00 2001 From: pintoa1-mskcc Date: Wed, 6 Mar 2024 12:30:02 -0500 Subject: [PATCH 01/14] phylowgsparse cnvs --- modules/msk/phylowgsparsecnvs/environment.yml | 9 +++ modules/msk/phylowgsparsecnvs/main.nf | 48 +++++++++++++++ modules/msk/phylowgsparsecnvs/meta.yml | 52 ++++++++++++++++ .../msk/phylowgsparsecnvs/tests/main.nf.test | 60 +++++++++++++++++++ modules/msk/phylowgsparsecnvs/tests/tags.yml | 2 + 5 files changed, 171 insertions(+) create mode 100644 modules/msk/phylowgsparsecnvs/environment.yml create mode 100644 modules/msk/phylowgsparsecnvs/main.nf create mode 100644 modules/msk/phylowgsparsecnvs/meta.yml create mode 100644 modules/msk/phylowgsparsecnvs/tests/main.nf.test create mode 100644 modules/msk/phylowgsparsecnvs/tests/tags.yml diff --git a/modules/msk/phylowgsparsecnvs/environment.yml b/modules/msk/phylowgsparsecnvs/environment.yml new file mode 100644 index 00000000..144299e4 --- /dev/null +++ b/modules/msk/phylowgsparsecnvs/environment.yml @@ -0,0 +1,9 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +name: "phylowgsparsecnvs" +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - "PHYLOWGS" diff --git a/modules/msk/phylowgsparsecnvs/main.nf b/modules/msk/phylowgsparsecnvs/main.nf new file mode 100644 index 00000000..3d911c04 --- /dev/null +++ b/modules/msk/phylowgsparsecnvs/main.nf @@ -0,0 +1,48 @@ +process PHYLOWGSPARSECNVS { + tag "$meta.id" + label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'mskcc/phylowgs:v1.4-msk': + 'mskcc/phylowgs:v1.4-msk' }" + + input: + tuple val(meta), path(facetsgenelevel) + + output: + tuple val(meta), path("cnvs.txt"), emit: cnv + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + + """ + python2 \\ + /usr/bin/parser/parse_cnvs.py \\ + -c 0 \\ + -f facets \\ + $facetsgenelevel + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + phylowgsparsecnvs: \$PHYLOWGS_TAG + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch cnvs.txt + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + phylowgsparsecnvs: \$PHYLOWGS_TAG + END_VERSIONS + """ +} diff --git a/modules/msk/phylowgsparsecnvs/meta.yml b/modules/msk/phylowgsparsecnvs/meta.yml new file mode 100644 index 00000000..f6dc8b11 --- /dev/null +++ b/modules/msk/phylowgsparsecnvs/meta.yml @@ -0,0 +1,52 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "phylowgsparsecnvs" +description: parse cnvs from FACETS for input to phylowgs +keywords: + - phylowgs + - CNVs + - FACETs +tools: + - "phylowgsparsecnvs": + description: "parser to convert FACETs output to phylowgs expected input" + homepage: "https://genomebiology.biomedcentral.com/articles/10.1186/s13059-015-0602-8" + documentation: "" + tool_dev_url: "https://github.com/mskcc/phylowgs" + doi: "" + licence: + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + + - bam: + type: file + description: single sample facets gene level output + pattern: "*.{txt}" + +## TODO nf-core: Add a description of all of the variables used as output +output: + #Only when we have meta + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + ## TODO nf-core: Delete / customise this example output + - bam: + type: file + description: Sorted BAM/CRAM/SAM file + pattern: "*.{bam,cram,sam}" + +authors: + - "@pintoa1-mskcc" +maintainers: + - "@pintoa1-mskcc" diff --git a/modules/msk/phylowgsparsecnvs/tests/main.nf.test b/modules/msk/phylowgsparsecnvs/tests/main.nf.test new file mode 100644 index 00000000..6db0d8f1 --- /dev/null +++ b/modules/msk/phylowgsparsecnvs/tests/main.nf.test @@ -0,0 +1,60 @@ +nextflow_process { + + name "Test Process PHYLOWGSPARSECNVS" + script "../main.nf" + process "PHYLOWGSPARSECNVS" + + tag "modules" + tag "modules_nfcore" + tag "phylowgsparsecnvs" + + test("neoantigen - phylo - gene_level") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data_mskcc['neoantigen']['facets_gene_level.txt'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + + ) + } + + } + + test("neoantigen - phylo - gene_level") { + + options "-stub" + + when { + process { + """ + // TODO nf-core: define inputs of the process here. Example: + + input[0] = [ + [ id:'test', single_end:false ], // meta map + file(params.test_data_mskcc['neoantigen']['facets_gene_level.txt'], checkIfExists: true) + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} diff --git a/modules/msk/phylowgsparsecnvs/tests/tags.yml b/modules/msk/phylowgsparsecnvs/tests/tags.yml new file mode 100644 index 00000000..34cab592 --- /dev/null +++ b/modules/msk/phylowgsparsecnvs/tests/tags.yml @@ -0,0 +1,2 @@ +phylowgsparsecnvs: + - "modules/msk/phylowgsparsecnvs/**" From f0e8d12b0c37ea61e14b3d6b87da2e6f7a83e31a Mon Sep 17 00:00:00 2001 From: pintoa1-mskcc Date: Wed, 6 Mar 2024 12:35:56 -0500 Subject: [PATCH 02/14] add args to config file (test) --- modules/msk/phylowgsparsecnvs/main.nf | 5 ++--- modules/msk/phylowgsparsecnvs/tests/nextflow.config | 10 ++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 modules/msk/phylowgsparsecnvs/tests/nextflow.config diff --git a/modules/msk/phylowgsparsecnvs/main.nf b/modules/msk/phylowgsparsecnvs/main.nf index 3d911c04..c57b2b77 100644 --- a/modules/msk/phylowgsparsecnvs/main.nf +++ b/modules/msk/phylowgsparsecnvs/main.nf @@ -24,9 +24,8 @@ process PHYLOWGSPARSECNVS { """ python2 \\ /usr/bin/parser/parse_cnvs.py \\ - -c 0 \\ - -f facets \\ - $facetsgenelevel + ${args} \\ + ${facetsgenelevel} cat <<-END_VERSIONS > versions.yml "${task.process}": diff --git a/modules/msk/phylowgsparsecnvs/tests/nextflow.config b/modules/msk/phylowgsparsecnvs/tests/nextflow.config new file mode 100644 index 00000000..8e509d51 --- /dev/null +++ b/modules/msk/phylowgsparsecnvs/tests/nextflow.config @@ -0,0 +1,10 @@ +params { + enable_conda = false +} + +process { + publishDir = { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" } + withName: 'PHYLOWGSPARSECNVS' { + ext.args = '-c 0 -f facets' + } +} From 63f6ccd17f632d4b44c8456d25cfcfbf631df1ba Mon Sep 17 00:00:00 2001 From: pintoa1-mskcc Date: Wed, 6 Mar 2024 12:39:36 -0500 Subject: [PATCH 03/14] edited test config file --- modules/msk/phylowgsparsecnvs/tests/main.nf.test | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/msk/phylowgsparsecnvs/tests/main.nf.test b/modules/msk/phylowgsparsecnvs/tests/main.nf.test index 6db0d8f1..905f5d63 100644 --- a/modules/msk/phylowgsparsecnvs/tests/main.nf.test +++ b/modules/msk/phylowgsparsecnvs/tests/main.nf.test @@ -6,16 +6,17 @@ nextflow_process { tag "modules" tag "modules_nfcore" + tag "modules_msk" tag "phylowgsparsecnvs" - test("neoantigen - phylo - gene_level") { + test("phylowgsparsecnvs - gene_level") { when { process { """ input[0] = [ [ id:'test', single_end:false ], // meta map - file(params.test_data_mskcc['neoantigen']['facets_gene_level.txt'], checkIfExists: true) + file(params.test_data_mskcc['neoantigen']['facets_gene_level_txt'], checkIfExists: true) ] """ } @@ -31,7 +32,7 @@ nextflow_process { } - test("neoantigen - phylo - gene_level") { + test("phylowgsparsecnvs - gene_level") { options "-stub" From 4abcb0da1b76538019bed67e1101b66ae403e3c2 Mon Sep 17 00:00:00 2001 From: pintoa1-mskcc Date: Wed, 6 Mar 2024 13:03:37 -0500 Subject: [PATCH 04/14] edited yml and test file" --- modules/msk/phylowgsparsecnvs/meta.yml | 2 +- modules/msk/phylowgsparsecnvs/tests/main.nf.test | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/msk/phylowgsparsecnvs/meta.yml b/modules/msk/phylowgsparsecnvs/meta.yml index f6dc8b11..5da4a548 100644 --- a/modules/msk/phylowgsparsecnvs/meta.yml +++ b/modules/msk/phylowgsparsecnvs/meta.yml @@ -22,7 +22,7 @@ input: Groovy Map containing sample information e.g. `[ id:'sample1', single_end:false ]` - - bam: + - facetsgenelevel: type: file description: single sample facets gene level output pattern: "*.{txt}" diff --git a/modules/msk/phylowgsparsecnvs/tests/main.nf.test b/modules/msk/phylowgsparsecnvs/tests/main.nf.test index 905f5d63..2341aab4 100644 --- a/modules/msk/phylowgsparsecnvs/tests/main.nf.test +++ b/modules/msk/phylowgsparsecnvs/tests/main.nf.test @@ -3,13 +3,14 @@ nextflow_process { name "Test Process PHYLOWGSPARSECNVS" script "../main.nf" process "PHYLOWGSPARSECNVS" + config "./nextflow.config" tag "modules" tag "modules_nfcore" tag "modules_msk" tag "phylowgsparsecnvs" - test("phylowgsparsecnvs - gene_level") { + test("phylowgsparsecnvs - txt") { when { process { @@ -32,7 +33,7 @@ nextflow_process { } - test("phylowgsparsecnvs - gene_level") { + test("phylowgsparsecnvs - txt") { options "-stub" From 3d7234ae5e57bbd4e0b6e7f6888e2f8960fd9758 Mon Sep 17 00:00:00 2001 From: pintoa1-mskcc Date: Wed, 6 Mar 2024 13:23:32 -0500 Subject: [PATCH 05/14] find facets_gene_level --- tests/config/test_data.config | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/config/test_data.config b/tests/config/test_data.config index 1f0b37da..17bc4455 100644 --- a/tests/config/test_data.config +++ b/tests/config/test_data.config @@ -723,5 +723,8 @@ params { dbsnp_138_b37_chr17_vcf_gz = "${params.test_data_base_msk}/hg37/genomic_reference/GRCH37/vcf/dbsnp_138.b37.chr17.vcf.gz" dbsnp_138_b37_chr17_vcf_gz_tbi = "${params.test_data_base_msk}/hg37/genomic_reference/GRCH37/vcf/dbsnp_138.b37.chr17.vcf.gz.tbi" } + 'neoantigen' { + facets_gene_level_txt = "${params.test_data_base_msk}/neoantigen/neoantigen/facets_gene_level.txt" + } } } From 57071a1c5c3dffe0689554ca3d7c08b52aa35f8a Mon Sep 17 00:00:00 2001 From: pintoa1-mskcc Date: Wed, 6 Mar 2024 13:30:08 -0500 Subject: [PATCH 06/14] fix fdocker container" --- modules/msk/phylowgsparsecnvs/main.nf | 4 +-- .../phylowgsparsecnvs/tests/main.nf.test.snap | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 modules/msk/phylowgsparsecnvs/tests/main.nf.test.snap diff --git a/modules/msk/phylowgsparsecnvs/main.nf b/modules/msk/phylowgsparsecnvs/main.nf index c57b2b77..b1cd5404 100644 --- a/modules/msk/phylowgsparsecnvs/main.nf +++ b/modules/msk/phylowgsparsecnvs/main.nf @@ -4,8 +4,8 @@ process PHYLOWGSPARSECNVS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'mskcc/phylowgs:v1.4-msk': - 'mskcc/phylowgs:v1.4-msk' }" + 'docker://mskcc/phylowgs:v1.4-msk': + 'docker.io/mskcc/phylowgs:v1.4-msk' }" input: tuple val(meta), path(facetsgenelevel) diff --git a/modules/msk/phylowgsparsecnvs/tests/main.nf.test.snap b/modules/msk/phylowgsparsecnvs/tests/main.nf.test.snap new file mode 100644 index 00000000..9c2da23e --- /dev/null +++ b/modules/msk/phylowgsparsecnvs/tests/main.nf.test.snap @@ -0,0 +1,25 @@ +{ + "phylowgsparsecnvs - txt": { + "content": [ + { + "0": [ + + ], + "1": [ + + ], + "cnv": [ + + ], + "versions": [ + + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-06T13:25:07.411262" + } +} \ No newline at end of file From 116280376acc103567ebd23ef666f3f4b47d4224 Mon Sep 17 00:00:00 2001 From: pintoa1-mskcc Date: Wed, 6 Mar 2024 14:32:06 -0500 Subject: [PATCH 07/14] change docker --- .../phylowgsparsecnvs/tests/main.nf.test.snap | 25 ------------------- 1 file changed, 25 deletions(-) delete mode 100644 modules/msk/phylowgsparsecnvs/tests/main.nf.test.snap diff --git a/modules/msk/phylowgsparsecnvs/tests/main.nf.test.snap b/modules/msk/phylowgsparsecnvs/tests/main.nf.test.snap deleted file mode 100644 index 9c2da23e..00000000 --- a/modules/msk/phylowgsparsecnvs/tests/main.nf.test.snap +++ /dev/null @@ -1,25 +0,0 @@ -{ - "phylowgsparsecnvs - txt": { - "content": [ - { - "0": [ - - ], - "1": [ - - ], - "cnv": [ - - ], - "versions": [ - - ] - } - ], - "meta": { - "nf-test": "0.8.4", - "nextflow": "23.10.1" - }, - "timestamp": "2024-03-06T13:25:07.411262" - } -} \ No newline at end of file From eddcee72b30c5538eabc0123f4ca428ba16eac76 Mon Sep 17 00:00:00 2001 From: pintoa1-mskcc Date: Wed, 6 Mar 2024 14:34:32 -0500 Subject: [PATCH 08/14] change docker --- .../msk/phylowgsparsecnvs/tests/main.nf.test | 25 ------------------- 1 file changed, 25 deletions(-) diff --git a/modules/msk/phylowgsparsecnvs/tests/main.nf.test b/modules/msk/phylowgsparsecnvs/tests/main.nf.test index 2341aab4..4b196821 100644 --- a/modules/msk/phylowgsparsecnvs/tests/main.nf.test +++ b/modules/msk/phylowgsparsecnvs/tests/main.nf.test @@ -33,30 +33,5 @@ nextflow_process { } - test("phylowgsparsecnvs - txt") { - - options "-stub" - - when { - process { - """ - // TODO nf-core: define inputs of the process here. Example: - - input[0] = [ - [ id:'test', single_end:false ], // meta map - file(params.test_data_mskcc['neoantigen']['facets_gene_level.txt'], checkIfExists: true) - ] - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - - } } From ced251c27c29e1a667cb7b96673c555334b9ee38 Mon Sep 17 00:00:00 2001 From: pintoa1-mskcc Date: Wed, 6 Mar 2024 15:35:30 -0500 Subject: [PATCH 09/14] snap file --- .../phylowgsparsecnvs/tests/main.nf.test.snap | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 modules/msk/phylowgsparsecnvs/tests/main.nf.test.snap diff --git a/modules/msk/phylowgsparsecnvs/tests/main.nf.test.snap b/modules/msk/phylowgsparsecnvs/tests/main.nf.test.snap new file mode 100644 index 00000000..38c3aefc --- /dev/null +++ b/modules/msk/phylowgsparsecnvs/tests/main.nf.test.snap @@ -0,0 +1,37 @@ +{ + "phylowgsparsecnvs - txt": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": false + }, + "cnvs.txt:md5,a2073057a3fe3ffa83ae3c6a6f00d4ab" + ] + ], + "1": [ + "versions.yml:md5,59b3e223572b67b72eb21c625003973d" + ], + "cnv": [ + [ + { + "id": "test", + "single_end": false + }, + "cnvs.txt:md5,a2073057a3fe3ffa83ae3c6a6f00d4ab" + ] + ], + "versions": [ + "versions.yml:md5,59b3e223572b67b72eb21c625003973d" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-06T14:35:27.270866" + } +} \ No newline at end of file From 226fe35d6a165fcfaba7e64d995f0f34fb2a760a Mon Sep 17 00:00:00 2001 From: Nikhil Kumar Date: Thu, 7 Mar 2024 11:46:18 -0500 Subject: [PATCH 10/14] Add neoantigen branch to ci tests --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index af23d8bf..40608182 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -3,7 +3,7 @@ on: push: branches: [main] pull_request: - branches: [main, develop] + branches: [main, develop, neoantigen] merge_group: types: [checks_requested] branches: [main] From b231584a8c81e0ba2cb684064feaa4e2c3231210 Mon Sep 17 00:00:00 2001 From: pintoa1-mskcc Date: Thu, 7 Mar 2024 12:46:03 -0500 Subject: [PATCH 11/14] fix docker containter for test' --- modules/msk/phylowgsparsecnvs/main.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/msk/phylowgsparsecnvs/main.nf b/modules/msk/phylowgsparsecnvs/main.nf index b1cd5404..21ea1e49 100644 --- a/modules/msk/phylowgsparsecnvs/main.nf +++ b/modules/msk/phylowgsparsecnvs/main.nf @@ -4,7 +4,7 @@ process PHYLOWGSPARSECNVS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker://mskcc/phylowgs:v1.4-msk': + 'docker.io/mskcc/phylowgs:v1.4-msk': 'docker.io/mskcc/phylowgs:v1.4-msk' }" input: From ba88d3fd74580c4daa357f08cbe0b432ab338a76 Mon Sep 17 00:00:00 2001 From: pintoa1-mskcc Date: Thu, 7 Mar 2024 12:51:49 -0500 Subject: [PATCH 12/14] remove license from meta.yml --- modules/msk/phylowgsparsecnvs/main.nf | 2 +- modules/msk/phylowgsparsecnvs/meta.yml | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/modules/msk/phylowgsparsecnvs/main.nf b/modules/msk/phylowgsparsecnvs/main.nf index 21ea1e49..b1cd5404 100644 --- a/modules/msk/phylowgsparsecnvs/main.nf +++ b/modules/msk/phylowgsparsecnvs/main.nf @@ -4,7 +4,7 @@ process PHYLOWGSPARSECNVS { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/mskcc/phylowgs:v1.4-msk': + 'docker://mskcc/phylowgs:v1.4-msk': 'docker.io/mskcc/phylowgs:v1.4-msk' }" input: diff --git a/modules/msk/phylowgsparsecnvs/meta.yml b/modules/msk/phylowgsparsecnvs/meta.yml index 5da4a548..40d8deb0 100644 --- a/modules/msk/phylowgsparsecnvs/meta.yml +++ b/modules/msk/phylowgsparsecnvs/meta.yml @@ -10,10 +10,7 @@ tools: - "phylowgsparsecnvs": description: "parser to convert FACETs output to phylowgs expected input" homepage: "https://genomebiology.biomedcentral.com/articles/10.1186/s13059-015-0602-8" - documentation: "" tool_dev_url: "https://github.com/mskcc/phylowgs" - doi: "" - licence: input: - meta: From d54171b79a9d6a31a157d37127aa2e8aa0466972 Mon Sep 17 00:00:00 2001 From: pintoa1-mskcc Date: Thu, 7 Mar 2024 12:56:10 -0500 Subject: [PATCH 13/14] remove conda --- modules/msk/phylowgsparsecnvs/main.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/msk/phylowgsparsecnvs/main.nf b/modules/msk/phylowgsparsecnvs/main.nf index b1cd5404..0ded1500 100644 --- a/modules/msk/phylowgsparsecnvs/main.nf +++ b/modules/msk/phylowgsparsecnvs/main.nf @@ -2,7 +2,6 @@ process PHYLOWGSPARSECNVS { tag "$meta.id" label 'process_low' - conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? 'docker://mskcc/phylowgs:v1.4-msk': 'docker.io/mskcc/phylowgs:v1.4-msk' }" From 4562b6eeab4c62ac3d05e55247317eb947dab356 Mon Sep 17 00:00:00 2001 From: pintoa1-mskcc Date: Thu, 7 Mar 2024 13:35:56 -0500 Subject: [PATCH 14/14] remove conda test requirement --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 40608182..efa11b85 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -286,6 +286,8 @@ jobs: tags: snppileup - profile: "conda" tags: mutect1 + - profile: "conda" + tags: phylowgsparsecnvs env: NXF_ANSI_LOG: false SENTIEON_LICENSE_BASE64: ${{ secrets.SENTIEON_LICENSE_BASE64 }}