From 7fb9589a9453f97309c7308eef3a1f8fe8c42c1c Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Fri, 26 Jul 2024 10:44:05 +1200 Subject: [PATCH 1/2] Added gallvp/fasta_edta_lai --- docs/AVAILABLE.txt | 2 + docs/index.html | 10 ++ modules/gallvp/edta/edta/main.nf | 92 ++++++++++ modules/gallvp/edta/edta/meta.yml | 82 +++++++++ modules/gallvp/edta/edta/tests/main.nf.test | 84 +++++++++ .../gallvp/edta/edta/tests/main.nf.test.snap | 81 +++++++++ .../gallvp/edta/edta/tests/nextflow.config | 5 + modules/gallvp/edta/edta/tests/tags.yml | 2 + subworkflows/gallvp/fasta_edta_lai/main.nf | 170 ++++++++++++++++++ subworkflows/gallvp/fasta_edta_lai/meta.yml | 69 +++++++ .../gallvp/fasta_edta_lai/tests/main.nf.test | 79 ++++++++ .../fasta_edta_lai/tests/main.nf.test.snap | 101 +++++++++++ .../fasta_edta_lai/tests/nextflow.config | 5 + .../gallvp/fasta_edta_lai/tests/tags.yml | 2 + 14 files changed, 784 insertions(+) create mode 100644 modules/gallvp/edta/edta/main.nf create mode 100644 modules/gallvp/edta/edta/meta.yml create mode 100644 modules/gallvp/edta/edta/tests/main.nf.test create mode 100644 modules/gallvp/edta/edta/tests/main.nf.test.snap create mode 100644 modules/gallvp/edta/edta/tests/nextflow.config create mode 100644 modules/gallvp/edta/edta/tests/tags.yml create mode 100644 subworkflows/gallvp/fasta_edta_lai/main.nf create mode 100644 subworkflows/gallvp/fasta_edta_lai/meta.yml create mode 100644 subworkflows/gallvp/fasta_edta_lai/tests/main.nf.test create mode 100644 subworkflows/gallvp/fasta_edta_lai/tests/main.nf.test.snap create mode 100644 subworkflows/gallvp/fasta_edta_lai/tests/nextflow.config create mode 100644 subworkflows/gallvp/fasta_edta_lai/tests/tags.yml diff --git a/docs/AVAILABLE.txt b/docs/AVAILABLE.txt index 9a5eb9a..cb25e10 100644 --- a/docs/AVAILABLE.txt +++ b/docs/AVAILABLE.txt @@ -1,5 +1,6 @@
  • subworkflows/gallvp/gxf_fasta_agat_spaddintrons_spextractsequences
  • subworkflows/gallvp/fasta_ltrretriever_lai
  • +
  • subworkflows/gallvp/fasta_edta_lai
  • modules/gallvp/tesorter
  • modules/gallvp/syri
  • modules/gallvp/repeatmasker
  • @@ -10,6 +11,7 @@
  • modules/gallvp/ltrharvest
  • modules/gallvp/ltrfinder
  • modules/gallvp/gunzip
  • +
  • modules/gallvp/edta/edta
  • modules/gallvp/custom/shortenfastaids
  • modules/gallvp/custom/restoregffids
  • modules/gallvp/cat/cat
  • diff --git a/docs/index.html b/docs/index.html index 8963589..407b84a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -100,6 +100,11 @@

    gallvp/nxf-components

    >subworkflows/gallvp/fasta_ltrretriever_lai +
  • + subworkflows/gallvp/fasta_edta_lai +
  • modules/gallvp/tesortergallvp/nxf-components >modules/gallvp/gunzip
  • +
  • + modules/gallvp/edta/edta +
  • modules/gallvp/custom/shortenfastaids >(tee "${prefix}.log" 2>&1) + + mv \\ + "${mod_file_name}.EDTA.TElib.fa" \\ + "${prefix}.EDTA.TElib.fa" + + [ -f "${mod_file_name}.EDTA.raw/LTR/${mod_file_name}.pass.list" ] \\ + && mv \\ + "${mod_file_name}.EDTA.raw/LTR/${mod_file_name}.pass.list" \\ + "${prefix}.EDTA.pass.list" \\ + || echo "EDTA did not produce a pass.list file" + + [ -f "${mod_file_name}.EDTA.anno/${mod_file_name}.out" ] \\ + && mv \\ + "${mod_file_name}.EDTA.anno/${mod_file_name}.out" \\ + "${prefix}.EDTA.out" \\ + || echo "EDTA did not produce an out file" + + [ -f "${mod_file_name}.EDTA.TEanno.gff3" ] \\ + && mv \\ + "${mod_file_name}.EDTA.TEanno.gff3" \\ + "${prefix}.EDTA.TEanno.gff3" \\ + || echo "EDTA did not produce a TEanno gff3 file" + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + EDTA: \$(EDTA.pl -h | awk ' /##### Extensive/ {print \$7}') + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def touch_pass_list = args.contains("--anno 1") ? "touch ${prefix}.EDTA.pass.list" : '' + def touch_out_file = args.contains("--anno 1") ? "touch ${prefix}.EDTA.out" : '' + def touch_te_anno = args.contains("--anno 1") ? "touch ${prefix}.EDTA.TEanno.gff3": '' + """ + touch "${prefix}.log" + touch "${prefix}.EDTA.TElib.fa" + $touch_pass_list + $touch_out_file + $touch_te_anno + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + EDTA: \$(EDTA.pl -h | awk ' /##### Extensive/ {print \$7}') + END_VERSIONS + """ +} diff --git a/modules/gallvp/edta/edta/meta.yml b/modules/gallvp/edta/edta/meta.yml new file mode 100644 index 0000000..52503b8 --- /dev/null +++ b/modules/gallvp/edta/edta/meta.yml @@ -0,0 +1,82 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "edta_edta" +description: Extensive de-novo TE Annotator (EDTA) +keywords: + - genome + - repeat + - annotation + - transposable-elements +tools: + - "edta": + description: Extensive de-novo TE Annotator (EDTA) + homepage: "https://github.com/oushujun/EDTA" + documentation: "https://github.com/oushujun/EDTA" + tool_dev_url: "https://github.com/oushujun/EDTA" + doi: "10.1186/s13059-019-1905-y" + licence: ["GPL v3"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test' ]` + - fasta: + type: file + description: Genome fasta file + pattern: "*.{fsa,fa,fasta}" + - cds: + type: file + description: | + A FASTA file containing the coding sequence (no introns, UTRs, nor TEs) + of this genome or its close relative + pattern: "*.{fsa,fa,fasta}" + - curatedlib: + type: file + description: | + A curated library to keep consistent naming and classification for known TEs + pattern: "*.liban" + - rmout: + type: file + description: | + Homology-based TE annotation instead of using the EDTA library for masking in + RepeatMasker .out format + pattern: "*.out" + - exclude: + type: file + description: Exclude regions (bed format) from TE masking in the MAKER.masked output + pattern: "*.bed" +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test' ]` + - log: + type: file + description: Log emitted by EDTA + pattern: "*.log" + - te_lib_fasta: + type: file + description: A non-redundant TE library in fasta format + pattern: "*.EDTA.TElib.fa" + - pass_list: + type: file + description: A summary table of intact LTR-RTs with coordinate and structural information + pattern: "*.EDTA.pass.list" + - out_file: + type: file + description: RepeatMasker annotation of all LTR sequences in the genome + pattern: "*.EDTA.out" + - te_anno_gff3: + type: file + description: A gff3 file containing both structurally intact and fragmented TE annotations + pattern: "*.EDTA.TEanno.gff3" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@GallVp" +maintainers: + - "@GallVp" diff --git a/modules/gallvp/edta/edta/tests/main.nf.test b/modules/gallvp/edta/edta/tests/main.nf.test new file mode 100644 index 0000000..00e073f --- /dev/null +++ b/modules/gallvp/edta/edta/tests/main.nf.test @@ -0,0 +1,84 @@ +nextflow_process { + + name "Test Process EDTA_EDTA" + script "../main.nf" + process "EDTA_EDTA" + config "./nextflow.config" + + tag "modules" + tag "modules_gallvp" + tag "edta" + tag "edta/edta" + tag "modules/nf-core/gunzip" + + test("actinidia_chinensis-genome_1_fasta_gz") { + + setup { + run("GUNZIP") { + script "../../../../../modules/nf-core/gunzip" + + process { + """ + input[0] = [ + [ id:'test' ], + file(params.test_data['actinidia_chinensis']['genome']['genome_1_fasta_gz'], checkIfExists: true) + ] + """ + } + } + } + + when { + process { + """ + input[0] = GUNZIP.out.gunzip + input[1] = [] + input[2] = [] + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out.versions).match("versions") }, + { assert path(process.out.te_lib_fasta[0][1]).text.contains('LTR/Copia') }, + { assert path(process.out.pass_list[0][1]).text.contains('Copia') }, + { assert process.out.out_file == [] }, + { assert process.out.te_anno_gff3 == [] } + ) + } + + } + + test("stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test' ], // meta map + file(params.test_data['homo_sapiens']['genome']['genome_fasta'], checkIfExists: true) + ] + input[1] = [] + input[2] = [] + input[3] = [] + input[4] = [] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + +} \ No newline at end of file diff --git a/modules/gallvp/edta/edta/tests/main.nf.test.snap b/modules/gallvp/edta/edta/tests/main.nf.test.snap new file mode 100644 index 0000000..d989e01 --- /dev/null +++ b/modules/gallvp/edta/edta/tests/main.nf.test.snap @@ -0,0 +1,81 @@ +{ + "versions": { + "content": [ + [ + "versions.yml:md5,f9e6b414c1eb81520a9fdbb15f797405" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-10T14:43:10.298103" + }, + "stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test.EDTA.TElib.fa:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + + ], + "3": [ + + ], + "4": [ + + ], + "5": [ + "versions.yml:md5,f9e6b414c1eb81520a9fdbb15f797405" + ], + "log": [ + [ + { + "id": "test" + }, + "test.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "out_file": [ + + ], + "pass_list": [ + + ], + "te_anno_gff3": [ + + ], + "te_lib_fasta": [ + [ + { + "id": "test" + }, + "test.EDTA.TElib.fa:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,f9e6b414c1eb81520a9fdbb15f797405" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-10T14:43:16.561778" + } +} \ No newline at end of file diff --git a/modules/gallvp/edta/edta/tests/nextflow.config b/modules/gallvp/edta/edta/tests/nextflow.config new file mode 100644 index 0000000..ac46798 --- /dev/null +++ b/modules/gallvp/edta/edta/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: EDTA_EDTA { + ext.args = '--anno 0' + } +} diff --git a/modules/gallvp/edta/edta/tests/tags.yml b/modules/gallvp/edta/edta/tests/tags.yml new file mode 100644 index 0000000..180ae6d --- /dev/null +++ b/modules/gallvp/edta/edta/tests/tags.yml @@ -0,0 +1,2 @@ +edta/edta: + - "modules/pfr/edta/edta/**" diff --git a/subworkflows/gallvp/fasta_edta_lai/main.nf b/subworkflows/gallvp/fasta_edta_lai/main.nf new file mode 100644 index 0000000..1d4dd85 --- /dev/null +++ b/subworkflows/gallvp/fasta_edta_lai/main.nf @@ -0,0 +1,170 @@ +include { CUSTOM_SHORTENFASTAIDS } from '../../../modules/gallvp/custom/shortenfastaids/main' +include { EDTA_EDTA } from '../../../modules/gallvp/edta/edta/main' +include { LTRRETRIEVER_LAI } from '../../../modules/gallvp/ltrretriever/lai/main' +include { CUSTOM_RESTOREGFFIDS } from '../../../modules/gallvp/custom/restoregffids/main' + +workflow FASTA_EDTA_LAI { + + take: + ch_fasta // channel: [ val(meta), fasta ] + ch_monoploid_seqs // channel: [ val(meta2), txt ]; Optional: Set to [] if not needed + // val(meta) from ch_fasta and val(meta2) from ch_monoploid_seqs are + // only required to have the same `id` + skip_lai // val(true|false) + + main: + ch_versions = Channel.empty() + + // Prapre input channels + ch_monoploid_seqs_plain = ( ch_monoploid_seqs ?: Channel.empty() ) + | filter { meta2, seqs -> seqs } + // Cater to channel: [ meta2, [] ] + | map { meta2, seqs -> [ meta2.id, seqs ] } + + // MOUDLE: CUSTOM_SHORTENFASTAIDS + CUSTOM_SHORTENFASTAIDS ( ch_fasta ) + + ch_short_ids_tsv = CUSTOM_SHORTENFASTAIDS.out.short_ids_tsv + ch_shortenfastaids_branch = ch_short_ids_tsv + | branch { meta, tsv -> + change: ! tsv.text.contains('IDs have acceptable length and character') + nonchange: tsv.text.contains('IDs have acceptable length and character') + } + + ch_short_ids_fasta = ch_shortenfastaids_branch.nonchange + | join( + ch_fasta + ) + | map { meta, tsv, fasta -> [ meta, fasta ] } + | mix( + ch_shortenfastaids_branch.change + | join( + CUSTOM_SHORTENFASTAIDS.out.short_ids_fasta + ) + | map { meta, tsv, fasta -> [ meta, fasta ] } + ) + + ch_versions = ch_versions.mix(CUSTOM_SHORTENFASTAIDS.out.versions.first()) + + // collectFile: Map monoploid seqs to short IDs + ch_short_monoploid_seqs = ch_short_ids_tsv + | map { meta, tsv -> [ meta.id, tsv ] } + | join(ch_monoploid_seqs_plain) + | map { id, tsv, seqs -> + map_monoploid_seqs_to_new_ids(id, tsv, seqs) + } + | collectFile(newLine:true) + | map { seqs -> + def id = seqs.name.split('.mapped.monoploid.seqs.txt')[0] + + [ id, seqs ] + } + | join( + ch_short_ids_tsv + | map { meta, tsv -> [ meta.id, meta, tsv ] } + ) + | map { id, seqs, meta, tsv -> [ meta, seqs ] } + + // MODULE: EDTA_EDTA + EDTA_EDTA( + ch_short_ids_fasta, + [], + [], + [], + [] + ) + + ch_pass_list = EDTA_EDTA.out.pass_list + ch_out_file = EDTA_EDTA.out.out_file + ch_pass_out = ch_pass_list.join(ch_out_file) + ch_te_lib_fasta = EDTA_EDTA.out.te_lib_fasta + ch_te_anno_gff3 = EDTA_EDTA.out.te_anno_gff3 + ch_versions = ch_versions.mix(EDTA_EDTA.out.versions.first()) + + ch_short_ids_fasta_mono = ch_short_ids_fasta + | join( + ch_short_monoploid_seqs, + by:0, + remainder: true + ) + // Danger! This partial join can fail + | filter { meta, fasta, seqs -> fasta } + // This filter safeguards against fail on upstream + // process failure: https://github.com/nextflow-io/nextflow/issues/5043 + // fasta may come from upstream processes + // seqs also comes from upstream processes, it is optional + // and may not be present for some of the combinations + | map { meta, fasta, seqs -> [ meta, fasta, seqs ?: [] ] } + + ch_lai_inputs = skip_lai + ? Channel.empty() + : ch_short_ids_fasta_mono + | join( + ch_pass_out + ) + | map { meta, fasta, seqs, pass, out -> + [ meta, fasta, pass, out, seqs ] + } + LTRRETRIEVER_LAI( + ch_lai_inputs.map { meta, fasta, pass, out, seqs -> [ meta, fasta ] }, + ch_lai_inputs.map { meta, fasta, pass, out, seqs -> pass }, + ch_lai_inputs.map { meta, fasta, pass, out, seqs -> out }, + ch_lai_inputs.map { meta, fasta, pass, out, seqs -> seqs } + ) + + ch_lai_log = LTRRETRIEVER_LAI.out.log + ch_lai_out = LTRRETRIEVER_LAI.out.lai_out + ch_versions = ch_versions.mix(LTRRETRIEVER_LAI.out.versions.first()) + + // MODULE: CUSTOM_RESTOREGFFIDS + ch_gff_tsv_branch = ch_te_anno_gff3.join(ch_short_ids_tsv) + | branch { meta, gff, tsv -> + change: ! tsv.text.contains('IDs have acceptable length and character') + nochange: tsv.text.contains('IDs have acceptable length and character') + } + + CUSTOM_RESTOREGFFIDS ( + ch_gff_tsv_branch.change.map { meta, gff, tsv -> [ meta, gff ] }, + ch_gff_tsv_branch.change.map { meta, gff, tsv -> tsv } + ) + + ch_restored_gff = ch_gff_tsv_branch.nochange + | map { meta, gff, tsv -> [ meta, gff ] } + | mix(CUSTOM_RESTOREGFFIDS.out.restored_ids_gff3) + + ch_versions = ch_versions.mix(CUSTOM_RESTOREGFFIDS.out.versions.first()) + + emit: + te_lib_fasta = ch_te_lib_fasta // channel: [ val(meta), fasta ] + te_anno_gff3 = ch_restored_gff // channel: [ val(meta), gff ] + lai_log = ch_lai_log // channel: [ val(meta), log ] + lai_out = ch_lai_out // channel: [ val(meta), out ] + versions = ch_versions // channel: [ versions.yml ] +} + +def map_monoploid_seqs_to_new_ids(id, short_ids_tsv, monoploid_seqs) { + + def short_ids_head = short_ids_tsv.text.tokenize('\n')[0] + + if (short_ids_head == "IDs have acceptable length and character. No change required.") { + return [ "${id}.mapped.monoploid.seqs.txt" ] + monoploid_seqs.text.tokenize('\n') + } + + def orig_to_new_ids = [:] + short_ids_tsv.text.eachLine { line -> + def (original_id, renamed_id) = line.tokenize('\t') + orig_to_new_ids[original_id] = renamed_id + } + + def mapped_ids = [] + monoploid_seqs.text.eachLine { original_id -> + if (!orig_to_new_ids[original_id]) { + error "Faild to find $original_id in ${short_ids_tsv}" + + "\nThe short_ids_tsv file is malformed!" + } + + mapped_ids.add(orig_to_new_ids[original_id]) + } + + return [ "${id}.mapped.monoploid.seqs.txt" ] + mapped_ids +} diff --git a/subworkflows/gallvp/fasta_edta_lai/meta.yml b/subworkflows/gallvp/fasta_edta_lai/meta.yml new file mode 100644 index 0000000..c356ce7 --- /dev/null +++ b/subworkflows/gallvp/fasta_edta_lai/meta.yml @@ -0,0 +1,69 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/subworkflows/yaml-schema.json +name: "fasta_edta_lai" +description: | + Performs extensive de-novo transposable element annotation with EDTA and optionally estimates repeat-space completeness with LAI +keywords: + - genomics + - genome + - annotation + - repeat + - transposons + - stats + - qc +components: + - edta/edta + - custom/restoregffids + - ltrretriever/lai + - custom/shortenfastaids +input: + - ch_fasta: + type: file + description: | + Channel for the assembly fasta file + Structure: [ val(meta), path(fasta) ] + pattern: "*.{fsa/fa/fasta}" + - ch_monoploid_seqs: + type: file + description: | + Channel for providing a list of monoploid sequences + for correct estimation of LAI for polyploid genomes. + This parameter is useful when all the haplotypes are + stored in a single fasta file. + Structure: [ val(meta), path(txt) ] + pattern: "*.txt" + - skip_lai: + type: boolean + description: | + Skip LAI estimation + Structure: [ val(boolean) ] +output: + - te_lib_fasta: + type: file + description: A non-redundant TE library in fasta format + pattern: "*.EDTA.TElib.fa" + - te_anno_gff3: + type: file + description: A gff3 file containing both structurally intact and fragmented TE annotations + pattern: "*.EDTA.TEanno.gff3" + - lai_log: + type: file + description: | + Log from LAI + Structure: [ val(meta), path(log) ] + pattern: "*.LAI.log" + - lai_out: + type: file + description: | + LAI output + Structure: [ val(meta), path(out) ] + pattern: "*.LAI.out" + - versions: + type: file + description: | + File containing software versions + Structure: [ path(versions.yml) ] + pattern: "versions.yml" +authors: + - "@GallVp" +maintainers: + - "@GallVp" diff --git a/subworkflows/gallvp/fasta_edta_lai/tests/main.nf.test b/subworkflows/gallvp/fasta_edta_lai/tests/main.nf.test new file mode 100644 index 0000000..0f478ce --- /dev/null +++ b/subworkflows/gallvp/fasta_edta_lai/tests/main.nf.test @@ -0,0 +1,79 @@ +nextflow_workflow { + + name "Test Workflow FASTA_EDTA_LAI" + script "../main.nf" + workflow "FASTA_EDTA_LAI" + config "./nextflow.config" + + tag "subworkflows" + tag "subworkflows_gallvp" + tag "subworkflows/fasta_edta_lai" + tag "fasta_edta_lai" + tag "modules/nf-core/gunzip" + tag "custom/shortenfastaids" + tag "edta/edta" + tag "ltrretriever/lai" + tag "custom/restoregffids" + + setup { + run("GUNZIP") { + script "../../../../modules/nf-core/gunzip" + + process { + """ + input[0] = [ + [ id:'test' ], + file(params.test_data['actinidia_chinensis']['genome']['genome_1_fasta_gz'], checkIfExists: true) + ] + """ + } + } + } + + test("actinidia_chinensis-genome_1_fasta_gz") { + + when { + workflow { + """ + input[0] = GUNZIP.out.gunzip + input[1] = [] + input[2] = false + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert file(workflow.out.te_anno_gff3[0][1]).text.contains('Copia_LTR_retrotransposon') }, + { assert file(workflow.out.lai_log[0][1]).text.contains('Calculate LAI:') }, + { assert file(workflow.out.lai_log[0][1]).text.contains('Done!') }, + { assert Math.abs(Float.parseFloat(path(workflow.out.lai_out[0][1]).text.split("\n")[1].split("\t")[6]) - 31.87) <= 2.0 }, + { assert file(workflow.out.te_lib_fasta[0][1]).text.contains('#LTR/Copia') }, + { assert snapshot(workflow.out.versions).match() } + ) + } + } + + test("actinidia_chinensis-genome_1_fasta_gz-stub") { + + options '-stub' + + when { + workflow { + """ + input[0] = GUNZIP.out.gunzip + input[1] = [] + input[2] = false + """ + } + } + + then { + assertAll( + { assert workflow.success }, + { assert snapshot(workflow.out).match() } + ) + } + } +} \ No newline at end of file diff --git a/subworkflows/gallvp/fasta_edta_lai/tests/main.nf.test.snap b/subworkflows/gallvp/fasta_edta_lai/tests/main.nf.test.snap new file mode 100644 index 0000000..532ddd5 --- /dev/null +++ b/subworkflows/gallvp/fasta_edta_lai/tests/main.nf.test.snap @@ -0,0 +1,101 @@ +{ + "actinidia_chinensis-genome_1_fasta_gz-stub": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test.EDTA.TElib.fa:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + [ + { + "id": "test" + }, + "test.EDTA.TEanno.gff3:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test" + }, + "test.LAI.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + [ + { + "id": "test" + }, + "test.LAI.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "4": [ + "versions.yml:md5,0d4bc49e94acb8995ca552d4e666e3ce", + "versions.yml:md5,65666e975bdfd71978843ca963e84d0c", + "versions.yml:md5,754bb19f86be761d90c002a0af2faf1c" + ], + "lai_log": [ + [ + { + "id": "test" + }, + "test.LAI.log:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "lai_out": [ + [ + { + "id": "test" + }, + "test.LAI.out:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "te_anno_gff3": [ + [ + { + "id": "test" + }, + "test.EDTA.TEanno.gff3:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "te_lib_fasta": [ + [ + { + "id": "test" + }, + "test.EDTA.TElib.fa:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,0d4bc49e94acb8995ca552d4e666e3ce", + "versions.yml:md5,65666e975bdfd71978843ca963e84d0c", + "versions.yml:md5,754bb19f86be761d90c002a0af2faf1c" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-04T14:00:09.252745" + }, + "actinidia_chinensis-genome_1_fasta_gz": { + "content": [ + [ + "versions.yml:md5,0d4bc49e94acb8995ca552d4e666e3ce", + "versions.yml:md5,65666e975bdfd71978843ca963e84d0c", + "versions.yml:md5,754bb19f86be761d90c002a0af2faf1c" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-05-10T13:22:28.063183" + } +} \ No newline at end of file diff --git a/subworkflows/gallvp/fasta_edta_lai/tests/nextflow.config b/subworkflows/gallvp/fasta_edta_lai/tests/nextflow.config new file mode 100644 index 0000000..1fa6315 --- /dev/null +++ b/subworkflows/gallvp/fasta_edta_lai/tests/nextflow.config @@ -0,0 +1,5 @@ +process { + withName: EDTA_EDTA { + ext.args = '--anno 1' + } +} diff --git a/subworkflows/gallvp/fasta_edta_lai/tests/tags.yml b/subworkflows/gallvp/fasta_edta_lai/tests/tags.yml new file mode 100644 index 0000000..b114c58 --- /dev/null +++ b/subworkflows/gallvp/fasta_edta_lai/tests/tags.yml @@ -0,0 +1,2 @@ +subworkflows/fasta_edta_lai: + - subworkflows/pfr/fasta_edta_lai/** From bbbe0535a786a20d5206d5633e4acc5f4f894a7b Mon Sep 17 00:00:00 2001 From: Usman Rashid Date: Fri, 26 Jul 2024 10:49:26 +1200 Subject: [PATCH 2/2] Added CI test exclusions --- .github/workflows/test.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b5d3f80..4ae9a3e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -183,6 +183,10 @@ jobs: exclude: - profile: conda path: modules/gallvp/braker3 + - profile: conda + path: modules/gallvp/edta/edta + - profile: conda + path: subworkflows/gallvp/fasta_edta_lai env: NXF_ANSI_LOG: false NFTEST_VER: "0.9.0"