From 63cb94d7391d3c7daade2e0387ddb63c62611c2e Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Wed, 8 May 2024 13:58:04 +0000 Subject: [PATCH 01/31] Template update for nf-core/tools version 2.14.0 --- .editorconfig | 6 +- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/workflows/awsfulltest.yml | 10 +- .github/workflows/awstest.yml | 12 +- .github/workflows/ci.yml | 4 +- .github/workflows/download_pipeline.yml | 22 ++- .github/workflows/fix-linting.yml | 6 +- .github/workflows/linting.yml | 18 +- .github/workflows/linting_comment.yml | 2 +- .github/workflows/release-announcements.yml | 6 +- .nf-core.yml | 1 + .pre-commit-config.yaml | 3 + CHANGELOG.md | 2 +- README.md | 2 +- assets/multiqc_config.yml | 6 +- conf/base.config | 3 - conf/modules.config | 8 - conf/test.config | 2 +- conf/test_full.config | 2 +- docs/usage.md | 2 + modules.json | 4 +- modules/nf-core/fastqc/main.nf | 6 + nextflow.config | 178 +++++++++--------- nextflow_schema.json | 7 + pyproject.toml | 15 -- .../utils_nfcore_airrflow_pipeline/main.nf | 16 +- .../nf-core/utils_nfcore_pipeline/main.nf | 8 +- workflows/airrflow.nf | 46 +++-- 28 files changed, 226 insertions(+), 173 deletions(-) delete mode 100644 pyproject.toml diff --git a/.editorconfig b/.editorconfig index dd9ffa53..72dda289 100644 --- a/.editorconfig +++ b/.editorconfig @@ -28,10 +28,6 @@ indent_style = unset [/assets/email*] indent_size = unset -# ignore Readme -[README.md] -indent_style = unset - -# ignore python +# ignore python and markdown [*.{py,md}] indent_style = unset diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index c13f8d82..1c3a0658 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -18,7 +18,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/airr - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/airrflow/tree/master/.github/CONTRIBUTING.md) - [ ] If necessary, also make a PR on the nf-core/airrflow _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. - [ ] Make sure your code lints (`nf-core lint`). -- [ ] Ensure the test suite passes (`nf-test test main.nf.test -profile test,docker`). +- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). - [ ] Check for unexpected warnings in debug mode (`nextflow run . -profile debug,test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 7462873d..11348d0f 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -8,12 +8,12 @@ on: types: [published] workflow_dispatch: jobs: - run-tower: + run-platform: name: Run AWS full tests if: github.repository == 'nf-core/airrflow' runs-on: ubuntu-latest steps: - - name: Launch workflow via tower + - 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) @@ -33,7 +33,7 @@ jobs: - uses: actions/upload-artifact@v4 with: - name: Tower debug log file + name: Seqera Platform debug log file path: | - tower_action_*.log - tower_action_*.json + seqera_platform_action_*.log + seqera_platform_action_*.json diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 869b2ab2..e4d97f6d 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -5,13 +5,13 @@ name: nf-core AWS test on: workflow_dispatch: jobs: - run-tower: + run-platform: name: Run AWS tests if: github.repository == 'nf-core/airrflow' runs-on: ubuntu-latest steps: - # Launch workflow using Tower CLI tool action - - name: Launch workflow via tower + # Launch workflow using Seqera Platform CLI tool action + - name: Launch workflow via Seqera Platform uses: seqeralabs/action-tower-launch@v2 with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} @@ -27,7 +27,7 @@ jobs: - uses: actions/upload-artifact@v4 with: - name: Tower debug log file + name: Seqera Platform debug log file path: | - tower_action_*.log - tower_action_*.json + seqera_platform_action_*.log + seqera_platform_action_*.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2562b15c..bb6179a1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,10 +28,10 @@ jobs: - "latest-everything" steps: - name: Check out pipeline code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 with: version: "${{ matrix.NXF_VER }}" diff --git a/.github/workflows/download_pipeline.yml b/.github/workflows/download_pipeline.yml index 08622fd5..2d20d644 100644 --- a/.github/workflows/download_pipeline.yml +++ b/.github/workflows/download_pipeline.yml @@ -14,6 +14,8 @@ on: pull_request: types: - opened + - edited + - synchronize branches: - master pull_request_target: @@ -28,11 +30,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - name: Disk space cleanup + uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1 + + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: "3.11" + python-version: "3.12" architecture: "x64" - uses: eWaterCycle/setup-singularity@931d4e31109e875b13309ae1d07c70ca8fbc8537 # v7 with: @@ -65,8 +70,17 @@ jobs: - name: Inspect download run: tree ./${{ env.REPOTITLE_LOWERCASE }} - - name: Run the downloaded pipeline + - name: Run the downloaded pipeline (stub) + id: stub_run_pipeline + continue-on-error: true env: NXF_SINGULARITY_CACHEDIR: ./ NXF_SINGULARITY_HOME_MOUNT: true run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -stub -profile test,singularity --outdir ./results + - name: Run the downloaded pipeline (stub run not supported) + id: run_pipeline + if: ${{ job.steps.stub_run_pipeline.status == failure() }} + env: + NXF_SINGULARITY_CACHEDIR: ./ + NXF_SINGULARITY_HOME_MOUNT: true + run: nextflow run ./${{ env.REPOTITLE_LOWERCASE }}/$( sed 's/\W/_/g' <<< ${{ env.REPO_BRANCH }}) -profile test,singularity --outdir ./results diff --git a/.github/workflows/fix-linting.yml b/.github/workflows/fix-linting.yml index 8dda78ab..2261f74f 100644 --- a/.github/workflows/fix-linting.yml +++ b/.github/workflows/fix-linting.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: # Use the @nf-core-bot token to check out so we can push later - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 with: token: ${{ secrets.nf_core_bot_auth_token }} @@ -32,9 +32,9 @@ jobs: GITHUB_TOKEN: ${{ secrets.nf_core_bot_auth_token }} # Install and run pre-commit - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: 3.11 + python-version: "3.12" - name: Install pre-commit run: pip install pre-commit diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 073e1876..a3fb2541 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -14,12 +14,12 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + - uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 - - name: Set up Python 3.11 - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - name: Set up Python 3.12 + uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: 3.11 + python-version: "3.12" cache: "pip" - name: Install pre-commit @@ -32,14 +32,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Check out pipeline code - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4 - name: Install Nextflow - uses: nf-core/setup-nextflow@v1 + uses: nf-core/setup-nextflow@v2 - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: - python-version: "3.11" + python-version: "3.12" architecture: "x64" - name: Install dependencies @@ -60,7 +60,7 @@ jobs: - name: Upload linting log file artifact if: ${{ always() }} - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4 + uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4 with: name: linting-logs path: | diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index b706875f..40acc23f 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Download lint results - uses: dawidd6/action-download-artifact@f6b0bace624032e30a85a8fd9c1a7f8f611f5737 # v3 + uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe # v3 with: workflow: linting.yml workflow_conclusion: completed diff --git a/.github/workflows/release-announcements.yml b/.github/workflows/release-announcements.yml index d468aeaa..03ecfcf7 100644 --- a/.github/workflows/release-announcements.yml +++ b/.github/workflows/release-announcements.yml @@ -12,7 +12,7 @@ jobs: - name: get topics and convert to hashtags id: get_topics run: | - curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ' >> $GITHUB_OUTPUT + echo "topics=$(curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .topics[]' | awk '{print "#"$0}' | tr '\n' ' ')" >> $GITHUB_OUTPUT - uses: rzr/fediverse-action@master with: @@ -25,13 +25,13 @@ jobs: Please see the changelog: ${{ github.event.release.html_url }} - ${{ steps.get_topics.outputs.GITHUB_OUTPUT }} #nfcore #openscience #nextflow #bioinformatics + ${{ steps.get_topics.outputs.topics }} #nfcore #openscience #nextflow #bioinformatics send-tweet: runs-on: ubuntu-latest steps: - - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5 + - uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: python-version: "3.10" - name: Install dependencies diff --git a/.nf-core.yml b/.nf-core.yml index 3805dc81..d6daa403 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -1 +1,2 @@ repository_type: pipeline +nf_core_version: "2.14.0" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index af57081f..4dc0f1dc 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,6 +3,9 @@ repos: rev: "v3.1.0" hooks: - id: prettier + additional_dependencies: + - prettier@3.2.5 + - repo: https://github.com/editorconfig-checker/editorconfig-checker.python rev: "2.7.3" hooks: diff --git a/CHANGELOG.md b/CHANGELOG.md index e3d1b11d..fa01f15b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## v3.2.1dev - [date] +## v4.0 - [date] Initial release of nf-core/airrflow, created with the [nf-core](https://nf-co.re/) template. diff --git a/README.md b/README.md index 50b0aa85..9d84b811 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ [![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/) [![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/) [![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/) -[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://tower.nf/launch?pipeline=https://github.com/nf-core/airrflow) +[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/airrflow) [![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23airrflow-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/airrflow)[![Follow on Twitter](http://img.shields.io/badge/twitter-%40nf__core-1DA1F2?labelColor=000000&logo=twitter)](https://twitter.com/nf_core)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core) diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 848dc14a..6bf130f8 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -1,7 +1,9 @@ report_comment: > - This report has been generated by the nf-core/airrflow + + This report has been generated by the nf-core/airrflow analysis pipeline. For information about how to interpret these results, please see the - documentation. + documentation. + report_section_order: "nf-core-airrflow-methods-description": order: -1000 diff --git a/conf/base.config b/conf/base.config index 9ad4b703..d09a2bb2 100644 --- a/conf/base.config +++ b/conf/base.config @@ -59,7 +59,4 @@ process { errorStrategy = 'retry' maxRetries = 2 } - withName:CUSTOM_DUMPSOFTWAREVERSIONS { - cache = false - } } diff --git a/conf/modules.config b/conf/modules.config index e3ea8fa6..d203d2b6 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -22,14 +22,6 @@ process { ext.args = '--quiet' } - withName: CUSTOM_DUMPSOFTWAREVERSIONS { - publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: params.publish_dir_mode, - pattern: '*_versions.yml' - ] - } - withName: 'MULTIQC' { ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } publishDir = [ diff --git a/conf/test.config b/conf/test.config index 61a17277..47cb1082 100644 --- a/conf/test.config +++ b/conf/test.config @@ -22,7 +22,7 @@ params { // Input data // TODO nf-core: Specify the paths to your test data on nf-core/test-datasets // TODO nf-core: Give any required params for the test so that command line flags are not needed - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv' + input = params.pipelines_testdata_base_path + 'viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv' // Genome references genome = 'R64-1-1' diff --git a/conf/test_full.config b/conf/test_full.config index 9c410f35..4a7e2ac9 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -17,7 +17,7 @@ params { // Input data for full size test // TODO nf-core: Specify the paths to your full test data ( on nf-core/test-datasets or directly in repositories, e.g. SRA) // TODO nf-core: Give any required params for the test so that command line flags are not needed - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_full_illumina_amplicon.csv' + input = params.pipelines_testdata_base_path + 'viralrecon/samplesheet/samplesheet_full_illumina_amplicon.csv' // Genome references genome = 'R64-1-1' diff --git a/docs/usage.md b/docs/usage.md index 6b80bec1..4091ad29 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -156,6 +156,8 @@ If `-profile` is not specified, the pipeline will run locally and expect all sof - A generic configuration profile to be used with [Charliecloud](https://hpc.github.io/charliecloud/) - `apptainer` - A generic configuration profile to be used with [Apptainer](https://apptainer.org/) +- `wave` + - A generic configuration profile to enable [Wave](https://seqera.io/wave/) containers. Use together with one of the above (requires Nextflow ` 24.03.0-edge` or later). - `conda` - A generic configuration profile to be used with [Conda](https://conda.io/docs/). Please only use Conda as a last resort i.e. when it's not possible to run the pipeline with Docker, Singularity, Podman, Shifter, Charliecloud, or Apptainer. diff --git a/modules.json b/modules.json index 84475b63..30e22ba7 100644 --- a/modules.json +++ b/modules.json @@ -7,7 +7,7 @@ "nf-core": { "fastqc": { "branch": "master", - "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c", + "git_sha": "285a50500f9e02578d90b3ce6382ea3c30216acd", "installed_by": ["modules"] }, "multiqc": { @@ -26,7 +26,7 @@ }, "utils_nfcore_pipeline": { "branch": "master", - "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", + "git_sha": "92de218a329bfc9a9033116eb5f65fd270e72ba3", "installed_by": ["subworkflows"] }, "utils_nfvalidation_plugin": { diff --git a/modules/nf-core/fastqc/main.nf b/modules/nf-core/fastqc/main.nf index 9e19a74c..d79f1c86 100644 --- a/modules/nf-core/fastqc/main.nf +++ b/modules/nf-core/fastqc/main.nf @@ -25,6 +25,11 @@ process FASTQC { def old_new_pairs = reads instanceof Path || reads.size() == 1 ? [[ reads, "${prefix}.${reads.extension}" ]] : reads.withIndex().collect { entry, index -> [ entry, "${prefix}_${index + 1}.${entry.extension}" ] } def rename_to = old_new_pairs*.join(' ').join(' ') def renamed_files = old_new_pairs.collect{ old_name, new_name -> new_name }.join(' ') + + def memory_in_mb = MemoryUnit.of("${task.memory}").toUnit('MB') + // FastQC memory value allowed range (100 - 10000) + def fastqc_memory = memory_in_mb > 10000 ? 10000 : (memory_in_mb < 100 ? 100 : memory_in_mb) + """ printf "%s %s\\n" $rename_to | while read old_name new_name; do [ -f "\${new_name}" ] || ln -s \$old_name \$new_name @@ -33,6 +38,7 @@ process FASTQC { fastqc \\ $args \\ --threads $task.cpus \\ + --memory $fastqc_memory \\ $renamed_files cat <<-END_VERSIONS > versions.yml diff --git a/nextflow.config b/nextflow.config index 789b5684..27ca3852 100644 --- a/nextflow.config +++ b/nextflow.config @@ -16,7 +16,8 @@ params { genome = null igenomes_base = 's3://ngi-igenomes/igenomes/' igenomes_ignore = false - fasta = null// MultiQC options + + // MultiQC options multiqc_config = null multiqc_title = null multiqc_logo = null @@ -24,15 +25,16 @@ params { multiqc_methods_description = null // Boilerplate options - outdir = null - publish_dir_mode = 'copy' - email = null - email_on_fail = null - plaintext_email = false - monochrome_logs = false - hook_url = null - help = false - version = false + outdir = null + publish_dir_mode = 'copy' + email = null + email_on_fail = null + plaintext_email = false + monochrome_logs = false + hook_url = null + help = false + version = false + pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' // Config options config_profile_name = null @@ -68,103 +70,109 @@ try { } // Load nf-core/airrflow custom profiles from different institutions. -// Warning: Uncomment only if a pipeline-specific institutional config already exists on nf-core/configs! -// try { -// includeConfig "${params.custom_config_base}/pipeline/airrflow.config" -// } catch (Exception e) { -// System.err.println("WARNING: Could not load nf-core/config/airrflow profiles: ${params.custom_config_base}/pipeline/airrflow.config") -// } +try { + includeConfig "${params.custom_config_base}/pipeline/airrflow.config" +} catch (Exception e) { + System.err.println("WARNING: Could not load nf-core/config/airrflow profiles: ${params.custom_config_base}/pipeline/airrflow.config") +} profiles { debug { - dumpHashes = true - process.beforeScript = 'echo $HOSTNAME' - cleanup = false + dumpHashes = true + process.beforeScript = 'echo $HOSTNAME' + cleanup = false nextflow.enable.configProcessNamesValidation = true } conda { - conda.enabled = true - docker.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false - channels = ['conda-forge', 'bioconda', 'defaults'] - apptainer.enabled = false + conda.enabled = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + conda.channels = ['conda-forge', 'bioconda', 'defaults'] + apptainer.enabled = false } mamba { - conda.enabled = true - conda.useMamba = true - docker.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false - apptainer.enabled = false + conda.enabled = true + conda.useMamba = true + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + apptainer.enabled = false } docker { - docker.enabled = true - conda.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false - apptainer.enabled = false - docker.runOptions = '-u $(id -u):$(id -g)' + docker.enabled = true + conda.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + apptainer.enabled = false + docker.runOptions = '-u $(id -u):$(id -g)' } arm { - docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' + docker.runOptions = '-u $(id -u):$(id -g) --platform=linux/amd64' } singularity { - singularity.enabled = true - singularity.autoMounts = true - conda.enabled = false - docker.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false - apptainer.enabled = false + singularity.enabled = true + singularity.autoMounts = true + conda.enabled = false + docker.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + apptainer.enabled = false } podman { - podman.enabled = true - conda.enabled = false - docker.enabled = false - singularity.enabled = false - shifter.enabled = false - charliecloud.enabled = false - apptainer.enabled = false + podman.enabled = true + conda.enabled = false + docker.enabled = false + singularity.enabled = false + shifter.enabled = false + charliecloud.enabled = false + apptainer.enabled = false } shifter { - shifter.enabled = true - conda.enabled = false - docker.enabled = false - singularity.enabled = false - podman.enabled = false - charliecloud.enabled = false - apptainer.enabled = false + shifter.enabled = true + conda.enabled = false + docker.enabled = false + singularity.enabled = false + podman.enabled = false + charliecloud.enabled = false + apptainer.enabled = false } charliecloud { - charliecloud.enabled = true - conda.enabled = false - docker.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - apptainer.enabled = false + charliecloud.enabled = true + conda.enabled = false + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + apptainer.enabled = false } apptainer { - apptainer.enabled = true - apptainer.autoMounts = true - conda.enabled = false - docker.enabled = false - singularity.enabled = false - podman.enabled = false - shifter.enabled = false - charliecloud.enabled = false + apptainer.enabled = true + apptainer.autoMounts = true + conda.enabled = false + docker.enabled = false + singularity.enabled = false + podman.enabled = false + shifter.enabled = false + charliecloud.enabled = false + } + wave { + apptainer.ociAutoPull = true + singularity.ociAutoPull = true + wave.enabled = true + wave.freeze = true + wave.strategy = 'conda,container' } gitpod { - executor.name = 'local' - executor.cpus = 4 - executor.memory = 8.GB + executor.name = 'local' + executor.cpus = 4 + executor.memory = 8.GB } test { includeConfig 'conf/test.config' } test_full { includeConfig 'conf/test_full.config' } @@ -231,7 +239,7 @@ manifest { description = """B and T cell repertoire analysis pipeline with the Immcantation framework.""" mainScript = 'main.nf' nextflowVersion = '!>=23.04.0' - version = '3.2.1dev' + version = '4.0' doi = '' } diff --git a/nextflow_schema.json b/nextflow_schema.json index b5487767..c36ce188 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -265,6 +265,13 @@ "description": "Validation of parameters in lenient more.", "hidden": true, "help_text": "Allows string values that are parseable as numbers or booleans. For further information see [JSONSchema docs](https://github.com/everit-org/json-schema#lenient-mode)." + }, + "pipelines_testdata_base_path": { + "type": "string", + "fa_icon": "far fa-check-circle", + "description": "Base URL or local path to location of pipeline test dataset files", + "default": "https://raw.githubusercontent.com/nf-core/test-datasets/", + "hidden": true } } } diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 56110621..00000000 --- a/pyproject.toml +++ /dev/null @@ -1,15 +0,0 @@ -# Config file for Python. Mostly used to configure linting of bin/*.py with Ruff. -# Should be kept the same as nf-core/tools to avoid fighting with template synchronisation. -[tool.ruff] -line-length = 120 -target-version = "py38" -cache-dir = "~/.cache/ruff" - -[tool.ruff.lint] -select = ["I", "E1", "E4", "E7", "E9", "F", "UP", "N"] - -[tool.ruff.lint.isort] -known-first-party = ["nf_core"] - -[tool.ruff.lint.per-file-ignores] -"__init__.py" = ["E402", "F401"] diff --git a/subworkflows/local/utils_nfcore_airrflow_pipeline/main.nf b/subworkflows/local/utils_nfcore_airrflow_pipeline/main.nf index de9642e5..80e2ebc0 100644 --- a/subworkflows/local/utils_nfcore_airrflow_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_airrflow_pipeline/main.nf @@ -140,6 +140,10 @@ workflow PIPELINE_COMPLETION { imNotification(summary_params, hook_url) } } + + workflow.onError { + log.error "Pipeline failed. Please refer to troubleshooting docs: https://nf-co.re/docs/usage/troubleshooting" + } } /* @@ -230,8 +234,16 @@ def methodsDescriptionText(mqc_methods_yaml) { meta["manifest_map"] = workflow.manifest.toMap() // Pipeline DOI - meta["doi_text"] = meta.manifest_map.doi ? "(doi: ${meta.manifest_map.doi})" : "" - meta["nodoi_text"] = meta.manifest_map.doi ? "": "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " + if (meta.manifest_map.doi) { + // Using a loop to handle multiple DOIs + // Removing `https://doi.org/` to handle pipelines using DOIs vs DOI resolvers + // Removing ` ` since the manifest.doi is a string and not a proper list + def temp_doi_ref = "" + String[] manifest_doi = meta.manifest_map.doi.tokenize(",") + for (String doi_ref: manifest_doi) temp_doi_ref += "(doi: ${doi_ref.replace("https://doi.org/", "").replace(" ", "")}), " + meta["doi_text"] = temp_doi_ref.substring(0, temp_doi_ref.length() - 2) + } else meta["doi_text"] = "" + meta["nodoi_text"] = meta.manifest_map.doi ? "" : "
  • If available, make sure to update the text to include the Zenodo DOI of version of the pipeline used.
  • " // Tool references meta["tool_citations"] = "" diff --git a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf index a8b55d6f..14558c39 100644 --- a/subworkflows/nf-core/utils_nfcore_pipeline/main.nf +++ b/subworkflows/nf-core/utils_nfcore_pipeline/main.nf @@ -65,9 +65,15 @@ def checkProfileProvided(nextflow_cli_args) { // Citation string for pipeline // def workflowCitation() { + def temp_doi_ref = "" + String[] manifest_doi = workflow.manifest.doi.tokenize(",") + // Using a loop to handle multiple DOIs + // Removing `https://doi.org/` to handle pipelines using DOIs vs DOI resolvers + // Removing ` ` since the manifest.doi is a string and not a proper list + for (String doi_ref: manifest_doi) temp_doi_ref += " https://doi.org/${doi_ref.replace('https://doi.org/', '').replace(' ', '')}\n" return "If you use ${workflow.manifest.name} for your analysis please cite:\n\n" + "* The pipeline\n" + - " ${workflow.manifest.doi}\n\n" + + temp_doi_ref + "\n" + "* The nf-core framework\n" + " https://doi.org/10.1038/s41587-020-0439-x\n\n" + "* Software dependencies\n" + diff --git a/workflows/airrflow.nf b/workflows/airrflow.nf index 231ebbd5..a8d29d0d 100644 --- a/workflows/airrflow.nf +++ b/workflows/airrflow.nf @@ -40,22 +40,44 @@ workflow AIRRFLOW { // Collate and save software versions // softwareVersionsToYAML(ch_versions) - .collectFile(storeDir: "${params.outdir}/pipeline_info", name: 'nf_core_pipeline_software_mqc_versions.yml', sort: true, newLine: true) - .set { ch_collated_versions } + .collectFile( + storeDir: "${params.outdir}/pipeline_info", + name: 'nf_core_pipeline_software_mqc_versions.yml', + sort: true, + newLine: true + ).set { ch_collated_versions } // // MODULE: MultiQC // - ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) - ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multiqc_config, checkIfExists: true) : Channel.empty() - ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath(params.multiqc_logo, checkIfExists: true) : Channel.empty() - summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") - ch_workflow_summary = Channel.value(paramsSummaryMultiqc(summary_params)) - ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) - ch_methods_description = Channel.value(methodsDescriptionText(ch_multiqc_custom_methods_description)) - ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) - ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) - ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml', sort: false)) + ch_multiqc_config = Channel.fromPath( + "$projectDir/assets/multiqc_config.yml", checkIfExists: true) + ch_multiqc_custom_config = params.multiqc_config ? + Channel.fromPath(params.multiqc_config, checkIfExists: true) : + Channel.empty() + ch_multiqc_logo = params.multiqc_logo ? + Channel.fromPath(params.multiqc_logo, checkIfExists: true) : + Channel.empty() + + summary_params = paramsSummaryMap( + workflow, parameters_schema: "nextflow_schema.json") + ch_workflow_summary = Channel.value(paramsSummaryMultiqc(summary_params)) + + ch_multiqc_custom_methods_description = params.multiqc_methods_description ? + file(params.multiqc_methods_description, checkIfExists: true) : + file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) + ch_methods_description = Channel.value( + methodsDescriptionText(ch_multiqc_custom_methods_description)) + + ch_multiqc_files = ch_multiqc_files.mix( + ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) + ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) + ch_multiqc_files = ch_multiqc_files.mix( + ch_methods_description.collectFile( + name: 'methods_description_mqc.yaml', + sort: true + ) + ) MULTIQC ( ch_multiqc_files.collect(), From 0788d447e7392528d808273b38e14e917cb7e963 Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Thu, 9 May 2024 11:37:36 +0000 Subject: [PATCH 02/31] Template update for nf-core/tools version 2.14.1 --- .github/workflows/linting.yml | 1 - .nf-core.yml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index a3fb2541..1fcafe88 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -20,7 +20,6 @@ jobs: uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5 with: python-version: "3.12" - cache: "pip" - name: Install pre-commit run: pip install pre-commit diff --git a/.nf-core.yml b/.nf-core.yml index d6daa403..e0b85a77 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -1,2 +1,2 @@ repository_type: pipeline -nf_core_version: "2.14.0" +nf_core_version: "2.14.1" From 46f8eb6d183fe6422bcbc00d86b140098849d7ce Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Mon, 20 May 2024 18:30:38 -0400 Subject: [PATCH 03/31] try fix report file size --- modules/local/rename_file.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/local/rename_file.nf b/modules/local/rename_file.nf index 6f99ef89..cc8e7cf6 100644 --- a/modules/local/rename_file.nf +++ b/modules/local/rename_file.nf @@ -16,6 +16,6 @@ process RENAME_FILE { script: """ - mv ${file} ${meta.id}_${file.name} + mv ${file} ${meta.id}.${file.extension} """ } From 4401e8cb6b1537980cd6856145635883a6532211 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Mon, 20 May 2024 18:35:21 -0400 Subject: [PATCH 04/31] fix sequence number plot --- assets/repertoire_comparison.Rmd | 3 ++- modules/local/rename_file.nf | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/assets/repertoire_comparison.Rmd b/assets/repertoire_comparison.Rmd index d3f83e75..b16a9cf4 100644 --- a/assets/repertoire_comparison.Rmd +++ b/assets/repertoire_comparison.Rmd @@ -106,8 +106,9 @@ The full table can be found under [Table_sequences_assembled](repertoire_compari ```{r seq_assembled, echo=FALSE, warning=FALSE, results='asis'} tab_seqs_assembled <- read.table("./Table_sequences_assembled.tsv", header=TRUE, sep="\t", check.names = FALSE) +# Splitting on last underscore for sample_id if (any(is.na(tab_seqs_assembled$sample_id))) { - tab_seqs_assembled$sample_id <- sapply(tab_seqs_assembled$file_0, function(x) unlist(strsplit(as.character(x), "_"))[1]) + tab_seqs_assembled$sample_id <- sapply(tab_seqs_assembled$file_0, function(x) unlist(strsplit(as.character(x), "_\\s*(?=[^_]+$)", perl=TRUE))[1]) } dat <- tab_seqs_assembled %>% diff --git a/modules/local/rename_file.nf b/modules/local/rename_file.nf index cc8e7cf6..1988bc98 100644 --- a/modules/local/rename_file.nf +++ b/modules/local/rename_file.nf @@ -12,7 +12,7 @@ process RENAME_FILE { tuple val(meta), path(file) output: - tuple val(meta), path("${meta.id}_${file.name}") , emit: file + tuple val(meta), path("${meta.id}.${file.extension}") , emit: file script: """ From bdaf234f6260aaa83cf9751f16b2d52154f7922c Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Tue, 28 May 2024 14:39:57 -0400 Subject: [PATCH 05/31] update changelog --- CHANGELOG.md | 12 ++++++++++++ nextflow.config | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42b92beb..99cc72b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,18 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [4.1.0] - + +### `Added` + +- [#335](https://github.com/nf-core/airrflow/pull/319) Update to nf-core template 2.14.1 + +### `Fixed` + +- [#335](https://github.com/nf-core/airrflow/pull/335) Fix report number of sequences per sample plots. + +### `Dependencies` + ## [4.0] - 2024-04-22 Ascendio ### `Added` diff --git a/nextflow.config b/nextflow.config index 00c53278..0f58aa0e 100644 --- a/nextflow.config +++ b/nextflow.config @@ -368,7 +368,7 @@ manifest { description = """B and T cell repertoire analysis pipeline with the Immcantation framework.""" mainScript = 'main.nf' nextflowVersion = '!>=23.04.0' - version = '4.0' + version = '4.1.0' doi = '10.5281/zenodo.2642009' } From 50df308aee0b2e8f75467e7ce36a0a1d7d06397c Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Tue, 28 May 2024 15:10:58 -0400 Subject: [PATCH 06/31] update testdata base path --- conf/test.config | 10 +++++----- conf/test_10x_sc.config | 4 ++-- conf/test_assembled_hs.config | 6 +++--- conf/test_assembled_immcantation_devel_hs.config | 6 +++--- conf/test_assembled_immcantation_devel_mm.config | 6 +++--- conf/test_assembled_mm.config | 6 +++--- conf/test_clontech_umi.config | 6 +++--- conf/test_fetchimgt.config | 6 +++--- conf/test_full.config | 6 +++--- conf/test_nebnext_umi.config | 6 +++--- conf/test_no_umi.config | 10 +++++----- conf/test_nocluster.config | 10 +++++----- conf/test_raw_immcantation_devel.config | 10 +++++----- conf/test_tcr.config | 10 +++++----- nextflow.config | 4 ++-- 15 files changed, 53 insertions(+), 53 deletions(-) diff --git a/conf/test.config b/conf/test.config index 4d6b1c40..b9b0b19a 100644 --- a/conf/test.config +++ b/conf/test.config @@ -20,11 +20,11 @@ params { max_time = '6.h' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-bcr/Metadata_test_airr.tsv' - cprimers = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-bcr/C_primers.fasta' - vprimers = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-bcr/V_primers.fasta' - reference_fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/imgtdb_base.zip' - reference_igblast = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'airrflow/testdata-bcr/Metadata_test_airr.tsv' + cprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/C_primers.fasta' + vprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/V_primers.fasta' + reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' mode = 'fastq' diff --git a/conf/test_10x_sc.config b/conf/test_10x_sc.config index 76936ef9..4eb926b4 100644 --- a/conf/test_10x_sc.config +++ b/conf/test_10x_sc.config @@ -23,6 +23,6 @@ params { // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-sc/10x_sc_raw.tsv' - reference_10x = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-sc/refdata-cellranger-vdj-GRCh38-alts-ensembl-5.0.0.tar.gz' + input = pipelines_testdata_base_path + 'airrflow/testdata-sc/10x_sc_raw.tsv' + reference_10x = pipelines_testdata_base_path + 'airrflow/testdata-sc/refdata-cellranger-vdj-GRCh38-alts-ensembl-5.0.0.tar.gz' } diff --git a/conf/test_assembled_hs.config b/conf/test_assembled_hs.config index bb6caa19..e8f1462c 100644 --- a/conf/test_assembled_hs.config +++ b/conf/test_assembled_hs.config @@ -18,9 +18,9 @@ params { // Input data mode = 'assembled' - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-reveal/test_assembled_metadata_hs.tsv' - reference_fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/imgtdb_base.zip' - reference_igblast = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'airrflow/testdata-reveal/test_assembled_metadata_hs.tsv' + reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' reassign = true productive_only = true diff --git a/conf/test_assembled_immcantation_devel_hs.config b/conf/test_assembled_immcantation_devel_hs.config index da5c8d56..adc0332b 100644 --- a/conf/test_assembled_immcantation_devel_hs.config +++ b/conf/test_assembled_immcantation_devel_hs.config @@ -18,9 +18,9 @@ params { // Input data mode = 'assembled' - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-reveal/test_assembled_metadata_hs.tsv' - reference_fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/imgtdb_base.zip' - reference_igblast = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'airrflow/testdata-reveal/test_assembled_metadata_hs.tsv' + reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' reassign = true productive_only = true diff --git a/conf/test_assembled_immcantation_devel_mm.config b/conf/test_assembled_immcantation_devel_mm.config index 33fd5bcb..3bc602ea 100644 --- a/conf/test_assembled_immcantation_devel_mm.config +++ b/conf/test_assembled_immcantation_devel_mm.config @@ -18,9 +18,9 @@ params { // Input data mode = 'assembled' - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-reveal/test_assembled_metadata_mm.tsv' - reference_fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/imgtdb_base.zip' - reference_igblast = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'airrflow/testdata-reveal/test_assembled_metadata_mm.tsv' + reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' reassign = true productive_only = true diff --git a/conf/test_assembled_mm.config b/conf/test_assembled_mm.config index 69ad5052..f90e7319 100644 --- a/conf/test_assembled_mm.config +++ b/conf/test_assembled_mm.config @@ -18,9 +18,9 @@ params { // Input data mode = 'assembled' - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-reveal/test_assembled_metadata_mm.tsv' - reference_fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/imgtdb_base.zip' - reference_igblast = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'airrflow/testdata-reveal/test_assembled_metadata_mm.tsv' + reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' reassign = true productive_only = true diff --git a/conf/test_clontech_umi.config b/conf/test_clontech_umi.config index 1d64ad1c..55dda02a 100644 --- a/conf/test_clontech_umi.config +++ b/conf/test_clontech_umi.config @@ -21,10 +21,10 @@ params { max_time = '6.h' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-clontech/samplesheet.tsv' + input = pipelines_testdata_base_path +'airrflow/testdata-clontech/samplesheet.tsv' - reference_fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/imgtdb_base.zip' - reference_igblast = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/igblast_base.zip' + reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' clonal_threshold = 0.1 diff --git a/conf/test_fetchimgt.config b/conf/test_fetchimgt.config index cc6608f7..14431d1b 100644 --- a/conf/test_fetchimgt.config +++ b/conf/test_fetchimgt.config @@ -20,9 +20,9 @@ params { max_time = '6.h' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-bcr/Metadata_test_airr.tsv' - cprimers = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-bcr/C_primers.fasta' - vprimers = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-bcr/V_primers.fasta' + input = pipelines_testdata_base_path + 'airrflow/testdata-bcr/Metadata_test_airr.tsv' + cprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/C_primers.fasta' + vprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/V_primers.fasta' fetch_imgt = true mode = 'fastq' diff --git a/conf/test_full.config b/conf/test_full.config index 0ac79d53..f6146bcf 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -15,11 +15,11 @@ params { config_profile_description = 'Full test dataset to check pipeline function' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-bcr/metadata_pcr_umi_airr_300.tsv' + input = pipelines_testdata_base_path + 'airrflow/testdata-bcr/metadata_pcr_umi_airr_300.tsv' cprimers = 's3://ngi-igenomes/test-data/airrflow/pcr_umi/cprimers.fasta' vprimers = 's3://ngi-igenomes/test-data/airrflow/pcr_umi/vprimers.fasta' - reference_fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/imgtdb_base.zip' - reference_igblast = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/igblast_base.zip' + reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' lineage_trees = true diff --git a/conf/test_nebnext_umi.config b/conf/test_nebnext_umi.config index 76c9bbea..ff7c22d8 100644 --- a/conf/test_nebnext_umi.config +++ b/conf/test_nebnext_umi.config @@ -22,10 +22,10 @@ params { max_time = '6.h' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-neb/samplesheet.tsv' + input = pipelines_testdata_base_path + 'airrflow/testdata-neb/samplesheet.tsv' - reference_fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/imgtdb_base.zip' - reference_igblast = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/igblast_base.zip' + reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' clonal_threshold = 0.1 diff --git a/conf/test_no_umi.config b/conf/test_no_umi.config index 8800b20c..b694e796 100644 --- a/conf/test_no_umi.config +++ b/conf/test_no_umi.config @@ -27,11 +27,11 @@ params { isotype_column = 'c_primer' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-no-umi/Metadata_test-no-umi_airr.tsv' - cprimers = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-no-umi/Greiff2014_CPrimers.fasta' - vprimers = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-no-umi/Greiff2014_VPrimers.fasta' - reference_fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/imgtdb_base.zip' - reference_igblast = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'airrflow/testdata-no-umi/Metadata_test-no-umi_airr.tsv' + cprimers = pipelines_testdata_base_path + 'airrflow/testdata-no-umi/Greiff2014_CPrimers.fasta' + vprimers = pipelines_testdata_base_path + 'airrflow/testdata-no-umi/Greiff2014_VPrimers.fasta' + reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' } diff --git a/conf/test_nocluster.config b/conf/test_nocluster.config index aabccb9b..c1b3d10b 100644 --- a/conf/test_nocluster.config +++ b/conf/test_nocluster.config @@ -20,11 +20,11 @@ params { max_time = '6.h' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-bcr/Metadata_test_airr.tsv' - cprimers = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-bcr/C_primers.fasta' - vprimers = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-bcr/V_primers.fasta' - reference_fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/imgtdb_base.zip' - reference_igblast = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'airrflow/testdata-bcr/Metadata_test_airr.tsv' + cprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/C_primers.fasta' + vprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/V_primers.fasta' + reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' mode = 'fastq' diff --git a/conf/test_raw_immcantation_devel.config b/conf/test_raw_immcantation_devel.config index 11b8ff69..a897d1ce 100644 --- a/conf/test_raw_immcantation_devel.config +++ b/conf/test_raw_immcantation_devel.config @@ -20,12 +20,12 @@ params { max_time = '6.h' // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-bcr/Metadata_test_airr.tsv' - cprimers = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-bcr/C_primers.fasta' - vprimers = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-bcr/V_primers.fasta' + input = pipelines_testdata_base_path + 'airrflow/testdata-bcr/Metadata_test_airr.tsv' + cprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/C_primers.fasta' + vprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/V_primers.fasta' - reference_fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/imgtdb_base.zip' - reference_igblast = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/igblast_base.zip' + reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' mode = 'fastq' diff --git a/conf/test_tcr.config b/conf/test_tcr.config index 5af84ee7..a178ba5d 100644 --- a/conf/test_tcr.config +++ b/conf/test_tcr.config @@ -28,11 +28,11 @@ params { // Input data - input = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-tcr/TCR_metadata_airr.tsv' - cprimers = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-tcr/cprimers.fasta' - race_linker = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/testdata-tcr/linker.fasta' - reference_fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/imgtdb_base.zip' - reference_igblast = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'airrflow/testdata-tcr/TCR_metadata_airr.tsv' + cprimers = pipelines_testdata_base_path + 'airrflow/testdata-tcr/cprimers.fasta' + race_linker = pipelines_testdata_base_path + 'airrflow/testdata-tcr/linker.fasta' + reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' } diff --git a/nextflow.config b/nextflow.config index d4b87c2d..cf42dd39 100644 --- a/nextflow.config +++ b/nextflow.config @@ -81,8 +81,8 @@ params { // ----------------------- productive_only = true reassign = true - reference_igblast = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/igblast_base.zip' - reference_fasta = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/database-cache/imgtdb_base.zip' + reference_igblast = "${params.pipelines_testdata_base_path}airrflow/database-cache/igblast_base.zip" + reference_fasta = "${pipelines_testdata_base_path}airrflow/database-cache/imgtdb_base.zip" fetch_imgt = false save_databases = true isotype_column = 'c_call' From 22f410debe374a2005592e88a11a5a5712365304 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Tue, 28 May 2024 15:22:05 -0400 Subject: [PATCH 07/31] rm custom software versions --- conf/base.config | 3 --- conf/modules.config | 8 -------- 2 files changed, 11 deletions(-) diff --git a/conf/base.config b/conf/base.config index 4f304f7e..6606bdac 100644 --- a/conf/base.config +++ b/conf/base.config @@ -61,7 +61,4 @@ process { cpus = { check_max( 16 * task.attempt, 'cpus' ) } memory = { check_max( 72.GB * task.attempt, 'memory' ) } } - withName:CUSTOM_DUMPSOFTWAREVERSIONS { - cache = false - } } diff --git a/conf/modules.config b/conf/modules.config index 3bfdc09f..3dc63fa9 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -18,14 +18,6 @@ process { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] - withName: CUSTOM_DUMPSOFTWAREVERSIONS { - publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: params.publish_dir_mode, - pattern: '*_versions.yml' - ] - } - // Validate input raw withName: SAMPLESHEET_CHECK { publishDir = [ From ee7c2642e170a1ab48c44fb86a11d03d0910cbaf Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Tue, 28 May 2024 15:22:28 -0400 Subject: [PATCH 08/31] solve warning --- subworkflows/local/presto_umi.nf | 44 ++++++++++++++++---------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/subworkflows/local/presto_umi.nf b/subworkflows/local/presto_umi.nf index 89e8d5f6..17caa68e 100644 --- a/subworkflows/local/presto_umi.nf +++ b/subworkflows/local/presto_umi.nf @@ -7,28 +7,28 @@ include { FASTP } from '../../modules/n //PRESTO -include { PRESTO_FILTERSEQ as PRESTO_FILTERSEQ_UMI } from '../../modules/local/presto/presto_filterseq' -include { PRESTO_MASKPRIMERS as PRESTO_MASKPRIMERS_UMI } from '../../modules/local/presto/presto_maskprimers' -include { PRESTO_MASKPRIMERS_ALIGN } from '../../modules/local/presto/presto_maskprimers_align' -include { PRESTO_MASKPRIMERS_EXTRACT } from '../../modules/local/presto/presto_maskprimers_extract' -include { PRESTO_MASKPRIMERS_ALIGN as PRESTO_ALIGN_CREGION } from '../../modules/local/presto/presto_maskprimers_align' -include { PRESTO_PAIRSEQ as PRESTO_PAIRSEQ_UMI } from '../../modules/local/presto/presto_pairseq' -include { PRESTO_PAIRSEQ as PRESTO_PAIRSEQ_ALIGN } from '../../modules/local/presto/presto_pairseq' -include { PRESTO_CLUSTERSETS as PRESTO_CLUSTERSETS_UMI } from '../../modules/local/presto/presto_clustersets' -include { PRESTO_PARSE_CLUSTER as PRESTO_PARSE_CLUSTER_UMI } from '../../modules/local/presto/presto_parse_cluster' -include { PRESTO_BUILDCONSENSUS as PRESTO_BUILDCONSENSUS_UMI } from '../../modules/local/presto/presto_buildconsensus' -include { PRESTO_BUILDCONSENSUS as PRESTO_BUILDCONSENSUS_ALIGN } from '../../modules/local/presto/presto_buildconsensus' +include { PRESTO_FILTERSEQ as PRESTO_FILTERSEQ_UMI } from '../../modules/local/presto/presto_filterseq' +include { PRESTO_MASKPRIMERS as PRESTO_MASKPRIMERS_UMI } from '../../modules/local/presto/presto_maskprimers' +include { PRESTO_MASKPRIMERS_ALIGN as PRESTO_ALIGN_PRIMERS } from '../../modules/local/presto/presto_maskprimers_align' +include { PRESTO_MASKPRIMERS_EXTRACT } from '../../modules/local/presto/presto_maskprimers_extract' +include { PRESTO_MASKPRIMERS_ALIGN as PRESTO_ALIGN_CREGION } from '../../modules/local/presto/presto_maskprimers_align' +include { PRESTO_PAIRSEQ as PRESTO_PAIRSEQ_UMI } from '../../modules/local/presto/presto_pairseq' +include { PRESTO_PAIRSEQ as PRESTO_PAIRSEQ_ALIGN } from '../../modules/local/presto/presto_pairseq' +include { PRESTO_CLUSTERSETS as PRESTO_CLUSTERSETS_UMI } from '../../modules/local/presto/presto_clustersets' +include { PRESTO_PARSE_CLUSTER as PRESTO_PARSE_CLUSTER_UMI } from '../../modules/local/presto/presto_parse_cluster' +include { PRESTO_BUILDCONSENSUS as PRESTO_BUILDCONSENSUS_UMI} from '../../modules/local/presto/presto_buildconsensus' +include { PRESTO_BUILDCONSENSUS as PRESTO_BUILDCONSENSUS_ALIGN } from '../../modules/local/presto/presto_buildconsensus' include { PRESTO_POSTCONSENSUS_PAIRSEQ as PRESTO_POSTCONSENSUS_PAIRSEQ_UMI } from '../../modules/local/presto/presto_postconsensus_pairseq' -include { PRESTO_ASSEMBLEPAIRS as PRESTO_ASSEMBLEPAIRS_UMI } from '../../modules/local/presto/presto_assemblepairs' -include { PRESTO_ASSEMBLEPAIRS_SEQUENTIAL } from '../../modules/local/presto/presto_assemblepairs_sequential' +include { PRESTO_ASSEMBLEPAIRS as PRESTO_ASSEMBLEPAIRS_UMI } from '../../modules/local/presto/presto_assemblepairs' +include { PRESTO_ASSEMBLEPAIRS_SEQUENTIAL } from '../../modules/local/presto/presto_assemblepairs_sequential' include { PRESTO_PARSEHEADERS as PRESTO_PARSEHEADERS_COLLAPSE_UMI } from '../../modules/local/presto/presto_parseheaders' -include { PRESTO_PARSEHEADERS as PRESTO_PARSEHEADERS_CREGION } from '../../modules/local/presto/presto_parseheaders' +include { PRESTO_PARSEHEADERS as PRESTO_PARSEHEADERS_CREGION } from '../../modules/local/presto/presto_parseheaders' include { PRESTO_PARSEHEADERS_PRIMERS as PRESTO_PARSEHEADERS_PRIMERS_UMI } from '../../modules/local/presto/presto_parseheaders_primers' include { PRESTO_PARSEHEADERS_METADATA as PRESTO_PARSEHEADERS_METADATA_UMI } from '../../modules/local/presto/presto_parseheaders_metadata' -include { PRESTO_COLLAPSESEQ as PRESTO_COLLAPSESEQ_UMI } from '../../modules/local/presto/presto_collapseseq' -include { PRESTO_COLLAPSESEQ as PRESTO_COLLAPSESEQ_ALIGN } from '../../modules/local/presto/presto_collapseseq' -include { PRESTO_COLLAPSESEQ as PRESTO_COLLAPSESEQ_CREGION } from '../../modules/local/presto/presto_collapseseq' -include { PRESTO_SPLITSEQ as PRESTO_SPLITSEQ_UMI} from '../../modules/local/presto/presto_splitseq' +include { PRESTO_COLLAPSESEQ as PRESTO_COLLAPSESEQ_UMI } from '../../modules/local/presto/presto_collapseseq' +include { PRESTO_COLLAPSESEQ as PRESTO_COLLAPSESEQ_ALIGN } from '../../modules/local/presto/presto_collapseseq' +include { PRESTO_COLLAPSESEQ as PRESTO_COLLAPSESEQ_CREGION} from '../../modules/local/presto/presto_collapseseq' +include { PRESTO_SPLITSEQ as PRESTO_SPLITSEQ_UMI } from '../../modules/local/presto/presto_splitseq' workflow PRESTO_UMI { @@ -108,7 +108,7 @@ workflow PRESTO_UMI { .map{ reads -> [reads[0], reads[1]] }.dump(tag: 'ch_reads_R1') ch_reads_R2 = PRESTO_FILTERSEQ_UMI.out.reads .map{ reads -> [reads[0], reads[2]] }.dump(tag: 'ch_reads_R2') - PRESTO_MASKPRIMERS_ALIGN( + PRESTO_ALIGN_PRIMERS( ch_reads_R1, ch_cprimers.collect(), params.primer_maxlen, @@ -119,15 +119,15 @@ workflow PRESTO_UMI { ch_reads_R2 ) - ch_versions = ch_versions.mix(PRESTO_MASKPRIMERS_ALIGN.out.versions) + ch_versions = ch_versions.mix(PRESTO_ALIGN_PRIMERS.out.versions) ch_versions = ch_versions.mix(PRESTO_MASKPRIMERS_EXTRACT.out.versions) // Merge again R1 and R2 by sample ID. - ch_maskprimers_reads_R1 = PRESTO_MASKPRIMERS_ALIGN.out.reads.map{ reads -> [reads[0].id, reads[0], reads[1]]}.dump(tag: 'ch_maskprimers_reads_R1') + ch_maskprimers_reads_R1 = PRESTO_ALIGN_PRIMERS.out.reads.map{ reads -> [reads[0].id, reads[0], reads[1]]}.dump(tag: 'ch_maskprimers_reads_R1') ch_maskprimers_reads_R2 = PRESTO_MASKPRIMERS_EXTRACT.out.reads.map{ reads -> [reads[0].id, reads[0], reads[1]]}.dump(tag: 'ch_maskprimers_reads_R2') ch_maskprimers_reads = ch_maskprimers_reads_R1.join(ch_maskprimers_reads_R2) .map{ it -> [it[1], it[2], it[4]] }.dump(tag: 'ch_maskprimers_reads_after_remerge') - ch_maskprimers_logs = PRESTO_MASKPRIMERS_ALIGN.out.logs + ch_maskprimers_logs = PRESTO_ALIGN_PRIMERS.out.logs ch_maskprimers_logs = ch_maskprimers_logs.mix(PRESTO_MASKPRIMERS_EXTRACT.out.logs) PRESTO_PAIRSEQ_ALIGN( ch_maskprimers_reads ) From 140cc54cf3d48fdc3af10bd2c8499e9260fc69d3 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Tue, 28 May 2024 16:05:59 -0400 Subject: [PATCH 09/31] fix testdata path param --- nextflow.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nextflow.config b/nextflow.config index cf42dd39..eab84849 100644 --- a/nextflow.config +++ b/nextflow.config @@ -14,6 +14,7 @@ params { mode = "fastq" miairr="$projectDir/assets/reveal/mapping_MiAIRR_BioSample_v1.3.1.tsv" index_file = false + pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' // ---------------------------- @@ -82,7 +83,7 @@ params { productive_only = true reassign = true reference_igblast = "${params.pipelines_testdata_base_path}airrflow/database-cache/igblast_base.zip" - reference_fasta = "${pipelines_testdata_base_path}airrflow/database-cache/imgtdb_base.zip" + reference_fasta = "${params.pipelines_testdata_base_path}airrflow/database-cache/imgtdb_base.zip" fetch_imgt = false save_databases = true isotype_column = 'c_call' @@ -150,7 +151,6 @@ params { hook_url = null help = false version = false - pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' // Config options config_profile_name = null From 69c626f7c1d5b480813ed9f54cef7395f0996389 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Tue, 28 May 2024 17:01:31 -0400 Subject: [PATCH 10/31] rm monochromelog warning --- nextflow.config | 1 + 1 file changed, 1 insertion(+) diff --git a/nextflow.config b/nextflow.config index eab84849..60a4edb4 100644 --- a/nextflow.config +++ b/nextflow.config @@ -15,6 +15,7 @@ params { miairr="$projectDir/assets/reveal/mapping_MiAIRR_BioSample_v1.3.1.tsv" index_file = false pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' + monochromeLogs = false // ---------------------------- From 967b3b7db5af58dfe296acb686db57821e2a5309 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Tue, 28 May 2024 18:10:42 -0400 Subject: [PATCH 11/31] update old container biopython --- CHANGELOG.md | 4 ++++ modules/local/merge_UMI.nf | 6 +++--- modules/local/rename_fastq.nf | 6 +++--- modules/local/rename_file.nf | 6 +++--- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99cc72b0..2689754a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### `Dependencies` +| Dependency | Old version | New version | +| ---------- | ----------- | ----------- | +| biopython | 1.71 | 1.81 | + ## [4.0] - 2024-04-22 Ascendio ### `Added` diff --git a/modules/local/merge_UMI.nf b/modules/local/merge_UMI.nf index a92ef4fe..a90957b1 100644 --- a/modules/local/merge_UMI.nf +++ b/modules/local/merge_UMI.nf @@ -3,10 +3,10 @@ process MERGE_UMI { tag "$meta.id" label 'process_low' - conda "conda-forge::python=3.8.0 conda-forge::biopython=1.74" + conda "conda-forge::biopython=1.81" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-adc9bb9edc31eb38b3c24786a83b7dfa530e2bea:47d6d7765d7537847ced7dac873190d164146022-0' : - 'biocontainers/mulled-v2-adc9bb9edc31eb38b3c24786a83b7dfa530e2bea:47d6d7765d7537847ced7dac873190d164146022-0' }" + 'https://depot.galaxyproject.org/singularity/biopython:1.81' : + 'biocontainers/biopython:1.81' }" input: tuple val(meta), path(R1), path(R2), path(I1) diff --git a/modules/local/rename_fastq.nf b/modules/local/rename_fastq.nf index 012f8f0b..0b8d655b 100644 --- a/modules/local/rename_fastq.nf +++ b/modules/local/rename_fastq.nf @@ -3,10 +3,10 @@ process RENAME_FASTQ { tag "$meta.id" label 'process_low' - conda "conda-forge::python=3.8.0 conda-forge::biopython=1.74" + conda "conda-forge::biopython=1.81" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-adc9bb9edc31eb38b3c24786a83b7dfa530e2bea:47d6d7765d7537847ced7dac873190d164146022-0' : - 'biocontainers/mulled-v2-adc9bb9edc31eb38b3c24786a83b7dfa530e2bea:47d6d7765d7537847ced7dac873190d164146022-0' }" + 'https://depot.galaxyproject.org/singularity/biopython:1.81' : + 'biocontainers/biopython:1.81' }" input: tuple val(meta), path(R1), path(R2) diff --git a/modules/local/rename_file.nf b/modules/local/rename_file.nf index 1988bc98..786d93e5 100644 --- a/modules/local/rename_file.nf +++ b/modules/local/rename_file.nf @@ -3,10 +3,10 @@ process RENAME_FILE { tag "$meta.id" label 'process_low' - conda "conda-forge::python=3.8.0 conda-forge::biopython=1.74" + conda "conda-forge::biopython=1.81" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/mulled-v2-adc9bb9edc31eb38b3c24786a83b7dfa530e2bea:47d6d7765d7537847ced7dac873190d164146022-0' : - 'biocontainers/mulled-v2-adc9bb9edc31eb38b3c24786a83b7dfa530e2bea:47d6d7765d7537847ced7dac873190d164146022-0' }" + 'https://depot.galaxyproject.org/singularity/biopython:1.81' : + 'biocontainers/biopython:1.81' }" input: tuple val(meta), path(file) From 094f254b59bc72dabdc2c29a09853f8ed0328f35 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Tue, 28 May 2024 18:20:27 -0400 Subject: [PATCH 12/31] revert monochrome logs as nf-core lint fails --- nextflow.config | 2 -- 1 file changed, 2 deletions(-) diff --git a/nextflow.config b/nextflow.config index 60a4edb4..3dfaec00 100644 --- a/nextflow.config +++ b/nextflow.config @@ -15,8 +15,6 @@ params { miairr="$projectDir/assets/reveal/mapping_MiAIRR_BioSample_v1.3.1.tsv" index_file = false pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' - monochromeLogs = false - // ---------------------------- // sequencing protocol options From 236e0f9a35cb9e3677badf6b6ef534028a43c190 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Thu, 30 May 2024 10:46:32 -0400 Subject: [PATCH 13/31] update container airrflow 4.1.0 --- modules/local/airrflow_report/airrflow_report.nf | 4 ++-- modules/local/enchantr/collapse_duplicates.nf | 4 ++-- modules/local/enchantr/define_clones.nf | 4 ++-- modules/local/enchantr/detect_contamination.nf | 4 ++-- modules/local/enchantr/dowser_lineages.nf | 4 ++-- modules/local/enchantr/find_threshold.nf | 4 ++-- modules/local/enchantr/remove_chimeric.nf | 4 ++-- modules/local/enchantr/report_file_size.nf | 4 ++-- modules/local/enchantr/single_cell_qc.nf | 4 ++-- modules/local/enchantr/validate_input.nf | 4 ++-- modules/local/reveal/add_meta_to_tab.nf | 4 ++-- modules/local/reveal/filter_junction_mod3.nf | 4 ++-- modules/local/reveal/filter_quality.nf | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/modules/local/airrflow_report/airrflow_report.nf b/modules/local/airrflow_report/airrflow_report.nf index b4422153..243d2c75 100644 --- a/modules/local/airrflow_report/airrflow_report.nf +++ b/modules/local/airrflow_report/airrflow_report.nf @@ -6,8 +6,8 @@ process AIRRFLOW_REPORT { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.0.0': - 'docker.io/immcantation/airrflow:4.0.0' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: tuple val(meta), path(tab) // sequence tsv table in AIRR format diff --git a/modules/local/enchantr/collapse_duplicates.nf b/modules/local/enchantr/collapse_duplicates.nf index 903824fe..839af7b1 100644 --- a/modules/local/enchantr/collapse_duplicates.nf +++ b/modules/local/enchantr/collapse_duplicates.nf @@ -8,8 +8,8 @@ process COLLAPSE_DUPLICATES { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.0.0': - 'docker.io/immcantation/airrflow:4.0.0' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: tuple val(meta), path(tabs) // tuple [val(meta), sequence tsv in AIRR format ] diff --git a/modules/local/enchantr/define_clones.nf b/modules/local/enchantr/define_clones.nf index 64b8e7df..7efbc49c 100644 --- a/modules/local/enchantr/define_clones.nf +++ b/modules/local/enchantr/define_clones.nf @@ -25,8 +25,8 @@ process DEFINE_CLONES { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.0.0': - 'docker.io/immcantation/airrflow:4.0.0' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: tuple val(meta), path(tabs) // meta, sequence tsv in AIRR format diff --git a/modules/local/enchantr/detect_contamination.nf b/modules/local/enchantr/detect_contamination.nf index aae3ef92..a7e5044c 100644 --- a/modules/local/enchantr/detect_contamination.nf +++ b/modules/local/enchantr/detect_contamination.nf @@ -9,8 +9,8 @@ process DETECT_CONTAMINATION { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.0.0': - 'docker.io/immcantation/airrflow:4.0.0' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: path(tabs) diff --git a/modules/local/enchantr/dowser_lineages.nf b/modules/local/enchantr/dowser_lineages.nf index 03444f19..53f16ae2 100644 --- a/modules/local/enchantr/dowser_lineages.nf +++ b/modules/local/enchantr/dowser_lineages.nf @@ -25,8 +25,8 @@ process DOWSER_LINEAGES { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.0.0': - 'docker.io/immcantation/airrflow:4.0.0' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: tuple val(meta), path(tabs) diff --git a/modules/local/enchantr/find_threshold.nf b/modules/local/enchantr/find_threshold.nf index 8632e081..8e741bea 100644 --- a/modules/local/enchantr/find_threshold.nf +++ b/modules/local/enchantr/find_threshold.nf @@ -25,8 +25,8 @@ process FIND_THRESHOLD { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.0.0': - 'docker.io/immcantation/airrflow:4.0.0' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: diff --git a/modules/local/enchantr/remove_chimeric.nf b/modules/local/enchantr/remove_chimeric.nf index 94805169..b8f9db1e 100644 --- a/modules/local/enchantr/remove_chimeric.nf +++ b/modules/local/enchantr/remove_chimeric.nf @@ -9,8 +9,8 @@ process REMOVE_CHIMERIC { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.0.0': - 'docker.io/immcantation/airrflow:4.0.0' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: diff --git a/modules/local/enchantr/report_file_size.nf b/modules/local/enchantr/report_file_size.nf index 4fc4c3fa..fe7070ed 100644 --- a/modules/local/enchantr/report_file_size.nf +++ b/modules/local/enchantr/report_file_size.nf @@ -10,8 +10,8 @@ process REPORT_FILE_SIZE { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.0.0': - 'docker.io/immcantation/airrflow:4.0.0' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: path logs diff --git a/modules/local/enchantr/single_cell_qc.nf b/modules/local/enchantr/single_cell_qc.nf index 49e97796..c330d1e3 100644 --- a/modules/local/enchantr/single_cell_qc.nf +++ b/modules/local/enchantr/single_cell_qc.nf @@ -24,8 +24,8 @@ process SINGLE_CELL_QC { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.0.0': - 'docker.io/immcantation/airrflow:4.0.0' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: path(tabs) diff --git a/modules/local/enchantr/validate_input.nf b/modules/local/enchantr/validate_input.nf index db8ab075..278184f3 100644 --- a/modules/local/enchantr/validate_input.nf +++ b/modules/local/enchantr/validate_input.nf @@ -10,8 +10,8 @@ process VALIDATE_INPUT { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.0.0': - 'docker.io/immcantation/airrflow:4.0.0' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: file samplesheet diff --git a/modules/local/reveal/add_meta_to_tab.nf b/modules/local/reveal/add_meta_to_tab.nf index 8413cebc..a46b9e3f 100644 --- a/modules/local/reveal/add_meta_to_tab.nf +++ b/modules/local/reveal/add_meta_to_tab.nf @@ -7,8 +7,8 @@ process ADD_META_TO_TAB { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.0.0': - 'docker.io/immcantation/airrflow:4.0.0' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" cache 'deep' // Without 'deep' this process would run when using -resume diff --git a/modules/local/reveal/filter_junction_mod3.nf b/modules/local/reveal/filter_junction_mod3.nf index f792aca2..ba4484b2 100644 --- a/modules/local/reveal/filter_junction_mod3.nf +++ b/modules/local/reveal/filter_junction_mod3.nf @@ -7,8 +7,8 @@ process FILTER_JUNCTION_MOD3 { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.0.0': - 'docker.io/immcantation/airrflow:4.0.0' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: tuple val(meta), path(tab) // sequence tsv in AIRR format diff --git a/modules/local/reveal/filter_quality.nf b/modules/local/reveal/filter_quality.nf index aa803279..a08472e7 100644 --- a/modules/local/reveal/filter_quality.nf +++ b/modules/local/reveal/filter_quality.nf @@ -7,8 +7,8 @@ process FILTER_QUALITY { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.0.0': - 'docker.io/immcantation/airrflow:4.0.0' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: tuple val(meta), path(tab) // sequence tsv in AIRR format From 0c727002abc7736096ac92ba9944b6aeca1f224c Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Thu, 30 May 2024 11:17:20 -0400 Subject: [PATCH 14/31] test the dev container --- modules/local/airrflow_report/airrflow_report.nf | 4 ++-- modules/local/enchantr/collapse_duplicates.nf | 4 ++-- modules/local/enchantr/define_clones.nf | 4 ++-- modules/local/enchantr/detect_contamination.nf | 4 ++-- modules/local/enchantr/dowser_lineages.nf | 4 ++-- modules/local/enchantr/find_threshold.nf | 4 ++-- modules/local/enchantr/remove_chimeric.nf | 4 ++-- modules/local/enchantr/report_file_size.nf | 4 ++-- modules/local/enchantr/single_cell_qc.nf | 4 ++-- modules/local/enchantr/validate_input.nf | 4 ++-- modules/local/reveal/add_meta_to_tab.nf | 4 ++-- modules/local/reveal/filter_junction_mod3.nf | 4 ++-- modules/local/reveal/filter_quality.nf | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/modules/local/airrflow_report/airrflow_report.nf b/modules/local/airrflow_report/airrflow_report.nf index 243d2c75..e42e175a 100644 --- a/modules/local/airrflow_report/airrflow_report.nf +++ b/modules/local/airrflow_report/airrflow_report.nf @@ -6,8 +6,8 @@ process AIRRFLOW_REPORT { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + 'docker.io/immcantation/airrflow:dev': + 'docker.io/immcantation/airrflow:dev' }" input: tuple val(meta), path(tab) // sequence tsv table in AIRR format diff --git a/modules/local/enchantr/collapse_duplicates.nf b/modules/local/enchantr/collapse_duplicates.nf index 839af7b1..dd977d30 100644 --- a/modules/local/enchantr/collapse_duplicates.nf +++ b/modules/local/enchantr/collapse_duplicates.nf @@ -8,8 +8,8 @@ process COLLAPSE_DUPLICATES { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + 'docker.io/immcantation/airrflow:dev': + 'docker.io/immcantation/airrflow:dev' }" input: tuple val(meta), path(tabs) // tuple [val(meta), sequence tsv in AIRR format ] diff --git a/modules/local/enchantr/define_clones.nf b/modules/local/enchantr/define_clones.nf index 7efbc49c..09e93d30 100644 --- a/modules/local/enchantr/define_clones.nf +++ b/modules/local/enchantr/define_clones.nf @@ -25,8 +25,8 @@ process DEFINE_CLONES { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + 'docker.io/immcantation/airrflow:dev': + 'docker.io/immcantation/airrflow:dev' }" input: tuple val(meta), path(tabs) // meta, sequence tsv in AIRR format diff --git a/modules/local/enchantr/detect_contamination.nf b/modules/local/enchantr/detect_contamination.nf index a7e5044c..33ad15cf 100644 --- a/modules/local/enchantr/detect_contamination.nf +++ b/modules/local/enchantr/detect_contamination.nf @@ -9,8 +9,8 @@ process DETECT_CONTAMINATION { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + 'docker.io/immcantation/airrflow:dev': + 'docker.io/immcantation/airrflow:dev' }" input: path(tabs) diff --git a/modules/local/enchantr/dowser_lineages.nf b/modules/local/enchantr/dowser_lineages.nf index 53f16ae2..4e40892e 100644 --- a/modules/local/enchantr/dowser_lineages.nf +++ b/modules/local/enchantr/dowser_lineages.nf @@ -25,8 +25,8 @@ process DOWSER_LINEAGES { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + 'docker.io/immcantation/airrflow:dev': + 'docker.io/immcantation/airrflow:dev' }" input: tuple val(meta), path(tabs) diff --git a/modules/local/enchantr/find_threshold.nf b/modules/local/enchantr/find_threshold.nf index 8e741bea..24339ba9 100644 --- a/modules/local/enchantr/find_threshold.nf +++ b/modules/local/enchantr/find_threshold.nf @@ -25,8 +25,8 @@ process FIND_THRESHOLD { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + 'docker.io/immcantation/airrflow:dev': + 'docker.io/immcantation/airrflow:dev' }" input: diff --git a/modules/local/enchantr/remove_chimeric.nf b/modules/local/enchantr/remove_chimeric.nf index b8f9db1e..6324f468 100644 --- a/modules/local/enchantr/remove_chimeric.nf +++ b/modules/local/enchantr/remove_chimeric.nf @@ -9,8 +9,8 @@ process REMOVE_CHIMERIC { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + 'docker.io/immcantation/airrflow:dev': + 'docker.io/immcantation/airrflow:dev' }" input: diff --git a/modules/local/enchantr/report_file_size.nf b/modules/local/enchantr/report_file_size.nf index fe7070ed..8b68a1f8 100644 --- a/modules/local/enchantr/report_file_size.nf +++ b/modules/local/enchantr/report_file_size.nf @@ -10,8 +10,8 @@ process REPORT_FILE_SIZE { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + 'docker.io/immcantation/airrflow:dev': + 'docker.io/immcantation/airrflow:dev' }" input: path logs diff --git a/modules/local/enchantr/single_cell_qc.nf b/modules/local/enchantr/single_cell_qc.nf index c330d1e3..46bbfbac 100644 --- a/modules/local/enchantr/single_cell_qc.nf +++ b/modules/local/enchantr/single_cell_qc.nf @@ -24,8 +24,8 @@ process SINGLE_CELL_QC { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + 'docker.io/immcantation/airrflow:dev': + 'docker.io/immcantation/airrflow:dev' }" input: path(tabs) diff --git a/modules/local/enchantr/validate_input.nf b/modules/local/enchantr/validate_input.nf index 278184f3..c652ede2 100644 --- a/modules/local/enchantr/validate_input.nf +++ b/modules/local/enchantr/validate_input.nf @@ -10,8 +10,8 @@ process VALIDATE_INPUT { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + 'docker.io/immcantation/airrflow:dev': + 'docker.io/immcantation/airrflow:dev' }" input: file samplesheet diff --git a/modules/local/reveal/add_meta_to_tab.nf b/modules/local/reveal/add_meta_to_tab.nf index a46b9e3f..6434bfb0 100644 --- a/modules/local/reveal/add_meta_to_tab.nf +++ b/modules/local/reveal/add_meta_to_tab.nf @@ -7,8 +7,8 @@ process ADD_META_TO_TAB { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + 'docker.io/immcantation/airrflow:dev': + 'docker.io/immcantation/airrflow:dev' }" cache 'deep' // Without 'deep' this process would run when using -resume diff --git a/modules/local/reveal/filter_junction_mod3.nf b/modules/local/reveal/filter_junction_mod3.nf index ba4484b2..c409cb82 100644 --- a/modules/local/reveal/filter_junction_mod3.nf +++ b/modules/local/reveal/filter_junction_mod3.nf @@ -7,8 +7,8 @@ process FILTER_JUNCTION_MOD3 { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + 'docker.io/immcantation/airrflow:dev': + 'docker.io/immcantation/airrflow:dev' }" input: tuple val(meta), path(tab) // sequence tsv in AIRR format diff --git a/modules/local/reveal/filter_quality.nf b/modules/local/reveal/filter_quality.nf index a08472e7..897bad83 100644 --- a/modules/local/reveal/filter_quality.nf +++ b/modules/local/reveal/filter_quality.nf @@ -7,8 +7,8 @@ process FILTER_QUALITY { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + 'docker.io/immcantation/airrflow:dev': + 'docker.io/immcantation/airrflow:dev' }" input: tuple val(meta), path(tab) // sequence tsv in AIRR format From 7101a6d92d5db8d34e2b36a3b2dcbc489c129aef Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Thu, 30 May 2024 13:54:45 -0400 Subject: [PATCH 15/31] update container --- modules/local/airrflow_report/airrflow_report.nf | 4 ++-- modules/local/enchantr/collapse_duplicates.nf | 4 ++-- modules/local/enchantr/define_clones.nf | 4 ++-- modules/local/enchantr/detect_contamination.nf | 4 ++-- modules/local/enchantr/dowser_lineages.nf | 4 ++-- modules/local/enchantr/find_threshold.nf | 4 ++-- modules/local/enchantr/remove_chimeric.nf | 4 ++-- modules/local/enchantr/report_file_size.nf | 4 ++-- modules/local/enchantr/single_cell_qc.nf | 4 ++-- modules/local/enchantr/validate_input.nf | 4 ++-- modules/local/reveal/add_meta_to_tab.nf | 4 ++-- modules/local/reveal/filter_junction_mod3.nf | 4 ++-- modules/local/reveal/filter_quality.nf | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/modules/local/airrflow_report/airrflow_report.nf b/modules/local/airrflow_report/airrflow_report.nf index e42e175a..243d2c75 100644 --- a/modules/local/airrflow_report/airrflow_report.nf +++ b/modules/local/airrflow_report/airrflow_report.nf @@ -6,8 +6,8 @@ process AIRRFLOW_REPORT { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:dev': - 'docker.io/immcantation/airrflow:dev' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: tuple val(meta), path(tab) // sequence tsv table in AIRR format diff --git a/modules/local/enchantr/collapse_duplicates.nf b/modules/local/enchantr/collapse_duplicates.nf index dd977d30..839af7b1 100644 --- a/modules/local/enchantr/collapse_duplicates.nf +++ b/modules/local/enchantr/collapse_duplicates.nf @@ -8,8 +8,8 @@ process COLLAPSE_DUPLICATES { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:dev': - 'docker.io/immcantation/airrflow:dev' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: tuple val(meta), path(tabs) // tuple [val(meta), sequence tsv in AIRR format ] diff --git a/modules/local/enchantr/define_clones.nf b/modules/local/enchantr/define_clones.nf index 09e93d30..7efbc49c 100644 --- a/modules/local/enchantr/define_clones.nf +++ b/modules/local/enchantr/define_clones.nf @@ -25,8 +25,8 @@ process DEFINE_CLONES { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:dev': - 'docker.io/immcantation/airrflow:dev' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: tuple val(meta), path(tabs) // meta, sequence tsv in AIRR format diff --git a/modules/local/enchantr/detect_contamination.nf b/modules/local/enchantr/detect_contamination.nf index 33ad15cf..a7e5044c 100644 --- a/modules/local/enchantr/detect_contamination.nf +++ b/modules/local/enchantr/detect_contamination.nf @@ -9,8 +9,8 @@ process DETECT_CONTAMINATION { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:dev': - 'docker.io/immcantation/airrflow:dev' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: path(tabs) diff --git a/modules/local/enchantr/dowser_lineages.nf b/modules/local/enchantr/dowser_lineages.nf index 4e40892e..53f16ae2 100644 --- a/modules/local/enchantr/dowser_lineages.nf +++ b/modules/local/enchantr/dowser_lineages.nf @@ -25,8 +25,8 @@ process DOWSER_LINEAGES { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:dev': - 'docker.io/immcantation/airrflow:dev' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: tuple val(meta), path(tabs) diff --git a/modules/local/enchantr/find_threshold.nf b/modules/local/enchantr/find_threshold.nf index 24339ba9..8e741bea 100644 --- a/modules/local/enchantr/find_threshold.nf +++ b/modules/local/enchantr/find_threshold.nf @@ -25,8 +25,8 @@ process FIND_THRESHOLD { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:dev': - 'docker.io/immcantation/airrflow:dev' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: diff --git a/modules/local/enchantr/remove_chimeric.nf b/modules/local/enchantr/remove_chimeric.nf index 6324f468..b8f9db1e 100644 --- a/modules/local/enchantr/remove_chimeric.nf +++ b/modules/local/enchantr/remove_chimeric.nf @@ -9,8 +9,8 @@ process REMOVE_CHIMERIC { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:dev': - 'docker.io/immcantation/airrflow:dev' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: diff --git a/modules/local/enchantr/report_file_size.nf b/modules/local/enchantr/report_file_size.nf index 8b68a1f8..fe7070ed 100644 --- a/modules/local/enchantr/report_file_size.nf +++ b/modules/local/enchantr/report_file_size.nf @@ -10,8 +10,8 @@ process REPORT_FILE_SIZE { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:dev': - 'docker.io/immcantation/airrflow:dev' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: path logs diff --git a/modules/local/enchantr/single_cell_qc.nf b/modules/local/enchantr/single_cell_qc.nf index 46bbfbac..c330d1e3 100644 --- a/modules/local/enchantr/single_cell_qc.nf +++ b/modules/local/enchantr/single_cell_qc.nf @@ -24,8 +24,8 @@ process SINGLE_CELL_QC { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:dev': - 'docker.io/immcantation/airrflow:dev' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: path(tabs) diff --git a/modules/local/enchantr/validate_input.nf b/modules/local/enchantr/validate_input.nf index c652ede2..278184f3 100644 --- a/modules/local/enchantr/validate_input.nf +++ b/modules/local/enchantr/validate_input.nf @@ -10,8 +10,8 @@ process VALIDATE_INPUT { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:dev': - 'docker.io/immcantation/airrflow:dev' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: file samplesheet diff --git a/modules/local/reveal/add_meta_to_tab.nf b/modules/local/reveal/add_meta_to_tab.nf index 6434bfb0..a46b9e3f 100644 --- a/modules/local/reveal/add_meta_to_tab.nf +++ b/modules/local/reveal/add_meta_to_tab.nf @@ -7,8 +7,8 @@ process ADD_META_TO_TAB { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:dev': - 'docker.io/immcantation/airrflow:dev' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" cache 'deep' // Without 'deep' this process would run when using -resume diff --git a/modules/local/reveal/filter_junction_mod3.nf b/modules/local/reveal/filter_junction_mod3.nf index c409cb82..ba4484b2 100644 --- a/modules/local/reveal/filter_junction_mod3.nf +++ b/modules/local/reveal/filter_junction_mod3.nf @@ -7,8 +7,8 @@ process FILTER_JUNCTION_MOD3 { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:dev': - 'docker.io/immcantation/airrflow:dev' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: tuple val(meta), path(tab) // sequence tsv in AIRR format diff --git a/modules/local/reveal/filter_quality.nf b/modules/local/reveal/filter_quality.nf index 897bad83..a08472e7 100644 --- a/modules/local/reveal/filter_quality.nf +++ b/modules/local/reveal/filter_quality.nf @@ -7,8 +7,8 @@ process FILTER_QUALITY { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:dev': - 'docker.io/immcantation/airrflow:dev' }" + 'docker.io/immcantation/airrflow:4.1.0': + 'docker.io/immcantation/airrflow:4.1.0' }" input: tuple val(meta), path(tab) // sequence tsv in AIRR format From 730420862be1fd6c4959bdb179a823393ac307f5 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Thu, 30 May 2024 15:05:40 -0400 Subject: [PATCH 16/31] update changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2689754a..a7e654f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. | Dependency | Old version | New version | | ---------- | ----------- | ----------- | | biopython | 1.71 | 1.81 | +| enchantr | 0.1.15 | 0.1.16 | +| presto | 0.7.1 | 0.7.2 | +| scoper | 1.2.1 | 1.3.0 | +| dowser | 1.2.0 | 2.1.0 | +| igphyml | 1.1.5 | 2.0.0 | + ## [4.0] - 2024-04-22 Ascendio From d933c48bbeeb3833ddecd04560c8e3c08e36a3de Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Thu, 30 May 2024 15:05:48 -0400 Subject: [PATCH 17/31] improve protocol logs --- docs/usage.md | 139 ++++++++++++++++++-------------------------------- 1 file changed, 49 insertions(+), 90 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index cef9b38c..8e464a86 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -14,28 +14,27 @@ The nf-core/airrflow pipeline allows processing BCR and TCR targeted sequencing ### Quickstart -A typical command for running the pipeline for **bulk raw fastq files** is: +A typical command for running the pipeline for **bulk raw fastq files** using available pre-set protocol profiles is shown below. The full list of supported profiles can be found in the section [Supported protocol profiles](#supported-protocol-profiles). ```bash nextflow run nf-core/airrflow \ --profile \ ---mode fastq \ +-profile nebnext_umi_bcr,docker \ --input input_samplesheet.tsv \ ---library_generation_method specific_pcr_umi \ ---cprimers CPrimers.fasta \ ---vprimers VPrimers.fasta \ ---umi_length 12 \ ---umi_position R1 \ --outdir results ``` -You can optionally set a protocol profile if you're running the pipeline with data from one of the supported profiles. The full list of supported profiles can be found in the section [Supported protocol profiles](#supported-protocol-profiles). An example command running the NEBNext UMI protocol profile with docker containers is: +It is also possible to process custom sequencing protocols with custom primers by manually specifying the primers, UMI length (if available) and position: ```bash nextflow run nf-core/airrflow \ --profile nebnext_umi,docker \ +-profile \ --mode fastq \ --input input_samplesheet.tsv \ +--library_generation_method specific_pcr_umi \ +--cprimers CPrimers.fasta \ +--vprimers VPrimers.fasta \ +--umi_length 12 \ +--umi_position R1 \ --outdir results ``` @@ -230,18 +229,30 @@ This profile executes the commands based on the pRESTO pre-set pipeline [presto- - Align and annotate the internal C Region (for the BCR specific protocol) for a more specific isotype annotation. - Remove duplicate sequences and filter to sequences with at least 2 supporting sources. -Please note that the default primer sequences and internal CRegion sequences are for human. If you wish to run this protocol on mouse or other species, please provide the alternative primers: +Please note that the default primer sequences and internal CRegion sequences are for human. If you wish to run this protocol on mouse or other species, please provide the alternative primers. Here an example using the mouse IG primers on the Immcantation Bitbucket repository: + +```bash +nextflow run nf-core/airrflow -r \ +-profile nebnext_umi_bcr,docker \ +--input input_samplesheet.tsv \ +--cprimers https://bitbucket.org/kleinstein/immcantation/raw/354f49228a43b4c2858d67fb09886126b314e317/protocols/AbSeq/AbSeq_R1_Mouse_IG_Primers.fasta \ +--internal_cregion_sequences https://bitbucket.org/kleinstein/immcantation/raw/354f49228a43b4c2858d67fb09886126b314e317/protocols/AbSeq/AbSeq_Mouse_IG_InternalCRegion.fasta \ +--outdir results +``` + +And similarly for TCR libraries: ```bash nextflow run nf-core/airrflow -r \ -profile nebnext_umi_bcr,docker \ --input input_samplesheet.tsv \ ---cprimers \ ---internal_cregion_sequences \ +--cprimers https://bitbucket.org/kleinstein/immcantation/raw/354f49228a43b4c2858d67fb09886126b314e317/protocols/AbSeq/AbSeq_R1_Mouse_TR_Primers.fasta \ +--internal_cregion_sequences https://bitbucket.org/kleinstein/immcantation/raw/354f49228a43b4c2858d67fb09886126b314e317/protocols/AbSeq/AbSeq_Mouse_TR_InternalCRegion.fasta \ --outdir results ``` -### Clontech / Takara SMARTer Human BCR Profiling kit + +### Clontech / Takara SMARTer Human BCR/TCR Profiling kit - [TaKaRa SMARTer Human BCR kit](https://www.takarabio.com/products/next-generation-sequencing/immune-profiling/human-repertoire/human-bcr-profiling-kit-for-illumina-sequencing) @@ -266,13 +277,23 @@ This profile executes the sequence assembly commands based on the pRESTO pre-set After the sequence assembly steps, the remaining steps are common for all protocols. -Please note that the default primer sequences and internal CRegion sequences are for human. If you wish to run this protocol on mouse or other species, please provide the alternative primer sequences: +Please note that the default primer sequences and internal CRegion sequences are for human. If you wish to run this protocol on mouse or other species, please provide the alternative primer sequences. Here an example using the mouse IG primers on the Immcantation Bitbucket repository: ```bash nextflow run nf-core/airrflow -r \ -profile clontech_umi_bcr,docker \ --input input_samplesheet.tsv \ ---cprimers \ +--cprimers https://bitbucket.org/kleinstein/immcantation/raw/c98269b194e9c6262fe3b098be3600ba7f64b85c/protocols/Universal/Mouse_IG_CRegion_RC.fasta \ +--outdir results +``` + +And for TCR data: + +```bash +nextflow run nf-core/airrflow -r \ +-profile clontech_umi_tcr,docker \ +--input input_samplesheet.tsv \ +--cprimers https://bitbucket.org/kleinstein/immcantation/raw/c98269b194e9c6262fe3b098be3600ba7f64b85c/protocols/Universal/Mouse_TR_CRegion_RC.fasta \ --outdir results ``` @@ -281,18 +302,18 @@ nextflow run nf-core/airrflow -r \ When processing bulk sequencing data departing from raw `fastq` reads, several sequencing protocols are supported which can be provided with the parameter `--library_generation_method`. The following table matches the library generation methods as described in the [AIRR metadata annotation guidelines](https://docs.airr-community.org/en/stable/miairr/metadata_guidelines.html#library-generation-method) to the value that can be provided to the `--library_generation_method` parameter. -| Library generation methods (AIRR) | Description | Name in pipeline | Commercial protocols | -| --------------------------------- | ------------------------------------------------------------------------------------------ | ---------------- | ----------------------------------------- | -| RT(RHP)+PCR | RT-PCR using random hexamer primers | Not supported | | -| RT(oligo-dT)+PCR | RT-PCR using oligo-dT primers | Not supported | | -| RT(oligo-dT)+TS+PCR | 5’-RACE PCR (i.e. RT is followed by a template switch (TS) step) using oligo-dT primers | dt_5p_race | | -| RT(oligo-dT)+TS(UMI)+PCR | 5’-RACE PCR using oligo-dT primers and template switch primers containing UMI | dt_5p_race_umi | TAKARA SMARTer TCR v2, TAKARA SMARTer BCR | -| RT(specific)+PCR | RT-PCR using transcript-specific primers | specific_pcr | | -| RT(specific)+TS+PCR | 5’-RACE PCR using transcript- specific primers | Not supported | | -| RT(specific)+TS(UMI)+PCR | 5’-RACE PCR using transcript- specific primers and template switch primers containing UMIs | Not supported | | -| RT(specific+UMI)+PCR | RT-PCR using transcript-specific primers containing UMIs | specific_pcr_umi | | -| RT(specific+UMI)+TS+PCR | 5’-RACE PCR using transcript- specific primers containing UMIs | Not supported | | -| RT(specific)+TS | RT-based generation of dsDNA without subsequent PCR. This is used by RNA-seq kits. | Not supported | | +| Library generation methods (AIRR) | Description | Name in pipeline | +| --------------------------------- | ------------------------------------------------------------------------------------------ | ---------------- | +| RT(RHP)+PCR | RT-PCR using random hexamer primers | Not supported | +| RT(oligo-dT)+PCR | RT-PCR using oligo-dT primers | Not supported | +| RT(oligo-dT)+TS+PCR | 5’-RACE PCR (i.e. RT is followed by a template switch (TS) step) using oligo-dT primers | dt_5p_race | +| RT(oligo-dT)+TS(UMI)+PCR | 5’-RACE PCR using oligo-dT primers and template switch primers containing UMI | dt_5p_race_umi | +| RT(specific)+PCR | RT-PCR using transcript-specific primers | specific_pcr | +| RT(specific)+TS+PCR | 5’-RACE PCR using transcript- specific primers | Not supported | +| RT(specific)+TS(UMI)+PCR | 5’-RACE PCR using transcript- specific primers and template switch primers containing UMIs | Not supported | +| RT(specific+UMI)+PCR | RT-PCR using transcript-specific primers containing UMIs | specific_pcr_umi | +| RT(specific+UMI)+TS+PCR | 5’-RACE PCR using transcript- specific primers containing UMIs | Not supported | +| RT(specific)+TS | RT-based generation of dsDNA without subsequent PCR. This is used by RNA-seq kits. | Not supported | ### Multiplex specific PCR (with or without UMI) @@ -405,68 +426,6 @@ nextflow run nf-core/airrflow -profile docker \ --outdir ./results ``` -### dT-Oligo RT and 5'RACE PCR - -This sequencing type requires setting `--library_generation_method race_5p_umi` or `--library_generation_method race_5p_umi` if UMIs are not being employed, and providing sequences for the C-region primers as well as the linker or template switch oligo sequences with the parameter `--race_linker`. Examples are provided below to run airrflow to process amplicons generated with the TAKARA 5'RACE SMARTer Human BCR and TCR protocols (library structure schema shown below). - -#### Takara Bio SMARTer Human BCR - -The read configuration when sequencing with the TAKARA Bio SMARTer Human BCR protocol is the following: - -![nf-core/airrflow](images/TAKARA_RACE_BCR.png) - -```bash -nextflow run nf-core/airrflow -profile docker \ ---input samplesheet.tsv \ ---library_generation_method dt_5p_race_umi \ ---cprimers CPrimers.fasta \ ---race_linker linker.fasta \ ---umi_length 12 \ ---umi_position R2 \ ---cprimer_start 7 \ ---cprimer_position R1 \ ---outdir ./results -``` - -#### Takara Bio SMARTer Human TCR v2 - -The read configuration when sequencing with the Takara Bio SMARTer Human TCR v2 protocol is the following: - -![nf-core/airrflow](images/TAKARA_RACE_TCR.png) - -```bash -nextflow run nf-core/airrflow -profile docker \ ---input samplesheet.tsv \ ---library_generation_method dt_5p_race_umi \ ---cprimers CPrimers.fasta \ ---race_linker linker.fasta \ ---umi_length 12 \ ---umi_position R2 \ ---cprimer_start 5 \ ---cprimer_position R1 \ ---outdir ./results -``` - -For this protocol, the takara linkers are: - -```txt ->takara-linker -GTAC -``` - -And the C-region primers are: - -```txt ->TRAC -CAGGGTCAGGGTTCTGGATATN ->TRBC -GGAACACSTTKTTCAGGTCCTC ->TRDC -GTTTGGTATGAGGCTGACTTCN ->TRGC -CATCTGCATCAAGTTGTTTATC -``` - ## UMI barcode handling Unique Molecular Identifiers (UMIs) enable the quantification of BCR or TCR abundance in the original sample by allowing to distinguish PCR duplicates from original sample duplicates. From cf555905451e74b61c88e929048a55f02c6497cc Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Thu, 30 May 2024 15:08:53 -0400 Subject: [PATCH 18/31] presto wasnt updated --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7e654f8..a729b1b2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,7 +19,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. | ---------- | ----------- | ----------- | | biopython | 1.71 | 1.81 | | enchantr | 0.1.15 | 0.1.16 | -| presto | 0.7.1 | 0.7.2 | | scoper | 1.2.1 | 1.3.0 | | dowser | 1.2.0 | 2.1.0 | | igphyml | 1.1.5 | 2.0.0 | From fa5664eab49ff9b713948befbf40d8ec0827f5c1 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Thu, 30 May 2024 15:11:35 -0400 Subject: [PATCH 19/31] fix linting --- CHANGELOG.md | 1 - docs/usage.md | 1 - 2 files changed, 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a729b1b2..a9cf4c5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,6 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. | dowser | 1.2.0 | 2.1.0 | | igphyml | 1.1.5 | 2.0.0 | - ## [4.0] - 2024-04-22 Ascendio ### `Added` diff --git a/docs/usage.md b/docs/usage.md index 8e464a86..b727e65c 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -251,7 +251,6 @@ nextflow run nf-core/airrflow -r \ --outdir results ``` - ### Clontech / Takara SMARTer Human BCR/TCR Profiling kit - [TaKaRa SMARTer Human BCR kit](https://www.takarabio.com/products/next-generation-sequencing/immune-profiling/human-repertoire/human-bcr-profiling-kit-for-illumina-sequencing) From 032a56d2052b3920b48ad21170ffa6f8f3497c07 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Thu, 30 May 2024 15:21:46 -0400 Subject: [PATCH 20/31] rm irrelevant param --- docs/usage.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/usage.md b/docs/usage.md index b727e65c..83759ef9 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -92,7 +92,6 @@ with `params.yaml` containing: ```yaml input: './samplesheet.csv' outdir: './results/' -genome: 'GRCh37' <...> ``` From dec79a99b57f5563abd6543d007861b0ecf62171 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Fri, 31 May 2024 15:27:09 -0400 Subject: [PATCH 21/31] Update docs/usage.md Co-authored-by: Jose Espinosa-Carrasco --- docs/usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage.md b/docs/usage.md index 83759ef9..53211097 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -228,7 +228,7 @@ This profile executes the commands based on the pRESTO pre-set pipeline [presto- - Align and annotate the internal C Region (for the BCR specific protocol) for a more specific isotype annotation. - Remove duplicate sequences and filter to sequences with at least 2 supporting sources. -Please note that the default primer sequences and internal CRegion sequences are for human. If you wish to run this protocol on mouse or other species, please provide the alternative primers. Here an example using the mouse IG primers on the Immcantation Bitbucket repository: +Please note that the default primer sequences and internal CRegion sequences are for human. If you wish to run this protocol on mouse or other species, please provide the alternative primers. Here is an example using the mouse IG primers from the Immcantation Bitbucket repository: ```bash nextflow run nf-core/airrflow -r \ From 39d52702aa7be35350233722875f45aa545f918c Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Fri, 31 May 2024 15:30:25 -0400 Subject: [PATCH 22/31] add tutorial --- assets/tutorial/airrflow.sh | 8 ++++++++ assets/tutorial/samplesheet.tsv | 6 ++++++ 2 files changed, 14 insertions(+) create mode 100644 assets/tutorial/airrflow.sh create mode 100644 assets/tutorial/samplesheet.tsv diff --git a/assets/tutorial/airrflow.sh b/assets/tutorial/airrflow.sh new file mode 100644 index 00000000..5f243b61 --- /dev/null +++ b/assets/tutorial/airrflow.sh @@ -0,0 +1,8 @@ +nextflow run nf-core/airrflow -r 4.1.0 \ +-profile docker \ +--mode assembled \ +--input samplesheet.tsv \ +--outdir results \ +-w work \ +--max_cpus 12 \ +--max_memory 12.GB diff --git a/assets/tutorial/samplesheet.tsv b/assets/tutorial/samplesheet.tsv new file mode 100644 index 00000000..69ca3c89 --- /dev/null +++ b/assets/tutorial/samplesheet.tsv @@ -0,0 +1,6 @@ +filename species subject_id sample_id day tissue sex age biomaterial_provider pcr_target_locus single_cell +https://zenodo.org/records/11373741/files/AIRR_subject1_FNA_d0_1_Y1.tsv human S1 S1_d0 d0 PMBC NA NA NA IG TRUE +https://zenodo.org/records/11373741/files/AIRR_subject1_FNA_d12_3_Y1.tsv human S1 S1_d12 d12 PMBC NA NA NA IG TRUE +https://zenodo.org/records/11373741/files/AIRR_subject2_FNA_d0_1_Y1.tsv human S2 S2_d0 d0 PMBC NA NA NA IG TRUE +https://zenodo.org/records/11373741/files/AIRR_subject2_FNA_d12_2_Y1.tsv human S2 S2_d12 d12 PMBC NA NA NA IG TRUE + From efda2c41aeeeef5238e7b8319b134c432949ad78 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Fri, 31 May 2024 15:30:34 -0400 Subject: [PATCH 23/31] simplify container --- modules/local/airrflow_report/airrflow_report.nf | 4 +--- modules/local/enchantr/collapse_duplicates.nf | 4 +--- modules/local/enchantr/define_clones.nf | 4 +--- modules/local/enchantr/detect_contamination.nf | 4 +--- modules/local/enchantr/dowser_lineages.nf | 4 +--- modules/local/enchantr/find_threshold.nf | 4 +--- modules/local/enchantr/remove_chimeric.nf | 4 +--- modules/local/enchantr/report_file_size.nf | 4 +--- modules/local/enchantr/single_cell_qc.nf | 4 +--- modules/local/enchantr/validate_input.nf | 4 +--- modules/local/reveal/add_meta_to_tab.nf | 4 +--- modules/local/reveal/filter_junction_mod3.nf | 4 +--- modules/local/reveal/filter_quality.nf | 4 +--- 13 files changed, 13 insertions(+), 39 deletions(-) diff --git a/modules/local/airrflow_report/airrflow_report.nf b/modules/local/airrflow_report/airrflow_report.nf index 243d2c75..990e492e 100644 --- a/modules/local/airrflow_report/airrflow_report.nf +++ b/modules/local/airrflow_report/airrflow_report.nf @@ -5,9 +5,7 @@ process AIRRFLOW_REPORT { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + container "docker.io/immcantation/airrflow:4.1.0" input: tuple val(meta), path(tab) // sequence tsv table in AIRR format diff --git a/modules/local/enchantr/collapse_duplicates.nf b/modules/local/enchantr/collapse_duplicates.nf index 839af7b1..618491ab 100644 --- a/modules/local/enchantr/collapse_duplicates.nf +++ b/modules/local/enchantr/collapse_duplicates.nf @@ -7,9 +7,7 @@ process COLLAPSE_DUPLICATES { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + container "docker.io/immcantation/airrflow:4.1.0" input: tuple val(meta), path(tabs) // tuple [val(meta), sequence tsv in AIRR format ] diff --git a/modules/local/enchantr/define_clones.nf b/modules/local/enchantr/define_clones.nf index 7efbc49c..ae71b900 100644 --- a/modules/local/enchantr/define_clones.nf +++ b/modules/local/enchantr/define_clones.nf @@ -24,9 +24,7 @@ process DEFINE_CLONES { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + container "docker.io/immcantation/airrflow:4.1.0" input: tuple val(meta), path(tabs) // meta, sequence tsv in AIRR format diff --git a/modules/local/enchantr/detect_contamination.nf b/modules/local/enchantr/detect_contamination.nf index a7e5044c..cec4deca 100644 --- a/modules/local/enchantr/detect_contamination.nf +++ b/modules/local/enchantr/detect_contamination.nf @@ -8,9 +8,7 @@ process DETECT_CONTAMINATION { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + container "docker.io/immcantation/airrflow:4.1.0" input: path(tabs) diff --git a/modules/local/enchantr/dowser_lineages.nf b/modules/local/enchantr/dowser_lineages.nf index 53f16ae2..0559c496 100644 --- a/modules/local/enchantr/dowser_lineages.nf +++ b/modules/local/enchantr/dowser_lineages.nf @@ -24,9 +24,7 @@ process DOWSER_LINEAGES { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + container "docker.io/immcantation/airrflow:4.1.0" input: tuple val(meta), path(tabs) diff --git a/modules/local/enchantr/find_threshold.nf b/modules/local/enchantr/find_threshold.nf index 8e741bea..4a9b0ab0 100644 --- a/modules/local/enchantr/find_threshold.nf +++ b/modules/local/enchantr/find_threshold.nf @@ -24,9 +24,7 @@ process FIND_THRESHOLD { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + container "docker.io/immcantation/airrflow:4.1.0" input: diff --git a/modules/local/enchantr/remove_chimeric.nf b/modules/local/enchantr/remove_chimeric.nf index b8f9db1e..2df7e60c 100644 --- a/modules/local/enchantr/remove_chimeric.nf +++ b/modules/local/enchantr/remove_chimeric.nf @@ -8,9 +8,7 @@ process REMOVE_CHIMERIC { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + container "docker.io/immcantation/airrflow:4.1.0" input: diff --git a/modules/local/enchantr/report_file_size.nf b/modules/local/enchantr/report_file_size.nf index fe7070ed..093a9e61 100644 --- a/modules/local/enchantr/report_file_size.nf +++ b/modules/local/enchantr/report_file_size.nf @@ -9,9 +9,7 @@ process REPORT_FILE_SIZE { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + container "docker.io/immcantation/airrflow:4.1.0" input: path logs diff --git a/modules/local/enchantr/single_cell_qc.nf b/modules/local/enchantr/single_cell_qc.nf index c330d1e3..4170e51b 100644 --- a/modules/local/enchantr/single_cell_qc.nf +++ b/modules/local/enchantr/single_cell_qc.nf @@ -23,9 +23,7 @@ process SINGLE_CELL_QC { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + container "docker.io/immcantation/airrflow:4.1.0" input: path(tabs) diff --git a/modules/local/enchantr/validate_input.nf b/modules/local/enchantr/validate_input.nf index 278184f3..6ec12543 100644 --- a/modules/local/enchantr/validate_input.nf +++ b/modules/local/enchantr/validate_input.nf @@ -9,9 +9,7 @@ process VALIDATE_INPUT { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + container "docker.io/immcantation/airrflow:4.1.0" input: file samplesheet diff --git a/modules/local/reveal/add_meta_to_tab.nf b/modules/local/reveal/add_meta_to_tab.nf index a46b9e3f..1c50d60e 100644 --- a/modules/local/reveal/add_meta_to_tab.nf +++ b/modules/local/reveal/add_meta_to_tab.nf @@ -6,9 +6,7 @@ process ADD_META_TO_TAB { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + container "docker.io/immcantation/airrflow:4.1.0" cache 'deep' // Without 'deep' this process would run when using -resume diff --git a/modules/local/reveal/filter_junction_mod3.nf b/modules/local/reveal/filter_junction_mod3.nf index ba4484b2..92ef4833 100644 --- a/modules/local/reveal/filter_junction_mod3.nf +++ b/modules/local/reveal/filter_junction_mod3.nf @@ -6,9 +6,7 @@ process FILTER_JUNCTION_MOD3 { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + container "docker.io/immcantation/airrflow:4.1.0" input: tuple val(meta), path(tab) // sequence tsv in AIRR format diff --git a/modules/local/reveal/filter_quality.nf b/modules/local/reveal/filter_quality.nf index a08472e7..4675ed17 100644 --- a/modules/local/reveal/filter_quality.nf +++ b/modules/local/reveal/filter_quality.nf @@ -6,9 +6,7 @@ process FILTER_QUALITY { if (workflow.profile.tokenize(',').intersect(['conda', 'mamba']).size() >= 1) { error "nf-core/airrflow currently does not support Conda. Please use a container profile instead." } - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'docker.io/immcantation/airrflow:4.1.0': - 'docker.io/immcantation/airrflow:4.1.0' }" + container "docker.io/immcantation/airrflow:4.1.0" input: tuple val(meta), path(tab) // sequence tsv in AIRR format From 0d30d4c6768d54bed95c3324516a11941b0320d6 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Fri, 31 May 2024 15:34:57 -0400 Subject: [PATCH 24/31] update test data param --- conf/test.config | 10 +++++----- conf/test_10x_sc.config | 4 ++-- conf/test_assembled_hs.config | 6 +++--- conf/test_assembled_immcantation_devel_hs.config | 6 +++--- conf/test_assembled_immcantation_devel_mm.config | 6 +++--- conf/test_assembled_mm.config | 6 +++--- conf/test_clontech_umi.config | 6 +++--- conf/test_fetchimgt.config | 6 +++--- conf/test_full.config | 6 +++--- conf/test_nebnext_umi.config | 6 +++--- conf/test_no_umi.config | 10 +++++----- conf/test_nocluster.config | 10 +++++----- conf/test_raw_immcantation_devel.config | 10 +++++----- conf/test_tcr.config | 10 +++++----- nextflow.config | 2 +- 15 files changed, 52 insertions(+), 52 deletions(-) diff --git a/conf/test.config b/conf/test.config index b9b0b19a..af9618ce 100644 --- a/conf/test.config +++ b/conf/test.config @@ -20,11 +20,11 @@ params { max_time = '6.h' // Input data - input = pipelines_testdata_base_path + 'airrflow/testdata-bcr/Metadata_test_airr.tsv' - cprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/C_primers.fasta' - vprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/V_primers.fasta' - reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' - reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'testdata-bcr/Metadata_test_airr.tsv' + cprimers = pipelines_testdata_base_path + 'testdata-bcr/C_primers.fasta' + vprimers = pipelines_testdata_base_path + 'testdata-bcr/V_primers.fasta' + reference_fasta = pipelines_testdata_base_path + 'database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'database-cache/igblast_base.zip' mode = 'fastq' diff --git a/conf/test_10x_sc.config b/conf/test_10x_sc.config index 4eb926b4..e9b9e5a8 100644 --- a/conf/test_10x_sc.config +++ b/conf/test_10x_sc.config @@ -23,6 +23,6 @@ params { // Input data - input = pipelines_testdata_base_path + 'airrflow/testdata-sc/10x_sc_raw.tsv' - reference_10x = pipelines_testdata_base_path + 'airrflow/testdata-sc/refdata-cellranger-vdj-GRCh38-alts-ensembl-5.0.0.tar.gz' + input = pipelines_testdata_base_path + 'testdata-sc/10x_sc_raw.tsv' + reference_10x = pipelines_testdata_base_path + 'testdata-sc/refdata-cellranger-vdj-GRCh38-alts-ensembl-5.0.0.tar.gz' } diff --git a/conf/test_assembled_hs.config b/conf/test_assembled_hs.config index e8f1462c..9e3d7f5b 100644 --- a/conf/test_assembled_hs.config +++ b/conf/test_assembled_hs.config @@ -18,9 +18,9 @@ params { // Input data mode = 'assembled' - input = pipelines_testdata_base_path + 'airrflow/testdata-reveal/test_assembled_metadata_hs.tsv' - reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' - reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'testdata-reveal/test_assembled_metadata_hs.tsv' + reference_fasta = pipelines_testdata_base_path + 'database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'database-cache/igblast_base.zip' reassign = true productive_only = true diff --git a/conf/test_assembled_immcantation_devel_hs.config b/conf/test_assembled_immcantation_devel_hs.config index adc0332b..c842e002 100644 --- a/conf/test_assembled_immcantation_devel_hs.config +++ b/conf/test_assembled_immcantation_devel_hs.config @@ -18,9 +18,9 @@ params { // Input data mode = 'assembled' - input = pipelines_testdata_base_path + 'airrflow/testdata-reveal/test_assembled_metadata_hs.tsv' - reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' - reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'testdata-reveal/test_assembled_metadata_hs.tsv' + reference_fasta = pipelines_testdata_base_path + 'database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'database-cache/igblast_base.zip' reassign = true productive_only = true diff --git a/conf/test_assembled_immcantation_devel_mm.config b/conf/test_assembled_immcantation_devel_mm.config index 3bc602ea..e148abe8 100644 --- a/conf/test_assembled_immcantation_devel_mm.config +++ b/conf/test_assembled_immcantation_devel_mm.config @@ -18,9 +18,9 @@ params { // Input data mode = 'assembled' - input = pipelines_testdata_base_path + 'airrflow/testdata-reveal/test_assembled_metadata_mm.tsv' - reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' - reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'testdata-reveal/test_assembled_metadata_mm.tsv' + reference_fasta = pipelines_testdata_base_path + 'database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'database-cache/igblast_base.zip' reassign = true productive_only = true diff --git a/conf/test_assembled_mm.config b/conf/test_assembled_mm.config index f90e7319..43e8275e 100644 --- a/conf/test_assembled_mm.config +++ b/conf/test_assembled_mm.config @@ -18,9 +18,9 @@ params { // Input data mode = 'assembled' - input = pipelines_testdata_base_path + 'airrflow/testdata-reveal/test_assembled_metadata_mm.tsv' - reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' - reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'testdata-reveal/test_assembled_metadata_mm.tsv' + reference_fasta = pipelines_testdata_base_path + 'database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'database-cache/igblast_base.zip' reassign = true productive_only = true diff --git a/conf/test_clontech_umi.config b/conf/test_clontech_umi.config index 55dda02a..e1bf317e 100644 --- a/conf/test_clontech_umi.config +++ b/conf/test_clontech_umi.config @@ -21,10 +21,10 @@ params { max_time = '6.h' // Input data - input = pipelines_testdata_base_path +'airrflow/testdata-clontech/samplesheet.tsv' + input = pipelines_testdata_base_path +'testdata-clontech/samplesheet.tsv' - reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' - reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' + reference_fasta = pipelines_testdata_base_path + 'database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'database-cache/igblast_base.zip' clonal_threshold = 0.1 diff --git a/conf/test_fetchimgt.config b/conf/test_fetchimgt.config index 14431d1b..468bb52d 100644 --- a/conf/test_fetchimgt.config +++ b/conf/test_fetchimgt.config @@ -20,9 +20,9 @@ params { max_time = '6.h' // Input data - input = pipelines_testdata_base_path + 'airrflow/testdata-bcr/Metadata_test_airr.tsv' - cprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/C_primers.fasta' - vprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/V_primers.fasta' + input = pipelines_testdata_base_path + 'testdata-bcr/Metadata_test_airr.tsv' + cprimers = pipelines_testdata_base_path + 'testdata-bcr/C_primers.fasta' + vprimers = pipelines_testdata_base_path + 'testdata-bcr/V_primers.fasta' fetch_imgt = true mode = 'fastq' diff --git a/conf/test_full.config b/conf/test_full.config index f6146bcf..9c652c8f 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -15,11 +15,11 @@ params { config_profile_description = 'Full test dataset to check pipeline function' // Input data - input = pipelines_testdata_base_path + 'airrflow/testdata-bcr/metadata_pcr_umi_airr_300.tsv' + input = pipelines_testdata_base_path + 'testdata-bcr/metadata_pcr_umi_airr_300.tsv' cprimers = 's3://ngi-igenomes/test-data/airrflow/pcr_umi/cprimers.fasta' vprimers = 's3://ngi-igenomes/test-data/airrflow/pcr_umi/vprimers.fasta' - reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' - reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' + reference_fasta = pipelines_testdata_base_path + 'database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'database-cache/igblast_base.zip' lineage_trees = true diff --git a/conf/test_nebnext_umi.config b/conf/test_nebnext_umi.config index ff7c22d8..b26fa7cd 100644 --- a/conf/test_nebnext_umi.config +++ b/conf/test_nebnext_umi.config @@ -22,10 +22,10 @@ params { max_time = '6.h' // Input data - input = pipelines_testdata_base_path + 'airrflow/testdata-neb/samplesheet.tsv' + input = pipelines_testdata_base_path + 'testdata-neb/samplesheet.tsv' - reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' - reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' + reference_fasta = pipelines_testdata_base_path + 'database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'database-cache/igblast_base.zip' clonal_threshold = 0.1 diff --git a/conf/test_no_umi.config b/conf/test_no_umi.config index b694e796..3a4fad63 100644 --- a/conf/test_no_umi.config +++ b/conf/test_no_umi.config @@ -27,11 +27,11 @@ params { isotype_column = 'c_primer' // Input data - input = pipelines_testdata_base_path + 'airrflow/testdata-no-umi/Metadata_test-no-umi_airr.tsv' - cprimers = pipelines_testdata_base_path + 'airrflow/testdata-no-umi/Greiff2014_CPrimers.fasta' - vprimers = pipelines_testdata_base_path + 'airrflow/testdata-no-umi/Greiff2014_VPrimers.fasta' - reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' - reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'testdata-no-umi/Metadata_test-no-umi_airr.tsv' + cprimers = pipelines_testdata_base_path + 'testdata-no-umi/Greiff2014_CPrimers.fasta' + vprimers = pipelines_testdata_base_path + 'testdata-no-umi/Greiff2014_VPrimers.fasta' + reference_fasta = pipelines_testdata_base_path + 'database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'database-cache/igblast_base.zip' } diff --git a/conf/test_nocluster.config b/conf/test_nocluster.config index c1b3d10b..4a3fb0b7 100644 --- a/conf/test_nocluster.config +++ b/conf/test_nocluster.config @@ -20,11 +20,11 @@ params { max_time = '6.h' // Input data - input = pipelines_testdata_base_path + 'airrflow/testdata-bcr/Metadata_test_airr.tsv' - cprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/C_primers.fasta' - vprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/V_primers.fasta' - reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' - reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'testdata-bcr/Metadata_test_airr.tsv' + cprimers = pipelines_testdata_base_path + 'testdata-bcr/C_primers.fasta' + vprimers = pipelines_testdata_base_path + 'testdata-bcr/V_primers.fasta' + reference_fasta = pipelines_testdata_base_path + 'database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'database-cache/igblast_base.zip' mode = 'fastq' diff --git a/conf/test_raw_immcantation_devel.config b/conf/test_raw_immcantation_devel.config index a897d1ce..567629a9 100644 --- a/conf/test_raw_immcantation_devel.config +++ b/conf/test_raw_immcantation_devel.config @@ -20,12 +20,12 @@ params { max_time = '6.h' // Input data - input = pipelines_testdata_base_path + 'airrflow/testdata-bcr/Metadata_test_airr.tsv' - cprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/C_primers.fasta' - vprimers = pipelines_testdata_base_path + 'airrflow/testdata-bcr/V_primers.fasta' + input = pipelines_testdata_base_path + 'testdata-bcr/Metadata_test_airr.tsv' + cprimers = pipelines_testdata_base_path + 'testdata-bcr/C_primers.fasta' + vprimers = pipelines_testdata_base_path + 'testdata-bcr/V_primers.fasta' - reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' - reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' + reference_fasta = pipelines_testdata_base_path + 'database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'database-cache/igblast_base.zip' mode = 'fastq' diff --git a/conf/test_tcr.config b/conf/test_tcr.config index a178ba5d..7572f099 100644 --- a/conf/test_tcr.config +++ b/conf/test_tcr.config @@ -28,11 +28,11 @@ params { // Input data - input = pipelines_testdata_base_path + 'airrflow/testdata-tcr/TCR_metadata_airr.tsv' - cprimers = pipelines_testdata_base_path + 'airrflow/testdata-tcr/cprimers.fasta' - race_linker = pipelines_testdata_base_path + 'airrflow/testdata-tcr/linker.fasta' - reference_fasta = pipelines_testdata_base_path + 'airrflow/database-cache/imgtdb_base.zip' - reference_igblast = pipelines_testdata_base_path + 'airrflow/database-cache/igblast_base.zip' + input = pipelines_testdata_base_path + 'testdata-tcr/TCR_metadata_airr.tsv' + cprimers = pipelines_testdata_base_path + 'testdata-tcr/cprimers.fasta' + race_linker = pipelines_testdata_base_path + 'testdata-tcr/linker.fasta' + reference_fasta = pipelines_testdata_base_path + 'database-cache/imgtdb_base.zip' + reference_igblast = pipelines_testdata_base_path + 'database-cache/igblast_base.zip' } diff --git a/nextflow.config b/nextflow.config index 3dfaec00..948a35ff 100644 --- a/nextflow.config +++ b/nextflow.config @@ -14,7 +14,7 @@ params { mode = "fastq" miairr="$projectDir/assets/reveal/mapping_MiAIRR_BioSample_v1.3.1.tsv" index_file = false - pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/' + pipelines_testdata_base_path = 'https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/' // ---------------------------- // sequencing protocol options From 3c20ec3b75b3f2355872b40fb7d2cedf38b80a7c Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Fri, 31 May 2024 15:41:16 -0400 Subject: [PATCH 25/31] update reference defaluts --- nextflow.config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nextflow.config b/nextflow.config index 948a35ff..e51ff966 100644 --- a/nextflow.config +++ b/nextflow.config @@ -81,8 +81,8 @@ params { // ----------------------- productive_only = true reassign = true - reference_igblast = "${params.pipelines_testdata_base_path}airrflow/database-cache/igblast_base.zip" - reference_fasta = "${params.pipelines_testdata_base_path}airrflow/database-cache/imgtdb_base.zip" + reference_igblast = "${params.pipelines_testdata_base_path}database-cache/igblast_base.zip" + reference_fasta = "${params.pipelines_testdata_base_path}database-cache/imgtdb_base.zip" fetch_imgt = false save_databases = true isotype_column = 'c_call' From 6da9c3869d7ea92220612424afba7e180e3e93b3 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Fri, 31 May 2024 15:42:02 -0400 Subject: [PATCH 26/31] merge upstream From acbdfc9196492e509546c7cb68b3a728166ddf71 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Fri, 31 May 2024 15:43:59 -0400 Subject: [PATCH 27/31] Update docs/usage.md Co-authored-by: Jose Espinosa-Carrasco --- docs/usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage.md b/docs/usage.md index 53211097..c3844547 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -275,7 +275,7 @@ This profile executes the sequence assembly commands based on the pRESTO pre-set After the sequence assembly steps, the remaining steps are common for all protocols. -Please note that the default primer sequences and internal CRegion sequences are for human. If you wish to run this protocol on mouse or other species, please provide the alternative primer sequences. Here an example using the mouse IG primers on the Immcantation Bitbucket repository: +Please note that the default primer sequences and internal CRegion sequences are for human. If you wish to run this protocol on mouse or other species, please provide the alternative primer sequences. Here is an example using the mouse IG primers from the Immcantation Bitbucket repository: ```bash nextflow run nf-core/airrflow -r \ From 0cd3f18588e5f0b749cf1522beda038986888867 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Fri, 31 May 2024 15:45:10 -0400 Subject: [PATCH 28/31] update default in schema --- nextflow_schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index e07c007b..1c32a276 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -747,7 +747,7 @@ "type": "string", "fa_icon": "far fa-check-circle", "description": "Base URL or local path to location of pipeline test dataset files", - "default": "https://raw.githubusercontent.com/nf-core/test-datasets/", + "default": "https://raw.githubusercontent.com/nf-core/test-datasets/airrflow/", "hidden": true } } From 4e1c52b84dd4cafe8e680c626d71247977179313 Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Fri, 31 May 2024 15:45:39 -0400 Subject: [PATCH 29/31] merge upstream From affd98d79ca3d01dd92fd2b2e479293d0eae1dee Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Fri, 31 May 2024 20:15:53 -0400 Subject: [PATCH 30/31] allow skip multiqc --- workflows/airrflow.nf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/workflows/airrflow.nf b/workflows/airrflow.nf index e9165cf7..4d228544 100644 --- a/workflows/airrflow.nf +++ b/workflows/airrflow.nf @@ -284,9 +284,11 @@ workflow AIRRFLOW { ch_report_logo.toList() ) multiqc_report = MULTIQC.out.report.toList() + } else { + multiqc_report = Channel.empty() } emit: - multiqc_report = MULTIQC.out.report.toList() // channel: /path/to/multiqc_report.html + multiqc_report = multiqc_report // channel: /path/to/multiqc_report.html versions = ch_versions // channel: [ path(versions.yml) ] } From df9ca20556f0188041c63c589285d398ebeb118d Mon Sep 17 00:00:00 2001 From: Gisela Gabernet Date: Fri, 31 May 2024 20:18:42 -0400 Subject: [PATCH 31/31] update tutorial script --- assets/tutorial/airrflow.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/tutorial/airrflow.sh b/assets/tutorial/airrflow.sh index 5f243b61..34022df7 100644 --- a/assets/tutorial/airrflow.sh +++ b/assets/tutorial/airrflow.sh @@ -5,4 +5,5 @@ nextflow run nf-core/airrflow -r 4.1.0 \ --outdir results \ -w work \ --max_cpus 12 \ ---max_memory 12.GB +--max_memory 12.GB \ +--skip_multiqc