From f655de0b2217ef7b28d525b8ed67abcabedcf303 Mon Sep 17 00:00:00 2001 From: Stephen Watts Date: Thu, 20 Nov 2025 11:28:36 +1100 Subject: [PATCH 1/3] Split CICD nf-test tests into small and large In order to run the 'test' profile on nf-core CICD, a large RunsOn instance is required with more 32 GB memory. We will eventually have many small tests but don't want these to also wastefully run on large instances. To avoid this situation, I split tests into different sizes where only the larger tests run on the up-sized instance. --- .github/actions/nf-test/action.yml | 4 +- .github/workflows/nf-test-entry.yml | 76 ++++++++++++++++++ .../{nf-test.yml => nf-test-reusable.yml} | 77 +++++++------------ .nf-core.yml | 1 + tests/profile_test.nf.test | 1 + 5 files changed, 106 insertions(+), 53 deletions(-) create mode 100644 .github/workflows/nf-test-entry.yml rename .github/workflows/{nf-test.yml => nf-test-reusable.yml} (68%) diff --git a/.github/actions/nf-test/action.yml b/.github/actions/nf-test/action.yml index 3b9724c7..80accce5 100644 --- a/.github/actions/nf-test/action.yml +++ b/.github/actions/nf-test/action.yml @@ -70,8 +70,8 @@ runs: --tap=test.tap \ --shard ${{ inputs.shard }}/${{ inputs.total_shards }} - # Save the absolute path of the test.tap file to the output - echo "tap_file_path=$(realpath test.tap)" >> $GITHUB_OUTPUT + # Save the absolute path of the test.tap file to the output + echo "tap_file_path=$(realpath test.tap)" >> $GITHUB_OUTPUT - name: Generate test summary if: always() diff --git a/.github/workflows/nf-test-entry.yml b/.github/workflows/nf-test-entry.yml new file mode 100644 index 00000000..faaddb21 --- /dev/null +++ b/.github/workflows/nf-test-entry.yml @@ -0,0 +1,76 @@ +name: Run nf-test +on: + pull_request: + paths-ignore: + - "docs/**" + - "**/meta.yml" + - "**/*.md" + - "**/*.png" + - "**/*.svg" + release: + types: [published] + workflow_dispatch: + +# Cancel if a newer run is started +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + # NOTE(SW): only run large tests on up-sized instances to avoid wasting compute (in this case the just test profile) + # NOTE(SW): the test profile requires more than 32 GB memory and with the available RunsOn instances, the 32cpu-linux-x64 runner is the best fit despite being excessively overprovisioned re vCPUs + # https://runs-on.com/runners/linux/ + # Instance type vCPUs Memory (GiB) RunsOn name + # m7a.medium 1 4 1cpu-linux-x64 + # m7i.large 2 8 2cpu-linux-x64 + # m7i.xlarge 4 16 4cpu-linux-x64 + # c7i.2xlarge 8 16 8cpu-linux-x64 + # c7i.4xlarge 16 32 16cpu-linux-x64 + # m7i-flex.8xlarge 32 128 32cpu-linux-x64 + # c7i.12xlarge 48 96 48cpu-linux-x64 + # c7a.16xlarge 64 128 64cpu-linux-x64 + nf-test: + uses: ./.github/workflows/nf-test-reusable.yml + strategy: + matrix: + include: + - name: small + tags: cicd + runson_instance_type: 4cpu-linux-x64 + runson_volume_size: 60gb + - name: large + tags: cicd.large + runson_instance_type: 32cpu-linux-x64 + runson_volume_size: 200gb + with: + name: ${{ matrix.name }} + tags: ${{ matrix.tags }} + runson_instance_type: ${{ matrix.runson_instance_type }} + runson_volume_size: ${{ matrix.runson_volume_size }} + + confirm-pass: + needs: [nf-test] + if: always() + runs-on: # use self-hosted runners + - runs-on=${{ github.run_id }}-confirm-pass + - runner=1cpu-linux-x64 + steps: + - name: One or more tests failed (excluding latest-everything) + if: ${{ contains(needs.*.result, 'failure') }} + run: exit 1 + + - name: One or more tests cancelled + if: ${{ contains(needs.*.result, 'cancelled') }} + run: exit 1 + + - name: All tests ok + if: ${{ contains(needs.*.result, 'success') }} + run: exit 0 + + - name: debug-print + if: always() + run: | + echo "::group::DEBUG: `needs` Contents" + echo "DEBUG: toJSON(needs) = ${{ toJSON(needs) }}" + echo "DEBUG: toJSON(needs.*.result) = ${{ toJSON(needs.*.result) }}" + echo "::endgroup::" diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test-reusable.yml similarity index 68% rename from .github/workflows/nf-test.yml rename to .github/workflows/nf-test-reusable.yml index 73fb0f03..bf7e6f1d 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test-reusable.yml @@ -1,24 +1,26 @@ -name: Run nf-test +name: Run nf-test on selected test set on: - pull_request: - paths-ignore: - - "docs/**" - - "**/meta.yml" - - "**/*.md" - - "**/*.png" - - "**/*.svg" - release: - types: [published] - workflow_dispatch: - -# Cancel if a newer run is started -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} - cancel-in-progress: true + workflow_call: + inputs: + name: + description: "Name of test set" + type: string + required: true + tags: + description: "Tags to pass as argument for nf-test --tag parameter" + type: string + required: true + runson_instance_type: + description: "RunsOn runner instance type" + type: string + required: true + runson_volume_size: + description: "RunsOn runner instance volume" + type: string + required: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NFT_TAGS: "cicd" NFT_VER: "0.9.3" NFT_WORKDIR: "~" NXF_ANSI_LOG: false @@ -27,10 +29,10 @@ env: jobs: nf-test-changes: - name: nf-test-changes + name: nf-test-changes (${{ inputs.name }}) runs-on: # use self-hosted runners - runs-on=${{ github.run_id }}-nf-test-changes - - runner=4cpu-linux-x64 + - runner=1cpu-linux-x64 outputs: shard: ${{ steps.set-shards.outputs.shard }} total_shards: ${{ steps.set-shards.outputs.total_shards }} @@ -52,7 +54,7 @@ jobs: NFT_VER: ${{ env.NFT_VER }} with: max_shards: 7 - tags: ${{ env.NFT_TAGS }} + tags: ${{ inputs.tags }} - name: debug run: | @@ -60,13 +62,13 @@ jobs: echo ${{ steps.set-shards.outputs.total_shards }} nf-test: - name: "${{ matrix.profile }} | ${{ matrix.NXF_VER }} | ${{ matrix.shard }}/${{ needs.nf-test-changes.outputs.total_shards }}" + name: " ${{ inputs.name }} tests | ${{ matrix.profile }} | ${{ matrix.NXF_VER }} | ${{ matrix.shard }}/${{ needs.nf-test-changes.outputs.total_shards }}" needs: [nf-test-changes] if: ${{ needs.nf-test-changes.outputs.total_shards != '0' }} runs-on: # use self-hosted runners - runs-on=${{ github.run_id }}-nf-test - - runner=4cpu-linux-x64 - - disk=large + - runner=${{ inputs.runson_instance_type }} + - volume=${{ inputs.runson_volume_size }} strategy: fail-fast: false matrix: @@ -103,7 +105,7 @@ jobs: profile: ${{ matrix.profile }} shard: ${{ matrix.shard }} total_shards: ${{ env.TOTAL_SHARDS }} - tags: ${{ env.NFT_TAGS }} + tags: ${{ inputs.tags }} - name: Report test status if: ${{ always() }} @@ -119,30 +121,3 @@ jobs: exit 1 fi fi - - confirm-pass: - needs: [nf-test] - if: always() - runs-on: # use self-hosted runners - - runs-on=${{ github.run_id }}-confirm-pass - - runner=2cpu-linux-x64 - steps: - - name: One or more tests failed (excluding latest-everything) - if: ${{ contains(needs.*.result, 'failure') }} - run: exit 1 - - - name: One or more tests cancelled - if: ${{ contains(needs.*.result, 'cancelled') }} - run: exit 1 - - - name: All tests ok - if: ${{ contains(needs.*.result, 'success') }} - run: exit 0 - - - name: debug-print - if: always() - run: | - echo "::group::DEBUG: `needs` Contents" - echo "DEBUG: toJSON(needs) = ${{ toJSON(needs) }}" - echo "DEBUG: toJSON(needs.*.result) = ${{ toJSON(needs.*.result) }}" - echo "::endgroup::" diff --git a/.nf-core.yml b/.nf-core.yml index 88aa666b..d1e9726e 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -15,6 +15,7 @@ template: lint: actions_ci: false files_exist: + - .github/workflows/nf-test.yml - lib/Utils.groovy - lib/WorkflowMain.groovy - lib/WorkflowOncoanalyser.groovy diff --git a/tests/profile_test.nf.test b/tests/profile_test.nf.test index ae3f3333..a7b03850 100644 --- a/tests/profile_test.nf.test +++ b/tests/profile_test.nf.test @@ -3,6 +3,7 @@ nextflow_pipeline { name "Test pipeline" script "../main.nf" tag "pipeline" + tag "cicd.large" profile "test" From a3aa0158935ae1e8730f203dd7b428982154132c Mon Sep 17 00:00:00 2001 From: Stephen Watts Date: Wed, 12 Nov 2025 11:19:33 +1100 Subject: [PATCH 2/3] Add full sized data to full test profile --- .github/workflows/awsfulltest.yml | 3 --- conf/test_full.config | 8 +------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index b3d215c2..71cb7da6 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -24,9 +24,6 @@ jobs: - name: Launch workflow via Seqera Platform uses: seqeralabs/action-tower-launch@v2 - # TODO nf-core: You can customise AWS full pipeline tests as required - # Add full size test data (but still relatively small datasets for few samples) - # on the `test_full.config` test runs with only one set of parameters with: workspace_id: ${{ vars.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} diff --git a/conf/test_full.config b/conf/test_full.config index d86d81ef..69036a95 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -10,18 +10,12 @@ ---------------------------------------------------------------------------------------- */ -process { - withName: 'PURPLE' { - ext.args = '-min_purity 1 -max_purity 1 -min_ploidy 2 -max_ploidy 2' - } -} - params { config_profile_name = 'Full test profile' config_profile_description = 'Full test dataset to check pipeline function' // Input data for full size test - input = params.pipelines_testdata_base_path + '/samplesheet/fastq_eval.subject_a.wgts.tndna_trna.minimal.csv' + input = params.pipelines_testdata_base_path + '/samplesheet/full_size.hcc1395.wgts.tndna_trna.fastq.csv' // Analysis config mode = 'wgts' From d423215b6e800ea55c535d93bb8bbce688b3b1c1 Mon Sep 17 00:00:00 2001 From: Stephen Watts Date: Wed, 3 Dec 2025 15:56:14 +1100 Subject: [PATCH 3/3] Update test snapshots --- tests/default.nf.test.snap | 68 +++++++++++++-------------- tests/profile_test.nf.test.snap | 82 ++++++++++++++++----------------- 2 files changed, 75 insertions(+), 75 deletions(-) diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 24db2af7..17eeb421 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -21,29 +21,29 @@ "subject_a/amber", "subject_a/amber/placeholder", "subject_a/bamtools", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools/subject_a.normal.bam_metric.coverage.tsv", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools/subject_a.normal.bam_metric.flag_counts.tsv", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools/subject_a.normal.bam_metric.frag_length.tsv", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools/subject_a.normal.bam_metric.partition_stats.tsv", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools/subject_a.normal.bam_metric.summary.tsv", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools/subject_a.tumor.bam_metric.coverage.tsv", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools/subject_a.tumor.bam_metric.flag_counts.tsv", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools/subject_a.tumor.bam_metric.frag_length.tsv", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools/subject_a.tumor.bam_metric.partition_stats.tsv", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools/subject_a.tumor.bam_metric.summary.tsv", + "subject_a/bamtools/subject_a.normal", + "subject_a/bamtools/subject_a.normal/subject_a.normal.bam_metric.coverage.tsv", + "subject_a/bamtools/subject_a.normal/subject_a.normal.bam_metric.flag_counts.tsv", + "subject_a/bamtools/subject_a.normal/subject_a.normal.bam_metric.frag_length.tsv", + "subject_a/bamtools/subject_a.normal/subject_a.normal.bam_metric.partition_stats.tsv", + "subject_a/bamtools/subject_a.normal/subject_a.normal.bam_metric.summary.tsv", + "subject_a/bamtools/subject_a.tumor", + "subject_a/bamtools/subject_a.tumor/subject_a.tumor.bam_metric.coverage.tsv", + "subject_a/bamtools/subject_a.tumor/subject_a.tumor.bam_metric.flag_counts.tsv", + "subject_a/bamtools/subject_a.tumor/subject_a.tumor.bam_metric.frag_length.tsv", + "subject_a/bamtools/subject_a.tumor/subject_a.tumor.bam_metric.partition_stats.tsv", + "subject_a/bamtools/subject_a.tumor/subject_a.tumor.bam_metric.summary.tsv", "subject_a/chord", "subject_a/chord/subject_a.tumor.chord.mutation_contexts.tsv", "subject_a/chord/subject_a.tumor.chord.prediction.tsv", "subject_a/cider", + "subject_a/cider/subject_a.tumor.cider.alignment_match.tsv.gz", "subject_a/cider/subject_a.tumor.cider.bam", - "subject_a/cider/subject_a.tumor.cider.blastn_match.tsv.gz", "subject_a/cider/subject_a.tumor.cider.layout.gz", "subject_a/cider/subject_a.tumor.cider.locus_stats.tsv", "subject_a/cider/subject_a.tumor.cider.vdj.tsv.gz", + "subject_a/cider/subject_a.tumor_rna.cider.alignment_match.tsv.gz", "subject_a/cider/subject_a.tumor_rna.cider.bam", - "subject_a/cider/subject_a.tumor_rna.cider.blastn_match.tsv.gz", "subject_a/cider/subject_a.tumor_rna.cider.layout.gz", "subject_a/cider/subject_a.tumor_rna.cider.locus_stats.tsv", "subject_a/cider/subject_a.tumor_rna.cider.vdj.tsv.gz", @@ -277,6 +277,23 @@ "subject_a/purple/subject_a.tumor.purple.somatic.vcf.gz", "subject_a/purple/subject_a.tumor.purple.sv.germline.vcf.gz", "subject_a/purple/subject_a.tumor.purple.sv.vcf.gz", + "subject_a/sage", + "subject_a/sage/germline", + "subject_a/sage/germline/subject_a.normal.gene.coverage.tsv", + "subject_a/sage/germline/subject_a.normal.sage.bqr.png", + "subject_a/sage/germline/subject_a.normal.sage.bqr.tsv", + "subject_a/sage/germline/subject_a.tumor.sage.bqr.png", + "subject_a/sage/germline/subject_a.tumor.sage.bqr.tsv", + "subject_a/sage/germline/subject_a.tumor.sage.germline.vcf.gz", + "subject_a/sage/germline/subject_a.tumor.sage.germline.vcf.gz.tbi", + "subject_a/sage/somatic", + "subject_a/sage/somatic/subject_a.normal.sage.bqr.png", + "subject_a/sage/somatic/subject_a.normal.sage.bqr.tsv", + "subject_a/sage/somatic/subject_a.tumor.gene.coverage.tsv", + "subject_a/sage/somatic/subject_a.tumor.sage.bqr.png", + "subject_a/sage/somatic/subject_a.tumor.sage.bqr.tsv", + "subject_a/sage/somatic/subject_a.tumor.sage.somatic.vcf.gz", + "subject_a/sage/somatic/subject_a.tumor.sage.somatic.vcf.gz.tbi", "subject_a/sage_append", "subject_a/sage_append/germline", "subject_a/sage_append/germline/subject_a.normal.frag_lengths.tsv.gz", @@ -288,23 +305,6 @@ "subject_a/sage_append/somatic/subject_a.tumor.sage.append.vcf.gz", "subject_a/sage_append/somatic/subject_a.tumor.sage.append.vcf.gz.tbi", "subject_a/sage_append/somatic/subject_a.tumor_query.sage.bqr.tsv", - "subject_a/sage_calling", - "subject_a/sage_calling/germline", - "subject_a/sage_calling/germline/subject_a.normal.gene.coverage.tsv", - "subject_a/sage_calling/germline/subject_a.normal.sage.bqr.png", - "subject_a/sage_calling/germline/subject_a.normal.sage.bqr.tsv", - "subject_a/sage_calling/germline/subject_a.tumor.sage.bqr.png", - "subject_a/sage_calling/germline/subject_a.tumor.sage.bqr.tsv", - "subject_a/sage_calling/germline/subject_a.tumor.sage.germline.vcf.gz", - "subject_a/sage_calling/germline/subject_a.tumor.sage.germline.vcf.gz.tbi", - "subject_a/sage_calling/somatic", - "subject_a/sage_calling/somatic/subject_a.normal.sage.bqr.png", - "subject_a/sage_calling/somatic/subject_a.normal.sage.bqr.tsv", - "subject_a/sage_calling/somatic/subject_a.tumor.gene.coverage.tsv", - "subject_a/sage_calling/somatic/subject_a.tumor.sage.bqr.png", - "subject_a/sage_calling/somatic/subject_a.tumor.sage.bqr.tsv", - "subject_a/sage_calling/somatic/subject_a.tumor.sage.somatic.vcf.gz", - "subject_a/sage_calling/somatic/subject_a.tumor.sage.somatic.vcf.gz.tbi", "subject_a/sigs", "subject_a/sigs/placeholder", "subject_a/teal", @@ -323,9 +323,9 @@ ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-08-12T16:05:52.737409" + "timestamp": "2025-12-03T04:25:08.751931146" } } \ No newline at end of file diff --git a/tests/profile_test.nf.test.snap b/tests/profile_test.nf.test.snap index cacd6411..1b476c2d 100644 --- a/tests/profile_test.nf.test.snap +++ b/tests/profile_test.nf.test.snap @@ -34,33 +34,33 @@ "subject_a/amber/subject_a.tumor.amber.contamination.vcf.gz.tbi", "subject_a/amber/subject_a.tumor.amber.qc", "subject_a/bamtools", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools/subject_a.normal.bam_metric.coverage.tsv", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools/subject_a.normal.bam_metric.exon_medians.tsv", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools/subject_a.normal.bam_metric.flag_counts.tsv", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools/subject_a.normal.bam_metric.frag_length.tsv", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools/subject_a.normal.bam_metric.gene_coverage.tsv", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools/subject_a.normal.bam_metric.partition_stats.tsv", - "subject_a/bamtools/subject_a_subject_a.normal_bamtools/subject_a.normal.bam_metric.summary.tsv", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools/subject_a.tumor.bam_metric.coverage.tsv", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools/subject_a.tumor.bam_metric.exon_medians.tsv", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools/subject_a.tumor.bam_metric.flag_counts.tsv", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools/subject_a.tumor.bam_metric.frag_length.tsv", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools/subject_a.tumor.bam_metric.gene_coverage.tsv", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools/subject_a.tumor.bam_metric.partition_stats.tsv", - "subject_a/bamtools/subject_a_subject_a.tumor_bamtools/subject_a.tumor.bam_metric.summary.tsv", + "subject_a/bamtools/subject_a.normal", + "subject_a/bamtools/subject_a.normal/subject_a.normal.bam_metric.coverage.tsv", + "subject_a/bamtools/subject_a.normal/subject_a.normal.bam_metric.exon_medians.tsv", + "subject_a/bamtools/subject_a.normal/subject_a.normal.bam_metric.flag_counts.tsv", + "subject_a/bamtools/subject_a.normal/subject_a.normal.bam_metric.frag_length.tsv", + "subject_a/bamtools/subject_a.normal/subject_a.normal.bam_metric.gene_coverage.tsv", + "subject_a/bamtools/subject_a.normal/subject_a.normal.bam_metric.partition_stats.tsv", + "subject_a/bamtools/subject_a.normal/subject_a.normal.bam_metric.summary.tsv", + "subject_a/bamtools/subject_a.tumor", + "subject_a/bamtools/subject_a.tumor/subject_a.tumor.bam_metric.coverage.tsv", + "subject_a/bamtools/subject_a.tumor/subject_a.tumor.bam_metric.exon_medians.tsv", + "subject_a/bamtools/subject_a.tumor/subject_a.tumor.bam_metric.flag_counts.tsv", + "subject_a/bamtools/subject_a.tumor/subject_a.tumor.bam_metric.frag_length.tsv", + "subject_a/bamtools/subject_a.tumor/subject_a.tumor.bam_metric.gene_coverage.tsv", + "subject_a/bamtools/subject_a.tumor/subject_a.tumor.bam_metric.partition_stats.tsv", + "subject_a/bamtools/subject_a.tumor/subject_a.tumor.bam_metric.summary.tsv", "subject_a/chord", "subject_a/chord/subject_a.tumor.chord.mutation_contexts.tsv", "subject_a/chord/subject_a.tumor.chord.prediction.tsv", "subject_a/cider", + "subject_a/cider/subject_a.tumor.cider.alignment_match.tsv.gz", "subject_a/cider/subject_a.tumor.cider.bam", - "subject_a/cider/subject_a.tumor.cider.blastn_match.tsv.gz", "subject_a/cider/subject_a.tumor.cider.layout.gz", "subject_a/cider/subject_a.tumor.cider.locus_stats.tsv", "subject_a/cider/subject_a.tumor.cider.vdj.tsv.gz", + "subject_a/cider/subject_a.tumor_rna.cider.alignment_match.tsv.gz", "subject_a/cider/subject_a.tumor_rna.cider.bam", - "subject_a/cider/subject_a.tumor_rna.cider.blastn_match.tsv.gz", "subject_a/cider/subject_a.tumor_rna.cider.layout.gz", "subject_a/cider/subject_a.tumor_rna.cider.locus_stats.tsv", "subject_a/cider/subject_a.tumor_rna.cider.vdj.tsv.gz", @@ -142,10 +142,10 @@ "subject_a/linx/somatic_plots/all/subject_a.tumor.chr11.007.png", "subject_a/linx/somatic_plots/all/subject_a.tumor.chr19.000.png", "subject_a/linx/somatic_plots/all/subject_a.tumor.chr9.007.png", - "subject_a/linx/somatic_plots/all/subject_a.tumor.cluster-0.sv2.003.png", - "subject_a/linx/somatic_plots/all/subject_a.tumor.cluster-1.sv2.007.png", + "subject_a/linx/somatic_plots/all/subject_a.tumor.cluster-0.resolved_type-SGL_PAIR_INS.sv_count-2.003.png", + "subject_a/linx/somatic_plots/all/subject_a.tumor.cluster-1.resolved_type-RECIP_TRANS.sv_count-2.007.png", "subject_a/linx/somatic_plots/reportable", - "subject_a/linx/somatic_plots/reportable/subject_a.tumor.cluster-1.sv2.007.png", + "subject_a/linx/somatic_plots/reportable/subject_a.tumor.cluster-1.resolved_type-RECIP_TRANS.sv_count-2.007.png", "subject_a/linx/subject_a.tumor_linx.html", "subject_a/logs", "subject_a/logs/subject_a.amber.command.err", @@ -365,8 +365,8 @@ "subject_a/purple/plot/subject_a.tumor.somatic.clonality.png", "subject_a/purple/plot/subject_a.tumor.somatic.png", "subject_a/purple/plot/subject_a.tumor.somatic.rainfall.png", - "subject_a/purple/plot/subject_a.tumor.somatic_data.tsv", "subject_a/purple/purple.version", + "subject_a/purple/subject_a.tumor.purple.chromosome_arm.tsv", "subject_a/purple/subject_a.tumor.purple.cnv.gene.tsv", "subject_a/purple/subject_a.tumor.purple.cnv.somatic.tsv", "subject_a/purple/subject_a.tumor.purple.driver.catalog.germline.tsv", @@ -386,6 +386,22 @@ "subject_a/purple/subject_a.tumor.purple.sv.germline.vcf.gz.tbi", "subject_a/purple/subject_a.tumor.purple.sv.vcf.gz", "subject_a/purple/subject_a.tumor.purple.sv.vcf.gz.tbi", + "subject_a/sage", + "subject_a/sage/germline", + "subject_a/sage/germline/subject_a.normal.sage.bqr.png", + "subject_a/sage/germline/subject_a.normal.sage.bqr.tsv", + "subject_a/sage/germline/subject_a.tumor.sage.bqr.png", + "subject_a/sage/germline/subject_a.tumor.sage.bqr.tsv", + "subject_a/sage/germline/subject_a.tumor.sage.germline.vcf.gz", + "subject_a/sage/germline/subject_a.tumor.sage.germline.vcf.gz.tbi", + "subject_a/sage/somatic", + "subject_a/sage/somatic/subject_a.normal.sage.bqr.png", + "subject_a/sage/somatic/subject_a.normal.sage.bqr.tsv", + "subject_a/sage/somatic/subject_a.tumor.sage.bqr.png", + "subject_a/sage/somatic/subject_a.tumor.sage.bqr.tsv", + "subject_a/sage/somatic/subject_a.tumor.sage.somatic.fit_variant.tsv", + "subject_a/sage/somatic/subject_a.tumor.sage.somatic.vcf.gz", + "subject_a/sage/somatic/subject_a.tumor.sage.somatic.vcf.gz.tbi", "subject_a/sage_append", "subject_a/sage_append/germline", "subject_a/sage_append/germline/subject_a.normal.sage.append.frag_lengths.tsv.gz", @@ -397,22 +413,6 @@ "subject_a/sage_append/somatic/subject_a.tumor.sage.append.vcf.gz", "subject_a/sage_append/somatic/subject_a.tumor.sage.append.vcf.gz.tbi", "subject_a/sage_append/somatic/subject_a.tumor_rna.sage.bqr.tsv", - "subject_a/sage_calling", - "subject_a/sage_calling/germline", - "subject_a/sage_calling/germline/subject_a.normal.sage.bqr.png", - "subject_a/sage_calling/germline/subject_a.normal.sage.bqr.tsv", - "subject_a/sage_calling/germline/subject_a.tumor.sage.bqr.png", - "subject_a/sage_calling/germline/subject_a.tumor.sage.bqr.tsv", - "subject_a/sage_calling/germline/subject_a.tumor.sage.germline.vcf.gz", - "subject_a/sage_calling/germline/subject_a.tumor.sage.germline.vcf.gz.tbi", - "subject_a/sage_calling/somatic", - "subject_a/sage_calling/somatic/subject_a.normal.sage.bqr.png", - "subject_a/sage_calling/somatic/subject_a.normal.sage.bqr.tsv", - "subject_a/sage_calling/somatic/subject_a.tumor.sage.bqr.png", - "subject_a/sage_calling/somatic/subject_a.tumor.sage.bqr.tsv", - "subject_a/sage_calling/somatic/subject_a.tumor.sage.somatic.fit_variant.tsv", - "subject_a/sage_calling/somatic/subject_a.tumor.sage.somatic.vcf.gz", - "subject_a/sage_calling/somatic/subject_a.tumor.sage.somatic.vcf.gz.tbi", "subject_a/sigs", "subject_a/sigs/subject_a.tumor.sig.allocation.tsv", "subject_a/sigs/subject_a.tumor.sig.snv_counts.csv", @@ -432,9 +432,9 @@ ] ], "meta": { - "nf-test": "0.9.2", - "nextflow": "25.04.6" + "nf-test": "0.9.3", + "nextflow": "25.10.2" }, - "timestamp": "2025-09-01T00:24:15.919488538" + "timestamp": "2025-12-03T05:13:51.245667357" } } \ No newline at end of file