From c91f07af814009d3ed353c1f75099ee064cb9b93 Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Tue, 14 Dec 2021 16:42:59 +0000 Subject: [PATCH 01/88] Template update for nf-core/tools version 2.2 --- .gitattributes | 2 + .github/CONTRIBUTING.md | 38 ++------ .github/ISSUE_TEMPLATE/bug_report.md | 63 ------------- .github/ISSUE_TEMPLATE/bug_report.yml | 52 ++++++++++ .github/ISSUE_TEMPLATE/config.yml | 1 - .github/ISSUE_TEMPLATE/feature_request.md | 32 ------- .github/ISSUE_TEMPLATE/feature_request.yml | 11 +++ .github/workflows/awsfulltest.yml | 8 +- .github/workflows/awstest.yml | 10 +- .github/workflows/ci.yml | 23 +++-- .github/workflows/linting_comment.yml | 1 + CHANGELOG.md | 2 +- CITATIONS.md | 2 +- LICENSE | 2 +- README.md | 15 +-- assets/multiqc_config.yaml | 2 +- assets/nf-core-mhcquant_logo.png | Bin 17995 -> 0 bytes assets/nf-core-mhcquant_logo_light.png | 9 ++ assets/sendmail_template.txt | 4 +- bin/scrape_software_versions.py | 36 ------- conf/base.config | 3 + conf/modules.config | 55 ++++++----- conf/test.config | 4 +- docs/images/nf-core-mhcquant_logo.png | Bin 34566 -> 0 bytes docs/images/nf-core-mhcquant_logo_dark.png | 0 docs/images/nf-core-mhcquant_logo_light.png | Bin 0 -> 72389 bytes docs/output.md | 2 +- docs/usage.md | 36 ------- lib/NfcoreSchema.groovy | 26 +++-- lib/NfcoreTemplate.groovy | 30 ++---- lib/Utils.groovy | 7 -- lib/WorkflowMain.groovy | 6 +- modules.json | 9 +- modules/local/functions.nf | 68 ------------- modules/local/get_software_versions.nf | 33 ------- modules/local/samplesheet_check.nf | 24 ++--- .../custom/dumpsoftwareversions/main.nf | 21 +++++ .../custom/dumpsoftwareversions/meta.yml | 34 +++++++ .../templates/dumpsoftwareversions.py | 89 ++++++++++++++++++ modules/nf-core/modules/fastqc/functions.nf | 68 ------------- modules/nf-core/modules/fastqc/main.nf | 39 ++++---- modules/nf-core/modules/fastqc/meta.yml | 7 +- modules/nf-core/modules/multiqc/functions.nf | 68 ------------- modules/nf-core/modules/multiqc/main.nf | 31 +++--- modules/nf-core/modules/multiqc/meta.yml | 7 +- nextflow.config | 35 +++---- nextflow_schema.json | 29 ------ subworkflows/local/input_check.nf | 8 +- workflows/mhcquant.nf | 44 +++------ 49 files changed, 422 insertions(+), 674 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml delete mode 100644 assets/nf-core-mhcquant_logo.png create mode 100644 assets/nf-core-mhcquant_logo_light.png delete mode 100755 bin/scrape_software_versions.py delete mode 100644 docs/images/nf-core-mhcquant_logo.png create mode 100644 docs/images/nf-core-mhcquant_logo_dark.png create mode 100644 docs/images/nf-core-mhcquant_logo_light.png delete mode 100644 modules/local/functions.nf delete mode 100644 modules/local/get_software_versions.nf create mode 100644 modules/nf-core/modules/custom/dumpsoftwareversions/main.nf create mode 100644 modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml create mode 100644 modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py delete mode 100644 modules/nf-core/modules/fastqc/functions.nf delete mode 100644 modules/nf-core/modules/multiqc/functions.nf diff --git a/.gitattributes b/.gitattributes index 7fe55006..050bb120 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,3 @@ *.config linguist-language=nextflow +modules/nf-core/** linguist-generated +subworkflows/nf-core/** linguist-generated diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 05fd627c..1312f3db 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -68,16 +68,13 @@ If you wish to contribute a new step, please use the following coding standards: 1. Define the corresponding input channel into your new process from the expected previous process channel 2. Write the process block (see below). 3. Define the output channel if needed (see below). -4. Add any new flags/options to `nextflow.config` with a default (see below). -5. Add any new flags/options to `nextflow_schema.json` with help text (with `nf-core schema build`). -6. Add any new flags/options to the help message (for integer/text parameters, print to help the corresponding `nextflow.config` parameter). -7. Add sanity checks for all relevant parameters. -8. Add any new software to the `scrape_software_versions.py` script in `bin/` and the version command to the `scrape_software_versions` process in `main.nf`. -9. Do local tests that the new code works properly and as expected. -10. Add a new test command in `.github/workflow/ci.yml`. -11. If applicable add a [MultiQC](https://https://multiqc.info/) module. -12. Update MultiQC config `assets/multiqc_config.yaml` so relevant suffixes, name clean up, General Statistics Table column order, and module figures are in the right order. -13. Optional: Add any descriptions of MultiQC report sections and output files to `docs/output.md`. +4. Add any new parameters to `nextflow.config` with a default (see below). +5. Add any new parameters to `nextflow_schema.json` with help text (via the `nf-core schema build` tool). +6. Add sanity checks and validation for all relevant parameters. +7. Perform local tests to validate that the new code works as expected. +8. If applicable, add a new test command in `.github/workflow/ci.yml`. +9. Update MultiQC config `assets/multiqc_config.yaml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module. +10. Add a description of the output files and if relevant any appropriate images from the MultiQC report to `docs/output.md`. ### Default values @@ -102,27 +99,6 @@ Please use the following naming schemes, to make it easy to understand what is g If you are using a new feature from core Nextflow, you may bump the minimum required version of nextflow in the pipeline with: `nf-core bump-version --nextflow . [min-nf-version]` -### Software version reporting - -If you add a new tool to the pipeline, please ensure you add the information of the tool to the `get_software_version` process. - -Add to the script block of the process, something like the following: - -```bash - --version &> v_.txt 2>&1 || true -``` - -or - -```bash - --help | head -n 1 &> v_.txt 2>&1 || true -``` - -You then need to edit the script `bin/scrape_software_versions.py` to: - -1. Add a Python regex for your tool's `--version` output (as in stored in the `v_.txt` file), to ensure the version is reported as a `v` and the version number e.g. `v2.1.1` -2. Add a HTML entry to the `OrderedDict` for formatting in MultiQC. - ### Images and figures For overview images and other documents we follow the nf-core [style guidelines and examples](https://nf-co.re/developers/design_guidelines). diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index ea229fab..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -name: Bug report -about: Report something that is broken or incorrect -labels: bug ---- - - - -## Check Documentation - -I have checked the following places for your error: - -- [ ] [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting) -- [ ] [nf-core/mhcquant pipeline documentation](https://nf-co.re/mhcquant/usage) - -## Description of the bug - - - -## Steps to reproduce - -Steps to reproduce the behaviour: - -1. Command line: -2. See error: - -## Expected behaviour - - - -## Log files - -Have you provided the following extra information/files: - -- [ ] The command used to run the pipeline -- [ ] The `.nextflow.log` file - -## System - -- Hardware: -- Executor: -- OS: -- Version - -## Nextflow Installation - -- Version: - -## Container engine - -- Engine: -- version: - -## Additional context - - diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..816a6f87 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,52 @@ + +name: Bug report +description: Report something that is broken or incorrect +labels: bug +body: + + - type: markdown + attributes: + value: | + Before you post this issue, please check the documentation: + + - [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting) + - [nf-core/mhcquant pipeline documentation](https://nf-co.re/mhcquant/usage) + + - type: textarea + id: description + attributes: + label: Description of the bug + description: A clear and concise description of what the bug is. + validations: + required: true + + - type: textarea + id: command_used + attributes: + label: Command used and terminal output + description: Steps to reproduce the behaviour. Please paste the command you used to launch the pipeline and the output from your terminal. + render: console + placeholder: | + $ nextflow run ... + + Some output where something broke + + - type: textarea + id: files + attributes: + label: Relevant files + description: | + Please drag and drop the relevant files here. Create a `.zip` archive if the extension is not allowed. + Your verbose log file `.nextflow.log` is often useful _(this is a hidden file in the directory where you launched the pipeline)_ as well as custom Nextflow configuration files. + + - type: textarea + id: system + attributes: + label: System information + description: | + * Nextflow version _(eg. 21.10.3)_ + * Hardware _(eg. HPC, Desktop, Cloud)_ + * Executor _(eg. slurm, local, awsbatch)_ + * Container engine: _(e.g. Docker, Singularity, Conda, Podman, Shifter or Charliecloud)_ + * OS _(eg. CentOS Linux, macOS, Linux Mint)_ + * Version of nf-core/mhcquant _(eg. 1.1, 1.5, 1.8.2)_ diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index c283b9b4..51b0d6a8 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,4 +1,3 @@ -blank_issues_enabled: false contact_links: - name: Join nf-core url: https://nf-co.re/join diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 7a90e846..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for the nf-core/mhcquant pipeline -labels: enhancement ---- - - - -## Is your feature request related to a problem? Please describe - - - - - -## Describe the solution you'd like - - - -## Describe alternatives you've considered - - - -## Additional context - - diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 00000000..747f7388 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,11 @@ +name: Feature request +description: Suggest an idea for the nf-core/mhcquant pipeline +labels: enhancement +body: + - type: textarea + id: description + attributes: + label: Description of feature + description: Please describe your suggestion for a new feature. It might help to describe a problem or use case, plus any alternatives that you have considered. + validations: + required: true diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index bca184b7..df3aefaa 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -14,14 +14,14 @@ jobs: runs-on: ubuntu-latest steps: - name: Launch workflow via tower - uses: nf-core/tower-action@master + uses: nf-core/tower-action@v2 # TODO nf-core: You can customise AWS full pipeline tests as required # Add full size test data (but still relatively small datasets for few samples) # on the `test_full.config` test runs with only one set of parameters with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} - bearer_token: ${{ secrets.TOWER_BEARER_TOKEN }} + access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} pipeline: ${{ github.repository }} revision: ${{ github.sha }} @@ -30,5 +30,5 @@ jobs: { "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/mhcquant/results-${{ github.sha }}" } - profiles: '[ "test_full", "aws_tower" ]' - + profiles: test_full,aws_tower + pre_run_script: 'export NXF_VER=21.10.3' diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 285b9d29..15e5b355 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -11,18 +11,18 @@ jobs: runs-on: ubuntu-latest steps: - name: Launch workflow via tower - uses: nf-core/tower-action@master + uses: nf-core/tower-action@v2 with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} - bearer_token: ${{ secrets.TOWER_BEARER_TOKEN }} + access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} pipeline: ${{ github.repository }} revision: ${{ github.sha }} workdir: s3://${{ secrets.AWS_S3_BUCKET }}/work/mhcquant/work-${{ github.sha }} parameters: | { - "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/mhcquant/results-${{ github.sha }}" + "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/mhcquant/results-test-${{ github.sha }}" } - profiles: '[ "test", "aws_tower" ]' - + profiles: test,aws_tower + pre_run_script: 'export NXF_VER=21.10.3' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8097523a..852f83fe 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,8 +8,9 @@ on: release: types: [published] -# Uncomment if we need an edge release of Nextflow again -# env: NXF_EDGE: 1 +env: + NXF_ANSI_LOG: false + CAPSULE_LOG: none jobs: test: @@ -17,20 +18,26 @@ jobs: # Only run on push if this is the nf-core dev branch (merged PRs) if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mhcquant') }} runs-on: ubuntu-latest - env: - NXF_VER: ${{ matrix.nxf_ver }} - NXF_ANSI_LOG: false strategy: matrix: - # Nextflow versions: check pipeline minimum and current latest - nxf_ver: ['21.04.0', ''] + # Nextflow versions + include: + # Test pipeline minimum Nextflow version + - NXF_VER: '21.10.3' + NXF_EDGE: '' + # Test latest edge release of Nextflow + - NXF_VER: '' + NXF_EDGE: '1' steps: - name: Check out pipeline code uses: actions/checkout@v2 - name: Install Nextflow env: - CAPSULE_LOG: none + NXF_VER: ${{ matrix.NXF_VER }} + # Uncomment only if the edge release is more recent than the latest stable release + # See https://github.com/nextflow-io/nextflow/issues/2467 + # NXF_EDGE: ${{ matrix.NXF_EDGE }} run: | wget -qO- get.nextflow.io | bash sudo mv nextflow /usr/local/bin/ diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 90f03c6f..44d72994 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -15,6 +15,7 @@ jobs: uses: dawidd6/action-download-artifact@v2 with: workflow: linting.yml + workflow_conclusion: completed - name: Get PR number id: pr_number diff --git a/CHANGELOG.md b/CHANGELOG.md index a8dbccdd..4e81e18c 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). -## v1.6.1 - [date] +## v2.1.0 - [date] Initial release of nf-core/mhcquant, created with the [nf-core](https://nf-co.re/) template. diff --git a/CITATIONS.md b/CITATIONS.md index 71346781..c55beb09 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -12,7 +12,7 @@ * [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) -* [MultiQC](https://www.ncbi.nlm.nih.gov/pubmed/27312411/) +* [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) > Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924. ## Software packaging/containerisation tools diff --git a/LICENSE b/LICENSE index dcab23b0..43eea689 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) Leon Bichmann +Copyright (c) Leon Bichmann, Marissa Dubbelaar Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 02e8d3ae..42b4e386 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ -# ![nf-core/mhcquant](docs/images/nf-core-mhcquant_logo.png) +# ![nf-core/mhcquant](docs/images/nf-core-mhcquant_logo_light.png#gh-light-mode-only) ![nf-core/mhcquant](docs/images/nf-core-mhcquant_logo_dark.png#gh-dark-mode-only) [![GitHub Actions CI Status](https://github.com/nf-core/mhcquant/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/mhcquant/actions?query=workflow%3A%22nf-core+CI%22) [![GitHub Actions Linting Status](https://github.com/nf-core/mhcquant/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/mhcquant/actions?query=workflow%3A%22nf-core+linting%22) [![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/mhcquant/results) [![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX) -[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.04.0-23aa62.svg?labelColor=000000)](https://www.nextflow.io/) +[![Nextflow](https://img.shields.io/badge/nextflow%20DSL2-%E2%89%A521.10.3-23aa62.svg?labelColor=000000)](https://www.nextflow.io/) [![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/) @@ -33,18 +33,21 @@ On release, automated continuous integration tests run the pipeline on a full-si ## Quick Start -1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.04.0`) +1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.10.3`) 2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/), [`Podman`](https://podman.io/), [`Shifter`](https://nersc.gitlab.io/development/shifter/how-to-use/) or [`Charliecloud`](https://hpc.github.io/charliecloud/) for full pipeline reproducibility _(please only use [`Conda`](https://conda.io/miniconda.html) as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_ 3. Download the pipeline and test it on a minimal dataset with a single command: ```console - nextflow run nf-core/mhcquant -profile test, + nextflow run nf-core/mhcquant -profile test,YOURPROFILE ``` + Note that some form of configuration will be needed so that Nextflow knows how to fetch the required software. This is usually done in the form of a config profile (`YOURPROFILE` in the example command above). You can chain multiple config profiles in a comma-separated string. + + > * The pipeline comes with config profiles called `docker`, `singularity`, `podman`, `shifter`, `charliecloud` and `conda` which instruct the pipeline to use the named tool for software management. For example, `-profile test,docker`. > * Please check [nf-core/configs](https://github.com/nf-core/configs#documentation) to see if a custom config file to run nf-core pipelines already exists for your Institute. If so, you can simply use `-profile ` in your command. This will enable either `docker` or `singularity` and set the appropriate execution settings for your local compute environment. - > * If you are using `singularity` then the pipeline will auto-detect this and attempt to download the Singularity images directly as opposed to performing a conversion from Docker images. If you are persistently observing issues downloading Singularity images directly due to timeout or network issues then please use the `--singularity_pull_docker_container` parameter to pull and convert the Docker image instead. Alternatively, it is highly recommended to use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to pre-download all of the required containers before running the pipeline and to set the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options to be able to store and re-use the images from a central location for future pipeline runs. + > * If you are using `singularity` and are persistently observing issues downloading Singularity images directly due to timeout or network issues, then you can use the `--singularity_pull_docker_container` parameter to pull and convert the Docker image instead. Alternatively, you can use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to download images first, before running the pipeline. Setting the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options enables you to store and re-use the images from a central location for future pipeline runs. > * If you are using `conda`, it is highly recommended to use the [`NXF_CONDA_CACHEDIR` or `conda.cacheDir`](https://www.nextflow.io/docs/latest/conda.html) settings to store the environments in a central location for future pipeline runs. 4. Start running your own analysis! @@ -61,7 +64,7 @@ The nf-core/mhcquant pipeline comes with documentation about the pipeline [usage ## Credits -nf-core/mhcquant was originally written by Leon Bichmann. +nf-core/mhcquant was originally written by Leon Bichmann, Marissa Dubbelaar. We thank the following people for their extensive assistance in the development of this pipeline: diff --git a/assets/multiqc_config.yaml b/assets/multiqc_config.yaml index a0e5fa3c..76398921 100644 --- a/assets/multiqc_config.yaml +++ b/assets/multiqc_config.yaml @@ -1,7 +1,7 @@ report_comment: > This report has been generated by the nf-core/mhcquant analysis pipeline. For information about how to interpret these results, please see the - documentation. + documentation. report_section_order: software_versions: order: -1000 diff --git a/assets/nf-core-mhcquant_logo.png b/assets/nf-core-mhcquant_logo.png deleted file mode 100644 index 378f944c65e9238589cf8bcf27fa7ffe4db42d06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17995 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≷9+?1_az}B%ky%m&+2jGNYrnHeWNtQXh^2!)Bj& z_qn(Ceqlr9inCnJEm~TiCNl4Bt#ceM3s^~TnOD_xD7Db%ohS7lzv0$CZu5Bz%Xx>w zBhq}s94m6zg~eSuy?3%-HM|DG;Hl5*Dy9eQTVmqs<-9{*(@`t4+$sWOz81jdju3dJ z*T}~cM~{(y4!PI1|A@T5=p$;=QRkh6E0#@j{dI?VYyu_J+@; z&^sF4_7;e#m=ZDLg>MVqXFOZ9M!YxpVfTRbt3UoecX-l3tW<6b<{eyMm+(rDH(-Zw z@|n|$9xF0kJMpVfNNt{jm20e6bUvPcpuEISna9-6{nXdo!nq@0D<&|i^!gmNY`NQK zC#_NBF$aKn--GsD>0DM%Kr};2hg}2{%o1(+dAEKl z#fl}eI(ri+5i%P{XQ$h~CKHp?3M#6&Fl)&9J3Ex5tpiX6hU=e)-R6=<0p~lb7@R_t)L)vEIo|#6b{;IPB)Q>NEnbqy6qKSIYw) zikA-#7a9oPzJ1FYQ02aegBo@*%~BkVn4Rv>>9kFq*Q@c@$+OUojw&)<>{|?4yIg7p zfw-gGUL)}{ThBXbsenT}#~-<>IO|l%fGD-k5IO-<)|KHf%NDK70A2i<>O=JGV{Jdv3gs@B_cUZ`&sPIFR((g?y>P zw2S@ypU;`U9-HTSanUD+xg#_apB#BuMqdfk_MBf^E|8Lcy7^lgbU0yX}U8-1O%?r$LiD&eqV+ zoH8{X-6{*5bgxa)^WDjT+yII#@8++XGkpU9H^+pa;i+eklaoi!+c)8~cwYqTl}f*R zM}$i)978GKo|%=^v3Db#LjaOncipo8Ub1UaT3YmL{n~mQuw}ezAJI4;2=Sjz8do9P z>IclZ_;b-^VZkQ-UeIk|ekWrUGY%k@WDkMzN&fxd`Q|wW8&Q&phf>SkeJB#07wKV4 zZ07+7!FGXG@D^VnS6mmAsGdgBTqBlr+30W3RDr{3JW|p5h1f8!!2!K7Ubla&qsQ@& zT;{{fde&{KMO?csD1L9T2_0hDPVpBFHv|zwp(vY1rt*;c5=RJb($;EvbyggT^mDsO zr|)Ahh6wv+H)+aR17S(-&&Qj;mSo4e>+cPR{${R7xD*lr(8Fqg{!^K8S1?!o6RkwJ z$@-r!+jBL{YinyX$pcxF)@quXq0qi~XtJ@tn2`~cTae@NirD^QQ}SGd`@x*)YG+ve zR=Uqfo)US)vMWEO`{BYTZDYSlsF~E|_d$#1t0fg^sAhxMpxER4GmQyn-5=3yc6j5Q=H^Kq)szVal5ke>K zI)vY_?x16|??MqVDUs1zaeY|(D&}WH`J&@}ZlB-v%0AvTyN7~#S97un!VkNWqQ=Hv zDz$@(f?@24Hlm3{lYzvpz&h;DQ1)Ud3AW1i>TCqQE#6zdTP_~EIZ3}}@vL_9c%g8S zhaDBm<<^!ya|~KOmrd-}+g;`o!=@=ymQTg?I!*4cYp9XXaJ#RT1L6S=Om4H`B3p3k zqa=A_fek+lzMvA-bmz652?QIPoPdB}qP0H9u*qGg);483X0$cv2?QRkb}Q-O<#f_( zeGBs8RYh>>D!k4tu*rF_^Hnk~Efw&QeJ^J}dLGnFZ~ycV14l>r@!qAbP2}{?bJgNW zF&|;3^P10RoC|3j6nG!v#4IE^A-ME7i8`rwuX&6Xu<%VR@;N+Pw;oo0wz3>YNlG%P zNMCGlv!}7t2;dB_I#_-Bo?wieb<)TOv0|b(vPzCjH?`I`k|ndD?61HMWmJSPM!QyI zWXJXF`F&hFbeA|@8x6=QI7}S~n#_XWW$FfBm2WoNiZ1h{;D$vo`yRe@E9*s3ySZ3oPE}M@%&x}>W#sT_f(f!?R`m~PuZgg~X zf;&|yjfcBfEUG2F#%4M@JG(RY;rQ6`U&@<&sZ0H$@lNQ;@|R&KHSa&szR0H_G(^g3 z)pdy6{p*fy$zN$$x?1f?Pv{77v5HTq3*x_(R>&Lu{`!2Pz|q6@+lEJ6SL_#4o$U+1`Y2#a>=(vE@Qw>rMjDk5o)Nu8I zYRVr5sJiu-ztOqZ39SFn?Zc?c5Z@E0VWg7m-(>K%cRW122wh2YXm#=`9s0B3Y&%nd zkRu&?y5sGY-dCWO<9Ig6+a&ndpUC`YcsT!b{bW73Ih~sRx|Ls6R;C-Y8TT>6Z)#O(DdAz>p^frjuBHnthv1wbI616_jW3v5 z4{Am&yQ7E>(YA$;+mQy1kbm_D7%Zva3yxo~#`g{HJ2EEJ)r(#Pp;)jWx? ze*zI*QMIa=W*s_tZ~R=tOwvr{>T3A9N4q( zw-QDS3qxn$hwI{tt_w!0qrUXQr^kEwAy6JQd)+h~BE~*HbVUs7iGJn;K*Hv;m0&b# zU;Mfy@8Sak1dxO&5!j!+w?Nb*0iQDzD zX;Hd1n9QpM7rcuHwUm{Wh zaI;}WaIz2v)@;2ND=`S~*?Hyp>NNr8FXAqe#r~z!85_l!L;dY#fdaFFE206zTV#6Id8d7fbS{7 zCWL^@ft54*k{|mOpYuBUq!T!$k^sw6qPls_K@3Qso+4mSFL{RIstxBtvy zh=L^L`LVqWe~Zt=F_et67`5F=DWyy?FPO9F(Tx!8D{nS$TFD58%_d_no*R^65D%l7TXc&Ofe-M^`)eK;1tM54L2TPS1LXT<`G+;?hVfq(zL*ZFV@VJpG*) z+*Ni-i=`2y&089>HYVb8ro3v{>^b^SGdJ4g;Q%mJTRxhPl0f4;Ouu>Nc&^Stg$NY> zqF!EapFDZeor}kIecC*-l*6oD=DEK!@ub8h`_n}LsEq8J96b&fNC_Df9k0{A?J%pR zCd-5*M~Jaccn`+$;i`sTIr53j!0N7VO(R^)>oxW~ znLhkR+?V`U{cI$80y3q7!%4*%`-C&LzwFZVm855E=hqbH*jSEVPF4Kd^up26(S}Cl zZ~p%M3u_R@Yb+~^>rV!;JfllNRyGr}YZuS%HnS&rt7ox0B!`$zP-mOvHGiRLlyY94`0Rz?RHrc!_Li~@57f!7+ zmlhdwwTs0qya7_PZb3D5iIvrryrg|W(63+hnIxo;~Q?u*<%L+n{J7HT5! z#S8L#DvTSHG0|x?b8-+wOSSIy6#%4ldz}qn=m(P4r*y5oX*B47Ub);c2vFD7jtCD& z-L2#Z#V^sV>OBZH=HTG?&SBo`cDA@oC64at<$7l0l0~%Z3b}V9!pnMVaLfPEY|aEb z_7J;EHDB=?6tblLS?97@iFZ=a0BVn)Csd8oqpq@qCi;6e;2_ISRsXiIKZ68&P=*tY z44j}MjUW&qi{2G4z=T0{(%sW@(^d011PVzJ{IRRkz;x5dBnW9j48>n_bb38Gq(kmu zhchxXhjy3rH*s-B;%qmG_s;Cz&fSmhK3+YP_IE6*LCND<8vfc!TJg0rmE$I^wu}6Y zfS-;H@lu6FL2GFK_)Y;Ps<`Z%factfWNBs(DBDM0zI`9uvS0vi_3x>`?GW( z_qR1}Gu;@60|wEfekQ#Gk`+_X+lYVlDVIHXckZ~)E~Vx-Q!kh9i9YZm(}dE{(}(TO z05-+4M(;1@OL26!WL=x`7shM1pcvEad-W6(%sNU74wz&2GPaL%H8v5T?rr>uRGeF& z$yBuWXK1MRaIt9-c4)n_a)E+Co7ao`S?Q-PAFfi(6Mfq3`olG`Qy%;{o$T6I-alQj z))Jnx?$7Qd&ALI$b6u?x-&{rDi41LFlmt^ z@Tl|nc^DXav+A_jvsz@5Sq(b@`!SLev4tU&8;T#C$gJIHH@y2lKFnqDL+T|yB6_R_ zgV&KKVYbF@Eo7%WGK8MNE-k_Si`}!!eYfcS#*;cC5iH&XN2H5NKyjbm5XSNH#Ys$; z85YKs78E!(75!xVXYr=iZeH50#I3@tVwDfq@Af>4f6A7}d@z;!>*8~={{H?7`$hh` zw&9-wyf5Zle}$vF3SlDb2*e?i&8Kdw@4tSG$Sv)(ubRG$thA{)_}g0UE_AaOy{I|^ zaQbRjgoelnTvcIfyB}L~EKNIGzPs3y*}$Sj-kU0QvFTg%zdBr;7|+Ef2}54zSpQA7Za;K_T_g_>OKPL5dDu=;^;Q{}dZ6L!wFvt)p`wvq8+A!(^?HM~9D z!(aBk)HJ$1Z%|Eu@^ybJv(IJYTdIRE4DpM1%yzzVg@lBJ9G=G}BYncL(+z06NUf5eIAJR|nVp!pY}0u*~p5Z5(kScn;Y7+dQK{0|jp|&a>J=pe#DiO^RKZ4rA2O`tyg@y{6<@ySNs7@(Hu5qZ2(ndf!Bg8~3Y>9HWTA!BFv+G6O(r`uca z@@ZytL?h2tlp>;Q2#v7t63<36v(M{}n=~ z5wyz;I>vGpI2>0*W5{`NgK1PV+5mM}cb4)hQC{$J##~J0C}^bH0L^TwBelG79x2eI z45zUTHdRX&*>+VcN~T~skZzM#dTq9xDCA>@muNU-J>AkKJd5*1sL#ZAit7J*0i0^- zwXI&gdes3YZlv5;r1`X;`TAxn!)c?Rh>MG>-Gp7Vd>RT4;7p4TuTj8*+k)%3()MT$ z8vN@BtG5P=ZGgqmxU2NJvS0AtE3KWiE_E2XbZ0Yc47D21TRo^-&a1s^N5T`$8TC}^ zGqd{Z^5)|Z1vtgK70%Ai?5^9Yia+^@mi?|M0Z&hZ9xQQ>9t;5-@pGBDm7g9<9U#)f zIb^}Je{XQBj>h&eP6YQ3uTP+(mF9iKJrXvvSiLs2pPrUBkbX>#*WsoOG%3LZ6R`y1 zp|zD;?}kKQ$0^E4netYq;ZwTvOT!tL5oH;lDw$Mw`-hE%jAb%cz}^E+AhM6j2iuI# z>-2?kx}eoK;O>Bw4TJ%`(j=xXH{m?vHh&T!Z>|eO`L;)xfIT31u}L|RpG(JxHn|_r zB>YuXR}Tg(i&CX#k8#vU?W*IFrl$S-8sVrh^)SVC;WG-+F(l z@bW2UwcR{1NY|=NiR>wgFPWJo)YQJr^I&nnsD*uJ%yArG_cv6-ZRyo=0YswacHM`( zaT0IrIJLM0+G=d(`SADRVPi^JT#4;N^qgq*_c2m-8TAz(^AGICZXMkImbNJiD-Z>! z??zC0qwDJG&Hx(LSE_vaj%(vnl}LH(Et7OCnN&^vQxmU*r8)=d3q~dt!HWrvKmY!n ze;4)@Q}lMpH}={f@_o3N22x7V_HnHAbD*!AkmEB=d8oh;+JAo-Sa4sYWH*6G$5F`H zmDkwhloi?y9YU3%ETnOBwlC{u(LqKi@)D1fSUYY){rE|K==WQjkCyxMj;6z6O?-W6 ze#OIw_w>s2>FXzqK}iD}I-mrdtF?<3h3*d@uXb?&O(F1ZG)D#xzBhR?O6ukD%uf0q zqT=KGK$3nz{&E}F0cP0hOG?gT>*xbZP!Zl)ae4X6<1ZIS=dU)i@$TA&so+9l$&rY- zNB@!L8q@COG$Q>wF>_mfn|UYU8TSvvV$s!hHb^Hc<$fo$?-o$Z6ciM?JeK{QRmdF* zg6c}&L9IM#3lC64pA!?qK$5(zWh_xH{h5JFfi6TMP^gb4k>& z=e7(F^yn7Pe>lVoC`Cd#G^t$M9vVY}K<6yoHuZZo- zmoGEbRtYK!(^2%avYLn&|2$YL1+ zsZii7^&Fzka`4;yc&0Kg2zoeY-_f2?C%T($M#X*0Y=w2xpx8X_**OvsW>gBZ3hsg?oTa-oG4JSNdoai?ng{h@l{~eR^zB?Ja(OMV)Oj`ocPX!o|P3BXfCLi zhl|n5KlvMQmJ{t?!5WPT8I`-iB7rSrt7hnHHDbwC`?h!?j13(T5Ivhyy}#rVMnJax zEIS-D5?qLBAt5!sRn*(ukw*N(+pOWYvH67AVb;}2Jk&U|Ux)hJUd|-$cmvX4u~O@< zY#6Gc*_bGj!`9Q-2ak4vif$sAP-T=?^J_$Ub&{rCHDy!0vMbOk^LN$TsanR{YM6ASWkB)wSFfAc9LJxIIQSeD+mxd-Dnzt;c(bd3c$CJbjOLVaksoUgC7plhmXv2yG zQGWN#Ovl%w&7k~g>T}|Dr=+qEusI}LyLGBn$mnIyOgQ?T`mCLuPx~0q1K~aD&o~g-109fty_4lrz(gIki1Kix_FJDZ3%&iNl%`itre_`!Cy!AeR z3E#*+eoz=RdlK~Y^o;Dd;v*wqh9Lq%5Khjjt3LsCT|5wZ;M2Rk(D3G)JiVLec)m*C zGh^S?)6@uT(qQ9&2O_~?G@-?)*+--F=#O}Qq4Y?bCXNQ$w|5L&nT?j*|HAe3rA=1e zu_KM3-{zfm^rS<*B=d!^Q#d<1${@id(QPItpDspHQ+qidN{6}rS&Hz#SR2?#9}y;v z5#d_;`iUEgorkA|xT^4yc9Y4@usG_%g7N~za4NOUXR3*T~;Ct$eF7+$snK-)e z{jmh_GI@LRAGTaAX?Zym;Urz6B+P~eWZYpGKRfL6BkgjM*^Py>^_XQ|!*!=~6cn$A zdxFRa-L(_5GF#_Pk!TCv@T^oW2r9}dc64FbeWn`^K}Vzz)VB0zI;(%r>LJ7mHRZK&I1d~Zn z3cqc_$w;4%dnrXS)!Y#yf`}NxGb5(3@n_L$bht zk(2X$L?cJMIR*(WSOMpPPftI(1x4RU^A1O`7O{6Jj;N0+BP)`^^7im!7~E<|1_27L zs-7OEwj~!C*u{*$?ul~VafV&6xjVp;+()eaD4oyUrU+9fu?1}uN-Z2_KkUD*JGa&7 zUx%P=mnx8t%s>NQdXfCVNW4bc*LvYv7R(8}j{&wy=p9i+%qww)8u@cmj(8{mJ-d=_ z*pLAq;Z?r*YAOFoWPEh7kiU_rAq1f#5onIv_+OrKo@~euNEC9J1LK>7jB$fA3cRlH zzBGE8;vC0rF2`K*_i~vwCgn__Fe$clG4P8> z=jlHlmFT|_>@$C_&NkqNKUR$(HZ9n<`j?eZTsV%>+jRCZ13qiF-ct}qm8Pug*6qN7 z%Y;8PoSUshpKj2|3JF zcH~O_Jm9`fd}g~5S$u{dN}B-ft!Mo{2V;nlJH&d+X!9-%tsN8Yy@Z&&l4RZMuUtQ$ zp7FlHR}3aS+}zrHOEr91j~4GiHqA25i(zr^d4VoGv>cw0_>2}G0YbC&K^7}sW_c!# zS9G!J4*-T^9VaCuIv4K0;1pgm|7Scy6 zMj0k@RsZZN59iGKsHp78vub+P6HM0_S?Ovzip$W>i(1(#GPtpoD*|8PLBhtmz2{b4 zGo>0mxe#~*aF~oncZGT7g1Um$wf^ThwU|q@*b9>V14`kOMUQ1Kp)#B4GJ9(&sPAGFP-(KK^R*?uMGg# zuJ$n0(~APdcyKuU_+WlkJy~8(Rm%JGpKrIK6s^-Kt44F}BJ=>>Q4c(uu z0>%eqpya6me@%8a9bCPgoSd|@w1hxF0+f`IdH(h-X-Y~;{c1QlyYss2`Qait@W|%+ z0Rz|B)-bd^2#F75v;UJkza=M2atbp1Ll<{yE6%a20`2f5uaPLx!j|aTGg&QQ*)xRzuMhF-h8^?ny znFG)QA2UGxfn#Ip6VuZY_{gAq>+bHR0Ye4IRR$0Sqo8!eCSivFYR>-*4N_*<6b{}C z1@Ilt+=49TbTG#~F*(^`$rb!xs+W|Kq7@dVva+&*C)?ZeosfA{&lb29Yiny0&J6mSfg-_@sUYlr6c$}rqaRUdbcbc90BM6hXRjwUl4u79jC*RASWo=pAZvEL#~@YSXg|OiYERN6@@8|PV3#0et+DBw+{3i+MS&p z;n{V*xbwZ~c(_CefG{}GC5Jh5OdZ=NPIB}M_cG6s|g-vP+^f*!n*z*bXJvknm83s6kI z0F?XIIbFhES+Jmg^&MKI`UeL5PB&tCmuP?pXH+NbcNEj>5>jXABY>HBjv(apEJ#p|{6_Jj|Dd=9IttLw14 zBSuiP5p3+;UhJjycmd_xtsXP16Z)Xv!Th%dw;tA_XQhUxs+9DNl8qJQA;WS%0XZs+%Br@ z@i?tXs%vUWZj1wq&xL_kg8)4}5W7mm)=N<#WH@U$s3F zxjj^)M7GrdG>;$Bv2y13hAeh{Qrnmwn3|tFCb1gIAAp&~1vEb;!!pj!oNt}iBejL`{~v{>ug_e_1_7H@!~~qpYoJ&?EO{9Be^iv8Hv`PycOf4h;ESU2 zS|`{&>y4+5KRtEE5VBDQ_DT46fCu5P4nql1Z3t+k+u{2>MfG-Q`@;L*Pl0E_G|2Nr z=u`QPDmisT>kYh0I3q? zJiQ{y;FfpB1);kz%*z0%&@ zqMsOBhS!uC84lxFn;F1y0(&?LKwA_kJTrb(V@DAw1e-FGRZ)>ST59?7^(!KXJiEKr zfZ-?Zi>JPt$)6*K2gT`fYG71tKNDnPVsgAaxB9{F7F9IdA_T~$U>fuluYqTx0Y+`W z#RF_#aN{Y+91`GO)_S6W50@PXYErXBWo5k}>a&9=77rthl@6 z>2W}}2bL90P0f{s1{Y9TRmIkvgtmyl>#Y9%CkGMIIby&q|2aJ!H&z;{R4W?T0M|D+ z0kVqx?Y7p90a*0L^WntH@NdHk3I~OnOmO$>VxyacwKWqR9UWkH)r^edT(*W*K^`b5 zEF{>72S!v-#s_+xZPv_)e4Mc6ZgkxV2Iu@aD{EQL@F^(L(jEqPGr)bBnPqo50RD}L zh)A>c9TQP@PR=5%Oskl((*?Kfo#m@0Pdnf}Xq4#$nw1z>0%=8t1OI9Z?XbSA?a`zTY{s!Y_rx95vCQva(Y15*3F`5`+R-CT8Zvx&Gl{MwiWh1Q#sKiSi&g?2V<* z+A>JzjG78Ku0U!IKw#k#SoVLDHu!a;C1_4O5AuqYHSc!=FtE@i4-_8Q&r}5U9|AgA zN{EJ0`Ny$!0uU#FZgIgE3jA$qDXVXW1)-Chkp#~R4(J&f6F^RnR>r!xxL9v{d|)Hx zwtlMH>f112?#lnOz=mANyLuXXr11baqP*`%WvKnuCyi`aL^(M*|9~P!7Kllf8S)AW za&7((1xJJMi|&sR(;T(lvDTCyHJ`;5e7pg*(?l&Em7uJh$L>U7HngF}j&?Fq+59X{ z;IJKJwL&|sckk3@0rk%c=O^vze*YeGm@Xf+1P-mj`~CSkHbB_Q+T8(Kn(Bavm>5p1 zXx4(Is{o#e7}7V=u6pQLSY3e9u5j5>{+BK^zroSuag+x$_?nXP2}Ctff`UJ8ulGK|-NhhE3v_mN z>b=kRxjL-hNYXEe%S~ZaWCHvUn8U*OtF5YgnXW0UfyNt+=&&jOcq*ZSH>w=4C{mj3 z;k_*{Bh7nY637NoU9)!3qDsc+?(!h#cfyx1L2%OkW~*2j1dAFrK$Csr67sIvihivZ z(6cs}E}rFh+(dt6GmuuF54c9BZwE7Xq zcxSd`X|+FUW{i{-yIft(MIq#^>8dkyX^G~y=y$cK`tqs23iahDPBymq{$wX;FZaMx zt1dzX_OZHem*}*B_~!GuWQn5^iURYRQ&NJhS4u26{G5~X3GmLr&3OPvM1cGpaXt%d zcT8<1Tgc2X%ZH~n%gdK~O-VUKYkOC+4mwR6sAR^SL>fqEp?(2=D%ezlGi<93AS~w8 z*MHxg0W_xU?!bk-m>2?J|H5&|c`^$M{_LFy4(GsU7aAu3S7YFSjK5U=#5amoXZVyF zr=g~3=bm_9MJf70KU!qJ;rD^c9qe?vLG;%rV`IOXx_sameD_Yu%^yr{VfpkkLy)|= zEs!C=q4~ng8(Z?eu3N;XX=xvDwk&$p=)n4(S8((YOtZ57Hvz6Tfabjb)0qlWO8{|d zjA8!iJ-Z{B1{hh4D@8JDk0B=dpJj^9=`23K7Z(p6 zUj0NrFkuXW~@&QiB8~y9(X!R<6?KEOmYL9k%+fz+T zFxE^knxXfP1!*erx~%S;F6;q>DM6F7v|01zNc*FB#)DXsWe2VAT+_|pL-ezIp6sV> zIozdxUNd#+O%&pobly54g(*`9N0P?HO6RQaoOsIyr13iRZe;{4(KWTM{iqce5)Sz( zQmyqG&)qy(Nd4x?u6yYookEzvJXvh`oHS55ehKSMPv>>;M{3C5TZxcdY2hQ^L#ZD> zvluwYj*d#%Hf3wpN_5y4(Ch@On|cy-fdYR5XgMlB;}TtWrPYebg@FfV+?7J-0hUfLgE3m9YY$PN%{I0nToNhQv(Jq-0Um zkm4uKvV2w)6nCLRCj+o1?Wvp(I_v zBW|v??pg%^Nx;h{mI9?2Shf zK?4FD)q%F7C8!gCkRtcTNQp{&3ZWtd=EKvML=He_kYGqqE6tKX?+C>pJRXt2%K}9= zB(S+z5Z>_wfOsEchA-WY3pKjlhHdjSdFzD#{U^QBUH}Y1J1<`bRWr~ec2itiI6Mvw z;GSr?;7GE7FAJECdx5K5YO)<~BtYE84vhFYXw(88x?KL&vNBxI zk&rM`ywb5Lh>H+x7zk+x%5Gs>n}QsuNMN_qZK(4&Oh7xd(tpqVx%ql6y7oeKfdKTg z0g6n09+*!-wC@HB5<`nTQF;&S{(yl z9AVA*#f5UQK4A;@Y;MmS3DdiUu{pRj>~z#}6%~t`alGCKpkxT>hC=PeGrq4{230s+ zk&KoCDNxR-e2>MLmW@Dw%4C5KI8gvPqct_wZTEOi*Z&xQLoTzLQL_|X?`m!`VPpkN3_G88>T(6xkifH}(^=mMYUgb1BW=-HW zi+do<0onT-OAH`FOyDYh&PAyp;A=d=4I(A=O2?1{fo`6c?~S5i7N4 zN9A@b-Abpad=+X6VPBGXp-U1soFG(C4gv=+F+e0z-rkKWJL?Tw>0RK^Jm1OZiIon4 zcY@8=Imm#bP4<`hE4!N#@| z^*}5k0pDT+Mlfd-9gvSeTqGs^1X7V10Kz1^_7wIF8^nP7j3MDb1PgRQ_7SeL0)l1S zEC9eSz$t|Q>JXkpK`|}i<<%h3Sh17=BI19n?CnL@|1ozzr=!c3T5TG)s3HaRSUWt_ z!hB zw`Z#u&CJaudY6-|K|}af9e9>R-sI&0VUV&4;3PM!!*pGuPWXQp1yA4DH%;By(;Z*A&qN**0nZhAJ;$>g zQln?~@Wm>xTt-Qu;Cg^-oVFB24FBpq2TAESAWN(Psl+HA#Jal|84bxD^;9d7Gum&! zpiJ1?!P7(j_fVAo^LP%E>(C#G)c=hbC1Pg*lnfyqnLRvD7F!uQ|9dnE*Z5L3c(BP! z?tkq6y^-=Zl{@>*e|I+HdiejpRUKX<_;0yJE)M$Ny~C(?q&nz+L;zh0{E?GVmMjxD H3I6{8DYf}D diff --git a/assets/nf-core-mhcquant_logo_light.png b/assets/nf-core-mhcquant_logo_light.png new file mode 100644 index 00000000..dee3db82 --- /dev/null +++ b/assets/nf-core-mhcquant_logo_light.png @@ -0,0 +1,9 @@ + + + + 508 Resource Limit Is Reached + +

Resource Limit Is Reached

+The website is temporarily unable to service your request as it exceeded resource limit. +Please try again later. + diff --git a/assets/sendmail_template.txt b/assets/sendmail_template.txt index 43aaddfb..f3b6b8cf 100644 --- a/assets/sendmail_template.txt +++ b/assets/sendmail_template.txt @@ -12,9 +12,9 @@ $email_html Content-Type: image/png;name="nf-core-mhcquant_logo.png" Content-Transfer-Encoding: base64 Content-ID: -Content-Disposition: inline; filename="nf-core-mhcquant_logo.png" +Content-Disposition: inline; filename="nf-core-mhcquant_logo_light.png" -<% out << new File("$projectDir/assets/nf-core-mhcquant_logo.png"). +<% out << new File("$projectDir/assets/nf-core-mhcquant_logo_light.png"). bytes. encodeBase64(). toString(). diff --git a/bin/scrape_software_versions.py b/bin/scrape_software_versions.py deleted file mode 100755 index 44a9c393..00000000 --- a/bin/scrape_software_versions.py +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python -from __future__ import print_function -import os - -results = {} -version_files = [x for x in os.listdir(".") if x.endswith(".version.txt")] -for version_file in version_files: - - software = version_file.replace(".version.txt", "") - if software == "pipeline": - software = "nf-core/mhcquant" - - with open(version_file) as fin: - version = fin.read().strip() - results[software] = version - -# Dump to YAML -print( - """ -id: 'software_versions' -section_name: 'nf-core/mhcquant Software Versions' -section_href: 'https://github.com/nf-core/mhcquant' -plot_type: 'html' -description: 'are collected at run time from the software output.' -data: | -
-""" -) -for k, v in sorted(results.items()): - print("
{}
{}
".format(k, v)) -print("
") - -# Write out as tsv file: -with open("software_versions.tsv", "w") as f: - for k, v in sorted(results.items()): - f.write("{}\t{}\n".format(k, v)) diff --git a/conf/base.config b/conf/base.config index d184fc65..7c4b6799 100644 --- a/conf/base.config +++ b/conf/base.config @@ -54,4 +54,7 @@ process { errorStrategy = 'retry' maxRetries = 2 } + withName:CUSTOM_DUMPSOFTWAREVERSIONS { + cache = false + } } diff --git a/conf/modules.config b/conf/modules.config index 0b1bfdec..a0506a4d 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -1,32 +1,41 @@ /* ======================================================================================== - Config file for defining DSL2 per module options + Config file for defining DSL2 per module options and publishing paths ======================================================================================== Available keys to override module options: - args = Additional arguments appended to command in module. - args2 = Second set of arguments appended to command in module (multi-tool modules). - args3 = Third set of arguments appended to command in module (multi-tool modules). - publish_dir = Directory to publish results. - publish_by_meta = Groovy list of keys available in meta map to append as directories to "publish_dir" path - If publish_by_meta = true - Value of ${meta['id']} is appended as a directory to "publish_dir" path - If publish_by_meta = ['id', 'custompath'] - If "id" is in meta map and "custompath" isn't then "${meta['id']}/custompath/" - is appended as a directory to "publish_dir" path - If publish_by_meta = false / null - No directories are appended to "publish_dir" path - publish_files = Groovy map where key = "file_ext" and value = "directory" to publish results for that file extension - The value of "directory" is appended to the standard "publish_dir" path as defined above. - If publish_files = null (unspecified) - All files are published. - If publish_files = false - No files are published. - suffix = File name suffix for output files. + ext.args = Additional arguments appended to command in module. + ext.args2 = Second set of arguments appended to command in module (multi-tool modules). + ext.args3 = Third set of arguments appended to command in module (multi-tool modules). + ext.prefix = File name prefix for output files. ---------------------------------------------------------------------------------------- */ -params { - modules { - 'fastqc' { - args = "--quiet" - } - 'multiqc' { - args = "" - } +process { + + publishDir = [ + path: { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }, + mode: 'copy', + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + + withName: SAMPLESHEET_CHECK { + publishDir = [ + path: { "${params.outdir}/pipeline_info" }, + mode: 'copy', + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } + + withName: FASTQC { + ext.args = '--quiet' } + + withName: CUSTOM_DUMPSOFTWAREVERSIONS { + publishDir = [ + path: { "${params.outdir}/pipeline_info" }, + mode: 'copy', + pattern: '*_versions.yml' + ] + } + } diff --git a/conf/test.config b/conf/test.config index 1cb53a57..4a556751 100644 --- a/conf/test.config +++ b/conf/test.config @@ -16,8 +16,8 @@ params { // Limit resources so that this can run on GitHub Actions max_cpus = 2 - max_memory = 6.GB - max_time = 6.h + max_memory = '6.GB' + max_time = '6.h' // Input data // TODO nf-core: Specify the paths to your test data on nf-core/test-datasets diff --git a/docs/images/nf-core-mhcquant_logo.png b/docs/images/nf-core-mhcquant_logo.png deleted file mode 100644 index d7d6801b65a571cd3900c3a1641ff8912f15e07d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34566 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 NNlsNZU)t#X{{b~Nz;*xt diff --git a/docs/images/nf-core-mhcquant_logo_dark.png b/docs/images/nf-core-mhcquant_logo_dark.png new file mode 100644 index 00000000..e69de29b diff --git a/docs/images/nf-core-mhcquant_logo_light.png b/docs/images/nf-core-mhcquant_logo_light.png new file mode 100644 index 0000000000000000000000000000000000000000..6c1dcf663cb645d2364ff4d87ceadfb4b1a43ef9 GIT binary patch literal 72389 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�ev`Q}H7y#R1zKkC5n?0_OP7^FqWWeXhX0t0pNK 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

)bNtXB<>| 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 diff --git a/docs/usage.md b/docs/usage.md index 6b8e22e0..351248ce 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -181,42 +181,6 @@ process { > **NB:** We specify just the process name i.e. `STAR_ALIGN` in the config file and not the full task name string that is printed to screen in the error message or on the terminal whilst the pipeline is running i.e. `RNASEQ:ALIGN_STAR:STAR_ALIGN`. You may get a warning suggesting that the process selector isn't recognised but you can ignore that if the process name has been specified correctly. This is something that needs to be fixed upstream in core Nextflow. -### Tool-specific options - -For the ultimate flexibility, we have implemented and are using Nextflow DSL2 modules in a way where it is possible for both developers and users to change tool-specific command-line arguments (e.g. providing an additional command-line argument to the `STAR_ALIGN` process) as well as publishing options (e.g. saving files produced by the `STAR_ALIGN` process that aren't saved by default by the pipeline). In the majority of instances, as a user you won't have to change the default options set by the pipeline developer(s), however, there may be edge cases where creating a simple custom config file can improve the behaviour of the pipeline if for example it is failing due to a weird error that requires setting a tool-specific parameter to deal with smaller / larger genomes. - -The command-line arguments passed to STAR in the `STAR_ALIGN` module are a combination of: - -* Mandatory arguments or those that need to be evaluated within the scope of the module, as supplied in the [`script`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/modules/nf-core/software/star/align/main.nf#L49-L55) section of the module file. - -* An [`options.args`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/modules/nf-core/software/star/align/main.nf#L56) string of non-mandatory parameters that is set to be empty by default in the module but can be overwritten when including the module in the sub-workflow / workflow context via the `addParams` Nextflow option. - -The nf-core/rnaseq pipeline has a sub-workflow (see [terminology](https://github.com/nf-core/modules#terminology)) specifically to align reads with STAR and to sort, index and generate some basic stats on the resulting BAM files using SAMtools. At the top of this file we import the `STAR_ALIGN` module via the Nextflow [`include`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/subworkflows/nf-core/align_star.nf#L10) keyword and by default the options passed to the module via the `addParams` option are set as an empty Groovy map [here](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/subworkflows/nf-core/align_star.nf#L5); this in turn means `options.args` will be set to empty by default in the module file too. This is an intentional design choice and allows us to implement well-written sub-workflows composed of a chain of tools that by default run with the bare minimum parameter set for any given tool in order to make it much easier to share across pipelines and to provide the flexibility for users and developers to customise any non-mandatory arguments. - -When including the sub-workflow above in the main pipeline workflow we use the same `include` statement, however, we now have the ability to overwrite options for each of the tools in the sub-workflow including the [`align_options`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/workflows/rnaseq.nf#L225) variable that will be used specifically to overwrite the optional arguments passed to the `STAR_ALIGN` module. In this case, the options to be provided to `STAR_ALIGN` have been assigned sensible defaults by the developer(s) in the pipeline's [`modules.config`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/modules.config#L70-L74) and can be accessed and customised in the [workflow context](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/workflows/rnaseq.nf#L201-L204) too before eventually passing them to the sub-workflow as a Groovy map called `star_align_options`. These options will then be propagated from `workflow -> sub-workflow -> module`. - -As mentioned at the beginning of this section it may also be necessary for users to overwrite the options passed to modules to be able to customise specific aspects of the way in which a particular tool is executed by the pipeline. Given that all of the default module options are stored in the pipeline's `modules.config` as a [`params` variable](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/modules.config#L24-L25) it is also possible to overwrite any of these options via a custom config file. - -Say for example we want to append an additional, non-mandatory parameter (i.e. `--outFilterMismatchNmax 16`) to the arguments passed to the `STAR_ALIGN` module. Firstly, we need to copy across the default `args` specified in the [`modules.config`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/modules.config#L71) and create a custom config file that is a composite of the default `args` as well as the additional options you would like to provide. This is very important because Nextflow will overwrite the default value of `args` that you provide via the custom config. - -As you will see in the example below, we have: - -* appended `--outFilterMismatchNmax 16` to the default `args` used by the module. -* changed the default `publish_dir` value to where the files will eventually be published in the main results directory. -* appended `'bam':''` to the default value of `publish_files` so that the BAM files generated by the process will also be saved in the top-level results directory for the module. Note: `'out':'log'` means any file/directory ending in `out` will now be saved in a separate directory called `my_star_directory/log/`. - -```nextflow -params { - modules { - 'star_align' { - args = "--quantMode TranscriptomeSAM --twopassMode Basic --outSAMtype BAM Unsorted --readFilesCommand zcat --runRNGseed 0 --outFilterMultimapNmax 20 --alignSJDBoverhangMin 1 --outSAMattributes NH HI AS NM MD --quantTranscriptomeBan Singleend --outFilterMismatchNmax 16" - publish_dir = "my_star_directory" - publish_files = ['out':'log', 'tab':'log', 'bam':''] - } - } -} -``` - ### Updating containers The [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html) implementation of this pipeline uses one container per process which makes it much easier to maintain and update software dependencies. If for some reason you need to use a different version of a particular tool with the pipeline then you just need to identify the `process` name and override the Nextflow `container` definition for that process using the `withName` declaration. For example, in the [nf-core/viralrecon](https://nf-co.re/viralrecon) pipeline a tool called [Pangolin](https://github.com/cov-lineages/pangolin) has been used during the COVID-19 pandemic to assign lineages to SARS-CoV-2 genome sequenced samples. Given that the lineage assignments change quite frequently it doesn't make sense to re-release the nf-core/viralrecon everytime a new version of Pangolin has been released. However, you can override the default container used by the pipeline by creating a custom config file and passing it as a command-line argument via `-c custom.config`. diff --git a/lib/NfcoreSchema.groovy b/lib/NfcoreSchema.groovy index 8d6920dd..40ab65f2 100755 --- a/lib/NfcoreSchema.groovy +++ b/lib/NfcoreSchema.groovy @@ -105,9 +105,13 @@ class NfcoreSchema { // Collect expected parameters from the schema def expectedParams = [] + def enums = [:] for (group in schemaParams) { for (p in group.value['properties']) { expectedParams.push(p.key) + if (group.value['properties'][p.key].containsKey('enum')) { + enums[p.key] = group.value['properties'][p.key]['enum'] + } } } @@ -155,7 +159,7 @@ class NfcoreSchema { println '' log.error 'ERROR: Validation of pipeline parameters failed!' JSONObject exceptionJSON = e.toJSON() - printExceptions(exceptionJSON, params_json, log) + printExceptions(exceptionJSON, params_json, log, enums) println '' has_error = true } @@ -202,7 +206,7 @@ class NfcoreSchema { } def type = '[' + group_params.get(param).type + ']' def description = group_params.get(param).description - def defaultValue = group_params.get(param).default ? " [default: " + group_params.get(param).default.toString() + "]" : '' + def defaultValue = group_params.get(param).default != null ? " [default: " + group_params.get(param).default.toString() + "]" : '' def description_default = description + colors.dim + defaultValue + colors.reset // Wrap long description texts // Loosely based on https://dzone.com/articles/groovy-plain-text-word-wrap @@ -260,13 +264,12 @@ class NfcoreSchema { // Get pipeline parameters defined in JSON Schema def Map params_summary = [:] - def blacklist = ['hostnames'] def params_map = paramsLoad(getSchemaPath(workflow, schema_filename=schema_filename)) for (group in params_map.keySet()) { def sub_params = new LinkedHashMap() def group_params = params_map.get(group) // This gets the parameters of that particular group for (param in group_params.keySet()) { - if (params.containsKey(param) && !blacklist.contains(param)) { + if (params.containsKey(param)) { def params_value = params.get(param) def schema_value = group_params.get(param).default def param_type = group_params.get(param).type @@ -330,7 +333,7 @@ class NfcoreSchema { // // Loop over nested exceptions and print the causingException // - private static void printExceptions(ex_json, params_json, log) { + private static void printExceptions(ex_json, params_json, log, enums, limit=5) { def causingExceptions = ex_json['causingExceptions'] if (causingExceptions.length() == 0) { def m = ex_json['message'] =~ /required key \[([^\]]+)\] not found/ @@ -346,11 +349,20 @@ class NfcoreSchema { else { def param = ex_json['pointerToViolation'] - ~/^#\// def param_val = params_json[param].toString() - log.error "* --${param}: ${ex_json['message']} (${param_val})" + if (enums.containsKey(param)) { + def error_msg = "* --${param}: '${param_val}' is not a valid choice (Available choices" + if (enums[param].size() > limit) { + log.error "${error_msg} (${limit} of ${enums[param].size()}): ${enums[param][0..limit-1].join(', ')}, ... )" + } else { + log.error "${error_msg}: ${enums[param].join(', ')})" + } + } else { + log.error "* --${param}: ${ex_json['message']} (${param_val})" + } } } for (ex in causingExceptions) { - printExceptions(ex, params_json, log) + printExceptions(ex, params_json, log, enums) } } diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy index 44551e0a..2fc0a9b9 100755 --- a/lib/NfcoreTemplate.groovy +++ b/lib/NfcoreTemplate.groovy @@ -19,27 +19,16 @@ class NfcoreTemplate { } // - // Check params.hostnames + // Warn if a -profile or Nextflow config has not been provided to run the pipeline // - public static void hostName(workflow, params, log) { - Map colors = logColours(params.monochrome_logs) - if (params.hostnames) { - try { - def hostname = "hostname".execute().text.trim() - params.hostnames.each { prof, hnames -> - hnames.each { hname -> - if (hostname.contains(hname) && !workflow.profile.contains(prof)) { - log.info "=${colors.yellow}====================================================${colors.reset}=\n" + - "${colors.yellow}WARN: You are running with `-profile $workflow.profile`\n" + - " but your machine hostname is ${colors.white}'$hostname'${colors.reset}.\n" + - " ${colors.yellow_bold}Please use `-profile $prof${colors.reset}`\n" + - "=${colors.yellow}====================================================${colors.reset}=" - } - } - } - } catch (Exception e) { - log.warn "[$workflow.manifest.name] Could not determine 'hostname' - skipping check. Reason: ${e.message}." - } + public static void checkConfigProvided(workflow, log) { + if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { + log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + + "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + + " (1) Using an existing pipeline profile e.g. `-profile docker` or `-profile singularity`\n" + + " (2) Using an existing nf-core/configs for your Institution e.g. `-profile crick` or `-profile uppmax`\n" + + " (3) Using your own local custom config e.g. `-c /path/to/your/custom.config`\n\n" + + "Please refer to the quick start section and usage docs for the pipeline.\n " } } @@ -168,7 +157,6 @@ class NfcoreTemplate { log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed successfully, but with errored process(es) ${colors.reset}-" } } else { - hostName(workflow, params, log) log.info "-${colors.purple}[$workflow.manifest.name]${colors.red} Pipeline completed with errors${colors.reset}-" } } diff --git a/lib/Utils.groovy b/lib/Utils.groovy index 18173e98..1b88aec0 100755 --- a/lib/Utils.groovy +++ b/lib/Utils.groovy @@ -37,11 +37,4 @@ class Utils { "===================================================================================" } } - - // - // Join module args with appropriate spacing - // - public static String joinModuleArgs(args_list) { - return ' ' + args_list.join(' ') - } } diff --git a/lib/WorkflowMain.groovy b/lib/WorkflowMain.groovy index f0bb877e..c8d892e6 100755 --- a/lib/WorkflowMain.groovy +++ b/lib/WorkflowMain.groovy @@ -61,6 +61,9 @@ class WorkflowMain { // Print parameter summary log to screen log.info paramsSummaryLog(workflow, params, log) + // Check that a -profile or Nextflow config has been provided to run the pipeline + NfcoreTemplate.checkConfigProvided(workflow, log) + // Check that conda channels are set-up correctly if (params.enable_conda) { Utils.checkCondaChannels(log) @@ -69,9 +72,6 @@ class WorkflowMain { // Check AWS batch settings NfcoreTemplate.awsBatch(workflow, params) - // Check the hostnames against configured profiles - NfcoreTemplate.hostName(workflow, params, log) - // Check input has been provided if (!params.input) { log.error "Please provide an input samplesheet to the pipeline e.g. '--input samplesheet.csv'" diff --git a/modules.json b/modules.json index fe99308c..b742a634 100644 --- a/modules.json +++ b/modules.json @@ -3,12 +3,15 @@ "homePage": "https://github.com/nf-core/mhcquant", "repos": { "nf-core/modules": { + "custom/dumpsoftwareversions": { + "git_sha": "20d8250d9f39ddb05dfb437603aaf99b5c0b2b41" + }, "fastqc": { - "git_sha": "e937c7950af70930d1f34bb961403d9d2aa81c7d" + "git_sha": "9d0cad583b9a71a6509b754fdf589cbfbed08961" }, "multiqc": { - "git_sha": "e937c7950af70930d1f34bb961403d9d2aa81c7d" + "git_sha": "20d8250d9f39ddb05dfb437603aaf99b5c0b2b41" } } } -} +} \ No newline at end of file diff --git a/modules/local/functions.nf b/modules/local/functions.nf deleted file mode 100644 index da9da093..00000000 --- a/modules/local/functions.nf +++ /dev/null @@ -1,68 +0,0 @@ -// -// Utility functions used in nf-core DSL2 module files -// - -// -// Extract name of software tool from process name using $task.process -// -def getSoftwareName(task_process) { - return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() -} - -// -// Function to initialise default values and to generate a Groovy Map of available options for nf-core modules -// -def initOptions(Map args) { - def Map options = [:] - options.args = args.args ?: '' - options.args2 = args.args2 ?: '' - options.args3 = args.args3 ?: '' - options.publish_by_meta = args.publish_by_meta ?: [] - options.publish_dir = args.publish_dir ?: '' - options.publish_files = args.publish_files - options.suffix = args.suffix ?: '' - return options -} - -// -// Tidy up and join elements of a list to return a path string -// -def getPathFromList(path_list) { - def paths = path_list.findAll { item -> !item?.trim().isEmpty() } // Remove empty entries - paths = paths.collect { it.trim().replaceAll("^[/]+|[/]+\$", "") } // Trim whitespace and trailing slashes - return paths.join('/') -} - -// -// Function to save/publish module results -// -def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) - } - } - } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } - } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" - } - } -} diff --git a/modules/local/get_software_versions.nf b/modules/local/get_software_versions.nf deleted file mode 100644 index 01220c97..00000000 --- a/modules/local/get_software_versions.nf +++ /dev/null @@ -1,33 +0,0 @@ -// Import generic module functions -include { saveFiles } from './functions' - -params.options = [:] - -process GET_SOFTWARE_VERSIONS { - publishDir "${params.outdir}", - mode: params.publish_dir_mode, - saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:'pipeline_info', meta:[:], publish_by_meta:[]) } - - conda (params.enable_conda ? "conda-forge::python=3.8.3" : null) - if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/python:3.8.3" - } else { - container "quay.io/biocontainers/python:3.8.3" - } - - cache false - - input: - path versions - - output: - path "software_versions.tsv" , emit: tsv - path 'software_versions_mqc.yaml', emit: yaml - - script: // This script is bundled with the pipeline, in nf-core/mhcquant/bin/ - """ - echo $workflow.manifest.version > pipeline.version.txt - echo $workflow.nextflow.version > nextflow.version.txt - scrape_software_versions.py &> software_versions_mqc.yaml - """ -} diff --git a/modules/local/samplesheet_check.nf b/modules/local/samplesheet_check.nf index b2e6ad62..9fe13398 100644 --- a/modules/local/samplesheet_check.nf +++ b/modules/local/samplesheet_check.nf @@ -1,31 +1,27 @@ -// Import generic module functions -include { saveFiles } from './functions' - -params.options = [:] - process SAMPLESHEET_CHECK { tag "$samplesheet" - publishDir "${params.outdir}", - mode: params.publish_dir_mode, - saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:'pipeline_info', meta:[:], publish_by_meta:[]) } conda (params.enable_conda ? "conda-forge::python=3.8.3" : null) - if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/python:3.8.3" - } else { - container "quay.io/biocontainers/python:3.8.3" - } + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/python:3.8.3' : + 'quay.io/biocontainers/python:3.8.3' }" input: path samplesheet output: - path '*.csv' + path '*.csv' , emit: csv + path "versions.yml", emit: versions script: // This script is bundled with the pipeline, in nf-core/mhcquant/bin/ """ check_samplesheet.py \\ $samplesheet \\ samplesheet.valid.csv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + python: \$(python --version | sed 's/Python //g') + END_VERSIONS """ } diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf b/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf new file mode 100644 index 00000000..934bb467 --- /dev/null +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf @@ -0,0 +1,21 @@ +process CUSTOM_DUMPSOFTWAREVERSIONS { + label 'process_low' + + // Requires `pyyaml` which does not have a dedicated container but is in the MultiQC container + conda (params.enable_conda ? "bioconda::multiqc=1.11" : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/multiqc:1.11--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.11--pyhdfd78af_0' }" + + input: + path versions + + output: + path "software_versions.yml" , emit: yml + path "software_versions_mqc.yml", emit: mqc_yml + path "versions.yml" , emit: versions + + script: + def args = task.ext.args ?: '' + template 'dumpsoftwareversions.py' +} diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml new file mode 100644 index 00000000..5b5b8a60 --- /dev/null +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml @@ -0,0 +1,34 @@ +name: custom_dumpsoftwareversions +description: Custom module used to dump software versions within the nf-core pipeline template +keywords: + - custom + - version +tools: + - custom: + description: Custom module used to dump software versions within the nf-core pipeline template + homepage: https://github.com/nf-core/tools + documentation: https://github.com/nf-core/tools + licence: ['MIT'] +input: + - versions: + type: file + description: YML file containing software versions + pattern: "*.yml" + +output: + - yml: + type: file + description: Standard YML file containing software versions + pattern: "software_versions.yml" + - mqc_yml: + type: file + description: MultiQC custom content YML file containing software versions + pattern: "software_versions_mqc.yml" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@drpatelh" + - "@grst" diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py b/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py new file mode 100644 index 00000000..d1390392 --- /dev/null +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/templates/dumpsoftwareversions.py @@ -0,0 +1,89 @@ +#!/usr/bin/env python + +import yaml +import platform +from textwrap import dedent + + +def _make_versions_html(versions): + html = [ + dedent( + """\\ + + + + + + + + + + """ + ) + ] + for process, tmp_versions in sorted(versions.items()): + html.append("") + for i, (tool, version) in enumerate(sorted(tmp_versions.items())): + html.append( + dedent( + f"""\\ + + + + + + """ + ) + ) + html.append("") + html.append("
Process Name Software Version
{process if (i == 0) else ''}{tool}{version}
") + return "\\n".join(html) + + +versions_this_module = {} +versions_this_module["${task.process}"] = { + "python": platform.python_version(), + "yaml": yaml.__version__, +} + +with open("$versions") as f: + versions_by_process = yaml.load(f, Loader=yaml.BaseLoader) | versions_this_module + +# aggregate versions by the module name (derived from fully-qualified process name) +versions_by_module = {} +for process, process_versions in versions_by_process.items(): + module = process.split(":")[-1] + try: + assert versions_by_module[module] == process_versions, ( + "We assume that software versions are the same between all modules. " + "If you see this error-message it means you discovered an edge-case " + "and should open an issue in nf-core/tools. " + ) + except KeyError: + versions_by_module[module] = process_versions + +versions_by_module["Workflow"] = { + "Nextflow": "$workflow.nextflow.version", + "$workflow.manifest.name": "$workflow.manifest.version", +} + +versions_mqc = { + "id": "software_versions", + "section_name": "${workflow.manifest.name} Software Versions", + "section_href": "https://github.com/${workflow.manifest.name}", + "plot_type": "html", + "description": "are collected at run time from the software output.", + "data": _make_versions_html(versions_by_module), +} + +with open("software_versions.yml", "w") as f: + yaml.dump(versions_by_module, f, default_flow_style=False) +with open("software_versions_mqc.yml", "w") as f: + yaml.dump(versions_mqc, f, default_flow_style=False) + +with open("versions.yml", "w") as f: + yaml.dump(versions_this_module, f, default_flow_style=False) diff --git a/modules/nf-core/modules/fastqc/functions.nf b/modules/nf-core/modules/fastqc/functions.nf deleted file mode 100644 index da9da093..00000000 --- a/modules/nf-core/modules/fastqc/functions.nf +++ /dev/null @@ -1,68 +0,0 @@ -// -// Utility functions used in nf-core DSL2 module files -// - -// -// Extract name of software tool from process name using $task.process -// -def getSoftwareName(task_process) { - return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() -} - -// -// Function to initialise default values and to generate a Groovy Map of available options for nf-core modules -// -def initOptions(Map args) { - def Map options = [:] - options.args = args.args ?: '' - options.args2 = args.args2 ?: '' - options.args3 = args.args3 ?: '' - options.publish_by_meta = args.publish_by_meta ?: [] - options.publish_dir = args.publish_dir ?: '' - options.publish_files = args.publish_files - options.suffix = args.suffix ?: '' - return options -} - -// -// Tidy up and join elements of a list to return a path string -// -def getPathFromList(path_list) { - def paths = path_list.findAll { item -> !item?.trim().isEmpty() } // Remove empty entries - paths = paths.collect { it.trim().replaceAll("^[/]+|[/]+\$", "") } // Trim whitespace and trailing slashes - return paths.join('/') -} - -// -// Function to save/publish module results -// -def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) - } - } - } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } - } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" - } - } -} diff --git a/modules/nf-core/modules/fastqc/main.nf b/modules/nf-core/modules/fastqc/main.nf index 39c327b2..d250eca0 100644 --- a/modules/nf-core/modules/fastqc/main.nf +++ b/modules/nf-core/modules/fastqc/main.nf @@ -1,22 +1,11 @@ -// Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' - -params.options = [:] -options = initOptions(params.options) - process FASTQC { tag "$meta.id" label 'process_medium' - publishDir "${params.outdir}", - mode: params.publish_dir_mode, - saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), meta:meta, publish_by_meta:['id']) } conda (params.enable_conda ? "bioconda::fastqc=0.11.9" : null) - if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0" - } else { - container "quay.io/biocontainers/fastqc:0.11.9--0" - } + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0' : + 'quay.io/biocontainers/fastqc:0.11.9--0' }" input: tuple val(meta), path(reads) @@ -24,24 +13,32 @@ process FASTQC { output: tuple val(meta), path("*.html"), emit: html tuple val(meta), path("*.zip") , emit: zip - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: + def args = task.ext.args ?: '' // Add soft-links to original FastQs for consistent naming in pipeline - def software = getSoftwareName(task.process) - def prefix = options.suffix ? "${meta.id}${options.suffix}" : "${meta.id}" + def prefix = task.ext.prefix ?: "${meta.id}" if (meta.single_end) { """ [ ! -f ${prefix}.fastq.gz ] && ln -s $reads ${prefix}.fastq.gz - fastqc $options.args --threads $task.cpus ${prefix}.fastq.gz - fastqc --version | sed -e "s/FastQC v//g" > ${software}.version.txt + fastqc $args --threads $task.cpus ${prefix}.fastq.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) + END_VERSIONS """ } else { """ [ ! -f ${prefix}_1.fastq.gz ] && ln -s ${reads[0]} ${prefix}_1.fastq.gz [ ! -f ${prefix}_2.fastq.gz ] && ln -s ${reads[1]} ${prefix}_2.fastq.gz - fastqc $options.args --threads $task.cpus ${prefix}_1.fastq.gz ${prefix}_2.fastq.gz - fastqc --version | sed -e "s/FastQC v//g" > ${software}.version.txt + fastqc $args --threads $task.cpus ${prefix}_1.fastq.gz ${prefix}_2.fastq.gz + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) + END_VERSIONS """ } } diff --git a/modules/nf-core/modules/fastqc/meta.yml b/modules/nf-core/modules/fastqc/meta.yml index 8eb9953d..b09553a3 100644 --- a/modules/nf-core/modules/fastqc/meta.yml +++ b/modules/nf-core/modules/fastqc/meta.yml @@ -15,6 +15,7 @@ tools: overrepresented sequences. homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/ + licence: ['GPL-2.0-only'] input: - meta: type: map @@ -40,10 +41,10 @@ output: type: file description: FastQC report archive pattern: "*_{fastqc.zip}" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@drpatelh" - "@grst" diff --git a/modules/nf-core/modules/multiqc/functions.nf b/modules/nf-core/modules/multiqc/functions.nf deleted file mode 100644 index da9da093..00000000 --- a/modules/nf-core/modules/multiqc/functions.nf +++ /dev/null @@ -1,68 +0,0 @@ -// -// Utility functions used in nf-core DSL2 module files -// - -// -// Extract name of software tool from process name using $task.process -// -def getSoftwareName(task_process) { - return task_process.tokenize(':')[-1].tokenize('_')[0].toLowerCase() -} - -// -// Function to initialise default values and to generate a Groovy Map of available options for nf-core modules -// -def initOptions(Map args) { - def Map options = [:] - options.args = args.args ?: '' - options.args2 = args.args2 ?: '' - options.args3 = args.args3 ?: '' - options.publish_by_meta = args.publish_by_meta ?: [] - options.publish_dir = args.publish_dir ?: '' - options.publish_files = args.publish_files - options.suffix = args.suffix ?: '' - return options -} - -// -// Tidy up and join elements of a list to return a path string -// -def getPathFromList(path_list) { - def paths = path_list.findAll { item -> !item?.trim().isEmpty() } // Remove empty entries - paths = paths.collect { it.trim().replaceAll("^[/]+|[/]+\$", "") } // Trim whitespace and trailing slashes - return paths.join('/') -} - -// -// Function to save/publish module results -// -def saveFiles(Map args) { - if (!args.filename.endsWith('.version.txt')) { - def ioptions = initOptions(args.options) - def path_list = [ ioptions.publish_dir ?: args.publish_dir ] - if (ioptions.publish_by_meta) { - def key_list = ioptions.publish_by_meta instanceof List ? ioptions.publish_by_meta : args.publish_by_meta - for (key in key_list) { - if (args.meta && key instanceof String) { - def path = key - if (args.meta.containsKey(key)) { - path = args.meta[key] instanceof Boolean ? "${key}_${args.meta[key]}".toString() : args.meta[key] - } - path = path instanceof String ? path : '' - path_list.add(path) - } - } - } - if (ioptions.publish_files instanceof Map) { - for (ext in ioptions.publish_files) { - if (args.filename.endsWith(ext.key)) { - def ext_list = path_list.collect() - ext_list.add(ext.value) - return "${getPathFromList(ext_list)}/$args.filename" - } - } - } else if (ioptions.publish_files == null) { - return "${getPathFromList(path_list)}/$args.filename" - } - } -} diff --git a/modules/nf-core/modules/multiqc/main.nf b/modules/nf-core/modules/multiqc/main.nf index da780800..3dceb162 100644 --- a/modules/nf-core/modules/multiqc/main.nf +++ b/modules/nf-core/modules/multiqc/main.nf @@ -1,21 +1,10 @@ -// Import generic module functions -include { initOptions; saveFiles; getSoftwareName } from './functions' - -params.options = [:] -options = initOptions(params.options) - process MULTIQC { label 'process_medium' - publishDir "${params.outdir}", - mode: params.publish_dir_mode, - saveAs: { filename -> saveFiles(filename:filename, options:params.options, publish_dir:getSoftwareName(task.process), meta:[:], publish_by_meta:[]) } - conda (params.enable_conda ? "bioconda::multiqc=1.10.1" : null) - if (workflow.containerEngine == 'singularity' && !params.singularity_pull_docker_container) { - container "https://depot.galaxyproject.org/singularity/multiqc:1.10.1--py_0" - } else { - container "quay.io/biocontainers/multiqc:1.10.1--py_0" - } + conda (params.enable_conda ? 'bioconda::multiqc=1.11' : null) + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/multiqc:1.11--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.11--pyhdfd78af_0' }" input: path multiqc_files @@ -24,12 +13,16 @@ process MULTIQC { path "*multiqc_report.html", emit: report path "*_data" , emit: data path "*_plots" , optional:true, emit: plots - path "*.version.txt" , emit: version + path "versions.yml" , emit: versions script: - def software = getSoftwareName(task.process) + def args = task.ext.args ?: '' """ - multiqc -f $options.args . - multiqc --version | sed -e "s/multiqc, version //g" > ${software}.version.txt + multiqc -f $args . + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) + END_VERSIONS """ } diff --git a/modules/nf-core/modules/multiqc/meta.yml b/modules/nf-core/modules/multiqc/meta.yml index 532a8bb1..63c75a45 100644 --- a/modules/nf-core/modules/multiqc/meta.yml +++ b/modules/nf-core/modules/multiqc/meta.yml @@ -11,6 +11,7 @@ tools: It's a general use tool, perfect for summarising the output from numerous bioinformatics tools. homepage: https://multiqc.info/ documentation: https://multiqc.info/docs/ + licence: ['GPL-3.0-or-later'] input: - multiqc_files: type: file @@ -29,10 +30,10 @@ output: type: file description: Plots created by MultiQC pattern: "*_data" - - version: + - versions: type: file - description: File containing software version - pattern: "*.{version.txt}" + description: File containing software versions + pattern: "versions.yml" authors: - "@abhi18av" - "@bunop" diff --git a/nextflow.config b/nextflow.config index f99f3b9d..9f31d63d 100644 --- a/nextflow.config +++ b/nextflow.config @@ -26,7 +26,6 @@ params { // Boilerplate options outdir = './results' tracedir = "${params.outdir}/pipeline_info" - publish_dir_mode = 'copy' email = null email_on_fail = null plaintext_email = false @@ -34,14 +33,12 @@ params { help = false validate_params = true show_hidden_params = false - schema_ignore_params = 'genomes,modules' + schema_ignore_params = 'genomes' enable_conda = false - singularity_pull_docker_container = false // Config options custom_config_version = 'master' custom_config_base = "https://raw.githubusercontent.com/nf-core/configs/${params.custom_config_version}" - hostnames = [:] config_profile_description = null config_profile_contact = null config_profile_url = null @@ -58,9 +55,6 @@ params { // Load base.config by default for all pipelines includeConfig 'conf/base.config' -// Load modules.config for DSL2 module specific options -includeConfig 'conf/modules.config' - // Load nf-core custom profiles from different Institutions try { includeConfig "${params.custom_config_base}/nfcore_custom.config" @@ -68,13 +62,6 @@ try { System.err.println("WARNING: Could not load nf-core/config profiles: ${params.custom_config_base}/nfcore_custom.config") } -// Load igenomes.config if required -if (!params.igenomes_ignore) { - includeConfig 'conf/igenomes.config' -} else { - params.genomes = [:] -} - profiles { debug { process.beforeScript = 'echo $HOSTNAME' } conda { @@ -126,11 +113,22 @@ profiles { test_full { includeConfig 'conf/test_full.config' } } +// Load igenomes.config if required +if (!params.igenomes_ignore) { + includeConfig 'conf/igenomes.config' +} else { + params.genomes = [:] +} + // Export these variables to prevent local Python/R libraries from conflicting with those in the container +// The JULIA depot path has been adjusted to a fixed path `/usr/local/share/julia` that needs to be used for packages in the container. +// See https://apeltzer.github.io/post/03-julia-lang-nextflow/ for details on that. Once we have a common agreement on where to keep Julia packages, this is adjustable. + env { PYTHONNOUSERSITE = 1 R_PROFILE_USER = "/.Rprofile" R_ENVIRON_USER = "/.Renviron" + JULIA_DEPOT_PATH = "/usr/local/share/julia" } // Capture exit codes from upstream processes when piping @@ -156,14 +154,17 @@ dag { manifest { name = 'nf-core/mhcquant' - author = 'Leon Bichmann' + author = 'Leon Bichmann, Marissa Dubbelaar' homePage = 'https://github.com/nf-core/mhcquant' description = 'Identify and quantify peptides from mass spectrometry raw data' mainScript = 'main.nf' - nextflowVersion = '!>=21.04.0' - version = '1.6.1' + nextflowVersion = '!>=21.10.3' + version = '2.1.0' } +// Load modules.config for DSL2 module specific options +includeConfig 'conf/modules.config' + // Function to ensure that resource requirements don't go beyond // a maximum limit def check_max(obj, type) { diff --git a/nextflow_schema.json b/nextflow_schema.json index f729b335..f9190be0 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -104,12 +104,6 @@ "help_text": "If you're running offline, Nextflow will not be able to fetch the institutional config files from the internet. If you don't need them, then this is not a problem. If you do need them, you should download the files from the repo and tell Nextflow where to find them with this parameter.", "fa_icon": "fas fa-users-cog" }, - "hostnames": { - "type": "string", - "description": "Institutional configs hostname.", - "hidden": true, - "fa_icon": "fas fa-users-cog" - }, "config_profile_name": { "type": "string", "description": "Institutional config name.", @@ -184,22 +178,6 @@ "fa_icon": "fas fa-question-circle", "hidden": true }, - "publish_dir_mode": { - "type": "string", - "default": "copy", - "description": "Method used to save pipeline results to output directory.", - "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", - "fa_icon": "fas fa-copy", - "enum": [ - "symlink", - "rellink", - "link", - "copy", - "copyNoFollow", - "move" - ], - "hidden": true - }, "email_on_fail": { "type": "string", "description": "Email address for completion summary, only when pipeline fails.", @@ -260,13 +238,6 @@ "description": "Run this workflow with Conda. You can also use '-profile conda' instead of providing this parameter.", "hidden": true, "fa_icon": "fas fa-bacon" - }, - "singularity_pull_docker_container": { - "type": "boolean", - "description": "Instead of directly downloading Singularity images for use with Singularity, force the workflow to pull and convert Docker containers instead.", - "hidden": true, - "fa_icon": "fas fa-toolbox", - "help_text": "This may be useful for example if you are unable to directly pull Singularity containers to run the pipeline due to http/https proxy issues." } } } diff --git a/subworkflows/local/input_check.nf b/subworkflows/local/input_check.nf index b664bc8c..cddcbb3c 100644 --- a/subworkflows/local/input_check.nf +++ b/subworkflows/local/input_check.nf @@ -2,9 +2,7 @@ // Check input samplesheet and get read channels // -params.options = [:] - -include { SAMPLESHEET_CHECK } from '../../modules/local/samplesheet_check' addParams( options: params.options ) +include { SAMPLESHEET_CHECK } from '../../modules/local/samplesheet_check' workflow INPUT_CHECK { take: @@ -12,12 +10,14 @@ workflow INPUT_CHECK { main: SAMPLESHEET_CHECK ( samplesheet ) + .csv .splitCsv ( header:true, sep:',' ) .map { create_fastq_channels(it) } .set { reads } emit: - reads // channel: [ val(meta), [ reads ] ] + reads // channel: [ val(meta), [ reads ] ] + versions = SAMPLESHEET_CHECK.out.versions // channel: [ versions.yml ] } // Function to get list of [ meta, [ fastq_1, fastq_2 ] ] diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index ffaf7407..d4c93591 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -32,18 +32,10 @@ ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multi ======================================================================================== */ -// Don't overwrite global params.modules, create a copy instead and use that within the main script. -def modules = params.modules.clone() - -// -// MODULE: Local to the pipeline -// -include { GET_SOFTWARE_VERSIONS } from '../modules/local/get_software_versions' addParams( options: [publish_files : ['tsv':'']] ) - // // SUBWORKFLOW: Consisting of a mix of local and nf-core/modules // -include { INPUT_CHECK } from '../subworkflows/local/input_check' addParams( options: [:] ) +include { INPUT_CHECK } from '../subworkflows/local/input_check' /* ======================================================================================== @@ -51,14 +43,12 @@ include { INPUT_CHECK } from '../subworkflows/local/input_check' addParams( opti ======================================================================================== */ -def multiqc_options = modules['multiqc'] -multiqc_options.args += params.multiqc_title ? Utils.joinModuleArgs(["--title \"$params.multiqc_title\""]) : '' - // // MODULE: Installed directly from nf-core/modules // -include { FASTQC } from '../modules/nf-core/modules/fastqc/main' addParams( options: modules['fastqc'] ) -include { MULTIQC } from '../modules/nf-core/modules/multiqc/main' addParams( options: multiqc_options ) +include { FASTQC } from '../modules/nf-core/modules/fastqc/main' +include { MULTIQC } from '../modules/nf-core/modules/multiqc/main' +include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main' /* ======================================================================================== @@ -71,7 +61,7 @@ def multiqc_report = [] workflow MHCQUANT { - ch_software_versions = Channel.empty() + ch_versions = Channel.empty() // // SUBWORKFLOW: Read in samplesheet, validate and stage input files @@ -79,6 +69,7 @@ workflow MHCQUANT { INPUT_CHECK ( ch_input ) + ch_versions = ch_versions.mix(INPUT_CHECK.out.versions) // // MODULE: Run FastQC @@ -86,21 +77,10 @@ workflow MHCQUANT { FASTQC ( INPUT_CHECK.out.reads ) - ch_software_versions = ch_software_versions.mix(FASTQC.out.version.first().ifEmpty(null)) + ch_versions = ch_versions.mix(FASTQC.out.versions.first()) - // - // MODULE: Pipeline reporting - // - ch_software_versions - .map { it -> if (it) [ it.baseName, it ] } - .groupTuple() - .map { it[1][0] } - .flatten() - .collect() - .set { ch_software_versions } - - GET_SOFTWARE_VERSIONS ( - ch_software_versions.map { it }.collect() + CUSTOM_DUMPSOFTWAREVERSIONS ( + ch_versions.unique().collectFile(name: 'collated_versions.yml') ) // @@ -113,14 +93,14 @@ workflow MHCQUANT { ch_multiqc_files = ch_multiqc_files.mix(Channel.from(ch_multiqc_config)) ch_multiqc_files = ch_multiqc_files.mix(ch_multiqc_custom_config.collect().ifEmpty([])) ch_multiqc_files = ch_multiqc_files.mix(ch_workflow_summary.collectFile(name: 'workflow_summary_mqc.yaml')) - ch_multiqc_files = ch_multiqc_files.mix(GET_SOFTWARE_VERSIONS.out.yaml.collect()) + ch_multiqc_files = ch_multiqc_files.mix(CUSTOM_DUMPSOFTWAREVERSIONS.out.mqc_yml.collect()) ch_multiqc_files = ch_multiqc_files.mix(FASTQC.out.zip.collect{it[1]}.ifEmpty([])) MULTIQC ( ch_multiqc_files.collect() ) - multiqc_report = MULTIQC.out.report.toList() - ch_software_versions = ch_software_versions.mix(MULTIQC.out.version.ifEmpty(null)) + multiqc_report = MULTIQC.out.report.toList() + ch_versions = ch_versions.mix(MULTIQC.out.versions) } /* From c7afb0b95381949e6d21f94c98ba39a83c96b359 Mon Sep 17 00:00:00 2001 From: jonas Date: Wed, 19 Jan 2022 18:47:11 +0100 Subject: [PATCH 02/88] fix #184 --- bin/variants2fasta.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/variants2fasta.py b/bin/variants2fasta.py index 33c63f26..b1e68d3f 100755 --- a/bin/variants2fasta.py +++ b/bin/variants2fasta.py @@ -59,7 +59,7 @@ def get_type(ref, alt): for co in info.split(","): #Allele|Consequence|IMPACT|SYMBOL|Gene|Feature_type|Feature|BIOTYPE|EXON|INTRON|HGVSc|HGVSp|cDNA_position|CDS_position|Protein_position|Amino_acids|Codons|Existing_variation|DISTANCE|STRAND|FLAGS|SYMBOL_SOURCE|HGNC_ID|TSL|APPRIS|SIFT|PolyPhen|AF|AFR_AF|AMR_AF|EAS_AF|EUR_AF|SAS_AF|AA_AF|EA_AF|gnomAD_AF|gnomAD_AFR_AF|gnomAD_AMR_AF|gnomAD_ASJ_AF|gnomAD_EAS_AF|gnomAD_FIN_AF|gnomAD_NFE_AF|gnomAD_OTH_AF|gnomAD_SAS_AF|CLIN_SIG|SOMATIC|PHENO|PUBMED|MOTIF_NAME|MOTIF_POS|HIGH_INF_POS|MOTIF_SCORE_CHANGE"> - _,var_type,_,gene,_,transcript_type,transcript_id,_,_,_,_,_,_,transcript_pos,prot_pos,aa_mutation = co.strip().split("|")[:16] + _,var_type,_,gene,_,transcript_type,transcript_id,_,_,_,_,_,transcript_pos,_,prot_pos,aa_mutation = co.strip().split("|")[:16] HGNC_ID=co.strip().split("|")[22] #pass every other feature type except Transcript (RegulatoryFeature, MotifFeature.) @@ -73,7 +73,7 @@ def get_type(ref, alt): #positioning in Fred2 is 0-based!!! if transcript_pos != "": - coding[transcript_id] = MutationSyntax(transcript_id, int(transcript_pos)-1, + coding[transcript_id] = MutationSyntax(transcript_id, int(transcript_pos.split('/')[0])-1, -1 if prot_pos == "" else int(prot_pos)-1, co, "", geneID=HGNC_ID) #is variant synonymous? From 0a30865da8de7d9ec15843ad91becc5ae7c843ae Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Tue, 15 Mar 2022 20:58:26 +0000 Subject: [PATCH 03/88] Template update for nf-core/tools version 2.3 --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 - .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/workflows/awsfulltest.yml | 6 +- .github/workflows/awstest.yml | 6 +- .github/workflows/ci.yml | 4 +- .github/workflows/linting.yml | 28 +- .gitpod.yml | 14 + .nf-core.yml | 1 + .yamllint.yml | 6 + CHANGELOG.md | 2 +- README.md | 6 +- assets/nf-core-mhcquant_logo_light.png | Bin 288 -> 10923 bytes bin/check_samplesheet.py | 346 ++++++++++++++------- conf/base.config | 4 +- conf/igenomes.config | 80 ++--- conf/modules.config | 18 +- conf/test.config | 6 +- conf/test_full.config | 6 +- docs/images/nf-core-mhcquant_logo_dark.png | Bin 0 -> 72464 bytes docs/usage.md | 21 +- lib/NfcoreSchema.groovy | 4 +- lib/Utils.groovy | 4 +- lib/WorkflowMhcquant.groovy | 4 +- main.nf | 24 +- nextflow.config | 20 +- nextflow_schema.json | 23 +- subworkflows/local/input_check.nf | 18 +- workflows/mhcquant.nf | 28 +- 28 files changed, 421 insertions(+), 261 deletions(-) create mode 100644 .gitpod.yml create mode 100644 .nf-core.yml create mode 100644 .yamllint.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 816a6f87..11baf3ec 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,4 +1,3 @@ - name: Bug report description: Report something that is broken or incorrect labels: bug diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 90bc342a..eeb1e55f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -19,7 +19,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/mhcq - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/mhcquant/tree/master/.github/CONTRIBUTING.md) - [ ] If necessary, also make a PR on the nf-core/mhcquant _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 (`nextflow run . -profile test,docker`). +- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker` --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. - [ ] `CHANGELOG.md` is updated. diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index df3aefaa..2940644e 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Launch workflow via tower - uses: nf-core/tower-action@v2 + uses: nf-core/tower-action@v3 # TODO nf-core: You can customise AWS full pipeline tests as required # Add full size test data (but still relatively small datasets for few samples) # on the `test_full.config` test runs with only one set of parameters @@ -31,4 +31,6 @@ jobs: "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/mhcquant/results-${{ github.sha }}" } profiles: test_full,aws_tower - pre_run_script: 'export NXF_VER=21.10.3' + nextflow_config: | + process.errorStrategy = 'retry' + process.maxRetries = 3 diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 15e5b355..71da6865 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Launch workflow via tower - uses: nf-core/tower-action@v2 + uses: nf-core/tower-action@v3 with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} @@ -25,4 +25,6 @@ jobs: "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/mhcquant/results-test-${{ github.sha }}" } profiles: test,aws_tower - pre_run_script: 'export NXF_VER=21.10.3' + nextflow_config: | + process.errorStrategy = 'retry' + process.maxRetries = 3 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 852f83fe..e85768fc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ env: jobs: test: - name: Run workflow tests + name: Run pipeline with test data # Only run on push if this is the nf-core dev branch (merged PRs) if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mhcquant') }} runs-on: ubuntu-latest @@ -47,4 +47,4 @@ jobs: # For example: adding multiple test runs with different parameters # Remember that you can parallelise this by using strategy.matrix run: | - nextflow run ${GITHUB_WORKSPACE} -profile test,docker + nextflow run ${GITHUB_WORKSPACE} -profile test,docker --outdir ./results diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 3b448773..fda934c0 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -12,9 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: '10' + - uses: actions/setup-node@v2 - name: Install markdownlint run: npm install -g markdownlint-cli - name: Run Markdownlint @@ -51,9 +49,7 @@ jobs: steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: '10' + - uses: actions/setup-node@v2 - name: Install editorconfig-checker run: npm install -g editorconfig-checker @@ -64,14 +60,13 @@ jobs: YAML: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 - - uses: actions/setup-node@v1 + - name: Checkout + uses: actions/checkout@master + - name: 'Yamllint' + uses: karancode/yamllint-github-action@master with: - node-version: '10' - - name: Install yaml-lint - run: npm install -g yaml-lint - - name: Run yaml-lint - run: yamllint $(find ${GITHUB_WORKSPACE} -type f -name "*.yml" -o -name "*.yaml") + yamllint_file_or_dir: '.' + yamllint_config_filepath: '.yamllint.yml' # If the above check failed, post a comment on the PR explaining the failure - name: Post PR comment @@ -84,10 +79,11 @@ jobs: To keep the code consistent with lots of contributors, we run automated code consistency checks. To fix this CI test, please run: - * Install `yaml-lint` - * [Install `npm`](https://www.npmjs.com/get-npm) then [install `yaml-lint`](https://www.npmjs.com/package/yaml-lint) (`npm install -g yaml-lint`) + * Install `yamllint` + * Install `yamllint` following [this](https://yamllint.readthedocs.io/en/stable/quickstart.html#installing-yamllint) + instructions or alternative install it in your [conda environment](https://anaconda.org/conda-forge/yamllint) * Fix the markdown errors - * Run the test locally: `yamllint $(find . -type f -name "*.yml" -o -name "*.yaml")` + * Run the test locally: `yamllint $(find . -type f -name "*.yml" -o -name "*.yaml") -c ./.yamllint.yml` * Fix any reported errors in your YAML files Once you push these changes the test should pass, and you can hide this comment :+1: diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 00000000..b7d4cee1 --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,14 @@ +image: nfcore/gitpod:latest + +vscode: + extensions: # based on nf-core.nf-core-extensionpack + - codezombiech.gitignore # Language support for .gitignore files + # - cssho.vscode-svgviewer # SVG viewer + - davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code + - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed + - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files + - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar + - mechatroner.rainbow-csv # Highlight columns in csv files in different colors + # - nextflow.nextflow # Nextflow syntax highlighting + - oderwat.indent-rainbow # Highlight indentation level + - streetsidesoftware.code-spell-checker # Spelling checker for source code diff --git a/.nf-core.yml b/.nf-core.yml new file mode 100644 index 00000000..3805dc81 --- /dev/null +++ b/.nf-core.yml @@ -0,0 +1 @@ +repository_type: pipeline diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 00000000..d466deec --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,6 @@ +extends: default + +rules: + document-start: disable + line-length: disable + truthy: disable diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e81e18c..81c64094 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). -## v2.1.0 - [date] +## v2.2.0 - [date] Initial release of nf-core/mhcquant, created with the [nf-core](https://nf-co.re/) template. diff --git a/README.md b/README.md index 42b4e386..ce9df5c6 100644 --- a/README.md +++ b/README.md @@ -40,14 +40,14 @@ On release, automated continuous integration tests run the pipeline on a full-si 3. Download the pipeline and test it on a minimal dataset with a single command: ```console - nextflow run nf-core/mhcquant -profile test,YOURPROFILE + nextflow run nf-core/mhcquant -profile test,YOURPROFILE --outdir ``` Note that some form of configuration will be needed so that Nextflow knows how to fetch the required software. This is usually done in the form of a config profile (`YOURPROFILE` in the example command above). You can chain multiple config profiles in a comma-separated string. > * The pipeline comes with config profiles called `docker`, `singularity`, `podman`, `shifter`, `charliecloud` and `conda` which instruct the pipeline to use the named tool for software management. For example, `-profile test,docker`. > * Please check [nf-core/configs](https://github.com/nf-core/configs#documentation) to see if a custom config file to run nf-core pipelines already exists for your Institute. If so, you can simply use `-profile ` in your command. This will enable either `docker` or `singularity` and set the appropriate execution settings for your local compute environment. - > * If you are using `singularity` and are persistently observing issues downloading Singularity images directly due to timeout or network issues, then you can use the `--singularity_pull_docker_container` parameter to pull and convert the Docker image instead. Alternatively, you can use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to download images first, before running the pipeline. Setting the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options enables you to store and re-use the images from a central location for future pipeline runs. + > * If you are using `singularity`, please use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to download images first, before running the pipeline. Setting the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options enables you to store and re-use the images from a central location for future pipeline runs. > * If you are using `conda`, it is highly recommended to use the [`NXF_CONDA_CACHEDIR` or `conda.cacheDir`](https://www.nextflow.io/docs/latest/conda.html) settings to store the environments in a central location for future pipeline runs. 4. Start running your own analysis! @@ -55,7 +55,7 @@ On release, automated continuous integration tests run the pipeline on a full-si ```console - nextflow run nf-core/mhcquant -profile --input samplesheet.csv --genome GRCh37 + nextflow run nf-core/mhcquant --input samplesheet.csv --outdir --genome GRCh37 -profile ``` ## Documentation diff --git a/assets/nf-core-mhcquant_logo_light.png b/assets/nf-core-mhcquant_logo_light.png index dee3db82069b61e9a5380d940355f47ff565057c..c470ddb2869736380dac734457e364fcde9d5c18 100644 GIT binary patch literal 10923 zcmb_?byQSe^zSf3qjZ&$3vUpJbok$ilO;gP1Ol;vwAEEi0t)sEgS)Iv1G`Y&b>l^PdJcKf5~D7| z^c>M~Mvw8{;NUfzu7ki?ZxRRuI5f(CfGZS!e|e<7W1~(+M}ha+>jAhTPQo~mkb)EZ z-i2|E-XU+8eyBUq*>Lmf=3k2#-EiCjQR7EG}BC}^`ZSXqZ&fv@jj4#NI6u=x zlkBH8NLGOX+Fe8iNUaL+JwQ|Kx4RZkSsvjVpp{=A^TKp{*Ij99lz|y6ve&b5*k6)t2u>gLqkUS1Yt=zym$v)Ca~LnB>= z6IvW^j`g9Zrt@XQ>PDF|P1G0uHC7rA)vnCXKJB6OGd_giz5HlQ&CO~JJ-d7n9U4dl z-z3NSTa_EPQT&X=e2ROn8o;+I(<;WH<(Ov-~; zgx!N_l~j8A$Jv!_yx_~=U&jW2!5h$VkdIeHr~vCvUho&tp8|h9nI&Gz7z`fykf>LjSAAQ(704)4F+JN^lIGn>)jn&!NhQ&sK&??7 z^)uAk!~scum~{?qO#!}RjaG{AoPKu<;?4K@+pSc*=57}T^_ut-`Hp0q8$q_ODm7OH z&Q%^5#5_gU8+|I_wV48=%NY;CgJE3@b0G=96kxO#BHz+?vj4H(-|nk|?Ykj9v@pAY zL4VC!MCBDU#QuAY=N3y-eUgEzbfoc$iF$z+SWj=eYO2I4>2*bkS=&C33oyPkusa z3PHIgh+Ucen6Lz6tLD@}e{bw^j(K%D0aeyUZ<*NbdxA)rn1wssao!#r^s@$p_fE}& zn?jiQF?xjf+j5 zpf}CTc_iTDPX^P?U#DMt@zg2*%OYW8l4XR>@F;;jiv=ro0(Vl?OH?dQsU*&Aqhnzn zT2k5g-5z)RIaNSir)8g-Q+SXcI`|cI z7>+z>C0(F2bxF0Jvr61ku7S^@VQ|CV_2#~k&s(mULuIt@DARb!YXxc9mRii&lXo?c zpAR@5Qv~n>Cd&AmfR&_1@A$gEQG=)Ks80dGzT!b5WM+@sRX;sDpO)++Pb93OnukiX zt_*74<3zl*o(rbDz@gMWaTCul72bWGx-(YE)_kd=m-rlA4g3kxCJvTU-*~Gz0q?_e zaS6h0uln`;&|nU(wJL$`;f6^V|GKT0aK`6@C;|@Glypm{=^){g<7)?#*$^ zz-(!V4u_FtL80-(fCN5$ZJrCY>VoA*%+F@;Y4v@bxEI(nJxkYX1Fe!z1uT(ySjCs8 zbbCk+WsEj>Y6{G+2skMl_QFcn=FQhksoKq^f||c}{lNxS!+^-~mnS28hn%1ss9h|g zzPrx<2n}myzh@@A`&l`239n6fTQENARw(;yle4$l>`K!G{S!e14D)09n^dej85Fi) zAK%dX<9N?!M_k~e#U8@Z|_%y(rM^kwC^JCVfKVC0)2RUWum;0m+ak>yEqAB+Ox z2J5WL^R%*$d9_pEhRXgyQ*K!Ubsl8XI+P=0v)0?4aQ=mif53lsZhhtJwf{l4W6PDlw{!C8WQYn+7F2I}u@Nj> z*m~IFJa+R>oR*H+mpE*N`ds#l#vFS2KP}Y7*;#Ow>9%>L4$^zUs>YcVu*#<0X4l7~$8czuU_iywYObPQLaH2D7mmmAZ))vL}#lq zM+b9G(@JN1-n~d7Qp^7o2)2@kH6OlyjkOsxk>57M1H-hxfroPeZ8gXznKMm;2xu*t zpT~);Mo|<<6BfUhbq*vyhCa{{urSzXj$tZ&NpA`)&Js9H)~f*S#4n`)=CV~B0nMnQwk zuf9Kt*`tqYVG$MGQy&;(b~LAGOZl_`n1O4V!Px`AsLLoGHwkbehM?NVg>kZn54fm< zlGj9o0Hy5tuxig9S0`CT(_@7@uv~hgK3)d(_;ErJRe8Hz>_|xjHM#v`4hS#TTf}Gn z_lzGE9iA~RE5RISP?;x|VjbrRE^|~gh#*ZG!c4SmvvGaT3+?Frpq;94)SKXY>(@8K zy*a;nUFtq=;iDwRpcFs|fS?P*vY z^iJJ9$_0sivnM;$N6#ZetsPO+Be31-qDnVo` ziDGEGN4en!Hkb~_t}^I$T}QAa0So}0pNdEQfV*<(5=gBjRt(*RASp@qhN-{xb>inf zVy)lWn|$719e2C!!=+UE@-&Wx$q~~`+0|#+RryonbfaZO5#gVT7fo_7@x1>_J2I`; z7uNMe;1@DWEe*;>$4Zb4L~gUaGDR6{X5{mJ-BgXNH{*Zmtmk^YU|qlaR2x3x4OeYx zA+I9f#O0*Y1dE}=xd6dQzL^9dKw<7)-mFMNlr;Ugh5Ner##K4OzjQm)PEXvq65VdR z-9H)B=g;Cw(@EE>WCN}S>Cj4g{rijg2BLWeDsmdKh0E<{la2HFxG5voe{rrzV6R=r z@5;yjeBN5P#ddUSReL8~@l1SqtP3@<$}u!$J-3S!7Gt$OW6Y&fRimf?o*H#`HdFOu zrO6tjj~deOvN-S><}wr6a(tNH**>Z_k4j{4}G_*&prLfs3yfGKjC3dNJP>wwg%`dt!``pr%%B@UEEjU>HJfw zFfpBXJ94{WaOn@G+~#sL=1S~K=h5KL;CMd6wSUVb=`sPZE|J~kr6+HFMqo*qdWo54 zdq(0e*CmYeCjP_fFX3fv_ckYZ9jWJt*G@;^zJK|ZM+XYh zQ0#HS;IKG-WYpSI70&8bkg}S5gg$uUC2w^{4=V-T9VO|>~w#kv2sU|KDt}0O&^5OXo+;g-LfQCgraE;nKk z7=h)o;JV71@mcnk+PU<7d4x({bJ}dNeUF!>RgaLo;Eei~PZGuDHHd4>)?L?0I4)m3 zDnxO5MOetfWd16Dyw9mgt@10Jr>>zi{TRx_CZq$w>R67XiM5=taZZ#KXlG0!Nk=H= zC(0mQ?qm7v&<3b@OV=MWSFO?Z?53Btc-+w2EK%Wie?PY2h77>r_WF#S?+RrEA6drm zr&d+HQ-JP0W+lQ(=V~i9DvV}o1oojgGl*xtZ{Q`bCAjl?&<+2YnXGX~z^&6SaBb9W z7Q7PKgo>Jd+g5BGko^Eic%t6(IwE%IY=^(r&^$Dk^jG9e@|Nx6A2-%KY5CwdQfN6P z*Judyx#z?mvGgwo3U@a6T#!gC7iN~#YNue{cjny7LWH4(lBgxXWps7t?;_Wc#iNl5 zAAdHySL;{bEMNOS{)JZGL`xNG8l4D9m_({8ua@Wg%|3bZvbD>jSP@G+Ys}716*7uV#n=Z{M$zSFPLN&@fbPc2%Tx-gv`kz0?P1L#c_k4`9YsQi&I(jA|X=5+C_Qibgo|R$lCP3Lx3D#wGf! zNIL$P>iZp{iwYqb=dWO`=d6^cAA55Y3O;&Y~*?>jq=0BFh` z7Mdq~`V~;NjGyUAtaOznGpt3V56%la*lc;9c*oSLT789@wYgjLPQn9HU8$s090NTe z@zM3~&9raW(E{$7+{CnxdY>NzY*H%7uy+8Is4sYJ5uCoM`e=s{z47hBIwWiS9oKqgI#cfG4iPG>Pg%$4S7(GLcG)G3Sf~Zu z=z^2M+fP9x-WH9P&jxON6!a)Bps86MpS5B8!N!_$mm{wW5e~@?8Hl9rx_KWyAY1t) zF->(H`Ykzqx1**vE5HG9)F6qrPvK7;ACrcqERTawpP%<*mLBNe2UH^WQ;-$_nm$8W zYG0loeeY^)`|`2*GBfK8e_6M)ZY|2ziDlIC7hZg531WgPAv=;LiESPIKj6_h(W*X5~B3+Xo4> zP{E($%)Gw@P^Q0+Q1Mq8yl{qNt84Iu*76c41&-hTsiEuCe%t5msx7roV$Z+CLIenj zWRPrWF4O#J-a75kt|=cSwuOUmURZr7jkkp-6QxIbT{n3{wG07ZfmgY{UL9fblIrg4M|)_Kv4cJHEZyE;6T; zV`RdM;w#rtJ>EmA4}pb%HPA+$#2LC!A^6}hI{R0TQd53CZ0H}V<0<6VwevMe8IZ^oa*!l$ILm;Njz${D(z?>!W z$7bb=&4AN717yVxb6_&;y(^>0bFEY(CSx7Km3=0x{0jW51uaj{XJedX<&F%vFA6!r z*pL)t162#!@gfw!zFLW!i&d}7A;UY=Z^*8nMQ9Z<=_qw}?%`Y=cC#Dg%JyFjMA_yP zj;G%RGv{ZjsrScpHB0nG}|aJbPMZ}JQsNjXXQ1Cxw=CAqw-db_;8yA%CbxFlO10?+tU)7NU#2-xc!vLVd9wM|st)S#wcr8zT9%98hm5ZRG~pcQ(F zTsK(P1=nFVVkwQV-l+lO$CbC;1fY)!ed;rklQ2IgfHQb9c-B1?7_abMb}g zPXv(!fN3*QHUv_qU$qfhgc_*1jcPbrm6 z7Y#*XlqrmCnNkUB4$~NcsMJ`$+&jeVn>J>v!a7T5!>f=+EyE+pad{DYKy(lVO;N<2Xsx z4n_`4uqeb!YGk=SR-a_!esSgBGIqoI{ga;?p6yGu6!~NzzbJ__PNK4kR0C3stSj+m z<-*?y;_#fDvGGS7j=jE>6vyor341;@aJ5Q)vQI&d=377JIo)&+fp9a{cLqKhM$5l< zitb6x_Oh_A3ui{W*^V%N@UQe=tql}NN;<;POMp&z{Jw;Xko)?N*&yU2M1~hJqA`E} zjft=SfsN<)%#Jko)m`+nLLNSR+4;ME7}Vmx%N}`O1=~s;xfJmU$dI0$b$QDEH?5BF zZXn|JQU5pW5VXn<8%>-GtihyQ=Tx@K!bJ+=34qo5&SFDICD`0}&erFAd&y>PVh8Kn~{E}%_auu zW&9tHnadX(&*JDE8dND$cbY$7t_O*%Sb@3CO0Shaa;IcIsEReyFr%(mn~vB0*J&X% zWdkPFQL7>X9!Dq~^jI%|lC0syK)7z)FZJYqbW!^|;oO5U2NS?_14`9X@|uA5OJ>Y} zt(8)V=>JAku$x5wBkpbq(BJr9W_>~5SjvlimZ%M8aE!D7Ylfgw%y_xqsy8Snih^b% zULz>c0iPnx!EZ)cg0JBII9B`c zaIgZ{?L2gFxkY3*PL#)CBeXv&ko|#kL0@lu-EQPPFd2C1V;C|?bT(rC$NVY+EHE$O z*usDf?ZC;8v;!IbnEzuo?tG9dYnD9EHs}&oAn5YWZDSF#huhI~P!xD);YXsv`G8ko z*u=m=O0>_OeHrRQkpqrbG0W7=Jgi4CoU%JvZ8XOnc@_)~l$yi8woS5sUPva0M+*^Y zy)7b{#C_jlxR`XklAne>fIm$-zy>qQ9OQ7Yd>Ia(=Wt0pdfBH$IdV0l^TRgDe|ace z0`Mkjh!Uj!G;e+cQ>4h{z~GVrLLkB)G{#A$`Dg+mhsH;np)hY$$et#4GX!)FP5Z`` zJ|Qk3D@e5FG*3YEBgR5e;r#D%B%8^;rkOQ#a%AW}N{FM}CK$L&&6s;p2bPD(Fd4C` zux=h@MpQ<4f;uk-25WIF9uiycJZM8>Zv?=s*j9urshZt3_GS|_b{0Vu!HRz3Na>O3 zj`R#vY#PXVLnpB1<(Mo(%m-y$56nS=4nc<&Xd`orB+>hvCldiPNRE-$6i=&0v2+&$ zxB6oaBk3JLCBNCB}6%9BL#j+C_a)axI%5 zM}R`Z7_LQ&>o7@y@I^Y#^6MZL2M$ma%E@;QRm!8)#i_Kp{UG-U9@4GnF*w{XbWJ?_ z&4a?&F{-mUOqxg9#+Hbjg@$Jg9lgi72NqT~+pjNARPfHm4h%MbjiPsO0^et!*nh!j zRn^r*EQ7*a*OQ7B;w-bKGlLGcPmS-F$bC%`WpJ33MRs7ekdV&ALp^8jwD|W~6A;JX z+fau|7omrL=ugtJp0y5YF?#-P(^q-Oh%PFsH;o|7kKNhqp`)9t2@gb>~b!H+sA{4yk%&jPtnm zcZ*Sm z4CB)CjpoqAec_t?{#)GucV%((#Ft4M-8!1XMyyoh?85qs$|&z070<`6BTGkT8hoG{+Gtx~#E|^;EY1Ar9@k5gT4*ie`wrbOZ0 zjc`swxu+%C7B@z?29kL^1aZi^DEJ4bLa8-g0gggg+9bz7?x1ttjc zY*t(f5d?*cFJalewt&>E64f^n&8I4n{)3pE)xk{Yq*jd?}?iIB+X?@9�T}NMPo;TYNb>*T?FG6HJV!YDOCHY zk){I&hTqOX4z*GHh^*0^dl1wIn{z|#z%4Xs%|mMRN{G_wDsarfiJVHemKxcL*nPRd zelef~3K^k4p+B_iGK`V*Cf|$lA6RQv_Hv)XXRXOfeU4g!ER!vJCUz4NeN`ytCrj36 zlb4JTB!g4}uBSKV&QhcyqXR2mSj18&RpnM`mYe34b!WGe6LvrecNs7e&;^+z*mo5j z!&NsW9fBIH{E>g&x#E~8OBR5?Xw;jk!o0)8&)hm09sHf1ig&Pv=JE;r{aOec;4sLR zsnMLi=DX*cSjv_jctuw2x6<7tC-Kiw(ZA|*O0)Ul zNnVV|K%5h)2n~8G=zk;qWrp9yYYNcf72#d`dMxRc=G0OROO9*bO^T(@z)MG1qc2T| zpv_npZv{!3GG4Y$-}9&aqMKpmUPp4v2j8n`px?HNseNj|+fp3ei|%pnU7?4YMhJ08@fMaYhnaSqi_KX$Gnf%edqBiI#9!xGdbAUl{u^ z_@%+_*Yg>9J4Q73Kyq+>YN+~`;&z_Bd3>r(Zt;=u-EX=TywIck-#)5kUPwKeaEy=|^!7IhTX<3;ibT*rb=e3NK|d|7eD? z9kJDX{~;Xgk^Opj6-u_(M3~M}Sm}LCQDsyoqDTA7_8DmXFDfZ>d@(w@EjtYn(+!O~ z+f6mY7w$Fs8L0>U_hl%n6bhp&RXkh~a@h>!GJLX!uL%=3?5E7#lZ%uneHV2#+Q8Fe zITjKcaiRz=_=COa2!bSu-qW1e7f1l$Rgo`q=Q4dOuexjkR2EKW5T`Q4F|R(Fi;G$8 zI#sRCCOPvO^S+A{zE-L*TG*MjmPx8f167DSeugbs>yj|OD@)Dp*3s%3`1W~MwjvRU zdB&0i*X|NgKKCDEmZyTQeT>2tCpfGpp(stuYLk`S=OChcFA8>Us_YvGkxQx7i2gw;yBVSVV37p>I@s zVrrD-%IZBI10r8v&_=eW(IRVhv?j(pqdDcGP7R`)5)PA{5q2Cusa@+E z=Fxu$aDcr&o})Q=Dxm+uFs>z5*>g0MPVDYQQ9mugh1y=bC27dLs@fNVXFYm16Gt+- zgl}IgoYn5g;cDC4yiAl0`gPkjh-n4_VLg=qBM_{j>?njHEwoqk zeMF9$4l+7d%S)@^Koo`fG@6qi5l+lDrj0o2K%+2eauyKi#dZkV6p6by^Zi|xFU_IK zSPIbg#B-AzthwN(89WRv_~(y4*ZVU(fkkT)G?&jQ=cxI zG6lE)%d{-nHg{X+@Z}Ix*MaV#iiCWmn0>>p*#K)h2(I!^cda8M9N$BnDL>Z)^)YiI zwtbXQWW5eMC5kMEQaH|YOQDIY*f5-~xO0@9KRZvG$A*erRi;4>uv_eW2y@K=lRBi} z5X|=wFH0$b=&=tRG-^2hr2geHhckwYq`$YuH(@T5i@ONd5R|`^=M(3{z&H*I4Tp>q+TqN#yzLe8frA75DJ_1w@YkD@mc9F; zqy)l1l&X%Oz+4BXkL~Yh#gWJJDxlrII#2ZZ^{6pFb4$5rEqUE!D1{M*GGk} zBqslT32Br2t$tTI<*mcP2{%;g z){c$6=VZ~JW$aIF^RBF)ekVIoCR1u(%vgj_!xwiN3(FhkrL~Sziw5ro2`|F|0zQAc zTD#ALUUn;YmglyKrA_ck^+@-I^3*d;d%qN}D&vWnxTwD91Xsht$Ty6%BkyQzOVdlQ z2JN-#C7QF1c$~Yo5%)I9(_2`7R&8)$7$09uTwmDRdFxsoAFVUHK=Z;xQGb-DYr)}u z5{KyCwnz97PLDKBlh6XoNGon_)?9NH+5eW#{Xf{12_ 0: - try: - os.makedirs(path) - except OSError as exception: - if exception.errno != errno.EEXIST: - raise exception + Attributes: + modified (list): A list of dicts, where each dict corresponds to a previously + validated and transformed row. The order of rows is maintained. + """ -def print_error(error, context="Line", context_str=""): - error_str = "ERROR: Please check samplesheet -> {}".format(error) - if context != "" and context_str != "": - error_str = "ERROR: Please check samplesheet -> {}\n{}: '{}'".format( - error, context.strip(), context_str.strip() + VALID_FORMATS = ( + ".fq.gz", + ".fastq.gz", + ) + + def __init__( + self, + sample_col="sample", + first_col="fastq_1", + second_col="fastq_2", + single_col="single_end", + **kwargs, + ): + """ + Initialize the row checker with the expected column names. + + Args: + sample_col (str): The name of the column that contains the sample name + (default "sample"). + first_col (str): The name of the column that contains the first (or only) + FASTQ file path (default "fastq_1"). + second_col (str): The name of the column that contains the second (if any) + FASTQ file path (default "fastq_2"). + single_col (str): The name of the new column that will be inserted and + records whether the sample contains single- or paired-end sequencing + reads (default "single_end"). + + """ + super().__init__(**kwargs) + self._sample_col = sample_col + self._first_col = first_col + self._second_col = second_col + self._single_col = single_col + self._seen = set() + self.modified = [] + + def validate_and_transform(self, row): + """ + Perform all validations on the given row and insert the read pairing status. + + Args: + row (dict): A mapping from column headers (keys) to elements of that row + (values). + + """ + self._validate_sample(row) + self._validate_first(row) + self._validate_second(row) + self._validate_pair(row) + self._seen.add((row[self._sample_col], row[self._first_col])) + self.modified.append(row) + + def _validate_sample(self, row): + """Assert that the sample name exists and convert spaces to underscores.""" + assert len(row[self._sample_col]) > 0, "Sample input is required." + # Sanitize samples slightly. + row[self._sample_col] = row[self._sample_col].replace(" ", "_") + + def _validate_first(self, row): + """Assert that the first FASTQ entry is non-empty and has the right format.""" + assert len(row[self._first_col]) > 0, "At least the first FASTQ file is required." + self._validate_fastq_format(row[self._first_col]) + + def _validate_second(self, row): + """Assert that the second FASTQ entry has the right format if it exists.""" + if len(row[self._second_col]) > 0: + self._validate_fastq_format(row[self._second_col]) + + def _validate_pair(self, row): + """Assert that read pairs have the same file extension. Report pair status.""" + if row[self._first_col] and row[self._second_col]: + row[self._single_col] = False + assert ( + Path(row[self._first_col]).suffixes == Path(row[self._second_col]).suffixes + ), "FASTQ pairs must have the same file extensions." + else: + row[self._single_col] = True + + def _validate_fastq_format(self, filename): + """Assert that a given filename has one of the expected FASTQ extensions.""" + assert any(filename.endswith(extension) for extension in self.VALID_FORMATS), ( + f"The FASTQ file has an unrecognized extension: {filename}\n" + f"It should be one of: {', '.join(self.VALID_FORMATS)}" ) - print(error_str) - sys.exit(1) + def validate_unique_samples(self): + """ + Assert that the combination of sample name and FASTQ filename is unique. + + In addition to the validation, also rename the sample if more than one sample, + FASTQ file combination exists. + + """ + assert len(self._seen) == len(self.modified), "The pair of sample name and FASTQ must be unique." + if len({pair[0] for pair in self._seen}) < len(self._seen): + counts = Counter(pair[0] for pair in self._seen) + seen = Counter() + for row in self.modified: + sample = row[self._sample_col] + seen[sample] += 1 + if counts[sample] > 1: + row[self._sample_col] = f"{sample}_T{seen[sample]}" + + +def sniff_format(handle): + """ + Detect the tabular format. + + Args: + handle (text file): A handle to a `text file`_ object. The read position is + expected to be at the beginning (index 0). + + Returns: + csv.Dialect: The detected tabular format. + + .. _text file: + https://docs.python.org/3/glossary.html#term-text-file -# TODO nf-core: Update the check_samplesheet function -def check_samplesheet(file_in, file_out): """ - This function checks that the samplesheet follows the following structure: + peek = handle.read(2048) + sniffer = csv.Sniffer() + if not sniffer.has_header(peek): + logger.critical(f"The given sample sheet does not appear to contain a header.") + sys.exit(1) + dialect = sniffer.sniff(peek) + handle.seek(0) + return dialect - sample,fastq_1,fastq_2 - SAMPLE_PE,SAMPLE_PE_RUN1_1.fastq.gz,SAMPLE_PE_RUN1_2.fastq.gz - SAMPLE_PE,SAMPLE_PE_RUN2_1.fastq.gz,SAMPLE_PE_RUN2_2.fastq.gz - SAMPLE_SE,SAMPLE_SE_RUN1_1.fastq.gz, - For an example see: - https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv +def check_samplesheet(file_in, file_out): """ + Check that the tabular samplesheet has the structure expected by nf-core pipelines. - sample_mapping_dict = {} - with open(file_in, "r") as fin: + Validate the general shape of the table, expected columns, and each row. Also add + an additional column which records whether one or two FASTQ reads were found. - ## Check header - MIN_COLS = 2 - # TODO nf-core: Update the column names for the input samplesheet - HEADER = ["sample", "fastq_1", "fastq_2"] - header = [x.strip('"') for x in fin.readline().strip().split(",")] - if header[: len(HEADER)] != HEADER: - print("ERROR: Please check samplesheet header -> {} != {}".format(",".join(header), ",".join(HEADER))) - sys.exit(1) + Args: + file_in (pathlib.Path): The given tabular samplesheet. The format can be either + CSV, TSV, or any other format automatically recognized by ``csv.Sniffer``. + file_out (pathlib.Path): Where the validated and transformed samplesheet should + be created; always in CSV format. - ## Check sample entries - for line in fin: - lspl = [x.strip().strip('"') for x in line.strip().split(",")] - - # Check valid number of columns per row - if len(lspl) < len(HEADER): - print_error( - "Invalid number of columns (minimum = {})!".format(len(HEADER)), - "Line", - line, - ) - num_cols = len([x for x in lspl if x]) - if num_cols < MIN_COLS: - print_error( - "Invalid number of populated columns (minimum = {})!".format(MIN_COLS), - "Line", - line, - ) - - ## Check sample name entries - sample, fastq_1, fastq_2 = lspl[: len(HEADER)] - sample = sample.replace(" ", "_") - if not sample: - print_error("Sample entry has not been specified!", "Line", line) - - ## Check FastQ file extension - for fastq in [fastq_1, fastq_2]: - if fastq: - if fastq.find(" ") != -1: - print_error("FastQ file contains spaces!", "Line", line) - if not fastq.endswith(".fastq.gz") and not fastq.endswith(".fq.gz"): - print_error( - "FastQ file does not have extension '.fastq.gz' or '.fq.gz'!", - "Line", - line, - ) - - ## Auto-detect paired-end/single-end - sample_info = [] ## [single_end, fastq_1, fastq_2] - if sample and fastq_1 and fastq_2: ## Paired-end short reads - sample_info = ["0", fastq_1, fastq_2] - elif sample and fastq_1 and not fastq_2: ## Single-end short reads - sample_info = ["1", fastq_1, fastq_2] - else: - print_error("Invalid combination of columns provided!", "Line", line) - - ## Create sample mapping dictionary = { sample: [ single_end, fastq_1, fastq_2 ] } - if sample not in sample_mapping_dict: - sample_mapping_dict[sample] = [sample_info] - else: - if sample_info in sample_mapping_dict[sample]: - print_error("Samplesheet contains duplicate rows!", "Line", line) - else: - sample_mapping_dict[sample].append(sample_info) - - ## Write validated samplesheet with appropriate columns - if len(sample_mapping_dict) > 0: - out_dir = os.path.dirname(file_out) - make_dir(out_dir) - with open(file_out, "w") as fout: - fout.write(",".join(["sample", "single_end", "fastq_1", "fastq_2"]) + "\n") - for sample in sorted(sample_mapping_dict.keys()): - - ## Check that multiple runs of the same sample are of the same datatype - if not all(x[0] == sample_mapping_dict[sample][0][0] for x in sample_mapping_dict[sample]): - print_error("Multiple runs of a sample must be of the same datatype!", "Sample: {}".format(sample)) - - for idx, val in enumerate(sample_mapping_dict[sample]): - fout.write(",".join(["{}_T{}".format(sample, idx + 1)] + val) + "\n") - else: - print_error("No entries to process!", "Samplesheet: {}".format(file_in)) - - -def main(args=None): - args = parse_args(args) - check_samplesheet(args.FILE_IN, args.FILE_OUT) + Example: + This function checks that the samplesheet follows the following structure, + see also the `viral recon samplesheet`_:: + + sample,fastq_1,fastq_2 + SAMPLE_PE,SAMPLE_PE_RUN1_1.fastq.gz,SAMPLE_PE_RUN1_2.fastq.gz + SAMPLE_PE,SAMPLE_PE_RUN2_1.fastq.gz,SAMPLE_PE_RUN2_2.fastq.gz + SAMPLE_SE,SAMPLE_SE_RUN1_1.fastq.gz, + + .. _viral recon samplesheet: + https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv + + """ + required_columns = {"sample", "fastq_1", "fastq_2"} + # See https://docs.python.org/3.9/library/csv.html#id3 to read up on `newline=""`. + with file_in.open(newline="") as in_handle: + reader = csv.DictReader(in_handle, dialect=sniff_format(in_handle)) + # Validate the existence of the expected header columns. + if not required_columns.issubset(reader.fieldnames): + logger.critical(f"The sample sheet **must** contain the column headers: {', '.join(required_columns)}.") + sys.exit(1) + # Validate each row. + checker = RowChecker() + for i, row in enumerate(reader): + try: + checker.validate_and_transform(row) + except AssertionError as error: + logger.critical(f"{str(error)} On line {i + 2}.") + sys.exit(1) + checker.validate_unique_samples() + header = list(reader.fieldnames) + header.insert(1, "single_end") + # See https://docs.python.org/3.9/library/csv.html#id3 to read up on `newline=""`. + with file_out.open(mode="w", newline="") as out_handle: + writer = csv.DictWriter(out_handle, header, delimiter=",") + writer.writeheader() + for row in checker.modified: + writer.writerow(row) + + +def parse_args(argv=None): + """Define and immediately parse command line arguments.""" + parser = argparse.ArgumentParser( + description="Validate and transform a tabular samplesheet.", + epilog="Example: python check_samplesheet.py samplesheet.csv samplesheet.valid.csv", + ) + parser.add_argument( + "file_in", + metavar="FILE_IN", + type=Path, + help="Tabular input samplesheet in CSV or TSV format.", + ) + parser.add_argument( + "file_out", + metavar="FILE_OUT", + type=Path, + help="Transformed output samplesheet in CSV format.", + ) + parser.add_argument( + "-l", + "--log-level", + help="The desired log level (default WARNING).", + choices=("CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG"), + default="WARNING", + ) + return parser.parse_args(argv) + + +def main(argv=None): + """Coordinate argument parsing and program execution.""" + args = parse_args(argv) + logging.basicConfig(level=args.log_level, format="[%(levelname)s] %(message)s") + if not args.file_in.is_file(): + logger.error(f"The given input file {args.file_in} was not found!") + sys.exit(2) + args.file_out.parent.mkdir(parents=True, exist_ok=True) + check_samplesheet(args.file_in, args.file_out) if __name__ == "__main__": diff --git a/conf/base.config b/conf/base.config index 7c4b6799..b1035be2 100644 --- a/conf/base.config +++ b/conf/base.config @@ -1,7 +1,7 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nf-core/mhcquant Nextflow base config file -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A 'blank slate' config file, appropriate for general use on most high performance compute environments. Assumes that all software is installed and available on the PATH. Runs in `local` mode - all jobs will be run on the logged in environment. diff --git a/conf/igenomes.config b/conf/igenomes.config index 855948de..7a1b3ac6 100644 --- a/conf/igenomes.config +++ b/conf/igenomes.config @@ -1,7 +1,7 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nextflow config file for iGenomes paths -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Defines reference genomes using iGenome paths. Can be used by any config that customises the base path using: $params.igenomes_base / --igenomes_base @@ -13,7 +13,7 @@ params { genomes { 'GRCh37' { fasta = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/BismarkIndex/" @@ -26,7 +26,7 @@ params { } 'GRCh38' { fasta = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/BismarkIndex/" @@ -38,7 +38,7 @@ params { } 'GRCm38' { fasta = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/BismarkIndex/" @@ -51,7 +51,7 @@ params { } 'TAIR10' { fasta = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/BismarkIndex/" @@ -62,7 +62,7 @@ params { } 'EB2' { fasta = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/BismarkIndex/" @@ -72,7 +72,7 @@ params { } 'UMD3.1' { fasta = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/BismarkIndex/" @@ -83,7 +83,7 @@ params { } 'WBcel235' { fasta = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/BismarkIndex/" @@ -94,7 +94,7 @@ params { } 'CanFam3.1' { fasta = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/BismarkIndex/" @@ -105,7 +105,7 @@ params { } 'GRCz10' { fasta = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/BismarkIndex/" @@ -115,7 +115,7 @@ params { } 'BDGP6' { fasta = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/BismarkIndex/" @@ -126,7 +126,7 @@ params { } 'EquCab2' { fasta = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/BismarkIndex/" @@ -137,7 +137,7 @@ params { } 'EB1' { fasta = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/BismarkIndex/" @@ -147,7 +147,7 @@ params { } 'Galgal4' { fasta = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/BismarkIndex/" @@ -157,7 +157,7 @@ params { } 'Gm01' { fasta = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/BismarkIndex/" @@ -167,7 +167,7 @@ params { } 'Mmul_1' { fasta = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/BismarkIndex/" @@ -178,7 +178,7 @@ params { } 'IRGSP-1.0' { fasta = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/BismarkIndex/" @@ -188,7 +188,7 @@ params { } 'CHIMP2.1.4' { fasta = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/BismarkIndex/" @@ -199,7 +199,7 @@ params { } 'Rnor_5.0' { fasta = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_5.0/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_5.0/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_5.0/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_5.0/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_5.0/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_5.0/Sequence/BismarkIndex/" @@ -209,7 +209,7 @@ params { } 'Rnor_6.0' { fasta = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/BismarkIndex/" @@ -219,7 +219,7 @@ params { } 'R64-1-1' { fasta = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/BismarkIndex/" @@ -230,7 +230,7 @@ params { } 'EF2' { fasta = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/BismarkIndex/" @@ -242,7 +242,7 @@ params { } 'Sbi1' { fasta = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/BismarkIndex/" @@ -252,7 +252,7 @@ params { } 'Sscrofa10.2' { fasta = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/BismarkIndex/" @@ -263,7 +263,7 @@ params { } 'AGPv3' { fasta = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/BismarkIndex/" @@ -273,7 +273,7 @@ params { } 'hg38' { fasta = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/BismarkIndex/" @@ -285,7 +285,7 @@ params { } 'hg19' { fasta = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/BismarkIndex/" @@ -298,7 +298,7 @@ params { } 'mm10' { fasta = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/BismarkIndex/" @@ -311,7 +311,7 @@ params { } 'bosTau8' { fasta = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/BismarkIndex/" @@ -321,7 +321,7 @@ params { } 'ce10' { fasta = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/BismarkIndex/" @@ -333,7 +333,7 @@ params { } 'canFam3' { fasta = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/BismarkIndex/" @@ -344,7 +344,7 @@ params { } 'danRer10' { fasta = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/BismarkIndex/" @@ -355,7 +355,7 @@ params { } 'dm6' { fasta = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/BismarkIndex/" @@ -366,7 +366,7 @@ params { } 'equCab2' { fasta = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/BismarkIndex/" @@ -377,7 +377,7 @@ params { } 'galGal4' { fasta = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/BismarkIndex/" @@ -388,7 +388,7 @@ params { } 'panTro4' { fasta = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/BismarkIndex/" @@ -399,7 +399,7 @@ params { } 'rn6' { fasta = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/BismarkIndex/" @@ -409,7 +409,7 @@ params { } 'sacCer3' { fasta = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/BismarkIndex/" @@ -419,7 +419,7 @@ params { } 'susScr3' { fasta = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/BWAIndex/genome.fa" + bwa = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/BWAIndex/version0.6.0/" bowtie2 = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/Bowtie2Index/" star = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/STARIndex/" bismark = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/BismarkIndex/" diff --git a/conf/modules.config b/conf/modules.config index a0506a4d..da58a5d8 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -1,12 +1,12 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Config file for defining DSL2 per module options and publishing paths -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Available keys to override module options: - ext.args = Additional arguments appended to command in module. - ext.args2 = Second set of arguments appended to command in module (multi-tool modules). - ext.args3 = Third set of arguments appended to command in module (multi-tool modules). - ext.prefix = File name prefix for output files. + ext.args = Additional arguments appended to command in module. + ext.args2 = Second set of arguments appended to command in module (multi-tool modules). + ext.args3 = Third set of arguments appended to command in module (multi-tool modules). + ext.prefix = File name prefix for output files. ---------------------------------------------------------------------------------------- */ @@ -14,14 +14,14 @@ process { publishDir = [ path: { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }, - mode: 'copy', + mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] withName: SAMPLESHEET_CHECK { publishDir = [ path: { "${params.outdir}/pipeline_info" }, - mode: 'copy', + mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] } @@ -33,7 +33,7 @@ process { withName: CUSTOM_DUMPSOFTWAREVERSIONS { publishDir = [ path: { "${params.outdir}/pipeline_info" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*_versions.yml' ] } diff --git a/conf/test.config b/conf/test.config index 4a556751..5b332b45 100644 --- a/conf/test.config +++ b/conf/test.config @@ -1,11 +1,11 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nextflow config file for running minimal tests -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Defines input files and everything required to run a fast and simple pipeline test. Use as follows: - nextflow run nf-core/mhcquant -profile test, + nextflow run nf-core/mhcquant -profile test, --outdir ---------------------------------------------------------------------------------------- */ diff --git a/conf/test_full.config b/conf/test_full.config index 24857680..0158c321 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -1,11 +1,11 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nextflow config file for running full-size tests -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Defines input files and everything required to run a full size pipeline test. Use as follows: - nextflow run nf-core/mhcquant -profile test_full, + nextflow run nf-core/mhcquant -profile test_full, --outdir ---------------------------------------------------------------------------------------- */ diff --git a/docs/images/nf-core-mhcquant_logo_dark.png b/docs/images/nf-core-mhcquant_logo_dark.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..098ca5f250958d7a8cd389598495f5f17765dd87 100644 GIT binary patch literal 72464 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%0D6Aha9ZZvy3Owj0R@{kHIA1_W(q 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

OTl^R>Y5|0ubnEBlYm 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

  • ?}CO!L0z*^A@={?YWj=CVBPBAbASac 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 BtD*n^ literal 0 HcmV?d00001 diff --git a/docs/usage.md b/docs/usage.md index 351248ce..0a54951e 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -57,7 +57,7 @@ An [example samplesheet](../assets/samplesheet.csv) has been provided with the p The typical command for running the pipeline is as follows: ```console -nextflow run nf-core/mhcquant --input samplesheet.csv --genome GRCh37 -profile docker +nextflow run nf-core/mhcquant --input samplesheet.csv --outdir --genome GRCh37 -profile docker ``` This will launch the pipeline with the `docker` configuration profile. See below for more information about profiles. @@ -141,11 +141,11 @@ Whilst the default requirements set within the pipeline will hopefully work for For example, if the nf-core/rnaseq pipeline is failing after multiple re-submissions of the `STAR_ALIGN` process due to an exit code of `137` this would indicate that there is an out of memory issue: ```console -[62/149eb0] NOTE: Process `RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)` terminated with an error exit status (137) -- Execution is retried (1) -Error executing process > 'RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)' +[62/149eb0] NOTE: Process `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)` terminated with an error exit status (137) -- Execution is retried (1) +Error executing process > 'NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)' Caused by: - Process `RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)` terminated with an error exit status (137) + Process `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)` terminated with an error exit status (137) Command executed: STAR \ @@ -169,17 +169,24 @@ Work dir: Tip: you can replicate the issue by changing to the process work dir and entering the command `bash .command.run` ``` -To bypass this error you would need to find exactly which resources are set by the `STAR_ALIGN` process. The quickest way is to search for `process STAR_ALIGN` in the [nf-core/rnaseq Github repo](https://github.com/nf-core/rnaseq/search?q=process+STAR_ALIGN). We have standardised the structure of Nextflow DSL2 pipelines such that all module files will be present in the `modules/` directory and so based on the search results the file we want is `modules/nf-core/software/star/align/main.nf`. If you click on the link to that file you will notice that there is a `label` directive at the top of the module that is set to [`label process_high`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/modules/nf-core/software/star/align/main.nf#L9). The [Nextflow `label`](https://www.nextflow.io/docs/latest/process.html#label) directive allows us to organise workflow processes in separate groups which can be referenced in a configuration file to select and configure subset of processes having similar computing requirements. The default values for the `process_high` label are set in the pipeline's [`base.config`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L33-L37) which in this case is defined as 72GB. Providing you haven't set any other standard nf-core parameters to __cap__ the [maximum resources](https://nf-co.re/usage/configuration#max-resources) used by the pipeline then we can try and bypass the `STAR_ALIGN` process failure by creating a custom config file that sets at least 72GB of memory, in this case increased to 100GB. The custom config below can then be provided to the pipeline via the [`-c`](#-c) parameter as highlighted in previous sections. +To bypass this error you would need to find exactly which resources are set by the `STAR_ALIGN` process. The quickest way is to search for `process STAR_ALIGN` in the [nf-core/rnaseq Github repo](https://github.com/nf-core/rnaseq/search?q=process+STAR_ALIGN). +We have standardised the structure of Nextflow DSL2 pipelines such that all module files will be present in the `modules/` directory and so, based on the search results, the file we want is `modules/nf-core/software/star/align/main.nf`. +If you click on the link to that file you will notice that there is a `label` directive at the top of the module that is set to [`label process_high`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/modules/nf-core/software/star/align/main.nf#L9). +The [Nextflow `label`](https://www.nextflow.io/docs/latest/process.html#label) directive allows us to organise workflow processes in separate groups which can be referenced in a configuration file to select and configure subset of processes having similar computing requirements. +The default values for the `process_high` label are set in the pipeline's [`base.config`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L33-L37) which in this case is defined as 72GB. +Providing you haven't set any other standard nf-core parameters to **cap** the [maximum resources](https://nf-co.re/usage/configuration#max-resources) used by the pipeline then we can try and bypass the `STAR_ALIGN` process failure by creating a custom config file that sets at least 72GB of memory, in this case increased to 100GB. +The custom config below can then be provided to the pipeline via the [`-c`](#-c) parameter as highlighted in previous sections. ```nextflow process { - withName: STAR_ALIGN { + withName: 'NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN' { memory = 100.GB } } ``` -> **NB:** We specify just the process name i.e. `STAR_ALIGN` in the config file and not the full task name string that is printed to screen in the error message or on the terminal whilst the pipeline is running i.e. `RNASEQ:ALIGN_STAR:STAR_ALIGN`. You may get a warning suggesting that the process selector isn't recognised but you can ignore that if the process name has been specified correctly. This is something that needs to be fixed upstream in core Nextflow. +> **NB:** We specify the full process name i.e. `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN` in the config file because this takes priority over the short name (`STAR_ALIGN`) and allows existing configuration using the full process name to be correctly overridden. +> If you get a warning suggesting that the process selector isn't recognised check that the process name has been specified correctly. ### Updating containers diff --git a/lib/NfcoreSchema.groovy b/lib/NfcoreSchema.groovy index 40ab65f2..b3d092f8 100755 --- a/lib/NfcoreSchema.groovy +++ b/lib/NfcoreSchema.groovy @@ -27,7 +27,7 @@ class NfcoreSchema { /* groovylint-disable-next-line UnusedPrivateMethodParameter */ public static void validateParameters(workflow, params, log, schema_filename='nextflow_schema.json') { def has_error = false - //=====================================================================// + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// // Check for nextflow core params and unexpected params def json = new File(getSchemaPath(workflow, schema_filename=schema_filename)).text def Map schemaParams = (Map) new JsonSlurper().parseText(json).get('definitions') @@ -135,7 +135,7 @@ class NfcoreSchema { } } - //=====================================================================// + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// // Validate parameters against the schema InputStream input_stream = new File(getSchemaPath(workflow, schema_filename=schema_filename)).newInputStream() JSONObject raw_schema = new JSONObject(new JSONTokener(input_stream)) diff --git a/lib/Utils.groovy b/lib/Utils.groovy index 1b88aec0..28567bd7 100755 --- a/lib/Utils.groovy +++ b/lib/Utils.groovy @@ -29,12 +29,12 @@ class Utils { conda_check_failed |= !(channels.indexOf('bioconda') < channels.indexOf('defaults')) if (conda_check_failed) { - log.warn "=============================================================================\n" + + log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " There is a problem with your Conda configuration!\n\n" + " You will need to set-up the conda-forge and bioconda channels correctly.\n" + " Please refer to https://bioconda.github.io/user/install.html#set-up-channels\n" + " NB: The order of the channels matters!\n" + - "===================================================================================" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" } } } diff --git a/lib/WorkflowMhcquant.groovy b/lib/WorkflowMhcquant.groovy index 8dd14946..6d24ef5f 100755 --- a/lib/WorkflowMhcquant.groovy +++ b/lib/WorkflowMhcquant.groovy @@ -48,11 +48,11 @@ class WorkflowMhcquant { // private static void genomeExistsError(params, log) { if (params.genomes && params.genome && !params.genomes.containsKey(params.genome)) { - log.error "=============================================================================\n" + + log.error "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " Genome '${params.genome}' not found in any config files provided to the pipeline.\n" + " Currently, the available genome keys are:\n" + " ${params.genomes.keySet().join(", ")}\n" + - "===================================================================================" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" System.exit(1) } } diff --git a/main.nf b/main.nf index 1cff392d..228e81a3 100644 --- a/main.nf +++ b/main.nf @@ -1,8 +1,8 @@ #!/usr/bin/env nextflow /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nf-core/mhcquant -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Github : https://github.com/nf-core/mhcquant Website: https://nf-co.re/mhcquant Slack : https://nfcore.slack.com/channels/mhcquant @@ -12,25 +12,25 @@ nextflow.enable.dsl = 2 /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GENOME PARAMETER VALUES -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ params.fasta = WorkflowMain.getGenomeAttribute(params, 'fasta') /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VALIDATE & PRINT PARAMETER SUMMARY -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ WorkflowMain.initialise(workflow, params, log) /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NAMED WORKFLOW FOR PIPELINE -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ include { MHCQUANT } from './workflows/mhcquant' @@ -43,9 +43,9 @@ workflow NFCORE_MHCQUANT { } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RUN ALL WORKFLOWS -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // @@ -57,7 +57,7 @@ workflow { } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ THE END -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ diff --git a/nextflow.config b/nextflow.config index 9f31d63d..aa43cb99 100644 --- a/nextflow.config +++ b/nextflow.config @@ -1,7 +1,7 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nf-core/mhcquant Nextflow config file -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Default config options for all compute environments ---------------------------------------------------------------------------------------- */ @@ -24,8 +24,9 @@ params { max_multiqc_email_size = '25.MB' // Boilerplate options - outdir = './results' + outdir = null tracedir = "${params.outdir}/pipeline_info" + publish_dir_mode = 'copy' email = null email_on_fail = null plaintext_email = false @@ -62,6 +63,15 @@ try { System.err.println("WARNING: Could not load nf-core/config profiles: ${params.custom_config_base}/nfcore_custom.config") } +// Load nf-core/mhcquant custom profiles from different institutions. +// Warning: Uncomment only if a pipeline-specific instititutional config already exists on nf-core/configs! +// try { +// includeConfig "${params.custom_config_base}/pipeline/mhcquant.config" +// } catch (Exception e) { +// System.err.println("WARNING: Could not load nf-core/config/mhcquant profiles: ${params.custom_config_base}/pipeline/mhcquant.config") +// } + + profiles { debug { process.beforeScript = 'echo $HOSTNAME' } conda { @@ -121,7 +131,7 @@ if (!params.igenomes_ignore) { } // Export these variables to prevent local Python/R libraries from conflicting with those in the container -// The JULIA depot path has been adjusted to a fixed path `/usr/local/share/julia` that needs to be used for packages in the container. +// The JULIA depot path has been adjusted to a fixed path `/usr/local/share/julia` that needs to be used for packages in the container. // See https://apeltzer.github.io/post/03-julia-lang-nextflow/ for details on that. Once we have a common agreement on where to keep Julia packages, this is adjustable. env { @@ -159,7 +169,7 @@ manifest { description = 'Identify and quantify peptides from mass spectrometry raw data' mainScript = 'main.nf' nextflowVersion = '!>=21.10.3' - version = '2.1.0' + version = '2.2.0' } // Load modules.config for DSL2 module specific options diff --git a/nextflow_schema.json b/nextflow_schema.json index f9190be0..3b9e1a93 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -11,7 +11,8 @@ "fa_icon": "fas fa-terminal", "description": "Define where the pipeline should find input data and save output data.", "required": [ - "input" + "input", + "outdir" ], "properties": { "input": { @@ -26,8 +27,8 @@ }, "outdir": { "type": "string", - "description": "Path to the output directory where the results will be saved.", - "default": "./results", + "format": "directory-path", + "description": "The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.", "fa_icon": "fas fa-folder-open" }, "email": { @@ -178,6 +179,22 @@ "fa_icon": "fas fa-question-circle", "hidden": true }, + "publish_dir_mode": { + "type": "string", + "default": "copy", + "description": "Method used to save pipeline results to output directory.", + "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", + "fa_icon": "fas fa-copy", + "enum": [ + "symlink", + "rellink", + "link", + "copy", + "copyNoFollow", + "move" + ], + "hidden": true + }, "email_on_fail": { "type": "string", "description": "Email address for completion summary, only when pipeline fails.", diff --git a/subworkflows/local/input_check.nf b/subworkflows/local/input_check.nf index cddcbb3c..0aecf87f 100644 --- a/subworkflows/local/input_check.nf +++ b/subworkflows/local/input_check.nf @@ -12,7 +12,7 @@ workflow INPUT_CHECK { SAMPLESHEET_CHECK ( samplesheet ) .csv .splitCsv ( header:true, sep:',' ) - .map { create_fastq_channels(it) } + .map { create_fastq_channel(it) } .set { reads } emit: @@ -21,22 +21,24 @@ workflow INPUT_CHECK { } // Function to get list of [ meta, [ fastq_1, fastq_2 ] ] -def create_fastq_channels(LinkedHashMap row) { +def create_fastq_channel(LinkedHashMap row) { + // create meta map def meta = [:] - meta.id = row.sample - meta.single_end = row.single_end.toBoolean() + meta.id = row.sample + meta.single_end = row.single_end.toBoolean() - def array = [] + // add path(s) of the fastq file(s) to the meta map + def fastq_meta = [] if (!file(row.fastq_1).exists()) { exit 1, "ERROR: Please check input samplesheet -> Read 1 FastQ file does not exist!\n${row.fastq_1}" } if (meta.single_end) { - array = [ meta, [ file(row.fastq_1) ] ] + fastq_meta = [ meta, [ file(row.fastq_1) ] ] } else { if (!file(row.fastq_2).exists()) { exit 1, "ERROR: Please check input samplesheet -> Read 2 FastQ file does not exist!\n${row.fastq_2}" } - array = [ meta, [ file(row.fastq_1), file(row.fastq_2) ] ] + fastq_meta = [ meta, [ file(row.fastq_1), file(row.fastq_2) ] ] } - return array + return fastq_meta } diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index d4c93591..2812324c 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -1,7 +1,7 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VALIDATE INPUTS -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ def summary_params = NfcoreSchema.paramsSummaryMap(workflow, params) @@ -18,18 +18,18 @@ for (param in checkPathParamList) { if (param) { file(param, checkIfExists: true if (params.input) { ch_input = file(params.input) } else { exit 1, 'Input samplesheet not specified!' } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CONFIG FILES -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ ch_multiqc_config = file("$projectDir/assets/multiqc_config.yaml", checkIfExists: true) ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multiqc_config) : Channel.empty() /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IMPORT LOCAL MODULES/SUBWORKFLOWS -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // @@ -38,9 +38,9 @@ ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multi include { INPUT_CHECK } from '../subworkflows/local/input_check' /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ IMPORT NF-CORE MODULES/SUBWORKFLOWS -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // @@ -51,9 +51,9 @@ include { MULTIQC } from '../modules/nf-core/modules/multiqc include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main' /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RUN MAIN WORKFLOW -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // Info required for completion email and summary @@ -104,9 +104,9 @@ workflow MHCQUANT { } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ COMPLETION EMAIL AND SUMMARY -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ workflow.onComplete { @@ -117,7 +117,7 @@ workflow.onComplete { } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ THE END -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ From c559d7b5a284f6f741013da1dc0004ecd67571d1 Mon Sep 17 00:00:00 2001 From: SusiJo Date: Wed, 16 Mar 2022 13:52:14 +0100 Subject: [PATCH 04/88] Added reference links --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b71cfe63..3b0110b0 100644 --- a/README.md +++ b/README.md @@ -112,26 +112,26 @@ In addition, references of tools and data used in this pipeline are as follows: > **Fred2 Immunoinformatics Toolbox** > -> Schubert B. et al, _Bioinformatics_ 2016 Jul 1;32(13):2044-6. doi: 10.1093/bioinformatics/btw113. Epub 2016 Feb 26 +> Schubert B. et al, _Bioinformatics_ 2016 Jul 1;32(13):2044-6. doi: [10.1093/bioinformatics/btw113](https://academic.oup.com/bioinformatics/article/32/13/2044/1743767) Epub 2016 Feb 26 > > **Comet Search Engine** > -> Eng J.K. et al, _J Am Soc Mass Spectrom._ 2015 Nov;26(11):1865-74. doi: 10.1007/s13361-015-1179-x. Epub 2015 Jun 27. +> Eng J.K. et al, _J Am Soc Mass Spectrom._ 2015 Nov;26(11):1865-74. doi: [10.1007/s13361-015-1179-x](https://pubs.acs.org/doi/10.1007/s13361-015-1179-x) Epub 2015 Jun 27. > > **Percolator** > -> Käll L. et al, _Nat Methods_ 2007 Nov;4(11):923-5. doi: 10.1038/nmeth1113. Epub 2007 Oct 21. +> Käll L. et al, _Nat Methods_ 2007 Nov;4(11):923-5. doi: [10.1038/nmeth1113](https://www.nature.com/articles/nmeth1113) Epub 2007 Oct 21. > > **Identification based RT Alignment** > -> Weisser H. et al, _J Proteome Res._ 2013 Apr 5;12(4):1628-44. doi: 10.1021/pr300992u. Epub 2013 Feb 22. +> Weisser H. et al, _J Proteome Res._ 2013 Apr 5;12(4):1628-44. doi: [10.1021/pr300992u](https://pubs.acs.org/doi/10.1021/pr300992u) Epub 2013 Feb 22. > > **Targeted peptide quantification** > -> Weisser H. et al, _J Proteome Res._ 2017 Aug 4;16(8):2964-2974. doi: 10.1021/acs.jproteome.7b00248. Epub 2017 Jul 19. +> Weisser H. et al, _J Proteome Res._ 2017 Aug 4;16(8):2964-2974. doi: [10.1021/acs.jproteome.7b00248](https://pubs.acs.org/doi/10.1021/acs.jproteome.7b00248) Epub 2017 Jul 19. > > **MHC affinity prediction** > -> O'Donnell T.J., _Cell Syst._ 2018 Jul 25;7(1):129-132.e4. doi: 10.1016/j.cels.2018.05.014. Epub 2018 Jun 27. +> O'Donnell T.J., _Cell Syst._ 2018 Jul 25;7(1):129-132.e4. doi: [10.1016/j.cels.2018.05.014](https://www.sciencedirect.com/science/article/pii/S2405471218302321) Epub 2018 Jun 27. > -> Shao X.M., _Cancer Immunol Res._ 2020 Mar;8(3):396-408. doi: 10.1158/2326-6066.CIR-19-0464. Epub 2019 Dec 23. +> Shao X.M., _Cancer Immunol Res._ 2020 Mar;8(3):396-408. doi: [10.1158/2326-6066.CIR-19-0464](https://aacrjournals.org/cancerimmunolres/article/8/3/396/469597/High-Throughput-Prediction-of-MHC-Class-I-and-II) Epub 2019 Dec 23. From a20a6543abfd55068afb74ebaba81af7f992e026 Mon Sep 17 00:00:00 2001 From: SusiJo Date: Wed, 16 Mar 2022 14:07:12 +0100 Subject: [PATCH 05/88] updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b493caef..ef325623 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - Adjustment of the README, including all contributors - Inclusion of the PSMs files (tsv format) per replicates in `results/PSMs` - Include check in WorkflowMhcquant, to determine if the allele and vcf sheet has been provided under specific circumstances +- Added reference links to README ### `Fixed` From 6e78312f2dcfa32bc88e3c02ca2c1bec640272f5 Mon Sep 17 00:00:00 2001 From: SusiJo Date: Wed, 16 Mar 2022 14:11:11 +0100 Subject: [PATCH 06/88] added issue # to changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef325623..6e8d44e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ - Adjustment of the README, including all contributors - Inclusion of the PSMs files (tsv format) per replicates in `results/PSMs` - Include check in WorkflowMhcquant, to determine if the allele and vcf sheet has been provided under specific circumstances -- Added reference links to README +- [[#188](https://github.com/nf-core/mhcquant/issues/188)] Added reference links to README ### `Fixed` From 75973c43e6f90ea260fef0a817fbb9289198c2c2 Mon Sep 17 00:00:00 2001 From: SusiJo Date: Wed, 16 Mar 2022 15:43:14 +0100 Subject: [PATCH 07/88] fix markdown linting --- .github/workflows/linting.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 3b448773..dddc2585 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: '10' + node-version: '16' - name: Install markdownlint run: npm install -g markdownlint-cli - name: Run Markdownlint @@ -53,7 +53,7 @@ jobs: - uses: actions/setup-node@v1 with: - node-version: '10' + node-version: '16' - name: Install editorconfig-checker run: npm install -g editorconfig-checker From d7061df92a9a625206f09dd454759abab5f20c2a Mon Sep 17 00:00:00 2001 From: WackerO Date: Wed, 16 Mar 2022 15:44:46 +0100 Subject: [PATCH 08/88] Updated parameter descriptions in nextflow_schema.json, set the default of run_centroidisation to false --- nextflow_schema.json | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index 4ffb8977..6faba3b8 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -64,7 +64,7 @@ "skip_decoy_generation": { "type": "boolean", "description": "Set depending on whether own decoy database should be used", - "help_text": "If you want to use your own decoys, you can specify a dataset that includes decoy sequences. However, each database entry should keep the prefix 'DECOY_'.\nOne should consider though that this option will then prevent to append variants to the database and if not using reversed decoys the subset refinement FDR option will not work." + "help_text": "If you want to use your own decoys, you can specify a dataset that includes decoy sequences. However, each database entry should keep the prefix 'DECOY_'.\nOne should consider though that this option will then prevent appending variants to the database and if not using reversed decoys the subset refinement FDR option will not work." } } }, @@ -81,6 +81,7 @@ }, "run_centroidisation": { "type": "boolean", + "default": false, "description": "Choose whether the specified ms_level in pick_ms_levels is centroided or not." } } @@ -94,29 +95,29 @@ "peptide_min_length": { "type": "integer", "default": 8, - "description": "Specify the minimum length of peptides considered after processing" + "description": "Specify the minimum length of peptides to be considered after processing" }, "peptide_max_length": { "type": "integer", "default": 12, - "description": "Specify the maximum length of peptides considered after processing" + "description": "Specify the maximum length of peptides to be considered after processing" }, "fragment_mass_tolerance": { "type": "number", "default": 0.02, - "description": "Specify the fragment mass tolerance used for the comet database search.", + "description": "Specify the fragment mass tolerance to be used for the comet database search.", "help_text": "For High-Resolution instruments a fragment mass tolerance value of 0.02 is recommended. (See the Comet parameter documentation: eg. 0.02)" }, "precursor_mass_tolerance": { "type": "integer", "default": 5, - "description": "Specify the precursor mass tolerance used for the comet database search.", + "description": "Specify the precursor mass tolerance to be used for the comet database search.", "help_text": " For High-Resolution instruments a precursor mass tolerance value of 5ppm is recommended. (eg. 5)" }, "fragment_bin_offset": { "type": "integer", "default": 0, - "description": "Specify the fragment bin offset used for the comet database search.", + "description": "Specify the fragment bin offset to be used for the comet database search.", "help_text": "For High-Resolution instruments a fragment bin offset of 0 is recommended. (See the Comet parameter documentation: eg. 0)" }, "number_mods": { @@ -168,13 +169,13 @@ "fixed_mods": { "type": "string", "description": "Specify which fixed modifications should be applied to the database search", - "help_text": "e.g. 'Carbamidomethyl (C)' (see OpenMS modifications)" + "help_text": "e.g. 'Carbamidomethyl (C)' (see OpenMS modifications; for a list of options, see parameter description on https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/nightly/html/TOPP_CometAdapter.html)" }, "variable_mods": { "type": "string", "default": "Oxidation (M)", "description": "Specify which variable modifications should be applied to the database search", - "help_text": "e.g. 'Oxidation (M)' (see OpenMS modifications)" + "help_text": "e.g. 'Oxidation (M)' (see OpenMS modifications; for a list of options, see parameter description on https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/nightly/html/TOPP_CometAdapter.html)" }, "use_x_ions": { "type": "boolean", @@ -331,17 +332,17 @@ }, "variant_indel_filter": { "type": "boolean", - "description": "Specify whether insertions and deletions should not be considered for variant translation", + "description": "Set this option to not consider insertions and deletions for variant translation", "default": false }, "variant_frameshift_filter": { "type": "boolean", - "description": "Specify whether frameshifts should not be considered for variant translation", + "description": "Set this option to not consider frameshifts for variant translation", "default": false }, "variant_snp_filter": { "type": "boolean", - "description": "Specify whether snps should not be considered for variant translation" + "description": "Set this option to not consider snps for variant translation" } } }, @@ -562,4 +563,4 @@ "$ref": "#/definitions/generic_options" } ] -} \ No newline at end of file +} From cb6af249520a9e32f044bb360f7a220768a8d6f0 Mon Sep 17 00:00:00 2001 From: WackerO Date: Wed, 16 Mar 2022 15:49:59 +0100 Subject: [PATCH 09/88] Updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b493caef..c0a72779 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - Adjustment of the README, including all contributors - Inclusion of the PSMs files (tsv format) per replicates in `results/PSMs` - Include check in WorkflowMhcquant, to determine if the allele and vcf sheet has been provided under specific circumstances +- [[#195](https://github.com/nf-core/mhcquant/issues/195)] Updated parameter documentation ### `Fixed` From f2fa4c4c9a0f9bc53a80fe00d3e2553593e43b6b Mon Sep 17 00:00:00 2001 From: SusiJo Date: Wed, 16 Mar 2022 16:04:34 +0100 Subject: [PATCH 10/88] Corrected format of samplesheet input in usage.md --- .github/workflows/linting.yml | 4 ++-- CHANGELOG.md | 1 + docs/usage.md | 38 +++++++++++++++++------------------ 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 3b448773..dddc2585 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: '10' + node-version: '16' - name: Install markdownlint run: npm install -g markdownlint-cli - name: Run Markdownlint @@ -53,7 +53,7 @@ jobs: - uses: actions/setup-node@v1 with: - node-version: '10' + node-version: '16' - name: Install editorconfig-checker run: npm install -g editorconfig-checker diff --git a/CHANGELOG.md b/CHANGELOG.md index b493caef..c0e29a7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ - Error that was raised in generate_proteins_from_vcf - Problems that were detected in predict_possible_class1_neoepitopes and predict_possible_class2_neoepitopes - Error that occurred in mhcnuggets_predictneoepitopesclass2 (faulty container set up) +- [#192](https://github.com/nf-core/mhcquant/issues/192) Fixed samplesheet format in usage.md ### `Dependencies` diff --git a/docs/usage.md b/docs/usage.md index 11cf718a..7a7d48b1 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -36,11 +36,11 @@ You will need to create a samplesheet with information about the samples you wou The `sample` identifiers have to be the same when you have multiple runs. The `Condition` identifiers can be used to further distinguish the sample groups. Below is an example for the same sample sequenced across 3 lanes: -```console -ID\tSample\tCondition\tReplicateFileName -1\tWT\tA\t/path/to/MS/files/WT_A1.raw -2\tWT\tA\t/path/to/MS/files/WT_A2.raw -3\tWT\tA\t/path/to/MS/files/WT_A3.raw +```tsv +ID Sample Condition ReplicateFileName +1 WT A /path/to/MS/files/WT_A1.raw +2 WT A /path/to/MS/files/WT_A2.raw +3 WT A /path/to/MS/files/WT_A3.raw ``` @@ -50,20 +50,20 @@ The pipeline will auto-detect whether a sample is either a mzML or raw files usi A final samplesheet file consisting of both single- and paired-end data may look something like the one below. This is for 6 samples, where `TREATMENT_REP3` has been sequenced twice. -```console -ID\tSample\tCondition\tReplicateFileName -1\tWT\tA\t/path/to/MS/files/WT_A1.raw -2\tWT\tA\t/path/to/MS/files/WT_A2.raw -3\tWT\tA\t/path/to/MS/files/WT_A3.raw -4\tWT\tB\t/path/to/MS/files/WT_B1.raw -5\tWT\tB\t/path/to/MS/files/WT_B2.raw -6\tWT\tB\t/path/to/MS/files/WT_B3.raw -7\tKO\tA\t/path/to/MS/files/KO_A1.raw -8\tKO\tA\t/path/to/MS/files/KO_A2.raw -9\tKO\tA\t/path/to/MS/files/KO_A3.raw -10\tKO\tB\t/path/to/MS/files/KO_B1.raw -11\tKO\tB\t/path/to/MS/files/KO_B2.raw -12\tKO\tB\t/path/to/MS/files/KO_B3.raw +```tsv +ID Sample Condition ReplicateFileName +1 WT A /path/to/MS/files/WT_A1.raw +2 WT A /path/to/MS/files/WT_A2.raw +3 WT A /path/to/MS/files/WT_A3.raw +4 WT B /path/to/MS/files/WT_B1.raw +5 WT B /path/to/MS/files/WT_B2.raw +6 WT B /path/to/MS/files/WT_B3.raw +7 KO A /path/to/MS/files/KO_A1.raw +8 KO A /path/to/MS/files/KO_A2.raw +9 KO A /path/to/MS/files/KO_A3.raw +10 KO B /path/to/MS/files/KO_B1.raw +11 KO B /path/to/MS/files/KO_B2.raw +12 KO B /path/to/MS/files/KO_B3.raw ``` From 4a5ddf5133f06434c48f2840af2650e8cb35b675 Mon Sep 17 00:00:00 2001 From: WackerO Date: Wed, 16 Mar 2022 16:09:46 +0100 Subject: [PATCH 11/88] Updated parameter descriptions in nextflow_schema.json, set the default of run_centroidisation to false, updated changelog --- CHANGELOG.md | 1 + nextflow_schema.json | 25 +++++++++++++------------ 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b493caef..1c3aadd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - Adjustment of the README, including all contributors - Inclusion of the PSMs files (tsv format) per replicates in `results/PSMs` - Include check in WorkflowMhcquant, to determine if the allele and vcf sheet has been provided under specific circumstances +- [#195](https://github.com/nf-core/mhcquant/issues/195)] Updated parameter documentation ### `Fixed` diff --git a/nextflow_schema.json b/nextflow_schema.json index 4ffb8977..6faba3b8 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -64,7 +64,7 @@ "skip_decoy_generation": { "type": "boolean", "description": "Set depending on whether own decoy database should be used", - "help_text": "If you want to use your own decoys, you can specify a dataset that includes decoy sequences. However, each database entry should keep the prefix 'DECOY_'.\nOne should consider though that this option will then prevent to append variants to the database and if not using reversed decoys the subset refinement FDR option will not work." + "help_text": "If you want to use your own decoys, you can specify a dataset that includes decoy sequences. However, each database entry should keep the prefix 'DECOY_'.\nOne should consider though that this option will then prevent appending variants to the database and if not using reversed decoys the subset refinement FDR option will not work." } } }, @@ -81,6 +81,7 @@ }, "run_centroidisation": { "type": "boolean", + "default": false, "description": "Choose whether the specified ms_level in pick_ms_levels is centroided or not." } } @@ -94,29 +95,29 @@ "peptide_min_length": { "type": "integer", "default": 8, - "description": "Specify the minimum length of peptides considered after processing" + "description": "Specify the minimum length of peptides to be considered after processing" }, "peptide_max_length": { "type": "integer", "default": 12, - "description": "Specify the maximum length of peptides considered after processing" + "description": "Specify the maximum length of peptides to be considered after processing" }, "fragment_mass_tolerance": { "type": "number", "default": 0.02, - "description": "Specify the fragment mass tolerance used for the comet database search.", + "description": "Specify the fragment mass tolerance to be used for the comet database search.", "help_text": "For High-Resolution instruments a fragment mass tolerance value of 0.02 is recommended. (See the Comet parameter documentation: eg. 0.02)" }, "precursor_mass_tolerance": { "type": "integer", "default": 5, - "description": "Specify the precursor mass tolerance used for the comet database search.", + "description": "Specify the precursor mass tolerance to be used for the comet database search.", "help_text": " For High-Resolution instruments a precursor mass tolerance value of 5ppm is recommended. (eg. 5)" }, "fragment_bin_offset": { "type": "integer", "default": 0, - "description": "Specify the fragment bin offset used for the comet database search.", + "description": "Specify the fragment bin offset to be used for the comet database search.", "help_text": "For High-Resolution instruments a fragment bin offset of 0 is recommended. (See the Comet parameter documentation: eg. 0)" }, "number_mods": { @@ -168,13 +169,13 @@ "fixed_mods": { "type": "string", "description": "Specify which fixed modifications should be applied to the database search", - "help_text": "e.g. 'Carbamidomethyl (C)' (see OpenMS modifications)" + "help_text": "e.g. 'Carbamidomethyl (C)' (see OpenMS modifications; for a list of options, see parameter description on https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/nightly/html/TOPP_CometAdapter.html)" }, "variable_mods": { "type": "string", "default": "Oxidation (M)", "description": "Specify which variable modifications should be applied to the database search", - "help_text": "e.g. 'Oxidation (M)' (see OpenMS modifications)" + "help_text": "e.g. 'Oxidation (M)' (see OpenMS modifications; for a list of options, see parameter description on https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/nightly/html/TOPP_CometAdapter.html)" }, "use_x_ions": { "type": "boolean", @@ -331,17 +332,17 @@ }, "variant_indel_filter": { "type": "boolean", - "description": "Specify whether insertions and deletions should not be considered for variant translation", + "description": "Set this option to not consider insertions and deletions for variant translation", "default": false }, "variant_frameshift_filter": { "type": "boolean", - "description": "Specify whether frameshifts should not be considered for variant translation", + "description": "Set this option to not consider frameshifts for variant translation", "default": false }, "variant_snp_filter": { "type": "boolean", - "description": "Specify whether snps should not be considered for variant translation" + "description": "Set this option to not consider snps for variant translation" } } }, @@ -562,4 +563,4 @@ "$ref": "#/definitions/generic_options" } ] -} \ No newline at end of file +} From 6c9969d2a105af5412d9e40ae90bbe7bdc697155 Mon Sep 17 00:00:00 2001 From: SusiJo Date: Wed, 16 Mar 2022 16:19:09 +0100 Subject: [PATCH 12/88] Added backslashes to fix run command --- .github/workflows/linting.yml | 4 ++-- CHANGELOG.md | 1 + README.md | 12 ++++++------ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 3b448773..dddc2585 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: '10' + node-version: '16' - name: Install markdownlint run: npm install -g markdownlint-cli - name: Run Markdownlint @@ -53,7 +53,7 @@ jobs: - uses: actions/setup-node@v1 with: - node-version: '10' + node-version: '16' - name: Install editorconfig-checker run: npm install -g editorconfig-checker diff --git a/CHANGELOG.md b/CHANGELOG.md index b493caef..df161585 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ - Error that was raised in generate_proteins_from_vcf - Problems that were detected in predict_possible_class1_neoepitopes and predict_possible_class2_neoepitopes - Error that occurred in mhcnuggets_predictneoepitopesclass2 (faulty container set up) +- [#189](https://github.com/nf-core/mhcquant/issues/189) Added backslashes in Quick Start in README ### `Dependencies` diff --git a/README.md b/README.md index b71cfe63..e7f9304d 100644 --- a/README.md +++ b/README.md @@ -55,12 +55,12 @@ On release, automated continuous integration tests run the pipeline on a full-si 4. Start running your own analysis! ```bash - nextflow run nf-core/mhcquant -profile test, - --input 'samples.tsv' - --fasta 'SWISSPROT_2020.fasta' - --allele_sheet 'alleles.tsv' - --predict_class_1 - --refine_fdr_on_predicted_subset + nextflow run nf-core/mhcquant -profile test, \ + --input 'samples.tsv' \ + --fasta 'SWISSPROT_2020.fasta' \ + --allele_sheet 'alleles.tsv' \ + --predict_class_1 \ + --refine_fdr_on_predicted_subset \ ``` ## Documentation From c94320cd88fef57fdeb719bd62692a9b0faa04e0 Mon Sep 17 00:00:00 2001 From: WackerO Date: Wed, 16 Mar 2022 16:22:05 +0100 Subject: [PATCH 13/88] Fixed conflict in changelog --- CHANGELOG.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 26448b39..1c3aadd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,11 +8,7 @@ - Adjustment of the README, including all contributors - Inclusion of the PSMs files (tsv format) per replicates in `results/PSMs` - Include check in WorkflowMhcquant, to determine if the allele and vcf sheet has been provided under specific circumstances -<<<<<<< HEAD -- [[#195](https://github.com/nf-core/mhcquant/issues/195)] Updated parameter documentation -======= - [#195](https://github.com/nf-core/mhcquant/issues/195)] Updated parameter documentation ->>>>>>> param_docu ### `Fixed` From 4d95b9a0aaa5e8dbb75d54a8dd14c3005d8070da Mon Sep 17 00:00:00 2001 From: SusiJo Date: Wed, 16 Mar 2022 16:33:04 +0100 Subject: [PATCH 14/88] Removed table of contents --- .github/workflows/linting.yml | 4 ++-- CHANGELOG.md | 4 ++++ docs/usage.md | 19 ------------------- 3 files changed, 6 insertions(+), 21 deletions(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 3b448773..dddc2585 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -14,7 +14,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v1 with: - node-version: '10' + node-version: '16' - name: Install markdownlint run: npm install -g markdownlint-cli - name: Run Markdownlint @@ -53,7 +53,7 @@ jobs: - uses: actions/setup-node@v1 with: - node-version: '10' + node-version: '16' - name: Install editorconfig-checker run: npm install -g editorconfig-checker diff --git a/CHANGELOG.md b/CHANGELOG.md index b493caef..8d9be2b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,10 @@ - Problems that were detected in predict_possible_class1_neoepitopes and predict_possible_class2_neoepitopes - Error that occurred in mhcnuggets_predictneoepitopesclass2 (faulty container set up) +### `Deprecated` + +- [#191](https://github.com/nf-core/mhcquant/issues/191) Removed the table of contents from usage.md + ### `Dependencies` | Dependency | Old version | New version | diff --git a/docs/usage.md b/docs/usage.md index 11cf718a..1d6d0208 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1,24 +1,5 @@ # nf-core/mhcquant: Usage -## Table of contents - -- [Table of contents](#table-of-contents) -- [Samplesheet input](#samplesheet-input) - - [Multiple runs of the same sample](#multiple-runs-of-the-same-sample) - - [Full samplesheet](#full-samplesheet) -- [Running the pipeline](#running-the-pipeline) - - [Updating the pipeline](#updating-the-pipeline) - - [Reproducibility](#reproducibility) -- [Core Nextflow arguments](#core-nextflow-arguments) - - [`-profile`](#-profile) - - [`-resume`](#-resume) -- [Custom configuration](#custom-configuration) - - [Resource requests](#resource-requests) - - [Updating containers](#updating-containers) - - [nf-core/configs](#nf-core-configs) -- [Running in the background](#running-in-the-background) -- [Nextflow memory requirements](#nextflow-memory-requirements) - ## :warning: Please read this documentation on the nf-core website: [https://nf-co.re/mhcquant/usage](https://nf-co.re/mhcquant/usage) > _Documentation of pipeline parameters is generated automatically from the pipeline schema and can no longer be found in markdown files._ From 00945c7c6913c728f5d3deaf0967300e572750eb Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar <71317334+marissaDubbelaar@users.noreply.github.com> Date: Wed, 16 Mar 2022 16:45:55 +0100 Subject: [PATCH 15/88] Alteration of additional parameters --- nextflow_schema.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index 6faba3b8..40732378 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -63,7 +63,7 @@ }, "skip_decoy_generation": { "type": "boolean", - "description": "Set depending on whether own decoy database should be used", + "description": "Add this parameter when you want to skip the generation of the decoy database, the consequence is that it prevents the generation of variants and FDR refinement", "help_text": "If you want to use your own decoys, you can specify a dataset that includes decoy sequences. However, each database entry should keep the prefix 'DECOY_'.\nOne should consider though that this option will then prevent appending variants to the database and if not using reversed decoys the subset refinement FDR option will not work." } } @@ -77,7 +77,7 @@ "pick_ms_levels": { "type": "integer", "default": 2, - "description": "If one ms level in the raw ms data is not centroided, specify the level here. (eg. 2)" + "description": "Specify the MS levels for which the peak picking is applied (unless you use `--run_centroidisation`)." }, "run_centroidisation": { "type": "boolean", @@ -199,7 +199,7 @@ }, "remove_precursor_peak": { "type": "boolean", - "description": "Include precursor ions into the peptide spectrum matching", + "description": "Include when you want to remove all peaks around precursor m/z, "default": false }, "spectrum_batch_size": { From ced551870fc3411c3082c807e88313eaf8db1166 Mon Sep 17 00:00:00 2001 From: WackerO <43847497+WackerO@users.noreply.github.com> Date: Wed, 16 Mar 2022 16:51:56 +0100 Subject: [PATCH 16/88] Update nextflow_schema.json --- nextflow_schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index 40732378..888e2a9a 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -199,7 +199,7 @@ }, "remove_precursor_peak": { "type": "boolean", - "description": "Include when you want to remove all peaks around precursor m/z, + "description": "Include if you want to remove all peaks around precursor m/z" "default": false }, "spectrum_batch_size": { From 3005ea950e6eacacf1a1d32edc5ccbf4a177432a Mon Sep 17 00:00:00 2001 From: WackerO Date: Thu, 17 Mar 2022 10:25:09 +0100 Subject: [PATCH 17/88] Fixed some typos --- docs/output.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/output.md b/docs/output.md index 780c3982..f302b1ff 100644 --- a/docs/output.md +++ b/docs/output.md @@ -16,7 +16,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d * [VCF](#vcf) * [Class prediction](#class-prediction) * [Class (1|2) bindings](#class-12-bindings) -* [Rotation time prediction](#rotation-time-prediction) +* [Retention time prediction](#retention-time-prediction) * [Workflow reporting and documentation](#workflow-reporting-and-documentation) * [MultiQC](#multiqc) * [Pipeline information](#pipeline-information) @@ -94,7 +94,7 @@ The output mzTab contains many columns annotating the most important information PEP sequence accession best_search_engine_score[1] retention_time charge mass_to_charge peptide_abundance_study_variable[1] ``` -Most important to know that in this format we annotated the q-value of each peptide identification in the `best_seach_engine_score[1]` column and peptide quantities in the peptide_abundance_study_variable` columns. +Most important to know is that in this format we annotated the q-value of each peptide identification in the `best_search_engine_score[1]` column and peptide quantities in the peptide_abundance_study_variable` columns. [mzTab](http://www.psidev.info/mztab) is a light-weight format to report mass spectrometry search results. It provides all important information about identified peptide hits and is compatible with the PRIDE Archive - proteomics data repository. ## VCF @@ -126,7 +126,7 @@ These CSV files list all of the theoretically possible neoepitope sequences from -This CSV which lists all neoepitopes that are found during the mass spectrometry search, independant of binding predictions +This CSV lists all neoepitopes that are found during the mass spectrometry search, independant of binding predictions. The format is as follows: ```bash @@ -146,7 +146,7 @@ peptide sequence geneID -This CSV fils contains all theoretically possible neoepitope sequences from the variants that were specified in the vcf +This CSV file contains all theoretically possible neoepitope sequences from the variants that were specified in the vcf. The format is shown below ```bash @@ -168,21 +168,21 @@ Sequence Antigen ID Variants -This folder containing the binding predictions of all detected class 1 or 2 peptides and all theoretically possible neoepitope sequences +This folder contains the binding predictions of all detected class 1 or 2 peptides and all theoretically possible neoepitope sequences The prediction outputs are comma-separated table (CSV) for each allele, listing each peptide sequence and its corresponding predicted affinity scores: ```bash peptide allele prediction prediction_low prediction_high prediction_percentile ``` -## Rotation time prediction +## Retention time prediction
    Output files * `RT_prediction` - * `*id_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time found peptides are provided - * `*txt_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time predicted neoepitopes are provided + * `*id_RTpredicted.csv`: If `--predict_RT` is specified, the retention time found peptides are provided + * `*txt_RTpredicted.csv`: If `--predict_RT` is specified, the retention time predicted neoepitopes are provided
    @@ -209,7 +209,7 @@ Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQ * `pipeline_info/` * Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. - * Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. + * Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameters are used when running the pipeline. * Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`. From 6208d2bc6021deec57ba10d8439b0463b74074f9 Mon Sep 17 00:00:00 2001 From: WackerO Date: Thu, 17 Mar 2022 10:41:30 +0100 Subject: [PATCH 18/88] Updated Changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b493caef..474d8edd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ - Error that was raised in generate_proteins_from_vcf - Problems that were detected in predict_possible_class1_neoepitopes and predict_possible_class2_neoepitopes - Error that occurred in mhcnuggets_predictneoepitopesclass2 (faulty container set up) +- [#200](https://github.com/nf-core/mhcquant/pull/200) fixes some typos and stuff in the output docu ### `Dependencies` From cb2cd398d3f80a1b9f4886e49d2a2b249635a4a5 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar <71317334+marissaDubbelaar@users.noreply.github.com> Date: Thu, 17 Mar 2022 10:48:49 +0100 Subject: [PATCH 19/88] Include repository type --- .nf-core.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.nf-core.yml b/.nf-core.yml index eb3e9e3c..7a068950 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -2,3 +2,4 @@ files_exist: - .github/markdownlint.yml - bin/markdown_to_html.py actions_awsfulltest: False +repository_type: pipeline \ No newline at end of file From 475d93bb7714870c36f841eacc5de55afb96a507 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar <71317334+marissaDubbelaar@users.noreply.github.com> Date: Thu, 17 Mar 2022 10:51:15 +0100 Subject: [PATCH 20/88] Add end of line to .nf-core.yml --- .nf-core.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.nf-core.yml b/.nf-core.yml index 7a068950..7e48bfc2 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -2,4 +2,4 @@ files_exist: - .github/markdownlint.yml - bin/markdown_to_html.py actions_awsfulltest: False -repository_type: pipeline \ No newline at end of file +repository_type: pipeline From 3452e9e0e93095938d98d11e11beb19f80968aad Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 17 Mar 2022 13:11:22 +0100 Subject: [PATCH 21/88] update template --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/workflows/awsfulltest.yml | 5 ++++- .github/workflows/ci.yml | 2 +- .github/workflows/linting.yml | 30 +++++++++++------------------- .nf-core.yml | 1 + 5 files changed, 18 insertions(+), 22 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 90bc342a..eeb1e55f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -19,7 +19,7 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/mhcq - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/mhcquant/tree/master/.github/CONTRIBUTING.md) - [ ] If necessary, also make a PR on the nf-core/mhcquant _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 (`nextflow run . -profile test,docker`). +- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker` --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. - [ ] `CHANGELOG.md` is updated. diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 00ac8dfd..238e064c 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Launch workflow via tower - uses: nf-core/tower-action@v2 + uses: nf-core/tower-action@v3 with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} @@ -27,4 +27,7 @@ jobs: "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/mhcquant/results-${{ github.sha }}" } profiles: test_full,aws_tower + nextflow_config: | + process.errorStrategy = 'retry' + process.maxRetries = 3 pre_run_script: 'export NXF_VER=21.10.3' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dde5a265..a4d0da4c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ env: jobs: test: - name: Run workflow tests + name: Run pipeline with test data # Only run on push if this is the nf-core dev branch (merged PRs) if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mhcquant') }} runs-on: ubuntu-latest diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 3b448773..77090f00 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -12,9 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 - with: - node-version: '10' + - uses: actions/setup-node@v2 - name: Install markdownlint run: npm install -g markdownlint-cli - name: Run Markdownlint @@ -50,11 +48,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - - uses: actions/setup-node@v1 - with: - node-version: '10' - + - uses: actions/setup-node@v2 - name: Install editorconfig-checker run: npm install -g editorconfig-checker @@ -64,15 +58,13 @@ jobs: YAML: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 - - uses: actions/setup-node@v1 + - name: Checkout + uses: actions/checkout@master + - name: 'Yamllint' + uses: karancode/yamllint-github-action@master with: - node-version: '10' - - name: Install yaml-lint - run: npm install -g yaml-lint - - name: Run yaml-lint - run: yamllint $(find ${GITHUB_WORKSPACE} -type f -name "*.yml" -o -name "*.yaml") - + yamllint_file_or_dir: '.' + yamllint_config_filepath: '.yamllint.yml' # If the above check failed, post a comment on the PR explaining the failure - name: Post PR comment if: failure() @@ -83,9 +75,9 @@ jobs: To keep the code consistent with lots of contributors, we run automated code consistency checks. To fix this CI test, please run: - - * Install `yaml-lint` - * [Install `npm`](https://www.npmjs.com/get-npm) then [install `yaml-lint`](https://www.npmjs.com/package/yaml-lint) (`npm install -g yaml-lint`) + * Install `yamllint` + * Install `yamllint` following [this](https://yamllint.readthedocs.io/en/stable/quickstart.html#installing-yamllint) + instructions or alternative install it in your [conda environment](https://anaconda.org/conda-forge/yamllint) * Fix the markdown errors * Run the test locally: `yamllint $(find . -type f -name "*.yml" -o -name "*.yaml")` * Fix any reported errors in your YAML files diff --git a/.nf-core.yml b/.nf-core.yml index eb3e9e3c..7a068950 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -2,3 +2,4 @@ files_exist: - .github/markdownlint.yml - bin/markdown_to_html.py actions_awsfulltest: False +repository_type: pipeline \ No newline at end of file From 2ab924c127a9fd477be86d8e136d3d6bd45d54c6 Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 17 Mar 2022 13:11:42 +0100 Subject: [PATCH 22/88] add new files --- .gitpod.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .gitpod.yml diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 00000000..bb0afd33 --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,14 @@ +image: nfcore/gitpod:latest + +vscode: + extensions: # based on nf-core.nf-core-extensionpack + - codezombiech.gitignore # Language support for .gitignore files + # - cssho.vscode-svgviewer # SVG viewer + - davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code + - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed + - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files + - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar + - mechatroner.rainbow-csv # Highlight columns in csv files in different colors + # - nextflow.nextflow # Nextflow syntax highlighting + - oderwat.indent-rainbow # Highlight indentation level + - streetsidesoftware.code-spell-checker # Spelling checker for source code \ No newline at end of file From d19490e533ed82036645c063a45456e860cf6269 Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 17 Mar 2022 13:12:08 +0100 Subject: [PATCH 23/88] add new files --- .yamllint.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .yamllint.yml diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 00000000..487e7571 --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,6 @@ +extends: default + +rules: + document-start: disable + line-length: disable + truthy: disable \ No newline at end of file From 6f6b5a5181cd8337c9bb09a68dee06d87c9ca598 Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 17 Mar 2022 13:13:29 +0100 Subject: [PATCH 24/88] Update template and nf-core modules --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 - .github/workflows/linting.yml | 6 +- lib/NfcoreSchema.groovy | 4 +- modules.json | 4 +- .../custom/dumpsoftwareversions/main.nf | 3 + .../custom/dumpsoftwareversions/meta.yml | 2 +- modules/nf-core/modules/multiqc/main.nf | 9 ++- modules/nf-core/modules/multiqc/meta.yml | 66 +++++++++---------- 8 files changed, 52 insertions(+), 43 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 816a6f87..11baf3ec 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,4 +1,3 @@ - name: Bug report description: Report something that is broken or incorrect labels: bug diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 77090f00..fda934c0 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -48,7 +48,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + - name: Install editorconfig-checker run: npm install -g editorconfig-checker @@ -65,6 +67,7 @@ jobs: with: yamllint_file_or_dir: '.' yamllint_config_filepath: '.yamllint.yml' + # If the above check failed, post a comment on the PR explaining the failure - name: Post PR comment if: failure() @@ -75,11 +78,12 @@ jobs: To keep the code consistent with lots of contributors, we run automated code consistency checks. To fix this CI test, please run: + * Install `yamllint` * Install `yamllint` following [this](https://yamllint.readthedocs.io/en/stable/quickstart.html#installing-yamllint) instructions or alternative install it in your [conda environment](https://anaconda.org/conda-forge/yamllint) * Fix the markdown errors - * Run the test locally: `yamllint $(find . -type f -name "*.yml" -o -name "*.yaml")` + * Run the test locally: `yamllint $(find . -type f -name "*.yml" -o -name "*.yaml") -c ./.yamllint.yml` * Fix any reported errors in your YAML files Once you push these changes the test should pass, and you can hide this comment :+1: diff --git a/lib/NfcoreSchema.groovy b/lib/NfcoreSchema.groovy index 40ab65f2..b3d092f8 100755 --- a/lib/NfcoreSchema.groovy +++ b/lib/NfcoreSchema.groovy @@ -27,7 +27,7 @@ class NfcoreSchema { /* groovylint-disable-next-line UnusedPrivateMethodParameter */ public static void validateParameters(workflow, params, log, schema_filename='nextflow_schema.json') { def has_error = false - //=====================================================================// + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// // Check for nextflow core params and unexpected params def json = new File(getSchemaPath(workflow, schema_filename=schema_filename)).text def Map schemaParams = (Map) new JsonSlurper().parseText(json).get('definitions') @@ -135,7 +135,7 @@ class NfcoreSchema { } } - //=====================================================================// + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~// // Validate parameters against the schema InputStream input_stream = new File(getSchemaPath(workflow, schema_filename=schema_filename)).newInputStream() JSONObject raw_schema = new JSONObject(new JSONTokener(input_stream)) diff --git a/modules.json b/modules.json index 1d7e0f6a..b12b6b5e 100644 --- a/modules.json +++ b/modules.json @@ -4,10 +4,10 @@ "repos": { "nf-core/modules": { "custom/dumpsoftwareversions": { - "git_sha": "20d8250d9f39ddb05dfb437603aaf99b5c0b2b41" + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" }, "multiqc": { - "git_sha": "20d8250d9f39ddb05dfb437603aaf99b5c0b2b41" + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" } } } diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf b/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf index 934bb467..327d5100 100644 --- a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf @@ -15,6 +15,9 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { path "software_versions_mqc.yml", emit: mqc_yml path "versions.yml" , emit: versions + when: + task.ext.when == null || task.ext.when + script: def args = task.ext.args ?: '' template 'dumpsoftwareversions.py' diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml index 5b5b8a60..60b546a0 100644 --- a/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml @@ -8,7 +8,7 @@ tools: description: Custom module used to dump software versions within the nf-core pipeline template homepage: https://github.com/nf-core/tools documentation: https://github.com/nf-core/tools - licence: ['MIT'] + licence: ["MIT"] input: - versions: type: file diff --git a/modules/nf-core/modules/multiqc/main.nf b/modules/nf-core/modules/multiqc/main.nf index 3dceb162..1264aac1 100644 --- a/modules/nf-core/modules/multiqc/main.nf +++ b/modules/nf-core/modules/multiqc/main.nf @@ -1,10 +1,10 @@ process MULTIQC { label 'process_medium' - conda (params.enable_conda ? 'bioconda::multiqc=1.11' : null) + conda (params.enable_conda ? 'bioconda::multiqc=1.12' : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.11--pyhdfd78af_0' : - 'quay.io/biocontainers/multiqc:1.11--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.12--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.12--pyhdfd78af_0' }" input: path multiqc_files @@ -15,6 +15,9 @@ process MULTIQC { path "*_plots" , optional:true, emit: plots path "versions.yml" , emit: versions + when: + task.ext.when == null || task.ext.when + script: def args = task.ext.args ?: '' """ diff --git a/modules/nf-core/modules/multiqc/meta.yml b/modules/nf-core/modules/multiqc/meta.yml index 63c75a45..6fa891ef 100644 --- a/modules/nf-core/modules/multiqc/meta.yml +++ b/modules/nf-core/modules/multiqc/meta.yml @@ -1,40 +1,40 @@ name: MultiQC description: Aggregate results from bioinformatics analyses across many samples into a single report keywords: - - QC - - bioinformatics tools - - Beautiful stand-alone HTML report + - QC + - bioinformatics tools + - Beautiful stand-alone HTML report tools: - - multiqc: - description: | - MultiQC searches a given directory for analysis logs and compiles a HTML report. - It's a general use tool, perfect for summarising the output from numerous bioinformatics tools. - homepage: https://multiqc.info/ - documentation: https://multiqc.info/docs/ - licence: ['GPL-3.0-or-later'] + - multiqc: + description: | + MultiQC searches a given directory for analysis logs and compiles a HTML report. + It's a general use tool, perfect for summarising the output from numerous bioinformatics tools. + homepage: https://multiqc.info/ + documentation: https://multiqc.info/docs/ + licence: ["GPL-3.0-or-later"] input: - - multiqc_files: - type: file - description: | - List of reports / files recognised by MultiQC, for example the html and zip output of FastQC + - multiqc_files: + type: file + description: | + List of reports / files recognised by MultiQC, for example the html and zip output of FastQC output: - - report: - type: file - description: MultiQC report file - pattern: "multiqc_report.html" - - data: - type: dir - description: MultiQC data dir - pattern: "multiqc_data" - - plots: - type: file - description: Plots created by MultiQC - pattern: "*_data" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - report: + type: file + description: MultiQC report file + pattern: "multiqc_report.html" + - data: + type: dir + description: MultiQC data dir + pattern: "multiqc_data" + - plots: + type: file + description: Plots created by MultiQC + pattern: "*_data" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@abhi18av" - - "@bunop" - - "@drpatelh" + - "@abhi18av" + - "@bunop" + - "@drpatelh" From 5c717cc4f02a72d67fc968af91b5c6dd7e4c4d74 Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 17 Mar 2022 13:44:42 +0100 Subject: [PATCH 25/88] correct linting --- .github/workflows/awstest.yml | 2 +- .github/workflows/branch.yml | 1 - .github/workflows/linting.yml | 1 - .github/workflows/linting_comment.yml | 2 -- .gitpod.yml | 4 ++-- .nf-core.yml | 2 +- .yamllint.yml | 6 ------ workflows/mhcquant.nf | 10 ++++++++++ 8 files changed, 14 insertions(+), 14 deletions(-) delete mode 100644 .yamllint.yml diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 15e5b355..eb3eb10f 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Launch workflow via tower uses: nf-core/tower-action@v2 - + with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 6f399bfa..9a2280c8 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -43,4 +43,3 @@ jobs: Thanks again for your contribution! repo-token: ${{ secrets.GITHUB_TOKEN }} allow-repeats: false - diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index fda934c0..29088e5b 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -138,4 +138,3 @@ jobs: lint_log.txt lint_results.md PR_number.txt - diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 44d72994..04758f61 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -1,4 +1,3 @@ - name: nf-core linting comment # This workflow is triggered after the linting action is complete # It posts an automated comment to the PR, even if the PR is coming from a fork @@ -27,4 +26,3 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} number: ${{ steps.pr_number.outputs.pr_number }} path: linting-logs/lint_results.md - diff --git a/.gitpod.yml b/.gitpod.yml index bb0afd33..6ea5d5f2 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,7 +1,7 @@ image: nfcore/gitpod:latest vscode: - extensions: # based on nf-core.nf-core-extensionpack + extensions: # based on nf-core.nf-core-extensionpack - codezombiech.gitignore # Language support for .gitignore files # - cssho.vscode-svgviewer # SVG viewer - davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code @@ -11,4 +11,4 @@ vscode: - mechatroner.rainbow-csv # Highlight columns in csv files in different colors # - nextflow.nextflow # Nextflow syntax highlighting - oderwat.indent-rainbow # Highlight indentation level - - streetsidesoftware.code-spell-checker # Spelling checker for source code \ No newline at end of file + - streetsidesoftware.code-spell-checker # Spelling checker for source code diff --git a/.nf-core.yml b/.nf-core.yml index 7a068950..7e48bfc2 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -2,4 +2,4 @@ files_exist: - .github/markdownlint.yml - bin/markdown_to_html.py actions_awsfulltest: False -repository_type: pipeline \ No newline at end of file +repository_type: pipeline diff --git a/.yamllint.yml b/.yamllint.yml deleted file mode 100644 index 487e7571..00000000 --- a/.yamllint.yml +++ /dev/null @@ -1,6 +0,0 @@ -extends: default - -rules: - document-start: disable - line-length: disable - truthy: disable \ No newline at end of file diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index 94384ca8..efefe608 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -158,6 +158,11 @@ workflow MHCQUANT { // Index decoy and target hits OPENMS_PEPTIDEINDEXER(OPENMS_COMETADAPTER.out.idxml.join(ch_decoy_db)) ch_versions = ch_versions.mix(OPENMS_PEPTIDEINDEXER.out.versions.ifEmpty(null)) + /* +======================================================================================== + Under construction +======================================================================================== +*/ // // SUBWORKFLOW: Pre-process step for the quantification of the data @@ -179,6 +184,11 @@ workflow MHCQUANT { } .groupTuple(by: [0]) } + /* +======================================================================================== + Under construction +======================================================================================== +*/ // Merge aligned idXMLfiles OPENMS_IDMERGER(ch_proceeding_idx) From ed68304eee3c6d347d2d9f3463fc810df6196b8a Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 17 Mar 2022 13:44:59 +0100 Subject: [PATCH 26/88] add .yamllint.yml --- .yamllint.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .yamllint.yml diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 00000000..d466deec --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,6 @@ +extends: default + +rules: + document-start: disable + line-length: disable + truthy: disable From f387bcaadd293f53f5daac378fdc75a32fd36b7b Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 17 Mar 2022 13:46:29 +0100 Subject: [PATCH 27/88] resolve spacing issue --- workflows/mhcquant.nf | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index efefe608..94384ca8 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -158,11 +158,6 @@ workflow MHCQUANT { // Index decoy and target hits OPENMS_PEPTIDEINDEXER(OPENMS_COMETADAPTER.out.idxml.join(ch_decoy_db)) ch_versions = ch_versions.mix(OPENMS_PEPTIDEINDEXER.out.versions.ifEmpty(null)) - /* -======================================================================================== - Under construction -======================================================================================== -*/ // // SUBWORKFLOW: Pre-process step for the quantification of the data @@ -184,11 +179,6 @@ workflow MHCQUANT { } .groupTuple(by: [0]) } - /* -======================================================================================== - Under construction -======================================================================================== -*/ // Merge aligned idXMLfiles OPENMS_IDMERGER(ch_proceeding_idx) From 2e3cdd914b0dfd6acdd3ea77722a00b178b9cd52 Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 17 Mar 2022 13:47:13 +0100 Subject: [PATCH 28/88] linting --- .github/workflows/branch.yml | 1 + .github/workflows/linting.yml | 1 + .github/workflows/linting_comment.yml | 2 ++ 3 files changed, 4 insertions(+) diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 9a2280c8..6f399bfa 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -43,3 +43,4 @@ jobs: Thanks again for your contribution! repo-token: ${{ secrets.GITHUB_TOKEN }} allow-repeats: false + diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 29088e5b..fda934c0 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -138,3 +138,4 @@ jobs: lint_log.txt lint_results.md PR_number.txt + diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 04758f61..44d72994 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -1,3 +1,4 @@ + name: nf-core linting comment # This workflow is triggered after the linting action is complete # It posts an automated comment to the PR, even if the PR is coming from a fork @@ -26,3 +27,4 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} number: ${{ steps.pr_number.outputs.pr_number }} path: linting-logs/lint_results.md + From 4a40fbf0ef82868b507437a0793adea4cfe55dfd Mon Sep 17 00:00:00 2001 From: marissaDubbelaar Date: Thu, 17 Mar 2022 13:49:49 +0100 Subject: [PATCH 29/88] linting --- .github/workflows/branch.yml | 1 - .github/workflows/linting.yml | 1 - .github/workflows/linting_comment.yml | 2 -- 3 files changed, 4 deletions(-) diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 6f399bfa..9a2280c8 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -43,4 +43,3 @@ jobs: Thanks again for your contribution! repo-token: ${{ secrets.GITHUB_TOKEN }} allow-repeats: false - diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index fda934c0..29088e5b 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -138,4 +138,3 @@ jobs: lint_log.txt lint_results.md PR_number.txt - diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 44d72994..04758f61 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -1,4 +1,3 @@ - name: nf-core linting comment # This workflow is triggered after the linting action is complete # It posts an automated comment to the PR, even if the PR is coming from a fork @@ -27,4 +26,3 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} number: ${{ steps.pr_number.outputs.pr_number }} path: linting-logs/lint_results.md - From 5f14f19795b8aa75a6de82de29471d38d0a61679 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Thu, 17 Mar 2022 14:51:58 +0100 Subject: [PATCH 30/88] write PSMs files for unquantified data --- subworkflows/local/pre_quantification.nf | 28 ++------------------- workflows/mhcquant.nf | 32 +++++++++++++++++++++--- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/subworkflows/local/pre_quantification.nf b/subworkflows/local/pre_quantification.nf index 7c44d85d..34631c2e 100644 --- a/subworkflows/local/pre_quantification.nf +++ b/subworkflows/local/pre_quantification.nf @@ -2,9 +2,6 @@ * Perform the quantification of the samples when the parameter --skip_quantification is not provided */ -include { OPENMS_FALSEDISCOVERYRATE } from '../../modules/local/openms_falsediscoveryrate' -include { OPENMS_IDFILTER as OPENMS_IDFILTER_FOR_ALIGNMENT } from '../../modules/local/openms_idfilter' -include { OPENMS_TEXTEXPORTER as OPENMS_TEXTEXPORTER_PSMS } from '../../modules/local/openms_textexporter' include { OPENMS_MAPALIGNERIDENTIFICATION } from '../../modules/local/openms_mapaligneridentification' include { OPENMS_MAPRTTRANSFORMER as OPENMS_MAPRTTRANSFORMERMZML @@ -13,31 +10,14 @@ include { workflow PRE_QUANTIFICATION { take: + aligned_hits indexed_hits - ch_mzml_file mzml_files - raw_files main: ch_versions = Channel.empty() - // Calculate fdr for id based alignment - OPENMS_FALSEDISCOVERYRATE(indexed_hits) - ch_versions = ch_versions.mix(OPENMS_FALSEDISCOVERYRATE.out.versions.first().ifEmpty(null)) - // Filter fdr for id based alignment - OPENMS_IDFILTER_FOR_ALIGNMENT(OPENMS_FALSEDISCOVERYRATE.out.idxml - .flatMap { it -> [tuple(it[0], it[1], null)]}) - ch_versions = ch_versions.mix(OPENMS_IDFILTER_FOR_ALIGNMENT.out.versions.first().ifEmpty(null)) - // Write the content to a PSMs file - OPENMS_TEXTEXPORTER_PSMS( - OPENMS_IDFILTER_FOR_ALIGNMENT.out.idxml - .flatMap { - meta, idxml -> - ident = idxml.baseName.split('_-_')[1] - [[[id:ident, sample:meta.sample, condition:meta.condition, ext:meta.ext], idxml]] - } - ) // Group samples together if they are replicates - ch_grouped_fdr_filtered = OPENMS_IDFILTER_FOR_ALIGNMENT.out.idxml + ch_grouped_fdr_filtered = aligned_hits .map { meta, raw -> [[id:meta.sample + "_" + meta.condition, sample:meta.sample, condition:meta.condition, ext:meta.ext], raw] @@ -47,10 +27,7 @@ workflow PRE_QUANTIFICATION { OPENMS_MAPALIGNERIDENTIFICATION(ch_grouped_fdr_filtered) ch_versions = ch_versions.mix(OPENMS_MAPALIGNERIDENTIFICATION.out.versions.first().ifEmpty(null)) // Intermediate step to join RT transformation files with mzml and idxml channels - //ms_files.mzml mzml_files - .mix(raw_files) - .mix(ch_mzml_file) .join( OPENMS_MAPALIGNERIDENTIFICATION.out.trafoxml .transpose() @@ -89,5 +66,4 @@ workflow PRE_QUANTIFICATION { versions = ch_versions ch_proceeding_idx aligned_mzml = OPENMS_MAPRTTRANSFORMERMZML.out.aligned - psms_outcome = OPENMS_IDFILTER_FOR_ALIGNMENT.out.idxml } diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index 94384ca8..eda6696d 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -62,6 +62,11 @@ include { OPENMS_THERMORAWFILEPARSER } from include { OPENMS_PEAKPICKERHIRES } from '../modules/local/openms_peakpickerhires' include { OPENMS_COMETADAPTER } from '../modules/local/openms_cometadapter' include { OPENMS_PEPTIDEINDEXER } from '../modules/local/openms_peptideindexer' + +include { OPENMS_FALSEDISCOVERYRATE } from '../modules/local/openms_falsediscoveryrate' +include { OPENMS_IDFILTER as OPENMS_IDFILTER_FOR_ALIGNMENT } from '../modules/local/openms_idfilter' +include { OPENMS_TEXTEXPORTER as OPENMS_TEXTEXPORTER_PSMS } from '../modules/local/openms_textexporter' + include { OPENMS_IDFILTER as OPENMS_IDFILTER_Q_VALUE } from '../modules/local/openms_idfilter' include { OPENMS_IDMERGER } from '../modules/local/openms_idmerger' include { OPENMS_PSMFEATUREEXTRACTOR } from '../modules/local/openms_psmfeatureextractor' @@ -162,12 +167,31 @@ workflow MHCQUANT { // // SUBWORKFLOW: Pre-process step for the quantification of the data // + + // Calculate fdr for id based alignment + OPENMS_FALSEDISCOVERYRATE(OPENMS_PEPTIDEINDEXER.out.idxml) + ch_versions = ch_versions.mix(OPENMS_FALSEDISCOVERYRATE.out.versions.first().ifEmpty(null)) + // Filter fdr for id based alignment + OPENMS_IDFILTER_FOR_ALIGNMENT(OPENMS_FALSEDISCOVERYRATE.out.idxml + .flatMap { it -> [tuple(it[0], it[1], null)]}) + ch_versions = ch_versions.mix(OPENMS_IDFILTER_FOR_ALIGNMENT.out.versions.first().ifEmpty(null)) + // Write the content to a PSMs file + OPENMS_TEXTEXPORTER_PSMS( + OPENMS_IDFILTER_FOR_ALIGNMENT.out.idxml + .flatMap { + meta, idxml -> + ident = idxml.baseName.split('_-_')[1] + [[[id:ident, sample:meta.sample, condition:meta.condition, ext:meta.ext], idxml]] + } + ) + if(!params.skip_quantification) { PRE_QUANTIFICATION( + OPENMS_IDFILTER_FOR_ALIGNMENT.out.idxml, OPENMS_PEPTIDEINDEXER.out.idxml, - ch_mzml_file, - ms_files.mzml, - OPENMS_THERMORAWFILEPARSER.out.mzml + ms_files.mzml + .mix(OPENMS_THERMORAWFILEPARSER.out.mzml) + .mix(ch_mzml_file) ) ch_proceeding_idx = PRE_QUANTIFICATION.out.ch_proceeding_idx ch_versions = ch_versions.mix(PRE_QUANTIFICATION.out.versions.ifEmpty(null)) @@ -217,7 +241,7 @@ workflow MHCQUANT { // if ( !params.skip_quantification) { POST_QUANTIFICATION ( - PRE_QUANTIFICATION.out.psms_outcome, + OPENMS_IDFILTER_FOR_ALIGNMENT.out.idxml, PRE_QUANTIFICATION.out.aligned_mzml, filter_q_value ) From fa0ce46632dc20e55441ddc8c29ecfa3667c05aa Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Thu, 17 Mar 2022 16:50:21 +0100 Subject: [PATCH 31/88] Include combinded FDR filtered output file for unquantified data --- CHANGELOG.md | 17 ++++++++++++++++- conf/modules.config | 2 +- subworkflows/local/post_quantification.nf | 6 +++--- subworkflows/local/pre_quantification.nf | 2 +- workflows/mhcquant.nf | 11 +++++++---- 5 files changed, 28 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b493caef..590e6f04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,21 @@ # nf-core/mhcquant: Changelog -## v2.2.0 nfcore/mhcquant "Silver Titanium Ostrich" - 2021/01/14 +## v2.3.0 nfcore/mhcquant for "White Gold Swallow" - 2022/mm/dependency + +### `Added` + +- NF-core template update (version 2.3) +- Adjustments of the `PRE_QUANTIFICATION` subworkflow: `OPENMS_FALSEDISCOVERYRATE`, `OPENMS_IDFILTER_FOR_ALIGNMENT`, and `OPENMS_TEXTEXPORTER_PSMS` + +### `Fixed` + +- Typo in previous release date + +### `Dependencies` + +### `Deprecated` + +## v2.2.0 nfcore/mhcquant "Silver Titanium Ostrich" - 2022/01/14 ### `Added` diff --git a/conf/modules.config b/conf/modules.config index 882dfb29..f8af33f7 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -138,7 +138,7 @@ process { publishDir = [ enabled: false ] } - withName: 'OPENMS_TEXTEXPORTER_CSV' { + withName: 'OPENMS_TEXTEXPORTER_UNQUANTIFIED|OPENMS_TEXTEXPORTER_QUANTIFIED' { ext.args = [ "-id:add_metavalues 0" ].join(' ').trim() diff --git a/subworkflows/local/post_quantification.nf b/subworkflows/local/post_quantification.nf index 3d9ffbae..9c720915 100644 --- a/subworkflows/local/post_quantification.nf +++ b/subworkflows/local/post_quantification.nf @@ -5,7 +5,7 @@ include { OPENMS_FEATUREFINDERIDENTIFICATION } from '../../modules/local/openms_featurefinderidentification' include { OPENMS_FEATURELINKERUNLABELEDKD } from '../../modules/local/openms_featurelinkerunlabeledkd' include { OPENMS_IDCONFLICTRESOLVER } from '../../modules/local/openms_idconflictresolver' -include { OPENMS_TEXTEXPORTER as OPENMS_TEXTEXPORTER_CSV } from '../../modules/local/openms_textexporter' +include { OPENMS_TEXTEXPORTER as OPENMS_TEXTEXPORTER_QUANTIFIED } from '../../modules/local/openms_textexporter' include { OPENMS_MZTABEXPORTER } from '../../modules/local/openms_mztabexporter' workflow POST_QUANTIFICATION { @@ -39,8 +39,8 @@ workflow POST_QUANTIFICATION { OPENMS_IDCONFLICTRESOLVER(OPENMS_FEATURELINKERUNLABELEDKD.out.consensusxml) ch_versions = ch_versions.mix(OPENMS_IDCONFLICTRESOLVER.out.versions.first().ifEmpty(null)) // Export all information as text to csv - OPENMS_TEXTEXPORTER_CSV(OPENMS_IDCONFLICTRESOLVER.out.consensusxml) - ch_versions = ch_versions.mix(OPENMS_TEXTEXPORTER_CSV.out.versions.first().ifEmpty(null)) + OPENMS_TEXTEXPORTER_QUANTIFIED(OPENMS_IDCONFLICTRESOLVER.out.consensusxml) + ch_versions = ch_versions.mix(OPENMS_TEXTEXPORTER_QUANTIFIED.out.versions.first().ifEmpty(null)) // Export all information as mzTab OPENMS_MZTABEXPORTER(OPENMS_IDCONFLICTRESOLVER.out.consensusxml) ch_versions = ch_versions.mix(OPENMS_MZTABEXPORTER.out.versions.first().ifEmpty(null)) diff --git a/subworkflows/local/pre_quantification.nf b/subworkflows/local/pre_quantification.nf index 34631c2e..a23dc14c 100644 --- a/subworkflows/local/pre_quantification.nf +++ b/subworkflows/local/pre_quantification.nf @@ -23,7 +23,7 @@ workflow PRE_QUANTIFICATION { [[id:meta.sample + "_" + meta.condition, sample:meta.sample, condition:meta.condition, ext:meta.ext], raw] } .groupTuple(by: [0]) - // Compute alignment rt transformatio + // Compute alignment rt transformation OPENMS_MAPALIGNERIDENTIFICATION(ch_grouped_fdr_filtered) ch_versions = ch_versions.mix(OPENMS_MAPALIGNERIDENTIFICATION.out.versions.first().ifEmpty(null)) // Intermediate step to join RT transformation files with mzml and idxml channels diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index eda6696d..f41b5399 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -71,6 +71,7 @@ include { OPENMS_IDFILTER as OPENMS_IDFILTER_Q_VALUE } from include { OPENMS_IDMERGER } from '../modules/local/openms_idmerger' include { OPENMS_PSMFEATUREEXTRACTOR } from '../modules/local/openms_psmfeatureextractor' include { OPENMS_PERCOLATORADAPTER } from '../modules/local/openms_percolatoradapter' +include { OPENMS_TEXTEXPORTER as OPENMS_TEXTEXPORTER_UNQUANTIFIED } from '../modules/local/openms_textexporter' include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/modules/custom/dumpsoftwareversions/main' include { MULTIQC } from '../modules/nf-core/modules/multiqc/main' @@ -164,10 +165,6 @@ workflow MHCQUANT { OPENMS_PEPTIDEINDEXER(OPENMS_COMETADAPTER.out.idxml.join(ch_decoy_db)) ch_versions = ch_versions.mix(OPENMS_PEPTIDEINDEXER.out.versions.ifEmpty(null)) - // - // SUBWORKFLOW: Pre-process step for the quantification of the data - // - // Calculate fdr for id based alignment OPENMS_FALSEDISCOVERYRATE(OPENMS_PEPTIDEINDEXER.out.idxml) ch_versions = ch_versions.mix(OPENMS_FALSEDISCOVERYRATE.out.versions.first().ifEmpty(null)) @@ -185,6 +182,10 @@ workflow MHCQUANT { } ) + // + // SUBWORKFLOW: Pre-process step for the quantification of the data + // + if(!params.skip_quantification) { PRE_QUANTIFICATION( OPENMS_IDFILTER_FOR_ALIGNMENT.out.idxml, @@ -246,6 +247,8 @@ workflow MHCQUANT { filter_q_value ) ch_versions = ch_versions.mix(POST_QUANTIFICATION.out.versions.ifEmpty(null)) + } else { + OPENMS_TEXTEXPORTER_UNQUANTIFIED (filter_q_value.flatMap { ident, meta, idxml -> [[meta, idxml]] }) } // From c0b1705e513553a06b6872bcbcc814fc62b643b9 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Thu, 17 Mar 2022 16:51:54 +0100 Subject: [PATCH 32/88] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 590e6f04..a5c4faa1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - NF-core template update (version 2.3) - Adjustments of the `PRE_QUANTIFICATION` subworkflow: `OPENMS_FALSEDISCOVERYRATE`, `OPENMS_IDFILTER_FOR_ALIGNMENT`, and `OPENMS_TEXTEXPORTER_PSMS` +- Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write an combinded FDR filtered output file for unquantified data ### `Fixed` From c0f87505a097a3ad10924e07a3e2d05815734412 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Thu, 17 Mar 2022 16:54:37 +0100 Subject: [PATCH 33/88] Removed typo from CHANGELOG --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5c4faa1..de0478ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # nf-core/mhcquant: Changelog -## v2.3.0 nfcore/mhcquant for "White Gold Swallow" - 2022/mm/dependency +## v2.3.0 nfcore/mhcquant "White Gold Swallow" - 2022/mm/dependency ### `Added` From 52cb8afa17a64b526198fd6b56c89b0c6ce95304 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 18 Mar 2022 14:56:10 +0100 Subject: [PATCH 34/88] fix typos --- .yamllint.yml | 6 ------ CHANGELOG.md | 4 ++-- 2 files changed, 2 insertions(+), 8 deletions(-) delete mode 100644 .yamllint.yml diff --git a/.yamllint.yml b/.yamllint.yml deleted file mode 100644 index d466deec..00000000 --- a/.yamllint.yml +++ /dev/null @@ -1,6 +0,0 @@ -extends: default - -rules: - document-start: disable - line-length: disable - truthy: disable diff --git a/CHANGELOG.md b/CHANGELOG.md index de0478ea..6e30c20e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,9 +4,9 @@ ### `Added` -- NF-core template update (version 2.3) +- nf-core template update (version 2.3) - Adjustments of the `PRE_QUANTIFICATION` subworkflow: `OPENMS_FALSEDISCOVERYRATE`, `OPENMS_IDFILTER_FOR_ALIGNMENT`, and `OPENMS_TEXTEXPORTER_PSMS` -- Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write an combinded FDR filtered output file for unquantified data +- Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write a combined FDR filtered output file for unquantified data ### `Fixed` From dcf46ab98129f158dd728f00ab6b1ab773ae85bd Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 18 Mar 2022 14:56:26 +0100 Subject: [PATCH 35/88] linting fix --- .github/workflows/branch.yml | 1 + .github/workflows/linting.yml | 1 + .github/workflows/linting_comment.yml | 2 ++ 3 files changed, 4 insertions(+) diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 9a2280c8..6f399bfa 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -43,3 +43,4 @@ jobs: Thanks again for your contribution! repo-token: ${{ secrets.GITHUB_TOKEN }} allow-repeats: false + diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 29088e5b..fda934c0 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -138,3 +138,4 @@ jobs: lint_log.txt lint_results.md PR_number.txt + diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 04758f61..44d72994 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -1,3 +1,4 @@ + name: nf-core linting comment # This workflow is triggered after the linting action is complete # It posts an automated comment to the PR, even if the PR is coming from a fork @@ -26,3 +27,4 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} number: ${{ steps.pr_number.outputs.pr_number }} path: linting-logs/lint_results.md + From 43eeb158ae3495704d2ceabd64c201c46ea98fa7 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 18 Mar 2022 14:56:55 +0100 Subject: [PATCH 36/88] bump version --- nextflow.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow.config b/nextflow.config index 9db0570e..aed85fb4 100644 --- a/nextflow.config +++ b/nextflow.config @@ -213,7 +213,7 @@ manifest { description = 'Identify and quantify peptides from mass spectrometry raw data' mainScript = 'main.nf' nextflowVersion = '!>=21.10.3' - version = '2.2.0' + version = '2.3.0dev' } // Function to ensure that resource requirements don't go beyond From dd5c7981de57213b08cab4f07fe646e85a3c7ef5 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 18 Mar 2022 15:03:32 +0100 Subject: [PATCH 37/88] add .yamllint.yml --- .yamllint.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .yamllint.yml diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 00000000..d466deec --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,6 @@ +extends: default + +rules: + document-start: disable + line-length: disable + truthy: disable From 47642d27756781139b025efd1a0f048091482517 Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Wed, 23 Mar 2022 13:52:56 +0000 Subject: [PATCH 38/88] Template update for nf-core/tools version 2.3.1 --- .editorconfig | 5 +- .github/CONTRIBUTING.md | 15 +- .github/ISSUE_TEMPLATE/bug_report.yml | 1 - .github/PULL_REQUEST_TEMPLATE.md | 6 +- .github/workflows/awsfulltest.yml | 1 - .github/workflows/awstest.yml | 2 +- .github/workflows/branch.yml | 5 +- .github/workflows/ci.yml | 12 +- .github/workflows/linting.yml | 85 ++--------- .github/workflows/linting_comment.yml | 3 +- .gitpod.yml | 16 +- .markdownlint.yml | 14 -- .prettierrc.yml | 1 + .yamllint.yml | 6 - CHANGELOG.md | 2 + CITATIONS.md | 27 ++-- README.md | 31 ++-- assets/email_template.html | 142 ++++++++++++------ assets/multiqc_config.yaml | 11 -- assets/multiqc_config.yml | 11 ++ assets/schema_input.json | 5 +- docs/README.md | 8 +- docs/output.md | 28 ++-- docs/usage.md | 109 +++++++------- modules.json | 8 +- .../custom/dumpsoftwareversions/main.nf | 3 + .../custom/dumpsoftwareversions/meta.yml | 2 +- modules/nf-core/modules/fastqc/main.nf | 3 + modules/nf-core/modules/fastqc/meta.yml | 90 +++++------ modules/nf-core/modules/multiqc/main.nf | 9 +- modules/nf-core/modules/multiqc/meta.yml | 66 ++++---- nextflow_schema.json | 14 +- workflows/mhcquant.nf | 2 +- 33 files changed, 361 insertions(+), 382 deletions(-) delete mode 100644 .markdownlint.yml create mode 100644 .prettierrc.yml delete mode 100644 .yamllint.yml delete mode 100644 assets/multiqc_config.yaml create mode 100644 assets/multiqc_config.yml diff --git a/.editorconfig b/.editorconfig index 95549501..b6b31907 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,12 +8,9 @@ trim_trailing_whitespace = true indent_size = 4 indent_style = space -[*.{yml,yaml}] +[*.{md,yml,yaml,html,css,scss,js}] indent_size = 2 -[*.json] -insert_final_newline = unset - # These files are edited and tested upstream in nf-core/modules [/modules/nf-core/**] charset = unset diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 1312f3db..e93e473a 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -15,8 +15,7 @@ Contributions to the code are even more welcome ;) If you'd like to write some code for nf-core/mhcquant, the standard workflow is as follows: -1. Check that there isn't already an issue about your idea in the [nf-core/mhcquant issues](https://github.com/nf-core/mhcquant/issues) to avoid duplicating work - * If there isn't one already, please create one so that others know you're working on this +1. Check that there isn't already an issue about your idea in the [nf-core/mhcquant issues](https://github.com/nf-core/mhcquant/issues) to avoid duplicating work. If there isn't one already, please create one so that others know you're working on this 2. [Fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the [nf-core/mhcquant repository](https://github.com/nf-core/mhcquant) to your GitHub account 3. Make the necessary changes / additions within your forked repository following [Pipeline conventions](#pipeline-contribution-conventions) 4. Use `nf-core schema build` and add any new parameters to the pipeline JSON schema (requires [nf-core tools](https://github.com/nf-core/tools) >= 1.10). @@ -49,9 +48,9 @@ These tests are run both with the latest available version of `Nextflow` and als :warning: Only in the unlikely and regretful event of a release happening with a bug. -* On your own fork, make a new branch `patch` based on `upstream/master`. -* Fix the bug, and bump version (X.Y.Z+1). -* A PR should be made on `master` from patch to directly this particular bug. +- On your own fork, make a new branch `patch` based on `upstream/master`. +- Fix the bug, and bump version (X.Y.Z+1). +- A PR should be made on `master` from patch to directly this particular bug. ## Getting help @@ -73,7 +72,7 @@ If you wish to contribute a new step, please use the following coding standards: 6. Add sanity checks and validation for all relevant parameters. 7. Perform local tests to validate that the new code works as expected. 8. If applicable, add a new test command in `.github/workflow/ci.yml`. -9. Update MultiQC config `assets/multiqc_config.yaml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module. +9. Update MultiQC config `assets/multiqc_config.yml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module. 10. Add a description of the output files and if relevant any appropriate images from the MultiQC report to `docs/output.md`. ### Default values @@ -92,8 +91,8 @@ The process resources can be passed on to the tool dynamically within the proces Please use the following naming schemes, to make it easy to understand what is going where. -* initial process channel: `ch_output_from_` -* intermediate and terminal channels: `ch__for_` +- initial process channel: `ch_output_from_` +- intermediate and terminal channels: `ch__for_` ### Nextflow version bumping diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 11baf3ec..93fe63de 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -2,7 +2,6 @@ name: Bug report description: Report something that is broken or incorrect labels: bug body: - - type: markdown attributes: value: | diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index eeb1e55f..5ad4a971 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -16,10 +16,10 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/mhcq - [ ] This comment contains a description of changes (with reason). - [ ] If you've fixed a bug or added code that should be tested, add tests! - - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/mhcquant/tree/master/.github/CONTRIBUTING.md) - - [ ] If necessary, also make a PR on the nf-core/mhcquant _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. + - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/mhcquant/tree/master/.github/CONTRIBUTING.md) + - [ ] If necessary, also make a PR on the nf-core/mhcquant _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 (`nextflow run . -profile test,docker` --outdir `). +- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. - [ ] `CHANGELOG.md` is updated. diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 2940644e..384911b0 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -18,7 +18,6 @@ jobs: # TODO nf-core: You can customise AWS full pipeline tests as required # Add full size test data (but still relatively small datasets for few samples) # on the `test_full.config` test runs with only one set of parameters - with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 71da6865..63ebabdc 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -10,9 +10,9 @@ jobs: if: github.repository == 'nf-core/mhcquant' runs-on: ubuntu-latest steps: + # Launch workflow using Tower CLI tool action - name: Launch workflow via tower uses: nf-core/tower-action@v3 - with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 6f399bfa..2759e501 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -13,8 +13,7 @@ jobs: - name: Check PRs if: github.repository == 'nf-core/mhcquant' run: | - { [[ ${{github.event.pull_request.head.repo.full_name }} == nf-core/mhcquant ]] && [[ $GITHUB_HEAD_REF = "dev" ]]; } || [[ $GITHUB_HEAD_REF == "patch" ]] - + "{ [[ ${{github.event.pull_request.head.repo.full_name }} == nf-core/mhcquant ]] && [[ $GITHUB_HEAD_REF = "dev" ]]; } || [[ $GITHUB_HEAD_REF == "patch" ]]" # If the above check failed, post a comment on the PR explaining the failure # NOTE - this doesn't currently work if the PR is coming from a fork, due to limitations in GitHub actions secrets @@ -43,4 +42,4 @@ jobs: Thanks again for your contribution! repo-token: ${{ secrets.GITHUB_TOKEN }} allow-repeats: false - +# diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e85768fc..71bc2d86 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,18 +16,18 @@ jobs: test: name: Run pipeline with test data # Only run on push if this is the nf-core dev branch (merged PRs) - if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mhcquant') }} + if: "${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mhcquant') }}" runs-on: ubuntu-latest strategy: matrix: # Nextflow versions include: # Test pipeline minimum Nextflow version - - NXF_VER: '21.10.3' - NXF_EDGE: '' + - NXF_VER: "21.10.3" + NXF_EDGE: "" # Test latest edge release of Nextflow - - NXF_VER: '' - NXF_EDGE: '1' + - NXF_VER: "" + NXF_EDGE: "1" steps: - name: Check out pipeline code uses: actions/checkout@v2 @@ -48,3 +48,5 @@ jobs: # Remember that you can parallelise this by using strategy.matrix run: | nextflow run ${GITHUB_WORKSPACE} -profile test,docker --outdir ./results + +# diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index fda934c0..e9cf5de3 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -1,6 +1,7 @@ name: nf-core linting # This workflow is triggered on pushes and PRs to the repository. -# It runs the `nf-core lint` and markdown lint tests to ensure that the code meets the nf-core guidelines +# It runs the `nf-core lint` and markdown lint tests to ensure +# that the code meets the nf-core guidelines. on: push: pull_request: @@ -8,42 +9,6 @@ on: types: [published] jobs: - Markdown: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - - name: Install markdownlint - run: npm install -g markdownlint-cli - - name: Run Markdownlint - run: markdownlint . - - # If the above check failed, post a comment on the PR explaining the failure - - name: Post PR comment - if: failure() - uses: mshick/add-pr-comment@v1 - with: - message: | - ## Markdown linting is failing - - To keep the code consistent with lots of contributors, we run automated code consistency checks. - To fix this CI test, please run: - - * Install `markdownlint-cli` - * On Mac: `brew install markdownlint-cli` - * Everything else: [Install `npm`](https://www.npmjs.com/get-npm) then [install `markdownlint-cli`](https://www.npmjs.com/package/markdownlint-cli) (`npm install -g markdownlint-cli`) - * Fix the markdown errors - * Automatically: `markdownlint . --fix` - * Manually resolve anything left from `markdownlint .` - - Once you push these changes the test should pass, and you can hide this comment :+1: - - We highly recommend setting up markdownlint in your code editor so that this formatting is done automatically on save. Ask about it on Slack for help! - - Thanks again for your contribution! - repo-token: ${{ secrets.GITHUB_TOKEN }} - allow-repeats: false - EditorConfig: runs-on: ubuntu-latest steps: @@ -55,49 +20,24 @@ jobs: run: npm install -g editorconfig-checker - name: Run ECLint check - run: editorconfig-checker -exclude README.md $(git ls-files | grep -v test) + run: editorconfig-checker -exclude README.md $(find .* -type f | grep -v '.git\|.py\|.md\|json\|yml\|yaml\|html\|css\|work\|.nextflow\|build\|nf_core.egg-info\|log.txt\|Makefile') - YAML: + Prettier: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@master - - name: 'Yamllint' - uses: karancode/yamllint-github-action@master - with: - yamllint_file_or_dir: '.' - yamllint_config_filepath: '.yamllint.yml' - - # If the above check failed, post a comment on the PR explaining the failure - - name: Post PR comment - if: failure() - uses: mshick/add-pr-comment@v1 - with: - message: | - ## YAML linting is failing - - To keep the code consistent with lots of contributors, we run automated code consistency checks. - To fix this CI test, please run: - - * Install `yamllint` - * Install `yamllint` following [this](https://yamllint.readthedocs.io/en/stable/quickstart.html#installing-yamllint) - instructions or alternative install it in your [conda environment](https://anaconda.org/conda-forge/yamllint) - * Fix the markdown errors - * Run the test locally: `yamllint $(find . -type f -name "*.yml" -o -name "*.yaml") -c ./.yamllint.yml` - * Fix any reported errors in your YAML files + - uses: actions/checkout@v2 - Once you push these changes the test should pass, and you can hide this comment :+1: + - uses: actions/setup-node@v2 - We highly recommend setting up yaml-lint in your code editor so that this formatting is done automatically on save. Ask about it on Slack for help! + - name: Install Prettier + run: npm install -g prettier - Thanks again for your contribution! - repo-token: ${{ secrets.GITHUB_TOKEN }} - allow-repeats: false + - name: Run Prettier --check + run: prettier --check ${GITHUB_WORKSPACE} nf-core: runs-on: ubuntu-latest steps: - - name: Check out pipeline code uses: actions/checkout@v2 @@ -110,8 +50,8 @@ jobs: - uses: actions/setup-python@v1 with: - python-version: '3.6' - architecture: 'x64' + python-version: "3.6" + architecture: "x64" - name: Install dependencies run: | @@ -139,3 +79,4 @@ jobs: lint_results.md PR_number.txt +# diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 44d72994..91c487a1 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -1,4 +1,3 @@ - name: nf-core linting comment # This workflow is triggered after the linting action is complete # It posts an automated comment to the PR, even if the PR is coming from a fork @@ -27,4 +26,4 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} number: ${{ steps.pr_number.outputs.pr_number }} path: linting-logs/lint_results.md - +# diff --git a/.gitpod.yml b/.gitpod.yml index b7d4cee1..c452ee93 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -2,13 +2,13 @@ image: nfcore/gitpod:latest vscode: extensions: # based on nf-core.nf-core-extensionpack - - codezombiech.gitignore # Language support for .gitignore files + - codezombiech.gitignore # Language support for .gitignore files # - cssho.vscode-svgviewer # SVG viewer - - davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code - - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed - - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files - - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar - - mechatroner.rainbow-csv # Highlight columns in csv files in different colors + - davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code + - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed + - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files + - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar + - mechatroner.rainbow-csv # Highlight columns in csv files in different colors # - nextflow.nextflow # Nextflow syntax highlighting - - oderwat.indent-rainbow # Highlight indentation level - - streetsidesoftware.code-spell-checker # Spelling checker for source code + - oderwat.indent-rainbow # Highlight indentation level + - streetsidesoftware.code-spell-checker # Spelling checker for source code diff --git a/.markdownlint.yml b/.markdownlint.yml deleted file mode 100644 index 9e605fcf..00000000 --- a/.markdownlint.yml +++ /dev/null @@ -1,14 +0,0 @@ -# Markdownlint configuration file -default: true -line-length: false -ul-indent: - indent: 4 -no-duplicate-header: - siblings_only: true -no-inline-html: - allowed_elements: - - img - - p - - kbd - - details - - summary diff --git a/.prettierrc.yml b/.prettierrc.yml new file mode 100644 index 00000000..c81f9a76 --- /dev/null +++ b/.prettierrc.yml @@ -0,0 +1 @@ +printWidth: 120 diff --git a/.yamllint.yml b/.yamllint.yml deleted file mode 100644 index d466deec..00000000 --- a/.yamllint.yml +++ /dev/null @@ -1,6 +0,0 @@ -extends: default - -rules: - document-start: disable - line-length: disable - truthy: disable diff --git a/CHANGELOG.md b/CHANGELOG.md index 81c64094..febfa011 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ Initial release of nf-core/mhcquant, created with the [nf-core](https://nf-co.re ### `Fixed` +- Clarified conda usage and added an installation tutorial for Singularity since the one on Syllabs' website uses an outdate version of GO Compiler + ### `Dependencies` ### `Deprecated` diff --git a/CITATIONS.md b/CITATIONS.md index c55beb09..f19ab2c2 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -10,23 +10,26 @@ ## Pipeline tools -* [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) +- [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) -* [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) - > Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924. +- [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) + > Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924. ## Software packaging/containerisation tools -* [Anaconda](https://anaconda.com) - > Anaconda Software Distribution. Computer software. Vers. 2-2.4.0. Anaconda, Nov. 2016. Web. +- [Anaconda](https://anaconda.com) -* [Bioconda](https://pubmed.ncbi.nlm.nih.gov/29967506/) - > Grüning B, Dale R, Sjödin A, Chapman BA, Rowe J, Tomkins-Tinch CH, Valieris R, Köster J; Bioconda Team. Bioconda: sustainable and comprehensive software distribution for the life sciences. Nat Methods. 2018 Jul;15(7):475-476. doi: 10.1038/s41592-018-0046-7. PubMed PMID: 29967506. + > Anaconda Software Distribution. Computer software. Vers. 2-2.4.0. Anaconda, Nov. 2016. Web. -* [BioContainers](https://pubmed.ncbi.nlm.nih.gov/28379341/) - > da Veiga Leprevost F, Grüning B, Aflitos SA, Röst HL, Uszkoreit J, Barsnes H, Vaudel M, Moreno P, Gatto L, Weber J, Bai M, Jimenez RC, Sachsenberg T, Pfeuffer J, Alvarez RV, Griss J, Nesvizhskii AI, Perez-Riverol Y. BioContainers: an open-source and community-driven framework for software standardization. Bioinformatics. 2017 Aug 15;33(16):2580-2582. doi: 10.1093/bioinformatics/btx192. PubMed PMID: 28379341; PubMed Central PMCID: PMC5870671. +- [Bioconda](https://pubmed.ncbi.nlm.nih.gov/29967506/) -* [Docker](https://dl.acm.org/doi/10.5555/2600239.2600241) + > Grüning B, Dale R, Sjödin A, Chapman BA, Rowe J, Tomkins-Tinch CH, Valieris R, Köster J; Bioconda Team. Bioconda: sustainable and comprehensive software distribution for the life sciences. Nat Methods. 2018 Jul;15(7):475-476. doi: 10.1038/s41592-018-0046-7. PubMed PMID: 29967506. -* [Singularity](https://pubmed.ncbi.nlm.nih.gov/28494014/) - > Kurtzer GM, Sochat V, Bauer MW. Singularity: Scientific containers for mobility of compute. PLoS One. 2017 May 11;12(5):e0177459. doi: 10.1371/journal.pone.0177459. eCollection 2017. PubMed PMID: 28494014; PubMed Central PMCID: PMC5426675. +- [BioContainers](https://pubmed.ncbi.nlm.nih.gov/28379341/) + + > da Veiga Leprevost F, Grüning B, Aflitos SA, Röst HL, Uszkoreit J, Barsnes H, Vaudel M, Moreno P, Gatto L, Weber J, Bai M, Jimenez RC, Sachsenberg T, Pfeuffer J, Alvarez RV, Griss J, Nesvizhskii AI, Perez-Riverol Y. BioContainers: an open-source and community-driven framework for software standardization. Bioinformatics. 2017 Aug 15;33(16):2580-2582. doi: 10.1093/bioinformatics/btx192. PubMed PMID: 28379341; PubMed Central PMCID: PMC5870671. + +- [Docker](https://dl.acm.org/doi/10.5555/2600239.2600241) + +- [Singularity](https://pubmed.ncbi.nlm.nih.gov/28494014/) + > Kurtzer GM, Sochat V, Bauer MW. Singularity: Scientific containers for mobility of compute. PLoS One. 2017 May 11;12(5):e0177459. doi: 10.1371/journal.pone.0177459. eCollection 2017. PubMed PMID: 28494014; PubMed Central PMCID: PMC5426675. diff --git a/README.md b/README.md index ce9df5c6..914cbe3f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ![nf-core/mhcquant](docs/images/nf-core-mhcquant_logo_light.png#gh-light-mode-only) ![nf-core/mhcquant](docs/images/nf-core-mhcquant_logo_dark.png#gh-dark-mode-only) +# ![nf-core/mhcquant](docs/images/nf-core/mhcquant_logo_light.png#gh-light-mode-only) ![nf-core/mhcquant](docs/images/nf-core/mhcquant_logo_dark.png#gh-dark-mode-only) [![GitHub Actions CI Status](https://github.com/nf-core/mhcquant/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/mhcquant/actions?query=workflow%3A%22nf-core+CI%22) [![GitHub Actions Linting Status](https://github.com/nf-core/mhcquant/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/mhcquant/actions?query=workflow%3A%22nf-core+linting%22) @@ -17,11 +17,13 @@ ## Introduction + **nf-core/mhcquant** is a bioinformatics best-practice analysis pipeline for Identify and quantify peptides from mass spectrometry raw data. The pipeline is built using [Nextflow](https://www.nextflow.io), a workflow tool to run tasks across multiple compute infrastructures in a very portable manner. It uses Docker/Singularity containers making installation trivial and results highly reproducible. The [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html) implementation of this pipeline uses one container per process which makes it much easier to maintain and update software dependencies. Where possible, these processes have been submitted to and installed from [nf-core/modules](https://github.com/nf-core/modules) in order to make them available to all nf-core pipelines, and to everyone within the Nextflow community! + On release, automated continuous integration tests run the pipeline on a full-sized dataset on the AWS cloud infrastructure. This ensures that the pipeline runs on AWS, has sensible resource allocation defaults set to run on real-world datasets, and permits the persistent storage of results to benchmark between pipeline releases and other analysis sources. The results obtained from the full-sized test can be viewed on the [nf-core website](https://nf-co.re/mhcquant/results). ## Pipeline summary @@ -35,28 +37,28 @@ On release, automated continuous integration tests run the pipeline on a full-si 1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.10.3`) -2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/), [`Podman`](https://podman.io/), [`Shifter`](https://nersc.gitlab.io/development/shifter/how-to-use/) or [`Charliecloud`](https://hpc.github.io/charliecloud/) for full pipeline reproducibility _(please only use [`Conda`](https://conda.io/miniconda.html) as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_ +2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/) (you can follow [this tutorial](https://singularity-tutorial.github.io/01-installation/)), [`Podman`](https://podman.io/), [`Shifter`](https://nersc.gitlab.io/development/shifter/how-to-use/) or [`Charliecloud`](https://hpc.github.io/charliecloud/) for full pipeline reproducibility _(you can use [`Conda`](https://conda.io/miniconda.html) both to install Nextflow itself and also to manage software within pipelines. Please only use it within pipelines as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_. 3. Download the pipeline and test it on a minimal dataset with a single command: - ```console - nextflow run nf-core/mhcquant -profile test,YOURPROFILE --outdir - ``` + ```console + nextflow run nf-core/mhcquant -profile test,YOURPROFILE --outdir + ``` - Note that some form of configuration will be needed so that Nextflow knows how to fetch the required software. This is usually done in the form of a config profile (`YOURPROFILE` in the example command above). You can chain multiple config profiles in a comma-separated string. + Note that some form of configuration will be needed so that Nextflow knows how to fetch the required software. This is usually done in the form of a config profile (`YOURPROFILE` in the example command above). You can chain multiple config profiles in a comma-separated string. - > * The pipeline comes with config profiles called `docker`, `singularity`, `podman`, `shifter`, `charliecloud` and `conda` which instruct the pipeline to use the named tool for software management. For example, `-profile test,docker`. - > * Please check [nf-core/configs](https://github.com/nf-core/configs#documentation) to see if a custom config file to run nf-core pipelines already exists for your Institute. If so, you can simply use `-profile ` in your command. This will enable either `docker` or `singularity` and set the appropriate execution settings for your local compute environment. - > * If you are using `singularity`, please use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to download images first, before running the pipeline. Setting the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options enables you to store and re-use the images from a central location for future pipeline runs. - > * If you are using `conda`, it is highly recommended to use the [`NXF_CONDA_CACHEDIR` or `conda.cacheDir`](https://www.nextflow.io/docs/latest/conda.html) settings to store the environments in a central location for future pipeline runs. + > - The pipeline comes with config profiles called `docker`, `singularity`, `podman`, `shifter`, `charliecloud` and `conda` which instruct the pipeline to use the named tool for software management. For example, `-profile test,docker`. + > - Please check [nf-core/configs](https://github.com/nf-core/configs#documentation) to see if a custom config file to run nf-core pipelines already exists for your Institute. If so, you can simply use `-profile ` in your command. This will enable either `docker` or `singularity` and set the appropriate execution settings for your local compute environment. + > - If you are using `singularity`, please use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to download images first, before running the pipeline. Setting the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options enables you to store and re-use the images from a central location for future pipeline runs. + > - If you are using `conda`, it is highly recommended to use the [`NXF_CONDA_CACHEDIR` or `conda.cacheDir`](https://www.nextflow.io/docs/latest/conda.html) settings to store the environments in a central location for future pipeline runs. 4. Start running your own analysis! - + - ```console - nextflow run nf-core/mhcquant --input samplesheet.csv --outdir --genome GRCh37 -profile - ``` + ```console + nextflow run nf-core/mhcquant --input samplesheet.csv --outdir --genome GRCh37 -profile + ``` ## Documentation @@ -82,6 +84,7 @@ For further information or help, don't hesitate to get in touch on the [Slack `# + An extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file. You can cite the `nf-core` publication as follows: diff --git a/assets/email_template.html b/assets/email_template.html index 55411550..27035c21 100644 --- a/assets/email_template.html +++ b/assets/email_template.html @@ -1,53 +1,111 @@ - - - - + + + + - - nf-core/mhcquant Pipeline Report - - -
    + + + nf-core/mhcquant Pipeline Report + + +
    + - +

    nf-core/mhcquant v${version}

    +

    Run Name: $runName

    -

    nf-core/mhcquant v${version}

    -

    Run Name: $runName

    - -<% if (!success){ - out << """ -
    -

    nf-core/mhcquant execution completed unsuccessfully!

    + <% if (!success){ out << """ +
    +

    nf-core/mhcquant execution completed unsuccessfully!

    The exit status of the task that caused the workflow execution to fail was: $exitStatus.

    The full error message was:

    -
    ${errorReport}
    -
    - """ -} else { - out << """ -
    +
    ${errorReport}
    +
    + """ } else { out << """ +
    nf-core/mhcquant execution completed successfully! -
    - """ -} -%> +
    + """ } %> -

    The workflow was completed at $dateComplete (duration: $duration)

    -

    The command used to launch the workflow was as follows:

    -
    $commandLine
    +

    The workflow was completed at $dateComplete (duration: $duration)

    +

    The command used to launch the workflow was as follows:

    +
    +$commandLine
    -

    Pipeline Configuration:

    - - - <% out << summary.collect{ k,v -> "" }.join("\n") %> - -
    $k
    $v
    +

    Pipeline Configuration:

    + + + <% out << summary.collect{ k,v -> " + + + + + " }.join("\n") %> + +
    + $k + +
    $v
    +
    -

    nf-core/mhcquant

    -

    https://github.com/nf-core/mhcquant

    - -
    - - +

    nf-core/mhcquant

    +

    https://github.com/nf-core/mhcquant

    +
    + diff --git a/assets/multiqc_config.yaml b/assets/multiqc_config.yaml deleted file mode 100644 index 76398921..00000000 --- a/assets/multiqc_config.yaml +++ /dev/null @@ -1,11 +0,0 @@ -report_comment: > - This report has been generated by the nf-core/mhcquant - analysis pipeline. For information about how to interpret these results, please see the - documentation. -report_section_order: - software_versions: - order: -1000 - nf-core-mhcquant-summary: - order: -1001 - -export_plots: true diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml new file mode 100644 index 00000000..eaed6ec9 --- /dev/null +++ b/assets/multiqc_config.yml @@ -0,0 +1,11 @@ +report_comment: > + This report has been generated by the nf-core/mhcquant + analysis pipeline. For information about how to interpret these results, please see the + documentation. +report_section_order: + software_versions: + order: -1000 + "nf-core-mhcquant-summary": + order: -1001 + +export_plots: true diff --git a/assets/schema_input.json b/assets/schema_input.json index 7f5dc79e..4c96cfbf 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -31,9 +31,6 @@ ] } }, - "required": [ - "sample", - "fastq_1" - ] + "required": ["sample", "fastq_1"] } } diff --git a/docs/README.md b/docs/README.md index 03f97690..72c33b41 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,9 +2,9 @@ The nf-core/mhcquant documentation is split into the following pages: -* [Usage](usage.md) - * An overview of how the pipeline works, how to run it and a description of all of the different command-line flags. -* [Output](output.md) - * An overview of the different results produced by the pipeline and how to interpret them. +- [Usage](usage.md) + - An overview of how the pipeline works, how to run it and a description of all of the different command-line flags. +- [Output](output.md) + - An overview of the different results produced by the pipeline and how to interpret them. You can find a lot more documentation about installing, configuring and running nf-core pipelines on the website: [https://nf-co.re](https://nf-co.re) diff --git a/docs/output.md b/docs/output.md index a4b46a45..d185c957 100644 --- a/docs/output.md +++ b/docs/output.md @@ -12,18 +12,18 @@ The directories listed below will be created in the results directory after the The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes data using the following steps: -* [FastQC](#fastqc) - Raw read QC -* [MultiQC](#multiqc) - Aggregate report describing results and QC from the whole pipeline -* [Pipeline information](#pipeline-information) - Report metrics generated during the workflow execution +- [FastQC](#fastqc) - Raw read QC +- [MultiQC](#multiqc) - Aggregate report describing results and QC from the whole pipeline +- [Pipeline information](#pipeline-information) - Report metrics generated during the workflow execution ### FastQC
    Output files -* `fastqc/` - * `*_fastqc.html`: FastQC report containing quality metrics. - * `*_fastqc.zip`: Zip archive containing the FastQC report, tab-delimited data file and plot images. +- `fastqc/` + - `*_fastqc.html`: FastQC report containing quality metrics. + - `*_fastqc.zip`: Zip archive containing the FastQC report, tab-delimited data file and plot images.
    @@ -42,10 +42,10 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d
    Output files -* `multiqc/` - * `multiqc_report.html`: a standalone HTML file that can be viewed in your web browser. - * `multiqc_data/`: directory containing parsed statistics from the different tools used in the pipeline. - * `multiqc_plots/`: directory containing static images from the report in various formats. +- `multiqc/` + - `multiqc_report.html`: a standalone HTML file that can be viewed in your web browser. + - `multiqc_data/`: directory containing parsed statistics from the different tools used in the pipeline. + - `multiqc_plots/`: directory containing static images from the report in various formats.
    @@ -58,10 +58,10 @@ Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQ
    Output files -* `pipeline_info/` - * Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. - * Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. - * Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`. +- `pipeline_info/` + - Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. + - Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. + - Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`.
    diff --git a/docs/usage.md b/docs/usage.md index 0a54951e..a14fd31f 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -44,11 +44,11 @@ TREATMENT_REP3,AEG588A6_S6_L003_R1_001.fastq.gz, TREATMENT_REP3,AEG588A6_S6_L004_R1_001.fastq.gz, ``` -| Column | Description | -|----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `sample` | Custom sample name. This entry will be identical for multiple sequencing libraries/runs from the same sample. Spaces in sample names are automatically converted to underscores (`_`). | -| `fastq_1` | Full path to FastQ file for Illumina short reads 1. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | -| `fastq_2` | Full path to FastQ file for Illumina short reads 2. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | +| Column | Description | +| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sample` | Custom sample name. This entry will be identical for multiple sequencing libraries/runs from the same sample. Spaces in sample names are automatically converted to underscores (`_`). | +| `fastq_1` | Full path to FastQ file for Illumina short reads 1. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | +| `fastq_2` | Full path to FastQ file for Illumina short reads 2. File has to be gzipped and have the extension ".fastq.gz" or ".fq.gz". | An [example samplesheet](../assets/samplesheet.csv) has been provided with the pipeline. @@ -57,7 +57,7 @@ An [example samplesheet](../assets/samplesheet.csv) has been provided with the p The typical command for running the pipeline is as follows: ```console -nextflow run nf-core/mhcquant --input samplesheet.csv --outdir --genome GRCh37 -profile docker +nextflow run nf-core/mhcquant --input samplesheet.csv --outdir --genome GRCh37 -profile docker ``` This will launch the pipeline with the `docker` configuration profile. See below for more information about profiles. @@ -65,9 +65,9 @@ This will launch the pipeline with the `docker` configuration profile. See below Note that the pipeline will create the following files in your working directory: ```console -work # Directory containing the nextflow working files -results # Finished results (configurable, see below) -.nextflow_log # Log file from Nextflow +work # Directory containing the nextflow working files + # Finished results in specified location (defined with --outdir) +.nextflow_log # Log file from Nextflow # Other nextflow hidden files, eg. history of pipeline runs and old logs. ``` @@ -106,25 +106,25 @@ They are loaded in sequence, so later profiles can overwrite earlier profiles. If `-profile` is not specified, the pipeline will run locally and expect all software to be installed and available on the `PATH`. This is _not_ recommended. -* `docker` - * A generic configuration profile to be used with [Docker](https://docker.com/) -* `singularity` - * A generic configuration profile to be used with [Singularity](https://sylabs.io/docs/) -* `podman` - * A generic configuration profile to be used with [Podman](https://podman.io/) -* `shifter` - * A generic configuration profile to be used with [Shifter](https://nersc.gitlab.io/development/shifter/how-to-use/) -* `charliecloud` - * A generic configuration profile to be used with [Charliecloud](https://hpc.github.io/charliecloud/) -* `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 or Charliecloud. -* `test` - * A profile with a complete configuration for automated testing - * Includes links to test data so needs no other parameters +- `docker` + - A generic configuration profile to be used with [Docker](https://docker.com/) +- `singularity` + - A generic configuration profile to be used with [Singularity](https://sylabs.io/docs/) +- `podman` + - A generic configuration profile to be used with [Podman](https://podman.io/) +- `shifter` + - A generic configuration profile to be used with [Shifter](https://nersc.gitlab.io/development/shifter/how-to-use/) +- `charliecloud` + - A generic configuration profile to be used with [Charliecloud](https://hpc.github.io/charliecloud/) +- `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 or Charliecloud. +- `test` + - A profile with a complete configuration for automated testing + - Includes links to test data so needs no other parameters ### `-resume` -Specify this when restarting a pipeline. Nextflow will used cached results from any pipeline steps where the inputs are the same, continuing from where it got to previously. +Specify this when restarting a pipeline. Nextflow will use cached results from any pipeline steps where the inputs are the same, continuing from where it got to previously. For input to be considered the same, not only the names must be identical but the files' contents as well. For more info about this parameter, see [this blog post](https://www.nextflow.io/blog/2019/demystifying-nextflow-resume.html). You can also supply a run name to resume a specific run: `-resume [run-name]`. Use the `nextflow log` command to show previous run names. @@ -186,6 +186,7 @@ process { ``` > **NB:** We specify the full process name i.e. `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN` in the config file because this takes priority over the short name (`STAR_ALIGN`) and allows existing configuration using the full process name to be correctly overridden. +> > If you get a warning suggesting that the process selector isn't recognised check that the process name has been specified correctly. ### Updating containers @@ -196,35 +197,35 @@ The [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html) implementatio 2. Find the latest version of the Biocontainer available on [Quay.io](https://quay.io/repository/biocontainers/pangolin?tag=latest&tab=tags) 3. Create the custom config accordingly: - * For Docker: - - ```nextflow - process { - withName: PANGOLIN { - container = 'quay.io/biocontainers/pangolin:3.0.5--pyhdfd78af_0' - } - } - ``` - - * For Singularity: - - ```nextflow - process { - withName: PANGOLIN { - container = 'https://depot.galaxyproject.org/singularity/pangolin:3.0.5--pyhdfd78af_0' - } - } - ``` - - * For Conda: - - ```nextflow - process { - withName: PANGOLIN { - conda = 'bioconda::pangolin=3.0.5' - } - } - ``` + - For Docker: + + ```nextflow + process { + withName: PANGOLIN { + container = 'quay.io/biocontainers/pangolin:3.0.5--pyhdfd78af_0' + } + } + ``` + + - For Singularity: + + ```nextflow + process { + withName: PANGOLIN { + container = 'https://depot.galaxyproject.org/singularity/pangolin:3.0.5--pyhdfd78af_0' + } + } + ``` + + - For Conda: + + ```nextflow + process { + withName: PANGOLIN { + conda = 'bioconda::pangolin=3.0.5' + } + } + ``` > **NB:** If you wish to periodically update individual tool-specific results (e.g. Pangolin) generated by the pipeline then you must ensure to keep the `work/` directory otherwise the `-resume` ability of the pipeline will be compromised and it will restart from scratch. diff --git a/modules.json b/modules.json index b742a634..1ef86afd 100644 --- a/modules.json +++ b/modules.json @@ -4,14 +4,14 @@ "repos": { "nf-core/modules": { "custom/dumpsoftwareversions": { - "git_sha": "20d8250d9f39ddb05dfb437603aaf99b5c0b2b41" + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" }, "fastqc": { - "git_sha": "9d0cad583b9a71a6509b754fdf589cbfbed08961" + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" }, "multiqc": { - "git_sha": "20d8250d9f39ddb05dfb437603aaf99b5c0b2b41" + "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" } } } -} \ No newline at end of file +} diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf b/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf index 934bb467..327d5100 100644 --- a/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/main.nf @@ -15,6 +15,9 @@ process CUSTOM_DUMPSOFTWAREVERSIONS { path "software_versions_mqc.yml", emit: mqc_yml path "versions.yml" , emit: versions + when: + task.ext.when == null || task.ext.when + script: def args = task.ext.args ?: '' template 'dumpsoftwareversions.py' diff --git a/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml b/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml index 5b5b8a60..60b546a0 100644 --- a/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml +++ b/modules/nf-core/modules/custom/dumpsoftwareversions/meta.yml @@ -8,7 +8,7 @@ tools: description: Custom module used to dump software versions within the nf-core pipeline template homepage: https://github.com/nf-core/tools documentation: https://github.com/nf-core/tools - licence: ['MIT'] + licence: ["MIT"] input: - versions: type: file diff --git a/modules/nf-core/modules/fastqc/main.nf b/modules/nf-core/modules/fastqc/main.nf index d250eca0..ed6b8c50 100644 --- a/modules/nf-core/modules/fastqc/main.nf +++ b/modules/nf-core/modules/fastqc/main.nf @@ -15,6 +15,9 @@ process FASTQC { tuple val(meta), path("*.zip") , emit: zip path "versions.yml" , emit: versions + when: + task.ext.when == null || task.ext.when + script: def args = task.ext.args ?: '' // Add soft-links to original FastQs for consistent naming in pipeline diff --git a/modules/nf-core/modules/fastqc/meta.yml b/modules/nf-core/modules/fastqc/meta.yml index b09553a3..4da5bb5a 100644 --- a/modules/nf-core/modules/fastqc/meta.yml +++ b/modules/nf-core/modules/fastqc/meta.yml @@ -1,52 +1,52 @@ name: fastqc description: Run FastQC on sequenced reads keywords: - - quality control - - qc - - adapters - - fastq + - quality control + - qc + - adapters + - fastq tools: - - fastqc: - description: | - FastQC gives general quality metrics about your reads. - It provides information about the quality score distribution - across your reads, the per base sequence content (%A/C/G/T). - You get information about adapter contamination and other - overrepresented sequences. - homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ - documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/ - licence: ['GPL-2.0-only'] + - fastqc: + description: | + FastQC gives general quality metrics about your reads. + It provides information about the quality score distribution + across your reads, the per base sequence content (%A/C/G/T). + You get information about adapter contamination and other + overrepresented sequences. + homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ + documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/ + licence: ["GPL-2.0-only"] input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FastQ files of size 1 and 2 for single-end and paired-end data, + respectively. output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - html: - type: file - description: FastQC report - pattern: "*_{fastqc.html}" - - zip: - type: file - description: FastQC report archive - pattern: "*_{fastqc.zip}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - html: + type: file + description: FastQC report + pattern: "*_{fastqc.html}" + - zip: + type: file + description: FastQC report archive + pattern: "*_{fastqc.zip}" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@drpatelh" - - "@grst" - - "@ewels" - - "@FelixKrueger" + - "@drpatelh" + - "@grst" + - "@ewels" + - "@FelixKrueger" diff --git a/modules/nf-core/modules/multiqc/main.nf b/modules/nf-core/modules/multiqc/main.nf index 3dceb162..1264aac1 100644 --- a/modules/nf-core/modules/multiqc/main.nf +++ b/modules/nf-core/modules/multiqc/main.nf @@ -1,10 +1,10 @@ process MULTIQC { label 'process_medium' - conda (params.enable_conda ? 'bioconda::multiqc=1.11' : null) + conda (params.enable_conda ? 'bioconda::multiqc=1.12' : null) container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/multiqc:1.11--pyhdfd78af_0' : - 'quay.io/biocontainers/multiqc:1.11--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/multiqc:1.12--pyhdfd78af_0' : + 'quay.io/biocontainers/multiqc:1.12--pyhdfd78af_0' }" input: path multiqc_files @@ -15,6 +15,9 @@ process MULTIQC { path "*_plots" , optional:true, emit: plots path "versions.yml" , emit: versions + when: + task.ext.when == null || task.ext.when + script: def args = task.ext.args ?: '' """ diff --git a/modules/nf-core/modules/multiqc/meta.yml b/modules/nf-core/modules/multiqc/meta.yml index 63c75a45..6fa891ef 100644 --- a/modules/nf-core/modules/multiqc/meta.yml +++ b/modules/nf-core/modules/multiqc/meta.yml @@ -1,40 +1,40 @@ name: MultiQC description: Aggregate results from bioinformatics analyses across many samples into a single report keywords: - - QC - - bioinformatics tools - - Beautiful stand-alone HTML report + - QC + - bioinformatics tools + - Beautiful stand-alone HTML report tools: - - multiqc: - description: | - MultiQC searches a given directory for analysis logs and compiles a HTML report. - It's a general use tool, perfect for summarising the output from numerous bioinformatics tools. - homepage: https://multiqc.info/ - documentation: https://multiqc.info/docs/ - licence: ['GPL-3.0-or-later'] + - multiqc: + description: | + MultiQC searches a given directory for analysis logs and compiles a HTML report. + It's a general use tool, perfect for summarising the output from numerous bioinformatics tools. + homepage: https://multiqc.info/ + documentation: https://multiqc.info/docs/ + licence: ["GPL-3.0-or-later"] input: - - multiqc_files: - type: file - description: | - List of reports / files recognised by MultiQC, for example the html and zip output of FastQC + - multiqc_files: + type: file + description: | + List of reports / files recognised by MultiQC, for example the html and zip output of FastQC output: - - report: - type: file - description: MultiQC report file - pattern: "multiqc_report.html" - - data: - type: dir - description: MultiQC data dir - pattern: "multiqc_data" - - plots: - type: file - description: Plots created by MultiQC - pattern: "*_data" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" + - report: + type: file + description: MultiQC report file + pattern: "multiqc_report.html" + - data: + type: dir + description: MultiQC data dir + pattern: "multiqc_data" + - plots: + type: file + description: Plots created by MultiQC + pattern: "*_data" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" authors: - - "@abhi18av" - - "@bunop" - - "@drpatelh" + - "@abhi18av" + - "@bunop" + - "@drpatelh" diff --git a/nextflow_schema.json b/nextflow_schema.json index 3b9e1a93..b02bf4c3 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -10,10 +10,7 @@ "type": "object", "fa_icon": "fas fa-terminal", "description": "Define where the pipeline should find input data and save output data.", - "required": [ - "input", - "outdir" - ], + "required": ["input", "outdir"], "properties": { "input": { "type": "string", @@ -185,14 +182,7 @@ "description": "Method used to save pipeline results to output directory.", "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", "fa_icon": "fas fa-copy", - "enum": [ - "symlink", - "rellink", - "link", - "copy", - "copyNoFollow", - "move" - ], + "enum": ["symlink", "rellink", "link", "copy", "copyNoFollow", "move"], "hidden": true }, "email_on_fail": { diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index 2812324c..6288ec52 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -23,7 +23,7 @@ if (params.input) { ch_input = file(params.input) } else { exit 1, 'Input sample ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -ch_multiqc_config = file("$projectDir/assets/multiqc_config.yaml", checkIfExists: true) +ch_multiqc_config = file("$projectDir/assets/multiqc_config.yml", checkIfExists: true) ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multiqc_config) : Channel.empty() /* From 8cae5eec08558c8a4a20807f9a52ff1e46cf60f6 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Thu, 24 Mar 2022 12:28:02 +0100 Subject: [PATCH 39/88] Update: nf-core template 2.3.1 --- .editorconfig | 5 +- .github/CONTRIBUTING.md | 15 ++- .github/ISSUE_TEMPLATE/bug_report.yml | 6 -- .github/PULL_REQUEST_TEMPLATE.md | 7 +- .github/workflows/awsfulltest.yml | 1 - .github/workflows/awstest.yml | 6 +- .github/workflows/branch.yml | 4 +- .github/workflows/ci.yml | 21 ++-- .github/workflows/linting.yml | 85 +++------------ .github/workflows/linting_comment.yml | 2 +- .gitpod.yml | 22 ++-- .nf-core.yml | 6 +- .prettierrc.yml | 1 + CHANGELOG.md | 2 +- CITATIONS.md | 44 ++++---- README.md | 14 +-- assets/email_template.html | 142 ++++++++++++++++++-------- assets/multiqc_config.yaml | 11 -- assets/multiqc_config.yml | 11 ++ conf/base.config | 4 +- conf/modules.config | 4 +- conf/test.config | 6 +- conf/test_full.config | 6 +- docs/README.md | 8 +- docs/output.md | 81 ++++++--------- docs/usage.md | 79 ++++++-------- lib/NfcoreTemplate.groovy | 2 +- lib/Utils.groovy | 4 +- lib/WorkflowMhcquant.groovy | 25 ++--- main.nf | 24 ++--- nextflow.config | 7 +- nextflow_schema.json | 16 ++- subworkflows/local/input_check.nf | 10 +- workflows/mhcquant.nf | 20 ++-- 34 files changed, 337 insertions(+), 364 deletions(-) create mode 100644 .prettierrc.yml delete mode 100644 assets/multiqc_config.yaml create mode 100644 assets/multiqc_config.yml diff --git a/.editorconfig b/.editorconfig index 95549501..b6b31907 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,12 +8,9 @@ trim_trailing_whitespace = true indent_size = 4 indent_style = space -[*.{yml,yaml}] +[*.{md,yml,yaml,html,css,scss,js}] indent_size = 2 -[*.json] -insert_final_newline = unset - # These files are edited and tested upstream in nf-core/modules [/modules/nf-core/**] charset = unset diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 1312f3db..e93e473a 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -15,8 +15,7 @@ Contributions to the code are even more welcome ;) If you'd like to write some code for nf-core/mhcquant, the standard workflow is as follows: -1. Check that there isn't already an issue about your idea in the [nf-core/mhcquant issues](https://github.com/nf-core/mhcquant/issues) to avoid duplicating work - * If there isn't one already, please create one so that others know you're working on this +1. Check that there isn't already an issue about your idea in the [nf-core/mhcquant issues](https://github.com/nf-core/mhcquant/issues) to avoid duplicating work. If there isn't one already, please create one so that others know you're working on this 2. [Fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the [nf-core/mhcquant repository](https://github.com/nf-core/mhcquant) to your GitHub account 3. Make the necessary changes / additions within your forked repository following [Pipeline conventions](#pipeline-contribution-conventions) 4. Use `nf-core schema build` and add any new parameters to the pipeline JSON schema (requires [nf-core tools](https://github.com/nf-core/tools) >= 1.10). @@ -49,9 +48,9 @@ These tests are run both with the latest available version of `Nextflow` and als :warning: Only in the unlikely and regretful event of a release happening with a bug. -* On your own fork, make a new branch `patch` based on `upstream/master`. -* Fix the bug, and bump version (X.Y.Z+1). -* A PR should be made on `master` from patch to directly this particular bug. +- On your own fork, make a new branch `patch` based on `upstream/master`. +- Fix the bug, and bump version (X.Y.Z+1). +- A PR should be made on `master` from patch to directly this particular bug. ## Getting help @@ -73,7 +72,7 @@ If you wish to contribute a new step, please use the following coding standards: 6. Add sanity checks and validation for all relevant parameters. 7. Perform local tests to validate that the new code works as expected. 8. If applicable, add a new test command in `.github/workflow/ci.yml`. -9. Update MultiQC config `assets/multiqc_config.yaml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module. +9. Update MultiQC config `assets/multiqc_config.yml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module. 10. Add a description of the output files and if relevant any appropriate images from the MultiQC report to `docs/output.md`. ### Default values @@ -92,8 +91,8 @@ The process resources can be passed on to the tool dynamically within the proces Please use the following naming schemes, to make it easy to understand what is going where. -* initial process channel: `ch_output_from_` -* intermediate and terminal channels: `ch__for_` +- initial process channel: `ch_output_from_` +- intermediate and terminal channels: `ch__for_` ### Nextflow version bumping diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 11baf3ec..d39e7a00 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -2,15 +2,12 @@ name: Bug report description: Report something that is broken or incorrect labels: bug body: - - type: markdown attributes: value: | Before you post this issue, please check the documentation: - - [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting) - [nf-core/mhcquant pipeline documentation](https://nf-co.re/mhcquant/usage) - - type: textarea id: description attributes: @@ -27,9 +24,7 @@ body: render: console placeholder: | $ nextflow run ... - Some output where something broke - - type: textarea id: files attributes: @@ -37,7 +32,6 @@ body: description: | Please drag and drop the relevant files here. Create a `.zip` archive if the extension is not allowed. Your verbose log file `.nextflow.log` is often useful _(this is a hidden file in the directory where you launched the pipeline)_ as well as custom Nextflow configuration files. - - type: textarea id: system attributes: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index eeb1e55f..36068f81 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -16,11 +16,10 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/mhcq - [ ] This comment contains a description of changes (with reason). - [ ] If you've fixed a bug or added code that should be tested, add tests! - - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/mhcquant/tree/master/.github/CONTRIBUTING.md) - - [ ] If necessary, also make a PR on the nf-core/mhcquant _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. + - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/mhcquant/tree/master/.github/CONTRIBUTING.md) + - [ ] If necessary, also make a PR on the nf-core/mhcquant _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 (`nextflow run . -profile test,docker` --outdir `). +- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. - [ ] `CHANGELOG.md` is updated. -- [ ] `README.md` is updated (including new tool citations and authors/contributors). diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 238e064c..e25f6358 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -30,4 +30,3 @@ jobs: nextflow_config: | process.errorStrategy = 'retry' process.maxRetries = 3 - pre_run_script: 'export NXF_VER=21.10.3' diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index eb3eb10f..8513cec7 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -10,9 +10,9 @@ jobs: if: github.repository == 'nf-core/mhcquant' runs-on: ubuntu-latest steps: + # Launch workflow using Tower CLI tool action - name: Launch workflow via tower uses: nf-core/tower-action@v2 - with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} @@ -25,4 +25,6 @@ jobs: "outdir": "s3://${{ secrets.AWS_S3_BUCKET }}/mhcquant/results-test-${{ github.sha }}" } profiles: test,aws_tower - pre_run_script: 'export NXF_VER=21.10.3' + nextflow_config: | + process.errorStrategy = 'retry' + process.maxRetries = 3 diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 6f399bfa..b9dd4db1 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -13,7 +13,7 @@ jobs: - name: Check PRs if: github.repository == 'nf-core/mhcquant' run: | - { [[ ${{github.event.pull_request.head.repo.full_name }} == nf-core/mhcquant ]] && [[ $GITHUB_HEAD_REF = "dev" ]]; } || [[ $GITHUB_HEAD_REF == "patch" ]] + "{ [[ ${{github.event.pull_request.head.repo.full_name }} == nf-core/mhcquant ]] && [[ $GITHUB_HEAD_REF = "dev" ]]; } || [[ $GITHUB_HEAD_REF == "patch" ]]" # If the above check failed, post a comment on the PR explaining the failure @@ -43,4 +43,4 @@ jobs: Thanks again for your contribution! repo-token: ${{ secrets.GITHUB_TOKEN }} allow-repeats: false - +# diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a4d0da4c..773453ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,18 +16,18 @@ jobs: test: name: Run pipeline with test data # Only run on push if this is the nf-core dev branch (merged PRs) - if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mhcquant') }} + if: "${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mhcquant') }}" runs-on: ubuntu-latest strategy: matrix: # Nextflow versions include: # Test pipeline minimum Nextflow version - - NXF_VER: '21.10.3' - NXF_EDGE: '' + - NXF_VER: "21.10.3" + NXF_EDGE: "" # Test latest edge release of Nextflow - - NXF_VER: '' - NXF_EDGE: '1' + - NXF_VER: "" + NXF_EDGE: "1" steps: - name: Check out pipeline code uses: actions/checkout@v2 @@ -49,18 +49,18 @@ jobs: test_additional_params: name: Run pipeline with additional params # Only run on push if this is the nf-core dev branch (merged PRs) - if: ${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mhcquant') }} + if: "${{ github.event_name != 'push' || (github.event_name == 'push' && github.repository == 'nf-core/mhcquant') }}" runs-on: ubuntu-latest strategy: matrix: # Nextflow versions include: # Test pipeline minimum Nextflow version - - NXF_VER: '21.10.3' - NXF_EDGE: '' + - NXF_VER: "21.10.3" + NXF_EDGE: "" # Test latest edge release of Nextflow - - NXF_VER: '' - NXF_EDGE: '1' + - NXF_VER: "" + NXF_EDGE: "1" steps: - name: Check out pipeline code uses: actions/checkout@v2 @@ -78,3 +78,4 @@ jobs: - name: Run pipeline with additional params run: | nextflow run ${GITHUB_WORKSPACE} -profile test,docker --predict_class_1 --predict_class_2 --predict_RT +# diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index fda934c0..e9cf5de3 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -1,6 +1,7 @@ name: nf-core linting # This workflow is triggered on pushes and PRs to the repository. -# It runs the `nf-core lint` and markdown lint tests to ensure that the code meets the nf-core guidelines +# It runs the `nf-core lint` and markdown lint tests to ensure +# that the code meets the nf-core guidelines. on: push: pull_request: @@ -8,42 +9,6 @@ on: types: [published] jobs: - Markdown: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - - name: Install markdownlint - run: npm install -g markdownlint-cli - - name: Run Markdownlint - run: markdownlint . - - # If the above check failed, post a comment on the PR explaining the failure - - name: Post PR comment - if: failure() - uses: mshick/add-pr-comment@v1 - with: - message: | - ## Markdown linting is failing - - To keep the code consistent with lots of contributors, we run automated code consistency checks. - To fix this CI test, please run: - - * Install `markdownlint-cli` - * On Mac: `brew install markdownlint-cli` - * Everything else: [Install `npm`](https://www.npmjs.com/get-npm) then [install `markdownlint-cli`](https://www.npmjs.com/package/markdownlint-cli) (`npm install -g markdownlint-cli`) - * Fix the markdown errors - * Automatically: `markdownlint . --fix` - * Manually resolve anything left from `markdownlint .` - - Once you push these changes the test should pass, and you can hide this comment :+1: - - We highly recommend setting up markdownlint in your code editor so that this formatting is done automatically on save. Ask about it on Slack for help! - - Thanks again for your contribution! - repo-token: ${{ secrets.GITHUB_TOKEN }} - allow-repeats: false - EditorConfig: runs-on: ubuntu-latest steps: @@ -55,49 +20,24 @@ jobs: run: npm install -g editorconfig-checker - name: Run ECLint check - run: editorconfig-checker -exclude README.md $(git ls-files | grep -v test) + run: editorconfig-checker -exclude README.md $(find .* -type f | grep -v '.git\|.py\|.md\|json\|yml\|yaml\|html\|css\|work\|.nextflow\|build\|nf_core.egg-info\|log.txt\|Makefile') - YAML: + Prettier: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@master - - name: 'Yamllint' - uses: karancode/yamllint-github-action@master - with: - yamllint_file_or_dir: '.' - yamllint_config_filepath: '.yamllint.yml' - - # If the above check failed, post a comment on the PR explaining the failure - - name: Post PR comment - if: failure() - uses: mshick/add-pr-comment@v1 - with: - message: | - ## YAML linting is failing - - To keep the code consistent with lots of contributors, we run automated code consistency checks. - To fix this CI test, please run: - - * Install `yamllint` - * Install `yamllint` following [this](https://yamllint.readthedocs.io/en/stable/quickstart.html#installing-yamllint) - instructions or alternative install it in your [conda environment](https://anaconda.org/conda-forge/yamllint) - * Fix the markdown errors - * Run the test locally: `yamllint $(find . -type f -name "*.yml" -o -name "*.yaml") -c ./.yamllint.yml` - * Fix any reported errors in your YAML files + - uses: actions/checkout@v2 - Once you push these changes the test should pass, and you can hide this comment :+1: + - uses: actions/setup-node@v2 - We highly recommend setting up yaml-lint in your code editor so that this formatting is done automatically on save. Ask about it on Slack for help! + - name: Install Prettier + run: npm install -g prettier - Thanks again for your contribution! - repo-token: ${{ secrets.GITHUB_TOKEN }} - allow-repeats: false + - name: Run Prettier --check + run: prettier --check ${GITHUB_WORKSPACE} nf-core: runs-on: ubuntu-latest steps: - - name: Check out pipeline code uses: actions/checkout@v2 @@ -110,8 +50,8 @@ jobs: - uses: actions/setup-python@v1 with: - python-version: '3.6' - architecture: 'x64' + python-version: "3.6" + architecture: "x64" - name: Install dependencies run: | @@ -139,3 +79,4 @@ jobs: lint_results.md PR_number.txt +# diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 44d72994..b4dc6649 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -27,4 +27,4 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} number: ${{ steps.pr_number.outputs.pr_number }} path: linting-logs/lint_results.md - +# diff --git a/.gitpod.yml b/.gitpod.yml index 6ea5d5f2..3bef5480 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,14 +1,14 @@ image: nfcore/gitpod:latest vscode: - extensions: # based on nf-core.nf-core-extensionpack - - codezombiech.gitignore # Language support for .gitignore files - # - cssho.vscode-svgviewer # SVG viewer - - davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code - - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed - - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files - - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar - - mechatroner.rainbow-csv # Highlight columns in csv files in different colors - # - nextflow.nextflow # Nextflow syntax highlighting - - oderwat.indent-rainbow # Highlight indentation level - - streetsidesoftware.code-spell-checker # Spelling checker for source code + extensions: # based on nf-core.nf-core-extensionpack + - codezombiech.gitignore # Language support for .gitignore files + # - cssho.vscode-svgviewer # SVG viewer + - davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code + - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed + - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files + - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar + - mechatroner.rainbow-csv # Highlight columns in csv files in different colors + # - nextflow.nextflow # Nextflow syntax highlighting + - oderwat.indent-rainbow # Highlight indentation level + - streetsidesoftware.code-spell-checker # Spelling checker for source code \ No newline at end of file diff --git a/.nf-core.yml b/.nf-core.yml index 7e48bfc2..b1a7f0e9 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -1,5 +1 @@ -files_exist: - - .github/markdownlint.yml - - bin/markdown_to_html.py -actions_awsfulltest: False -repository_type: pipeline +repository_type: pipeline \ No newline at end of file diff --git a/.prettierrc.yml b/.prettierrc.yml new file mode 100644 index 00000000..62ac3342 --- /dev/null +++ b/.prettierrc.yml @@ -0,0 +1 @@ +printWidth: 120 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 6e30c20e..249e873e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### `Added` -- nf-core template update (version 2.3) +- nf-core template update (version 2.3.1) - Adjustments of the `PRE_QUANTIFICATION` subworkflow: `OPENMS_FALSEDISCOVERYRATE`, `OPENMS_IDFILTER_FOR_ALIGNMENT`, and `OPENMS_TEXTEXPORTER_PSMS` - Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write a combined FDR filtered output file for unquantified data diff --git a/CITATIONS.md b/CITATIONS.md index fdf7a5dc..7e473e1f 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -7,36 +7,40 @@ ## [Nextflow](https://pubmed.ncbi.nlm.nih.gov/28398311/) > Di Tommaso P, Chatzou M, Floden EW, Barja PP, Palumbo E, Notredame C. Nextflow enables reproducible computational workflows. Nat Biotechnol. 2017 Apr 11;35(4):316-319. doi: 10.1038/nbt.3820. PubMed PMID: 28398311. - ## Pipeline tools -* [FRED2](https://pubmed.ncbi.nlm.nih.gov/27153717/) - > Schubert B, WalzerM, Brachvogel HP, Szolek A, Mohr C, Kohlbacher O, FRED 2: an immunoinformatics framework for Python, Bioinformatics, Volume 32, Issue 13, 1 July 2016, Pages 2044–2046. doi: 10.1093/bioinformatics/btw113. PubMed PMID: 27153717; PubMed Central PMCID; PMC4920123. +- [FRED2](https://pubmed.ncbi.nlm.nih.gov/27153717/) + > Schubert B, WalzerM, Brachvogel HP, Szolek A, Mohr C, Kohlbacher O, FRED 2: an immunoinformatics framework for Python, Bioinformatics, Volume 32, Issue 13, 1 July 2016, Pages 2044–2046. doi: 10.109 bioinformatics/btw113. PubMed PMID: 27153717; PubMed Central PMCID; PMC4920123. + +- [MHCflurry](https://pubmed.ncbi.nlm.nih.gov/27153717/) + > O'Donnell TJ, Rubinsteyn A, Bonsack M, Riemer AB, Laserson U, Hammerbacher J. MHCflurry: Open-Source Class I MHC Binding Affinity Prediction. Cell Syst. 2018 Jul 25;7(1):129-132.e4. doi: 10.1016/j.cels.2018.05.014. Epub 2018 Jun 27. PMID: 29960884. -* [MHCflurry](https://pubmed.ncbi.nlm.nih.gov/27153717/) - > O'Donnell TJ, Rubinsteyn A, Bonsack M, Riemer AB, Laserson U, Hammerbacher J. MHCflurry: Open-Source Class I MHC Binding Affinity Prediction. Cell Syst. 2018 Jul 25;7(1):129-132.e4. doi: 10.1016/j.cels.2018.05.014. Epub 2018 Jun 27. PMID: 29960884. +- [MHCnugget](https://pubmed.ncbi.nlm.nih.gov/27153717/) + > Shao XM, Bhattacharya R, Huang J, Sivakumar IKA, Tokheim C, Zheng L, Hirsch D, Kaminow B, Omdahl A, Bonsack M, Riemer AB, Velculescu VE, Anagnostou V, Pagel KA, Karchin R. High-Throughput Prediction of MHC Class I and II Neoantigens with MHCnuggets. Cancer Immunol Res. 2020 Mar;8(3):396-408. doi: 10.1158/2326-6066.CIR-19-0464. Epub 2019 Dec 23. PMID: 31871119; PMCID: PMC7056596. -* [MHCnugget](https://pubmed.ncbi.nlm.nih.gov/27153717/) - > Shao XM, Bhattacharya R, Huang J, Sivakumar IKA, Tokheim C, Zheng L, Hirsch D, Kaminow B, Omdahl A, Bonsack M, Riemer AB, Velculescu VE, Anagnostou V, Pagel KA, Karchin R. High-Throughput Prediction of MHC Class I and II Neoantigens with MHCnuggets. Cancer Immunol Res. 2020 Mar;8(3):396-408. doi: 10.1158/2326-6066.CIR-19-0464. Epub 2019 Dec 23. PMID: 31871119; PMCID: PMC7056596. +- [OpenMS](https://pubmed.ncbi.nlm.nih.gov/27575624/) + > Röst H, Sachsenberg T, Aiche S, Bielow C, Weisser H, Aicheler F, Andreotti S, Ehrlich HC, Gutenbrunner P, Kenar E, Liang X, Nahnsen S, Nilse L, Pfeuffer J, Rosenberger G, Rurik M, Schmitt U, Veit J, Walze M, Wojnar D, Wolski WE, Schilling O, Choudhary JS, Malmström L, Aebersold R, Reinert K, Kohlbacher O. OpenMS: a flexible open-source software platform for mass spectrometry data analysis. Nat Methods 13 741–748 (2016). doi: 10.1038/nmeth.3959. PubMed PMID: 27575624 -* [OpenMS](https://pubmed.ncbi.nlm.nih.gov/27575624/) - > Röst H, Sachsenberg T, Aiche S, Bielow C, Weisser H, Aicheler F, Andreotti S, Ehrlich HC, Gutenbrunner P, Kenar E, Liang X, Nahnsen S, Nilse L, Pfeuffer J, Rosenberger G, Rurik M, Schmitt U, Veit J, Walzer M, Wojnar D, Wolski WE, Schilling O, Choudhary JS, Malmström L, Aebersold R, Reinert K, Kohlbacher O. OpenMS: a flexible open-source software platform for mass spectrometry data analysis. Nat Methods 13, 741–748 (2016). doi: 10.1038/nmeth.3959. PubMed PMID: 27575624 +- [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) -* [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) - > Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924. +- [MultiQC](https://pubmed.ncbi.nlm.nih.gov/27312411/) + > Ewels P, Magnusson M, Lundin S, Käller M. MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics. 2016 Oct 1;32(19):3047-8. doi: 10.1093/bioinformatics/btw354. Epub 2016 Jun 16. PubMed PMID: 27312411; PubMed Central PMCID: PMC5039924. ## Software packaging/containerisation tools -* [Anaconda](https://anaconda.com) - > Anaconda Software Distribution. Computer software. Vers. 2-2.4.0. Anaconda, Nov. 2016. Web. +- [Anaconda](https://anaconda.com) + + > Anaconda Software Distribution. Computer software. Vers. 2-2.4.0. Anaconda, Nov. 2016. Web. + +- [Bioconda](https://pubmed.ncbi.nlm.nih.gov/29967506/) + + > Grüning B, Dale R, Sjödin A, Chapman BA, Rowe J, Tomkins-Tinch CH, Valieris R, Köster J; Bioconda Team. Bioconda: sustainable and comprehensive software distribution for the life sciences. Nat Methods. 2018 Jul;15(7):475-476. doi: 10.1038/s41592-018-0046-7. PubMed PMID: 29967506. -* [Bioconda](https://pubmed.ncbi.nlm.nih.gov/29967506/) - > Grüning B, Dale R, Sjödin A, Chapman BA, Rowe J, Tomkins-Tinch CH, Valieris R, Köster J; Bioconda Team. Bioconda: sustainable and comprehensive software distribution for the life sciences. Nat Methods. 2018 Jul;15(7):475-476. doi: 10.1038/s41592-018-0046-7. PubMed PMID: 29967506. +- [BioContainers](https://pubmed.ncbi.nlm.nih.gov/28379341/) -* [BioContainers](https://pubmed.ncbi.nlm.nih.gov/28379341/) - > da Veiga Leprevost F, Grüning B, Aflitos SA, Röst HL, Uszkoreit J, Barsnes H, Vaudel M, Moreno P, Gatto L, Weber J, Bai M, Jimenez RC, Sachsenberg T, Pfeuffer J, Alvarez RV, Griss J, Nesvizhskii AI, Perez-Riverol Y. BioContainers: an open-source and community-driven framework for software standardization. Bioinformatics. 2017 Aug 15;33(16):2580-2582. doi: 10.1093/bioinformatics/btx192. PubMed PMID: 28379341; PubMed Central PMCID: PMC5870671. + > da Veiga Leprevost F, Grüning B, Aflitos SA, Röst HL, Uszkoreit J, Barsnes H, Vaudel M, Moreno P, Gatto L, Weber J, Bai M, Jimenez RC, Sachsenberg T, Pfeuffer J, Alvarez RV, Griss J, Nesvizhskii AI, Perez-Riverol Y. BioContainers: an open-source and community-driven framework for software standardization. Bioinformatics. 2017 Aug 15;33(16):2580-2582. doi: 10.1093/bioinformatics/btx192. PubMed PMID: 28379341; PubMed Central PMCID: PMC5870671. -* [Docker](https://dl.acm.org/doi/10.5555/2600239.2600241) +- [Docker](https://dl.acm.org/doi/10.5555/2600239.2600241) -* [Singularity](https://pubmed.ncbi.nlm.nih.gov/28494014/) - > Kurtzer GM, Sochat V, Bauer MW. Singularity: Scientific containers for mobility of compute. PLoS One. 2017 May 11;12(5):e0177459. doi: 10.1371/journal.pone.0177459. eCollection 2017. PubMed PMID: 28494014; PubMed Central PMCID: PMC5426675. +- [Singularity](https://pubmed.ncbi.nlm.nih.gov/28494014/) + > Kurtzer GM, Sochat V, Bauer MW. Singularity: Scientific containers for mobility of compute. PLoS One. 2017 May 11;12(5):e0177459. doi: 10.1371/journal.pone.0177459. eCollection 2017. PubMed PMID: 28494014; PubMed Central PMCID: PMC5426675. \ No newline at end of file diff --git a/README.md b/README.md index b71cfe63..eb05c2bf 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ![nf-core/mhcquant](docs/images/nf-core-mhcquant_logo_light.png#gh-light-mode-only) ![nf-core/mhcquant](docs/images/nf-core-mhcquant_logo_dark.png#gh-dark-mode-only) +# ![nf-core/mhcquant](docs/images/nf-core/mhcquant_logo_light.png#gh-light-mode-only) ![nf-core/mhcquant](docs/images/nf-core/mhcquant_logo_dark.png#gh-dark-mode-only) [![GitHub Actions CI Status](https://github.com/nf-core/mhcquant/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/mhcquant/actions?query=workflow%3A%22nf-core+CI%22) [![GitHub Actions Linting Status](https://github.com/nf-core/mhcquant/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/mhcquant/actions?query=workflow%3A%22nf-core+linting%22) @@ -37,7 +37,7 @@ On release, automated continuous integration tests run the pipeline on a full-si 1. Install [`Nextflow`](https://www.nextflow.io/docs/latest/getstarted.html#installation) (`>=21.10.3`) -2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/), [`Podman`](https://podman.io/), [`Shifter`](https://nersc.gitlab.io/development/shifter/how-to-use/) or [`Charliecloud`](https://hpc.github.io/charliecloud/) for full pipeline reproducibility _(please only use [`Conda`](https://conda.io/miniconda.html) as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_ +2. Install any of [`Docker`](https://docs.docker.com/engine/installation/), [`Singularity`](https://www.sylabs.io/guides/3.0/user-guide/) (you can follow [this tutorial](https://singularity-tutorial.github.io/01-installation/)), [`Podman`](https://podman.io/), [`Shifter`](https://nersc.gitlab.io/development/shifter/how-to-use/) or [`Charliecloud`](https://hpc.github.io/charliecloud/) for full pipeline reproducibility _(you can use [`Conda`](https://conda.io/miniconda.html) both to install Nextflow itself and also to manage software within pipelines. Please only use it within pipelines as a last resort; see [docs](https://nf-co.re/usage/configuration#basic-configuration-profiles))_. 3. Download the pipeline and test it on a minimal dataset with a single command: @@ -47,10 +47,10 @@ On release, automated continuous integration tests run the pipeline on a full-si Note that some form of configuration will be needed so that Nextflow knows how to fetch the required software. This is usually done in the form of a config profile (`YOURPROFILE` in the example command above). You can chain multiple config profiles in a comma-separated string. - > * The pipeline comes with config profiles called `docker`, `singularity`, `podman`, `shifter`, `charliecloud` and `conda` which instruct the pipeline to use the named tool for software management. For example, `-profile test,docker`. - > * Please check [nf-core/configs](https://github.com/nf-core/configs#documentation) to see if a custom config file to run nf-core pipelines already exists for your Institute. If so, you can simply use `-profile ` in your command. This will enable either `docker` or `singularity` and set the appropriate execution settings for your local compute environment. - > * If you are using `singularity` and are persistently observing issues downloading Singularity images directly due to timeout or network issues, then you can use the `--singularity_pull_docker_container` parameter to pull and convert the Docker image instead. Alternatively, you can use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to download images first, before running the pipeline. Setting the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options enables you to store and re-use the images from a central location for future pipeline runs. - > * If you are using `conda`, it is highly recommended to use the [`NXF_CONDA_CACHEDIR` or `conda.cacheDir`](https://www.nextflow.io/docs/latest/conda.html) settings to store the environments in a central location for future pipeline runs. + > - The pipeline comes with config profiles called `docker`, `singularity`, `podman`, `shifter`, `charliecloud` and `conda` which instruct the pipeline to use the named tool for software management. For example, `-profile test,docker`. + > - Please check [nf-core/configs](https://github.com/nf-core/configs#documentation) to see if a custom config file to run nf-core pipelines already exists for your Institute. If so, you can simply use `-profile ` in your command. This will enable either `docker` or `singularity` and set the appropriate execution settings for your local compute environment. + > - If you are using `singularity`, please use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to download images first, before running the pipeline. Setting the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options enables you to store and re-use the images from a central location for future pipeline runs. + > - If you are using `conda`, it is highly recommended to use the [`NXF_CONDA_CACHEDIR` or `conda.cacheDir`](https://www.nextflow.io/docs/latest/conda.html) settings to store the environments in a central location for future pipeline runs. 4. Start running your own analysis! @@ -69,7 +69,7 @@ The nf-core/mhcquant pipeline comes with documentation about the pipeline [usage ## Credits -nf-core/mhcquant was originally written by [Leon Bichmann](https://github.com/Leon-Bichmann) from the [Kohlbacher Lab](https://kohlbacherlab.org/).The pipeline was re-written in Nextflow DSL2 and is primarily maintained by [Marissa Dubbelaar](https://github.com/marissaDubbelaar) from [Clinical Collaboration Unit Translational Immunology](https://www.medizin.uni-tuebingen.de/en-de/das-klinikum/einrichtungen/kliniken/medizinische-klinik/kke-translationale-immunologie) and [Quantitative Biology Center](https://uni-tuebingen.de/forschung/forschungsinfrastruktur/zentrum-fuer-quantitative-biologie-qbic/) in Tübingen. +nf-core/mhcquant was originally written by [Leon Bichmann](https://github.com/Leon-Bichmann) from the [Kohlbacher Lab](https://kohlbacherlab.org/). The pipeline was re-written in Nextflow DSL2 and is primarily maintained by [Marissa Dubbelaar](https://github.com/marissaDubbelaar) from [Clinical Collaboration Unit Translational Immunology](https://www.medizin.uni-tuebingen.de/en-de/das-klinikum/einrichtungen/kliniken/medizinische-klinik/kke-translationale-immunologie) and [Quantitative Biology Center](https://uni-tuebingen.de/forschung/forschungsinfrastruktur/zentrum-fuer-quantitative-biologie-qbic/) in Tübingen. Helpful contributors: - [Lukas Heumos](https://github.com/Zethson) diff --git a/assets/email_template.html b/assets/email_template.html index 55411550..27035c21 100644 --- a/assets/email_template.html +++ b/assets/email_template.html @@ -1,53 +1,111 @@ - - - - + + + + - - nf-core/mhcquant Pipeline Report - - -
    + + + nf-core/mhcquant Pipeline Report + + +
    + - +

    nf-core/mhcquant v${version}

    +

    Run Name: $runName

    -

    nf-core/mhcquant v${version}

    -

    Run Name: $runName

    - -<% if (!success){ - out << """ -
    -

    nf-core/mhcquant execution completed unsuccessfully!

    + <% if (!success){ out << """ +
    +

    nf-core/mhcquant execution completed unsuccessfully!

    The exit status of the task that caused the workflow execution to fail was: $exitStatus.

    The full error message was:

    -
    ${errorReport}
    -
    - """ -} else { - out << """ -
    +
    ${errorReport}
    +
    + """ } else { out << """ +
    nf-core/mhcquant execution completed successfully! -
    - """ -} -%> +
    + """ } %> -

    The workflow was completed at $dateComplete (duration: $duration)

    -

    The command used to launch the workflow was as follows:

    -
    $commandLine
    +

    The workflow was completed at $dateComplete (duration: $duration)

    +

    The command used to launch the workflow was as follows:

    +
    +$commandLine
    -

    Pipeline Configuration:

    - - - <% out << summary.collect{ k,v -> "" }.join("\n") %> - -
    $k
    $v
    +

    Pipeline Configuration:

    + + + <% out << summary.collect{ k,v -> " + + + + + " }.join("\n") %> + +
    + $k + +
    $v
    +
    -

    nf-core/mhcquant

    -

    https://github.com/nf-core/mhcquant

    - -
    - - +

    nf-core/mhcquant

    +

    https://github.com/nf-core/mhcquant

    +
    + diff --git a/assets/multiqc_config.yaml b/assets/multiqc_config.yaml deleted file mode 100644 index 76398921..00000000 --- a/assets/multiqc_config.yaml +++ /dev/null @@ -1,11 +0,0 @@ -report_comment: > - This report has been generated by the nf-core/mhcquant - analysis pipeline. For information about how to interpret these results, please see the - documentation. -report_section_order: - software_versions: - order: -1000 - nf-core-mhcquant-summary: - order: -1001 - -export_plots: true diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml new file mode 100644 index 00000000..8ed9c915 --- /dev/null +++ b/assets/multiqc_config.yml @@ -0,0 +1,11 @@ +report_comment: > + This report has been generated by the nf-core/mhcquant + analysis pipeline. For information about how to interpret these results, please see the + documentation. +report_section_order: + software_versions: + order: -1000 + "nf-core-mhcquant-summary": + order: -1001 + +export_plots: true \ No newline at end of file diff --git a/conf/base.config b/conf/base.config index 6ef3aa50..aa233a65 100644 --- a/conf/base.config +++ b/conf/base.config @@ -1,7 +1,7 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nf-core/mhcquant Nextflow base config file -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A 'blank slate' config file, appropriate for general use on most high performance compute environments. Assumes that all software is installed and available on the PATH. Runs in `local` mode - all jobs will be run on the logged in environment. diff --git a/conf/modules.config b/conf/modules.config index f8af33f7..23b0e3ee 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -1,7 +1,7 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Config file for defining DSL2 per module options and publishing paths -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Available keys to override module options: ext.args = Additional arguments appended to command in module. ext.args2 = Second set of arguments appended to command in module (multi-tool modules). diff --git a/conf/test.config b/conf/test.config index 34296e61..d7050a13 100644 --- a/conf/test.config +++ b/conf/test.config @@ -1,11 +1,11 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nextflow config file for running minimal tests -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Defines input files and everything required to run a fast and simple pipeline test. Use as follows: - nextflow run nf-core/mhcquant -profile test, + nextflow run nf-core/mhcquant -profile test, --outdir ---------------------------------------------------------------------------------------- */ diff --git a/conf/test_full.config b/conf/test_full.config index c12dfe1b..f7bdda4e 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -1,11 +1,11 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nextflow config file for running full-size tests -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Defines input files and everything required to run a full size pipeline test. Use as follows: - nextflow run nf-core/mhcquant -profile test_full, + nextflow run nf-core/mhcquant -profile test_full, --outdir ---------------------------------------------------------------------------------------- */ diff --git a/docs/README.md b/docs/README.md index 03f97690..88009482 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,9 +2,9 @@ The nf-core/mhcquant documentation is split into the following pages: -* [Usage](usage.md) - * An overview of how the pipeline works, how to run it and a description of all of the different command-line flags. -* [Output](output.md) - * An overview of the different results produced by the pipeline and how to interpret them. +- [Usage](usage.md) + - An overview of how the pipeline works, how to run it and a description of all of the different command-line flags. +- [Output](output.md) + - An overview of the different results produced by the pipeline and how to interpret them. You can find a lot more documentation about installing, configuring and running nf-core pipelines on the website: [https://nf-co.re](https://nf-co.re) diff --git a/docs/output.md b/docs/output.md index 780c3982..340eca58 100644 --- a/docs/output.md +++ b/docs/output.md @@ -6,21 +6,6 @@ This document describes the output produced by the pipeline. Most of the plots a The directories listed below will be created in the results directory after the pipeline has finished. All paths are relative to the top-level results directory. -## Pipeline overview - -The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes data using the following steps: - -* [General](#general) - * [Quantification](#quantification) - * [Intermediate results](#intermediate-results) -* [VCF](#vcf) -* [Class prediction](#class-prediction) - * [Class (1|2) bindings](#class-12-bindings) -* [Rotation time prediction](#rotation-time-prediction) -* [Workflow reporting and documentation](#workflow-reporting-and-documentation) - * [MultiQC](#multiqc) - * [Pipeline information](#pipeline-information) - ## General ### Quantification @@ -28,7 +13,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d
    Output files -* `*.tsv` : If `--skip_quantification` is not specified. +- `*.tsv` : If `--skip_quantification` is not specified.
    @@ -75,14 +60,14 @@ PEPTIDE contains information about peptide hits that were identified and corresp
    Output files -* `Intermediate_Results/` - * `*merged_psm_perc_filtered.mzTab` : If `--refine_fdr_on_predicted_subset` is specified, consists of the hits (filtered by q-value) - * `*.mztab` : mztab file generated by the OpenMS MzTabExporter command, the community standard format for sharing mass spectrometry search results - * `*.featureXML` : If `--skip_quantification` is not specified, then this file is generated by the OpenMS FeatureFinderIdentification command - * `*fdr_filtered.idXML`: If `--skip_quantification` is not specified, then this file is generated by the OpenMS IDFilter command - * `*all_ids_merged_psm_perc*.idXML`: idXML files are generated when `--refine_fdr_on_predicted_subset` is specified - * `*peptide_filtered.idXML`: If `--refine_fdr_on_predicted_subset` is specified, then this file consists of the PSMs prediction outcome - * `*perc_subset.idXML`: If `--refine_fdr_on_predicted_subset` is specified, then this file is the outcome of the second percolator run, generated by the OpenMS PercolatorAdapter +- `Intermediate_Results/` + - `*merged_psm_perc_filtered.mzTab` : If `--refine_fdr_on_predicted_subset` is specified, consists of the hits (filtered by q-value) + - `*.mztab` : mztab file generated by the OpenMS MzTabExporter command, the community standard format for sharing mass spectrometry search results + - `*.featureXML` : If `--skip_quantification` is not specified, then this file is generated by the OpenMS FeatureFinderIdentification command + - `*fdr_filtered.idXML`: If `--skip_quantification` is not specified, then this file is generated by the OpenMS IDFilter command + - `*all_ids_merged_psm_perc*.idXML`: idXML files are generated when `--refine_fdr_on_predicted_subset` is specified + - `*peptide_filtered.idXML`: If `--refine_fdr_on_predicted_subset` is specified, then this file consists of the PSMs prediction outcome + - `*perc_subset.idXML`: If `--refine_fdr_on_predicted_subset` is specified, then this file is the outcome of the second percolator run, generated by the OpenMS PercolatorAdapter
    @@ -104,7 +89,7 @@ Most important to know that in this format we annotated the q-value of each pept
    Output files -* `*_vcf.fasta`: If `--include_proteins_from_vcf` is specified, then this fasta is created for the respective sample +- `*_vcf.fasta`: If `--include_proteins_from_vcf` is specified, then this fasta is created for the respective sample
    The fasta database including mutated proteins used for the database search @@ -118,11 +103,11 @@ These CSV files list all of the theoretically possible neoepitope sequences from
    Output files -* `class_1_bindings/` - * `*found_neoepitopes_class1.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_1` are specified +- `class_1_bindings/` + - `*found_neoepitopes_class1.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_1` are specified -* `class_2_bindings/` - * `*found_neoepitopes_class2.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_2` are specified +- `class_2_bindings/` + - `*found_neoepitopes_class2.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_2` are specified
    @@ -138,11 +123,11 @@ peptide sequence geneID
    Output files -* `class_1_bindings/` - * `*vcf_neoepitopes_class1.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_1` are specified +- `class_1_bindings/` + - `*vcf_neoepitopes_class1.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_1` are specified -* `class_2_bindings/` - * `*vcf_neoepitopes_class2.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_2` are specified +- `class_2_bindings/` + - `*vcf_neoepitopes_class2.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_2` are specified
    @@ -160,11 +145,11 @@ Sequence Antigen ID Variants
    Output files -* `class_1_bindings/` - * `*predicted_peptides_class_1.csv`: If `--predict_class_1` is specified, then this CSV is generated +- `class_1_bindings/` + - `*predicted_peptides_class_1.csv`: If `--predict_class_1` is specified, then this CSV is generated -* `class_2_bindings/` - * `*predicted_peptides_class_2.csv`: If `--predict_class_2` is specified, then this CSV is generated +- `class_2_bindings/` + - `*predicted_peptides_class_2.csv`: If `--predict_class_2` is specified, then this CSV is generated
    @@ -180,9 +165,9 @@ peptide allele prediction prediction_low prediction_high prediction_pe
    Output files -* `RT_prediction` - * `*id_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time found peptides are provided - * `*txt_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time predicted neoepitopes are provided +- `RT_prediction` + - `*id_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time found peptides are provided + - `*txt_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time predicted neoepitopes are provided
    @@ -191,10 +176,10 @@ peptide allele prediction prediction_low prediction_high prediction_pe
    Output files -* `multiqc/` - * `multiqc_report.html`: a standalone HTML file that can be viewed in your web browser. - * `multiqc_data/`: directory containing parsed statistics from the different tools used in the pipeline. - * `multiqc_plots/`: directory containing static images from the report in various formats. +- `multiqc/` + - `multiqc_report.html`: a standalone HTML file that can be viewed in your web browser. + - `multiqc_data/`: directory containing parsed statistics from the different tools used in the pipeline. + - `multiqc_plots/`: directory containing static images from the report in various formats.
    @@ -207,10 +192,10 @@ Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQ
    Output files -* `pipeline_info/` - * Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. - * Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. - * Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`. +- `pipeline_info/` + - Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. + - Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. + - Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`.
    diff --git a/docs/usage.md b/docs/usage.md index 11cf718a..6678d8d5 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1,24 +1,5 @@ # nf-core/mhcquant: Usage -## Table of contents - -- [Table of contents](#table-of-contents) -- [Samplesheet input](#samplesheet-input) - - [Multiple runs of the same sample](#multiple-runs-of-the-same-sample) - - [Full samplesheet](#full-samplesheet) -- [Running the pipeline](#running-the-pipeline) - - [Updating the pipeline](#updating-the-pipeline) - - [Reproducibility](#reproducibility) -- [Core Nextflow arguments](#core-nextflow-arguments) - - [`-profile`](#-profile) - - [`-resume`](#-resume) -- [Custom configuration](#custom-configuration) - - [Resource requests](#resource-requests) - - [Updating containers](#updating-containers) - - [nf-core/configs](#nf-core-configs) -- [Running in the background](#running-in-the-background) -- [Nextflow memory requirements](#nextflow-memory-requirements) - ## :warning: Please read this documentation on the nf-core website: [https://nf-co.re/mhcquant/usage](https://nf-co.re/mhcquant/usage) > _Documentation of pipeline parameters is generated automatically from the pipeline schema and can no longer be found in markdown files._ @@ -37,10 +18,10 @@ The `sample` identifiers have to be the same when you have multiple runs. The `C Below is an example for the same sample sequenced across 3 lanes: ```console -ID\tSample\tCondition\tReplicateFileName -1\tWT\tA\t/path/to/MS/files/WT_A1.raw -2\tWT\tA\t/path/to/MS/files/WT_A2.raw -3\tWT\tA\t/path/to/MS/files/WT_A3.raw +ID Sample Condition ReplicateFileName +1 WT A /path/to/MS/files/WT_A1.raw +2 WT A /path/to/MS/files/WT_A2.raw +3 WT A /path/to/MS/files/WT_A3.raw ``` @@ -51,19 +32,19 @@ The pipeline will auto-detect whether a sample is either a mzML or raw files usi A final samplesheet file consisting of both single- and paired-end data may look something like the one below. This is for 6 samples, where `TREATMENT_REP3` has been sequenced twice. ```console -ID\tSample\tCondition\tReplicateFileName -1\tWT\tA\t/path/to/MS/files/WT_A1.raw -2\tWT\tA\t/path/to/MS/files/WT_A2.raw -3\tWT\tA\t/path/to/MS/files/WT_A3.raw -4\tWT\tB\t/path/to/MS/files/WT_B1.raw -5\tWT\tB\t/path/to/MS/files/WT_B2.raw -6\tWT\tB\t/path/to/MS/files/WT_B3.raw -7\tKO\tA\t/path/to/MS/files/KO_A1.raw -8\tKO\tA\t/path/to/MS/files/KO_A2.raw -9\tKO\tA\t/path/to/MS/files/KO_A3.raw -10\tKO\tB\t/path/to/MS/files/KO_B1.raw -11\tKO\tB\t/path/to/MS/files/KO_B2.raw -12\tKO\tB\t/path/to/MS/files/KO_B3.raw +ID Sample Condition ReplicateFileName +1 WT A /path/to/MS/files/WT_A1.raw +2 WT A /path/to/MS/files/WT_A2.raw +3 WT A /path/to/MS/files/WT_A3.raw +4 WT B /path/to/MS/files/WT_B1.raw +5 WT B /path/to/MS/files/WT_B2.raw +6 WT B /path/to/MS/files/WT_B3.raw +7 KO A /path/to/MS/files/KO_A1.raw +8 KO A /path/to/MS/files/KO_A2.raw +9 KO A /path/to/MS/files/KO_A3.raw +10 KO B /path/to/MS/files/KO_B1.raw +11 KO B /path/to/MS/files/KO_B2.raw +12 KO B /path/to/MS/files/KO_B3.raw ``` @@ -81,7 +62,7 @@ An [example samplesheet](../assets/samplesheet.tsv) has been provided with the p The typical command for running the pipeline is as follows: ```console -nextflow run nf-core/mhcquant --input 'samples.tsv' --fasta 'SWISSPROT_2020.fasta' --allele_sheet 'alleles.tsv' --vcf_sheet 'variants.tsv' --include_proteins_from_vcf --predict_class_1 -profile docker +nextflow run nf-core/mhcquant --input 'samples.tsv' --outdir --fasta 'SWISSPROT_2020.fasta' --allele_sheet 'alleles.tsv' --vcf_sheet 'variants.tsv' --include_proteins_from_vcf --predict_class_1 -profile docker ``` This will launch the pipeline with the `docker` configuration profile. See below for more information about profiles. @@ -90,7 +71,7 @@ Note that the pipeline will create the following files in your working directory ```console work # Directory containing the nextflow working files -results # Finished results (configurable, see below) + # Finished results in specified location (defined with --outdir) .nextflow_log # Log file from Nextflow # Other nextflow hidden files, eg. history of pipeline runs and old logs. ``` @@ -148,7 +129,7 @@ If `-profile` is not specified, the pipeline will run locally and expect all sof ### `-resume` -Specify this when restarting a pipeline. Nextflow will used cached results from any pipeline steps where the inputs are the same, continuing from where it got to previously. +Specify this when restarting a pipeline. Nextflow will use cached results from any pipeline steps where the inputs are the same, continuing from where it got to previously. For input to be considered the same, not only the names must be identical but the files' contents as well. For more info about this parameter, see [this blog post](https://www.nextflow.io/blog/2019/demystifying-nextflow-resume.html). You can also supply a run name to resume a specific run: `-resume [run-name]`. Use the `nextflow log` command to show previous run names. @@ -163,11 +144,11 @@ Whilst the default requirements set within the pipeline will hopefully work for For example, if the nf-core/rnaseq pipeline is failing after multiple re-submissions of the `STAR_ALIGN` process due to an exit code of `137` this would indicate that there is an out of memory issue: ```console -[62/149eb0] NOTE: Process `RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)` terminated with an error exit status (137) -- Execution is retried (1) -Error executing process > 'RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)' +[62/149eb0] NOTE: Process `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)` terminated with an error exit status (137) -- Execution is retried (1) +Error executing process > 'NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)' Caused by: - Process `RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)` terminated with an error exit status (137) + Process `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN (WT_REP1)` terminated with an error exit status (137) Command executed: STAR \ @@ -191,17 +172,25 @@ Work dir: Tip: you can replicate the issue by changing to the process work dir and entering the command `bash .command.run` ``` -To bypass this error you would need to find exactly which resources are set by the `STAR_ALIGN` process. The quickest way is to search for `process STAR_ALIGN` in the [nf-core/rnaseq Github repo](https://github.com/nf-core/rnaseq/search?q=process+STAR_ALIGN). We have standardised the structure of Nextflow DSL2 pipelines such that all module files will be present in the `modules/` directory and so based on the search results the file we want is `modules/nf-core/software/star/align/main.nf`. If you click on the link to that file you will notice that there is a `label` directive at the top of the module that is set to [`label process_high`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/modules/nf-core/software/star/align/main.nf#L9). The [Nextflow `label`](https://www.nextflow.io/docs/latest/process.html#label) directive allows us to organise workflow processes in separate groups which can be referenced in a configuration file to select and configure subset of processes having similar computing requirements. The default values for the `process_high` label are set in the pipeline's [`base.config`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L33-L37) which in this case is defined as 72GB. Providing you haven't set any other standard nf-core parameters to **cap** the [maximum resources](https://nf-co.re/usage/configuration#max-resources) used by the pipeline then we can try and bypass the `STAR_ALIGN` process failure by creating a custom config file that sets at least 72GB of memory, in this case increased to 100GB. The custom config below can then be provided to the pipeline via the [`-c`](#-c) parameter as highlighted in previous sections. +To bypass this error you would need to find exactly which resources are set by the `STAR_ALIGN` process. The quickest way is to search for `process STAR_ALIGN` in the [nf-core/rnaseq Github repo](https://github.com/nf-core/rnaseq/search?q=process+STAR_ALIGN). +We have standardised the structure of Nextflow DSL2 pipelines such that all module files will be present in the `modules/` directory and so, based on the search results, the file we want is `modules/nf-core/software/star/align/main.nf`. +If you click on the link to that file you will notice that there is a `label` directive at the top of the module that is set to [`label process_high`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/modules/nf-core/software/star/align/main.nf#L9). +The [Nextflow `label`](https://www.nextflow.io/docs/latest/process.html#label) directive allows us to organise workflow processes in separate groups which can be referenced in a configuration file to select and configure subset of processes having similar computing requirements. +The default values for the `process_high` label are set in the pipeline's [`base.config`](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L33-L37) which in this case is defined as 72GB. +Providing you haven't set any other standard nf-core parameters to **cap** the [maximum resources](https://nf-co.re/usage/configuration#max-resources) used by the pipeline then we can try and bypass the `STAR_ALIGN` process failure by creating a custom config file that sets at least 72GB of memory, in this case increased to 100GB. +The custom config below can then be provided to the pipeline via the [`-c`](#-c) parameter as highlighted in previous sections. ```nextflow process { - withName: STAR_ALIGN { + withName: 'NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN' { memory = 100.GB } } ``` -> **NB:** We specify just the process name i.e. `STAR_ALIGN` in the config file and not the full task name string that is printed to screen in the error message or on the terminal whilst the pipeline is running i.e. `RNASEQ:ALIGN_STAR:STAR_ALIGN`. You may get a warning suggesting that the process selector isn't recognised but you can ignore that if the process name has been specified correctly. This is something that needs to be fixed upstream in core Nextflow. +> **NB:** We specify the full process name i.e. `NFCORE_RNASEQ:RNASEQ:ALIGN_STAR:STAR_ALIGN` in the config file because this takes priority over the short name (`STAR_ALIGN`) and allows existing configuration using the full process name to be correctly overridden. +> +> If you get a warning suggesting that the process selector isn't recognised check that the process name has been specified correctly. ### Updating containers diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy index 2fc0a9b9..860281af 100755 --- a/lib/NfcoreTemplate.groovy +++ b/lib/NfcoreTemplate.groovy @@ -21,7 +21,7 @@ class NfcoreTemplate { // // Warn if a -profile or Nextflow config has not been provided to run the pipeline // - public static void checkConfigProvided(workflow, log) { + public static void checkConfigProvided(workflow, log) { if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + diff --git a/lib/Utils.groovy b/lib/Utils.groovy index 1b88aec0..28567bd7 100644 --- a/lib/Utils.groovy +++ b/lib/Utils.groovy @@ -29,12 +29,12 @@ class Utils { conda_check_failed |= !(channels.indexOf('bioconda') < channels.indexOf('defaults')) if (conda_check_failed) { - log.warn "=============================================================================\n" + + log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " There is a problem with your Conda configuration!\n\n" + " You will need to set-up the conda-forge and bioconda channels correctly.\n" + " Please refer to https://bioconda.github.io/user/install.html#set-up-channels\n" + " NB: The order of the channels matters!\n" + - "===================================================================================" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" } } } diff --git a/lib/WorkflowMhcquant.groovy b/lib/WorkflowMhcquant.groovy index 10d5fc98..6b341d82 100644 --- a/lib/WorkflowMhcquant.groovy +++ b/lib/WorkflowMhcquant.groovy @@ -53,60 +53,61 @@ class WorkflowMhcquant { // Print a warning when the output directory is undefined // private static void outdirWarn(log) { - log.warn "======================================================================================================\n" + + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " Results into \'./results\'.\n" + " If you want to define a result directory, please use the --outdir option" + - "======================================================================================================" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" } // // Print a warning when the parameter skip_decoy_generation is used // private static void skipDecoyWarn(log) { - log.warn "================================================================================================\n" + + log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " Be aware: skipping decoy generation will prevent generating variants and subset FDR refinement\n" + " Decoys have to be named with DECOY_ as prefix in your fasta database\n" + - "======================================================================================================" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" } // // Print a warning when the parameter skip_decoy_generation is used // private static void klammerConflictWarn(log) { - log.warn "================================================================================================\n" + + log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " Quantification FDR enabled\n" + - "======================================================================================================" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" } // // Print a warning when the parameter skip_decoy_generation is used // private static void enabledFDRWarn(log) { - log.warn "================================================================================================\n" + + log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " Klammer was specified, but description of correct features was still 0\n."+ " Please provide a description of correct features greater than 0.\n" + " Klammer has been turned off!\n" + - "======================================================================================================" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" } // // Print an error when the no allele_sheet is provided // private static void noAllelesError(log) { - log.error "======================================================================================================\n" + + log.error "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " --predict_class_1 or --predict_class_2 was used but no allele sheet has been provided. \n" + " Make sure you have used the '--allele_sheet' option and include an allele sheet.\n" + - "======================================================================================================" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" } // // Print an error when there is no vcf_sheet provided // private static void noVcfError(log) { - log.error "======================================================================================================\n" + + log.error "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " --include_proteins_from_vcf was used but no vcf sheet has been provided. \n" + " Make sure you have used the '--vcf_sheet' option and include an vcf sheet.\n" + - "======================================================================================================" + "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" } // diff --git a/main.nf b/main.nf index 1cff392d..228e81a3 100644 --- a/main.nf +++ b/main.nf @@ -1,8 +1,8 @@ #!/usr/bin/env nextflow /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nf-core/mhcquant -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Github : https://github.com/nf-core/mhcquant Website: https://nf-co.re/mhcquant Slack : https://nfcore.slack.com/channels/mhcquant @@ -12,25 +12,25 @@ nextflow.enable.dsl = 2 /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ GENOME PARAMETER VALUES -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ params.fasta = WorkflowMain.getGenomeAttribute(params, 'fasta') /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VALIDATE & PRINT PARAMETER SUMMARY -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ WorkflowMain.initialise(workflow, params, log) /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NAMED WORKFLOW FOR PIPELINE -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ include { MHCQUANT } from './workflows/mhcquant' @@ -43,9 +43,9 @@ workflow NFCORE_MHCQUANT { } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RUN ALL WORKFLOWS -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // @@ -57,7 +57,7 @@ workflow { } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ THE END -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ diff --git a/nextflow.config b/nextflow.config index aed85fb4..c7ad62a7 100644 --- a/nextflow.config +++ b/nextflow.config @@ -1,7 +1,7 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nf-core/mhcquant Nextflow config file -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Default config options for all compute environments ---------------------------------------------------------------------------------------- */ @@ -12,7 +12,7 @@ params { // Workflow flags help = false input = "sample_sheet.tsv" - outdir = './results' + outdir = null fasta = "data/*.fasta" // References @@ -174,7 +174,6 @@ profiles { test_full { includeConfig 'conf/test_full.config' } } -// Export these variables to prevent local Python/R libraries from conflicting with those in the container // The JULIA depot path has been adjusted to a fixed path `/usr/local/share/julia` that needs to be used for packages in the container. // See https://apeltzer.github.io/post/03-julia-lang-nextflow/ for details on that. Once we have a common agreement on where to keep Julia packages, this is adjustable. diff --git a/nextflow_schema.json b/nextflow_schema.json index 4ffb8977..188ccbfc 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -10,9 +10,7 @@ "type": "object", "fa_icon": "fas fa-terminal", "description": "Define where the pipeline should find input data and save output data.", - "required": [ - "input" - ], + "required": ["input", "outdir"], "properties": { "input": { "type": "string", @@ -26,7 +24,8 @@ }, "outdir": { "type": "string", - "description": "Path to the output directory where the results will be saved.", + "format": "directory-path", + "description": "The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.", "default": "./results", "fa_icon": "fas fa-folder-open" }, @@ -460,6 +459,15 @@ "fa_icon": "fas fa-question-circle", "hidden": true }, + "publish_dir_mode": { + "type": "string", + "default": "copy", + "description": "Method used to save pipeline results to output directory.", + "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", + "fa_icon": "fas fa-copy", + "enum": ["symlink", "rellink", "link", "copy", "copyNoFollow", "move"], + "hidden": true + }, "email_on_fail": { "type": "string", "description": "Email address for completion summary, only when pipeline fails.", diff --git a/subworkflows/local/input_check.nf b/subworkflows/local/input_check.nf index 05002623..710097bb 100644 --- a/subworkflows/local/input_check.nf +++ b/subworkflows/local/input_check.nf @@ -23,11 +23,11 @@ workflow INPUT_CHECK { // Function to get list of [ meta, filenames ] def get_samplesheet_paths(LinkedHashMap row) { def meta = [:] - meta.id = row.ID - meta.sample = row.Sample - meta.condition = row.Condition - meta.ext = row.FileExt - + meta.id = row.ID + meta.sample = row.Sample + meta.condition = row.Condition + meta.ext = row.FileExt + // add path(s) of the fastq file(s) to the meta map def array = [] if (!file(row.Filename).exists()) { exit 1, "ERROR: Please check input samplesheet -> MS file does not exist!\n${row.Filename}" diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index f41b5399..1a5636e1 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -1,7 +1,7 @@ /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ VALIDATE INPUTS -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ def summary_params = NfcoreSchema.paramsSummaryMap(workflow, params) @@ -40,18 +40,18 @@ if (params.predict_class_1 || params.predict_class_2) { } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CONFIG FILES -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ ch_multiqc_config = file("$projectDir/assets/multiqc_config.yaml", checkIfExists: true) ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multiqc_config) : Channel.empty() /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CREATE CHANNELS -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ // @@ -322,9 +322,9 @@ workflow MHCQUANT { } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ COMPLETION EMAIL AND SUMMARY -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ workflow.onComplete { @@ -335,7 +335,7 @@ workflow.onComplete { } /* -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ THE END -======================================================================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ From 558bb1338b24c4e7202c028068b9a0956aa073cb Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Thu, 24 Mar 2022 11:41:50 +0000 Subject: [PATCH 40/88] Template update for nf-core/tools version 2.3.2 --- .github/PULL_REQUEST_TEMPLATE.md | 1 - .github/workflows/awsfulltest.yml | 2 -- .github/workflows/awstest.yml | 2 -- .gitpod.yml | 2 +- CHANGELOG.md | 2 -- 5 files changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 5ad4a971..d8c70ebe 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -10,7 +10,6 @@ Remember that PRs should be made against the dev branch, unless you're preparing Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/mhcquant/tree/master/.github/CONTRIBUTING.md) --> - ## PR checklist diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index 384911b0..6ded70fa 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -22,8 +22,6 @@ jobs: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} - pipeline: ${{ github.repository }} - revision: ${{ github.sha }} workdir: s3://${{ secrets.AWS_S3_BUCKET }}/work/mhcquant/work-${{ github.sha }} parameters: | { diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 63ebabdc..29b1ee53 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -17,8 +17,6 @@ jobs: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} - pipeline: ${{ github.repository }} - revision: ${{ github.sha }} workdir: s3://${{ secrets.AWS_S3_BUCKET }}/work/mhcquant/work-${{ github.sha }} parameters: | { diff --git a/.gitpod.yml b/.gitpod.yml index c452ee93..85d95ecc 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -4,7 +4,7 @@ vscode: extensions: # based on nf-core.nf-core-extensionpack - codezombiech.gitignore # Language support for .gitignore files # - cssho.vscode-svgviewer # SVG viewer - - davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code + - esbenp.prettier-vscode # Markdown/CommonMark linting and style checking for Visual Studio Code - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar diff --git a/CHANGELOG.md b/CHANGELOG.md index febfa011..81c64094 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,8 +11,6 @@ Initial release of nf-core/mhcquant, created with the [nf-core](https://nf-co.re ### `Fixed` -- Clarified conda usage and added an installation tutorial for Singularity since the one on Syllabs' website uses an outdate version of GO Compiler - ### `Dependencies` ### `Deprecated` From a3f19e42d525ef3c54af9f514bb52f79fcf6bc1a Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 25 Mar 2022 10:54:43 +0100 Subject: [PATCH 41/88] Update: the check samples step and to template 2.3.2 --- .github/workflows/ci.yml | 4 +- .markdownlint.yml | 14 - bin/check_samplesheet.py | 343 +++++++++++++------- conf/base.config | 2 +- conf/modules.config | 502 +++++++++++++++--------------- docs/output.md | 42 +-- nextflow.config | 27 +- subworkflows/local/input_check.nf | 31 +- workflows/mhcquant.nf | 8 +- 9 files changed, 535 insertions(+), 438 deletions(-) delete mode 100644 .markdownlint.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 773453ea..2d367a71 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: - name: Run pipeline with test data run: | - nextflow run ${GITHUB_WORKSPACE} -profile test,docker + nextflow run ${GITHUB_WORKSPACE} -profile test,docker --outdir ./results test_additional_params: name: Run pipeline with additional params @@ -77,5 +77,5 @@ jobs: - name: Run pipeline with additional params run: | - nextflow run ${GITHUB_WORKSPACE} -profile test,docker --predict_class_1 --predict_class_2 --predict_RT + nextflow run ${GITHUB_WORKSPACE} -profile test,docker --predict_class_1 --predict_class_2 --predict_RT --outdir ./results # diff --git a/.markdownlint.yml b/.markdownlint.yml deleted file mode 100644 index 9e605fcf..00000000 --- a/.markdownlint.yml +++ /dev/null @@ -1,14 +0,0 @@ -# Markdownlint configuration file -default: true -line-length: false -ul-indent: - indent: 4 -no-duplicate-header: - siblings_only: true -no-inline-html: - allowed_elements: - - img - - p - - kbd - - details - - summary diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py index d39d8ff3..53a8d349 100755 --- a/bin/check_samplesheet.py +++ b/bin/check_samplesheet.py @@ -2,139 +2,250 @@ # This script is based on the example at: https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv -import os -import sys -import errno -import argparse +"""Provide a command line tool to validate and transform tabular samplesheets.""" + +import os.path +#import sys +#import errno +#import argparse +import argparse +import csv +import logging +import sys +from collections import Counter +from pathlib import Path -def parse_args(args=None): - Description = "Reformat nf-core/mhcquant samplesheet file and check its contents." - Epilog = "Example usage: python check_samplesheet.py " +logger = logging.getLogger() - parser = argparse.ArgumentParser(description=Description, epilog=Epilog) - parser.add_argument("FILE_IN", help="Input samplesheet file.") - parser.add_argument("FILE_OUT", help="Output file.") - return parser.parse_args(args) +class RowChecker: + """ + Define a service that can validate and transform each given row. -def make_dir(path): - if len(path) > 0: - try: - os.makedirs(path) - except OSError as exception: - if exception.errno != errno.EEXIST: - raise exception + Attributes: + modified (list): A list of dicts, where each dict corresponds to a previously + validated and transformed row. The order of rows is maintained. + """ -def print_error(error, context="Line", context_str=""): - error_str = "ERROR: Please check samplesheet -> {}".format(error) - if context != "" and context_str != "": - error_str = "ERROR: Please check samplesheet -> {}\n{}: '{}'".format( - error, context.strip(), context_str.strip() + VALID_FORMATS = ( + ".raw", + ".mzML", + ) + + def __init__( + self, + id_col="ID", + sample_col="Sample", + condition_col="Condition", + filename_col="ReplicateFileName", + ext_col="Extension", + **kwargs, + ): + """ + Initialize the row checker with the expected column names. + + Args: + id_col (int) : An integer that acts as a unique identifier for the + unique samples. + sample_col (str): The name of the column that contains the sample name + (default "sample"). + condition_col (str): This column consists of additional information about + the sample, could be anything from a "wildtype/disease" description + to a particular treatment (default ""). + filename_col (str): The name of the column that contains the path to the + raw or mzMl files ). + + """ + super().__init__(**kwargs) + self._id_col = id_col + self._sample_col = sample_col + self._condition_col = condition_col + self._filename_col = filename_col + self._ext_col = ext_col + self._seen = set() + self.modified = [] + + def validate_and_transform(self, row): + """ + Perform all validations on the given row and insert the read pairing status. + + Args: + row (dict): A mapping from column headers (keys) to elements of that row + (values). + + """ + self._validate_id(row) + self._validate_sample(row) + self._validate_condition(row) + self._validate_filename(row) + self._seen.add((row[self._sample_col], row[self._filename_col])) + self.modified.append(row) + + def _validate_id(self, row): + """Assert that the sample name exists and convert spaces to underscores.""" + assert row[self._id_col].isdigit(), "Make sure that the sample ID is an numeric value" + + def _validate_sample(self, row): + """Assert that the sample name exists and convert spaces to underscores.""" + assert len(row[self._sample_col]) > 0, "Sample input is required." + # Sanitize samples slightly. + row[self._sample_col] = row[self._sample_col].replace(" ", "_") + + def _validate_condition(self, row): + """Assert that the condition is provided and convert spaces to underscores.""" + assert len(row[self._condition_col]) > 0, "Sample input is required." + # Sanitize samples slightly. + row[self._condition_col] = row[self._condition_col].replace(" ", "_") + + def _validate_filename(self, row): + """Assert that the data entry has the right format if it exists.""" + if len(row[self._filename_col]) > 0: + self._validate_ms_format(row[self._filename_col]) + row[self._ext_col] = os.path.splitext(row[self._filename_col])[1][1:].lower() + + def _validate_ms_format(self, filename): + """Assert that a given filename has one of the expected MS extensions.""" + assert any(filename.endswith(extension) for extension in self.VALID_FORMATS), ( + f"The file has an unrecognized extension: {filename}\n" + f"It should be one of: {', '.join(self.VALID_FORMATS)}" ) - print(error_str) - sys.exit(1) + def validate_unique_samples(self): + """ + Assert that the combination of sample name and filename is unique. -def check_samplesheet(file_in, file_out): + In addition to the validation, also rename the sample if more than one sample + file combination exists. + + """ + assert len(self._seen) == len(self.modified), "The pair of sample name and file must be unique." + if len({pair[0] for pair in self._seen}) < len(self._seen): + counts = Counter(pair[0] for pair in self._seen) + seen = Counter() + for row in self.modified: + sample = row[self._sample_col] + seen[sample] += 1 + if counts[sample] > 1: + row[self._sample_col] = f"{sample}" + + +def sniff_format(handle): """ - This function checks that the samplesheet follows the following structure: + Detect the tabular format. + + Args: + handle (text file): A handle to a `text file`_ object. The read position is + expected to be at the beginning (index 0). + + Returns: + csv.Dialect: The detected tabular format. + + .. _text file: + https://docs.python.org/3/glossary.html#term-text-file - ID\tSample\tCondition\tReplicateFileName - 1\tWT\tA\tWT_A.raw - 2\tWT\tB\tWT_B.raw - 3\tKO\tA\tKO_A.raw - 4\tKO\tB\tKO_B.raw """ + peek = handle.read(2048) + sniffer = csv.Sniffer() + if not sniffer.has_header(peek): + logger.critical(f"The given sample sheet does not appear to contain a header.") + sys.exit(1) + dialect = sniffer.sniff(peek) + handle.seek(0) + return dialect - sample_run_dict = {} - with open(file_in, "r") as fin: - ## Check header - MIN_COLS = 4 - HEADER = ["ID", "Sample", "Condition", "ReplicateFileName"] - header = [x.strip('"') for x in fin.readline().strip().split("\t")] - if header[: len(HEADER)] != HEADER: - print("ERROR: Please check samplesheet header -> {} != {}".format("\t".join(header), "\t".join(HEADER))) - sys.exit(1) +def check_samplesheet(file_in, file_out): + """ + Check that the tabular samplesheet has the structure expected by nf-core pipelines. + + Validate the general shape of the table, expected columns, and each row. Also add + an additional column which records whether one or two FASTQ reads were found. - ## Check sample entries - for line in fin: - lspl = [x.strip().strip('"') for x in line.strip().split("\t")] - ## Check valid number of columns per row - if len(lspl) < len(HEADER): - print_error( - "Invalid number of columns (minimum = {})!".format(len(HEADER)), - "Line", - line, - ) - num_cols = len([x for x in lspl if x]) - if num_cols < MIN_COLS: - print_error( - "Invalid number of populated columns (minimum = {})!".format(MIN_COLS), - "Line", - line, - ) - - ## Check sample name entries - ident, sample, condition, filename = lspl[: len(HEADER)] - # sample, condition, filename = lspl[1: len(HEADER)] - - ## Check replicate entry is integer - if not ident.isdigit(): - ident = int(ident) - - # identifier = sample + "_" + condition + "_" + ident - identifier = ident - - for strCon in [sample, condition]: - if strCon: - if strCon.find(" ") != -1: - print_error("Group entry contains spaces!", "Line", line) - else: - print_error("Group entry has not been specified!", "Line", line) - - ## Check MS file extension - if filename: - if filename.find(" ") != -1: - print_error("FastQ file contains spaces!", "Line", line) - - if not filename.endswith(".raw") and not filename.endswith(".mzML"): - print_error( - "FastQ file does not have extension '.raw' or '.mzML'!", - "Line", - line, - ) - elif filename.endswith(".raw"): - sample_info = [sample, condition, filename, "raw"] - elif filename.lower().endswith(".mzml"): - sample_info = [sample, condition, filename, "mzml"] - - ## Create sample mapping dictionary = {sample: [[ single_end, fastq_1, fastq_2, strandedness ]]} - if sample not in sample_run_dict: - sample_run_dict[identifier] = [sample_info] - else: - if sample_info in sample_run_dict[identifier]: - print_error("Samplesheet contains duplicate rows!", "Line", line) - else: - sample_run_dict[identifier].append(sample_info) - - ## Write validated samplesheet with appropriate columns - if len(sample_run_dict) > 0: - out_dir = os.path.dirname(file_out) - make_dir(out_dir) - with open(file_out, "w") as fout: - fout.write("\t".join(["ID", "Sample", "Condition", "Filename", "FileExt"]) + "\n") - - for sample in sorted(sample_run_dict.keys()): - for idx, val in enumerate(sample_run_dict[sample]): - fout.write("\t".join([sample] + val) + "\n") - -def main(args=None): - args = parse_args(args) - check_samplesheet(args.FILE_IN, args.FILE_OUT) + Args: + file_in (pathlib.Path): The given tabular samplesheet. The format can be either + CSV, TSV, or any other format automatically recognized by ``csv.Sniffer``. + file_out (pathlib.Path): Where the validated and transformed samplesheet should + be created; always in CSV format. + Example: + This function checks that the samplesheet follows the following structure, + see also the `viral recon samplesheet`_:: + + ID Sample Condition ReplicateFileName + 1 WT A WT_A.raw + 2 WT B WT_B.raw + 3 KO A KO_A.raw + 4 KO B KO_B.raw + + .. _viral recon samplesheet: + https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv + + """ + required_columns = {"ID", "Sample", "Condition", "ReplicateFileName"} + # See https://docs.python.org/3.9/library/csv.html#id3 to read up on `newline=""`. + with file_in.open(newline="") as in_handle: + reader = csv.DictReader(in_handle, dialect=sniff_format(in_handle)) + # Validate the existence of the expected header columns. + if not required_columns.issubset(reader.fieldnames): + logger.critical(f"The sample sheet **must** contain the column headers: {', '.join(required_columns)}.") + sys.exit(1) + # Validate each row. + checker = RowChecker() + for i, row in enumerate(reader): + try: + checker.validate_and_transform(row) + except AssertionError as error: + logger.critical(f"{str(error)} On line {i + 2}.") + sys.exit(1) + checker.validate_unique_samples() + header = list(reader.fieldnames) + header.insert(4, "Extension") + # See https://docs.python.org/3.9/library/csv.html#id3 to read up on `newline=""`. + with file_out.open(mode="w", newline="") as out_handle: + writer = csv.DictWriter(out_handle, header, delimiter=",") + writer.writeheader() + for row in checker.modified: + writer.writerow(row) + +def parse_args(argv=None): + """Define and immediately parse command line arguments.""" + parser = argparse.ArgumentParser( + description="Validate and transform a tabular samplesheet.", + epilog="Example: python check_samplesheet.py samplesheet.tsv samplesheet.valid.tsv", + ) + parser.add_argument( + "file_in", + metavar="FILE_IN", + type=Path, + help="Tabular input samplesheet in CSV or TSV format.", + ) + parser.add_argument( + "file_out", + metavar="FILE_OUT", + type=Path, + help="Transformed output samplesheet in CSV format.", + ) + parser.add_argument( + "-l", + "--log-level", + help="The desired log level (default WARNING).", + choices=("CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG"), + default="WARNING", + ) + return parser.parse_args(argv) + + +def main(argv=None): + """Coordinate argument parsing and program execution.""" + args = parse_args(argv) + logging.basicConfig(level=args.log_level, format="[%(levelname)s] %(message)s") + if not args.file_in.is_file(): + logger.error(f"The given input file {args.file_in} was not found!") + sys.exit(2) + args.file_out.parent.mkdir(parents=True, exist_ok=True) + check_samplesheet(args.file_in, args.file_out) if __name__ == "__main__": sys.exit(main()) diff --git a/conf/base.config b/conf/base.config index aa233a65..2e9e9cfc 100644 --- a/conf/base.config +++ b/conf/base.config @@ -1,6 +1,6 @@ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - nf-core/mhcquant Nextflow base config file + nf-core/mhcquant Nextflow base config file and publishing paths ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A 'blank slate' config file, appropriate for general use on most high performance compute environments. Assumes that all software is installed and available on diff --git a/conf/modules.config b/conf/modules.config index 23b0e3ee..e30098af 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -13,180 +13,103 @@ process { publishDir = [ - path: { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }, - mode: 'copy', - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - - withName: SAMPLESHEET_CHECK { - publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: 'copy', + path: { "${params.outdir}/${task.process.tokenize(':')[-1].tokenize('_')[0].toLowerCase()}" }, + mode: params.publish_dir_mode, saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] - } + + withName: SAMPLESHEET_CHECK { + publishDir = [ + path: { "${params.outdir}/pipeline_info" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } withName: CUSTOM_DUMPSOFTWAREVERSIONS { - publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: 'copy', - pattern: '*_versions.yml' - ] - } + publishDir = [ + path: { "${params.outdir}/pipeline_info" }, + mode: params.publish_dir_mode, + pattern: '*_versions.yml' + ] + } } process { withName: GENERATE_PROTEINS_FROM_VCF { - ext.args = [ - "-t ${params.variant_annotation_style}", - "-r ${params.variant_reference}", - params.variant_indel_filter ? "-fINDEL" : "", - params.variant_frameshift_filter ? "-fFS" : "", - params.variant_snp_filter ? "-fSNP" : "" - ].join(' ').trim() - publishDir = [ - path: { "${params.outdir}" }, - mode: 'copy', - pattern: '*.fasta' - ] - } + ext.args = [ + "-t ${params.variant_annotation_style}", + "-r ${params.variant_reference}", + params.variant_indel_filter ? "-fINDEL" : "", + params.variant_frameshift_filter ? "-fFS" : "", + params.variant_snp_filter ? "-fSNP" : "" + ].join(' ').trim() + publishDir = [ + path: { "${params.outdir}" }, + mode: 'copy', + pattern: '*.fasta' + ] + } withName: OPENMS_MAPALIGNERIDENTIFICATION { - ext.args = [ - "-model:type linear", - "-algorithm:max_rt_shift ${params.max_rt_alignment_shift}" - ].join(' ').trim() - publishDir = [ enabled: false ] - } + ext.args = [ + "-model:type linear", + "-algorithm:max_rt_shift ${params.max_rt_alignment_shift}" + ].join(' ').trim() + publishDir = [ enabled: false ] + } withName: OPENMS_COMETADAPTER { - ext.args = [ - "-precursor_mass_tolerance ${params.precursor_mass_tolerance}", - "-fragment_mass_tolerance ${params.fragment_mass_tolerance}", - "-fragment_bin_offset ${params.fragment_bin_offset}", - "-num_hits ${params.num_hits}", - "-digest_mass_range ${params.digest_mass_range}", - "-max_variable_mods_in_peptide ${params.number_mods}", - "-missed_cleavages 0", - "-precursor_charge ${params.prec_charge}", - "-activation_method ${params.activation_method}", - "-variable_modifications ${params.variable_mods.tokenize(',').collect { "'${it}'" }.join(" ") }", - "-enzyme '${params.enzyme}'", - "-spectrum_batch_size ${params.spectrum_batch_size}" - ].join(' ').trim() - publishDir = [ enabled: false ] - } + ext.args = [ + "-precursor_mass_tolerance ${params.precursor_mass_tolerance}", + "-fragment_mass_tolerance ${params.fragment_mass_tolerance}", + "-fragment_bin_offset ${params.fragment_bin_offset}", + "-num_hits ${params.num_hits}", + "-digest_mass_range ${params.digest_mass_range}", + "-max_variable_mods_in_peptide ${params.number_mods}", + "-missed_cleavages 0", + "-precursor_charge ${params.prec_charge}", + "-activation_method ${params.activation_method}", + "-variable_modifications ${params.variable_mods.tokenize(',').collect { "'${it}'" }.join(" ") }", + "-enzyme '${params.enzyme}'", + "-spectrum_batch_size ${params.spectrum_batch_size}" + ].join(' ').trim() + publishDir = [ enabled: false ] + } withName: OPENMS_IDFILTER_FOR_ALIGNMENT { - ext.args = [ - "-remove_decoys", - "-precursor:length '${params.peptide_min_length}:${params.peptide_max_length}'", - "-delete_unreferenced_peptide_hits", - (params.fdr_threshold == '0.01') ? "-score:pep 0.05" : "-score:pep " + params.fdr_threshold - ].join(' ').trim() - publishDir = [ - path: { "${params.outdir}/Intermediate_Results" }, - mode: 'copy', - pattern: '*.idXML' - ] - } - - withName: OPENMS_IDFILTER_Q_VALUE { - ext.prefix = { "${meta.id}_filtered" } - ext.args = [ - "-remove_decoys", - "-precursor:length '${params.peptide_min_length}:${params.peptide_max_length}'", - "-delete_unreferenced_peptide_hits", - (params.fdr_threshold == '0.01') ? "-score:pep 0.05" : "-score:pep " + params.fdr_threshold - ].join(' ').trim() - publishDir = [ - path: { "${params.outdir}/Intermediate_Results" }, - mode: 'copy', - pattern: '*.idXML' - ] - } - - withName: OPENMS_PERCOLATORADAPTER { - ext.prefix = { "${meta.id}_all_ids_merged_psm_perc" } - ext.args = [ - "-seed 4711", - "-trainFDR 0.05", - "-testFDR 0.05", - "-enzyme no_enzyme", - "-subset_max_train ${params.subset_max_train}", - "-doc ${params.description_correct_features} ", - (params.fdr_level != 'psm-level-fdrs') ? "-" + params.fdr_level : "" - ].join(' ').trim() - publishDir = [ - path: { "${params.outdir}/Intermediate_Results" }, - mode: 'copy', - pattern: '*.idXML' - ] - } - - withName: OPENMS_PSMFEATUREEXTRACTOR { - publishDir = [ - path: { "${params.outdir}/Intermediate_Results" }, - mode: 'copy', - pattern: '*.idXML' - ] - } - - withName: 'OPENMS_DECOYDATABASE|OPENMS_THERMORAWFILEPARSER|OPENMS_PEAKPICKERHIRES|OPENMS_PEPTIDEINDEXER|OPENMS_FALSEDISCOVERYRATE|OPENMS_IDMERGER|OPENMS_MAPRTTRANSFORMER.*ML|OPENMS_FEATURE.*|OPENMS_IDCONFLICTRESOLVER|OPENMS_MZTABEXPORTER' { - publishDir = [ enabled: false ] - } - - withName: 'OPENMS_TEXTEXPORTER_UNQUANTIFIED|OPENMS_TEXTEXPORTER_QUANTIFIED' { - ext.args = [ - "-id:add_metavalues 0" - ].join(' ').trim() - publishDir = [ - path: { "${params.outdir}/" }, - mode: 'copy', - pattern: '*.tsv' - ] - } - - withName: 'OPENMS_TEXTEXPORTER_PSMS' { - publishDir = [ - path: { "${params.outdir}/PSMs" }, - mode: 'copy', - pattern: '*.tsv' - ] - } -} - - -// Refine on predicted subset -process { - - if ( params.refine_fdr_on_predicted_subset && params.predict_class_1 ) { - withName: OPENMS_MZTABEXPORTERPERC { - ext.prefix = { "${meta.sample}_${meta.condition}_all_ids_merged_psm_perc_filtered" } + ext.args = [ + "-remove_decoys", + "-precursor:length '${params.peptide_min_length}:${params.peptide_max_length}'", + "-delete_unreferenced_peptide_hits", + (params.fdr_threshold == '0.01') ? "-score:pep 0.05" : "-score:pep " + params.fdr_threshold + ].join(' ').trim() publishDir = [ path: { "${params.outdir}/Intermediate_Results" }, mode: 'copy', - pattern: '*.mzTab' + pattern: '*.idXML' ] } - withName: OPENMS_MZTABEXPORTERPSM { - ext.prefix = { "${meta.sample}_${meta.condition}_all_ids_merged" } + withName: OPENMS_IDFILTER_Q_VALUE { + ext.prefix = { "${meta.id}_filtered" } + ext.args = [ + "-remove_decoys", + "-precursor:length '${params.peptide_min_length}:${params.peptide_max_length}'", + "-delete_unreferenced_peptide_hits", + (params.fdr_threshold == '0.01') ? "-score:pep 0.05" : "-score:pep " + params.fdr_threshold + ].join(' ').trim() publishDir = [ path: { "${params.outdir}/Intermediate_Results" }, mode: 'copy', - pattern: '*.mzTab' + pattern: '*.idXML' ] } - withName: MHCFLURRY_PREDICTPSMS { - publishDir = [ enabled: false ] - } - - withName: REFINE_FDR:OPENMS_PERCOLATORADAPTER { - ext.prefix = { "${meta.id}_perc_subset" } + withName: OPENMS_PERCOLATORADAPTER { + ext.prefix = { "${meta.id}_all_ids_merged_psm_perc" } ext.args = [ "-seed 4711", "-trainFDR 0.05", @@ -203,12 +126,7 @@ process { ] } - withName: OPENMS_IDFILTER_PSMS { - ext.prefix = { "${meta.id}_pred_filtered" } - ext.args = [ - "-whitelist:ignore_modifications", - "-whitelist:peptides" - ].join(' ').trim() + withName: OPENMS_PSMFEATUREEXTRACTOR { publishDir = [ path: { "${params.outdir}/Intermediate_Results" }, mode: 'copy', @@ -216,19 +134,101 @@ process { ] } - withName: OPENMS_IDFILTER_REFINED { + withName: 'OPENMS_DECOYDATABASE|OPENMS_THERMORAWFILEPARSER|OPENMS_PEAKPICKERHIRES|OPENMS_PEPTIDEINDEXER|OPENMS_FALSEDISCOVERYRATE|OPENMS_IDMERGER|OPENMS_MAPRTTRANSFORMER.*ML|OPENMS_FEATURE.*|OPENMS_IDCONFLICTRESOLVER|OPENMS_MZTABEXPORTER' { + publishDir = [ enabled: false ] + } + + withName: 'OPENMS_TEXTEXPORTER_UNQUANTIFIED|OPENMS_TEXTEXPORTER_QUANTIFIED' { ext.args = [ - "-remove_decoys", - "-precursor:length '${params.peptide_min_length}:${params.peptide_max_length}'", - "-delete_unreferenced_peptide_hits", - (params.fdr_threshold == '0.01') ? "-score:pep 0.05" : "-score:pep " + params.fdr_threshold + "-id:add_metavalues 0" ].join(' ').trim() publishDir = [ - path: { "${params.outdir}/Intermediate_Results" }, + path: { "${params.outdir}/" }, mode: 'copy', - pattern: '*.idXML' + pattern: '*.tsv' ] } + + withName: 'OPENMS_TEXTEXPORTER_PSMS' { + publishDir = [ + path: { "${params.outdir}/PSMs" }, + mode: 'copy', + pattern: '*.tsv' + ] + } +} + + +// Refine on predicted subset +process { + + if ( params.refine_fdr_on_predicted_subset && params.predict_class_1 ) { + withName: OPENMS_MZTABEXPORTERPERC { + ext.prefix = { "${meta.sample}_${meta.condition}_all_ids_merged_psm_perc_filtered" } + publishDir = [ + path: { "${params.outdir}/Intermediate_Results" }, + mode: 'copy', + pattern: '*.mzTab' + ] + } + + withName: OPENMS_MZTABEXPORTERPSM { + ext.prefix = { "${meta.sample}_${meta.condition}_all_ids_merged" } + publishDir = [ + path: { "${params.outdir}/Intermediate_Results" }, + mode: 'copy', + pattern: '*.mzTab' + ] + } + + withName: MHCFLURRY_PREDICTPSMS { + publishDir = [ enabled: false ] + } + + withName: REFINE_FDR:OPENMS_PERCOLATORADAPTER { + ext.prefix = { "${meta.id}_perc_subset" } + ext.args = [ + "-seed 4711", + "-trainFDR 0.05", + "-testFDR 0.05", + "-enzyme no_enzyme", + "-subset_max_train ${params.subset_max_train}", + "-doc ${params.description_correct_features} ", + (params.fdr_level != 'psm-level-fdrs') ? "-" + params.fdr_level : "" + ].join(' ').trim() + publishDir = [ + path: { "${params.outdir}/Intermediate_Results" }, + mode: 'copy', + pattern: '*.idXML' + ] + } + + withName: OPENMS_IDFILTER_PSMS { + ext.prefix = { "${meta.id}_pred_filtered" } + ext.args = [ + "-whitelist:ignore_modifications", + "-whitelist:peptides" + ].join(' ').trim() + publishDir = [ + path: { "${params.outdir}/Intermediate_Results" }, + mode: 'copy', + pattern: '*.idXML' + ] + } + + withName: OPENMS_IDFILTER_REFINED { + ext.args = [ + "-remove_decoys", + "-precursor:length '${params.peptide_min_length}:${params.peptide_max_length}'", + "-delete_unreferenced_peptide_hits", + (params.fdr_threshold == '0.01') ? "-score:pep 0.05" : "-score:pep " + params.fdr_threshold + ].join(' ').trim() + publishDir = [ + path: { "${params.outdir}/Intermediate_Results" }, + mode: 'copy', + pattern: '*.idXML' + ] + } } } @@ -237,40 +237,40 @@ process { if ( params.predict_class_1 & !params.skip_quantification ) { withName: MHCFLURRY_PREDICTPEPTIDESCLASS1 { - publishDir = [ - path: { "${params.outdir}/class_1_bindings" }, - mode: 'copy', - pattern: '*.fasta' - ] - } + publishDir = [ + path: { "${params.outdir}/class_1_bindings" }, + mode: 'copy', + pattern: '*.fasta' + ] + } } if ( params.predict_class_1 & !params.skip_quantification & params.include_proteins_from_vcf ) { withName: PREDICT_POSSIBLE_CLASS1_NEOEPITOPES { - ext.prefix = { "${meta}_vcf_neoepitopes" } - publishDir = [ - path: {"${params.outdir}/class_1_bindings"}, - mode: 'copy', - pattern: '*.csv' - ] - } + ext.prefix = { "${meta}_vcf_neoepitopes" } + publishDir = [ + path: {"${params.outdir}/class_1_bindings"}, + mode: 'copy', + pattern: '*.csv' + ] + } withName: RESOLVE_FOUND_CLASS1_NEOEPITOPES { - ext.prefix = { "${meta.sample}_found_neoepitopes" } - publishDir = [ - path: {"${params.outdir}/class_1_bindings"}, - mode: 'copy', - pattern: '*.csv' - ] - } + ext.prefix = { "${meta.sample}_found_neoepitopes" } + publishDir = [ + path: {"${params.outdir}/class_1_bindings"}, + mode: 'copy', + pattern: '*.csv' + ] + } withName: MHCFLURRY_PREDICTNEOEPITOPESCLASS1 { - publishDir = [ - path: {"${params.outdir}/class_1_bindings"}, - mode: 'copy', - pattern: '*.csv' - ] - } + publishDir = [ + path: {"${params.outdir}/class_1_bindings"}, + mode: 'copy', + pattern: '*.csv' + ] + } } } @@ -280,73 +280,73 @@ process { if ( params.predict_class_2 & !params.skip_quantification ) { withName: MHCNUGGETS_PEPTIDESCLASS2PRE { - publishDir = [ - path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', - pattern: '*_peptides' - ] - } + publishDir = [ + path: { "${params.outdir}/class_2_bindings" }, + mode: 'copy', + pattern: '*_peptides' + ] + } withName: MHCNUGGETS_PREDICTPEPTIDESCLASS2 { - publishDir = [ - path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', - pattern: '*_class_2' - ] - } + publishDir = [ + path: { "${params.outdir}/class_2_bindings" }, + mode: 'copy', + pattern: '*_class_2' + ] + } withName: MHCNUGGETS_PEPTIDESCLASS2POST { - publishDir = [ - path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', - pattern: '*.csv' - ] - } + publishDir = [ + path: { "${params.outdir}/class_2_bindings" }, + mode: 'copy', + pattern: '*.csv' + ] + } } if ( params.predict_class_2 & !params.skip_quantification & params.include_proteins_from_vcf ) { withName: PREDICT_POSSIBLE_CLASS2_NEOEPITOPES { - publishDir = [ - path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', - pattern: '*.csv' - ] - } + publishDir = [ + path: { "${params.outdir}/class_2_bindings" }, + mode: 'copy', + pattern: '*.csv' + ] + } withName: RESOLVE_FOUND_CLASS2_NEOEPITOPES { - publishDir = [ - path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', - pattern: '*.csv' - ] - } + publishDir = [ + path: { "${params.outdir}/class_2_bindings" }, + mode: 'copy', + pattern: '*.csv' + ] + } withName: MHCNUGGETS_NEOEPITOPESCLASS2PRE { - ext.prefix = { "${meta}_mhcnuggets_preprocessed" } - publishDir = [ - path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', - pattern: '*${ext.prefix}' - ] - } + ext.prefix = { "${meta}_mhcnuggets_preprocessed" } + publishDir = [ + path: { "${params.outdir}/class_2_bindings" }, + mode: 'copy', + pattern: '*${ext.prefix}' + ] + } withName: MHCNUGGETS_PREDICTNEOEPITOPESCLASS2 { - ext.prefix = { "${meta}_predicted_neoepitopes_class_2" } - publishDir = [ - path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', - pattern: '*${ext.prefix}' - ] - } + ext.prefix = { "${meta}_predicted_neoepitopes_class_2" } + publishDir = [ + path: { "${params.outdir}/class_2_bindings" }, + mode: 'copy', + pattern: '*${ext.prefix}' + ] + } withName: MHCNUGGETS_NEOEPITOPESCLASS2POST { - publishDir = [ - path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', - pattern: '*.csv' - ] - } + publishDir = [ + path: { "${params.outdir}/class_2_bindings" }, + mode: 'copy', + pattern: '*.csv' + ] + } } } @@ -355,25 +355,25 @@ process { if ( params.predict_RT ) { withName: OPENMS_RTMODEL { - publishDir = [ enabled: false ] - } + publishDir = [ enabled: false ] + } withName: OPENMS_RTPREDICT_FOUND_PEPTIDES { - ext.prefix = { "${meta.sample}_id_files_for_rt_prediction_RTpredicted" } - publishDir = [ - path: { "${params.outdir}/RT_prediction" }, - mode: 'copy', - pattern: '*.csv' - ] - } + ext.prefix = { "${meta.sample}_id_files_for_rt_prediction_RTpredicted" } + publishDir = [ + path: { "${params.outdir}/RT_prediction" }, + mode: 'copy', + pattern: '*.csv' + ] + } withName: OPENMS_RTPREDICT_NEOEPITOPES { - ext.prefix = { "${meta.sample}_txt_file_for_rt_prediction_RTpredicted" } - publishDir = [ - path: { "${params.outdir}/RT_prediction" }, - mode: 'copy', - pattern: '*.csv' - ] - } + ext.prefix = { "${meta.sample}_txt_file_for_rt_prediction_RTpredicted" } + publishDir = [ + path: { "${params.outdir}/RT_prediction" }, + mode: 'copy', + pattern: '*.csv' + ] + } } } diff --git a/docs/output.md b/docs/output.md index 340eca58..94a46789 100644 --- a/docs/output.md +++ b/docs/output.md @@ -61,13 +61,13 @@ PEPTIDE contains information about peptide hits that were identified and corresp Output files - `Intermediate_Results/` - - `*merged_psm_perc_filtered.mzTab` : If `--refine_fdr_on_predicted_subset` is specified, consists of the hits (filtered by q-value) - - `*.mztab` : mztab file generated by the OpenMS MzTabExporter command, the community standard format for sharing mass spectrometry search results - - `*.featureXML` : If `--skip_quantification` is not specified, then this file is generated by the OpenMS FeatureFinderIdentification command - - `*fdr_filtered.idXML`: If `--skip_quantification` is not specified, then this file is generated by the OpenMS IDFilter command - - `*all_ids_merged_psm_perc*.idXML`: idXML files are generated when `--refine_fdr_on_predicted_subset` is specified - - `*peptide_filtered.idXML`: If `--refine_fdr_on_predicted_subset` is specified, then this file consists of the PSMs prediction outcome - - `*perc_subset.idXML`: If `--refine_fdr_on_predicted_subset` is specified, then this file is the outcome of the second percolator run, generated by the OpenMS PercolatorAdapter + - `*merged_psm_perc_filtered.mzTab` : If `--refine_fdr_on_predicted_subset` is specified, consists of the hits (filtered by q-value) + - `*.mztab` : mztab file generated by the OpenMS MzTabExporter command, the community standard format for sharing mass spectrometry search results + - `*.featureXML` : If `--skip_quantification` is not specified, then this file is generated by the OpenMS FeatureFinderIdentification command + - `*fdr_filtered.idXML`: If `--skip_quantification` is not specified, then this file is generated by the OpenMS IDFilter command + - `*all_ids_merged_psm_perc*.idXML`: idXML files are generated when `--refine_fdr_on_predicted_subset` is specified + - `*peptide_filtered.idXML`: If `--refine_fdr_on_predicted_subset` is specified, then this file consists of the PSMs prediction outcome + - `*perc_subset.idXML`: If `--refine_fdr_on_predicted_subset` is specified, then this file is the outcome of the second percolator run, generated by the OpenMS PercolatorAdapter @@ -104,10 +104,10 @@ These CSV files list all of the theoretically possible neoepitope sequences from Output files - `class_1_bindings/` - - `*found_neoepitopes_class1.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_1` are specified + - `*found_neoepitopes_class1.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_1` are specified - `class_2_bindings/` - - `*found_neoepitopes_class2.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_2` are specified + - `*found_neoepitopes_class2.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_2` are specified @@ -124,10 +124,10 @@ peptide sequence geneID Output files - `class_1_bindings/` - - `*vcf_neoepitopes_class1.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_1` are specified + - `*vcf_neoepitopes_class1.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_1` are specified - `class_2_bindings/` - - `*vcf_neoepitopes_class2.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_2` are specified + - `*vcf_neoepitopes_class2.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_2` are specified @@ -146,10 +146,10 @@ Sequence Antigen ID Variants Output files - `class_1_bindings/` - - `*predicted_peptides_class_1.csv`: If `--predict_class_1` is specified, then this CSV is generated + - `*predicted_peptides_class_1.csv`: If `--predict_class_1` is specified, then this CSV is generated - `class_2_bindings/` - - `*predicted_peptides_class_2.csv`: If `--predict_class_2` is specified, then this CSV is generated + - `*predicted_peptides_class_2.csv`: If `--predict_class_2` is specified, then this CSV is generated @@ -166,8 +166,8 @@ peptide allele prediction prediction_low prediction_high prediction_pe Output files - `RT_prediction` - - `*id_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time found peptides are provided - - `*txt_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time predicted neoepitopes are provided + - `*id_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time found peptides are provided + - `*txt_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time predicted neoepitopes are provided @@ -177,9 +177,9 @@ peptide allele prediction prediction_low prediction_high prediction_pe Output files - `multiqc/` - - `multiqc_report.html`: a standalone HTML file that can be viewed in your web browser. - - `multiqc_data/`: directory containing parsed statistics from the different tools used in the pipeline. - - `multiqc_plots/`: directory containing static images from the report in various formats. + - `multiqc_report.html`: a standalone HTML file that can be viewed in your web browser. + - `multiqc_data/`: directory containing parsed statistics from the different tools used in the pipeline. + - `multiqc_plots/`: directory containing static images from the report in various formats. @@ -193,9 +193,9 @@ Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQ Output files - `pipeline_info/` - - Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. - - Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. - - Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`. + - Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. + - Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. + - Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`. diff --git a/nextflow.config b/nextflow.config index c7ad62a7..1eced10c 100644 --- a/nextflow.config +++ b/nextflow.config @@ -8,15 +8,13 @@ // Global default params, used in configs params { - - // Workflow flags - help = false - input = "sample_sheet.tsv" + // Input options + input = null outdir = null fasta = "data/*.fasta" // References - genomes = null + genome = null // Workflow options allele_sheet = null @@ -24,7 +22,6 @@ params { predict_class_1 = false predict_class_2 = false refine_fdr_on_predicted_subset = false - schema_ignore_params = 'genomes' skip_decoy_generation = false subset_affinity_threshold = 500 variant_annotation_style = "SNPEFF" @@ -32,14 +29,6 @@ params { variant_indel_filter = false variant_reference = "GRCH38" variant_snp_filter = false - - // MultiQC options - skip_multiqc = false - multiqc_config = null - multiqc_title = null - max_multiqc_email_size = '25.MB' - - // Workflow defaults activation_method = 'ALL' description_correct_features = 0 digest_mass_range = "800:2500" @@ -67,7 +56,6 @@ params { skip_quantification = false spectrum_batch_size = 500 subset_max_train = 0 - tracedir = "${params.outdir}/pipeline_info" use_x_ions = false use_z_ions = false use_a_ions = false @@ -76,9 +64,15 @@ params { variable_mods = 'Oxidation (M)' vcf_sheet = null + // MultiQC options + skip_multiqc = false + multiqc_config = null + multiqc_title = null + max_multiqc_email_size = '25.MB' + // Boilerplate options - outdir = './results' tracedir = "${params.outdir}/pipeline_info" + publish_dir_mode = 'copy' email = null email_on_fail = null plaintext_email = false @@ -86,6 +80,7 @@ params { help = false validate_params = true show_hidden_params = false + schema_ignore_params = 'genomes' enable_conda = false // Config options diff --git a/subworkflows/local/input_check.nf b/subworkflows/local/input_check.nf index 710097bb..a8087c6d 100644 --- a/subworkflows/local/input_check.nf +++ b/subworkflows/local/input_check.nf @@ -9,11 +9,16 @@ workflow INPUT_CHECK { samplesheet // file: /path/to/samplesheet.csv main: + //SAMPLESHEET_CHECK ( samplesheet ) + // .csv + // .splitCsv ( header:true, sep:"," ) + // .map { get_samplesheet_paths(it) } + // .set { reads } SAMPLESHEET_CHECK ( samplesheet ) - .csv - .splitCsv ( header:true, sep:"\t" ) - .map { get_samplesheet_paths(it) } - .set { reads } + .csv + .splitCsv ( header:true, sep:',' ) + .map { create_ms_channel(it) } + .set { reads } emit: reads // channel: [ val(meta), [ reads ] ] @@ -21,18 +26,20 @@ workflow INPUT_CHECK { } // Function to get list of [ meta, filenames ] -def get_samplesheet_paths(LinkedHashMap row) { +def create_ms_channel(LinkedHashMap row) { def meta = [:] meta.id = row.ID meta.sample = row.Sample meta.condition = row.Condition - meta.ext = row.FileExt - // add path(s) of the fastq file(s) to the meta map - def array = [] - if (!file(row.Filename).exists()) { - exit 1, "ERROR: Please check input samplesheet -> MS file does not exist!\n${row.Filename}" + meta.ext = row.Extension + + // add path(s) of the data file(s) to the meta map + def ms_meta = [] + + if (!file(row.ReplicateFileName).exists()) { + exit 1, "ERROR: Please check input samplesheet -> MS file does not exist!\n${row.ReplicateFileName}" } else { - array = [ meta, file(row.Filename) ] + ms_meta = [ meta, [ file(row.ReplicateFileName) ] ] } - return array + return ms_meta } diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index 1a5636e1..197c5315 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -45,7 +45,7 @@ if (params.predict_class_1 || params.predict_class_2) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -ch_multiqc_config = file("$projectDir/assets/multiqc_config.yaml", checkIfExists: true) +ch_multiqc_config = file("$projectDir/assets/multiqc_config.yml", checkIfExists: true) ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath(params.multiqc_config) : Channel.empty() /* @@ -107,12 +107,10 @@ workflow MHCQUANT { meta, filename -> raw : meta.ext == 'raw' return [ meta, filename ] - mzml : meta.ext == 'mzml' + mzml : meta.ext == 'mzml' return [ meta, filename ] other : true } - .set { ms_files } - // A warning message will be given when the format differs from the '.raw' or '.mzML' extention - ms_files.other.subscribe { row -> log.warn("Unknown format for entry " + row[3] + " in provided sample sheet, line will be ignored."); exit 1 } + .set { ms_files } // Input fasta file Channel.fromPath( params.fasta ) From 98e44a7dce817df18a433647e8dfc431c7017267 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 25 Mar 2022 10:59:02 +0100 Subject: [PATCH 42/88] Cleanup: linting --- .github/CONTRIBUTING.md | 15 +-- .github/ISSUE_TEMPLATE/bug_report.yml | 6 ++ .github/PULL_REQUEST_TEMPLATE.md | 7 +- .github/workflows/branch.yml | 4 +- .github/workflows/linting.yml | 85 ++++++++++++--- .github/workflows/linting_comment.yml | 2 +- assets/email_template.html | 142 ++++++++------------------ docs/README.md | 8 +- lib/NfcoreTemplate.groovy | 2 +- 9 files changed, 140 insertions(+), 131 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index e93e473a..1312f3db 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -15,7 +15,8 @@ Contributions to the code are even more welcome ;) If you'd like to write some code for nf-core/mhcquant, the standard workflow is as follows: -1. Check that there isn't already an issue about your idea in the [nf-core/mhcquant issues](https://github.com/nf-core/mhcquant/issues) to avoid duplicating work. If there isn't one already, please create one so that others know you're working on this +1. Check that there isn't already an issue about your idea in the [nf-core/mhcquant issues](https://github.com/nf-core/mhcquant/issues) to avoid duplicating work + * If there isn't one already, please create one so that others know you're working on this 2. [Fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the [nf-core/mhcquant repository](https://github.com/nf-core/mhcquant) to your GitHub account 3. Make the necessary changes / additions within your forked repository following [Pipeline conventions](#pipeline-contribution-conventions) 4. Use `nf-core schema build` and add any new parameters to the pipeline JSON schema (requires [nf-core tools](https://github.com/nf-core/tools) >= 1.10). @@ -48,9 +49,9 @@ These tests are run both with the latest available version of `Nextflow` and als :warning: Only in the unlikely and regretful event of a release happening with a bug. -- On your own fork, make a new branch `patch` based on `upstream/master`. -- Fix the bug, and bump version (X.Y.Z+1). -- A PR should be made on `master` from patch to directly this particular bug. +* On your own fork, make a new branch `patch` based on `upstream/master`. +* Fix the bug, and bump version (X.Y.Z+1). +* A PR should be made on `master` from patch to directly this particular bug. ## Getting help @@ -72,7 +73,7 @@ If you wish to contribute a new step, please use the following coding standards: 6. Add sanity checks and validation for all relevant parameters. 7. Perform local tests to validate that the new code works as expected. 8. If applicable, add a new test command in `.github/workflow/ci.yml`. -9. Update MultiQC config `assets/multiqc_config.yml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module. +9. Update MultiQC config `assets/multiqc_config.yaml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module. 10. Add a description of the output files and if relevant any appropriate images from the MultiQC report to `docs/output.md`. ### Default values @@ -91,8 +92,8 @@ The process resources can be passed on to the tool dynamically within the proces Please use the following naming schemes, to make it easy to understand what is going where. -- initial process channel: `ch_output_from_` -- intermediate and terminal channels: `ch__for_` +* initial process channel: `ch_output_from_` +* intermediate and terminal channels: `ch__for_` ### Nextflow version bumping diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index d39e7a00..11baf3ec 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -2,12 +2,15 @@ name: Bug report description: Report something that is broken or incorrect labels: bug body: + - type: markdown attributes: value: | Before you post this issue, please check the documentation: + - [nf-core website: troubleshooting](https://nf-co.re/usage/troubleshooting) - [nf-core/mhcquant pipeline documentation](https://nf-co.re/mhcquant/usage) + - type: textarea id: description attributes: @@ -24,7 +27,9 @@ body: render: console placeholder: | $ nextflow run ... + Some output where something broke + - type: textarea id: files attributes: @@ -32,6 +37,7 @@ body: description: | Please drag and drop the relevant files here. Create a `.zip` archive if the extension is not allowed. Your verbose log file `.nextflow.log` is often useful _(this is a hidden file in the directory where you launched the pipeline)_ as well as custom Nextflow configuration files. + - type: textarea id: system attributes: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 36068f81..eeb1e55f 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -16,10 +16,11 @@ Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/mhcq - [ ] This comment contains a description of changes (with reason). - [ ] If you've fixed a bug or added code that should be tested, add tests! - - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/mhcquant/tree/master/.github/CONTRIBUTING.md) - - [ ] If necessary, also make a PR on the nf-core/mhcquant _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. + - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/mhcquant/tree/master/.github/CONTRIBUTING.md) + - [ ] If necessary, also make a PR on the nf-core/mhcquant _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 (`nextflow run . -profile test,docker --outdir `). +- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker` --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. - [ ] `CHANGELOG.md` is updated. +- [ ] `README.md` is updated (including new tool citations and authors/contributors). diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index b9dd4db1..6f399bfa 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -13,7 +13,7 @@ jobs: - name: Check PRs if: github.repository == 'nf-core/mhcquant' run: | - "{ [[ ${{github.event.pull_request.head.repo.full_name }} == nf-core/mhcquant ]] && [[ $GITHUB_HEAD_REF = "dev" ]]; } || [[ $GITHUB_HEAD_REF == "patch" ]]" + { [[ ${{github.event.pull_request.head.repo.full_name }} == nf-core/mhcquant ]] && [[ $GITHUB_HEAD_REF = "dev" ]]; } || [[ $GITHUB_HEAD_REF == "patch" ]] # If the above check failed, post a comment on the PR explaining the failure @@ -43,4 +43,4 @@ jobs: Thanks again for your contribution! repo-token: ${{ secrets.GITHUB_TOKEN }} allow-repeats: false -# + diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index e9cf5de3..fda934c0 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -1,7 +1,6 @@ name: nf-core linting # This workflow is triggered on pushes and PRs to the repository. -# It runs the `nf-core lint` and markdown lint tests to ensure -# that the code meets the nf-core guidelines. +# It runs the `nf-core lint` and markdown lint tests to ensure that the code meets the nf-core guidelines on: push: pull_request: @@ -9,6 +8,42 @@ on: types: [published] jobs: + Markdown: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + - name: Install markdownlint + run: npm install -g markdownlint-cli + - name: Run Markdownlint + run: markdownlint . + + # If the above check failed, post a comment on the PR explaining the failure + - name: Post PR comment + if: failure() + uses: mshick/add-pr-comment@v1 + with: + message: | + ## Markdown linting is failing + + To keep the code consistent with lots of contributors, we run automated code consistency checks. + To fix this CI test, please run: + + * Install `markdownlint-cli` + * On Mac: `brew install markdownlint-cli` + * Everything else: [Install `npm`](https://www.npmjs.com/get-npm) then [install `markdownlint-cli`](https://www.npmjs.com/package/markdownlint-cli) (`npm install -g markdownlint-cli`) + * Fix the markdown errors + * Automatically: `markdownlint . --fix` + * Manually resolve anything left from `markdownlint .` + + Once you push these changes the test should pass, and you can hide this comment :+1: + + We highly recommend setting up markdownlint in your code editor so that this formatting is done automatically on save. Ask about it on Slack for help! + + Thanks again for your contribution! + repo-token: ${{ secrets.GITHUB_TOKEN }} + allow-repeats: false + EditorConfig: runs-on: ubuntu-latest steps: @@ -20,24 +55,49 @@ jobs: run: npm install -g editorconfig-checker - name: Run ECLint check - run: editorconfig-checker -exclude README.md $(find .* -type f | grep -v '.git\|.py\|.md\|json\|yml\|yaml\|html\|css\|work\|.nextflow\|build\|nf_core.egg-info\|log.txt\|Makefile') + run: editorconfig-checker -exclude README.md $(git ls-files | grep -v test) - Prettier: + YAML: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - name: Checkout + uses: actions/checkout@master + - name: 'Yamllint' + uses: karancode/yamllint-github-action@master + with: + yamllint_file_or_dir: '.' + yamllint_config_filepath: '.yamllint.yml' - - uses: actions/setup-node@v2 + # If the above check failed, post a comment on the PR explaining the failure + - name: Post PR comment + if: failure() + uses: mshick/add-pr-comment@v1 + with: + message: | + ## YAML linting is failing - - name: Install Prettier - run: npm install -g prettier + To keep the code consistent with lots of contributors, we run automated code consistency checks. + To fix this CI test, please run: - - name: Run Prettier --check - run: prettier --check ${GITHUB_WORKSPACE} + * Install `yamllint` + * Install `yamllint` following [this](https://yamllint.readthedocs.io/en/stable/quickstart.html#installing-yamllint) + instructions or alternative install it in your [conda environment](https://anaconda.org/conda-forge/yamllint) + * Fix the markdown errors + * Run the test locally: `yamllint $(find . -type f -name "*.yml" -o -name "*.yaml") -c ./.yamllint.yml` + * Fix any reported errors in your YAML files + + Once you push these changes the test should pass, and you can hide this comment :+1: + + We highly recommend setting up yaml-lint in your code editor so that this formatting is done automatically on save. Ask about it on Slack for help! + + Thanks again for your contribution! + repo-token: ${{ secrets.GITHUB_TOKEN }} + allow-repeats: false nf-core: runs-on: ubuntu-latest steps: + - name: Check out pipeline code uses: actions/checkout@v2 @@ -50,8 +110,8 @@ jobs: - uses: actions/setup-python@v1 with: - python-version: "3.6" - architecture: "x64" + python-version: '3.6' + architecture: 'x64' - name: Install dependencies run: | @@ -79,4 +139,3 @@ jobs: lint_results.md PR_number.txt -# diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index b4dc6649..44d72994 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -27,4 +27,4 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} number: ${{ steps.pr_number.outputs.pr_number }} path: linting-logs/lint_results.md -# + diff --git a/assets/email_template.html b/assets/email_template.html index 27035c21..55411550 100644 --- a/assets/email_template.html +++ b/assets/email_template.html @@ -1,111 +1,53 @@ - - - - + + + + - - - nf-core/mhcquant Pipeline Report - - -
    - + + nf-core/mhcquant Pipeline Report + + +
    -

    nf-core/mhcquant v${version}

    -

    Run Name: $runName

    + - <% if (!success){ out << """ -
    -

    nf-core/mhcquant execution completed unsuccessfully!

    +

    nf-core/mhcquant v${version}

    +

    Run Name: $runName

    + +<% if (!success){ + out << """ +
    +

    nf-core/mhcquant execution completed unsuccessfully!

    The exit status of the task that caused the workflow execution to fail was: $exitStatus.

    The full error message was:

    -
    ${errorReport}
    -
    - """ } else { out << """ -
    +
    ${errorReport}
    +
    + """ +} else { + out << """ +
    nf-core/mhcquant execution completed successfully! -
    - """ } %> +
    + """ +} +%> -

    The workflow was completed at $dateComplete (duration: $duration)

    -

    The command used to launch the workflow was as follows:

    -
    -$commandLine
    +

    The workflow was completed at $dateComplete (duration: $duration)

    +

    The command used to launch the workflow was as follows:

    +
    $commandLine
    -

    Pipeline Configuration:

    - - - <% out << summary.collect{ k,v -> " - - - - - " }.join("\n") %> - -
    - $k - -
    $v
    -
    +

    Pipeline Configuration:

    + + + <% out << summary.collect{ k,v -> "" }.join("\n") %> + +
    $k
    $v
    -

    nf-core/mhcquant

    -

    https://github.com/nf-core/mhcquant

    -
    - +

    nf-core/mhcquant

    +

    https://github.com/nf-core/mhcquant

    + +
    + + diff --git a/docs/README.md b/docs/README.md index 88009482..03f97690 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,9 +2,9 @@ The nf-core/mhcquant documentation is split into the following pages: -- [Usage](usage.md) - - An overview of how the pipeline works, how to run it and a description of all of the different command-line flags. -- [Output](output.md) - - An overview of the different results produced by the pipeline and how to interpret them. +* [Usage](usage.md) + * An overview of how the pipeline works, how to run it and a description of all of the different command-line flags. +* [Output](output.md) + * An overview of the different results produced by the pipeline and how to interpret them. You can find a lot more documentation about installing, configuring and running nf-core pipelines on the website: [https://nf-co.re](https://nf-co.re) diff --git a/lib/NfcoreTemplate.groovy b/lib/NfcoreTemplate.groovy index 860281af..2fc0a9b9 100755 --- a/lib/NfcoreTemplate.groovy +++ b/lib/NfcoreTemplate.groovy @@ -21,7 +21,7 @@ class NfcoreTemplate { // // Warn if a -profile or Nextflow config has not been provided to run the pipeline // - public static void checkConfigProvided(workflow, log) { + public static void checkConfigProvided(workflow, log) { if (workflow.profile == 'standard' && workflow.configFiles.size() <= 1) { log.warn "[$workflow.manifest.name] You are attempting to run the pipeline without any custom configuration!\n\n" + "This will be dependent on your local compute environment but can be achieved via one or more of the following:\n" + From 0b02022f21888fb87a046fa930cc0a90a4fbc7b6 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 25 Mar 2022 11:01:12 +0100 Subject: [PATCH 43/88] Cleanup: linting --- .github/CONTRIBUTING.md | 15 ++- .github/ISSUE_TEMPLATE/bug_report.yml | 1 - .github/PULL_REQUEST_TEMPLATE.md | 7 +- .github/workflows/branch.yml | 5 +- .github/workflows/linting.yml | 85 +++------------ .github/workflows/linting_comment.yml | 3 +- .prettierrc.yml | 2 +- .yamllint.yml | 6 -- assets/email_template.html | 142 ++++++++++++++++++-------- docs/README.md | 8 +- nextflow.config | 3 - 11 files changed, 131 insertions(+), 146 deletions(-) delete mode 100644 .yamllint.yml diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 1312f3db..e93e473a 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -15,8 +15,7 @@ Contributions to the code are even more welcome ;) If you'd like to write some code for nf-core/mhcquant, the standard workflow is as follows: -1. Check that there isn't already an issue about your idea in the [nf-core/mhcquant issues](https://github.com/nf-core/mhcquant/issues) to avoid duplicating work - * If there isn't one already, please create one so that others know you're working on this +1. Check that there isn't already an issue about your idea in the [nf-core/mhcquant issues](https://github.com/nf-core/mhcquant/issues) to avoid duplicating work. If there isn't one already, please create one so that others know you're working on this 2. [Fork](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) the [nf-core/mhcquant repository](https://github.com/nf-core/mhcquant) to your GitHub account 3. Make the necessary changes / additions within your forked repository following [Pipeline conventions](#pipeline-contribution-conventions) 4. Use `nf-core schema build` and add any new parameters to the pipeline JSON schema (requires [nf-core tools](https://github.com/nf-core/tools) >= 1.10). @@ -49,9 +48,9 @@ These tests are run both with the latest available version of `Nextflow` and als :warning: Only in the unlikely and regretful event of a release happening with a bug. -* On your own fork, make a new branch `patch` based on `upstream/master`. -* Fix the bug, and bump version (X.Y.Z+1). -* A PR should be made on `master` from patch to directly this particular bug. +- On your own fork, make a new branch `patch` based on `upstream/master`. +- Fix the bug, and bump version (X.Y.Z+1). +- A PR should be made on `master` from patch to directly this particular bug. ## Getting help @@ -73,7 +72,7 @@ If you wish to contribute a new step, please use the following coding standards: 6. Add sanity checks and validation for all relevant parameters. 7. Perform local tests to validate that the new code works as expected. 8. If applicable, add a new test command in `.github/workflow/ci.yml`. -9. Update MultiQC config `assets/multiqc_config.yaml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module. +9. Update MultiQC config `assets/multiqc_config.yml` so relevant suffixes, file name clean up and module plots are in the appropriate order. If applicable, add a [MultiQC](https://https://multiqc.info/) module. 10. Add a description of the output files and if relevant any appropriate images from the MultiQC report to `docs/output.md`. ### Default values @@ -92,8 +91,8 @@ The process resources can be passed on to the tool dynamically within the proces Please use the following naming schemes, to make it easy to understand what is going where. -* initial process channel: `ch_output_from_` -* intermediate and terminal channels: `ch__for_` +- initial process channel: `ch_output_from_` +- intermediate and terminal channels: `ch__for_` ### Nextflow version bumping diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 11baf3ec..93fe63de 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -2,7 +2,6 @@ name: Bug report description: Report something that is broken or incorrect labels: bug body: - - type: markdown attributes: value: | diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index eeb1e55f..d8c70ebe 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -10,16 +10,15 @@ Remember that PRs should be made against the dev branch, unless you're preparing Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/mhcquant/tree/master/.github/CONTRIBUTING.md) --> - ## PR checklist - [ ] This comment contains a description of changes (with reason). - [ ] If you've fixed a bug or added code that should be tested, add tests! - - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/mhcquant/tree/master/.github/CONTRIBUTING.md) - - [ ] If necessary, also make a PR on the nf-core/mhcquant _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. + - [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/mhcquant/tree/master/.github/CONTRIBUTING.md) + - [ ] If necessary, also make a PR on the nf-core/mhcquant _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 (`nextflow run . -profile test,docker` --outdir `). +- [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). - [ ] Usage Documentation in `docs/usage.md` is updated. - [ ] Output Documentation in `docs/output.md` is updated. - [ ] `CHANGELOG.md` is updated. diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 6f399bfa..2759e501 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -13,8 +13,7 @@ jobs: - name: Check PRs if: github.repository == 'nf-core/mhcquant' run: | - { [[ ${{github.event.pull_request.head.repo.full_name }} == nf-core/mhcquant ]] && [[ $GITHUB_HEAD_REF = "dev" ]]; } || [[ $GITHUB_HEAD_REF == "patch" ]] - + "{ [[ ${{github.event.pull_request.head.repo.full_name }} == nf-core/mhcquant ]] && [[ $GITHUB_HEAD_REF = "dev" ]]; } || [[ $GITHUB_HEAD_REF == "patch" ]]" # If the above check failed, post a comment on the PR explaining the failure # NOTE - this doesn't currently work if the PR is coming from a fork, due to limitations in GitHub actions secrets @@ -43,4 +42,4 @@ jobs: Thanks again for your contribution! repo-token: ${{ secrets.GITHUB_TOKEN }} allow-repeats: false - +# diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index fda934c0..e9cf5de3 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -1,6 +1,7 @@ name: nf-core linting # This workflow is triggered on pushes and PRs to the repository. -# It runs the `nf-core lint` and markdown lint tests to ensure that the code meets the nf-core guidelines +# It runs the `nf-core lint` and markdown lint tests to ensure +# that the code meets the nf-core guidelines. on: push: pull_request: @@ -8,42 +9,6 @@ on: types: [published] jobs: - Markdown: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v2 - - name: Install markdownlint - run: npm install -g markdownlint-cli - - name: Run Markdownlint - run: markdownlint . - - # If the above check failed, post a comment on the PR explaining the failure - - name: Post PR comment - if: failure() - uses: mshick/add-pr-comment@v1 - with: - message: | - ## Markdown linting is failing - - To keep the code consistent with lots of contributors, we run automated code consistency checks. - To fix this CI test, please run: - - * Install `markdownlint-cli` - * On Mac: `brew install markdownlint-cli` - * Everything else: [Install `npm`](https://www.npmjs.com/get-npm) then [install `markdownlint-cli`](https://www.npmjs.com/package/markdownlint-cli) (`npm install -g markdownlint-cli`) - * Fix the markdown errors - * Automatically: `markdownlint . --fix` - * Manually resolve anything left from `markdownlint .` - - Once you push these changes the test should pass, and you can hide this comment :+1: - - We highly recommend setting up markdownlint in your code editor so that this formatting is done automatically on save. Ask about it on Slack for help! - - Thanks again for your contribution! - repo-token: ${{ secrets.GITHUB_TOKEN }} - allow-repeats: false - EditorConfig: runs-on: ubuntu-latest steps: @@ -55,49 +20,24 @@ jobs: run: npm install -g editorconfig-checker - name: Run ECLint check - run: editorconfig-checker -exclude README.md $(git ls-files | grep -v test) + run: editorconfig-checker -exclude README.md $(find .* -type f | grep -v '.git\|.py\|.md\|json\|yml\|yaml\|html\|css\|work\|.nextflow\|build\|nf_core.egg-info\|log.txt\|Makefile') - YAML: + Prettier: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@master - - name: 'Yamllint' - uses: karancode/yamllint-github-action@master - with: - yamllint_file_or_dir: '.' - yamllint_config_filepath: '.yamllint.yml' - - # If the above check failed, post a comment on the PR explaining the failure - - name: Post PR comment - if: failure() - uses: mshick/add-pr-comment@v1 - with: - message: | - ## YAML linting is failing - - To keep the code consistent with lots of contributors, we run automated code consistency checks. - To fix this CI test, please run: - - * Install `yamllint` - * Install `yamllint` following [this](https://yamllint.readthedocs.io/en/stable/quickstart.html#installing-yamllint) - instructions or alternative install it in your [conda environment](https://anaconda.org/conda-forge/yamllint) - * Fix the markdown errors - * Run the test locally: `yamllint $(find . -type f -name "*.yml" -o -name "*.yaml") -c ./.yamllint.yml` - * Fix any reported errors in your YAML files + - uses: actions/checkout@v2 - Once you push these changes the test should pass, and you can hide this comment :+1: + - uses: actions/setup-node@v2 - We highly recommend setting up yaml-lint in your code editor so that this formatting is done automatically on save. Ask about it on Slack for help! + - name: Install Prettier + run: npm install -g prettier - Thanks again for your contribution! - repo-token: ${{ secrets.GITHUB_TOKEN }} - allow-repeats: false + - name: Run Prettier --check + run: prettier --check ${GITHUB_WORKSPACE} nf-core: runs-on: ubuntu-latest steps: - - name: Check out pipeline code uses: actions/checkout@v2 @@ -110,8 +50,8 @@ jobs: - uses: actions/setup-python@v1 with: - python-version: '3.6' - architecture: 'x64' + python-version: "3.6" + architecture: "x64" - name: Install dependencies run: | @@ -139,3 +79,4 @@ jobs: lint_results.md PR_number.txt +# diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml index 44d72994..91c487a1 100644 --- a/.github/workflows/linting_comment.yml +++ b/.github/workflows/linting_comment.yml @@ -1,4 +1,3 @@ - name: nf-core linting comment # This workflow is triggered after the linting action is complete # It posts an automated comment to the PR, even if the PR is coming from a fork @@ -27,4 +26,4 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} number: ${{ steps.pr_number.outputs.pr_number }} path: linting-logs/lint_results.md - +# diff --git a/.prettierrc.yml b/.prettierrc.yml index 62ac3342..c81f9a76 100644 --- a/.prettierrc.yml +++ b/.prettierrc.yml @@ -1 +1 @@ -printWidth: 120 \ No newline at end of file +printWidth: 120 diff --git a/.yamllint.yml b/.yamllint.yml deleted file mode 100644 index d466deec..00000000 --- a/.yamllint.yml +++ /dev/null @@ -1,6 +0,0 @@ -extends: default - -rules: - document-start: disable - line-length: disable - truthy: disable diff --git a/assets/email_template.html b/assets/email_template.html index 55411550..27035c21 100644 --- a/assets/email_template.html +++ b/assets/email_template.html @@ -1,53 +1,111 @@ - - - - + + + + - - nf-core/mhcquant Pipeline Report - - -
    + + + nf-core/mhcquant Pipeline Report + + +
    + - +

    nf-core/mhcquant v${version}

    +

    Run Name: $runName

    -

    nf-core/mhcquant v${version}

    -

    Run Name: $runName

    - -<% if (!success){ - out << """ -
    -

    nf-core/mhcquant execution completed unsuccessfully!

    + <% if (!success){ out << """ +
    +

    nf-core/mhcquant execution completed unsuccessfully!

    The exit status of the task that caused the workflow execution to fail was: $exitStatus.

    The full error message was:

    -
    ${errorReport}
    -
    - """ -} else { - out << """ -
    +
    ${errorReport}
    +
    + """ } else { out << """ +
    nf-core/mhcquant execution completed successfully! -
    - """ -} -%> +
    + """ } %> -

    The workflow was completed at $dateComplete (duration: $duration)

    -

    The command used to launch the workflow was as follows:

    -
    $commandLine
    +

    The workflow was completed at $dateComplete (duration: $duration)

    +

    The command used to launch the workflow was as follows:

    +
    +$commandLine
    -

    Pipeline Configuration:

    - - - <% out << summary.collect{ k,v -> "" }.join("\n") %> - -
    $k
    $v
    +

    Pipeline Configuration:

    + + + <% out << summary.collect{ k,v -> " + + + + + " }.join("\n") %> + +
    + $k + +
    $v
    +
    -

    nf-core/mhcquant

    -

    https://github.com/nf-core/mhcquant

    - -
    - - +

    nf-core/mhcquant

    +

    https://github.com/nf-core/mhcquant

    +
    + diff --git a/docs/README.md b/docs/README.md index 03f97690..72c33b41 100644 --- a/docs/README.md +++ b/docs/README.md @@ -2,9 +2,9 @@ The nf-core/mhcquant documentation is split into the following pages: -* [Usage](usage.md) - * An overview of how the pipeline works, how to run it and a description of all of the different command-line flags. -* [Output](output.md) - * An overview of the different results produced by the pipeline and how to interpret them. +- [Usage](usage.md) + - An overview of how the pipeline works, how to run it and a description of all of the different command-line flags. +- [Output](output.md) + - An overview of the different results produced by the pipeline and how to interpret them. You can find a lot more documentation about installing, configuring and running nf-core pipelines on the website: [https://nf-co.re](https://nf-co.re) diff --git a/nextflow.config b/nextflow.config index 1eced10c..ab8528fa 100644 --- a/nextflow.config +++ b/nextflow.config @@ -13,9 +13,6 @@ params { outdir = null fasta = "data/*.fasta" - // References - genome = null - // Workflow options allele_sheet = null include_proteins_from_vcf = false From 3ba60f93549c96caebdb43134adcfb8e508ef973 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 25 Mar 2022 11:10:08 +0100 Subject: [PATCH 44/88] Fix: resolve editor config problems --- conf/modules.config | 10 +++++----- lib/WorkflowMhcquant.groovy | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index e30098af..4f32b75f 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -28,11 +28,11 @@ process { withName: CUSTOM_DUMPSOFTWAREVERSIONS { publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: params.publish_dir_mode, - pattern: '*_versions.yml' - ] - } + path: { "${params.outdir}/pipeline_info" }, + mode: params.publish_dir_mode, + pattern: '*_versions.yml' + ] + } } diff --git a/lib/WorkflowMhcquant.groovy b/lib/WorkflowMhcquant.groovy index 6b341d82..a68f8f4b 100644 --- a/lib/WorkflowMhcquant.groovy +++ b/lib/WorkflowMhcquant.groovy @@ -53,7 +53,6 @@ class WorkflowMhcquant { // Print a warning when the output directory is undefined // private static void outdirWarn(log) { - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ log.warn "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" + " Results into \'./results\'.\n" + " If you want to define a result directory, please use the --outdir option" + From b5719fe8db8a71a2b94a892ce6c197401b567ec6 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 25 Mar 2022 11:11:31 +0100 Subject: [PATCH 45/88] Fix: in line with prettier --- .github/workflows/ci.yml | 1 + .gitpod.yml | 18 +++++----- .nf-core.yml | 2 +- CHANGELOG.md | 6 ++-- CITATIONS.md | 15 +++++--- README.md | 43 +++++++++-------------- assets/multiqc_config.yml | 2 +- assets/schema_input.json | 7 +--- docs/output.md | 5 ++- docs/usage.md | 74 +++++++++++++++++++-------------------- modules.json | 2 +- nextflow_schema.json | 29 +++------------ 12 files changed, 90 insertions(+), 114 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2d367a71..9a4b30dd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -78,4 +78,5 @@ jobs: - name: Run pipeline with additional params run: | nextflow run ${GITHUB_WORKSPACE} -profile test,docker --predict_class_1 --predict_class_2 --predict_RT --outdir ./results + # diff --git a/.gitpod.yml b/.gitpod.yml index 3bef5480..fce205c7 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,14 +1,14 @@ image: nfcore/gitpod:latest vscode: - extensions: # based on nf-core.nf-core-extensionpack - - codezombiech.gitignore # Language support for .gitignore files + extensions: # based on nf-core.nf-core-extensionpack + - codezombiech.gitignore # Language support for .gitignore files # - cssho.vscode-svgviewer # SVG viewer - - davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code - - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed - - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files - - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar - - mechatroner.rainbow-csv # Highlight columns in csv files in different colors + - davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code + - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed + - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files + - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar + - mechatroner.rainbow-csv # Highlight columns in csv files in different colors # - nextflow.nextflow # Nextflow syntax highlighting - - oderwat.indent-rainbow # Highlight indentation level - - streetsidesoftware.code-spell-checker # Spelling checker for source code \ No newline at end of file + - oderwat.indent-rainbow # Highlight indentation level + - streetsidesoftware.code-spell-checker # Spelling checker for source code diff --git a/.nf-core.yml b/.nf-core.yml index b1a7f0e9..3805dc81 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -1 +1 @@ -repository_type: pipeline \ No newline at end of file +repository_type: pipeline diff --git a/CHANGELOG.md b/CHANGELOG.md index 249e873e..86e7dcfa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,9 +34,9 @@ ### `Dependencies` -| Dependency | Old version | New version | -| --------------------- | ----------- | ----------- | -| `fred2` | 2.0.6 | 2.0.7 | +| Dependency | Old version | New version | +| ---------- | ----------- | ----------- | +| `fred2` | 2.0.6 | 2.0.7 | ### `Deprecated` diff --git a/CITATIONS.md b/CITATIONS.md index 7e473e1f..844b5077 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -7,19 +7,24 @@ ## [Nextflow](https://pubmed.ncbi.nlm.nih.gov/28398311/) > Di Tommaso P, Chatzou M, Floden EW, Barja PP, Palumbo E, Notredame C. Nextflow enables reproducible computational workflows. Nat Biotechnol. 2017 Apr 11;35(4):316-319. doi: 10.1038/nbt.3820. PubMed PMID: 28398311. + ## Pipeline tools - [FRED2](https://pubmed.ncbi.nlm.nih.gov/27153717/) - > Schubert B, WalzerM, Brachvogel HP, Szolek A, Mohr C, Kohlbacher O, FRED 2: an immunoinformatics framework for Python, Bioinformatics, Volume 32, Issue 13, 1 July 2016, Pages 2044–2046. doi: 10.109 bioinformatics/btw113. PubMed PMID: 27153717; PubMed Central PMCID; PMC4920123. + + > Schubert B, WalzerM, Brachvogel HP, Szolek A, Mohr C, Kohlbacher O, FRED 2: an immunoinformatics framework for Python, Bioinformatics, Volume 32, Issue 13, 1 July 2016, Pages 2044–2046. doi: 10.109 bioinformatics/btw113. PubMed PMID: 27153717; PubMed Central PMCID; PMC4920123. - [MHCflurry](https://pubmed.ncbi.nlm.nih.gov/27153717/) - > O'Donnell TJ, Rubinsteyn A, Bonsack M, Riemer AB, Laserson U, Hammerbacher J. MHCflurry: Open-Source Class I MHC Binding Affinity Prediction. Cell Syst. 2018 Jul 25;7(1):129-132.e4. doi: 10.1016/j.cels.2018.05.014. Epub 2018 Jun 27. PMID: 29960884. + + > O'Donnell TJ, Rubinsteyn A, Bonsack M, Riemer AB, Laserson U, Hammerbacher J. MHCflurry: Open-Source Class I MHC Binding Affinity Prediction. Cell Syst. 2018 Jul 25;7(1):129-132.e4. doi: 10.1016/j.cels.2018.05.014. Epub 2018 Jun 27. PMID: 29960884. - [MHCnugget](https://pubmed.ncbi.nlm.nih.gov/27153717/) - > Shao XM, Bhattacharya R, Huang J, Sivakumar IKA, Tokheim C, Zheng L, Hirsch D, Kaminow B, Omdahl A, Bonsack M, Riemer AB, Velculescu VE, Anagnostou V, Pagel KA, Karchin R. High-Throughput Prediction of MHC Class I and II Neoantigens with MHCnuggets. Cancer Immunol Res. 2020 Mar;8(3):396-408. doi: 10.1158/2326-6066.CIR-19-0464. Epub 2019 Dec 23. PMID: 31871119; PMCID: PMC7056596. + + > Shao XM, Bhattacharya R, Huang J, Sivakumar IKA, Tokheim C, Zheng L, Hirsch D, Kaminow B, Omdahl A, Bonsack M, Riemer AB, Velculescu VE, Anagnostou V, Pagel KA, Karchin R. High-Throughput Prediction of MHC Class I and II Neoantigens with MHCnuggets. Cancer Immunol Res. 2020 Mar;8(3):396-408. doi: 10.1158/2326-6066.CIR-19-0464. Epub 2019 Dec 23. PMID: 31871119; PMCID: PMC7056596. - [OpenMS](https://pubmed.ncbi.nlm.nih.gov/27575624/) - > Röst H, Sachsenberg T, Aiche S, Bielow C, Weisser H, Aicheler F, Andreotti S, Ehrlich HC, Gutenbrunner P, Kenar E, Liang X, Nahnsen S, Nilse L, Pfeuffer J, Rosenberger G, Rurik M, Schmitt U, Veit J, Walze M, Wojnar D, Wolski WE, Schilling O, Choudhary JS, Malmström L, Aebersold R, Reinert K, Kohlbacher O. OpenMS: a flexible open-source software platform for mass spectrometry data analysis. Nat Methods 13 741–748 (2016). doi: 10.1038/nmeth.3959. PubMed PMID: 27575624 + + > Röst H, Sachsenberg T, Aiche S, Bielow C, Weisser H, Aicheler F, Andreotti S, Ehrlich HC, Gutenbrunner P, Kenar E, Liang X, Nahnsen S, Nilse L, Pfeuffer J, Rosenberger G, Rurik M, Schmitt U, Veit J, Walze M, Wojnar D, Wolski WE, Schilling O, Choudhary JS, Malmström L, Aebersold R, Reinert K, Kohlbacher O. OpenMS: a flexible open-source software platform for mass spectrometry data analysis. Nat Methods 13 741–748 (2016). doi: 10.1038/nmeth.3959. PubMed PMID: 27575624 - [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) @@ -43,4 +48,4 @@ - [Docker](https://dl.acm.org/doi/10.5555/2600239.2600241) - [Singularity](https://pubmed.ncbi.nlm.nih.gov/28494014/) - > Kurtzer GM, Sochat V, Bauer MW. Singularity: Scientific containers for mobility of compute. PLoS One. 2017 May 11;12(5):e0177459. doi: 10.1371/journal.pone.0177459. eCollection 2017. PubMed PMID: 28494014; PubMed Central PMCID: PMC5426675. \ No newline at end of file + > Kurtzer GM, Sochat V, Bauer MW. Singularity: Scientific containers for mobility of compute. PLoS One. 2017 May 11;12(5):e0177459. doi: 10.1371/journal.pone.0177459. eCollection 2017. PubMed PMID: 28494014; PubMed Central PMCID: PMC5426675. diff --git a/README.md b/README.md index eb05c2bf..a6c26e5e 100644 --- a/README.md +++ b/README.md @@ -41,27 +41,27 @@ On release, automated continuous integration tests run the pipeline on a full-si 3. Download the pipeline and test it on a minimal dataset with a single command: - ```console - nextflow run nf-core/mhcquant -profile test,YOURPROFILE - ``` + ```console + nextflow run nf-core/mhcquant -profile test,YOURPROFILE + ``` - Note that some form of configuration will be needed so that Nextflow knows how to fetch the required software. This is usually done in the form of a config profile (`YOURPROFILE` in the example command above). You can chain multiple config profiles in a comma-separated string. + Note that some form of configuration will be needed so that Nextflow knows how to fetch the required software. This is usually done in the form of a config profile (`YOURPROFILE` in the example command above). You can chain multiple config profiles in a comma-separated string. - > - The pipeline comes with config profiles called `docker`, `singularity`, `podman`, `shifter`, `charliecloud` and `conda` which instruct the pipeline to use the named tool for software management. For example, `-profile test,docker`. - > - Please check [nf-core/configs](https://github.com/nf-core/configs#documentation) to see if a custom config file to run nf-core pipelines already exists for your Institute. If so, you can simply use `-profile ` in your command. This will enable either `docker` or `singularity` and set the appropriate execution settings for your local compute environment. - > - If you are using `singularity`, please use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to download images first, before running the pipeline. Setting the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options enables you to store and re-use the images from a central location for future pipeline runs. - > - If you are using `conda`, it is highly recommended to use the [`NXF_CONDA_CACHEDIR` or `conda.cacheDir`](https://www.nextflow.io/docs/latest/conda.html) settings to store the environments in a central location for future pipeline runs. + > - The pipeline comes with config profiles called `docker`, `singularity`, `podman`, `shifter`, `charliecloud` and `conda` which instruct the pipeline to use the named tool for software management. For example, `-profile test,docker`. + > - Please check [nf-core/configs](https://github.com/nf-core/configs#documentation) to see if a custom config file to run nf-core pipelines already exists for your Institute. If so, you can simply use `-profile ` in your command. This will enable either `docker` or `singularity` and set the appropriate execution settings for your local compute environment. + > - If you are using `singularity`, please use the [`nf-core download`](https://nf-co.re/tools/#downloading-pipelines-for-offline-use) command to download images first, before running the pipeline. Setting the [`NXF_SINGULARITY_CACHEDIR` or `singularity.cacheDir`](https://www.nextflow.io/docs/latest/singularity.html?#singularity-docker-hub) Nextflow options enables you to store and re-use the images from a central location for future pipeline runs. + > - If you are using `conda`, it is highly recommended to use the [`NXF_CONDA_CACHEDIR` or `conda.cacheDir`](https://www.nextflow.io/docs/latest/conda.html) settings to store the environments in a central location for future pipeline runs. 4. Start running your own analysis! - ```bash - nextflow run nf-core/mhcquant -profile test, - --input 'samples.tsv' - --fasta 'SWISSPROT_2020.fasta' - --allele_sheet 'alleles.tsv' - --predict_class_1 - --refine_fdr_on_predicted_subset - ``` + ```bash + nextflow run nf-core/mhcquant -profile test, + --input 'samples.tsv' + --fasta 'SWISSPROT_2020.fasta' + --allele_sheet 'alleles.tsv' + --predict_class_1 + --refine_fdr_on_predicted_subset + ``` ## Documentation @@ -71,16 +71,7 @@ The nf-core/mhcquant pipeline comes with documentation about the pipeline [usage nf-core/mhcquant was originally written by [Leon Bichmann](https://github.com/Leon-Bichmann) from the [Kohlbacher Lab](https://kohlbacherlab.org/). The pipeline was re-written in Nextflow DSL2 and is primarily maintained by [Marissa Dubbelaar](https://github.com/marissaDubbelaar) from [Clinical Collaboration Unit Translational Immunology](https://www.medizin.uni-tuebingen.de/en-de/das-klinikum/einrichtungen/kliniken/medizinische-klinik/kke-translationale-immunologie) and [Quantitative Biology Center](https://uni-tuebingen.de/forschung/forschungsinfrastruktur/zentrum-fuer-quantitative-biologie-qbic/) in Tübingen. -Helpful contributors: - - [Lukas Heumos](https://github.com/Zethson) - - [Alexander Peltzer](https://github.com/apeltzer) - - [Maxime Garcia](https://github.com/maxulysse) - - [Gisela Gabernet](https://github.com/ggabernet) - - [Leon Kuchenbecker](https://github.com/lkuchenb) - - [Phil Ewels](https://github.com/ewels) - - [Christian Fufezan](https://github.com/fu) - - [Sven Fillinger](https://github.com/sven1103) - - [Kevin Menden](https://github.com/KevinMenden) +Helpful contributors: - [Lukas Heumos](https://github.com/Zethson) - [Alexander Peltzer](https://github.com/apeltzer) - [Maxime Garcia](https://github.com/maxulysse) - [Gisela Gabernet](https://github.com/ggabernet) - [Leon Kuchenbecker](https://github.com/lkuchenb) - [Phil Ewels](https://github.com/ewels) - [Christian Fufezan](https://github.com/fu) - [Sven Fillinger](https://github.com/sven1103) - [Kevin Menden](https://github.com/KevinMenden) ## Contributions and Support diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 8ed9c915..eaed6ec9 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -8,4 +8,4 @@ report_section_order: "nf-core-mhcquant-summary": order: -1001 -export_plots: true \ No newline at end of file +export_plots: true diff --git a/assets/schema_input.json b/assets/schema_input.json index f8583477..0d92ade2 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -36,11 +36,6 @@ ] } }, - "required": [ - "ID", - "Sample", - "Condition", - "ReplicateFileName" - ] + "required": ["ID", "Sample", "Condition", "ReplicateFileName"] } } diff --git a/docs/output.md b/docs/output.md index 94a46789..23a93055 100644 --- a/docs/output.md +++ b/docs/output.md @@ -63,7 +63,7 @@ PEPTIDE contains information about peptide hits that were identified and corresp - `Intermediate_Results/` - `*merged_psm_perc_filtered.mzTab` : If `--refine_fdr_on_predicted_subset` is specified, consists of the hits (filtered by q-value) - `*.mztab` : mztab file generated by the OpenMS MzTabExporter command, the community standard format for sharing mass spectrometry search results - - `*.featureXML` : If `--skip_quantification` is not specified, then this file is generated by the OpenMS FeatureFinderIdentification command + - `*.featureXML` : If `--skip_quantification` is not specified, then this file is generated by the OpenMS FeatureFinderIdentification command - `*fdr_filtered.idXML`: If `--skip_quantification` is not specified, then this file is generated by the OpenMS IDFilter command - `*all_ids_merged_psm_perc*.idXML`: idXML files are generated when `--refine_fdr_on_predicted_subset` is specified - `*peptide_filtered.idXML`: If `--refine_fdr_on_predicted_subset` is specified, then this file consists of the PSMs prediction outcome @@ -104,6 +104,7 @@ These CSV files list all of the theoretically possible neoepitope sequences from Output files - `class_1_bindings/` + - `*found_neoepitopes_class1.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_1` are specified - `class_2_bindings/` @@ -124,6 +125,7 @@ peptide sequence geneID Output files - `class_1_bindings/` + - `*vcf_neoepitopes_class1.csv`: Generated when `--include_proteins_from_vcf` and `--predict_class_1` are specified - `class_2_bindings/` @@ -146,6 +148,7 @@ Sequence Antigen ID Variants Output files - `class_1_bindings/` + - `*predicted_peptides_class_1.csv`: If `--predict_class_1` is specified, then this CSV is generated - `class_2_bindings/` diff --git a/docs/usage.md b/docs/usage.md index 6678d8d5..12918588 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -112,20 +112,20 @@ They are loaded in sequence, so later profiles can overwrite earlier profiles. If `-profile` is not specified, the pipeline will run locally and expect all software to be installed and available on the `PATH`. This is _not_ recommended. - `docker` - - A generic configuration profile to be used with [Docker](https://docker.com/) + - A generic configuration profile to be used with [Docker](https://docker.com/) - `singularity` - - A generic configuration profile to be used with [Singularity](https://sylabs.io/docs/) + - A generic configuration profile to be used with [Singularity](https://sylabs.io/docs/) - `podman` - - A generic configuration profile to be used with [Podman](https://podman.io/) + - A generic configuration profile to be used with [Podman](https://podman.io/) - `shifter` - - A generic configuration profile to be used with [Shifter](https://nersc.gitlab.io/development/shifter/how-to-use/) + - A generic configuration profile to be used with [Shifter](https://nersc.gitlab.io/development/shifter/how-to-use/) - `charliecloud` - - A generic configuration profile to be used with [Charliecloud](https://hpc.github.io/charliecloud/) + - A generic configuration profile to be used with [Charliecloud](https://hpc.github.io/charliecloud/) - `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 or Charliecloud. + - 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 or Charliecloud. - `test` - - A profile with a complete configuration for automated testing - - Includes links to test data so needs no other parameters + - A profile with a complete configuration for automated testing + - Includes links to test data so needs no other parameters ### `-resume` @@ -200,35 +200,35 @@ The [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html) implementatio 2. Find the latest version of the Biocontainer available on [Quay.io](https://quay.io/repository/biocontainers/pangolin?tag=latest&tab=tags) 3. Create the custom config accordingly: - - For Docker: - - ```nextflow - process { - withName: PANGOLIN { - container = 'quay.io/biocontainers/pangolin:3.0.5--pyhdfd78af_0' - } - } - ``` - - - For Singularity: - - ```nextflow - process { - withName: PANGOLIN { - container = 'https://depot.galaxyproject.org/singularity/pangolin:3.0.5--pyhdfd78af_0' - } - } - ``` - - - For Conda: - - ```nextflow - process { - withName: PANGOLIN { - conda = 'bioconda::pangolin=3.0.5' - } - } - ``` + - For Docker: + + ```nextflow + process { + withName: PANGOLIN { + container = 'quay.io/biocontainers/pangolin:3.0.5--pyhdfd78af_0' + } + } + ``` + + - For Singularity: + + ```nextflow + process { + withName: PANGOLIN { + container = 'https://depot.galaxyproject.org/singularity/pangolin:3.0.5--pyhdfd78af_0' + } + } + ``` + + - For Conda: + + ```nextflow + process { + withName: PANGOLIN { + conda = 'bioconda::pangolin=3.0.5' + } + } + ``` > **NB:** If you wish to periodically update individual tool-specific results (e.g. Pangolin) generated by the pipeline then you must ensure to keep the `work/` directory otherwise the `-resume` ability of the pipeline will be compromised and it will restart from scratch. diff --git a/modules.json b/modules.json index b12b6b5e..7ebdf96a 100644 --- a/modules.json +++ b/modules.json @@ -11,4 +11,4 @@ } } } -} \ No newline at end of file +} diff --git a/nextflow_schema.json b/nextflow_schema.json index 188ccbfc..4dd081a3 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -142,15 +142,7 @@ "type": "string", "default": "ALL", "description": "Specify which fragmentation method was used in the MS acquisition", - "enum": [ - "ALL", - "CID", - "ECD", - "ETD", - "PQD", - "HCD", - "IRMPD" - ] + "enum": ["ALL", "CID", "ECD", "ETD", "PQD", "HCD", "IRMPD"] }, "enzyme": { "type": "string", @@ -223,11 +215,7 @@ "type": "string", "default": "peptide_level_fdrs", "description": "Specify the level at which the false discovery rate should be computed.", - "enum": [ - "peptide_level_fdrs", - "psm-level-fdrs", - "protein_level_fdrs" - ] + "enum": ["peptide_level_fdrs", "psm-level-fdrs", "protein_level_fdrs"] }, "fdr_threshold": { "type": "number", @@ -312,20 +300,13 @@ "variant_reference": { "type": "string", "description": "Specify genomic reference used for variant annotation", - "enum": [ - "GRCH37", - "GRCH38" - ], + "enum": ["GRCH37", "GRCH38"], "default": "GRCH38" }, "variant_annotation_style": { "type": "string", "description": "Specify style of tool used for variant annotation - currently supported", - "enum": [ - "SNPEFF", - "VEP", - "ANNOVAR" - ], + "enum": ["SNPEFF", "VEP", "ANNOVAR"], "default": "SNPEFF" }, "variant_indel_filter": { @@ -570,4 +551,4 @@ "$ref": "#/definitions/generic_options" } ] -} \ No newline at end of file +} From c57e050f64b17a8bb58cc08c4aeed32c669af96a Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 25 Mar 2022 13:49:22 +0100 Subject: [PATCH 46/88] Fix: update aws*test.yml and .gitpod.yml --- .github/workflows/awsfulltest.yml | 2 -- .github/workflows/awstest.yml | 2 -- .gitpod.yml | 22 +++++++++++----------- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/.github/workflows/awsfulltest.yml b/.github/workflows/awsfulltest.yml index e25f6358..778a5219 100644 --- a/.github/workflows/awsfulltest.yml +++ b/.github/workflows/awsfulltest.yml @@ -19,8 +19,6 @@ jobs: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} - pipeline: ${{ github.repository }} - revision: ${{ github.sha }} workdir: s3://${{ secrets.AWS_S3_BUCKET }}/work/mhcquant/work-${{ github.sha }} parameters: | { diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 8513cec7..28ae2d93 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -17,8 +17,6 @@ jobs: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} compute_env: ${{ secrets.TOWER_COMPUTE_ENV }} - pipeline: ${{ github.repository }} - revision: ${{ github.sha }} workdir: s3://${{ secrets.AWS_S3_BUCKET }}/work/mhcquant/work-${{ github.sha }} parameters: | { diff --git a/.gitpod.yml b/.gitpod.yml index fce205c7..31d2875d 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,14 +1,14 @@ image: nfcore/gitpod:latest vscode: - extensions: # based on nf-core.nf-core-extensionpack - - codezombiech.gitignore # Language support for .gitignore files - # - cssho.vscode-svgviewer # SVG viewer - - davidanson.vscode-markdownlint # Markdown/CommonMark linting and style checking for Visual Studio Code - - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed - - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files - - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar - - mechatroner.rainbow-csv # Highlight columns in csv files in different colors - # - nextflow.nextflow # Nextflow syntax highlighting - - oderwat.indent-rainbow # Highlight indentation level - - streetsidesoftware.code-spell-checker # Spelling checker for source code + extensions: # based on nf-core.nf-core-extensionpack + - codezombiech.gitignore # Language support for .gitignore files + # - cssho.vscode-svgviewer # SVG viewer + - esbenp.prettier-vscode # Markdown/CommonMark linting and style checking for Visual Studio Code + - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed + - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files + - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar + - mechatroner.rainbow-csv # Highlight columns in csv files in different colors + # - nextflow.nextflow # Nextflow syntax highlighting + - oderwat.indent-rainbow # Highlight indentation level + - streetsidesoftware.code-spell-checker # Spelling checker for source code From 1d687e33be1130fd9ca37ed0feeffe058ba32990 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 25 Mar 2022 13:50:20 +0100 Subject: [PATCH 47/88] Fix: tower action to v3 --- .github/workflows/awstest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/awstest.yml b/.github/workflows/awstest.yml index 28ae2d93..29b1ee53 100644 --- a/.github/workflows/awstest.yml +++ b/.github/workflows/awstest.yml @@ -12,7 +12,7 @@ jobs: steps: # Launch workflow using Tower CLI tool action - name: Launch workflow via tower - uses: nf-core/tower-action@v2 + uses: nf-core/tower-action@v3 with: workspace_id: ${{ secrets.TOWER_WORKSPACE_ID }} access_token: ${{ secrets.TOWER_ACCESS_TOKEN }} From 33b2f417d678d67c30239cc817388e9e7c2f06a8 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 25 Mar 2022 13:51:28 +0100 Subject: [PATCH 48/88] Linting: ran prettier --- .gitpod.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.gitpod.yml b/.gitpod.yml index 31d2875d..5399f6f7 100644 --- a/.gitpod.yml +++ b/.gitpod.yml @@ -1,14 +1,14 @@ image: nfcore/gitpod:latest vscode: - extensions: # based on nf-core.nf-core-extensionpack - - codezombiech.gitignore # Language support for .gitignore files - # - cssho.vscode-svgviewer # SVG viewer - - esbenp.prettier-vscode # Markdown/CommonMark linting and style checking for Visual Studio Code - - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed - - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files - - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar - - mechatroner.rainbow-csv # Highlight columns in csv files in different colors - # - nextflow.nextflow # Nextflow syntax highlighting - - oderwat.indent-rainbow # Highlight indentation level - - streetsidesoftware.code-spell-checker # Spelling checker for source code + extensions: # based on nf-core.nf-core-extensionpack + - codezombiech.gitignore # Language support for .gitignore files + # - cssho.vscode-svgviewer # SVG viewer + - esbenp.prettier-vscode # Markdown/CommonMark linting and style checking for Visual Studio Code + - eamodio.gitlens # Quickly glimpse into whom, why, and when a line or code block was changed + - EditorConfig.EditorConfig # override user/workspace settings with settings found in .editorconfig files + - Gruntfuggly.todo-tree # Display TODO and FIXME in a tree view in the activity bar + - mechatroner.rainbow-csv # Highlight columns in csv files in different colors + # - nextflow.nextflow # Nextflow syntax highlighting + - oderwat.indent-rainbow # Highlight indentation level + - streetsidesoftware.code-spell-checker # Spelling checker for source code From b4471173bc04ad249210ccd2826449fbb3f78102 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar <71317334+marissaDubbelaar@users.noreply.github.com> Date: Fri, 25 Mar 2022 15:59:39 +0100 Subject: [PATCH 49/88] Apply suggestions from code review Co-authored-by: Gisela Gabernet --- CHANGELOG.md | 2 +- README.md | 3 ++- docs/usage.md | 2 +- nextflow.config | 2 ++ 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86e7dcfa..9420f30d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ ### `Added` -- nf-core template update (version 2.3.1) +- nf-core template update (version 2.3.2) - Adjustments of the `PRE_QUANTIFICATION` subworkflow: `OPENMS_FALSEDISCOVERYRATE`, `OPENMS_IDFILTER_FOR_ALIGNMENT`, and `OPENMS_TEXTEXPORTER_PSMS` - Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write a combined FDR filtered output file for unquantified data diff --git a/README.md b/README.md index a6c26e5e..8f3a785b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ![nf-core/mhcquant](docs/images/nf-core/mhcquant_logo_light.png#gh-light-mode-only) ![nf-core/mhcquant](docs/images/nf-core/mhcquant_logo_dark.png#gh-dark-mode-only) +# ![nf-core/mhcquant](docs/images/nf-core-mhcquant_logo_light.png#gh-light-mode-only) ![nf-core/mhcquant](docs/images/nf-core-mhcquant_logo_dark.png#gh-dark-mode-only) [![GitHub Actions CI Status](https://github.com/nf-core/mhcquant/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/mhcquant/actions?query=workflow%3A%22nf-core+CI%22) [![GitHub Actions Linting Status](https://github.com/nf-core/mhcquant/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/mhcquant/actions?query=workflow%3A%22nf-core+linting%22) @@ -61,6 +61,7 @@ On release, automated continuous integration tests run the pipeline on a full-si --allele_sheet 'alleles.tsv' --predict_class_1 --refine_fdr_on_predicted_subset + --outdir ./results ``` ## Documentation diff --git a/docs/usage.md b/docs/usage.md index 12918588..7f61d95f 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -71,7 +71,7 @@ Note that the pipeline will create the following files in your working directory ```console work # Directory containing the nextflow working files - # Finished results in specified location (defined with --outdir) + # Finished results in specified location (defined with --outdir) .nextflow_log # Log file from Nextflow # Other nextflow hidden files, eg. history of pipeline runs and old logs. ``` diff --git a/nextflow.config b/nextflow.config index ab8528fa..50dd23f2 100644 --- a/nextflow.config +++ b/nextflow.config @@ -166,6 +166,8 @@ profiles { test_full { includeConfig 'conf/test_full.config' } } +includeConfig 'conf/modules.config' + // The JULIA depot path has been adjusted to a fixed path `/usr/local/share/julia` that needs to be used for packages in the container. // See https://apeltzer.github.io/post/03-julia-lang-nextflow/ for details on that. Once we have a common agreement on where to keep Julia packages, this is adjustable. From 17dce616b28305ff5f271010f17177aff230b272 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 25 Mar 2022 16:00:51 +0100 Subject: [PATCH 50/88] Fix: remove modules.config from L102 --- nextflow.config | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/nextflow.config b/nextflow.config index 50dd23f2..9e826caa 100644 --- a/nextflow.config +++ b/nextflow.config @@ -98,9 +98,6 @@ params { // Load base.config by default for all pipelines includeConfig 'conf/base.config' -// Load modules.config for DSL2 module specific options -includeConfig 'conf/modules.config' - // Load nf-core custom profiles from different Institutions try { includeConfig "${params.custom_config_base}/nfcore_custom.config" @@ -166,6 +163,7 @@ profiles { test_full { includeConfig 'conf/test_full.config' } } +// Load modules.config for DSL2 module specific options includeConfig 'conf/modules.config' // The JULIA depot path has been adjusted to a fixed path `/usr/local/share/julia` that needs to be used for packages in the container. From 3de8bffe6c40992c08f2d0f3d7d6469b3f936c92 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 29 Mar 2022 13:54:38 +0200 Subject: [PATCH 51/88] Fix: prettier on output docs --- docs/output.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/output.md b/docs/output.md index 27dc319b..3293647c 100644 --- a/docs/output.md +++ b/docs/output.md @@ -168,9 +168,9 @@ peptide allele prediction prediction_low prediction_high prediction_pe
    Output files -* `RT_prediction` - * `*id_RTpredicted.csv`: If `--predict_RT` is specified, the retention time found peptides are provided - * `*txt_RTpredicted.csv`: If `--predict_RT` is specified, the retention time predicted neoepitopes are provided +- `RT_prediction` + - `*id_RTpredicted.csv`: If `--predict_RT` is specified, the retention time found peptides are provided + - `*txt_RTpredicted.csv`: If `--predict_RT` is specified, the retention time predicted neoepitopes are provided
    @@ -195,10 +195,10 @@ Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQ
    Output files -* `pipeline_info/` - * Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. - * Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameters are used when running the pipeline. - * Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`. +- `pipeline_info/` + - Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. + - Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameters are used when running the pipeline. + - Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`.
    From 9b6a6a12432c711f6be7a93ea8e66ec5576e15b1 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 29 Mar 2022 13:58:08 +0200 Subject: [PATCH 52/88] Update: Changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9657bd96..16f68801 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # nf-core/mhcquant: Changelog -## v2.3.0 nfcore/mhcquant "White Gold Swallow" - 2022/mm/dependency +## v2.3.0dev nfcore/mhcquant "White Gold Swallow" - 2022/mm/day ### `Added` From dca4997b3eeef92e615dbf7e227030b0c4c309d0 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 29 Mar 2022 14:13:12 +0200 Subject: [PATCH 53/88] Update: linting.yml --- .github/workflows/linting.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml index 57d1afda..e9cf5de3 100644 --- a/.github/workflows/linting.yml +++ b/.github/workflows/linting.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - + - uses: actions/setup-node@v2 - name: Install editorconfig-checker From 0f38a52e9c3bc1d3a6b6de6dbd13e38284da9bf7 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 29 Mar 2022 14:17:49 +0200 Subject: [PATCH 54/88] Increment the changelog --- CHANGELOG.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9feba9d3..4c9bf59d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ - nf-core template update (version 2.3.2) - Adjustments of the `PRE_QUANTIFICATION` subworkflow: `OPENMS_FALSEDISCOVERYRATE`, `OPENMS_IDFILTER_FOR_ALIGNMENT`, and `OPENMS_TEXTEXPORTER_PSMS` - Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write a combined FDR filtered output file for unquantified data +- Removed the table of contents from usage.md +- [#200](https://github.com/nf-core/mhcquant/pull/200) fixes some typos and stuff in the output documentation +- [#191](https://github.com/nf-core/mhcquant/issues/191) Removed the table of contents from usage.md ### `Fixed` @@ -31,7 +34,6 @@ - Error that was raised in generate_proteins_from_vcf - Problems that were detected in predict_possible_class1_neoepitopes and predict_possible_class2_neoepitopes - Error that occurred in mhcnuggets_predictneoepitopesclass2 (faulty container set up) -- [#200](https://github.com/nf-core/mhcquant/pull/200) fixes some typos and stuff in the output docu ### `Deprecated` From 9a45f449a4aa5b6eae637eceb47225b222c79691 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 29 Mar 2022 14:25:30 +0200 Subject: [PATCH 55/88] Update: changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a7164f36..32809d4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ - Removed the table of contents from usage.md - [#200](https://github.com/nf-core/mhcquant/pull/200) fixes some typos and stuff in the output documentation - [#191](https://github.com/nf-core/mhcquant/issues/191) Removed the table of contents from usage.md +- [#189](https://github.com/nf-core/mhcquant/issues/189) Added backslashes in Quick Start in README ### `Fixed` @@ -34,7 +35,6 @@ - Error that was raised in generate_proteins_from_vcf - Problems that were detected in predict_possible_class1_neoepitopes and predict_possible_class2_neoepitopes - Error that occurred in mhcnuggets_predictneoepitopesclass2 (faulty container set up) -- [#189](https://github.com/nf-core/mhcquant/issues/189) Added backslashes in Quick Start in README ### `Deprecated` From a1635bb5e06b6f2aef5880a02158416f0fe95a6d Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 29 Mar 2022 14:25:47 +0200 Subject: [PATCH 56/88] Fix prettier --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index f1014c16..24b5bcab 100644 --- a/README.md +++ b/README.md @@ -54,15 +54,15 @@ On release, automated continuous integration tests run the pipeline on a full-si 4. Start running your own analysis! - ```bash - nextflow run nf-core/mhcquant -profile test, \ - --input 'samples.tsv' \ - --fasta 'SWISSPROT_2020.fasta' \ - --allele_sheet 'alleles.tsv' \ - --predict_class_1 \ - --refine_fdr_on_predicted_subset \ - --outdir ./results - ``` + ```bash + nextflow run nf-core/mhcquant -profile test, \ + --input 'samples.tsv' \ + --fasta 'SWISSPROT_2020.fasta' \ + --allele_sheet 'alleles.tsv' \ + --predict_class_1 \ + --refine_fdr_on_predicted_subset \ + --outdir ./results + ``` ## Documentation From 9bc0e9a3c348b02fc9bd700683bed2186c2e7509 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 29 Mar 2022 14:30:30 +0200 Subject: [PATCH 57/88] Update: changelog and prettier --- CHANGELOG.md | 1 + docs/usage.md | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a64bd01..f7376be5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write a combined FDR filtered output file for unquantified data - Removed the table of contents from usage.md - [#200](https://github.com/nf-core/mhcquant/pull/200) fixes some typos and stuff in the output documentation +- [#192](https://github.com/nf-core/mhcquant/issues/192) Fixed samplesheet format in usage.md - [#191](https://github.com/nf-core/mhcquant/issues/191) Removed the table of contents from usage.md - [#189](https://github.com/nf-core/mhcquant/issues/189) Added backslashes in Quick Start in README diff --git a/docs/usage.md b/docs/usage.md index a93a9c96..a812786e 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -31,7 +31,6 @@ The pipeline will auto-detect whether a sample is either a mzML or raw files usi A final samplesheet file consisting of both single- and paired-end data may look something like the one below. This is for 6 samples, where `TREATMENT_REP3` has been sequenced twice. - ```tsv ID Sample Condition ReplicateFileName 1 WT A /path/to/MS/files/WT_A1.raw From bbfbb3120daf8edefef3534a02d43240fa4f58f5 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 29 Mar 2022 14:31:17 +0200 Subject: [PATCH 58/88] Update: changelog --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7376be5..dc04a8f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,7 +36,6 @@ - Error that was raised in generate_proteins_from_vcf - Problems that were detected in predict_possible_class1_neoepitopes and predict_possible_class2_neoepitopes - Error that occurred in mhcnuggets_predictneoepitopesclass2 (faulty container set up) -- [#192](https://github.com/nf-core/mhcquant/issues/192) Fixed samplesheet format in usage.md ### `Deprecated` From d539812160229a27adc1f123f4e7370f6a0e216e Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Wed, 30 Mar 2022 10:27:28 +0200 Subject: [PATCH 59/88] Docs: changed parameters --- CHANGELOG.md | 1 + nextflow_schema.json | 64 +++++++++++++++++++++++++++++--------------- 2 files changed, 44 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07e68c21..056349e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ - Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write a combined FDR filtered output file for unquantified data - Removed the table of contents from usage.md - [#200](https://github.com/nf-core/mhcquant/pull/200) fixes some typos and stuff in the output documentation +- [#195](https://github.com/nf-core/mhcquant/issues/195) Updated parameter documentation - [#192](https://github.com/nf-core/mhcquant/issues/192) Fixed samplesheet format in usage.md - [#191](https://github.com/nf-core/mhcquant/issues/191) Removed the table of contents from usage.md - [#189](https://github.com/nf-core/mhcquant/issues/189) Added backslashes in Quick Start in README diff --git a/nextflow_schema.json b/nextflow_schema.json index 4dd081a3..e1d01764 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -61,9 +61,9 @@ "description": "Set depending on whether variants should be translated to proteins and included into your fasta for database search." }, "skip_decoy_generation": { - "type": "boolean", - "description": "Set depending on whether own decoy database should be used", - "help_text": "If you want to use your own decoys, you can specify a dataset that includes decoy sequences. However, each database entry should keep the prefix 'DECOY_'.\nOne should consider though that this option will then prevent to append variants to the database and if not using reversed decoys the subset refinement FDR option will not work." + "type": "boolean", + "description": "Add this parameter when you want to skip the generation of the decoy database, the consequence is that it prevents the generation of variants and FDR refinement", + "help_text": "If you want to use your own decoys, you can specify a dataset that includes decoy sequences. However, each database entry should keep the prefix 'DECOY_'.\nOne should consider though that this option will then prevent appending variants to the database and if not using reversed decoys the subset refinement FDR option will not work." } } }, @@ -74,9 +74,9 @@ "default": "", "properties": { "pick_ms_levels": { - "type": "integer", - "default": 2, - "description": "If one ms level in the raw ms data is not centroided, specify the level here. (eg. 2)" + "type": "integer", + "default": 2, + "description": "Specify the MS levels for which the peak picking is applied (unless you use `--run_centroidisation`)." }, "run_centroidisation": { "type": "boolean", @@ -93,29 +93,29 @@ "peptide_min_length": { "type": "integer", "default": 8, - "description": "Specify the minimum length of peptides considered after processing" + "description": "Specify the minimum length of peptides to be considered after processing" }, "peptide_max_length": { "type": "integer", "default": 12, - "description": "Specify the maximum length of peptides considered after processing" + "description": "Specify the maximum length of peptides to be considered after processing" }, "fragment_mass_tolerance": { "type": "number", "default": 0.02, - "description": "Specify the fragment mass tolerance used for the comet database search.", + "description": "Specify the fragment mass tolerance to be used for the comet database search.", "help_text": "For High-Resolution instruments a fragment mass tolerance value of 0.02 is recommended. (See the Comet parameter documentation: eg. 0.02)" }, "precursor_mass_tolerance": { "type": "integer", "default": 5, - "description": "Specify the precursor mass tolerance used for the comet database search.", + "description": "Specify the precursor mass tolerance to be used for the comet database search.", "help_text": " For High-Resolution instruments a precursor mass tolerance value of 5ppm is recommended. (eg. 5)" }, "fragment_bin_offset": { "type": "integer", "default": 0, - "description": "Specify the fragment bin offset used for the comet database search.", + "description": "Specify the fragment bin offset to be used for the comet database search.", "help_text": "For High-Resolution instruments a fragment bin offset of 0 is recommended. (See the Comet parameter documentation: eg. 0)" }, "number_mods": { @@ -142,7 +142,15 @@ "type": "string", "default": "ALL", "description": "Specify which fragmentation method was used in the MS acquisition", - "enum": ["ALL", "CID", "ECD", "ETD", "PQD", "HCD", "IRMPD"] + "enum": [ + "ALL", + "CID", + "ECD", + "ETD", + "PQD", + "HCD", + "IRMPD" + ] }, "enzyme": { "type": "string", @@ -159,13 +167,13 @@ "fixed_mods": { "type": "string", "description": "Specify which fixed modifications should be applied to the database search", - "help_text": "e.g. 'Carbamidomethyl (C)' (see OpenMS modifications)" + "help_text": "e.g. 'Carbamidomethyl (C)' (see OpenMS modifications; for a list of options, see parameter description on https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/nightly/html/TOPP_CometAdapter.html)" }, "variable_mods": { "type": "string", "default": "Oxidation (M)", "description": "Specify which variable modifications should be applied to the database search", - "help_text": "e.g. 'Oxidation (M)' (see OpenMS modifications)" + "help_text": "e.g. 'Oxidation (M)' (see OpenMS modifications; for a list of options, see parameter description on https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/nightly/html/TOPP_CometAdapter.html)" }, "use_x_ions": { "type": "boolean", @@ -189,7 +197,7 @@ }, "remove_precursor_peak": { "type": "boolean", - "description": "Include precursor ions into the peptide spectrum matching", + "description": "Include if you want to remove all peaks around precursor m/z", "default": false }, "spectrum_batch_size": { @@ -300,28 +308,35 @@ "variant_reference": { "type": "string", "description": "Specify genomic reference used for variant annotation", - "enum": ["GRCH37", "GRCH38"], + "enum": [ + "GRCH37", + "GRCH38" + ], "default": "GRCH38" }, "variant_annotation_style": { "type": "string", "description": "Specify style of tool used for variant annotation - currently supported", - "enum": ["SNPEFF", "VEP", "ANNOVAR"], + "enum": [ + "SNPEFF", + "VEP", + "ANNOVAR" + ], "default": "SNPEFF" }, "variant_indel_filter": { "type": "boolean", - "description": "Specify whether insertions and deletions should not be considered for variant translation", + "description": "Set this option to not consider insertions and deletions for variant translation", "default": false }, "variant_frameshift_filter": { "type": "boolean", - "description": "Specify whether frameshifts should not be considered for variant translation", + "description": "Set this option to not consider frameshifts for variant translation", "default": false }, "variant_snp_filter": { "type": "boolean", - "description": "Specify whether snps should not be considered for variant translation" + "description": "Set this option to not consider snps for variant translation" } } }, @@ -446,7 +461,14 @@ "description": "Method used to save pipeline results to output directory.", "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", "fa_icon": "fas fa-copy", - "enum": ["symlink", "rellink", "link", "copy", "copyNoFollow", "move"], + "enum": [ + "symlink", + "rellink", + "link", + "copy", + "copyNoFollow", + "move" + ], "hidden": true }, "email_on_fail": { From 094ebfa65a8bd2b1b97c35ccdb809c5d2f76cebe Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Wed, 30 Mar 2022 10:35:48 +0200 Subject: [PATCH 60/88] Prettier: update changelog and nextflow_schema.json --- CHANGELOG.md | 7 +++---- nextflow_schema.json | 42 ++++++++++-------------------------------- 2 files changed, 13 insertions(+), 36 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 056349e4..7e846b47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,8 +11,8 @@ - [#200](https://github.com/nf-core/mhcquant/pull/200) fixes some typos and stuff in the output documentation - [#195](https://github.com/nf-core/mhcquant/issues/195) Updated parameter documentation - [#192](https://github.com/nf-core/mhcquant/issues/192) Fixed samplesheet format in usage.md -- [#191](https://github.com/nf-core/mhcquant/issues/191) Removed the table of contents from usage.md - [#189](https://github.com/nf-core/mhcquant/issues/189) Added backslashes in Quick Start in README +- [#188](https://github.com/nf-core/mhcquant/issues/188) Added reference links to README ### `Fixed` @@ -22,6 +22,8 @@ ### `Deprecated` +- [#191](https://github.com/nf-core/mhcquant/issues/191) Removed the table of contents from usage.md + ## v2.2.0 nfcore/mhcquant "Silver Titanium Ostrich" - 2022/01/14 ### `Added` @@ -30,7 +32,6 @@ - Adjustment of the README, including all contributors - Inclusion of the PSMs files (tsv format) per replicates in `results/PSMs` - Include check in WorkflowMhcquant, to determine if the allele and vcf sheet has been provided under specific circumstances -- [[#188](https://github.com/nf-core/mhcquant/issues/188)] Added reference links to README ### `Fixed` @@ -41,8 +42,6 @@ ### `Deprecated` -- [#191](https://github.com/nf-core/mhcquant/issues/191) Removed the table of contents from usage.md - ### `Dependencies` | Dependency | Old version | New version | diff --git a/nextflow_schema.json b/nextflow_schema.json index e1d01764..7f0c40f2 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -61,9 +61,9 @@ "description": "Set depending on whether variants should be translated to proteins and included into your fasta for database search." }, "skip_decoy_generation": { - "type": "boolean", - "description": "Add this parameter when you want to skip the generation of the decoy database, the consequence is that it prevents the generation of variants and FDR refinement", - "help_text": "If you want to use your own decoys, you can specify a dataset that includes decoy sequences. However, each database entry should keep the prefix 'DECOY_'.\nOne should consider though that this option will then prevent appending variants to the database and if not using reversed decoys the subset refinement FDR option will not work." + "type": "boolean", + "description": "Add this parameter when you want to skip the generation of the decoy database, the consequence is that it prevents the generation of variants and FDR refinement", + "help_text": "If you want to use your own decoys, you can specify a dataset that includes decoy sequences. However, each database entry should keep the prefix 'DECOY_'.\nOne should consider though that this option will then prevent appending variants to the database and if not using reversed decoys the subset refinement FDR option will not work." } } }, @@ -74,9 +74,9 @@ "default": "", "properties": { "pick_ms_levels": { - "type": "integer", - "default": 2, - "description": "Specify the MS levels for which the peak picking is applied (unless you use `--run_centroidisation`)." + "type": "integer", + "default": 2, + "description": "Specify the MS levels for which the peak picking is applied (unless you use `--run_centroidisation`)." }, "run_centroidisation": { "type": "boolean", @@ -142,15 +142,7 @@ "type": "string", "default": "ALL", "description": "Specify which fragmentation method was used in the MS acquisition", - "enum": [ - "ALL", - "CID", - "ECD", - "ETD", - "PQD", - "HCD", - "IRMPD" - ] + "enum": ["ALL", "CID", "ECD", "ETD", "PQD", "HCD", "IRMPD"] }, "enzyme": { "type": "string", @@ -308,20 +300,13 @@ "variant_reference": { "type": "string", "description": "Specify genomic reference used for variant annotation", - "enum": [ - "GRCH37", - "GRCH38" - ], + "enum": ["GRCH37", "GRCH38"], "default": "GRCH38" }, "variant_annotation_style": { "type": "string", "description": "Specify style of tool used for variant annotation - currently supported", - "enum": [ - "SNPEFF", - "VEP", - "ANNOVAR" - ], + "enum": ["SNPEFF", "VEP", "ANNOVAR"], "default": "SNPEFF" }, "variant_indel_filter": { @@ -461,14 +446,7 @@ "description": "Method used to save pipeline results to output directory.", "help_text": "The Nextflow `publishDir` option specifies which intermediate files should be saved to the output directory. This option tells the pipeline what method should be used to move these files. See [Nextflow docs](https://www.nextflow.io/docs/latest/process.html#publishdir) for details.", "fa_icon": "fas fa-copy", - "enum": [ - "symlink", - "rellink", - "link", - "copy", - "copyNoFollow", - "move" - ], + "enum": ["symlink", "rellink", "link", "copy", "copyNoFollow", "move"], "hidden": true }, "email_on_fail": { From 2a71455fa1c0df7cd52d3c1625ce6df64dd8fce3 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Wed, 30 Mar 2022 10:41:44 +0200 Subject: [PATCH 61/88] Update: contributors in README --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 80b89d23..b9c8f587 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,19 @@ The nf-core/mhcquant pipeline comes with documentation about the pipeline [usage nf-core/mhcquant was originally written by [Leon Bichmann](https://github.com/Leon-Bichmann) from the [Kohlbacher Lab](https://kohlbacherlab.org/). The pipeline was re-written in Nextflow DSL2 and is primarily maintained by [Marissa Dubbelaar](https://github.com/marissaDubbelaar) from [Clinical Collaboration Unit Translational Immunology](https://www.medizin.uni-tuebingen.de/en-de/das-klinikum/einrichtungen/kliniken/medizinische-klinik/kke-translationale-immunologie) and [Quantitative Biology Center](https://uni-tuebingen.de/forschung/forschungsinfrastruktur/zentrum-fuer-quantitative-biologie-qbic/) in Tübingen. -Helpful contributors: - [Lukas Heumos](https://github.com/Zethson) - [Alexander Peltzer](https://github.com/apeltzer) - [Maxime Garcia](https://github.com/maxulysse) - [Gisela Gabernet](https://github.com/ggabernet) - [Leon Kuchenbecker](https://github.com/lkuchenb) - [Phil Ewels](https://github.com/ewels) - [Christian Fufezan](https://github.com/fu) - [Sven Fillinger](https://github.com/sven1103) - [Kevin Menden](https://github.com/KevinMenden) +Helpful contributors: + +- [Lukas Heumos](https://github.com/Zethson) +- [Alexander Peltzer](https://github.com/apeltzer) +- [Maxime Garcia](https://github.com/maxulysse) +- [Gisela Gabernet](https://github.com/ggabernet) +- [Susanne Jodoin](https://github.com/SusiJo) +- [Oskar Wacker](https://github.com/WackerO) +- [Leon Kuchenbecker](https://github.com/lkuchenb) +- [Phil Ewels](https://github.com/ewels) +- [Christian Fufezan](https://github.com/fu) +- [Sven Fillinger](https://github.com/sven1103) +- [Kevin Menden](https://github.com/KevinMenden) ## Contributions and Support From edf3ffea2bb764181f226ba36eed971e0a91ee8a Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Wed, 30 Mar 2022 10:53:27 +0200 Subject: [PATCH 62/88] Fix: resolve issue with comma --- nextflow_schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nextflow_schema.json b/nextflow_schema.json index eddbfe95..9c59e341 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -190,7 +190,7 @@ }, "remove_precursor_peak": { "type": "boolean", - "description": "Include if you want to remove all peaks around precursor m/z" + "description": "Include if you want to remove all peaks around precursor m/z", "default": false }, "spectrum_batch_size": { From e33a0c953367307fbb8e35464f6eaa6c4cb92fdd Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar <71317334+marissaDubbelaar@users.noreply.github.com> Date: Wed, 30 Mar 2022 11:04:44 +0200 Subject: [PATCH 63/88] Revert "Params doc" --- CHANGELOG.md | 12 +----------- README.md | 40 ++++++++++++++-------------------------- docs/output.md | 16 ++++++++-------- docs/usage.md | 38 +++++++++++++++++++------------------- nextflow_schema.json | 28 ++++++++++++++-------------- 5 files changed, 56 insertions(+), 78 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e846b47..9420f30d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,12 @@ # nf-core/mhcquant: Changelog -## v2.3.0dev nfcore/mhcquant "White Gold Swallow" - 2022/mm/day +## v2.3.0 nfcore/mhcquant "White Gold Swallow" - 2022/mm/dependency ### `Added` - nf-core template update (version 2.3.2) - Adjustments of the `PRE_QUANTIFICATION` subworkflow: `OPENMS_FALSEDISCOVERYRATE`, `OPENMS_IDFILTER_FOR_ALIGNMENT`, and `OPENMS_TEXTEXPORTER_PSMS` - Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write a combined FDR filtered output file for unquantified data -- Removed the table of contents from usage.md -- [#200](https://github.com/nf-core/mhcquant/pull/200) fixes some typos and stuff in the output documentation -- [#195](https://github.com/nf-core/mhcquant/issues/195) Updated parameter documentation -- [#192](https://github.com/nf-core/mhcquant/issues/192) Fixed samplesheet format in usage.md -- [#189](https://github.com/nf-core/mhcquant/issues/189) Added backslashes in Quick Start in README -- [#188](https://github.com/nf-core/mhcquant/issues/188) Added reference links to README ### `Fixed` @@ -22,8 +16,6 @@ ### `Deprecated` -- [#191](https://github.com/nf-core/mhcquant/issues/191) Removed the table of contents from usage.md - ## v2.2.0 nfcore/mhcquant "Silver Titanium Ostrich" - 2022/01/14 ### `Added` @@ -40,8 +32,6 @@ - Problems that were detected in predict_possible_class1_neoepitopes and predict_possible_class2_neoepitopes - Error that occurred in mhcnuggets_predictneoepitopesclass2 (faulty container set up) -### `Deprecated` - ### `Dependencies` | Dependency | Old version | New version | diff --git a/README.md b/README.md index b9c8f587..8f3a785b 100644 --- a/README.md +++ b/README.md @@ -55,12 +55,12 @@ On release, automated continuous integration tests run the pipeline on a full-si 4. Start running your own analysis! ```bash - nextflow run nf-core/mhcquant -profile test, \ - --input 'samples.tsv' \ - --fasta 'SWISSPROT_2020.fasta' \ - --allele_sheet 'alleles.tsv' \ - --predict_class_1 \ - --refine_fdr_on_predicted_subset \ + nextflow run nf-core/mhcquant -profile test, + --input 'samples.tsv' + --fasta 'SWISSPROT_2020.fasta' + --allele_sheet 'alleles.tsv' + --predict_class_1 + --refine_fdr_on_predicted_subset --outdir ./results ``` @@ -72,19 +72,7 @@ The nf-core/mhcquant pipeline comes with documentation about the pipeline [usage nf-core/mhcquant was originally written by [Leon Bichmann](https://github.com/Leon-Bichmann) from the [Kohlbacher Lab](https://kohlbacherlab.org/). The pipeline was re-written in Nextflow DSL2 and is primarily maintained by [Marissa Dubbelaar](https://github.com/marissaDubbelaar) from [Clinical Collaboration Unit Translational Immunology](https://www.medizin.uni-tuebingen.de/en-de/das-klinikum/einrichtungen/kliniken/medizinische-klinik/kke-translationale-immunologie) and [Quantitative Biology Center](https://uni-tuebingen.de/forschung/forschungsinfrastruktur/zentrum-fuer-quantitative-biologie-qbic/) in Tübingen. -Helpful contributors: - -- [Lukas Heumos](https://github.com/Zethson) -- [Alexander Peltzer](https://github.com/apeltzer) -- [Maxime Garcia](https://github.com/maxulysse) -- [Gisela Gabernet](https://github.com/ggabernet) -- [Susanne Jodoin](https://github.com/SusiJo) -- [Oskar Wacker](https://github.com/WackerO) -- [Leon Kuchenbecker](https://github.com/lkuchenb) -- [Phil Ewels](https://github.com/ewels) -- [Christian Fufezan](https://github.com/fu) -- [Sven Fillinger](https://github.com/sven1103) -- [Kevin Menden](https://github.com/KevinMenden) +Helpful contributors: - [Lukas Heumos](https://github.com/Zethson) - [Alexander Peltzer](https://github.com/apeltzer) - [Maxime Garcia](https://github.com/maxulysse) - [Gisela Gabernet](https://github.com/ggabernet) - [Leon Kuchenbecker](https://github.com/lkuchenb) - [Phil Ewels](https://github.com/ewels) - [Christian Fufezan](https://github.com/fu) - [Sven Fillinger](https://github.com/sven1103) - [Kevin Menden](https://github.com/KevinMenden) ## Contributions and Support @@ -116,26 +104,26 @@ In addition, references of tools and data used in this pipeline are as follows: > **Fred2 Immunoinformatics Toolbox** > -> Schubert B. et al, _Bioinformatics_ 2016 Jul 1;32(13):2044-6. doi: [10.1093/bioinformatics/btw113](https://academic.oup.com/bioinformatics/article/32/13/2044/1743767) Epub 2016 Feb 26 +> Schubert B. et al, _Bioinformatics_ 2016 Jul 1;32(13):2044-6. doi: 10.1093/bioinformatics/btw113. Epub 2016 Feb 26 > > **Comet Search Engine** > -> Eng J.K. et al, _J Am Soc Mass Spectrom._ 2015 Nov;26(11):1865-74. doi: [10.1007/s13361-015-1179-x](https://pubs.acs.org/doi/10.1007/s13361-015-1179-x) Epub 2015 Jun 27. +> Eng J.K. et al, _J Am Soc Mass Spectrom._ 2015 Nov;26(11):1865-74. doi: 10.1007/s13361-015-1179-x. Epub 2015 Jun 27. > > **Percolator** > -> Käll L. et al, _Nat Methods_ 2007 Nov;4(11):923-5. doi: [10.1038/nmeth1113](https://www.nature.com/articles/nmeth1113) Epub 2007 Oct 21. +> Käll L. et al, _Nat Methods_ 2007 Nov;4(11):923-5. doi: 10.1038/nmeth1113. Epub 2007 Oct 21. > > **Identification based RT Alignment** > -> Weisser H. et al, _J Proteome Res._ 2013 Apr 5;12(4):1628-44. doi: [10.1021/pr300992u](https://pubs.acs.org/doi/10.1021/pr300992u) Epub 2013 Feb 22. +> Weisser H. et al, _J Proteome Res._ 2013 Apr 5;12(4):1628-44. doi: 10.1021/pr300992u. Epub 2013 Feb 22. > > **Targeted peptide quantification** > -> Weisser H. et al, _J Proteome Res._ 2017 Aug 4;16(8):2964-2974. doi: [10.1021/acs.jproteome.7b00248](https://pubs.acs.org/doi/10.1021/acs.jproteome.7b00248) Epub 2017 Jul 19. +> Weisser H. et al, _J Proteome Res._ 2017 Aug 4;16(8):2964-2974. doi: 10.1021/acs.jproteome.7b00248. Epub 2017 Jul 19. > > **MHC affinity prediction** > -> O'Donnell T.J., _Cell Syst._ 2018 Jul 25;7(1):129-132.e4. doi: [10.1016/j.cels.2018.05.014](https://www.sciencedirect.com/science/article/pii/S2405471218302321) Epub 2018 Jun 27. +> O'Donnell T.J., _Cell Syst._ 2018 Jul 25;7(1):129-132.e4. doi: 10.1016/j.cels.2018.05.014. Epub 2018 Jun 27. > -> Shao X.M., _Cancer Immunol Res._ 2020 Mar;8(3):396-408. doi: [10.1158/2326-6066.CIR-19-0464](https://aacrjournals.org/cancerimmunolres/article/8/3/396/469597/High-Throughput-Prediction-of-MHC-Class-I-and-II) Epub 2019 Dec 23. +> Shao X.M., _Cancer Immunol Res._ 2020 Mar;8(3):396-408. doi: 10.1158/2326-6066.CIR-19-0464. Epub 2019 Dec 23. diff --git a/docs/output.md b/docs/output.md index 3293647c..23a93055 100644 --- a/docs/output.md +++ b/docs/output.md @@ -79,7 +79,7 @@ The output mzTab contains many columns annotating the most important information PEP sequence accession best_search_engine_score[1] retention_time charge mass_to_charge peptide_abundance_study_variable[1] ``` -Most important to know is that in this format we annotated the q-value of each peptide identification in the `best_search_engine_score[1]` column and peptide quantities in the peptide_abundance_study_variable` columns. +Most important to know that in this format we annotated the q-value of each peptide identification in the `best_seach_engine_score[1]` column and peptide quantities in the peptide_abundance_study_variable` columns. [mzTab](http://www.psidev.info/mztab) is a light-weight format to report mass spectrometry search results. It provides all important information about identified peptide hits and is compatible with the PRIDE Archive - proteomics data repository. ## VCF @@ -112,7 +112,7 @@ These CSV files list all of the theoretically possible neoepitope sequences from -This CSV lists all neoepitopes that are found during the mass spectrometry search, independant of binding predictions. +This CSV which lists all neoepitopes that are found during the mass spectrometry search, independant of binding predictions The format is as follows: ```bash @@ -133,7 +133,7 @@ peptide sequence geneID -This CSV file contains all theoretically possible neoepitope sequences from the variants that were specified in the vcf. +This CSV fils contains all theoretically possible neoepitope sequences from the variants that were specified in the vcf The format is shown below ```bash @@ -156,21 +156,21 @@ Sequence Antigen ID Variants -This folder contains the binding predictions of all detected class 1 or 2 peptides and all theoretically possible neoepitope sequences +This folder containing the binding predictions of all detected class 1 or 2 peptides and all theoretically possible neoepitope sequences The prediction outputs are comma-separated table (CSV) for each allele, listing each peptide sequence and its corresponding predicted affinity scores: ```bash peptide allele prediction prediction_low prediction_high prediction_percentile ``` -## Retention time prediction +## Rotation time prediction
    Output files - `RT_prediction` - - `*id_RTpredicted.csv`: If `--predict_RT` is specified, the retention time found peptides are provided - - `*txt_RTpredicted.csv`: If `--predict_RT` is specified, the retention time predicted neoepitopes are provided + - `*id_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time found peptides are provided + - `*txt_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time predicted neoepitopes are provided
    @@ -197,7 +197,7 @@ Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQ - `pipeline_info/` - Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. - - Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameters are used when running the pipeline. + - Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. - Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`. diff --git a/docs/usage.md b/docs/usage.md index a812786e..7f61d95f 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -17,11 +17,11 @@ You will need to create a samplesheet with information about the samples you wou The `sample` identifiers have to be the same when you have multiple runs. The `Condition` identifiers can be used to further distinguish the sample groups. Below is an example for the same sample sequenced across 3 lanes: -```tsv -ID Sample Condition ReplicateFileName -1 WT A /path/to/MS/files/WT_A1.raw -2 WT A /path/to/MS/files/WT_A2.raw -3 WT A /path/to/MS/files/WT_A3.raw +```console +ID Sample Condition ReplicateFileName +1 WT A /path/to/MS/files/WT_A1.raw +2 WT A /path/to/MS/files/WT_A2.raw +3 WT A /path/to/MS/files/WT_A3.raw ``` @@ -31,20 +31,20 @@ The pipeline will auto-detect whether a sample is either a mzML or raw files usi A final samplesheet file consisting of both single- and paired-end data may look something like the one below. This is for 6 samples, where `TREATMENT_REP3` has been sequenced twice. -```tsv -ID Sample Condition ReplicateFileName -1 WT A /path/to/MS/files/WT_A1.raw -2 WT A /path/to/MS/files/WT_A2.raw -3 WT A /path/to/MS/files/WT_A3.raw -4 WT B /path/to/MS/files/WT_B1.raw -5 WT B /path/to/MS/files/WT_B2.raw -6 WT B /path/to/MS/files/WT_B3.raw -7 KO A /path/to/MS/files/KO_A1.raw -8 KO A /path/to/MS/files/KO_A2.raw -9 KO A /path/to/MS/files/KO_A3.raw -10 KO B /path/to/MS/files/KO_B1.raw -11 KO B /path/to/MS/files/KO_B2.raw -12 KO B /path/to/MS/files/KO_B3.raw +```console +ID Sample Condition ReplicateFileName +1 WT A /path/to/MS/files/WT_A1.raw +2 WT A /path/to/MS/files/WT_A2.raw +3 WT A /path/to/MS/files/WT_A3.raw +4 WT B /path/to/MS/files/WT_B1.raw +5 WT B /path/to/MS/files/WT_B2.raw +6 WT B /path/to/MS/files/WT_B3.raw +7 KO A /path/to/MS/files/KO_A1.raw +8 KO A /path/to/MS/files/KO_A2.raw +9 KO A /path/to/MS/files/KO_A3.raw +10 KO B /path/to/MS/files/KO_B1.raw +11 KO B /path/to/MS/files/KO_B2.raw +12 KO B /path/to/MS/files/KO_B3.raw ``` diff --git a/nextflow_schema.json b/nextflow_schema.json index 7f0c40f2..4dd081a3 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -62,8 +62,8 @@ }, "skip_decoy_generation": { "type": "boolean", - "description": "Add this parameter when you want to skip the generation of the decoy database, the consequence is that it prevents the generation of variants and FDR refinement", - "help_text": "If you want to use your own decoys, you can specify a dataset that includes decoy sequences. However, each database entry should keep the prefix 'DECOY_'.\nOne should consider though that this option will then prevent appending variants to the database and if not using reversed decoys the subset refinement FDR option will not work." + "description": "Set depending on whether own decoy database should be used", + "help_text": "If you want to use your own decoys, you can specify a dataset that includes decoy sequences. However, each database entry should keep the prefix 'DECOY_'.\nOne should consider though that this option will then prevent to append variants to the database and if not using reversed decoys the subset refinement FDR option will not work." } } }, @@ -76,7 +76,7 @@ "pick_ms_levels": { "type": "integer", "default": 2, - "description": "Specify the MS levels for which the peak picking is applied (unless you use `--run_centroidisation`)." + "description": "If one ms level in the raw ms data is not centroided, specify the level here. (eg. 2)" }, "run_centroidisation": { "type": "boolean", @@ -93,29 +93,29 @@ "peptide_min_length": { "type": "integer", "default": 8, - "description": "Specify the minimum length of peptides to be considered after processing" + "description": "Specify the minimum length of peptides considered after processing" }, "peptide_max_length": { "type": "integer", "default": 12, - "description": "Specify the maximum length of peptides to be considered after processing" + "description": "Specify the maximum length of peptides considered after processing" }, "fragment_mass_tolerance": { "type": "number", "default": 0.02, - "description": "Specify the fragment mass tolerance to be used for the comet database search.", + "description": "Specify the fragment mass tolerance used for the comet database search.", "help_text": "For High-Resolution instruments a fragment mass tolerance value of 0.02 is recommended. (See the Comet parameter documentation: eg. 0.02)" }, "precursor_mass_tolerance": { "type": "integer", "default": 5, - "description": "Specify the precursor mass tolerance to be used for the comet database search.", + "description": "Specify the precursor mass tolerance used for the comet database search.", "help_text": " For High-Resolution instruments a precursor mass tolerance value of 5ppm is recommended. (eg. 5)" }, "fragment_bin_offset": { "type": "integer", "default": 0, - "description": "Specify the fragment bin offset to be used for the comet database search.", + "description": "Specify the fragment bin offset used for the comet database search.", "help_text": "For High-Resolution instruments a fragment bin offset of 0 is recommended. (See the Comet parameter documentation: eg. 0)" }, "number_mods": { @@ -159,13 +159,13 @@ "fixed_mods": { "type": "string", "description": "Specify which fixed modifications should be applied to the database search", - "help_text": "e.g. 'Carbamidomethyl (C)' (see OpenMS modifications; for a list of options, see parameter description on https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/nightly/html/TOPP_CometAdapter.html)" + "help_text": "e.g. 'Carbamidomethyl (C)' (see OpenMS modifications)" }, "variable_mods": { "type": "string", "default": "Oxidation (M)", "description": "Specify which variable modifications should be applied to the database search", - "help_text": "e.g. 'Oxidation (M)' (see OpenMS modifications; for a list of options, see parameter description on https://abibuilder.informatik.uni-tuebingen.de/archive/openms/Documentation/nightly/html/TOPP_CometAdapter.html)" + "help_text": "e.g. 'Oxidation (M)' (see OpenMS modifications)" }, "use_x_ions": { "type": "boolean", @@ -189,7 +189,7 @@ }, "remove_precursor_peak": { "type": "boolean", - "description": "Include if you want to remove all peaks around precursor m/z", + "description": "Include precursor ions into the peptide spectrum matching", "default": false }, "spectrum_batch_size": { @@ -311,17 +311,17 @@ }, "variant_indel_filter": { "type": "boolean", - "description": "Set this option to not consider insertions and deletions for variant translation", + "description": "Specify whether insertions and deletions should not be considered for variant translation", "default": false }, "variant_frameshift_filter": { "type": "boolean", - "description": "Set this option to not consider frameshifts for variant translation", + "description": "Specify whether frameshifts should not be considered for variant translation", "default": false }, "variant_snp_filter": { "type": "boolean", - "description": "Set this option to not consider snps for variant translation" + "description": "Specify whether snps should not be considered for variant translation" } } }, From 42c196076f5658528c919b9365069ceb871e9593 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Wed, 30 Mar 2022 11:06:29 +0200 Subject: [PATCH 64/88] Update: README --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 80b89d23..b9c8f587 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,19 @@ The nf-core/mhcquant pipeline comes with documentation about the pipeline [usage nf-core/mhcquant was originally written by [Leon Bichmann](https://github.com/Leon-Bichmann) from the [Kohlbacher Lab](https://kohlbacherlab.org/). The pipeline was re-written in Nextflow DSL2 and is primarily maintained by [Marissa Dubbelaar](https://github.com/marissaDubbelaar) from [Clinical Collaboration Unit Translational Immunology](https://www.medizin.uni-tuebingen.de/en-de/das-klinikum/einrichtungen/kliniken/medizinische-klinik/kke-translationale-immunologie) and [Quantitative Biology Center](https://uni-tuebingen.de/forschung/forschungsinfrastruktur/zentrum-fuer-quantitative-biologie-qbic/) in Tübingen. -Helpful contributors: - [Lukas Heumos](https://github.com/Zethson) - [Alexander Peltzer](https://github.com/apeltzer) - [Maxime Garcia](https://github.com/maxulysse) - [Gisela Gabernet](https://github.com/ggabernet) - [Leon Kuchenbecker](https://github.com/lkuchenb) - [Phil Ewels](https://github.com/ewels) - [Christian Fufezan](https://github.com/fu) - [Sven Fillinger](https://github.com/sven1103) - [Kevin Menden](https://github.com/KevinMenden) +Helpful contributors: + +- [Lukas Heumos](https://github.com/Zethson) +- [Alexander Peltzer](https://github.com/apeltzer) +- [Maxime Garcia](https://github.com/maxulysse) +- [Gisela Gabernet](https://github.com/ggabernet) +- [Susanne Jodoin](https://github.com/SusiJo) +- [Oskar Wacker](https://github.com/WackerO) +- [Leon Kuchenbecker](https://github.com/lkuchenb) +- [Phil Ewels](https://github.com/ewels) +- [Christian Fufezan](https://github.com/fu) +- [Sven Fillinger](https://github.com/sven1103) +- [Kevin Menden](https://github.com/KevinMenden) ## Contributions and Support From 90478ce15dfa9c35fa9733269f6a5cfc7320cd02 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Wed, 30 Mar 2022 11:38:29 +0200 Subject: [PATCH 65/88] Update: CHANGELOG properly --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3861deb..bbd01fde 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,6 @@ - nf-core template update (version 2.3.2) - Adjustments of the `PRE_QUANTIFICATION` subworkflow: `OPENMS_FALSEDISCOVERYRATE`, `OPENMS_IDFILTER_FOR_ALIGNMENT`, and `OPENMS_TEXTEXPORTER_PSMS` - Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write a combined FDR filtered output file for unquantified data -- Removed the table of contents from usage.md -- [#200](https://github.com/nf-core/mhcquant/pull/200) fixes some typos and stuff in the output documentation -- [#192](https://github.com/nf-core/mhcquant/issues/192) Fixed samplesheet format in usage.md - [#195](https://github.com/nf-core/mhcquant/issues/195) Updated parameter documentation - [#189](https://github.com/nf-core/mhcquant/issues/189) Added backslashes in Quick Start in README - [#188](https://github.com/nf-core/mhcquant/issues/188) Added reference links to README @@ -17,6 +14,9 @@ ### `Fixed` - Typo in previous release date +- [#199](https://github.com/nf-core/mhcquant/issues/199) Fixes some typos and stuff in the output documentation +- [#192](https://github.com/nf-core/mhcquant/issues/192) Fixed samplesheet format in usage.md +- [#184](https://github.com/nf-core/mhcquant/issues/184) Fix parsing for VEP annotated VCF files ### `Dependencies` From 59efca790fec1c0ffa9da05755011b7d3ecde310 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar <71317334+marissaDubbelaar@users.noreply.github.com> Date: Wed, 30 Mar 2022 12:23:16 +0200 Subject: [PATCH 66/88] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index fe411903..6dcfd7f4 100644 --- a/README.md +++ b/README.md @@ -55,12 +55,12 @@ On release, automated continuous integration tests run the pipeline on a full-si 4. Start running your own analysis! ```bash - nextflow run nf-core/mhcquant -profile test, - --input 'samples.tsv' - --fasta 'SWISSPROT_2020.fasta' - --allele_sheet 'alleles.tsv' - --predict_class_1 - --refine_fdr_on_predicted_subset + nextflow run nf-core/mhcquant -profile test, \ + --input 'samples.tsv' \ + --fasta 'SWISSPROT_2020.fasta' \ + --allele_sheet 'alleles.tsv' \ + --predict_class_1 \ + --refine_fdr_on_predicted_subset \ --outdir ./results ``` From 91864d8db37b340ae4f53d86faf5714d9208073a Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar <71317334+marissaDubbelaar@users.noreply.github.com> Date: Wed, 30 Mar 2022 12:24:08 +0200 Subject: [PATCH 67/88] Update output.md --- docs/output.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/output.md b/docs/output.md index 23a93055..a3b910ad 100644 --- a/docs/output.md +++ b/docs/output.md @@ -133,7 +133,7 @@ peptide sequence geneID -This CSV fils contains all theoretically possible neoepitope sequences from the variants that were specified in the vcf +This CSV file contains all theoretically possible neoepitope sequences from the variants that were specified in the vcf The format is shown below ```bash From 10cc16c568fa56f82ec755b864253e2800ed5655 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar <71317334+marissaDubbelaar@users.noreply.github.com> Date: Wed, 30 Mar 2022 12:24:31 +0200 Subject: [PATCH 68/88] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bbd01fde..f55f8ded 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # nf-core/mhcquant: Changelog -## v2.3.0 nfcore/mhcquant "White Gold Swallow" - 2022/mm/dependency +## v2.3.0 nfcore/mhcquant "White Gold Swallow" - 2022/mm/day ### `Added` From ac926982ce167224a8181034cb805bd01126d64f Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar <71317334+marissaDubbelaar@users.noreply.github.com> Date: Wed, 30 Mar 2022 12:25:29 +0200 Subject: [PATCH 69/88] Update usage.md --- docs/usage.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index 7f61d95f..25eb8736 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -17,7 +17,7 @@ You will need to create a samplesheet with information about the samples you wou The `sample` identifiers have to be the same when you have multiple runs. The `Condition` identifiers can be used to further distinguish the sample groups. Below is an example for the same sample sequenced across 3 lanes: -```console +```tsv ID Sample Condition ReplicateFileName 1 WT A /path/to/MS/files/WT_A1.raw 2 WT A /path/to/MS/files/WT_A2.raw @@ -31,7 +31,7 @@ The pipeline will auto-detect whether a sample is either a mzML or raw files usi A final samplesheet file consisting of both single- and paired-end data may look something like the one below. This is for 6 samples, where `TREATMENT_REP3` has been sequenced twice. -```console +```tsv ID Sample Condition ReplicateFileName 1 WT A /path/to/MS/files/WT_A1.raw 2 WT A /path/to/MS/files/WT_A2.raw From 9e9c8b0e0c5204b50afb4b4d16df548201c32d66 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Wed, 30 Mar 2022 12:40:37 +0200 Subject: [PATCH 70/88] Update: README --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 80b89d23..b650f1c3 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,19 @@ The nf-core/mhcquant pipeline comes with documentation about the pipeline [usage nf-core/mhcquant was originally written by [Leon Bichmann](https://github.com/Leon-Bichmann) from the [Kohlbacher Lab](https://kohlbacherlab.org/). The pipeline was re-written in Nextflow DSL2 and is primarily maintained by [Marissa Dubbelaar](https://github.com/marissaDubbelaar) from [Clinical Collaboration Unit Translational Immunology](https://www.medizin.uni-tuebingen.de/en-de/das-klinikum/einrichtungen/kliniken/medizinische-klinik/kke-translationale-immunologie) and [Quantitative Biology Center](https://uni-tuebingen.de/forschung/forschungsinfrastruktur/zentrum-fuer-quantitative-biologie-qbic/) in Tübingen. -Helpful contributors: - [Lukas Heumos](https://github.com/Zethson) - [Alexander Peltzer](https://github.com/apeltzer) - [Maxime Garcia](https://github.com/maxulysse) - [Gisela Gabernet](https://github.com/ggabernet) - [Leon Kuchenbecker](https://github.com/lkuchenb) - [Phil Ewels](https://github.com/ewels) - [Christian Fufezan](https://github.com/fu) - [Sven Fillinger](https://github.com/sven1103) - [Kevin Menden](https://github.com/KevinMenden) +Helpful contributors: + +- [Lukas Heumos](https://github.com/Zethson) +- [Alexander Peltzer](https://github.com/apeltzer) +- [Maxime Garcia](https://github.com/maxulysse) +- [Gisela Gabernet](https://github.com/ggabernet) +- [Susanne Jodoin](https://github.com/SusiJo) +- [Oskar Wacker](https://github.com/WackerO) +- [Leon Kuchenbecker](https://github.com/lkuchenb) +- [Phil Ewels](https://github.com/ewels) +- [Christian Fufezan](https://github.com/fu) +- [Sven Fillinger](https://github.com/sven1103) +- [Kevin Menden](https://github.com/KevinMenden) ## Contributions and Support From b77b80ccec6c3cd3ec8bf55afa8ba6f3d897e781 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Wed, 30 Mar 2022 12:42:09 +0200 Subject: [PATCH 71/88] Update: README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b650f1c3..b9c8f587 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ The nf-core/mhcquant pipeline comes with documentation about the pipeline [usage nf-core/mhcquant was originally written by [Leon Bichmann](https://github.com/Leon-Bichmann) from the [Kohlbacher Lab](https://kohlbacherlab.org/). The pipeline was re-written in Nextflow DSL2 and is primarily maintained by [Marissa Dubbelaar](https://github.com/marissaDubbelaar) from [Clinical Collaboration Unit Translational Immunology](https://www.medizin.uni-tuebingen.de/en-de/das-klinikum/einrichtungen/kliniken/medizinische-klinik/kke-translationale-immunologie) and [Quantitative Biology Center](https://uni-tuebingen.de/forschung/forschungsinfrastruktur/zentrum-fuer-quantitative-biologie-qbic/) in Tübingen. -Helpful contributors: +Helpful contributors: - [Lukas Heumos](https://github.com/Zethson) - [Alexander Peltzer](https://github.com/apeltzer) From 466c7a3a7db1b6da13cff5c67eb872641d346a72 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar <71317334+marissaDubbelaar@users.noreply.github.com> Date: Wed, 30 Mar 2022 13:00:22 +0200 Subject: [PATCH 72/88] Update the conflicting information --- README.md | 14 +++++++------- docs/output.md | 16 ++++++++-------- docs/usage.md | 34 +++++++++++++++++----------------- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 6dcfd7f4..9a6ff9c8 100644 --- a/README.md +++ b/README.md @@ -116,26 +116,26 @@ In addition, references of tools and data used in this pipeline are as follows: > **Fred2 Immunoinformatics Toolbox** > -> Schubert B. et al, _Bioinformatics_ 2016 Jul 1;32(13):2044-6. doi: 10.1093/bioinformatics/btw113. Epub 2016 Feb 26 +> Schubert B. et al, _Bioinformatics_ 2016 Jul 1;32(13):2044-6. doi: [10.1093/bioinformatics/btw113](https://academic.oup.com/bioinformatics/article/32/13/2044/1743767). Epub 2016 Feb 26 > > **Comet Search Engine** > -> Eng J.K. et al, _J Am Soc Mass Spectrom._ 2015 Nov;26(11):1865-74. doi: 10.1007/s13361-015-1179-x. Epub 2015 Jun 27. +> Eng J.K. et al, _J Am Soc Mass Spectrom._ 2015 Nov;26(11):1865-74. doi: [10.1007/s13361-015-1179-x](https://pubs.acs.org/doi/10.1007/s13361-015-1179-x). Epub 2015 Jun 27. > > **Percolator** > -> Käll L. et al, _Nat Methods_ 2007 Nov;4(11):923-5. doi: 10.1038/nmeth1113. Epub 2007 Oct 21. +> Käll L. et al, _Nat Methods_ 2007 Nov;4(11):923-5. doi: [10.1038/nmeth1113](https://www.nature.com/articles/nmeth1113). Epub 2007 Oct 21. > > **Identification based RT Alignment** > -> Weisser H. et al, _J Proteome Res._ 2013 Apr 5;12(4):1628-44. doi: 10.1021/pr300992u. Epub 2013 Feb 22. +> Weisser H. et al, _J Proteome Res._ 2013 Apr 5;12(4):1628-44. doi: [10.1021/pr300992u](https://pubs.acs.org/doi/10.1021/pr300992u). Epub 2013 Feb 22. > > **Targeted peptide quantification** > -> Weisser H. et al, _J Proteome Res._ 2017 Aug 4;16(8):2964-2974. doi: 10.1021/acs.jproteome.7b00248. Epub 2017 Jul 19. +> Weisser H. et al, _J Proteome Res._ 2017 Aug 4;16(8):2964-2974. doi: [10.1021/acs.jproteome.7b00248](https://pubs.acs.org/doi/10.1021/acs.jproteome.7b00248). Epub 2017 Jul 19. > > **MHC affinity prediction** > -> O'Donnell T.J., _Cell Syst._ 2018 Jul 25;7(1):129-132.e4. doi: 10.1016/j.cels.2018.05.014. Epub 2018 Jun 27. +> O'Donnell T.J., _Cell Syst._ 2018 Jul 25;7(1):129-132.e4. doi: [10.1016/j.cels.2018.05.014](https://www.sciencedirect.com/science/article/pii/S2405471218302321). Epub 2018 Jun 27. > -> Shao X.M., _Cancer Immunol Res._ 2020 Mar;8(3):396-408. doi: 10.1158/2326-6066.CIR-19-0464. Epub 2019 Dec 23. +> Shao X.M., _Cancer Immunol Res._ 2020 Mar;8(3):396-408. doi: [10.1158/2326-6066.CIR-19-0464](https://aacrjournals.org/cancerimmunolres/article/8/3/396/469597/High-Throughput-Prediction-of-MHC-Class-I-and-II). Epub 2019 Dec 23. diff --git a/docs/output.md b/docs/output.md index a3b910ad..3293647c 100644 --- a/docs/output.md +++ b/docs/output.md @@ -79,7 +79,7 @@ The output mzTab contains many columns annotating the most important information PEP sequence accession best_search_engine_score[1] retention_time charge mass_to_charge peptide_abundance_study_variable[1] ``` -Most important to know that in this format we annotated the q-value of each peptide identification in the `best_seach_engine_score[1]` column and peptide quantities in the peptide_abundance_study_variable` columns. +Most important to know is that in this format we annotated the q-value of each peptide identification in the `best_search_engine_score[1]` column and peptide quantities in the peptide_abundance_study_variable` columns. [mzTab](http://www.psidev.info/mztab) is a light-weight format to report mass spectrometry search results. It provides all important information about identified peptide hits and is compatible with the PRIDE Archive - proteomics data repository. ## VCF @@ -112,7 +112,7 @@ These CSV files list all of the theoretically possible neoepitope sequences from -This CSV which lists all neoepitopes that are found during the mass spectrometry search, independant of binding predictions +This CSV lists all neoepitopes that are found during the mass spectrometry search, independant of binding predictions. The format is as follows: ```bash @@ -133,7 +133,7 @@ peptide sequence geneID -This CSV file contains all theoretically possible neoepitope sequences from the variants that were specified in the vcf +This CSV file contains all theoretically possible neoepitope sequences from the variants that were specified in the vcf. The format is shown below ```bash @@ -156,21 +156,21 @@ Sequence Antigen ID Variants -This folder containing the binding predictions of all detected class 1 or 2 peptides and all theoretically possible neoepitope sequences +This folder contains the binding predictions of all detected class 1 or 2 peptides and all theoretically possible neoepitope sequences The prediction outputs are comma-separated table (CSV) for each allele, listing each peptide sequence and its corresponding predicted affinity scores: ```bash peptide allele prediction prediction_low prediction_high prediction_percentile ``` -## Rotation time prediction +## Retention time prediction
    Output files - `RT_prediction` - - `*id_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time found peptides are provided - - `*txt_RTpredicted.csv`: If `--predict_RT` is specified, the rotation time predicted neoepitopes are provided + - `*id_RTpredicted.csv`: If `--predict_RT` is specified, the retention time found peptides are provided + - `*txt_RTpredicted.csv`: If `--predict_RT` is specified, the retention time predicted neoepitopes are provided
    @@ -197,7 +197,7 @@ Results generated by MultiQC collate pipeline QC from supported tools e.g. FastQ - `pipeline_info/` - Reports generated by Nextflow: `execution_report.html`, `execution_timeline.html`, `execution_trace.txt` and `pipeline_dag.dot`/`pipeline_dag.svg`. - - Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameter's are used when running the pipeline. + - Reports generated by the pipeline: `pipeline_report.html`, `pipeline_report.txt` and `software_versions.yml`. The `pipeline_report*` files will only be present if the `--email` / `--email_on_fail` parameters are used when running the pipeline. - Reformatted samplesheet files used as input to the pipeline: `samplesheet.valid.csv`. diff --git a/docs/usage.md b/docs/usage.md index 25eb8736..a5f44fc7 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -18,10 +18,10 @@ The `sample` identifiers have to be the same when you have multiple runs. The `C Below is an example for the same sample sequenced across 3 lanes: ```tsv -ID Sample Condition ReplicateFileName -1 WT A /path/to/MS/files/WT_A1.raw -2 WT A /path/to/MS/files/WT_A2.raw -3 WT A /path/to/MS/files/WT_A3.raw +ID Sample Condition ReplicateFileName +1 WT A /path/to/MS/files/WT_A1.raw +2 WT A /path/to/MS/files/WT_A2.raw +3 WT A /path/to/MS/files/WT_A3.raw ``` @@ -32,19 +32,19 @@ The pipeline will auto-detect whether a sample is either a mzML or raw files usi A final samplesheet file consisting of both single- and paired-end data may look something like the one below. This is for 6 samples, where `TREATMENT_REP3` has been sequenced twice. ```tsv -ID Sample Condition ReplicateFileName -1 WT A /path/to/MS/files/WT_A1.raw -2 WT A /path/to/MS/files/WT_A2.raw -3 WT A /path/to/MS/files/WT_A3.raw -4 WT B /path/to/MS/files/WT_B1.raw -5 WT B /path/to/MS/files/WT_B2.raw -6 WT B /path/to/MS/files/WT_B3.raw -7 KO A /path/to/MS/files/KO_A1.raw -8 KO A /path/to/MS/files/KO_A2.raw -9 KO A /path/to/MS/files/KO_A3.raw -10 KO B /path/to/MS/files/KO_B1.raw -11 KO B /path/to/MS/files/KO_B2.raw -12 KO B /path/to/MS/files/KO_B3.raw +ID Sample Condition ReplicateFileName +1 WT A /path/to/MS/files/WT_A1.raw +2 WT A /path/to/MS/files/WT_A2.raw +3 WT A /path/to/MS/files/WT_A3.raw +4 WT B /path/to/MS/files/WT_B1.raw +5 WT B /path/to/MS/files/WT_B2.raw +6 WT B /path/to/MS/files/WT_B3.raw +7 KO A /path/to/MS/files/KO_A1.raw +8 KO A /path/to/MS/files/KO_A2.raw +9 KO A /path/to/MS/files/KO_A3.raw +10 KO B /path/to/MS/files/KO_B1.raw +11 KO B /path/to/MS/files/KO_B2.raw +12 KO B /path/to/MS/files/KO_B3.raw ``` From 24765b2b14dc59455e0a389ba88e0d00caf71928 Mon Sep 17 00:00:00 2001 From: SusiJo Date: Thu, 31 Mar 2022 11:15:08 +0200 Subject: [PATCH 73/88] uploaded new workflow picture --- CHANGELOG.md | 1 + README.md | 2 +- assets/MHCquant_scheme.png | Bin 274254 -> 0 bytes assets/mhcquant_web.png | Bin 0 -> 1048862 bytes 4 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 assets/MHCquant_scheme.png create mode 100644 assets/mhcquant_web.png diff --git a/CHANGELOG.md b/CHANGELOG.md index f55f8ded..057ac783 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ ### `Added` +- [#206](https://github.com/nf-core/mhcquant/issues/206) Updated the workflow picture - nf-core template update (version 2.3.2) - Adjustments of the `PRE_QUANTIFICATION` subworkflow: `OPENMS_FALSEDISCOVERYRATE`, `OPENMS_IDFILTER_FOR_ALIGNMENT`, and `OPENMS_TEXTEXPORTER_PSMS` - Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write a combined FDR filtered output file for unquantified data diff --git a/README.md b/README.md index 9a6ff9c8..ab4993e7 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ On release, automated continuous integration tests run the pipeline on a full-si 1. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)) -![overview](assets/MHCquant_scheme.png) +![overview](assets/mhcquant_web.png) (This chart was created with the help of [Lucidchart](https://www.lucidchart.com)) ## Quick Start diff --git a/assets/MHCquant_scheme.png b/assets/MHCquant_scheme.png deleted file mode 100644 index 7448a95ce355f1f63b02e0c5f4e810ef5245b603..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274254 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�Kel@Rd3*kJWbKxKleFeawlJNGLhmNRi(VdpHE zsPDlsP{_^d%2h>=gT67)dI`_28G?}#Xz8*XJH5vu+sM2OK|W^bjt2x(Js8-2LNS!# zRwt%T5MHoyWY}cz%Vy^c@UQHO@&^+P7r(eZX7Vw38MtyDO9Gt(4}W*G6gmjoy{g^f z8%JJv=g)Py-WH>+tIG2Cy<8IJ&S$?k_aLgHcgA=!O2b73T5=%M^j`F6Vz2zqvt-QY zj(fnQPlZf4^I4fv-Zw8SyH4YYUeDT^zV%c_#NiQ6bN}%Gh;wAVT;4&u1}+kW_Zprl z^H>wm4^tF+TZRy?6WZHSUUUsQV>0+Tt&&qH+xvgkz`MW&+1wKEa_2fo2w&;CmB(Va zt|3B%4Hm@lTa@V=oMT+ZD3x4Zu9R7=sC;booycH@zk}6KLl?z_sNGP|9}% zh+7fToxS$V*!U=naAwg#rJQ#1^x>c_;%$3F$=rKH?^_$ua+qe=H45>3Zxhp$ihE?~ z!h|I^k7|^qh%3MU^l)-gbvWhw?f6 zU|CU4O+=ny#yi`7uN_PB21+MNSYk8R>!?_0o5Er%)C8(UFb7kU_SJE=f_I^P*$rh4 zf|&CtQFtR-yCg&+A=v8!TGR8UmvC)Pf+0K7C*kT$T6eNi0um8|GaW$ZJI#hOzqA=JO??xpbzNY#uK#$ba^7sX9bx$oE#E zj%hs2$vyn{)si8G<0^x{>Az4{>1Ycl$c!3=ZT&0j>9dk^wV3KB2BF=>WobQm~OU1wWzO&l95hUPVmxJVj&w4kr`<@ZkpnwaQxomkJ7AUQ# ztD%Gu%=D&mEW_(1Pm}r-*Md*ivzxhEdm3tDlX&4`FxxroQd%j8nqz8`1z?%uEmJ3n4Cco5-cT%`~z;aU2_piF452Wk|k|NkgH+#Uh5-~bVW z!iMv|3k}z_KrTyLTrG-uXT2?2@j;p?lRY+jN^OS45!fgW#&K<=Lp!zUoI~ph2E3_Z zl|R009JupX{aJ8miMUORpr0OKD!=s}@XLA+dajNeScksln!lG0WjS(VP_QnolZ9Wl zVg2k?-%A62s*ry3NZ6vJ)y528#So4mCpfu#I8F=+G#X?l>`BDt_e{tbR9GIJdvp~5>L2@D=n)=W#^g|i0xRQ{8dq< zCa2~=VuiMf>Vhj|;X!zomf(AP!La(q5ke!CJ8jqHzCyr_#K4#t##)uxR&wAZcs)_$ zjqsrBdWA&AWqIW?z^y4QXLu^V1yR(WzKc5>F6&caaCZ9hA2~u3Ml-_B7go4=P|h)< zOH)|hL4(W^IuYXw(S5wK!n;pC%EkcPg1Xc&%x|hv!W*|D5Gk9T5@z2gavpAnZr%xP zL%5!(N8GqO%C(zF$x>KiN;I&A|HB1e47+f}^r|R| z{~2}=>tz*T)W;i&6B0S|AHj{PCAo97b332vp2MFCO|3FGU##={0Hxtg^6R;9Q>Syg zcN5{pLnFULI%<(%Ea|zt==wkZ9Cp9N+X8!T5W|ln2$*M3Q-Ec^cYJ zoferd21!pM1}veTU_~U8Ow_=Gi1m@lo6$L1Fm5IO5~Zb5HDTsxf7p(2h9B z%~-zkey093?$%UDA?Bh{o)}nMEAJUYnpBTy#2_&P^Fl{$1}!_i+AWPE>#Fmb^X@~o zqUA~5#!xQ&A`B<~Z$yO3v&DX$*7box_Di8<-!Eby1D=6K?VLx8QcT5zQ0tm@_SD-~ zuOxOU62Q}?=&Wu4ngiqM$+17wZnjRCgC(Aw&||}ar2ly5c}?}+Pk9d$EG4*FN>549 zQqp(|^M5qG4;9q4L<(gyx4|g({Q7suK7BZ1a_Fu~e6^wsp|}hi+I!v-B=WfK%|jI> zz%?(w%-p_mJ{SHh|ATl!JK&HK$~3fGdHbCTBuGQP*?T;i3fJ#fxX@SRo7|> zQh4ewTz=b-Vqlx%75T>rYbe!;!#18NyVW#wpx!;HdpLU%jaEavpb>pLmGHzO#g;;< zq2x`&_VAyqz{6KX*fA3EXM3@!4yVElT8`|x`^CKr17zm4%vPWp^h@$>cfCiQAizld zPdN^xMY(y6C1q^!+ZN{BO}Rm14T=q)sx|H+zwaV#uTXVtMEs~;Aprb-wzLb!1uD9v zgMax5fb-I7PZ!_FDPeKV=8nYWbT7=TEpbq{P45KDk1e#LZIklFlY%}r*E;k&9$TA*Uq~1Hq52c+E5p{d z_8;HtwjZ?i!t7wIiy;I-Lf>6>H-CRG-N*}2{3JC#<2+W^KG|WHKbB*|UG!z)n)$O< z0UhGB^06O7nFkrKmPl1@nMOuo;IMh}q;JP9LYb4Y^LwtxQJxbC!G-8{{AV?#&>p8A ztQnG(%P_d^wqM-tiieTDSfaYQC`9FR$#$XRHmA%vKeDJb?T6}%%!!>UM)&3Kt|HY5 z#Uxa$7m8e6ctMIFw=SWf+)sB<#K8uPg0!oooVS|FpT*Wv6K0ktb>f@J`9Fu=evvCp zm{P|c`2<&p5VgT{xZ3*BLGGO>taTh5A3_4%(?&%bI+n&kF#xFWgtK;WgO)t-Nr~DNw0xQ6nLAkN7$^M)`qsxTc&Iv!U=rHzA<14|Qy_gj-O+2uILCAEe=@Ak_KzEJ!5a=VtFXh~a~rlU;Id5;(@jV||B>_SnqzvXS9CPzka@ zYn2to_))rlBVh&a5<9(+t9A=HMXsAOEqjqaTe?qn>T04*{@gIw<}G4TuM96g>3)QX zd`1%;8?!>*s2^jw`nI}cWQe(9%Fv~aGxl9XTUtzP20j?qBNr%)=3^EAEjMyN7=?iD z<8*RplP0To7+M@Amp!Uc+W#mUqq%*ZS3qe!VPz3V!e59Wv#WXYm0T6JFL>HQloz7v zzM+H~2~xTJwK@>Oua?#N9);v^Dd65CP@I1R`2+z*Be)T6g_&2fZt)H5Z~$l@@8$)?~c?=5(tiRTko4 z!@ep$nI_6?ZAi4Lv3xar>1yMd|Lj=QBkoD?(b^Rj^SSP}smEv*t};i+i-E=0&{}Wr zGZu;VgziQ4C)bUC;OBXsQlD(Z&~mkvkK#hFYPog4F$^L9meC2sej;g$WuB=``vm;t z!S|x=I%4&zar5da{T9y@LUV`Tgwj~h>~p8x#oanHpHu!I2=YEJRxcdq0%FONw`ad1 zzQJOXffaZJRlYcEy?lF1Tj>cABMC567(ZD0%W4t6$Q#A~N!b}Mc#enL7Ys%0+9_%qX$){_HL@2_h9ezh6yKLWa+(eRGtZE1nG($zYX`yL zNj!3;>`8FgF4c+JkVW3-9=7VO&OFUv5z+m{-q#87;|CsDy&xxuxhO0&*{&SU&bX?! zD5YT7$~1R&1*|i`xIeETT_H^Q{iiFr9`Lt+>d2xBV1~3Degy~UmtLq}>nW%mF!JFT zJ1DdT8QG%o#J5DmM(mb16mxjx+NiG08;$D1U7G?<^{#^$G5g<>bW> z&p4dEtZOPHk%heFBy`3n-KM3_jo zBiL`mMNEsbQU=azzQN=n3$d+n9KwRTLxrl&07V`Ll7FJf(7Ny3p0{ z`&_#e-`dKQbt-yDv6cF&E}p42JUz@{e=9jT$0~93HO^KasWSks7#5`{cvaN!j2~qm~ z5ZRSAXy&YQmUw5uIn>B~voOOu{`mS61Ma;MgX}lNp?0pS%&sFj2`>;z#C8TMjk2kN z2aJZg61fMyv+eFr>n99^Tjp*NwHbw)*pqk%u{ig}^0MYmafVt^Qk+fQXWtP2;NNDh z=S-9NusT7E_1DpN67ELH4L|x?E7qmXD$6M&=!&T!3&F6AU$_^h>@ix)>E?AUl(UajV5ZdOs z+Io!qNNzDm`bq?DzHa4Kf`HYIfU3+ddxNbkJ;Piqk)tsh#=&q>59X^D&KW9P%+~Eq zD~JAg@$}UFam!np#FWfBK`mwr!=W^myoaR{Ow;XO*^6f;)KUC!_tMRK_w?dSU&rSw zuHV2Q)gSopL5AKE$#Z=T$62cpG&6J)QfRQBei_~alGTqaGn`qAa?=eqUWU>%==Vh@ zTpFP;qMXPjo~=}Q{*$=|Jyz}Mcl4wZGqsGX$ z8Te*>R6i(Y>|T-)CJGie7C*iQaorqS<9=#c@I3m6C^>rZzLuOs$$fo#?$`^dWySQ+ zmsdO9Icv3f`D_G!pW08VZDfT*rJgqOEz9!Hlo8#*vvq8^aem&K>cLVQ)Fs6hq?gZn zu1k9_!f(&Tu$T&il50}nr>>u~ecwH}+%C}d^;f}R@TZ*hPn#i+swkwOd*AyP3!bGl z8PH$d_%Z$yq&hQ?p;DIGFdLp!v~i?53*r`sVZK_LGFTX6SSSj5OEqtDp$@ECzSE0! z3X+vrLzDDBr+4ihl<~i`{Y8#0XI7_xer)nZyIs}c>w1xItwMXUlxLhDOsi{8ZWM$F z2s1lys}bT3iaQr=Ff%ozsL^Tz_4tCYiVDRe;k;UFY9d_JS$$XQ(k3c&gpCfL$|^*v zZzA*}SVu=C&*&|=2p=>>8rF;)!Jb{NDs;@ zr&Y>|?X@@A>LOluw8|mNvkV&YRlvYL}x&-E(f~enhk{MPujN6pY&H ziNv$iuW9X_{qLY*4bv7W3EwAKdY6-|Um({^=G-Xg8u;zDN8QtG-vu{DGfTzFQ5-fs zEBC)V&N@NlovU`Rfgj=}nr$C>-{cLCQ>NmE^`1{vNq@%1p_YLY3H2SY+G@fQyx6lh zqK+9hu&dqqKy2|~SJ_xbE639K5H+>wUdZ(|5{K?5+tBDH*nQV5sZI9*yQzX0_qvfb z9of&RCbMUJ%SCcI6qW1p4H(RY4XfBd*h4vgUM|YJ_cL@^V;{{}T|Kotw#s8`{CLP3 zz2~PeS*5rtEB1=}vK(_IWoVsf`7ep)Fea-8aa~A7`vC1#_p;1TIWL4)9T*5~Ecmij zpkZ-%44a4+z%R;Wq`

    kKwrA^ujOmXbe$$jW}QDiiFm5)e1-D>@icnuj*4-sd-LM zF;gv#5!yXpq2yk~yJw@3YEWESn&~g*o%a(;L&+dNhj?Xt=OZH%pmg{ZPigUj8;vQ9 z=JUK)E*GdQ4_~4%8)X{`g}r;B5SQ;rE+MjBr1a(MrNr=FV5n+LxQX4d+)umq&=V~p zAF}XH-YxYcoM(8s_g%S!q{G%dLwz7!TK6iZWOnEx^Y=StZHTTD;L^5~+qfdZu_0%* zOO+-M{Bbmj4D+?oa3-+-UZ~0B>+Wmy8wkJY`evonUj=lc4vz2d z78PUngOf5xae4`id}{W&{j~Njp=^>waA?*@%shL|zJ*_$1fp%@E3~bVsPB5g*BdwV z3nTWwKYXH1=$m_~#zmkfID&RrB9^=!8xg+=;Em2{WNY`hzy~H0*IPzmhq+we*p-uJ z*_A!`T4WK;{9u9yL`LDNisDR!VuMY_Y*ZxCIp4TliGja$o;)JgvKZKM1wRQT*wbQ3 zWO^O4m3~Vr=e<{z38&lk6AtswFqHwX4Epty$fYWEsv4F%cCkF$)h^>L%>fQ$J%Y4jZ zQe>b41gG$~uc|u>2b;&Ntwf_pU0rCe7w8>_uZ?fs1B*rQYwH_mSF(WJmr|+8V?z_g z<(uhA^&4D1(_~Yxz-~+j{rlw4s?D(ro5f)`0>p=dO(#Ei(0Ul#<(4HS)0w9O8v(&D z$jLqW^ECz}e`~2eq(^I~Ct`nMg@;>T%pAcw6o%4Ax*;nqd{#T_w^Yl35&^>QK^{Br z7{2e^qnM4_Ik636ux?Pmh1BYQbt+Lf__lso4aYz)^`9jnnDh z%)NqZd-)Z0O`G^frLqCOG+I8v=+$rB;Z(x~(=(oA*H+x}pA+7q!=6C=OpJHXqh6@n zUS5YR7R6{QI6pg9O3yvaQ(3O|wdM-L8~NQKIc|s3Cc?QCX<%kdRUFdTqmP^vEnWH+ z#`xUsK;StrSSa4Ixi~6*(LiHGt(i@hV)VR~2{HTDte~}#gZ}yb-`o<1C`)peBCA{Y z3$nN8v|p)nAaIw#Paq=W%{Ii1x9N&s#D)(6<><%3Rj){a@wSgmp}8cLnsoo+R778nS}cbc&4-r6e*+tRuMx zQFXssC)AJ@QhZ(#st(RDK1s+VA0F4|0q&uuP@<2w2gi|}ng*oMzq zh2f;r9Tk@W^LnPsH*IOK{1AZjNDAiKpw?Zrvh`Mq$hc*~mm?+5oE0?l9LdRj`=uGR zvEId&*}r5akbW5nYSjv84Q2sC_@_6oaP+&VeapLG;qd8VzSVme8NfFpCcItis;xl! z0=W<`{WG!ZuYyu^KPXtB7RLwqYizjVg41xZk0awvSoc;zl+4kYIILvnqH#M;0Tpl( zlACqS;k8`X#|+L%w#dj5#NzpEcxgP?F~ATIqw>lob6{mE^V0YCkH%T0T)u%L1`}Q6 z7FlSi^;K+lrjRe{U-UlYdCg2A>B%~{fU^LH79GHeZF{C(eJD!s`6odLFBC69S@^p~ zuHKLG80aiG4b&;+mg;M_CpacizukgDByt_ur5(}nF;p1;(OJl=HCS#YAWi8lYn zEd`&%B(c|KBUaz+KPMBUE5sVZT|BUdGD5}i&NB{Yu#jvteRhhNidWE^Zk0tch$^9D zF`J>`jZko{M%SnP%Bp6Ko6qL9E}$qr$Qkuc`E0~^km#Rtv{Z>((_3M^$gHe?PDt|D zyeI!VuIF{MUr!M?e4PC{Fb-p@-uX242z_Bjm zNK5%CapG(sL}>a68@?bE>DB?^h06PrXytCx9m_ze?|pYHsh-q}+3u2Tl)ijzV!0ro zF2iiXIbwr4c~pH1c}0dfh1LG#S1a=J%R7$b z@HB5P1Pt(|tt!ym zG!y#uVssVrUX19)F_+|N?U4B1*G{m9Z8_L0T|h*J8K2F*q!wNX_J^-ACqbT}G7HHc zB(GvDHeEz5rl?oemevuZ0nRU^GM_2CY8e_dl~*4NfL5RO`L{KFPtk6I4y(@R=WS`I zeXO}MLTW4FKfV?yB$@N9=@e&I5Om+?KwSG)Fo~Q*vf`$CBR|nBe z51gA=vk_@74R+Jf5_bI?9ner?$or5Ty(k$?ekJ|lK!WE7%C8vQc93WCRYcJwai^D>C(NySiTcPW`wJX~6r3 z{$YC?u(cYn$$aCnC->K|#yhOGY4LU43oDz!PW}S7vHbJ@8n;kp7DJf1E#I0J)D81< zFfs5R>UKY$clM5VwE@nFRccQ=-&(^**(g*b}z&+8rX zi{fKZi)CHK-kdAG>j$3PT7r`SYF-InnI{`2U4!nuXmn_0T)Vi?jTV_i4eGzUqe2=! z5e&|Bt!o8MfA2`TAaR(-e;}^5weBv%Oh6%YRyD8p0nbB!S<}sH2!7F^Lzw{&a`qNI zFF1{GmXQ{m7q%947-AC z1dV{hcp@_+bfcPJ$MEO4)pPE5l6L(Drg9m#@VZ9qEbD!jzH6Pdz!ERD@E|~2#sI$3 zDi>eG#>(pI1QZuMU43B-sH{!MXfF*F3+sm+W9Tm?%*vHE-(JE`9NPud+i z?t`D13x#oA5kQRRsRe0u^Rg&OQn@6A1GK9&j-0H!xXy!(}B#i}bc;!3hcQ=^hPxW@@@m|1F3X7=?C z@`CQv3Qt!oU%;p5Ypowx5doJvUleKFfz4DX*cuTuzHgwFS)Et9 zSY4s%(mfW2Tn>@#b4$zlsOJ_l0&2kDvCMQfl~_2zH)@8!@jO!zq$o1w8+5eJqA*F^ z?gO2KdElq!>fgmDGCU&k?JvbVLnaxouPP@=k7^8%;;!4o73j@#U#b5QocOyH175wI zGTTFAtO_I(dOK7Ya^$#6X}I$_@0qfFZ|&;;)#gg;hy0BwvAo2*0ejSILHhe=2l2> z3l*!Fkv8Do2`z(*#U}kDXtVdo!vR6FgDLUDiHCxIKl(|Xrd>Y;OKC%eeto;5moWE8 zPc(LEN$9+`h_tgM`V~=MyElMt^}6u(R~p&wX2^FS9{c0anJ;#}bA~5Q-Of!cC3{Eu z3WvTWGRe=?#2|Tn>d;b|@KF;21$`_EDSCYK%Tg3NX>x-{^E`Q%5)g|^!)w&MFKIdF zHRN+L7P$MOdh#{sl<0Tjfyng=%GJovk@2vhKoYHM@U>SPa$z!Rk}7S(C+Ui#>G19a z<4_S(x3LD~ynJOI4K>*`*uFFZWB0D_3wOsns#Kc0fW@?r86Z$rRsP}3F?fMuF>AKd zQ>45lg_J#J=+)51uY2>8BWn#LXd$>!u$1RRe@1dQ!JIWX%>ZmVx$knNcN7LajrA0Z zskHkg?;vXf^A?>O?a;O;qHl-e1{)h+3{ff3i)Ex?(w;~wTli0eghNM??}oD7zQw)? z(F=+IuG`)DZl~o1#woNBOQuxU=x}p}4Bo=KuWRIf_*#yI0Pp1d*-gV&2b~2C4ZBn9 zYjv)F7Mq)G_=-jFsM4i2UgNjT5=~f;uf`bgjL*z*M6P<<@2v0MI{$8Si*MS4@$? zRAg{K_kB=Mbh4%X!9w?f8l9Be&UK<&=)O_KJXC$N7$O1?saEPt3M@%!x5RO+DY?7wLYIzS(NnDjG z<>Res-EQ+|g55sn^D6C*%A#RF`A=Rq{wjG`C1l9Bnc@BuXQXY>2qOCHB?M9ox8h3x&$G=m?6?oAmmbsbLB2_2HLkv;eoG0NOeg4cRW zy8FiK1ol1a>W-@&!tcPCQuiU?*Kbyki7M}w(JGR#fi_E;v0l=E^FSQ^&ZlntPt$_s z7v)6-2Eff;FQB8PZiUAuorM!5F$PY#^=IrKn%9?sle2$8l%6NPnOs`e>b{o~k5tS` z_I_azn%`^^TtzS}w1~Fbn2eOT>T#TksO58-9T;WNrnZ}TvwG6JgVlb*ffeqQyoneh)Q)|%NbfrfD1Sf{#dpq= zTMUx^xwHKvMK-%Dcpbh7B6?iBs0!+(juiy*kkHNJkT=4bmqcd9o@ib3>bGP9Ly!mr zM^}d6clz29UB?aZFUvQ~twAb(hI`t|QZWU;XGL7AReAV`2smc50aFZIRO{EY+HoZo zJt~Xx$K-Mae$Xt>DNqfl)s&}7tz_4b-3D79HkyTZCOB8^>!)n5s1Z0JA0Iu$DPdMA zpf4~+CvLpjju)bh(V@W$k?~JXkf0!9WLNQP75H)K!u!)H=wk@(I>kk>vzI^b*?_)g z#k)_5U0usa-nLANkO%PI4#llJ+@rB|;ub_aM{ zMOl5$_?ALZGjOBrq=uiI`_aTHOHA{ZOoz?3l>wM2Vs!xX}7l7kRM6k2$^5x>~ceie3k2JF zpb+OFtxNdwD+n70Dn!ht{#swM#2&@N9f$HFs8GA73?QlcyHOLDV>@sOBx2a+?805;0GqgjjhQ%RcqL@b<=0V?MbFP=B3$ot^*Yof=NnagGz1+w)2RIa54eH0mV%Q z$m5Ss9$ZHIqz1_`-u)VMKe2j0d3rK3FM0`F+2oxz*1k28u*{>+5-D~Xc-91enJnbM zx@Phmhv=Jh<2cLcOFKluJ*AeFM-1q_Sh9c?BJIszhp*$?*^aErZ*Xc}p}9{O-3qxC z6`#Zz(-QeMsjyDIpT`E0&Me>f5p&^$mE}sAd>h6YXqr~UE zg;TwEv~rXv#$Kh8_Fbf^e0y9T)n8|}{kB5c-MmL^tjg>dsg)uQl}guvY@^Bta+4$D zY%-M{>=1`ScBOY)x6?5p6&h=TH6)7lyQ_G@A9F8_g2u+U$3I8B*bTWx^j#8Q4xNt} z=qlz?2O-urYYW}{YYSl(%Wa&6cP^7aLF<`yykVK*BAEbR%Kgj5B-5lD(;;z&7FlzZ z%eU-zNAHc*x`c=we(fxX4KFVfosQJ2=iU>HJxHi+l9D`1 zyoYp)r@=h@t6opOp%-X-SwS7iu&C)Z8z@ynkf*P7c!s}mT2gnZP`5IAn0Q5Y$-Ve$ z5f#4)5B;h^2*;ah)r;FZCZg1YjBwnMpxT@c{levIKHL?q&*LnLK(C?t^TtNg5{{>3 zos$GC$e(*o52k7_BJ!g!c$Qkch9%zRwPJqJ1>lbAO;l9cY**bFByZ&Tw1K$GqtWYV zKECn2^77c{wxH~0|G7d_GtZ##w0(KaW{+;8V>w$a!Uwwbv{93i(v547gj;b?GEjfr z)BQ*9aI3tWjk4>9X;6W0+bOK&aiZpOOfz^rOmvM5FX2iN$(rkJp0~NX{O+p@VZ4fW zE?RNgjX^CDxHcRWhyf}OhpDw1Jhy;#&O*zLXO7+wR?fZ$a+-Y-hU_Zz%bH^mi~`+!4FyLt2f!A*xvjElwtp^t5A|(Qgi) z4jv=EsJ!6nMorOe-kkhI-LA91vx_un#+Sg4&UkJ=o=05P-5yOLLs%1Mc%?PsT|tVd z8JsIwND=q=`a_-XxE@N>DPtdl!RDe@?Mj$;@JwDDD8-y3hsdy7!y8B=H@&ujAS@(NB7U{WtMkai^4P?sgf3Wc{2gdfFWF z`1r)NUgfxUY1zl#hIUx;SCm1%LwLcGZn0}!ZMAhu-ei?dPEKSpHI*nE^rL@WHhQ?c z^i6-{E$z+k6hRk$8aD9sMBY+Qr-PN34035x87o^akx5zzlrAI~9JM!nkgfYg-F9sw}=slgz%dt%3ph zxuSrlm~NVa$e{6TRYQGLns9%UGw8x@tn{g;!ns7$I=T&Fe}6Ykh$ANc2ejE5i+}b&IdE#m%>&3eDu+5lY5cRYlXvYG)@^R_32y3 zNAo6&bTr4-wra?Z>OGKymUfQ6-z_XBs0p+Q1%#^zkq&KQ&W6WXw?ybia*o6iutC*K z>bH7X9xu72VA+M=U5{1GVyCZIxK5EQSoMzM`gkF!_%W%YydfmJ1LV6`?W%UA2`bx3 zF`3SGIxlUft6>!@@h__}F)Pg6^%}lekheGVAK$ z!7D}0M7lZ+1NVj^M`jIZ^VGYnR5L_)n@KFWJx%@~#ah0RY)VYZsW);`JhncMD{cPnzvZY!&Sz+H4Ok~!}) z34LLDDs=PeQE>SKJEp!!&Z0R^op6-H)uOAV4EIC1`#IlJyRFX@m>Q^msVpy4>_zBL zzI4dr4@5VIP|oR^HMFE0$e4|4|`bx}RKP${V@=OFM487aQ^HFv5L!Gnb zv_S)P6;6|{#VK+Wy7i<{cYHK!U}CM%mzVXIh+ejzltS$#lp8Fzb8V}d(@*Ww#+9Q6 z8-7m*p~@9H!L^3*xc$cE-~q462I}3q{5nFE7wj0ZX#u~HPf)etGCDQAx^~wXjdU!L zAthLUMo}>*@Qc=a_1L)kPR?XtY2rBTexmJW7_sAYT_cC`Pn%y9`b3U%gK5m@ItK*u z#LdrW#%q*=ZhYLP*uY5em*@J_6_ibJJ(F@RJ8F%Oo0{(2l%-0XT=bYkYx0N5k&F83 zYDC8m6S3Cs4;mBMITaQu`W-t>fgge6aMh##u zY8!eqN5f`ixDH9mAhJF|zF@GQXj53X!LKbDm^6^dU)U^m2dWxyg;s2s!RJ`K*o+!d zxp_ADrT?XuLOfTTE_!+D!Fi#oWVFb}N8-)1#>V}ks}=CwJwZ9c5S2QPo*x7(T)L0< z2LfjVCO^_|))HJ|lHe+=KgwAjEp8UC$UiGL|JnD!@y8?Tl>K6N96Tas|3)N9)r{+& zwFg*aSqwe<)n(u&7fyR)#K0>bdAcEIL=J&U;RIw})V7B`eaf=4)E#53?_%SJvs%!E zKKM0%!%&jpdoZ@AsB0khkDnawWaQ;_rSt`&p2V;}dHVFJIbov?R44?e2`y}2#mR>k zHsgAXL2taEVkV^%crzowcalti3&Eo-DoQUaQ#bEUyaB7Qb;#WUR|(#7oAThWQ^og| zxN8Q1wxvqNR-|ZG*e2MHm$lbXQBzV@?Kff)yZ#v-Hdut16w#@1&K5OJH5j%37D|DT z)-jg_<6CO`&r}%GZL~-E6I41a_r&rAp~9|km|H@U32`A%A{Bt=CY*Z3OB@&F1rHg; zJ=>Ng_Jvm_s-4_vx@bU)wzvL1t4)D{i=FXEin0-ju^0}OIEitAH)PXL0-&OxRICn3)qG`I&qfyd)&!KZ7BK`o4JwUjE!cv1CMq zXwDNY1;eag1jCG^m9hb1*rn_{cd+BN)q{2zn?@p9D&{KqXs{RWbt(HK7E9$IAo%OV z&9`zzRXZ$Z1b8DVa$I$)c;XzFeQk7Wz4&yt1C2-GI>nfzOCK(TNGVX637eqaFk zrH1&jeMO*)W`T(q7TiD-sk9R!8VXQiQBBcwnFS&k;P1=6vFg&ss%RxP(=Re|p0M^!d-kE&sLvA3)Ihh(E=BE-8Cd z5!t@!V?dcq-)|Lre3`jQ>FW$TmNhp(JFX@t-G7@~^cCi+aJ?sA>7Y$;cYcc&(CVMw zu=GJH#V%m&a2=}!4TNt%{u+o1hF5XOfJfH?m+oVEgXR8ZLc!nC#?Fm6bpWeVf9Lil z89ZK)zdYp+gq!!o7d%4bX?v#N7)TOEDhkJ>0<+bMu{I)Te&|28)^4k>%O>bEZh0Rr8!?s-G;uimgSCPH{z z!m?|O8qn-ZMkCz}x*$W@s|15be2{J{ED!&x4VE=J*tuO6%X;*$xm^r_sNjAuN5|I5DsKN<2anTAbFEbE~4vfh6Zb`&`{u6m|vPFf{#{! zxX1Av2Tc?cgy)oP65t6oqye(U0&;S0C-7NBh;6sAA-2)uV~MqL|Ut{l8oJrN!Ui!{H0sBZndA`T>DLyKR_W0aa_??IW?=s zs3d9mUeb2V}5(;ZW7mTINx9?G@h-J*CKh^qT7Vho-^oXZrS0X=!P7 zO%CRu-$thZlh%m#2nNxGSSnMm~cA5njn}_R8rEKK~Vl?ejOuh`VrFqn(+hAQ(@f!$ok=Ejf;&H zsv>{%7~*wqG>u-?%-2oX0qH?ue*RUMhwt`6yVFKz3ejhU##FbVp&>O*O?IR!+R+dr z>cxYyh9MuDjuhw*xQIkxQ5SPmAfWl;2qG*N9`XRdAyx1i`Qu6{nI?EmZ}YF;WB~ml#U-&vKlh><*F{F2ogO2l+@|Y& z3bN|+c`IkSG(}2SqLgsG3Un<+y$|fKi8y~b#@7*OZLY=w8Ylp5GI^ffON#b%X}TVw z{d_?%82>Xpy_1MoqA9$)_pllPsIa8MwMj98OK??{L){iTVoNM~8AlAubd=kqDTK&z zy?RlfSE-FJYiN)TLrlMU$3M0`)}zHV<0te};F-})WQ!HBxMIP%_j zywAJ%Kh2%+DrkQccp}85(47V$D+Gzcem%Pzco^@pj8(qpuE$f-oJ-JC={Tc6(V=2_*qrLK&_y~CcUdYH=65-oWv7KlKh`;5;A zGL?8iGSO=6_qbH?dDr`UTg*`|SV_nG<0fC57;pW~u9SG)=NRL1C*9SL^{x~Ncu|Vk z2`@~w>nn`p`vJc0(z@`oRXj{>+47eq4M_ zBDB5m7az$ZFD>7GyvXXAKyzgo%ghJVM&IE-d;KkY(`E$5_lTc6lMz&6$ZvzyncuvY zV!jFl%6a>?X?G(3b_<BJHbAE;LI0j)fl)Rg9i5$v*;%P?J32a! zW-7jXd0fzN<~cGlj3nk``O5`MY!dZp)Lr!-jQLNJ^moeX4tT@7#*;NJylxv4pp&X9 zZS$VwTdw7n|Ha2fEO2Ffr~?pn#}KipEu=DlGSLbPP=TFG2Y^(wW2(-}Y&cIRi=c8u z-;IG2!KZye`6c$bzZA9v^~vBvQLCIio$D#vJueXF-UUeincz%{l#Wh<*uhLt|Hnrp zf`T@&cTHMIt)}bi+?>oF{N+NQ5a2>f^{+2o*i^J7p)?trAkqs>{22kPCt&lw`wZmR z{0L|n4QOs8&(Ilmd7`Dn)|V`CX1LIkm+lWkKC%Lc9xH$M(%-L~;Opf0U0w>1>JjK* zfw?C!&2P$a@C-n<>8Yd1{&yz2U?u|{?M?k4e@Ze}z2tTVOmo?;h3zjZXC^^|>B&&A z+J_~CNFOk4*FvgnS;d|XeFV8D5{P2%=(-O41$f#9s#@@tc3~DQlW_2gu?d!bdm!!I zCb;S%*tJ58_@qNE`*-9C(DA&1bW7wPmhND4pN4xDmbIXdd9=G}B9PDkq}})*Lhb_& z3Zv z_|4}NSzzS-i@d&n`ucbaeC@8ed;9NKEL|DacjNc~t9mJCm)`&$nI|V-`J<-L7l1yf znfcp4Ds>-ZhZRq}#i|lO>!fS%n;VdT5+q&mg+J0Dy3YlW0|z*b8U=#tfNM@cK^!R5 zjhyq`xuZgOiT)<%8U_n*0!a2cJ?=r;J)b)|?_{$N`fFVCIu-suka75i%u zI05cJ#4V+W4{s7@1m4NZxu-%ZDR?f){Pjodc%bAJqf=_mZ(TMlVhn028?ls8rZVMwT~vOV2{ST+f{KvXDo=QS&~$!Lk!nHxk@X1A ztT$8V*T^RNPoF}bX^-( zLe&0h+3}Z2$DY26|B8_DLpg%8%3tA4>*3XxVF$=d!&9p>=M0Kl^FS@bBHxncgOH4ZL0V5T@%j@&cWs=Y7o9a1hf!Sy&>!J$U1 z+K0wT>4OaiI;FBpy=iIvjpOAu9P_P_@y5-;8D)~9e+A<22Y7KdG?;abV&X`>`+d*L z8G+1~CZm6Op*RDStHf?v!sB2zZ&5gTuqAJ6+tcig$0{UarQB+w@j5x&5&yfB$K$I7S3FO4+Ky zy$Hl?SNgXxP8#dDk}(M*gae@{iJohBp41Z#4ti!1j7+Z>rNn5Fg*t+0{NBFSBy$IjzE0 z^spQ|0nUF9S?`d>&;+00{MmFs47>&Fv){~=Vt#;UW@g4~Gt5<-T4{mOEw{b_aAw@f zKvo(W;T!T>W;l4b0NoR+uhS^U&IklQ+JU!0D(f}g9sUVXQThS+7cRB&^@_1!PHkb* z(gBJIypKHhR$VHPhYWv}0)llvs>LQk8i6Pps_se_pyirRmwrQGe<@dj^{=M6n)z>E zl2E6*FsF#R#U#XCM{a2u`0RCxoFY;&|_$p6Cee|fzR!&n5kq>7xUmyOfe9amfJb;M;vVt zQf6iuT}gr}6^KdCahw`g^y>KaWQ>CEA5P;07=hP=xP7?Tfsc62dno=m5Z18Px&HU{ z;KpK;Rz1t(lbzm?Gzkt4IYM$qu6P4atJBS@fWLAu20lAj|NKjD>WskZ)r&^nkV;(2 zgj;`+20=hc32y>FeDsVB2S*C$$wO&%n>g)W80sPkiP_QaikhBY^2;Cg@_*C<8u}5i zlrs10`^!L2iHYkilz?-#*-gfl%K^!S1end~JEa!Aam^v*3a_cSzl~p?a2`-H=uK$< zYh;awKrd3$sJ$#S!K`R>IkJ^Gd(%@ zr6j>~;V)Nk{Xl3w&CZDAW2xFJ&bgO#r3v13vBmzcv4{DWKfcM$9Sa1j4qX4jxJ_Z~ zB?ggirn{v7=r=DmSQ4A{{LltA+tTr?stiz-8U7akA1be5D;7Le=>Ck?UCF{bZ@dmE z{+h-E0B6WfuR+m=0L~&Mq~Ao$2!!(TJpl}0{)E@6k{s2+R<5Sw^3ZxUV)c7AucxOn z6-&VCs=Q9!^Ow#)wXX*el85!R(Z~xxbSrFGJm5~BWqb?DI^k=cOco~e$-hZt76DB8 zkxjtnkp*I?sM3KFwt~$^+OvXXvkC!M9=E8yc3l26dy?BmY>>u~n*K8m7r96e5tGc= zSB+uwtr-o&G zYi0BI&%#Tbw)RKK%GXeJ7Wq=QE&K>F+fA3~&vfBbvFIxM-3KiIBJjt-({j>4@E0|R zyh#D(mBf870ZgqAg1hE#KcgBecDSmRQ0iW8J65iu+(-R^_@fvlsC3v8Y|KcAFXX)D zdACAscoXh4{vxCiRDy8={IT}M<4c+e3?zv4P~u@AY?`y{1dJH4bVW!{pG~E%Mv>8b z*5#I@_Lw)vTpJPdOu1BU9CyZNSaGf2`1R_ex#->cy_#{wOF+Ux0AFI9$$ekN0Yxuc zrC6{8_Qxd}gEi+wF4f#R8|wTiE=j+i!eixjeld})xIpZ-0mJ#a)v=XnzMC4ndMFOC z9|;)W3!r0kvMKW-3W2C9&7MyVS0+5w6*B|DBU4o)w=vwq6~ol%LrwwHt-R!mxDaou zHk%|itv7V+X-Ig@!Ycd^0y+m1JS}ucws>q$x4i1X>lz4Cx!8UmJ3-QmgM$pQTGM(Q zl2yyMva|C$XA*?3;t?GHVRNsIRcqJVAM^7fEG5&jI{tW^DIkNzY^WI!^i3^}sA5nT zQ?ty(*7iR?O+T42KI}GeT38vGQk;J(ObO(|{5EYwv!Kqj%zJ6r%Ko?ShJboFaHA$- zkAPRE?v4Kdyt3MpC9JzKRW@p!x_CHM$n-W`bl-gAb22e5BoJCe5*toGs&IC?!}K0l)48g`Hbs?idgH1EUK{kAh1jRXn)Wl%1{ zfe^lPjyXT;PkEa(!0tcBi_IXJ|NG>Uxf?IZB?BGr>t0EpBk^{L%}EHnAocm2K!35J z-aW)7$^SPp{U2hk)PGqWks?sqqCh@xfk3YBNe78Zl^G@_R{`IQ8hL$cU(4NPY zKx=9q2{VEvGT?UEZS3j5f45-%GsBxlEk3RQ!4{@pnCGb4OAl52y_APt`U-9m23Nab z!=K~qw zN6ieM)AGq+**OV>vO=}!4w6u8LYCJA2mfsZI1_{&y8SVViI%!R#y4p*!$GXP1lSj_ zt1Z_Emz{|qVCj%fyD5POj|jpIJ~|(=NqT_HD8B6+_wvM%p^14YR?Pq}u8 z4JZ+mfscKQktYkp2sT63^9zsd*Zjg0uxVu!0x-|{wWAo2HdYwJGXmhhGeGe9(|h5^ z>%VhK@)i~QHED_jJnReDWjoR!ClLr9NJq)?W)!J`QGi#;YEGil#K8KT!ooQYF|hG_ zd{_+E4|tJ;cp3q4)Zdk1tnc|B02wbi>g^n3peb5O)VXg7M2cG{ig8vx7e~jQik>Ed(;QtW` z1|ET(OScX^;5V{dINjvXKTOp2heuYt%r~!e5nomx(|2RNj02vWO16#ErNe{)KZ3drhRO2O`V zvQ}RIolb9obRCVNqWYp6dT=MLPXCgnDpF6Yv;r|CKfYKol+G`wTW)(JWATFNY>v|Q z_S+#xb^OT|TLRiqTQJPf%3%h2p>QFfI4{*$o)`SPCVRQ*>Afjr+!vQE;)j<#8Kif)fLmA&j?dhZ&h zCt@9SGGNCP?SgW(ND@?A2Juu~n1&QPn>-L>yE{6Yl5T>nKM$oCr<}p`GU*&4SX_jy z7FTjkRVdL_JMS_d&Rwu*d;MCoGmT%pe3-c6V}D>vz>UcTUNSwHWur~NT5@S#-XQX` zQtohnrV^*H+A|K09_<91Nc6y`Qtz`Z^64YigkWtBa6bD2^khVmdmh0kNSG`wC)IMSt$W8x8pk2p zqt?p>1^Ei}bIH^B{9oTU`3%m`-V$}!K08>@1DQ<&eNK++GP=JwD7e3FA-J=pI_f08 z)S!>*qFu;Bg>GdzWAm!oCyC*XIlZKmLU__J!h3Vrw`plgcE3D!cqwhvHr2I${FB@? z#i$!6kF(P)p04;i=RX;>_9rUf&KebM(UeM;mw){d#g_ZblmP%~90RbVcjK$wCv4gj zE&>t1hy|&=3s_Jm3&3%Gw>g>uk?I-Ul`N)tmd@ni=e_Z^a&r(i{IM|*C0dxoDvHr; z^P3igxmwRy!Xkow@OggTroQy^hPWuTRne$g2f1dAZx*KjIx2^)eB;*@Int;n)R+1T z14qGYn4A~ycrO?1 zS5H+4v>4aOR|QE_=*jdACAqba=Ogvft&Vk7_53DMJ@qDgzqXb#2&&+ZMvI(%@bQ#i z{)lIl5h-q8r8{ip75d0VK*7u{jZR+gHf2PU%II9u?~BHKUP=KLEE zLGiqvdpP4u(1c5;m#O{#VeieOscgT;VMNhMhB9O(LuD$JA+sWqR5Bj32*)vI$UGz@ zQ$iw=REA@A%tIt0Q)QlK;Se%U@4h|H^Zh)Zwchpny??*!yHl@9>KQmPgEHQr5xW)Jxtz^A7+Bkkq534s1 zMnB-bdHsn|H1(VO6MDTVEH1)T+5k6M8!k<^JU?ew=0dz!>FAFR(R28C_uO&KQsew< z0ZlljzM+*rnL+~i-``1Es`oz&3Vj>Y(#z(TR4)-dE?xHU#TBgN?|J{p+nIXS zKGky#Mbv+2cR%hQqr69@-D%nHU)MLP{qDhsaG{s4%WYnxbO~_`4+Ue<*(J({ri6qN zv%6yIT^xi~E?z{L;?k~NO?W-m6#67{RrAXFl$afah(qT)5al>RPN zxN42j>?nS~FungA7wK(V1$7`w0q)M-hV{|?Y&y(`b!1%_g0*8$~7yxT*gwn zjTUOVB>MK=790L)nNLpIe~-626MZV~Su6z;zI&!g7v+Jg3=AC3ES`TZD}A|pb)0o5 z=UP>!d|BY!_8R+lr^2YzGLq8b!wvL~{p`eshWYPP(jV=6_@ft9zmX!_&K-1^`%&9# zx8a!JuSkJaCM{0UOx#2cqG}KY^XkvNc1Q(v4I4A7?cl~_AAHJe? zv~RMpdS~yB#K%lIDos`g!U>razgz=SY?rEC$?x3C?6pE)r>*+bOUGXGM|{(r(DF6( zXgot1k@JF%8Q*N?#857JXsu%}D!{#&_2T;yq9w^{Z{=`n6fx?&toJzGqPsrIu==+j zChc|7$~2Yqhh1~3Uq98$G&AGEndV74JT6P&i8_UbM6D*|9w}&V3!$qur#1NvLM6W{ zmVN(|5vo)YxtXU;pRA(2Ur>~si$7shva8qaZ<_R^7N6nLY&+-VvB8R?%3{NRU&~&< z70pGdw!gD8S7z##jI!PSb)z?ZJV=F|vaveHq#P%T*UZ;eW8~CUXA;b@G~U{3q7+hQ z*ZDpe*yB>Y`gSm-(ogW)?(AzZOZ7o61Cz?1(nJ130cGD^!J*KrR(;5`U=d&b5O=XK zrVy5x)Z*Qr+3W2)@~B)tn}K(`pUQ|Y!DS(auW(OP6m8;_g7?@ckx@77XxJNB;G3If z@1ykZZ$H=S3Go2LEJtRt@0LP5pjv4t0^$MNv=`+OGe&?7{6Sfeg=L_;y!?E;f&MJ> z{>lRaVap}r2Wf>@;oj4{x`~TSRWj+BSloWbYCsXkcZI>2KKf5u{e2efrTg>PAA^DT zsy*5D#-XQIg^UYDkKoU(Gw(Z9O9rhb6~*L%mVWPtP0Q-;BE|D)b$jociCHOE=v*C( z8#wwsVm7dm_c;4V>+bXHDd|lub^{bU)`+=H+uJh&#iSvfO_n^o`v>b-vK72DQ}tm^ zIM>`PH&;YEqSSR?{_-rR&vwe({jkIDWXtw{ZN=nIiREgGZGLI6bs3$mwm##P-J(_1 z*ED)IHK?qiceYoW>E*(m)XQj>r$uqO)ZL;ey$|XvXN!%zLcX~>q)7d)_21enpyxIc zag21r)8$4~RrCZlcU>>}$YIolVISRP3h%d|cePAFVU~X9RD0ahZdo{qqT63}DlU(y z+h5ym(08-hel4-^m)fdxcd-N!3XCW`HNKIZf zFJb_VA}${$8So@9^y>=eJBMW7EYcz|+UpqXL$8&r-KdnST1`irhkF<9H~4s$?Xl34 zuXlRqtzGae@6oPetJCAx;U_{dEq2}h-uhtI3G4hJuyX(R%8`NVt0#`+b*37XI=wH% z^lR;{RqstKsIHdKJL+Nlnjfxy^qSZY>rBx18ETPSR~gLHVAwy`E=nx+t7(kN(zncV z)nf30)7Z}ik2^u0d7U*~RiksVm5YVjt!n{+Zw8C#>WC;Sx2@Z+CdQ{~v^>58}Wjp)h$np3S)$SYhKb{QV z5bm?MTpaqg_r`czm0ek8G+A|~=;FiezJV;;{ly&H@2ElC^Zl~v^dI3g->FE8IW-eX zAviMwn<_>2&|7IA|9;DEzTgfB!``vrJqW{Uf)ju8fqc1se0s`+pa$R1pmz@f7T%i7 ze<-9{IJ3)GLFVohm+ip7o$#J;BCDl_%|HdiZ;UIpx=txV;JV+{yjI>4ecLbg>czpzXwSLm;<6aL(dJU6ZM{`S18i_DawE@CqEk4AKeO*LZE(U_ zIF6)Z8yw21+?ooFwz3hV$!f?X``(DgP+r1S1`Mu;1|_Li%_SCNv+3`le-Ek$SeN@I z7)%h-yJO3Y2ec0LXXv1AcF)vzhgTQX_8iYZp`8P<{KZ!`PZ8p_pFerm#a8RD?^G08 z)!Sqxc|FDO8o?CT5NlvAq->W;OnB(L-+noI(lw&3!@ItDKzz{2q)De#WqSkJLKB;0 z{DX^aYwUAo7{cYXImLm!JqDjH`coeiY*D{+k}lnq@oYIsfV)uV(mn7ELBAmcNuBYH z1+jk`z$d8_Zy~pl# zog@rKH%3BEZj|? z(of}of|+D4bL=LW+~28Ycfe8FXcBrw=cdb5ulC`~9Je&YsvC-~yu@WXb=&q5wkZ2c z=1r}WOP$NU8RZ$;IA`Ig_i~@$Ph8I0i;$hIpAk(gV>D>+cgYrmb|br^l?8*d;{~sO zd=u2!Z#Ak`pRz959bRwA9&TaX?rY2r3&3S1ReN6D^-39ppeb(b8^li)koaloR!6er zC+r{0#4b67ZKd#q69@5AI3asH{R8K@KK3;w27Pa}y4q_#ounmXPp@wOc_CR;o#pj# zSm8&vmW@5bcz#W{7G`fRL}Ha+NYZ-FuRkY=Tcd$8ZdhvVxzt6U(rul}z$)p&!B1j7 zYYfs2oO!6XUMu6pmPUPDrVJp-ZrpjYV2xQ7zQ7IYR=K1`dVEL;9VTPfa~Qy7=Sx)RF% zDy7nNWpWYuYVp%oBCpq42YuN?NBbAA`vUKRs%Np;T9+9dct5wSm{X>=;dMQN?Yx#N z7v9<$ZFWe{YMmM0-$^&j+yB!ar0x;SdeI1dqepQtYcP;(&S!meZn9IXyHTCptqW&} zKcchYHJE0mFG)TZg<;Su5T)E-59lt7DRsGU1rjRJM<_?_N*(?6y_S@_Me6+R`@c2l zncmE$Ybaapo)yu>%B)mb3H5m2j!5X4@9DBmNxvs0rJxBF0itVbh*85ajceb_MX>#p$myuAw zKp?(LbmU8OL*p}5rEWeYs-e}=h=JJI_?mcDYHw`HJPUdechMZ z$ij!{%uPKfFA|J2$aPG`{2EyhAD0a|zt!A#y+^3l!Ve$#iSO2#ceeCK1%my;~H|4_`H5dogcaPz;Hh@a{S;@^wJbqbv0 z(DK&Mjr(DR{Puz#f55QpQoc=x@v5Ed!`FYl-|pTT?3>j>xeHpdyk%IM%_LA-Sn>Py zGI24?HtcFhEU+he)*IZMj}}ww3{9u|DrJyfX18xrOwzs868_zVVy-x*EV9#mG5plP zbs3NT&TQ7&IexLP@&rPkqW0(GT`TDGaKmj+rw{%~7`P1ag0>sgOgDQ0|J8BxF1 z7QJ;p1xicx(zl_K)O&l&J0z~v2JZ+=l{38r_dAy`CV5I8GkU_hsLG(#xnH#|k~u|| zGe+MvtCsQ-2FSi9btV-b$;dE}UjF$pV6CJ`u8U+;SGbZBf1}shmT-1&Zm3w8&4M38 z=t=h3@60x+Z&uYR$5Z03xK9wR^axgWCY1;}SGiWMpZoP8WpjVKH#zNIvLwEDcG9FT zXTu}8O3m;GJ;iXhuk=LNi0H)ZMOXO7iR5(@K5f8Mkrppy#KooZl&t1w-Gr~y)RtOs zTF~GZXt3sZH0Qx<&DgE5-JE1koVBWk>*84R&3;wr`|wArSH6>7y;UY3u9$GIa-=8l z(2YN}aPxWwCni37M8C-V!^BK|&U>|z_ErC)q{99`j3Jq6ciS7oc@;g5Vc&tC1hJ%cGCdN8VU%OpsIQMF--GElLk3>eYr|mVaYxuXwxai(0Sbp}!{N&C z?Ul32uklhJ?JxJ2nB`y+j5FN?XLdVJ3zuE!z3|P>evxfq^L`~Z*&tVHv;ET`ZwY1g z#7#)Y`9CB}e}}3_kBsE3z!1Dbmp>YX!YV!>bfhlSYT>^ZE(fpLdVQ$2aItm%Al()2 z04J;YOmXg@KjpX{!h0;ajrj+IZ}Yipk6Su@zxQ$Id@a9v)fh!5s9cCL?NuxhuvdE= z)}>J6J*;?D74;DJAtSIvl&$|m=3bTR9lykOKSHOIUM3NW@dP@fVKCprXqVBZ6K7yg zm{~HjwV`wWHv6jVGv}Zy>Rl*m$?a?*=1=$}udXG~CAwy3nl6=#LDg`0^Uc^LRGp-b>}Uhm?M20h7R z2|26{dQ6F>x`J7}UEN)Jx-SC>m^QNhc`5wS?r+60vE8x*wN|K9oQ!DlQ3DE=WjJp+ zuEtA(=HtEn!H3%bN_{FIY0q}{5wu}&|6_UTvh_X7li$Sr!C9mcxM6uUf5c^Tc{2Zg zBdyr#&W>lixWn6HOqb4FIy!Zb&KQZLP(8gp59hQnBqQb|GnE2-;59vaTUYn&%5+RXzj+R03U{V*X8J}(=sKAW_e&p~6lvK)k8i26Y`Yg4XCoxU4$GsOi< zIII)-SwK_<>tcHApYOlPjZhdXM-n1Rfua|Pgd(Yucm@WB=0d9n?u(7T|@5-uiLk7g&%`FeyCZP$PbwbOQZ=zG6eMMPhS}h zI6~FLpHsmFiK&jK3mKXr)4kkd?CL!gj|wn{4bkX17c7>6rh~2+_!_fD=nvifhO9ZDXzb`T zxKh7GtE=&7+hBQ0XehPq!uDK-mu`f)M_mIjuY)0X-v=){(aTI2bRT`6EWP!Lr5*JE zIvgQs8Z(19ovKIE$0WQ9Z_Rt1gN&E^&>O{dc&M#^d+XwGf4_%2s^6yQ9hn_{Pv5rt zb}{!S>=cHs;Ub&ldxnQz{2sYWXiN0Hd)!D3RF&6u)%b9fL*i+(HOSKMin!u_A#`@u zS{Lf#v-FCZif$_3Y%-LC5+s9D@sxf}6g>%&XdKq=H?f1c4cXS3(K0686>-GQ1n>$*VZbmM-(-comk!qXF4nUZC~qi&huxCelw^) zXRL+UlSOZ=E%erHKbeUOr8&$I>1H=v@Iaj*x7YL;6vVAGmJ(SH>uVH}nXWA=mJ`Jr zn0?UBFPTPJ$=$rc@oeFB5y$d$bhwsP00c9Q%XfeG`kTBl;vE`~i9+ zc5TVmM(pfn=7m3mOh*Qm;;q|;2733ESF}5w(jD1JI%smmde)*;wub|yk7P{vJgAnB z=%0BJ6vZ(TBe$5XxV%bbBEF1 z%0_a0abMBU>cJx*?qwRTuqde*%4A&F^KR@UftsL}^@9LX6Xbh|eZubCXb7eW4uqP^ z{ndI&ZrL2Hz?WtYn%@RBL;b?K`JW96xGrd;O(e~mPIf0;T9T|n@~EodGt=K0#m!S_`%e?-VlwF5y`*v_i3v%H1QXLeY3@k=SkU+r;e@)>onch7e?O?{yJgOE z^rFWKuGbubbv76-hZvz+sP=V-s1h-iahsdf#F<(@cNP3G|{%_+4Xn5Ki-81)bp|0wdGL^Z!>s_ z6G7{(v7Km_FV!#ET0z& zR%-6cM;c{Ca9iopW)`A37yMT7X34-$h!Bg08xectfI(VT428S zHXG%8bmK?)$_Z3)TjXYQcXJz?r_gsNa%X!8>S-lCy8c&5mkDH{L(Lx;E}muwu$Oc2 zs4Gl-NbXH90G<$r@1+{ZH%I;YQCZ+=Gc_snaku_zTXXE7xzNP?2f-6EE_HNw^&^GV zzoE~~;TK~M1!bn)(C(X>no#Z@J6?9TC=R8d+D!FzeSf3m1sn+3otlgL_zOEVvo)_< zr{NcVHdvjI)Y&FO-NI_x;k7%y+!MJVo1D1IZi-JgMfh8>7qW)$u%%>jc;Bhx|e>_E)NYeOJ*Q_TG-8 zy3zZoE`)PgnhS8FIZImiudW@`NO|q~G>f<7e`nCgJBY)mC7g5All;YGm%N)5_HTBk zqT=okCCm-ne_FIY7gQKnqu3`ix*kz2uo8=lE;DNwy3i56wZY#&<&=`KT90ct?)2}2 zZ>iSR14G~8%c0J1_m3G$qBg=YJecB=&I*?|o|JmRrzE}>8Rxp7kZ-ElWz~jEYWVqc z(bM$V_S-sCec6hETud{zeWlt--q?7_2-Z5S4wt!mXOJ&I;Xe!`tgtLL=D+=8n9cK& z+C0H!Es)HrngDOr?GG7Y%x{jI*L{>R=3u-q)=zlVfN>=!C z(e<>j!#J}e>oIMW`__+~>O?mijglOyW%~uNJeZ{HD(MuHxu{oHtUfTDFTX!w951@0 z0Edv9!uI&#-68+tTdb)2^Z_8xz8(cp=&x6v&ey6L(>9-9G4PH^P zGa%df2H!_xDqpWUOqLyWd5OoKS!g%h`}0#j9yf{$#N&st+G-CopA^4{Ev>4+`@6`g zh*1VpH6n%D?>LDnfwle=rj9{cK^4!0d4BC8()cJATDL)kiBK^)*|m}Slfor!CJO` zqr9e>mUhW9Dpy-mmSue&;l1e=%3Jbd@KTK5%Y!_(x~#G_KN%%?7`V)5w$oEITv8^? z3VDj&Mf2}CcC84VC!`S*T=%xT%1A`paGqY+`oq0whuaMrTt4ejb47$&;z!=2H+1pd znW%@zXaD4iUpE+*_ofHcgK_kGHGfnmzIOynd}5%VQT#4C*EDoGyQofQaNP^OMYpbG z>I#>L9@T!v%9~tbl_4cHO-XRreu61ACNK*Sv0eUHytB(^8x^#=?&G!`}?ogRd2_CCq*r<{86wNpD0sp_!{9HlWj21pEqf}{rIfelcs6g z1fd9whyT9UA0F2|pZ%R9gBb&hyY8{`J?K$Ap`MaGf)o1-(7R35`=b|%pLT`+$a$c> zIlaH)U3_$7c>i|^+HZR@;@b;I><%U??Yb_O7h{QeoZ~gGRD5@%S+)#4{hUwCK*q2^ zRL^_M_en?J7H6KW&j8J?>I8%sTEYn35fv{>LKkUhz*$n}WIX&&j~Z|dj6o~{&R#yD z$RPy=2I=uqhm119;nF^N@IH%-Fmx>)Sf9t()?1s>SC%L1QJ`@+Dw%!u>S!n`<6XEi zy}t1JigmePCXcL`_TF&Yf~=r&(Hd$zXf-Zp@KHc{doO#Eo32ntRUstGIEy@3V%q#9 ztv>tcR-!ffyyF|s(X~^{?V+fNg%4AuPI{_`QQG^X(Tgz;riJ6mlar=}F0Cywe<&My zwA9z~Aq*!Mpf{I{;kTDv-yJSRMR+Ywt$!UE8l3E}c9X*s&gKjcE6k&gy!h(6=$VPEx_;5fo5PYzjpOI z`@qTz0mBuS-&UEL)#=zn;q0;t3hI?z+BXtb6LzN>>|83%_BUN464w~ZjeDWyV)A02 z(&*3!BhYpNuKdOXe`EMirHBp5ttHqo94#NsUvf{$y|5fDD|ti&BCPUftbKO$rQWBs~LkIK}3R7ZbB>PY9vfpjs?$z{5E7v&WfV)JYtuF!& zxSL*n(mAraYEoL{w(!{MYa?lHw98^<@-^+sHWIBl`R$_QAwKgX$GeB)JnL$EWSF|T zes-18WqEl#bl^9|@ev@^NAi*OuQ%9}wh*PhnP8u?6SVeYFul@F)_Emnfy>lqf2I2C zLjED!eGM0 zHgECtkb)xhp1flH>0X1qrHjQ@)dSe&wrXkVdopzN5z)+rF||4D-k(-Gy&67kC~AQh zU(nRnNF$yJ-(7WeH+V?M-H=4RM}F~aB%F|7{zTtvY5~e&u{-B%J`p|)d&I1T5x4-r zBl?lAUMhOqqT^+(-Wk4`r`;Uaa2gD(qh05zLR(5&*t5q=Jj$}^E9y3AZ+0K|Ht?8Q z=qomYuyg@!dD$ZV={l;|h`%8`Inrl~Q0Fe6@3KrsNX2}b9o`=kE-PDq+@JFxj%zam zuaVoCZ?rW!=y>g_Nq-p~L(_vI+3dh3qmHU_{Ef8}eY_?w*XnkM_FKQp6nhMMud#dB ze5hS>EXh!Uq_M#^2CIZ8)t&fbR8rM)3*BARjp*WAfy-ix)k^c_fj#&eae{gvyB!%v zQsw`uYzNyH41eL&dM$DKe_FE0BNekb^Z5Kut%~CdgIB9on~#{It#o&}vy!uLNtLPr zgDy;CGCSWDbjxfr=NK@V8iXqOK7N<6VB+uc9*sl$1D=mY!!++^5g7KYrzS;iM{FjS zWw;FD2eZxP@5oo-Wf|xCmDJ3A@Ub8T4SL0Rvq-F$C! zdib2*)-ZZ_&}ZYbM_S>I@8L?SnG(l|S1PHKSG)DkMSOd7)uQsxlY4CGQFx}Aa429A z>c$@p)w1i_E6wD|!G>cBeyhA*G5s)IXYAz#ss-=6b(2V2UN#z# z_~4WNCjaVjMXm(a@a5f$cSviIdH`rGCeDJm)tzM}S3OF{%g&0}DjVf_7h;MRWU#bd z8ZHCvRgTR+DNJ|m#TI(_JImZVNi@pI z!7n)STa~*moT&s0$DAqFXjWE@%V&ka{M^}XK7$TSbpg&fGgd@Td&&E%HbDlet~Q6S z8#-1Ob3AgZM(Hy@nP$j-VPx5kVK_OLlNl(B6J#x;ca0R&!p2r^Q{A|3&J@kGaY>X{q|hzrsK;V@E!UY+0H)EggXWu#px-UHvOw59~n>)|Ro zZWzDxz;ybqJ~Qjt*>^j}G4qo4UvW3Wgp|uLTUt>vyYS z4wvm-epWg4{Lb>$Q_6+f`!3f_JR58FcGsBWHBIV1*Ny_G1QlIg8@ z#dZEorguXKZlLJ*+9w8vnX2pN{@F}>8>NQez|`QkpPi2V-E74 zpc=X~><>Y>7D9oPAA4@n`L!eJGE;no5^1*P-HDIz8%- zw)Utrf8Ra^b(;_#`zjaz!%0`p^R{-KR(Im8U4N~2&h$d$@T~|9LhT5&)oD1FzhtHQ zxUTd1M2(4u4c3%leQ>P+f4r-|TkFVTy7-Jxl|>5nR)W?7$%6#fN-sbB54LYq|LOIx z2$sO>2t_rV)QAA1LuW)Zu5sK0LBGx4R&fP&asM+fWo9o zG3)-vc~`d@$02j<5nr)~<=E&Ww~MfX=%I5#*WQGHM5>WajDoFJ1;}+`!{i~JdJg`Y zekPCVp9oNvmz+wsX(`mv5Ip!NAl1TBU8h?6wO(j2G0))r*%A{|9L-7N*<#&yM% z!v2FU`6Z~>#pgLn9f!(Fh%?Ke!-3u%(0(G!7Rz`FvW~#d$A|bzvG|dLTq~7`AEP9u z0wy4p7ek8$?qPF)3{^G4&RrufURbeZY(4%09n5$p5+uV>Dzxg ziooxP+jN5XkvItrBmsokJ1{blupvx`g0Yd;5X5lhL7JTW(<=$eE&mg#ONVjq-+q>X zqxs*3zv85?)B);E8wn8-@@q(Ejj|$>`|$fUU^p+yvOOsmlKwF|cK#Bn6i6*nxc5mC zJh;UhO^+d#Lk7c6M)p8A(=kMCwUu44CcO*pjhbSJ7hE}z2Sg5w8FwJRlnhX>^g7;$ za0Sx7^C710EByXH5_Sza7}VCASdzN|6Oh_5e^;106!U@tLSRSX@hnFkiiG^L28>H` zHv0*U>Va8LX}5t{X22|F{)TaCOBn!Xs$dd|T&WGzbBA?t)mG>$_*cf z*0odrh7OhoHGGRe_)7k>Clvlq5fvV2vjE{)5G}3n2F`X*0H@_aa} z!Tr+<;D0yI|8AcD-8}z4v^K^+S}T{+*oOpzG9#|Jy#Py%T*2^(KvlItW0f4o+|7B!H_6uCu zemiJB=<`WCwQAaow`qpnpr*`X$4X3oC~%}artP67Kbw%GCYmr5-Lk-Iq;Qm))|%rz z(?H&Zo|5&U&;joLSudrP$~Nc>LWkj2D_w7OT1Gv$XqBGa4_|z}J+LknREu*qtBZ;v zq9}|e3hZ|wnHc3ZHX)HHjf0}`s&he3t!TFwEKC%UzN{1_`gtPm#&(;N3=6S6J&cmK z{LFZXuhYJLf50$3^7vcvGX{>uL7n&Wv%Lcv5AKLeet>Phy49e8jZ5yu?R~yPl!0E0S{DtOj3rlhwQegAsL)$9F>y0L`W>26mx)K}o=ND(h;Dzfx7QN;@ zEPNE#C;`noC#-M1AXR?D2G6U;zqJ9z2Q)y{EH_6{?)H;@&-0J!;!WZza&2BuFvN&z z2Id^V7)qK;p_`NadUA;Dhxt^A$-s*&Mbj)fl2JanQPG`my{7@*34k}u^O!gsoBXI@ zO=hlKn^;nTYc(H|D9Cu=EA$UG-E5MDsKga|Ce|PY!0HIel7lUjFa`;{yrT6!;*>y0 zp>pok9`P?{xMA6&0j+1Fi73be(ca`hRu)y?TAbO{=8&iwbJ7u4wB8*~$>XnIP?l3Q zckMR(+{gdUzp@iR3L}|l?aTGQ7hw3}FPZw@WRj43vfe@;Tp|FH&;<*3y>b}+2*VU$ zL9FFwzB9l}4wA(zzcK#`!hSV#xTuv)MaSQtPf0{;a|EWD-@T_NG#R7m|4l!3hI?ei zy&kQ3M{<)fN=G~K^B0F7=`%Z*f=f)zcvQqV<|3a9oceWEsf2YvQuT_fa+nr(q8LTb z6QV$L|Kq2Jc!+7qxq$TYj~m|u2w94NQ_F&@36%3$8M@Y>>@Z5+Dnfw{`QUx2`+8^?JPNli6N)Pf_TU%Vq#QMnl@ zUd*33SRf22!L_FL{m0#;fZH{A5Sc#Fhb-d2CRKRGUkhFY(nk6gP#~?^-~;mg^@Tx; zw-gi(cs?DhjRK-$KE1J5 zMut%}4_@UzlOej=JTH*DZ;RT5*8*l54_Duyjb$;k3ApxUl zEu%ma(bMFSP(;GM`MzYz7%sVP`e z#9({}t4}MyQKJiRT;Wejqy&VF;rZ~FkRk+AWx$j&;0xyg7Ssr(xNeGqUX>%EK{!xL zY`l&BZImSJzADG`W4nvep7@X8_PHci;4Te4&u8O<%IC; zIbg?|_gfLcBA5w)P38TWcm~!w3D7c=$xodGNn=6~BBwBdG4@9R@>?O?(+BUs0;TcT z0k@L~rF4M*Xnv(YGaxAWWf+#i`)v(ob14C(KDQT`9Z-rCeuyPMbmU;ZJOca~#$Iw@ zc?$qvq+27d4=k@iuuY`HJV!Rx3HXn*={*TP_`wp864g81_9$BJAtI`SOVjfzH5~{A zuT&(mAYc>%-LRp-I(`S@0#bp)D%AVIN~DN`K{dIYQ~gCF$7L|IM&K_meTET0_PErhtDpsc&5h$nsne*d-rejgExtQA^9 zp3D6~7V^3<{p?_j4B)+L_1pD;2nhSv!r8BbgtUtS(fhxIT}O{rspA zMXFF@^9n(v_9kHU(yu@g=Bom0Fd^sdsR57_5J}OK_j-8|)O&(p{`Tjmr$IMz_{9Q2 zu_4sMV3zF>MS1Jlx#?@L2jI_>M-Hg-HUTIy6E6DzkyHUhQt8xNp8!G5!}Fo>&w2=^ zh?;*QKOTu-!4V7uIZVTw04xSgk8og=DAxm?gAs9|nV$z0$-#n!*>90h2@{5hPS!t^i% zp~sJfVT^bnVEW8Hh#L!iLit_lPAR$I5DWD;!}M&~6m3cnu6Yyc-Wv(IuKPCI>6|Bl1aY zl7AM6g8{%XI5+!C2yv)wVSb%j;_iW)FayX^vZC=ffnx^n1CE(F{29pFYXAd(f`baU z3aT48fLS4O+(72vjsRrc&u{PpfIkt8E~iXgQ{mV`C|LE<>C3^GWEit`X+!crT!8(M z#~zUiYgsabgkZd_8X?@he{C^oqaYRG#DaAN}_?!nkmIDr`)1d|wdDxI#fJiDm zz|s1Y@4;0d2qQfEIhZ2eA2T9Gb#ENL9#9I=ssZHDY6p~hjBvo7s7D%ry@nu5?&1P^ znEE(EPWgB*VE2C+6hKxG7RK>>*@DGxAv&Gn&IAhp{tDrlihySng2h{~VErE{F7qL4 zkpZ+y@{tmtC;gP*SyZ8x0mdYP8O3REH9kV#A=eKt$1;nt9q4E+WZyi!Gx`#SDIf@b zq$u!0HVUE@F8rB)iM&Gqj0ldWwnqM7{%x2~c~nUh@#iiA@L2lu$Kzl>*~9ap2lW8m ze;X7IJp}WvuTDeU)Po3st~(MQwDy+(x$xt{dP zfKN2|d@rbO-y(#QT2kWB!VXk7qMSx~TlWAyWsZli?vrpqG%pxAA^4#yjPkk?Y~))2 zQ$Iyy5MrEsTL6xtM??~y$o!Aj0atf@95{nekW3S=f^51qWYfvyjVUAZ-|zsyXs*xe@Sj9PL!3x$k^u2xggG9ROx|kSQ;AsgT07F#7*s^_-)`M2f)XC?WGNi^;Nzyg0_$FFh!q48(TRhF=e|5S4GUZH0ZatauXPBEYo=g+ zpOh~P;73I96LC%0j_o14_c8*Y+DC~yw81h6fWlLW2Ug%GSaG}z<=%lwUjyoN4K0n& zz*>EX%hF%6bOt!XjBJ_!4u{|aKok%_$m7%yxtDthSW#ZIcY&Q|OaVU#(i}eS59~h) z?|b5ZuK&P`-bUsp>o~ka=C{)Vz=AYmh(Q9kdbBI#&LoH<=`r~84#$BO_>W%$l8PK^ z3dS0H;TKW_CgVh%P{8yFg6Vln7I2mS+ppoKHUT(JvkZ03qjX z3w8vGe;X9ARLJ2C6OspH^F0BqaaK4faRgYyi|~vVWpv<-{Ku~W1C4mgcc|~*0zLVL z2A;zrf0F^FJ|HsuLfMh+0Mmc@HIcq_$i6YXC(aA&-bOaBb*)V@P|6hH%rR+6WLN)} zU&Bp(5`Yizj|u|}dte8m6Ud&`A^Ry25UJ74J8*dZZBT->U_$EUWjG`L%e`hnluK$| zbK`-j2!+?-gM;Y~_M#|4MBaNWh`0MM_u5zx*1^$Hg@Ypmeix#;OF{}{0X|wwc0afQ zq|>=VCjog!B5)S>gR5y1P!)eI_vlgS{9w7Zqmxtp_>#V;!Om;w zglw48U2)t2ukqm)EiB6BoG|$J_%TuIB(yv~zi)>* zA|3%*!3OjKIyFx2XwGGEfTKm+E9UB7!pV!u(sE*X@V%7nFFRznKl%Lz0C~+DZ8JF7RmK>KWTz!D$l+1+kj=0WG z>=!Ovm>M0_)HbM3*im}8ad5VJ96{9D|3N)D7H*>X`MMn4@1daJuhLZ`@jCFp+8_tW z!P8%tUT$zeHec8=aQ_ZY`UT>i0$&8=h)xw#+r|kQ=&k2wU#_dY z+XvURyfiPuNrXH9HN;iq~0XJojXe*Sw?U8#6t)f}P?cZny)T((yUCI50 zfl~j;qQ4^!Q9QnyCn1IqZQdMPW8{Z1&2Ks&SWBl;3_cPLTo{`GK{3;gHxE{X&fLB{#TgxI1f@h;@V z0-Kwacq7_Ok#)xwtsx>Ja(}4eQJCmyTQ%k^FhFu7TF9yGM#qQ_P`2+TkqZU%$F?qF z&;syU?w;Ei$cIpMs|PPzF_~*r++7qOKknfAPT$EiJ8@hTMZAMx>l2#fVfD zltA?6np~}6HQ_O6OOg(=XZ|gpbzpVrk@MXc@z`&86Uk|!a#GJybhWpa@exZw&(eTo z&e(>3-jytek!~}IZihQq%;Ewln-JLGUzR+8S6W*7MTj^F(mt}@G0S>a9AlS}ik!^? z*A|Whh<8J8G6pvRLa5dECckH?#~iNs^Y~KXy}^ozmakvJnE9Zj>DWgZenfWx@e+t^ z7hDN_JkZ`8W%=f}0t?*cQc6$ykm&CLkHd)OX>)_>8>9IS%|`S8BB}j+1KuPGx~9v5 zc-$V|^osAcj?Ni=?d(h5#Vy@iGpugLEy=P*cQrI*-J`1idQVTRZ}(hGVj_!fm1ijj zIy3Ei%GD#Kds}ln7cUm1Wq5+#1{68Ik?Iu?Ul3zC?quHs#{sz>#P?#hc7Y=%wKd7_ z+P-qvoLu@?ycxNyO~Izco(#U*CBO3hD6_+ULB5Kf^5oA^n6Zh%q1d ztlZSZBzttuaN|Mr^71l&IMKG|%_J#ZxI@9M-re)BBL<=}2f4m1foZ#>N@TRq`dX6D zu6h^GF*kdItl8{(1e+k}h|0T{|6URt>a?^pi;D@+x!cHLBDeX}MT=*p^!j;R!v|KH zHki>5`qgia1W--%k8AsPe3Xr#)i3Z$0Im26f3nMn;wo0XF$B zoiRskAcl7;w()O?5D$`jqly8YXer7w_cJ}(iMK5tkxSn?@_X9a%~7YXBX`TRv>wak z-CCXFgS$@*3Y<3%9|&#?*tv40@NqDQme1uln15`z(galtCbbv*CE4OZL|R6PvOb2f z0=it(4hiQ<8W#u4i%T1W%t=tl3X#5-DMk{#M{CKPZrQcMebk!B^;Xd6+^j{#{vJa8 zcH~&pPaF{hl+%eI5>1uxSj!SHtSIRXv!bP?y+83aO2nj=bWY9pG;+uXK*WeQ`m0u2 zC7&lG^xsD}Ha1Q%oww=9N8=6Mk zQ*L8dcqf5PJ{&{`9EKhq0fVx8(1D$~GKj%A;yhdmG`ifwyYyESDp#8LzBzWd%D{!t z*EykYzt`aG>ms2xHhSD^RG?rE<^@}VbyfqS}x$={6Tk3tdPs!gLzZyD>azNs&n19Gv1p2{y zX-pAB+@@nTuCVaZr_BnGs#T+@1FbiL92{6r+_;6r4Afz-gT)aw)S2U zNBPxPe2^0`81-jFt-C$%XfuU#KjXc@>_x$=o1nI6uKL^X-?ru^(eyIhXY?w_anGcd zHw9g6`-PX7YVtsx{5$sGJ25@YJPKFtY=|)F(1)@$FKtE&$L=m+8g z>Rppy2j*XWla+N7Z_~>KcYS1@9`iZp^FvL{;gJn1-QI!E(8`TebwWu~93`{pPc>@8 z;6sOxQM+-Dy{h@!r(h>x5Ymr?OVm^}HDgX)Iw3NDLNXlrYC=F>{XHyH2j3i!6I?`tnP`D-k#!9Ca;GvA z;dT8s^hkUQStwb~#3W@TF+9itJeUtgrR>KLnH7hVDZ1fF>Gt*29!h)brTwI@Loc`(_i3@VP z7m6AaPvE|tYK@gwNt>5(mUsM<{?Jb*YRzp^piD*Q&d%EpWqKEFL(|L-iwOshMaZY7 zkJArMKE2#aQCaq`@psbeG$$t4S9YXLhlTIm^O$Jw^^|bL%Pl``BJ*)lOs6Dac+a_Y zNfI@NQx$Y7ndQ3Kj{QkV`~CTev3DLyPmeVuq#j^I03r_kXFn7Z~zR#w6h{9|RxYJ}0W`;r&vYh6%cV>U}Mt=(I;;u%W@*=Ygzz zln$cR?-Yi5ofSmcrE{8Zs6LdiN*hUGJ1~8uH)?QHOSu&#>K1S#!V8}6XEQu1OAB&T z52R@=8T|6kMcBxAYH2M34kQ2qI%yh4Q=_u2OfrdF}H*(rVYBYm}HPnlO; zOOI`CLx26Orv5Z8Z@28#V#)ZH^LW5nZ|i>@y(_{z9dBH;+0S#2u=$bT{MScO?shg3 z9n&Ymg|01(?@t|N?fY>ug7Spl*z!5uiq(%5MUx-(?-Iuy97OuA5_w1d4y-UAlZ%(c z3lmQC9g1!^eC^FO9F5kZ1Wz-bJ$if^HFsY(?x*sHmt4P2Me|9Uu5e#`FGrj9l=(K< zwaZ)QI%oJ&Z_09(Rvl|hZ+vmFO6d9G_L(|*Eef4G_H`xRB3^Fz5;L<@D%uA(NkozO z#+Of_Qz;DAN}U+yA5r0p0DrQsTuW-vT~=L zn|W(&E?=F^IuV{8U_KjZgKmon;PbNt-&M4aYr%KZlwzKyNO_~4pV_To!Pm|4D7P^W zN$xG*BRz4pi5yo8eudbi^;}{>3D6q4*(D1Mxnzx^cMgu%eTqcPI~*4YesfBNnXGI# zNm^)re_R)>u-UJ87{t=i^7Zz>SWHr0siX6}Vf;)VpTWIcb51`z_3x*ut(Y}})}ryF zVM)E#tt$x@{|{GR8CBQPWt-sc?h;7w;1Jvb1a}A;+}+*X3GNB*?(R--cMGlum$y&f z`*rv0e+&kLz4xkBOXi%bYFoLDc&asmm)E22M%4ljoKZc%ZXLsA_Y(xCCq9Q9GBIMK zv!dRZQMA4ShCqQvMJ&hQo4=?22wJnzbeD5|Z-9u@X5I4Mvli)Q<{#}wjsL2qQ=s(O zkDXnCDcA&$f*Dkn6ul)?V!w#~y{nT}52L+`gqG9-IU|nBn=n46#-@$rt?G{-gsjlj zC35(nHg9!lC2RV5M3Y>p37??ql7E$s8b_T`-s$oPW6V-V0`AuJ2&CKZ0$+)KKtdQL z&Y7?K2*1{NngqDqe*{PKx@_O!I)chn)yJTu{uU^*#n*%DbIBiO`A)FIV3EmU(z_(A zx2xCG)x5C=^t!XIA8{A!9Yk)AnQIW0&Wn^}t+yz5<_TtqKAJcfa5#P}UPu>yE=>>udS7jVD1Q?M_M7Mx%^20YWcXnm zL?wn#+ibvIPzIJ|fMq@GU@n_g?;e2n1pgrg24Xpdw>Wk~ zm)^sRf~i#n;@4Q|j$g}^$EaCzDgiwCnH|HK<$-FDPNHUf80j7mw$B3 zKFFh^KgUYm>QGYgnUD$-))`fM5X^7pfLVhELUO|Y!TiZuz~HQS8_nu6r7RH@{Ng_? z$wb;t#T4?;=J;!2K9AvfF`{v-q#})yN>w|hb$u5jumHl6U4=0)jQ3xLgeRpzZRPcl z5iYHUTAdXGEV)wdil16dR)F+<3Us{<#22onhQMQ@kX&xRK}>-;6g~=>t$7l=?N5?j z6<}D7-F}|P<%dRoTg_`uTlHb6Ya4ruZTr{9!7PP{K&ok;{Wf;kaRu&ZUvU99SPS=I zffAe8+KvfhZ{m2&-J~$cy<3`qe(cdUn?dMIOnWfr91UmSDB}Nw^}VI35msK$2P@J&0(K&9+-hDw{C)ub-+ECD}Ds0tTw8&v>}S)tV`vxEjJo^mwk zXg{b7@FMf+Oa0%^C1{jmz_4db8q!TVk3Aim~jYr_APKzh*A zr++!6|MIV>3fB<*1{IRZ6W*+kKHnR(CvbnJGJfg%IU;jb&oWxyf4>_1OBY~q{LnsK zQVk=Vt6UYBq;);vyf(bFI{loSAf^LAXKl>STc7t<;EBz7%uxkte zdlRx&Z_@#0$HR^eg95Jq>?wE9#}7*_67kO%Ws3W#b`}pr>ooEY67`V|#PJ@hqxmAz zk{^Qm`6Y9r1*5)GXMmjIa7#=^E7D%~L3yr?(u8RYZyX*!^QZ?F=JuEXZ;k`25o(^7 zJO}~bv4UhH0cuxZ{t=<^{qJy7F@#3+{>cf+u1ml!U-LniFlf*i(G)^+M8<8nEB!TfkmhKhKP35o z)P=#Gibt_zZb3#@H^6w(`a02!Zrhj8Xh-72r&XzZC257B!7dbu9CoNGqjefxH8 zYt-2rmJsTXeZx*b-3Pf4g|+yx3Rq-OFjY2mWpZu>4j{;XTmi)hp!NfZsz};j*fgtO zu>^QNz8?g3_3=Ggh@pRzoJRd|9`E%T2~FvZ>FY1KmO-s}xqgOZg=%r(>5qg|ezzD! z%A*QCSAR?M1!!U)(zzSl;-42W3QE6;ja6F~}6C;KXwRapqj$eT>>vBw2Ye@h5(=T9|Q7Y z6|ElxsL5-FRYukQaIIeo&n2FMe@6?fTS(!6sUo4{|pnd_ugq0$=+FEMKt$B^h zT}z2BbMU@mppc0P>9Ly8x~B!c+!h?GPzFuS_w?Y*X`LpF5@c4`=Yo2zJ zzAdCYn+kU~FUP)X_`{=N1 z1JO}AC_RD7uL>L;op-H{VtcI8t1iiaNcIl+N@O&wQsCk^6_On@M4J_$rZtF*#aAK& z0@Mi9!h1!E_nK%$f7&jP*SD_pL6$TLQ1#NGab=NMZWoVn_MlCYh7?Fx$^Xz^PWKtW zw&3l`Ab}SJyE7atS=SlODhyos9ANro05=C7Ew(4LPLNH+r$!dTw8j`RF>gFiEfqB8 zXqCLOy{`07N=w^pJAF&}E+SB>!_jTdA*$_w*nrwsdS%KB$m-1od76V*Pcq?@)bC+| zB|P>e`?`V!5KfwX+`9ki*4O6OfgG4f6a%!naDl*!2!5(Yf!j@19uinMOYUEZmW&E- zvc4S2StM!}u&%xdZI+PuphpKmVmG{%X6aV&2s3qkFZz}|!?Bd6y9JyuWnH2^>5w-30GRTlC_ zF_nA~egonH=}%5hVsv2BFn+F#d#yH^rT7tc6U{9r{Xx$HV(u}FUw%gXRe?`#;^|9j zv!jG$>v4L>f3aV~{qZV2CisfhH z6^nS?&6iu;zl}sI8E>^$y!FL$fh{3#k|m(? z%V7qr5tVw8_#J}3USg8)K>p@f6cw2v z30nDMYg7v4Be2NtD&Y^2-!EWq##Gt9yf40;l_>lE0q7cR=rJA#GtACDcgR9Cd;qq{ z8vDy0e!XmPY#a)a`*`R(KGjill++-6D}MeP6kw$>}hHq%gHp8YLjv8 z>|Wzo3EOM-;}<$tn`LqF@n{EqW)89+^zeaL&VY%4@y8T zuxVILVm_eB09O5~R0o-E0nXn`&RVYzul&V-#)tKtAZt!ic$+z`i;<%E@YN~H#2`4R zEp~-)XT*8^@d(%xKsxe$Yb&o_31 zM{Wj$T#2e01z^9Rf_+Rpm*3CaChCOGNr*(ZMnqPZmcu5$|L3shf_v)0dJ$vJ`s3UK z4?I`=JE)aLJ|)9qmw5h$Q1nJR)nH?nc=3a%ME=zJ*T(1!u8(5>qZ=&;3m-sZuHcCD zkI0QSo*l@d@%&HJ?+?IP^cfHKi-?m1+Wpe&OD2%JJBS?A+guHQ9*3?T>riLvheKF} zgCx4vAq_DBF7_$e`F59%-0XW6)}%SunRWJKj_F(`@fhvS)J-5aPry9f zKmXbST<)Ek4B>!ld+_?Yaj3cjb0Ueqx~pS-uK{~I=}2qx{Jx@%0poUZrHxjAKUYf( zDOcYz-XWxJepy`JSI>qb63fxT*o8cocrXEhAf5u%LDGMxXjDjAyz``qe(n`D+p~N? zGXvX~`2FpMIq-vKR3t2r@9My%i)vT6o(fR;22NH;{zts2`y(8j#kmV{;H6xKwrU>= zjKfEi7MdDHt?bT=4ON_iem~&Ab7lL=ks4{;IK>8KrPjzoYyEU>lo|jX14k7QQl=gb zPlR;g#|x%_{RY$28Iu=yaKKY=~j1Bq2ImA0NNsaXyi8zRv68UKBoToa@@irt+A=1hSE+R}2 zOZR+Kvl4pjE1&mob>fr$BHS-ZsL)?ijS!sUCAewkGybUp%$&-Yoyzxp;AT8>wrY_H zo+})%jd&327iy6$jxXC|8u5a8z;Z`nJuO6$0PE~K(76>T5!27u!uvRES52+7X!Ua%FKn*8swKaF_&JVvce(q}iT-Mo_o}k|;p(iLLdXZ+od`v! z!LB&Gn+BdSm7PudEOl`yv^g=0!0kY=+7q;wKnvHp>sQLUSIe4)LrU)H^E9Va15!>! zI?npU^dAi~Ly-bdK|*3J}8x5(6Q@>C=6LHekkjsXQ)Oj4H5V?lzPVaKgT@-yhz$ zg7tw5L-jVRL1{l)ZC`}k9A?nRJIbblHrb~IZX;KLcBb86qOtN)mBdT3zxCt%{;Z6OGqdfR)v*cR$36RZqFbz zZu7}$J2)y=vlxrw&)eO;a}d$RG3hMGJUYq#8Pi0EEALNa_m^JgblH_UmxaGdTv{_) z_Eq+)YJb$Le%6~Zqa5L9V^^wCxe>#$@J>~WHix;UIOX}+`K^QFqtsc(pJAd}L%Cef zv!ESnN|!3*U4Azo0m*1Jqb40cxaYH63b&IW%z=rV((nPg4&D!+dQLk_Z6g*}#G0U! z%-J!Q)WF52R{#KQ5Gdl)gxNp+6tb^frY1uKqxJvIRz{)$=0k^=w3a0M2DYhq&i?_* zDo%GQ%5F#YDGzolM_oqxx9w--ze-nouC{+QZgMu&AzxMKRjX=ytHzBcL_ZIEdK~_H z62sxqBSCi7UZKB-UXOa87apyCg{m0@5|@hP;?DOmU(>5zT2A%TQJ-bwN}!f-o; z0-79WsNlGT97rN#?N-MG{``Ggb*-SznzLlIS<>O1%@{{&XBD++$$ij@cH!u*q!Duo zKVnc^;VrCODctiQd-GLwHU3p+_Ftg~;? zf(5j6>coO4LAFl}<9Y4I@@Xgh+Kg{c!|N=~8{+hKmO5eL-knDoZ7uCxhAa9V-di}; zGz*bBV~F^5(6ksXN_J~i(@2M+mB_*L9k~j^39DO^7a_eQ)-t>xK2A$6<@bkFT zA&s9AMUz(nEFe9wl+noL4j;d6%{N!?jY)JN0HNhOIRZnBUys#jq&hGG_wT|3JoQcS za-u`E=xdv2$O%`HMM3QUU(0i5I0V=}H6O%`iebaQZLE3i9>Hvrv&fQfYEO^Njm>gN zs>rE^mTV|bRmUKdbT+?GZhVJ}KPRD08r&F93@LDm)BI|Jw{^STNz4qfQb_HTRQ_=^ zvI<@S!yAb;ByZG2kx@AfI zxmGjp!z(l>u{>6J+}f#BR-;6tI+d2oTNrwO$y~;lUd`~2Fjx7s^FGSCp6FU-N!PM+ zbG&T?u**P(#jCFey|hQv@MWY(jV_a;4up&&2gc5cOxhdT1ZSY2$hC~;?~|JMvyVY5 z=N3tf`*m97_ywl7XD$bKMT9tkQ!ifznaqqWRblr?&g0u3IRiCA6Pszx1!}kaPq>wG z=aI~Ja+V7I!g3d4J{1gkCA6}QY=St?aINKv^bjM089uU6kDyZU1zv}FDUNA<4&EsL zVzd1ckX{R&+WiV~zP9&-5Y-P;M#9g}*!!j`;iDgH;+44qdi7N<9l|Naf%np%B#a1rWj3K;Aq{o%ac5F{ebmX4CQPAq zDMh8Lv5spmX)#MMdTT~#J{YE?^`{<^LPaer4M6%MmZpIqbftM+Guv7pLG&kbMUKy@ zFSN!XIDgcMc2@s4)BSKqZfe^i+^LCqw{3Yxhj_bbXHIGk4Xq--yG()MhgKQt!+{;D z8sUDKMcmcj+e|EWKK0KT^c$L{qTk`7>`Ib)e&5NASBWK^Rr0To8eUQC-1<0CGKR(q zbe0#o=eF#XtkXCdRJ=(^^;p#-3|T0rcwdl;M|DLtiv(&H3tw~UavRmSk;;=ho4>Ig z&T#9*rwzMx@Q4RaP_J)AV`#WcAIn#Aro#ZA0s9KUJzmPi{Tm=qKhDgJGOPTWNk2kCgC4^okb?GZ=E*uXgS_&+#wXj5EDy7-L550eXz z@iNbI+v?#G;v8qlrL?8Aa;eP_)1#(nj*F2#x6sz72)=8e<#iZdHT?E|J`@hDK zuKr{oRf|Jc&8tH5)$ZcN$zs7lLL(r@6W$G)JR?0jvtV(kb|Vn&xkF8s@TphDTj0^) zIR0vI5kg!#dhL@7!N7qeB4m8g*`O2urs1{@H#l?=)Zg1XNy6H5`VE^85>T3&Ccc}( z6{fYse=YIuA|+x_C9iD_AJvYk7R&n1&im30tx-hyle`v}qF}2KsT-pK-D?&Xcbny# z*Ve6g+HhLldc(%T*yee0VlOh~my|Ci2*7nvHrdP^FrD}6Ob;(d*TGbQnua)U+I(Se zMU~{ecg*8AVnPikM&SsXdg1sIfJ3jd)>|L`B2m&e8*(2?LOO@u;~fpxZtzowqm z0eEdP_#E7hfJdEfS?fd)(OxI^lZOC)ad@EDWIPtru{8g(BEY`Uqgk*k%Fs{GMHzYm zIc>>Z-6yL}`It#l;gogsbW60(gW z^v`VATHQe16c4@HUQx)9fjerA2ctG@g!fOh1C%?QtI!Weg`V1b%}3n!IR*0-l-%U9 z6~t3g{9Z2-*eMnQCR-%9z}zJdfH_zk{1rP~1W*XGO>Qd;IIx)g2gKThHBj#VGw;>} zp0`o!+ezV+qAf8TZUByQe|myWPv|e{N+C}8c-PO6NM8MsfmP0MV?Wt_uPr=w@d7ak zYN*0X)60aX#H!oH@qxDtg=|$gGRSl>&$e{ww{G@|HuT^aDywzOUt=|EwLeWF0i*{_Vw(G%JfHTWuwPwtiT!!LHnPMX3N;g4Mge(t0$xvsfDf zINi?}&#c3Bdv!36Q#>4QOHKS&Nb#ULvTJ-`@U~vlgHXL@a*& zrTi_!5`?09>0E&&RWrPMmX<}4oyIL)LHH1NXa8YffM2pJ8py26%;pOG#sG5j`hN39 zlB^H-RWP1yY+9i$;fGjDV1yz^5@^)Z`?ia4tDEPu5^#4f^H;#yE!M`m6qeNU?@ZUL zgmdLed{Fe?pHuUgEIU5E72ZM)ojhkEge~Ho$d3OMD=_uinm->sy0d<1G$Tc5lp|6t z4RXb{hSlYm=|!`C^HyGM8S_3&4o=&c4c9y7E((q3?&KKFnxP16*VJZ1~m+t>T@E9gbE0ho%oQoPr|rpE-mrq8Q%Q zSgV~d{md>oec$Gl-O}0VC~G$d-*|Bs#MiTrnSVuExj$s0yqd}VY20wp|Kkb5Cf}2; zO~!oGqIrmLl4j|VVw z4@bWk16OQ{Y&{e?ojuNS-w$L#fI2IB82Crg%;OZEsX#;8pKAg6}rIm<4*rFfQkJ(hjOAy==`o3Iv?Qa_^w_%h*+OpFNZ!Ypf@kHOMmId5_9}k zCBc;|ye5P#30p*Zgf^aIrLK2frJa20b8;!dQX?MUmcLC0_&SlELrqW&QV9h5Ht9g3&B4EGfZ zI$Rv6N$a*xGq8Chl{V)LOqMN0{0#@vx3nB*<|Sm+xH>IX=+=bps~mIuI*{p7MkIcJ zA|hAuA=7aX63bFHSH#w zwUM0oq;?_N-B%yPNTs@?brvi&p`}MCZ$dj5zI$8nx1{{=CdOI&w6o@A=*ddh{_unV zlH08$tsIUw;d9tCl_?L+091(%gExsDmH3R8cBEeG!hARlauCkod4n_b$ev53rl_7A zhY|204gk{%*GjCd&}0S6O9Gzh0mnZEiW(>ARk^m>>pM7~M26Fe zoWLOU?LhfMpbI0%;j(?rY-j=}lH9`HQ~i!F7eem6cfGQ2P!|BGBq0xei@FFMn;twr zELBCU7p7hg^f{KrPODUHeW#8zi)$S98l-8+l5FmLN@$LG2?l58|De<;yaZ>r zRCb~dc7p_fcOQ!8Cc|`@^P?!99Ut0cI^MV``}X9nW`+DL{igY1pH7QrUENH${8E8X z?NXfm8G)s&F`G6K_RU+`%O+vZEQ-C1B6h7+q&BzoR<-k*SE!Q!8|pRP*qiNxMXtx*-Oc_6Mu0I{FeM7a&Zk6}vr(q!&TK$rZQJ!|M*Y>YX%(FJ#8nh*L489Vp9^YQo2*3wft_CaLmhLqK( zSomj}akvIyg?0_bhv_}`N%oono&hA9iPLyyFBY(L3`{c9Ate|9({A7@<^j#_zs7{E zBtA6x7{HGft*6>oH))|{j-y)d2w5Yy#-og%mB}Sp0NTnnvPP1Q{q5Onno^|_M;W=K z-@w2GAaR|J-!^isWCT=~#yW@_ri++>$9Td3*%r`b86Cs-9T99t7l*MFd5ClWZe7c6 zkzalM>MGg_CRjOzM>%YBi?p)5Tq@gYpYqU;$YxO@_;LvWsJwz1ItiZ>YA%y|@9RlG zj#`m-$qM?K8x?4`HGPHtZpPs@J&FgDM4965Spr@Ypv zmvU7O;)C-+3no=yW>KkSt5n$np}?|! zCW{3Wb%m!f^NYd3+!UEy_~f5VX$Rk$_JpDru(`!0(%BFP5ifg$I<Pt{s( zvdJ+)wT{z-bIk@%FtbK>Zi(ng=P4|rok(uGjW(7jf17O8zA4+e1tL^I)_y^-#!@}~ zqA|EEfD^j65dD`b0mf)}^cZC*O9?k$cLC+9nQ&kvSj1#c_wjoj&aJ6!hakMibM#rP|3oKeQwtOOMJ&Ia%bmR3`onF3i^a&(R}R9azZvJL%+l*?4&QKW z_>5b*xqfs3{UKWafWxQKtCZ{2ne!8l11it-Nr3UPzC*x2|FU@R3)ks?{V`D4(2?R8 z3%?#sytQZ(uJ!#hsejo<{JY+uSlCf0%W##P?N3R6P*r1AQ6w2_$4Gx2=&cbU_8fYo z1*Mk=)9^a}2m#I)-DoBo(8K`<3hXVbO`OM$ePFlDaRq#&Hjhi6+<-;tz*@x`kF+MK`<;_q2}9re@ieh9`NH3iaCbA78{H!%+*3HGLR`8&b;_HR zNUx#8W>I|0f$9KYdiK+|#0lEzhr%U({ZNyaR`9Ut>&3BycBaIe;=WXD{rc2Z&B6C# zRvZX+(LSPfnhnogEeQZ0p0XVO^0MuJ>0~o_)JV!3cN&|KBb7#*FJW{4LRDEL zt+U}M`sgB+Z2sck@~xJ-OuYp-kVf2*=8x|gzP(OR&_;W`N^K$I#s!7;f$MdjpZ!bG z`qjs^CD-dMhiPsG$%5j0JK^LDA<>wD__QKUWXRS-3<2$MmrdzKG=PaDJaTpt-QuwI zLHmk%8&y@MV{dSc~HL9+67uyn8qxcz*+jwooESYiF6UvA?|#B_mlNvPItj-5v9Q zUxvVHS~h1Z)_gLVpU;L9N0@LP^cHn%M?})cu4bE7J}s297MyO!&I@yz>n#QPW5U(< z^+u^2GJNJC=(m99KAGX5#r`FBEJvU7(#9ri^fnn{HVTib5-A0tFg7EQ5Yc9tn zc|wH7bmb;?J9%`dRO_wiUZa4BP141-cPFwXt}mS9k??A{wuFq+r^kStZ}a)f-}*h2 z_69AUnnq(AlEi?c(?w+=Rfa&}lN-)PGh;~*G{j4UfWrMZd;9ltZoS?zt>}p zhk7)pOxB;!l(%=F<{=@?EiCdIRvW*CGHEJ@GEQkg9M4)se_7QT&>u%xZ#D zSe!Ln4i2(9LAdmi;tMgAkWJcC=|>V4Gnec(GHo^sOn+9&DIC33mOz#;kF;jPN%!5V`t30 zlE1rWE!gCa_+sj_Qhl9EMqKjOyNf6F?7Xbt*oF!@kbeXcw)qA1{$bU z=RYY?#~UgWrp|YMGs)7Nc(~gFg3a3zDAs~xIzQZ4lkm5$eOp2yPw>fJDJZRdm)UMk zeimfYHHPO9grIskPW=^kGBB(h@UV?Rs#SQWkJ61b_UByhUvHK@?mtD5NK zsq}Ny*bUp>_k4|-19l};{J%rdUxl2B`qbeT@98N5P*G9IcJ=T<PKYsLp= z!JCpG7l2-x`*^dl&YWpe6!GS82h4+rtYNR%fDhI2>%B&7R02I-nT)foxZeK`(UYn7 zcc2VhId;VEQlfJid3usvPzlI^n{vwF|JhS%I z*4y{ zKMo%3PNu}(-6GOC*47rz>-?ExWIlRG|8ysPLKJ&v^FcE45d%Ck({|MSwWQw)Bj@7t zJs^!7huo5gj`B+IO$6&$0NHs1HN3h?Q@@^F@0|v=H95}f_kM0TL$tc!qo^H!_!nh) znG)@@N|zQi6GTUvL!KkI7BL&w)>0<2KnlZCcSroc1tJHIg)71dxnb$M&^u4ZGMWX= zhdnZ+*7sG0Fy2K&q5g^Q`grMWh}Rk;5VQ*;naIvc?05rpSG79o_d+!u-2s)Ku^GR$ zG}-I+8y;efN5^Y*Sk2y$+e51{&JGNgKDns)>bstbcN!HJ)i{XQ zw1BkGoHt}&AAwhys%DBROlwUsHCTF#nwsAt1Jl?Y;r+gxdu!fC#5ez@)72=TnY;am zmOyGz&-E8=7DRINr4ns+#wPgS6y!_S5wv@z61AT!gUCy>g9lt^3eq* z2Jk=X^iJ}*#e`uqr`xG$q+p{z0Q5k43SnQd#OkhTTOn$d5$2 zx=o-O(261^NuYwm0$NJR*#6L440I-oj;Hk=|0RWB;%`KoCgTIE-Rvl4U zol?r=W)j-%Gsn_GRk%RI0$psP9_aYYGtpBgopSvk!Q19dould3Vtx7>KtG0#+HA`& z`f@sWHO5YOU=!L8%)|9~a;g^|=(Bp_*eAI`F_V)$@kb4@BUGp0isd#TQU}{lD zzj`lXs6uSJKYK2E#D*_EPd0r!l&0-MBW^@x?2ahG_!ZVtC2x0YyKRYys2Y}iwClwj^+<;IDuYXks9 zloaZ-;idGvOsOqo2va7VGsyyBt9iSh^ykzJ%vs2DY;59WYaVNB+VeF2Swl(k9jDTD zONwK3&IW@g=ehAY_tY{Kdbxh&VWRf;LCD=0+Wsw){St;Q`fUQ8F2UjUCcAGpUy1mC z54ratlLhkKulJBvD}DckzW|4wmOWQi;^HJiNECrwA6zVV-U3-Dqq?8JjX+tXQ|=G| zcUSlLk-~!|b{qFk8m4vJd?YhXBJ!>dGe5BP zMv;{a=_h9=iC9A4ZYLNiskMG1{qXUPWcEyo6+^UxGJv29J$}31$GLv^ddtm{6gPaA zgn)a|6u4mw&W+;0*=~6&3;e+8SPwzMO+igz*x0)5M!(!*@6#7J4|@kF3=(arws5xh z`usGG%s7{MUHe2D_rFQuH*!@>z^YX$R2FmcayW>R`sr|1vp}P^RQ-aMDyoi$qC+8T z(P8~nIBXoGf(W&AXg=(_m!TQ6e*^+$a35^FUptxd+N*jr-qwn;-wAwmUppyW=vS(d zIi{FFeIc8{I}lrB*vciE=+teqYtzW|zy45Tx0M?+$)VcsDY?@xN@Rw@mc1AXmfwT-@?yqGO+-ryRnJOlu?1mH=(U60)7PQ&%?=2#$ANduTq(rs zUO2alAgl_xfkEO7>Gbg^MJGn5UKPEaLRu7O>unScs?286s!V!kXMa#fZeQLIA*1_R z@FFBFq77%T@zRG?FVgfu!0iDt;WC0yD%AGx2Ke8#KK3vqMSGtnl}f`*GqFYB5nASU z!MeDfPh4SRQ=tAG->+1;hYA1`;Ov|Qi0r?wK~W)*e-AgRU{1*lKuo0Tt7*X%7o?rO zI90Z#a%MK!Eb9G>9Y^V|(yzJ9f(0}z(Ew)Dw?7STym})%v}%8o zahc~O-G3LAc8OGtu2J}Dh*2bIdXO4*Hov!(QS-~{ES9?|2a|P6oZI8I+I;$6-B5+Q zyqM=A&hsNEDlO`}1>&E0TST2Ezvl^JH9~R%VOUWwtk6l+2?82Swo)ACx6%nn{dbQ8 zQLl(c^+>4Su;?%QF|9(6FCw5weY6cp4La_LesxW6juL1ZY6`qWho5?w_upDC-yVRj zBbn3%WB|nbeeY4;V*6IMfgviwWs+-P0m){)Ix4y1LPVdkBa)+IVZ=$ zIHYjTg7Ui_lf5UV4jWN@!xWJs^@8fW!E&LIw|`C&jKuK<)G)61HW^K7L`(NgMP1*?RG_8H`2Q9!$nfrV2b*^;jFVQE{9<2_(Q53dI3T$n ze)Zf6{xS+#X5QV)5$UxMGB3haN&T^D909cqN>Iodtpb_m@ljJVI@Jxh?W|mnYKRG> z6*ayofAP+#E^B6!4pp|(%OHV8B97_rNO;F%>?w98spzu#4mMHg!OdARd}9^geFJ}y z=$l-T71aH&%~mLmhBk*~`EDm%e|k|<-q}E>iMO`qCEnG(sL%8y{6Gd(r~Lsrn|xE- zHO&ibn(^A|8J_#bP}u%^Zzx2TpOGp04^19XW45RAaYeU05t;ja)$zV-@K{grM$In2 z=&z(z3J=w5Suk$R7K%Bwcvs~=UXns#k!FxYgl{=Qrm|7 zU(R7pQ@+VO7cu}GS}vI^Z!YhTWM4(XkXIJnTI*~@JB-x)Poab?)`s{EMbZ>H%xWHoK zZ`}e#A4^sV_l4VnGr6~Z?eGV$rlPb`w|Dg-43MhF4`VjsGq$|t# z>e^cn-598{d>sVb`TSK?ReriWmhccA)<=+XW$w*VVv~pNYl}IlWmTjQzX7;ex`2Mb z@3ks^w>7(InU}Y}w+R(jI^}NK(FkGU>EbAO@ku6AfW_RWP}u$jq7=U^#6)w$ue*Cqzz{u z5v@tK$ioRK3|Yt#VWev0H$(0uu@$$%LS&MkE1zP54v4LHt3)wgePsae?(@Drw1~1H z=G8yOHN4mySSsZ#@%cl)$x55%rI?&5$oAaX*pOm$@cL-_)XBDkV{mWm3nZHBn3-lT z6;`8{Upbw8&t*&vFVZ%?adYp`QKdM1a+Xp+$@PS}=j#@R?cu+3v8>~|k$8L`uS4E> z1|Z;Yni6gLG|42t{3dg*o%?;cV_tdTQg18Bfor{KQkt@&)fOw+D#>|k<|<-M@O&W< zI^1sVW>=5!7cC6c8;=vNaEL`SXVkPB9k&dos#;45c%3=fdBRKa^d|H>6V`+*wia9+D74L^~ z2Hm!C-T4D9A|h8RkGbD3(5aW*BTk6B+A1mQn2~(`0SfUE3+R;X%?6av2h!?qU6X|U z8B!o#PL=lhyHfSY5Y0jm!Ld&jywCLpZ_a{DJ2kt<+N=X^g&nLiy_i>-VD~_ndg{B@ zWLDZQ29Z@UGzuORyu2bfbgG5-UXFy(xD>P`89iTM*4HPCWMp5qb*uk~l?Qv@Pk-^E z``Y1)jr4eT=aj%<=@>i>sG>HoJMv$4+~4L3)#l&_Ut8Y1XIv>)8D|~J1t4+p>upNL zBRe;@$S1n1{QSzHIE0MMvH+*tUwZbroq+sYdgQrdGvpsAh;h5_feH)ZzrC)hU{`0Y zsb*nCY^Ci~|JKl8o~c52*4`f!KqazNLvATd23aHW`v17Ps;D-*U>n@so#GCKV#V7+ zffRRwmEsbtKyioSF2&tlg1ePcq&OtFySv@|cdh$!-}01)bLN{fv-h4o6Q{vck{=Ke z_}4R2yw4v`ByM51E18d3s~+Q*b15qFm_IM*1m8b@q|sw)tY|PI#mLbguFW5LUUKH? z%92Dx(??Ds==bG_D>8U-O3~I`#qiO6E8zJHw8gb9@y}DIQoC>X8t6ra8y@@$s4Vf|p z6)c7UlVorNx*e)clIW`xYsO*^1z7FU{#y=!`gw~ejVP)|2xIkdXE${F?L(c}!4#SK zX~=(*F~BH90TWzrQ6BOxtn(1AbBv&G(TfNWTC&(=r&pUkb%~oB6E|B@&kcqu%tlC^ zW+uyy2HYZpCz3X9x&sTCdMK+7Lt@u&+fsnZnw4hjp7!!kj%_*Tkyw~t!QZ}=4Tu1) z3udL@A9>myWFbH!qSy~!d39~IwVTUdqghjwA^>b@St?9JnwDhulVwHBfeSM(sfeCq zK<}ni`}N>CZrAiUppY~G>X5||eT(E68TcT{{*7Ilas>_FZV|k`Cb{r}ga;yQ%*&_Y zuyXu0(_6!SkBi|RNJw3yRDfD-#3d@;f|I{#42<+gYc7&4y1GSlj7%^;626S&LQ`B! z@(nlB-$rPzuF;U{xeVAIzLozq@!}7qQlT}w`uxp&mXO#Er?yj669e=9@%4Lq2=L6q zx(1;|LQxyQ7NA!rlgGQ+8nl!e{zjW}EtV!JA7g^R6KrvE-l_ntd-+-`Kh+3P+Ng|7 zvE3lZuDJZlpHi5Q52f!|?q`E4nj2H? zM)zF{ViNv!d9=-$ymN1vcssYdjmhYQzk`S&{juU!5zRLt*)mH4NCnpX6Cm_NhVu#+rWsNL#=wW zwdYCm+oO+mv~e3Lh32oS7iAYoohZ#e=CaF}o47n=39x<^5eI?F#Vo8u9c$eJE zk0{9PkX(Q)tS;IZ&X4v3y|8E2_Ep z)Oe0wr&L7C^rJ!0$-Vnkpd9?$Pat4_>_&3*3TA1_CLXwxsX%qp`GW*DWFV+wlaa;Z z8&Jux1i&wK%j|CILcCRdgf1YK>4L+aU!c(tp@pW5DUA8p@1PCYj2o^jdD3FXT|uqT zN31}uBsrmOf84d$JKxKx`_YR9sYr-6EkcSK90J%Pdk@XaFM8#0Sp{w-FtI4bapRl` z>M8Idz_ms`ElU3m2($b1P&mogI1?+~_dUj4?%Ie@Tf%F^%(L(trHF@6M@CBL7rCr1 z&UW~FxD&s!ffY~{yQ6kRM&1Syejzkn-|Dr;Pp&tXXyFzU^18%WC4%f{!}0XhjO80! z(2LQ$%|@m#I*QXLpl*j7{*uD(6#sRAk&e_MS+F8y?_V|Gu6g6>^}y4MMP2XRtwi5IDopPe<1 zIQ4ATXO?%uYI(L9$3$}swBIbk<;8&|WS%GoKsB4<3H_nUiYcF+`Cn-DOudT}Af5Y! zQ^&PZYmquq+`MwX&cx#6PRDJ*qMqV(Oo#2y7~{P<$2x52~~zqmeL zjAqNgvXy35EcM#d;ph?5c}UVMgFfmFPp^L`k7m(4JUk#avm8Jrr6##(NxdA`g}@;kzI{AdncHu^g(uh2O!O_?Bqh#0mLFb~ z_D!BA9y*J!UZDv%RuI>vKeaNac zos4qN5b@Xc!G9nw#;4;R~yL@%dz9*AKDV%nFIw*Q6^Uz8pUTee_B<-IsnX> z8g+LUcYnv970FPuo$L1VY=6&=D7OalxjupSp{@NpwvNYZjKGv%gYLQt^afA8U|$RX z<*4oIWWvPl#}w~+syO1>;oPe^vLQ0=Q;Eh%uivRCV6{e6g<&_u<{VC7^Gr`>KQm?J zEe!WVsx9Ay#4zEK%*CTQJKv}?{D#6>bl;sjB91XayLvRR}Pxwdxy#4dPr za}X@S1MAN_V#B-B1Q_=37zc2$zm?cvj#pX9NeIoFP_gb{h`x}$*moQ)*v9miPJhr7 zdD-i2I#-Wd5TU;&8u(+9iC6%LSpeF?Jj%?{uHQq;cb=ToQIRwgCfduRFBiRfAzrp_ zq#a02NE}}pRfxp(kGaA_HE=VpMRsJ=3|X?xFJUR;k*M0Jf*xwT;)TViT5pb^Fh-9~uEeHPc|D;2NfTXXPLStI>Hjy>dwUT#_> zy)j<@C%cE6V}&REQ=57?&M$J$hs$3=#$AnH8vhw1Ik?}#wid+u)4nekGg&eL`(K-L zb5-ZiahlTevJPK=*?q!^Ouuu!HfHnoAl)S)mY2%Z8WDuC1FF<`&|ylKipUSKDwr7fZpxv!`<3_YD!a% zeFBzN2DTq%WJz97>+rljtlrL9^@U8)b4@E_=hzL) zKA8~w`Fa`|>mMsU7SXfQC*mdLm*%6zHz|mHuHg`!Rg)4c$*JspP9U2kzV(fG3GZe$R0o<`{5m^ zSp+|EytqxcE@SGjsBw{NG^ATGAP6&IyYL%wa>ii;Q(0IS{*w}E()03um?A;rI86rc zbg8dG?Huq|KS8duoq9;c2=0z=MK8~8-~)z=G4U6F4U_MxfSkN*)YH=wlG;CCIEPvO zjgm2=-rY6u?+r>K#v0mT>MliSecHPhyQ{pTVXs+F?anf;92m?Y$M>u}@G}fr-dC4# z>OA8&Tf;dTPgZ9P(>*j3{Y*IWTx*pDIsnxl`(I8A>Z0X$ao9%DW9W|@w?Im(&XHK4 z=fJ@9(qM`wq$kUog}tN+;cRhLK9A`3RR4S$!Jka6_(4y9Vd6l7V3pJoE^TzSe!yL6 zNvqKp(t$(I+5zEj?e9};U1O5g^a;Nmpc8l93FQQ@;S4UjveeUf<|FXWq^wpSe5r2S1gf@|kZ4_Zs+7!b4 z&F5gwAcLt%2j0Iwzds6B*C))D`1opy1>p5zYY@@{*4pi3+osdyh) zsHP6x*>P|g!Bopdr1K*kKu%JHNdpx;1A8w;VkRgwwAyFn~3@CoKXQxkblC2(gVu_v&ndBddJ4ym%{VEBA-^; zuhcRbp^n+50cxm7*1v)aVs{rOjT6i4`d#?MntSF(Z!?e27K{8G80be`utdguX9nl| z#jZ{x#6yIaiY;<}ulN-iFD_Cg0^0$>lQi*axin%E^V=FEx&+t6w!UTwB8} z_^VtGgFefmwqywc-82O(+e9u6nK(H9$QVe20ZwY0`EYIMPoUq2zQyx&`QlF_40$Sd zgzX}xnarW)Ew@jxQ;czm##UJKmWvlj22?XbL;6FXle^XtuD~|h0nx^BV5JQPd#jQN zwBV@Oxsu(*C)dRTKP-Eb402losXlec4)m!>55jDjac!lhGJ)Gbr(>b7^1M>DxT17a zxKG_>nDiCrAQbwu+NtT{AUD#ut*WRq$-M(UPjNEdtB0$I@49|Qd$Op{sq$BN>2q!% z!&2nxrhFm8Mv1S59&kSkYvhPK&S( zSHkZALHfd>Ox!YDBIK~oB+W;c1uGbP#S(+FR#bT&SaN!U@Tq}Iq_*9WD(tBz4C7j- z&>IFwZU-SAEv=Nt^VsKcPeQP-GBAHnNmh#)Yx`4`cK?X&^8naqREz<<6VQv~M`Zc4 zGL$I{DiwF$JK{NI$xo)RT1m@HsMi~D@hy-RQD^ta^5y^Djki@0`*^sPZN1vKCz)N+ z7Jx^*GRzR<72ZvfWYrjb<1i_KX=YNN8-MgJ?Kk@KqseR5N!Iao+hI+MBaP}$7d+%! zrbkWf^EF641E}uW(-HLYqdv2%DJdJ!Hz`?LNg3FcgfTkV=VEH>mhGiH`HGxf*()T@ z`Qyb^TT0%vmPB7rU7!8nmC!H;e@Q15CS-;7{LPAvrj6#g;c#AG*e%iaNBi{W>DADHfn|n{F+|5AM{CtBXr3zR>1+ zsC^TFSF55J2%Vfpnv#=~ODP|Sj*Nub{v5rf=@NeZ$l<}#)PHqcAgdc;NPORVU9E9X z)Sb7hP0@WxW3S*G(|Ntga`>+!JL{iR-rs&Z68y|srhbc>@%nYcjibq%I&(0UHvr)6 zsvqIQ&pPJoWrsyI*SaBN;aHh|(e~pbWckc9;o4Sff>xwKsWqcXneS$BL^jd2Uu<~s zD~($;@1++ovEev=Vt(;p#=tg}+&&e@+K!u2ZfUhk*Aggf0n$L&oPK0(sax;vGIB_z zURjW%n<|AJoAeh^xf}^Qu(UqBIvIhQd56cxp~aQ~FGE)~LP=bakP#F`lT6`1_3yU( zE~9tZD%2=GK5j5N^1&-uXwdz^{FF-#k0S`!zn$UZ{|P`Iqff#XJNpq(hd|2IEmrOh z+7+NKua}fo?);9mZuy;Mv4i<5EwW|Cth79OxrN?{ii$!!E-gyRxBuJHfje^%aX>0P;>MPON7++Fh&MtxoX!WfyYIbKP~ISQL72W24uqORf1c$WRsM9~nu^dSJ}!$%e-d3I z#rJxy7_IUMlJ~Osf(HD_F5#guRcz3HoW%rsbA7ZrVb59HVu{|az%j|%4K=Azf|}vw z%+AFedaU)=d#HD2-(Hzg!FcAfyBoi?^7y6r?^#|>9i<2-RQi5zp@A0UNjSSvp&5VV zTu5&pTghl$Jn?i$HeH+yxT#h;TnfBiys6O9Sy<0Tz`_1MF94cDXh;~7{w|9wQK$x7 z_3vBtttyuOVkK$p*Zs{R?41&^+(LLKWt-uA@%AF8hK8NyEo!-dg+qA-d^L;UY<*pA zUT3&0p2Rif{$--~16Ek)74iFCDJ16J% zLYc}>lXD6w$8I_TAQ)EioVj3WiPF)R7;TrV_u40idFSBn^&U%xjGcbR|CAem+Qvjn zvsh8Z@-Wv%!be{-enB%lX93B6!&J{@d;MDmKi@fP175g8$bS9$HAsqHYOOX~TvXJ0 z8-xU~4MO~Z48x@sfyV(oTe}B$*#OF#X^B4}*kmoyPp+I|M6h=yVqW&kXwhp$w*&<_Y7pdv%U|PAkN$SyO+{d5^ckz51zK8 z*UL1}&ZM2(D=%}+EjoA4hpxuyEiL^aQYCYCS4*cWK@tx4!kedED9+8pmC{WQMg7%2 zjRVDEX}a*@YPW%9GtGP-PcmY2K30WPan*v2a7T)nd-lwf@;;IAzp&EA2j}e%5-uQ1 zFaF!_zcN3y%!WQ+!`e18`wcgC6~$_67Cz^O{`ZMc`UZGkx<$irw)UZcZkM&s^aesm z3;0oSI=sK8f|y%7y5)c#3O}2rF@n7pU*Q+j{`$5uf>OMtDuV6t+sqKUi9k?^oBe6h+!3pvNmo zRTZRv%*1>+nHMDJu+q^Oi}(BXr=Gfc!ees{EBXM+LVm}#F?_`V^}zNmU?X2{(0NOx zM%nS!yD%Z{x~yTKI@YsYj+tpRJ`2gWWEy2Ip?M3mxqyDSsD5LBp?0$qrG)#E)j>5G zig&DYVfGw7lRXSHyl-~-9a-mMh7cO-*RW!g)iwf_$}5VNY>Y=Rx2#DCQBsT%18cCm zwF_5R8fM6nRk#5Iq2D~;)e7owycWfT34SbHMl7HHRZ+@2A9KP}@#`VJn&9MV?$3de zZxvPZR;zD`t9N4u=urPu`)zxp>uyR$!;yYYwu8%@g?_?;oYInF-TGZt#;4IfF4%Db zyWru>_5k06oSVH#q?rewgJFu@*Nduen^sgzCd)>1$N{QUY0*VJw~+#N1*Y+;ynP-c zL$g)iQoC#aK4A59IWA_Cz|lxl)howE#;Ak2o|6ZYCPNo9jdt*->5b{UWe4;HUk2tQ zn4q59c+aPKo|~Lnv&f(>R;;c3V7aeUL|VheT+oA=x+mdBKS|@2_KW`GiWa35O7~yY zhSk+l_Q$*=_W36?5gM>@U~}ko-?99n&=-UBuQ>-Tr!S3*%KH`H8fzSAiVmLj&SlQM zK4I{#=G*=kxC) zd%W^#)WNG()_)fz`%0X5qtO(p$?tJT?w4%nQLwy`gS2{4x!v5sJM2#S$G!7R9`K7FS>o}=4K=3?F0gBQ~hPGeYt*z zJKqdC`-8@}f1M`USK6V|Cb5Et<^H*C9&%=yBhJA^#hBVCr8ad^((zbZ+iBi9X#5k& zvi<%-vJiB}Eg9^%*NP6u8r6(p>bc*fqg1zY>=qdVvcLU=hkWM*Q6@D~cXp6bzt9m>;8XZAOtS8|#GMA)GB;5raxyP)%-0wotC}U$%|zhdqvAo$Hk4bhhf3 zM=vV#3-6omb1r_{8;-5HX?#WUVtyrm%*ze4WeATvZ)Mhr#D> zVB7P-OQlGH>VG>%{OFxKA~ughUxcm3vzHip}A|O10CRm zunu3Ur!CAfC$uBGc-Ro3O*a@~z7)Qmc)ayfL9lpzfjX}AAW^i;?fJKbaxdm5LnisK z_e5ITdWs^bx==%m6zJnT+^`)1cg&o}Dm6sDm znI-b}4^Sa|1A`{fc}aD``tW+qyJ_~Sqc1e>WR6ho@vg)V*Ab~Ht%dsTSu^D=dj6Jx zce@u`vNY6pOp9|>h<|i3o@~rC$~+Dig=D4|)iV=RaiolT=%t$*>zPY>R+3qd`g5vW zRw{QDiy{V*Fa}m0oEn0vrH}K}qY|i(cylV_!|ci-(Jn&BRmgp6vA%Dm#_aLpx~w%_ z&|-2jYX4=ESkb!ZeiM`Hs&QrPNB-=R8Qr^81j?Mc@=JB+sL~reMHnQ*$Ti~i(_cHk zOm%b2k$5(&2Oiw~^bSyC*RUFX#~v6^%2pV#@{AlNfbzFnKW^uU(7*9+bLh|$@Z*(f zo99@z6U&PB`N*`jD^xTMuhgFD4yVyiZ<74?!@{1MP^o<-^rp`;Rd=`e-^~>7`$cb= zb+ROpXeJk(is}Manu1SWuPSSvDdGuq-L;)Knjki5`^(THv`sHMY@0`$^eTx*Q3AH{~*?zL#BiF_7bT`Rm*I@5gRJa(3yMdB#l`B%p*?Fixy?5*n17~?eXJo-Xj zaOdmQT)RKC0Qsqwlno1({{w|k>J9z^FajjKPNO&w^8Pl42qZttZe5Cb0IicM6d7b4 zW*>DC1l794(DRP8qe7ycZqSeLCVgCnEWA|9C#eegJHej>(7<$)etz%7W&;kTs8^@T zToB?*9e6##;W&rHmJ>i(tfP*X%@l19cf72p4UJ>%xpz=844Cc^NX;U?T$CPU}p2nyl} zb%==VK_Cy%#<)HjQp@7@IwTz(8*{b%UGMi~uOK%hOracB2#=38iw zuCRzD3WsS0bvL7nCv`C`T1aem_eZT!{(D|OYdzex&f&y)GQB7CGP%OK zL)lzFK+1++9+Ua&`|i#T^>2~0iSu0@umF`9f*y??LwG-dcHr+S4fJ2#T&+(1(~M4v z2Dlewp77K?P=j9@lyg)Sh6t8g!UgLUzb@Qe-y{HzL)0JgBXA;=mr3_@V|_c7bL+yF zUDZd|3Ji_v2-jdbBOrI+jnMqKQax)A5&10l4H`g$xEaqEqHVMBy{Rc$qZ&0iPefvO ze{h`lZrQd?#9_4|$DlH8V2Km48MBB}dZn!VR@^>Pn9F8%8NQT-NO1=R@vJne?pJPQ zlIMMlyN+Ih(Z|H3W4sm=BV&5UNcS_bdAB-Uc5n8c-P=ONF3{PXCxV@{n@10~lOdbG zU%xG9X3oi_;y`E>l6|+Ky-ITDfFJMv9v3$(p!|F|wC{(P&?)hw2k76b{GpuF&0_OuwRCM` zwm(uc>~7nav()ntq=4J8;_3|aXeSkMe3)^kI+}nUgSBr*+x&xdmy3?yJ$yjmcf{5^-HSiTk!|o4CmZh-(TkQ z%Tah2cDO2>g?{G!v${&R${_NksS`YHe6nF*b@Z>pg{vUW%eg0? z`Jth6V#4E0@Q^rz!t<)v*26VI%ZuPY;?Sxb(U64lVs%%H9P zbc)@)(MbuejmBd!PT~9C4SJ)ARqoIsZQl1&T{+EvTHMRa-$jK(@|Ho1J5`H93b$V7 zNmkEF-=|Xr67atmc2tYtCOcIw&+hjgpX6(}NM5c%Jga3Zv+?f!o^$*JZ8w{B<_ z&3QBpg;CeH)XEx$SE|W~`F+}J zS2dXCK5fn^yUs7cnaFs#zK45csM^;<$1x)_{xs#$Pl$JnwmmniNvn^y=UC+V_CAP8 z^e{O0xR-Mr!_K{w-rCwcnz#xt8pP=p%6(yOZ_D%$z;M{s+V#GXVt+`Y^NKTS=BG5j)TTb410MfwYVVU z$=OJGZk>=9a!-^#X7e~)VcEU_O4&8078i=#EvwkqoYWW9W=C_1Xwo+K8)%s3Gai+$ z*dM2FKI*tnKb`x)*WV!0!nAGgo_lYZ5d{%obJMve=rWbx9-A7R1auafU9|NRQLm3+ zdCN(}^sBxGZN0_ZdO8RDb*Iue*l4acJ3TXx8f2W)F8>HS)ZI(hgsBE+8#M6t3yU?Q4x_X9FdH)A8AalSWVFn zjZa_8FQtL$z8Ka+cV=s-%!jWX96sOJ+4Dx_R2(+@HbYM*!mwd!Z!PH4GPC!~ZSaZA zS#kHQmO;#In@EK%D*n5}*S4qhed2}{P6DY=>ozxxI@jY>x{2DW%0I0RX}Y;eUli>| zc;3s64m`LmV;~ub=TPd1BGI2TNFq*K;_cfse2?vv@W`|6e;M#HzPVm=GtSq(euSf2 z*Kg4#r+Bl(OAC-P#9#Mf_iTUdY25Dg*mw2Vr?C7LvNUV=jq&}lJrq^$aArgszdOV$ zcl}QkL%Kt7k^iPX7Nve@HgfJ$b;_;wq)V2<@44vBBN!v{12U#DwN%aBVqI#>?BP%k7Yxk4#KY(iWa z9TUS-=eqbh;_iry_IhtuOr-fqH^8-~p^qo}X(l~X>$ETol)~$}8KSP1Jz0^bQHE+s z$mRFiFLu|@vS6I-j}^j-xs*HEZR(|JY%`H-!hQxhLV9@_eE--V&TW`b0Y!FJyIOJn z5+BA6Jb~-Uz7_Om?b_p&ePzEJ@#Pm*!dHn{KEA;&Vh0;K*S~T@WtpiLP;;?|f|`KS zZR7nn=6cMqJcvnZtuV@6I6vv^+pZ2jsgmfX#An1o_V5xrVm700q86VmmrBCImgHfF zIJ?MWgk~~%Ct$`(OL;@mP`z@T)`wWq>mwYGp8Sm>{BPpkyrg_|Z{(w1?X6`EYt~hw zP*CRAEy`^6Pd{Q!Qu9e^`8MMnKEwm;{YaWq(P0p2ClF=}bG+W#Er_-vIJe3`Slmaa zaO?f-ZMV6*Ouist77B#27ozo??ywGV1W|cOo_+!u>zc7nb4d5pK4dbP;))Vy*GXMAfaW`yQQEM4dwni$i``UhWX3lQO z)V*7>cdmpKq2o^%lmFW!b>VFO-_C`YMr}N^w7$1!Xc-@4mp>e2gOuSg64lpkpBLL( zHO_miyx>pg4R61Nm4Nnq1^3;F`(h3F`+O4=1<%AdD||{z5D11b6C~N$?)&qb%fzFXO3eaCw~&1kKbti~!|3Vv|4e<@d@Jloa%ri2W@_iO~4)%d(NaD#FzDum5- zhb_)YxqtAx+@qEpt(>AJtIL=g7>XIy=~g}>ZF8a|8?L%3*+ohZ9Tn1G#;Lol)-Q3f*y2=QBLe0UU^#tUf$HLo(OtJlMP6= zsesV5yQj;4MsT<`QLaz&a34Q?T}J+^(~6-6Wqys&90~_Z8lX*Z8>;$|Mbq|ghj+rhY&_PT@Wy)sxDx{ zF?x_gG2L5Lnfv-HK54(hfr1PHT*q;zzjgtK`3raKO#FyCuq%=M(-*Lr?8obf3h(Uy z)v}4|?kP+a(-lQY9FE8;KR--u({O(fVm8ota(bnwn-jI=H)N=Xs#sYcZl6ESI~^JX z3LfF1Cf6zgU~cx>^YU{|49vrWKYc{PvJqR7qSYBUM}cs)m-^j?A4os%`Sds9Mpvwk zSko2F#ojUnG<`@bo9MyQMSO@=KR0y_t0Q6P) z3q&d#_Gf%rf`pj3o#}h~=UqgD7nwv1Hh11Q#kRK5p}x=?xfeB|*4$KEOwM!Meb|Ta z5mc*_TAppq^Tb6hE{_0^?HFxvH%ILOV(Pui3C>Ca?@#5 zZ3SZT4#yuVhpTmEW4iT5zz-Qq-{@Z1T3TKDekQDu0z;NbVq%xd-$6sBZa7cx33Tje z*tWxwjA`K$!octDXy91`G$Pd$Q(-`hgtf`%k~UeT_eIDpuE+FUUQQA%bN(?2$Ef2* ze2wi*$?hw3Mh|mYAZw|J>RuCfLkF*ODzqgaw0g^nI+3@vopXRq@s@1#7m(`7-D++U zEP9RqcvND3v);(uUQvE0Fir-@DtUBJxy2IuhpM?cz}nc^5i2o3GJNIg$H*3`(R?C5 zuIAmN_%s*9t-L-dS4T^#m4al6=RvNFYD;t!$Hz71&r5-`8At5B z2DJWHRq%rPYd%q0>yKrN#~POR^L8tXwh1rEUAd~SoQuY7NJ)3=4<5%F^*MRQCDoHJ zg#*>#TqWZ{n*@VviTgm?Jad(`loyhW0&j_LiYGt``@*Qs^DUW(vG-oGL}2DfH=P{X z6Mvz^lA`PGyhlgzC1CfT;3W@FH@;uDbUwFf%^b|%HD0}#KbiRT*ju?|hNO5q3Gnl0 zUO;4mP?eP^+r|Q(yx3Y$<`69qno4ayCO0vGD}E-Foz8FWRyXc;r*8&h{8$#k1J+?N zbT|6ClIje+xoM375XU5QTptC5kMsL?VF~Vb2{l;V?FP2^7>KUnuD&eC-y=55Kl2+05NF^%w!e5_T(5(>W04PEkI#zl(=Kg5F|KkAWtQpKw( zt^)OCFNJdP^qq)xHVH;^()6v{KH4%*AetF7<}Bbw7r4R&)?;u5@uxBy{-I<-Hsmu?h7!%@^kvQ`S-bbjJi=IC> zNKdC$>?vCV_#)^~>!}Kd3~MbCFPpGXn*a;n%%*GIrnN!I317p$Tk}+e!bfSgy44h_ z(dfg7QT+||nM9hnX+4bp>VNH)w1$Um+j#a=LcQt?Jo6$>w^>t2@qI6!8KC|+YpqIa zAB0j1eFx4BaHJ`rH=>v2!EbFB2Q9iaLF}2XOQ~9Flw5D{rB8SCANmN3a&$^WuC4a! z)l)WaY&iWYg`#ORi|jMDAOApHwC%VeT2~5I3XqXi3wEqLs8@nZb5%viXd*J$Hxw`I#Q@9aJQtU&i> z4Z6H!r7e8_3U4Ddg~MXFR88FrO}YsEMbVA90=@CwVzyUxLA467tVrNm(#B@#Hz2gH z6Z(a=&1Xs2$vC*yb|F2{VN|HF?NYDZqhg78UHp3(=3f&O_3!ox$0bFF%dTQ=Dq@`$ z))X6mHr{6d^MvGqC89jH0KQ!at&91FMA&)xLD+w}e*al42F@Olb$2di?4mut)~L{0an4Lg+>Br= zd6Fm*zIWuLo6JcXd*-btL+8F~y&_1BIy(05$a(dw1`Yicx{~RfJw;&HJdoumOC;Pb zmCEL&7j@s3oA+}zNKwE&{Ce<$9|CT?y(AU3g94mo3W_@)X)OkK~u}TO;~ofmMe_S*rS` zPZECvT3Ha&nesf>rkil#2JGTR;bLAk%k%tev_XBjig}*@Y#%{jowW2Co5Jv1@%D%!3yeL) zns=4EPF)%S+N~7TMMkDbl2P=@iajuB@!+u!cAk$MACPu;7_&#Y`*4!$lUGB1NJVpq z#Qs6}_eV0`6}hFF1^^drV-1HjMGv{_anVQ0b|EDKrY>Ol)CzZ`X5$Q+G_y76QO3RK;ptb7aBPn+5PJb^j;909#97-l~I(PW3fLw4*L) zr8HQLf_3ld93NNF8j9HA$65>1o+tJ*6Mj*Bs!Pyi0U~oT@}#(;lv`se?9(P1pI#;= zm4{ zlnwT7kah^jIt)c?n$#^(f=;mSt9(T{6<)Plc*$q5xGeX58&P)*=uoF#lmFzu8|2O* z3W~otG|&B;n}t}*Bsm}mXg0u0n8>0()uZR+c-xh0N)bRaq(g}vmB^5cfQWPX5OgCa>@hvfOCmuctkzx^$Zx0anmzGSTIvdUIY>klhhNtt!B1B>j z+@<_E#52U}fGz+57d|N_r2FmH0F4&s@qwRAUx7(k6n8Qg5>Fhblh2)+{?~c##VwCj zS_KboT?e1cA##c6`+9!>m5=$>{p4s&E7|qGmvaEn$e5#j|Izu2?2q=DHJ8I!gt}wS zL+*{-bJ)Zu=JZz%%2Zq`%h+C@+-SG8T-q^jF5&s{k)nrVX&J6=!feFdWYKsh>N@l_ z>lmeXeogNamKz%QKGT=%k;uDaA1xs6O6)VHD*w4$o=P8Ls3l&aX3ppY6%g=XV6v@L zg6n3I_7YN*Soz&Uc0z>keYTU8r7(LEi;5nh`qaeKE9%7G_kYsmR%6h71g@3Dy*zOL z@xEQhVDt65V6b#hrED35gklJ@@YV?;wrp6_l|UTvy2@Nk5#wgxvEm(U8U4aG+lWf$ z_J?Mt$C)!kyrl2qnn3De#xSuVy%QOyLOt6Vv#0h%Y`Xa`ah3+^ifx^xY17@)M%s*g zZ|`a!)@L7Z*MQsqiH9P>xmUWG95+dHsVMZ?mg-Gov^BBvF}u3?dI`MeBe6ysH~ai* z6B$`X6kIHud}L|8R9q4C6*y2^#^OHPdv~Iv!T1ZO#COXEahD`I$ktLe>v$bWler_7 zLa*IW4FR*s_3QwvV#~wFvRqD^Ik~{v1vD=GoNp)(AE2Mli0)eS{YgVChys)bh!z8* zk4B{k4G_>3_#v{xve8TJS`xq{Eu@f%dF$7Z_uVsJl+NA;u+FmCtj(#rPt}}O16WeA zgb?-bX?kEXBRyv~vJxGi%5}JiA2{PlNB*il<@ZI$E;^0>cvVhKMtVdh#caeni=q_P z+SN7A?k-gVv6J>(S;_2}Kqqgkg@Gyj9yjG&mLPo0pC6ky-Tn6;uDo@Osg}64&M?`N z=h4#|=+4sJ&Q^Q0O+2vl-XK5b1`@{O;IOHFlg?v*@p|BYt-wa}@JF+$FI zx52o^m|Lwm>b@5X=T%At2}+e6Bc1mih_)LFWLOp21GiKM*KRWVkC)javpCMh16n?B z*A3=I_n8pUWAvEDp~5gxnz3=!n43tky|&x$af$0;Niv7lVc#LHlnatf_{^-T2xP4@9)C5fA(WGQWY!+ykHhl@7ymR}?w7e}J3cMpetFey=8N zN$DWNPBU+#vVgPiG-&>jgpr>_n0u>&0uU>kGkt#+fk*1aC2pQ2Xpn;Ath=s z4lqDpJXtletK6+pJ&WtSz$hW@{6$JC^8^*S_nMw`6;mj;*dlK1vBZiV?+ZY(dOA0! z_gPT!DYWm-;Z((ygM(h^218f(>G|1uJO@YKF`S;a;jf>EZG;BJrQvP)=7X4(VL3fy>*hxXqn!lR0x0gDzmTVo_2_v2f!n+y+S z=9v1ZPv8AFRSK<;63}|qPOw5T>x-9s9F(0MDINV1#_{~eIw8zrDiL*TB{pITMAW+6 z9Z$#JXzDx^i=&}ztu%?4Ot^a85;tK$E$=A$XS6`k0a3Omi6?d1Zt0co4$)Rcgb=jm zUaiu_8aT+je2qX}Z%`*|TDknZ^l5$q_46uG3rgrk^WTWr-L7k=7S<#=BgId%Fl7cL~$OQ}ZS&alG_X zWwIS!)qu~h_y4}TWA|`!8m7@Rc(4)a=;HC6%NySh6{3uj7BjVsCDlX1v<;t3H63m< zJ&Y?v?{Gheeqbg#Y8ID$y8bv1Yf6oX!5W0TtCZE;87g~{U-}@*k z6(gv))|Q%m{>8a|D#-HgbmIM&T=72NNdfy%Z84@2bA{QAlWYWW_aC@9t|Ao#GnN&8 zH$@l!3DLI)AsjY4Vi+q+yb2zps|GZ^OYrF~x361da}DDc=G^bVdDS<<=qZSO>m|F)NQ|3@S6p5pzCp8Eh=cg*U z@E%afnf3eMK}TYEDh2tm&a|OxvbM-p{RR*+Gw`vq<*lX2?AZkbpOOz6 zz(TQyTAAFOs`!2nl1({+&%vUaN$c;ZlUKeiP((O0@-dJ?(?GB&wWGLtxvq~_FR*AU zDr5V}#-(M+&PLl-8eQw03y8)`Zhhp9-QPq_Vk;g{Eb6ke5(bV8Txj+%1nDVSM?h5_ zNAKS*&`5NIbut!Bfhb$l{reVJU~W5k;CtV$nH^C z+rzH5Ki{&4`u1LUterc`?86_?b<|2@>mE#WdR#7H^Kh_LLUY1e%5&I079j32s0?`2 zgds-%W;gO#7C3ew$>@k>V5aJuyz!FE#cM<@)qLlP49MmsuG!Z|5=J0v3}SA$J)}e# z1?$~-rXZnK8FUh%2&lbN%<`0rPQS=t|CF#>zrgjZ)e zFRIrtP|{YKv;rS9(yN%9zpx>rB-7r)>b{TyrkkNU$T>PY6===L6w476aM4Rd6&`GR7c;<%rB5B(6g@-4Ja_UctNfN+?JW?3pvd!{vE4v|OG{Bre56K4(bp zTKB^Jos+B-%bZt8x&$aY%0wB?;MHtzdTSMek*INd*oswK#MgQQoknZ-Ii1A}Uh~N= z(rs|`e!zK1kSd)R1c&V+bLz5PNoApU__+_|fe~ZctR1YJ>#Go@*uHsW15(v`Q6Jsr zxAfyBrrs;{DRFwfxY>b)(d7jQLWa4Y87ox4vu|tvhqAW}i}H)wM~7kPZUG5tX+c0b zBqXJ~Q(^!`x=RHFq>=9K?hfhh6a<7}Xa?!?@O!Uw&i_5%&ZpsGxOkqm_KJJ0z4pCz zZdy%0Z;p+GFc5iOB-EXor2Iu$efWLYyBe}al=AP79IdDMu<||iC1l@pMZxt2WSV@y@>+`6}yP5oC(X0J_ z1;T_6co}+rr6ESF=T867;|Y=4K32~rw+qb_u)H7--w;l)#JLSWU|o5gUSn>+>;38& zVxYe`&4>Jvm?$1S9e?4!+^9+nfcpD%RT!PB(IzR&l3vzH##C>erEdbVmE;N7+50PT zV^_uTUgamu@d}DX(X2qa+J~-rN)*jgB*^CsMj84p9#G>fiZk-J>X5i@<`T+8Uoe4Q z1>PdKM{VJ)h3p%ePVtU2-&dM>k=Wd}^e4wh3(PG{sEQY@!@+nm%wl!%InwrPX?tuL zp}Z&)EZ*S8MS?7rfn}sO5rvMbZ|1G!F5ML023E5#FgvnXkcZ?_;3`ywAapq{{ShN{ zRxHCs7PpNqCG1f|@!V!+iC?$w!v)wC)DL|B#S*BimXnF39R^5N`N}(w&{C7^qZhkn z#yb&2nj~x~mvKR~ z4ah~|j{+U}`JHdCos8L9TG4*$yQo zk(=MxXmP=jb~a-@{SAY^ZTu&9KGy@xTVt)jVX!1bJkvkK+cDG&c0e!iQYQ234(J}2 zo4Ax*yE}w5M6B(m3#8NUKet4FQ0aD!!5Iitc)?o ztvW~(M~bs$PgQjGJWe`y9#t93zwKtZCM_YQKc|QH!63nirsHR~a1}Q>$yU#XwZaZE z8BW^8q~RypiUhKil9Hc&e!O!|WJs!RE-Lf*#vDsiP3uvFlw15ZS zWh1P*X+^INnryh^auzZsH^L-XH}N|#0e%Q3U~8G0JLzmwFvbqKk)ka|=`aK9i+p`c zk1qyxjxph?AJebdN?(n_Bg+DsrhcBW+OMBoy9DG<5;oLmQ8yEjUX08K)>)RyF6F%y z+F=c6j0}$G=Ex|)GyI%)K8ZzDHJw3c^@qD~wA~0<97K(5NGyb%h4i^g1T$E(;rOMD zYSv_ECmdsyQ{C<4l^o)eqR3-*pv4C_d)mK(Z(Ejr>+{?Iy9z@6_=?hxpQ_s;Ea^`w zqusI7BD50pk8a8&*o}k96n}bJPVlS9C`wgM_H-rtg6i3c^4HN&s>pvNJ?{d>eFIBe ze-M7n_CU=-%MUydQO4vVEJAYKt5k|1Y--i;i}{9@ul?bLqX)@W?YBKH+WUuyFC(Pp z?X}|Q4LG1p+cS6Rdd2T-KyOl3^*Cqq27Ycr#?~CPjaIpe%+eh2O9|T{URkmNf#e67 zNA*T_Y~K549y-A@lJWRr;K)`UwJqC4M*~Q;EFKc%kX>9Nodb2 zuU`VB&La?t2EP0RPyyJcTBGYxqz=NS|Celk;nNPrGfc;ypP|`vn1dtU9p&0Z4$}w3 zu^~tY)e$Pjhiix!XuPb!p_vk z+e?+W7|GVazgI?Yl)Bz5mB(YOUsaOO0MVCCtYA)!p7l1mfR~`I>mK^sX{BM@t5vsT zW!zO;OD@h$kjYnKc-|+qis5ZW#T4h%0w?9QfDZ&g4`y++sTls;G3;@?)oq|Nv2wsF zNNOui`nfvkJi5NF=ca;uG4GYJsTS^po{0~{2jcd`xI`;CUC^+Oq<&Fs+gp zXQ30Iv+rfqhw>{MBBUIyoH&jaz5-eukMY{?5MY9T-dVPH4htf%IxP0$>!YE@o&6do962v2Lzf@2N&4-k%ds0O z+{jLvzg4@11M^=z_f`wJAncm!AkKz+|vd6ICAg4#;YB^Pqag=;zFm+VZr23^Xg1O zogDmN%R2H#4FZJWobUY#AVxJ1L$HwirtGI`Yw%dK;zz}SL(!lWxL5&;uDpi~>e=+H zd|Kv%i31M7Y{VA-h1X;v0PSHPgB(b!IJ(@Ety(3!c@y*RSxPc*KP4ikrco}S{~hPU z;;0L3fJpS<@8K%h@z6N>vN&&%IAM=;z_)1=-L2RGl;O9O6MyJl(247%Wf>e7^F+){2QdXiNlKQeFcqJv*GBjvINMU(W zYC{33;lvvVvaRD(bSEi!7#&nZ1w~q?Um3fXGL2JJSJ6((ws~)s8DZ0_AbhUn(3KUH zcFEt@-?rxFUi6DAY^XX@GHY?rCiEqEY;L`JZ`Kn>!Yh!;|Es*tRH_7MzCyd5$hfX6 zFYoZ6;v1B@d_CtWVyD!X{{PB03J}B&I;*H~Y-5bbT8HUj8bT?t8?}9fZBy^Z7XPOK z>c=geID~aRdB)Ux)+^)<0~QQ3ayR|HD`0#gD#4Vmc&vj1IJ990;lZ>xoC)eZobf5= zu6Aw|inpPZA{=n~uRc9|n$vfW4D&DiB9|r94F#>KPQ~g8KLdRUS`o-EdC^-}%Yu*2 z;KIL>>*e!jt#};9Wvq%5t*hC<;;5#uwHEHgT6Ku*d8?*6vUTacKIy1FygQuf)-q<2 zzD1nj(Ynu^N;i-}TnSTnqecH>TAXea>U0q3DTs!-Z0(o^%fH$dP@O4UD0rythx zc@~(?(7~cE0dM)t2MXvikNxGtR*Eix)D`!A&!3pZ6vM=HyQ*<$=z}=Mkze+Acu`&8 z=%NF+y{J;yYVw7?9 z9Gy5YW9(hOZ5=7>XclP|u$#8c@y@hC=Kg6jyRE;36y#VAeWFJSu2$l%SjY7b>>DhN z7JGaDTwd%aEyMV~L?;dLC@ra>9+&SHn@JOS%Oe|OT+LyR$CytC-$-4?j&*U+hX}w!r+PZ>mVF zv`$@xbi%w#Ulsl2Q8dVV?xh`1ts2*1CCN$c$OA?BH$ymE-=u9f6R(yYKH*^A+86KQ z>8s;{AZ3goM-&Ua9*m|n20RHrne zh_41E9U+{C?Mq9jAduQH^>ltSbn18!2?UU|Zo3mE-zUWj*6KLq>9rCkHf+BPsR`p} zvJX1|&e+NiygT?5s#(IW!#G8TtiK$d|2Aj5vKqAusmUr8?GKW$n#5~Oa>@V$!Zs1c ze_vzCi+mA3I5|J!C@u%^dSEt?u%J}sczCG*toAII4>Ffv{kO0kh$5?_Cm!Qpt-(u| zF2c^W`jXO)EIRo*3N}<=E?USr;u5SHFuF_cRj+oIilai1kZ!Q4X$X2(G2>z~{;|>n zcb#oQk``jh!-53DMrj1a_rVc_FkNhivBj>0}{5zpX&rpo9Dvg<-2B?b`$fM4xUTY5VCNoKPP zrwHPo-}IpfeZ>ivdz*wp6@eUI5nv+0I}!`99{F_lCQ5(4QwH}oM*~x@uC&SjvQJRY z&O_N%QN`)rd~cUlRRI6qyti)AUdUWDDOvk))kw->88pFm{y!PPI{vED@o0M`AwIfe zB562MBIlukOPdBPE%Pzry|*fYbhU?xs7 zzvuBB{{eiJ{K~puGjm#9Aj~YFMIgme6G{QxSVi%)rD%qkV$-D7^@9^mAXXU%;mmA z_}wqOtI_APL*;Hr9`Dt9_)S>3z#>@kWy6^GCU*W1-Ju2%L1p<53D`PBobg_X7GJ+k z)SuIL&K^JLsoz%ChzF-UN6J@dxC{;B*Y0Sj#T05Tpu?r0ixANk<8eEABDu=Ccq(JO z4DVX`-hk&Y9M$5%XYUOA0j$};wPAg2o+^uz$9ni%GXeA(^FW5MD$CDOkfkdwDEzBc z&Og+SA_fDAchuSdSr0rBmV2;T7Pw;_$W7evZ`wS!>((Q_BAzEPL`4xYtBQ$)1hY5o z-ZVc4E^6E`h9$xUh`zO{LKWh8l6H0j^MmZAf8iziBIZ8bZr?OE$^*L>w5NSmrr7@? z!prD4mJ)GKe7T{;_htOm?~@WSz-1iim&nMwkrV+1=r>>~ycxvfo%0t$4@Tjv(M^g7 z6wPc&Npk%f<5?xp2hB_n60xEs3aS)xe6_LZ3Dz%5VVz2m4;$))sgvLf)M*}PrdQ8G z`QyGp^UO0@oI&3$LD8AqVUwynzC0Giw^HwgLCw9hQR5sRar+$9z7|13q2aUXwtzgalqD?#;-`jbhu z18FIC1y|L%!}Za$HR#PAmP5Zfy%@j3iM|345}R0|ukI(%TbAat#6SAn+%JsN6w&%W zg&c92qHNNjyc*^@eA$HPBCJ@uRsVP@h-rVs7S$~cJ_(dI3ph{ue5|1=$*U%@`i6^` zy=bzT>>HlM7Z|ET7a}We`6LB2XjhyZ3}$($#|5_{L~_25GyS!ld8b(hY^9fu>O7SI zEhIWX2|z+NB0BeHw)g<{lR=8==3$n~xcs75hk9kOd;W}7!n2`Hn?_V~LYB#ih25&4 zbMZ&YJ}o-}NhzGi_Nxs7+tVe^l%)>h%ie$@@`!mUUiS5GA*i_m7cN25*GJO86QF(9 zzF(O~FMd8axt zfQ__5bXj&(u!ntM$wV?}ZzW4VH&UC|x?bpS(Sxl8XA*S}s0505iZ2+_9VREj_kKfC zWqSLB?rv5gGvbmZRK#Qm!dUz)HvNXE(uyqV6;{C zzBKt>$XV76An8dqv!D3{A4S5L&+EwizEl}-v^{Qs30u-ZK?WK=W+_Zz&R1mj?4=jU z&;FyE%Q}4WL^p>!X1>=?o_GzOQBfuAXFz7s%&7Yc*0c&ho5h+91Q~5UXH`s`&8^Ai z{=g`SwaF&G)Nl&2GLUf6z`-T|gQTY>0(Pd7cEH~Tz08V{e7)&5AC7~ljQ0PmS9v;S zrHZj?DISl4ZMpK!S9<

    qXTlAKf1`lfKmkJMja)1CWoM&&y{&kBo_63oe5ug)PXT zlyK9mA%~Z)AgnNg5zSkL(=eNtD=x-;k@w(e3ET#ij)9%eQ33!KwE_X9=@l_t$G7QF?t0fkzarkgL??Kc3V0Fho?#e6kpL6tOf_7aeriLsGbrY=UUA4 zF0yP_GEaM%Kp6*S7Z?z(WsLwvuE^oO;)y`HOx@bP7T1BFN_MwbB~L3!?n@T>5Z#f8 zF);by^nP$tuX{uP9DdIhXL>;;@)j8eIWP^vvj;ORcx1%0XZzy&G7S4?$S4URQ3ny0 zca#7-dra~$Oo`c#6OIisp_Gf%&0^Z{>V&2xxhf^y|9;0PW>6k|% zi^z@LwutP%o#0v=@6G*JeHb+h(tA#2Q0bL3+7jx)#4|B1U$`F>nLk9N;#6h@+qg zJb*NYK(gK_DBixOo}Ds|X^G9>(=yUc@xS_;t$ydQYHRDK)qp(tE~tk6y39|=qFLhx zjNe-K-TgqLBO>s^Ft1afH+A$2tyn9;#}L%C#b^-c;lWr*SXmA@en8o_QcTv2_OS+*E&AV>jHKqr%an8Fo&2lMzEpdbB>Ows zN@}J`Q&?cjUYOx-Q|X2bV3RgBFx$gcsxqOPTkU6*t0H}t!d@iw(e_I_KeRUTfZFCN zeO_OXgD#wl-j^`oHN8!0t=6{)+@$cDf7|JPl52|TWo;5etqMO7i2`vBzFrx~ji+8t z?x7ZHXpiQ(?qa_HQm59(I6lI7;zc$c;_ITL;tB^z7)RY#64IcS#i_%JKL<^VT+$!B zmre9Po~pJ3EG2f^-DNCebu9=ZNfU2jrw}W9yO8SFrHU2WTdIU|z(JW!`l`Jr!kN8i z*Bo}bkP^yOLfk}+t^VL7DzThxKf|NgC@rm`s#i_g8W2d96e$cLu&5*^(D z{u+D!>z-gLNJlXdS%sT%uoelCf7&t)lJ$l>>1%~BpJ%Eu5}dj{h6y%%-B2xA?~Ul4 zZg|I_qsdj?#&OP2bKFj#a%^|>j$mqOU@=z$84~I(JiacHgp=~m;6uh;DDq1Fuy9G` zPv8~3H`mcdy*FWx2Uq8CUcG2lI*yH&1^F69I&qS|wHWC+Ul05{U^-9PsjO<`%jnlOhh>M>OL#(1lPBWeUxeE`@3zh{q=ol;`9pRuG}ulX1W%T7%<>`+3)0Bo z5oHTS*puN#-NNEfx7(%%j#tZGjb%0yDoTlHoyjx93 zaqX=d|A^b?*G{{po+nkojDjb@x3C=@ zyyMSEcKiOOF;yN0Y&J1fEmdK{SnR##Ei)HlYAj*H9+I@mY#kle145$_-1D`4nSXru00{SBocT)cq7qALatQRw+ zoc7C^I?>_3Wa-O;bPO;gu(ADIU!QH}TJdsjGG_3 zCH%m4EYM$50xUnHU+mP!M&tj6HW_T)U;OgXOM2_|>W|;>Awq zHB|qxNG^Jd8(Z+kHY`7pav-n*kKttJGi5TpEPG!gV%@TraU9yE<)_DK(mn(%M%xrF zLyybq)I=#*x#Y7o2nSirR@l?ghM2g3DOX{!gXMjp0f4=2Zy+>%ma~E0kwLcCZ>w>T zzY$UoH+}gs6z8z~E{4B4tFgi<`P~1wP=saS7jLGP$bX%?crHMfiCijvr4+=0DPTu? z)ptG`Pa7kw+)qk2=X z@iRr3iOs1bejrt06SH$F*T;cTt)Jr&q*d34$+);~e%CH7Yp3h1!ezmU9e7S#vt>nU zh3vo(bZX613v0|$=eW~eeDm?>s^yh`o3=J~n95uPV~_q4eH$AJ=TPr5UpOafW2KUE zwOpt1aTgo~ILzC*ve8*P-0+9^9nR|XGA91{t&V!9n3!L1x*%=$gU2Vu)Vj|R_Xl$% zoH5J5DS5$P5$adQNZaIW5na&10sWTFH*YbfwDmW%FAu-urW&wG+Kk(`#CJq1)JL>; z`*S*Q830_*y9G;^mF(^ZYa{uxM;lDCLwvn!)xcp&ufUCW-uq-!RDF!iE2SC&OX+so z_}%+0`uWWYn{I8hy$oizmuh3-aRu;i4}sSPi83pHf-(?Z4^xSHx(kfHOfU9H&g{iC z+4%p5Vc-7=Lim^6CGs%r0RN%!TCW};2yR0~6m({fo2vR!PB_OJvt z|5mj?bIG&m#`AawkNg#akq|N0#O35)z#R_k?RN=tXB^1RxAvZ^8B^lx6{0od5tu+L z)s?km3ZsVhpW_s1tAxU=LA3qvu6_E=@* z%Q=``YKu>)=nLBLeo!b$gf5oh#UbI&uWxl%74WSxQmJnE{ypJguwJoS<7`K+l`E(z zKWlR54UIfOgdHNp7$-fn=dVp-6N6pgAO|US_GW{;FQaF?!oM*Zfu*&=x|&*4hL)Ru z)oOb;Tu9sQHjWLQY3s{T^Mbx~fB@Z_fZZ>~36ZfAvM{J3Kg6QL`$vR?CQJ~%76VL$ zWum42ISzz9Yl4okLdkA*30gfFB0fet^><&N2ScwLNXO~SJk4C(`Nu1LCA?crb@7lc zr`rSVuWfI4Z_zdNpCD)56EH6xB zx`qk`-+Mx?G+neugUqa3bzy*OxT-ZzB5G0)8&14;=k3`U5kHuH`m*GA*Zog@-Hr7z z8pjP{>`4>VWK$n1*iu3Dr@9Ll3>Cap-Yc73dR4)v{jN`22lnNCPjzHi_odb?z|#-> zsCWeI5ZDieo{e1)6y-ntS)y^1?+1QC`hhXSqxi;V&krbA&rTqI>S4+`=%3GtA5=sNzkaN|ps1l2HK1JSe{ZEV%u!->N}>c;X@5Wy$t?cTYjrZ3ZUqR_s9F$87Z~ zY{BnpUZK^`lDGBruXT3;?rP4T^u)S;fHg4qQfpP67eF9^>q81E4W_9CSS^2h>^q^oI?`&FxO^*~F;~kKV?{jd7%9A4#MQ zGA{8t}BJ4nOs{j@0C+(O7rlPk)6!k?@SK3 zofqwLE-jUV8y7HE*ELz2*6b#Xrn`&ni_sF!C>ZH`rOd(}kUka;pC?&D>u9+BvPiSN z44TV}@3|g54C>0!rw3SLF4cUOmy-!ZjnrYtm#g=l*XWwoPd+{R_oju7@yVwZbba%m ze0l}gJcYuWNPsW@-%tv;xz`S&e9iM3h2KS{rdCNeQy*f7)W972zGj==?}r^e&VHZ) zF!MD-$!54!^@JA(H{tR#lRje^mQB zTc#LW8&O86KkK5J2vzV}HJ>>V@I3e9bXtEDZY+;HZ0SuUn>%(Pih~PEZap0gw!u@X z`glGAZ**c>s;^N7{Xu0ca`%eug6G#L{Alk>OoJY&VE8x$Hbu-a&GyWC=MrX{bvkDy zUi9eRviN`VHFo}%Z4_OkG1$_ePzCTh921IB7wy3(M&z<;o-}49x42;P`^mt1-X5@B z0M!_J7!V6zbQg7Z0wlk|Tv1Lb0P7My;N5ru5lu;jKVlN>fq8E8N@ZQs>$8sjjRxqV zS1Ze>G}q!R_RLM<)o{zboe?!h8SZ;FtU z0dehn|4x7h+K|g5j0lh9ak8Lm%JU`?Y2xPB3F&m=R2 z7WxhjJ!~S}b(V&Fx8PTUjm{aZ3<^(h`iS`Z_%F_?LQDTirWfk-82fG!z{N?8*^_UI z+;0$GL>6>utj|<^e>#w+u)d&VeCvkcq_p9H=i4xlev2aquQDhyavwS}NVSjQug!{! z91|bsCmU#ve4^C=248IlFQE2jHDmvEz)d%Rp<;MP|Jbos_}!Gm@pGDtnZHb{c`#3d$+{lF-IE2H*RP&=>z zXZc|tTwM8n#qzyhV>iG@R&UG!(~EMzu`U~Zt=Zt7u{f;)OWIs^nW2>DHyIQ!cM8I> zBeSP(=_5C;Lu!(Nw<-*J|E;a(HQ*68w_jbQwkn`R1 zywlLx_^NNWh88;+==gEydkjdCc8J#^YO(s%tGhL0Mr7sNJsM(2WNDD{)xej?SNyfW zRY9lqh`%7qS5g54e`Vh(2T#tm=&v2L!j?C<3~K6W!wxEj%kHc?X0laVSz+#N9VBa8 zGkP1Z+o41^x6HdA%A30lW}|YNneH7vh8vGN&d2nCoxCskY|BmftD&f0hw~A&m*Dme>&drUXzoyxg+q@=Z6i>7d&V|62;E8#>FXzw9TgJOZIy z7VEqZ;Jk`NsfUJ%iDs+kg5&tK>L?pp(xIE_U}4h z`I+?BxP?DlK?WfA-t0%{e`|T<}ubC}VU!;(tAr4mecLz*ItY=GMcJm=k zxw{7odh26DZtfTR3)Z8R8@zgWKR4&T^zDrac8Yk&9H+W2Px9MVEJB?W?8gpKiKbO} zu2|lAmSY-=`^~{LR-lezZjX1eGsf9Q;;*tR;Y0RLocx2UmSaa($$D2@%D?Qqr}r{Qksm`ZUvwmNhIzl$V8L!^)ZmICDh2sgvWp8T z$e`1bd_e&C-1tEL3<>fb)Ll;LgdAibaL~s};H(v}IX^d?(0R1pO>lpgj(ZO?7;Gi%Gl!%)H~fsK!jq7QEt5%e*yn9fNmD$^ z3f!pOcIS(53>oO7;q6Uv0iz_m-gETjuIvYtID<>nq!1^t@g4XDaK(t0tCIuWGlK&*5_; zdt=KJCS$f;b@ElPRI?z16@!H%4!f^7cG0A}u>3<(BUY8OhJ|_ELMM?XO_O$;Y@NL# z_|JP<{5rr0C$~m*8i3EG5bOXDxRHRisU1h)xt8QFqQBr`B zPRyE!H|PVW#w0+2XDH~7BLbEo0l+6Rs*MoDoJqnNCfg0n2^0~PN_S}iE2+b#^V1d2 z#>MNlPq4jeJIf1IR!Kx_Hoi|wG-18`vN$;5XNVfUv!Q90ZlTe2>t)0$>UnA8_vV~8 z*`68(7w)MGA9mW@2HgkG2+*Se$vo`36%+t5I0(XL@Fh&80Iwu6$GVdNMn20-g-UB^FrFvP_%9|t4-2@qd#yfl~SCM7sA0xZwnoT=zZ#rZPict{XO;1$}{ z=-W()R=+gzmthC8pyRK~W{2;^FuFP8X^LuXg6ch))WreChrI=8sjL%kK-dxb6b(L>$`Z1Vf?naP;YN;u!5 zNQgv&z*ZRetBL(&ixC)($hp>Z5c8K3&XglH{*E(ma|PjoZn9iQB6$zL)hexe>ZGGF z98DHlX3;W*GtuzB1$X_ht7q<15FZnxyLIiUdzUQQEbnh|v%Gwgh>QebWs`6=(0eb7 zB>_AYWLY3VI{>KFkvMa6K2oS!0b)o(+vHmRDZ$8n3fsNe>0M>pN2L{n{~=DsD-NO~ zg^bzSpZ+r!eF?)VzdoRc7}8ee31QVoSsyE1~`D|IY(W z+&N7qPiu89?hy9}A{#K}$>e9#1GC;pqGbYSrDGhogu{7p z`g~3$9j#X7)(w0Ep@F`1_(i~~Wvwb{V*rs{frSSZjJ~Q6u!+#-`R$dq$!~aR%7-qk z3`lNA!r>$yOs@wQ`lRsqZ`o`Kfq_A!H>PAbKl4+ko_|SgeY1@MNe=Qw*=EoEY~&(t zmFbcUrW^sWy~&gHwb^F%_1tHdbL-|Ia0ZrdzCESiuOHG_?T-Zt2&e=U+Ht1s;2g9P zuEv88yn;0F3QR1o{E9w!F&X})njLA4KDg}7^dcnRspDC))n{^;iSL_x2CKS!gHEgz z5fT@=?=@8S?k{^(XdPl>G`b?A(n+*V>5^~%4R@6sq=XJwLlQS84!MBMhUcQj5g@P$ z17JHcQolViHu;~snv$SP0}+(JBq9A@hr>unZXp+prUAaNujsojF%~8XRk=6zPxRAx zNx~%drc#>r54gQw_MY`B%Xn<9iXYoPfjEzYmA9%T)Ori7=Y zHx)Tqxqa|Fi%Tx4f)`RvB2*Z!z*P6aIyGaZ zM%#TnnfSym88^@a6MuD}_DJP8WpjT2tl9%2#RYiz4WTC%Fbw>E2x-U-JEEkRb3(Wt zB!~`LdT%f(FH8s%?pv98ZYN03y}M57 zjZ3o$SBIDCt(efUvVN)BTGGuV%zY&<+my729sM7J>g$ClcM@jU&Y^{nX46b+eg#uG z7gu_I=W3loIZnOU*k~0x?TH@XhZEr^k8l4+v}y@R8tKy#`T#L!HcX3dvjk9gX#$qx zT5faOI&U`odI zX(!h*DTe!4#$oUGrv+;S5<+_dcJxbkwzu_KN%)II9Mv;kjF(MUq#P;2n&oG#n9kq2L&Y*h%sVp0ieOahk%u zhg;acZZ589!|>n(qklID*mPU9Y|B~(q?xM#ozvq#`KG{uB9M>Mbs51GfL*odH*YS8 z#*V?@M0*#(RA{rj+~($$IRy+A2gMhT#JT4l{>+iwRA0dgQfqsx1=ZuW$ddj85Uz8n`wr9<^8HXAjs%o31ce zst--0Z7V_Wi;@9V_Op<)umHxBmG=|vKTl~gqK zj0ogb19{~EOdv}0<6ARH(l-1jV8;JPK!dBv4=UbK=~EHHc*Xu6v-Ur^`KEF!3;)Z# za|X|N=~aWeeq3MntlweYXCCTUt}rqXPLDP)-Om+h={I^q})=;pc&eS%Z}$MPMNuNY^0{2v*ZgTX?diCsD4LZ3vFTr-YOcWsrh_t}cCE-i0xtm4n1 zj;OMxIbhL#>wA$#|Caj%@U?*1%KtO6T`q{eiJhsSFT9AZq>6=R{@`AdvSHwarS31(@w?{SU|FJ| zuhMdtQM9LaDpvmCFRolPU9XIV+uWM)SIpj6xj4Rw<06pA(tmP=SetbWKn|5;;9BYc z2@K#@jI^Pf#6c_g#DR>o_-24Lp_47_m6Iq>gkZG?dwE`|wfp_kaN_sQhY$Z5^y05o z)*x&bs|@%}z@nUGs?U(dsx+h6Tzk0Wt&w^<%H6XOM#F~0N?Q4 zv2qp%!sxxK6=1tfoD$C7Ms%zG09I@jE5k)vc*;|irmhQ4229UIef2h08cYf~FFhk{ zRj?1LXOA!U_5~7nXx{Bf0RF5K5qZ(7eKo4gzqTyoAFP2-J$#6di9tW!KtRTkO*f2Ux(=H{D3 zq@2E3X3qsMrJGQOYl@RbM^=iy0LW z5l0|lng%>~8&W#G4{6j2veAc_15kuAPU^O4ENB0x^U-jCUlXiqUBqoZwOCefX0PGx zL|$Vl-_-H;A$DX}IZAjz9DK>V)h}(WEI0IeJq#$qp}Jyn8`r}Md~*w{H~k{PAaEeC zh^Q*#Av-`EOJw^6Baqm110LHrgE8R(Y5ZM`!X`-@4*Wu`%6?A@d|yCEikG6njFYzjCzhYq=reaDZ=xD_foPADQff$=?P?5=ik$}-L>sNjNhcft zXTFuA{S5rOY&Hz68#=&9xCpmAfx!MBxN6@tR&=IJ~PK;YQ* zfceo+NpI$s-}Yu@Trq8d_a|IGO$0uX_dUFe15%>^duJBt7r&OH*k3Ky0F89@^13&= zIatGrfBk|J4U8V52!xv_K*|VI6Nv$RFVShapG*{E2H?Q>uML46xCkhIpyE#lw8>PT zDXn?6^6~QEMf6XUsGQHSy{#Y-W3UMkm(6EPknfKRkZKay69cP z88@GlI0_VTE&4$2auP|eB#@wG07QN95;DR96gmx`*~Xj;FXj!T8J_ zRT5td(6(CGMLam3Q0TS218|+Y`z5)aH3lEP5 zO85XSvTfkq>9#KXCdcHVyUgR)d>q?!n;4764K$>? z`}v33t|ZLf(e*$PR}2(!L@?5q=?ZkAAn*&IfWfgf)15B|{;dfXyE{Jy>U==A^2$;*|^02}1W1cJF)*^9Yz zw6{pU@bhu{%w^-Q-3nsYD*#`Dw(m)qoVbdu%>eWrGx7j%Dl0vZPRQjt|4YZvcT^Yl`U8>8U0F}1o4)vnn1c}O z0;`!m!)V58UguJq{uO&NwF^~4w8TF^s$LU%?SJHf)tiVsH)Yvc-N2t}D$!^d2VffgIIo@oTEagTlIG$}Shm0w8{X1S3j8!|T75)JFMe$0zvOM zn$1BnS?J!JB4SA{b>Jd1sH?1+Z5>AB_OQ=XoN0l684=O1WHu-~@&mPjut{`Ta;aB^RPr;+uF4u67T2`a9Fxx5m@5qI+bIoP z2+(_?10#~$p9+Ac`X-D(FHIhEB8+y7f-C5XtcbX|;dPyoW68#Tuab)#tg7b4)8$Z;%(ai5xXwM;K5<)*; z2SU>wlB=D)O0_34hjF|;>>;eC{>DpPh;*RFIHpOPs-8)DoD_O78Op8q2SQ;tqtEM~ zawT6=k5y2-v>K2EK#J9;%CpkC>>n=}K_h(Mt5^AccCMQsGMOLqIl69O%x^Q-jDM=_ zq89FZ&<`Ibr%6h+4CId0*IzJ=zIrTuVL_4{q<6xwglg%(>d147N2Pzl$tFlykFbrO1Nu8jt* z)N4Ic?{pVhRh+=z4&y%Id2-C7%<}8UZCOzjYzM7w+ckD&Uj^5Q-=$z_E|271|BUhkBZ zl^NSoGyumzf*6whvaUV&`}f3;bg|=Cd3m{h%jaV4GTq-d^Sa_-bZONtzswqFfY8L1 zS0>#)PbSMDA6dboc<^rA7oU{AyREf5LY1X%`#AwKOV(U-q4iFm&Ic?OZ-O8ksExAY zG*!V`#C_|$Ps{fwZ9kRTt$tM8a zj7YaGo8^t`)5RKvmdG&(gd23RN)if%sx32lOM(K?F&9&lma69cYMi@PS1cBNYWn2qL(ps7P_UZBfJqC`ebZ(S$_{RYVX-=%7HT zA~wW^4QV1RA%qqZK&m2&(v(nAC?ds#1Q0@i0J(Gd{?Fd~e!1h^G0yq+@+pHcGv_m( zUVdu@gQ3<&lG7-LvHcpo%+b>wUm2;+b#hq!?O7dE}h`kA`x{QPmxR$1Md z_nXha4D=e#@oaJ-i^BxH;G3AqZwS!Sb!w-hx=( zqy}6dXQ@ORUhNM|vOaOE${G%k7s0Vmk+>DT0h#mV3hR@jQYE@%{*fJUL_@ssfV z-@^^sb*Hb~1)NX>`}I9}nGDKtDG)!j+@^N{Re=*oNA6`U5ZM~8fwZ7y|A$35%E6!C zAr)>%|j)5BC>~Q@sZNO=xTb3b5Bd;hi<0 zBh~|udSC9|C@98GgMaUD`lt%-Vgl$mWSgk51MJ)g$Xn;tb^%^J2v$c+9@PW6h85WQ z9^`HYsNMut-#K(d9O%Ok5F@@k*JBvI?>N{{-?V8h*l;aavPJfV+MhCZ;1k(40|OHc zAO3bTEb$3&E0g@ElOmw*RRDD_IfHvP#$8DYF?I{ap4X>Q6v03AA5pMK?&p(%cB7 zqHTZd={+zS0bG1)_E89Y&lcv8?ak2NssyCGZsf}Wm>2)B>jvEG_mgwi1*!xj{y+VA z)uA^)l^%O~birhp!F57wQv%p95G=W+@SMFv#tVEpZkJgLAO1(9+LSOXOKot~uEJe9 zz#)DGUpi0v4l4eD3xGwX@uffq46>TQ3b}Qj$KlU#i3+{<0%4&5o*7dnUVt&@GH}Vi z%L1Tk0pKS8X%dLYYytBw_O*)R3c#zuC3Wh#GHDT+g;(Ie<7ch`3CY|7lW0^?Yugo& zQ+)?pZ&E)*1C5q6iDi8uAt8a_1(U$|U%xUt$w-P(>b=h4pMIU-wl;FA7W?@T<+Q_7 z)Tdp6+i6$LE!xdECwPP8PiFU(Xn~hnZl@nF_4wRUdHLMyzp&?J@17~WQ>#$2R%Fc| ze@*cZ1jL%j2*oA8==YspHPic}A-UfdzgV0-+m#Sre{|xd(tQwWWcC`xefVI)TVfGv z-X%%%af&B`-bDWTw1?4|ZG3myrwVqsLUF~y;8&W0akluNeDm~Q`r9;ooVlpo0VVpOe(2VaX3WU} z(DHSMd049t8Z9C+XB>gBul~nMzk)==tON9&3{Sw}0(9WmqDd+svF-wzCeQ8(a{p}`xXd`4j)K#~>grQ*jEkszi(cSyF*^_M3&p z{{j&wt>Vzg&RBy+K#HVE$NRs{#&7LiI8C_(IFg+B&=61vd(y46Lr+2Rh5`PQT_fiO zn`bj{Gst^2t-z5R6auC_Wwr-1{>3W;EBNl*`Jh19$kbpXJNte;e9jec=FxKK00^-E z@JjUnU_{A$0${9=@Kx~DJhk>Hcy$ms{!{-E;LUEpPKq;7as-%57BCE}uNy1ip z&tLU3?45(a-ob|!;5+y=mU@H?yaf5Ll%b5QZ*4PYcI{sxrOX-AHK1NZ&yV19Ed?k}+Si>>X-84WV({!Sj$vOc; z4N?kpDwPR-;C{l<(Q%nYp-|9cUtXZ6hZ?nBA)3e{z0WogkL;D9V7oCxPf z%gQAn+MRI)c7h4M0y2~*K*g=&uWW;ZT7$3znm08#<#K&A6>S&9rfO(;cV?ku@)SOQ z{>-Sj`i=fhTAz+8pp7UluKDfG;Vi1q>gXn6aS<@1R_we|A`5~UY=tfsCU6#SBxiXj zlG(kF6f}CSmrkcodG_@5RM&8-Kewf65eBD5fe!?<{RC#2_dCGLJOxH+&j(;E164Si z+;VuU1aSZ2PFaP8pK7^1$hu#Z`sbltoC2#H`W?CbbP$60v$pN9rn2_;X1Y-<5|!UcFg&pp zY+|4q2F~p}yH#e5$PwU%)8fo7-3Hzw6A%`Sek%!Tid-XDbOU z4|W*SYk31KurZ~V6rlW@KWhLLlCkYiK!y?kHjVdRBMDs78`!Np@`RHL)eCXuULDoX zT%-GWHSEt4l-=%Mo*(Ai-jfl)4E_wec~zNWa4kd#{l zyou);-RFLc>d-n*BiFp*qN0%Cu`hwV!I&6V^YQIq0f<#_K?J>g%J(Zi}OFD%;5kdvlnD5sNu;M@X;XfAdg30F%gQp0X+Za zbyu#zL;w_AZ*kS*Jr>oe`|YalDyYv_S2rez)s%X)ENQL>3R;`-SsHj|umNzC$OTXE9r&6UzMn&Jh^77uBLZ(VaIRY zZUOgjpInOrw+jJeeB)lx{I>?I5fR?xjY5SYEByiiVeHV;?`}#3OY6=(NIT?iL>Qkj z{>_*}Ko;-%#B2epe*zxmvD*9qRj&b6cls{CrJBf}0bC{&zA)|1`+irwdcR$9NDYE` z_WAL^*OALJE$PaZ@Ei_^3BJif0A5TeCp zZL_MX`fCNNe00lwCC0(a3)91#E>o3Ij}P~L&X502BUEKTZH&4W*>nd8oYM_fJSr(d#)>gNW%0`K0KH~Nb|9-}8Zv*YkjMt`64UM=e!4S1FsE~__u1HMPx zI^UeTf)bNfrq5^({$6qe1}m&8ml^>_1-rp$YZKrG4S*V~?H7Lvi&EBLs5Nyz2RIf^ zqJqoB^V-VF9!6k`61p*7REaPHDrKOdn&1oNr4|6JBJv$BzIq>b0diFVyJIyIa^aIi zWsYN(Dk5i^6&Q=NL-JXvA`@a1&y1G)6}bRFl@rxVi-d)$ni$WDs7h3r;nZ-&#$({RRi zBdrza&cE`p2LQQ8E8=WtnPdrs?Fi1n3hKnF*|uj+!7R^w{b1G3o}RJ$+xy1D{QHLx zIA8kQ^}CEWh2P=~8zk*FRVw-ku(;xocRmQ`P|p)b0OR2@u_5isZjzYz` z(Rup`MeR*r9X!qnCx}T0X~_2>$m!Y<&ymNkKT-4<3BaIRR(rG;Fu3p9;aXp{yqTKkC zFVl;g>%g>lPn;p=C63%PR=i=G-=>3xP8Q~G2M%V{k#drH$Q=V3EovFs+vGu5gpDby z%?->KAHa2}Pxplz|H`o6?8)+>W!CW?@~0a<&F%IC{j0s}<63_mAw@0O^HRm+pSX2rb)4EeaYx0L|z`5{5k_#x0+_CF`zp(fC%f+ zD@Q~w!cHtT?UT%2IFdf11sy!T7RY03-(OEb1S*9S1@qQepy+VJXRl79_P>1u%o=ma zI%8E?@WC=HJ`_mvCHVGLpQE7f@&7Clr=`;ikbS;IW?4p9VK>g)h~x zyYv*e6qw9vhFt`7$5{dwV%)#JC(d9Q>@t&f1QaD9zy*XkPAds#gN*2A+2$hP2ET&h z&dfTk3K$)1&NfvqHvDs=bLK#Ce^kDbY>x%UuG72?Dn`I0(3g6AL=}`(fAixzNdJ-t zpKJpD8!)EwTl|!aI4t)k>269ud-A}yUsAt-hzHkud97`i|GAMRT&C?JjXDLa10)|U zIeP#^woCAS=}*=Go%x#|GWB4W<-B`GDxY27AGW>`4(82-AP-!aoY~&y5~| zqF${^Z9M+yKRK674cKq;%?7aF-~5P!homD~o`9DVfHCZfAsrDTILdnNu?Ic0HvsUH zmZupELMRrTTo`n8>pwSo0w*z_P$v{#tpSYO;P=OQAcj7$pT{0g17J;m^W!}nBAclX^)_?c` zPyavox84Gs2EZ8F)yD9Dsls;z~K?$ zAiED!a6DMG-;U6H>2OirSB6gbYn|(>uaWh}h9<1I+I=GDOPT9uHOWrzmkmwx9 z;%yHHwMuhk26D!`HT04rhVY{j7#yM(skpRG8KP#=?fs328M9YqiSutFEG1^k-( zRgz&+)ta?>s4oFpRdwy@_18Y3^a8#zG(C#Gt?)j~8*>~_lAQg|vljZNsR-WT8m*L! zt3ir9t&q1a7Y0E!`VAeV)(kiE59oY?^Sc-j%=tOZRUiuQ13~`+O5yJ5ELY(jq9kMN ze!6b?p5uuQ1oVlab{B7UFL5s9*ZYT|91FVxp*8n2LiMkC_*&$1`Ju`DJ-sa}!)hNO z8EyYdwUKU(m+hP##^$%{uw4418pM)TGLC0!?IjlxaAA_Wduz^ejWOOx2faRL;$PNl z%I8ONa=hquo5$&+`|UP6o{oO!!wwA-?Df_Qtm~J4-7x>~v^D*?JCTz=h56A-=$yar zFhXY^{jiv2+dJESe<$Z#_?I%*EysBYy_HL>Hh;O=dfaQj62+@^Kq`D02d@-G7gjWX zM3O%LE}zjVJwLB!U=njKAgwFeqyIEq-F4GGgDTTN8e~+u4bz}qe;F>F`H>&xR68FV zoN2@x;nnH7Ey;?9-(z^GW}LqMd72P}&C9HA`RfR?rGz+n@AIV=!Wu~%)qm9bcAe7$czms z&^3W}ee#}bPW+D-BPQhFHaw@Z@WYdeujx03G@bpg7-y*iPGGFQgXY>^c$9mIW>qY< z29$pwkK4PjF7EZ_y*Gy{=|-lB!4d;=4_Av-#;3N?pCYsJ8zx^uk2Fb@TzmJe>G^@` zF4dClfm5!n?4yQ)Q@qOC~BEcGny|db@%a@A%fZ zbYU}nlqi)0hVwDeO1d^R^W*eltumw84tvT^`ud#=Dx-xymXJ^HACvFBlv?@Hm4dT2 zl?vv4c`<}@%tY4LjO47m>~&3YKGoZ49oEGiZU5Qp1AU~(dDe0g1_+q1J5)p~mcAwS zoFBMA@GW|1jAH-|s>Jpia$H>)e%6(QT`%<=`xYJ=(|eU2z9)S3r|Nn8NvWiVV-Qlb zz=D^g)}BJdh_|bD^tF|=iS3ZBufS1#uunMWOOJ-fq&Sbp>j>}g?;AmeoeEy8BHllk zz;yH}innjPj!W*pgp&575y6JX0q{5Ur@p^J%{(<6?md8(7K$u)~Z zX9qP6#<{!5P?pvQ1f=4s&1fq6rz%R{MLov_K0`Ja#A}J>i77>V>97`LVg*%tvT|M;DV@%|mPwT_U^m(OicND& zO)>V^fIxC$!+AgH-S)Q}J%fE!+BIB%K_7jbvjS|!KbaZMxX`o`v+tskeUbtw5h^O$ zj0vR<8s8>+rSDN8x_#kcoeBXFFa093r!0hOuk{5RFgO_6z3*hb|G;0a+@c=oBl^C* ziv#T*98Ukp$}583z~H7I*p{gfmg&jRxkFk}XHum-LK)k%m}W&-7p|I%TWyG`Jw!A@ zGs3ZX1JOS!bi&5s2h(<0x7eSa-ctXe_R3qr@T>Z%5RP$A`)~<99M3)3lYO{5#;zAv zxnrq3o@Sk_z}U@diCp&M*J8PhD{3mT^8^}(u2!yBOO?c*?adA4RJL-8-ThnE<<3bp zqRw?*NHBom`uw=&LeNq?1~lVzd8!j=PK3bIS430hroGB>Me9fsh^bd61~7gDr&M|n z*YJDy2U|~$tVZPZ)8?&K!`UjZsxTje7dYl8v3FQXtdo0N*lLrVwscpoK03v>OzibO zKbu?E1B6toDah%3u`7(DUav*{d+Ed9%!=uVLwouopqGnvi8TcOZwVE}i*6-^ z@v!i5M8NWw^m0GUPKJ6BCbqaV-*|Z3e?X@rS;>kOy*wXA`rJfals|}DX<#9x8J+o% zw14EK{tYo0L0Lq(&ZXY0A#S6nHT|OGVZ|Z^JXLmY?2}w&<;sZ9hAIVEYDnev<>8$3 z%iEt7JIyp=9knK$Aff$3(N{;JwXR%CM!GkW=gkZ`yG2Qr{t`_6NS>coW7CB;SKnE> zm$b0;M{LqN3|a6-xKt1lJv}uf+kPVPsCKYI_SnE z6o22GjHO)_y&}I} z)*JZ7dAw5|t?xCfLYyW)5Nky3;J#3deGOBP!xi6O=} zUpQx#=*x4M)@h-xJy~-lU-Y_Eo%Y;$o_a}ZU!&ff_7zGpcGX5;2c^c| z&DTQ{T#6)$pxcE&2TL*zy>8bZIyZdDf1K%9tz)x^pVXsgu z{t!+YSx}gStGy!kMOTz0VW;oD<_#jQ-oLT1$xCutBs|ZB9B>wsQzyxtN)-+B z`h!$XfN8r=()C2VGo?@B6J^PO zQdAu#I-?&QnN*)~+S;T_Of72Ahf>30JBc=FTgbhwCaiYwYoaWW41!8|=Yk7PHQIed zPi0{L14>m@Bfg1aaUgSe|0ixqnUXCL=i>qG!zB@-vsHr=Nmc-Q?c`5M7*&!~+Y#l4s;%SKHL_-@Ao}GB)DPD78MgEScrrO3kf^ z%N)nRG(|e%FDPZ1G2N&+3lgD`r2i61$}E#dAFD z!0aq9eCdJ1IM(s{Q_=pI<-Uu9=j{x`c1Xw5jF?BYgc+do6*kp`195;3;y`n4y_1sg zE;yO}O6zD=s4}okK%(w8(e}wlNtI{eKh)VJ=0-e3xIw9tJeU57nJ4QyiL$BYrS#ex-AKsK>}t^tGN%rO&wNV-ttwspb0*j=bC{ftH($c5TE%@37LPMi;or zsn6k9vbFm7@a2r?8I_d=e&`f21dl_vhJvJXN%o0S0C($lRU%Y#i43YU> z^1{ATb*sw}u1edTANLS;-l>E{@vW%D!H5UXu}Pt3KFYbT5f=GG%`L->*|}SHP{Dc*^Wfr zg0phzOWQHBSAH5=2%aU{(>A8htMqp;E~+dzco*trNswj5_1vI`K__S-9-oDvBg|oU zG4l)_g$&#R;+)*TN+pzGlGJ3%jfKcm>i}GsH1_^-BMYgGu;d0VS`27@V_a1U)xXRZ z-G&b};$(*wq$b3VlGL_LvZ}CjHpf!*r;0rh_hIF!XnaHoWMPU=e8h7g<89ZgBb%ob zH3deJ==zYm;6Z${k`xbJcwF9qOISS&-E%nFyR zr88BI3a=_3Kp1PTTb|tc{KZ4Kon#{OU47+{?TV3Laa7tLOvTT|TvchY+k(p|jj(^d zbPFrmXp8$X8R1m!c%HkPl293xfP|i4n`~HjHYQ%nM`4!s#&k5YH>l88X}-vnZF4Tk zIZ4(GwAy;vWwv&N=C-mCTu-)`)xHV9d0j4@-vbHhnruDQND;a`MsO{~DaTzy4!?aUss z%_hau^oc|BwaW1{&z@j%?Zp!VcaX$>%LjO|*DEW*tVlnl?1ni>`8Vbzno<$={Vu*g zJAK@-_qTeOk~`>!%YmU4pT-0V8XQkdxO)gzIHu7>6Ru@;F#{2jiIj3u8;77y_dppI zt(aIevQ1dy%TxY-cW>_fXb12fB}exO*Mdg=eCs;^eaJckGLO3<9#sbbvh@DY(;A_; zIZ-N=`fBx^4;bXn|5*I>Uj9MzP*03a^o$MejFP|fZW>F!OkEYC-zUkidCD$7)*atM-N138a8mxUwak}=*@%h-YQRZMo@8tc4w#;iQ zuAZ7#av{1&t!>RZQq_3aN?py6t$S{~8FXcp#l+9M;pa05OXL;Z`2gIWr)>cQ>e>cd zkl5WEo|{?zRdz(sP_+6g@}2657)zPrx++(4_#^zH!Jd2ByAhHBQ#J`!0#i*e{HG|+3mgT(WG>UiCkiC1u`Na!-v`rBWDNVbb=T(nZIhQ!5m!S%JQW3vZUP z>$KSJEU_Z2W1^tzaC_4)f-=$P!h5FRCve~BXqKTr4?b; z%hBWPPR0hiE-n}eRx=$1Hbg{c_6Y@=@%!EV_EU};#me?_rU5wY@QI!gO%Rl`PPRof zFymY$M!I*aVxK~UZqFWC=snR}{Cr!-buUHORgRhyW_QpT5R0jH#As|9uCwb=N|*QUWum0p=7geS3jVjr2| z*2qo)_*U}Z;#z>e7u+5GANcaM`%6m^yt!`{HLb1ZuE8Ly*PzH$qvA)KWWZGJX(Vjj zb1K#ydi)}39~P4t6^k3P6$Hw8-BP?1phH7!BPr>P9;~di`!L4DsWTPlOG6;<)gH|3 z%37kPQi))?LN)9j=5o{n(YW4X?Z^Pimi*qqm5Bnu!jb?by+`M2W3KXpT%q!Q#|;G$ zK^chwQnso5&5~Csd+cIjsWS(u+~Zj%XuSY?Y1}}A&$yG zu5ul7=UdQlaqTMdy_j2MbP?0-ssi5GT(ER4S#*Roznz5r-Y9?XU`-*)AiNR(Vd0J_ z1FOgIjw>;`%vIeTgv56?yrcZI$rpaW;4~h|EMS(+ecAfk0z;BkA9Vd zn?aGW)Uz>yz4v-`D+Y@FNkm)A(|F}S$9k<%+VlX{0{RB&{UaIK_eAgxAPAAowk!%?>#Gl~U|P>9IV z>lVk-I75vI1IEK$Fnkffoo2uz2RB4s4{3&9gJ@$n$yU3Hsr!B)Z!2C5z!`7`PHe_g z1H3t&gVQTpCG%zN5krn>=%F^L`gKzhGNRyVleTWfPjqB}170)^xlyyPg_;(1K0e2G z>-FlNuLT8l2vu%M(?QXPOk;fqOymr^OCa8^M*GbnwMI{z23Dq>)**!6)2-PEArE5gLkv=Xbj<^SjmPE}RI_AvZBzZ8W z)An5fCEkdg`^|)(6ts_?nu@(a)J&YjI_dWJO%ep=lE=8JTEs~23d@UzO9vI}Te0W- z%WdT({N(%)X9Vwm{fxHYmK0A|-W94U7;QrKthMKrAfm>R;)JKt8uIc}#Cg%F$&=qz z-15Z|@nx-ki9`uol~RN+en!-{Jloh1r(Btr^k$_AaT}uGHTEt$T`??2-1E%hpBpAj zLZ6h<%bmviwlhnk285B&)&0kNbdOOG`QX9)rO)g_Po9GYxwy7JdS5BJ49;pdI2`@XJB29qx9t6blao_xKn|_t8A!rXXZaeg34L3OcyHA~2IQx3;goJBGv} zcXfPS1-a%cYy*3V93oNUHEC+iLf zQ{hBOm-vICX%P3Ssj2#x5T=(|SO=0eQ+ z-G80G5Ir}&FI^G3i~U2BL_Hk-Y9cc6wS<)1{M8lE;(n=o%GOi&9&w#$g0pnu>z(Xv zaz^`Y^t^mK*Ve9!K=)n`5)_3>m1a3m@_eMSg!q&;G0bRz@?SlS>{@Ff1k!;SaTzZI zL0^30vNTxRy3Gv?^AUb&e*Ut4t(LQhKIKbOU7@XxhGp0b&{ZWR39BS(#{Qx1lM#fC zKxK?lQd*bqU$|tnlyH|cEF zm_&|gN*I8w)_Cqhp8@~Zn86H-%5KAzaj!;ZJ#QKd$H#M@Lo{X%Ut%u+qrp#xxIQ^9 z_Ae}~ICwTo^ByP)!SE`!0m6N^x;4kd5vpg$3Hsc()l@sWdAc?wdF#;+0AIW7&{1RX z0w3X(_2}T#>YL=MRB{3yQN}V1pg}kEO@*Dt%UZnZ<~+o z|0l!Udkauu*!KcF{P8b*@)_GKB9Ve(R8#P-^#jhODPhdc$6l0iTR{PpP-D5bA3Cfp z+`P}yT^H%=;{)Sk*M-DM1X9cmQ%OGgSqLZ5swKT8{<#1h)$gxk%9rY}xp5JU`zlr} zerHBWQYC&c^7RBEUGg4ysfVVrsfppgKx}1TmY0^AekmRB;92a_Su8aS;H1$!&U_N- z)Y_l=lXAy??gy};4NeC2;x9COpH8XiPIpmFEiLGK8z^hn<(#AE?N4Cnzb)zFZA$h% z_+g*<8g406Z_mX-DJ~mDmcafrgl=TpXl5XKG}CzP`es6^ICV8 z?)dGVH3w36sXlO6BT5P$Z%@_$gAozv7xt^Iw7T`(&BP1dK8lldE5EM9)4mL-9oQaM z0!ov211h$5FrqEDYRXANI2VAHkj!wQ-V}q|>nn)F#m-6qK2EA+#sTfz4&G=Iu!gAI zrLSH)_ceB%wLMP8-ViU0OeFd|%j&fW#U&_{*8Vxx2Ht8T341l684nQ&_^BqLkUW68 ziicYPQIhrm-wLB(n|F40b`E7==KG^vEoFO5bp0qDmA>|AI^Gu>*&tjxnR!;}ewlvh zTSb4WvuluN?N-8-CSdo@V%~!hnqU22tZ^aTR~b6!VAiN|`?=Lodg%M>7>sk(7@;x} zGPO(cMlo6Y!x`V0Q;{0Y4$f1igXwZX9=8muoDA+7X_ zwx3p2f@S*Zg(#3I42Ja8xBm_P6%u|SKVcDoE3qA(oaoBIgrd;)xK_r%{lDUA09>i% z)pSPC0T1E2j+&t_I};TTzo{nWl0VDezpDF8?G<7y=Zg`0mO@gNvZby_Ms1h9NqZJ zFNC%+GblwZW6WIBC4_*|?R%E(al+L1g^hkU7)Qj@!X}>3qNXn&7ztB4#p^{K{jd}{ zi)SbKO&tu?-9^yfOdo6hkS22me)o%&%Q{nlod&A2ma*k2jFtx@b9qs;9Q|o(>SBo| zwg{?sT*=WCA01^=5-?R9GUyDj%_<-K1OtE&g`zvN&p>OGS*vp;nU`(p?|ZRD?!d;<*jYQ) zygkwDB&9Ux!12{zE3?kYFP2wkS$>(tA*6fJ^?5_loc9kodXkCyeZ50HliF0)7OwpC z>R8KI)kFCQtM4RL$RF;`h}>kDVIM>+Pw%KBc4U7uTa`_mNKsE8s~7awsGN{H#v<-{ zW)VKSJ2}YIT&ucG%)C0~e#Q)sdpo#IZ-RqfKJH=-P2DSf$5_2N8$BgQXJ%l)q@Q#( zCV^JMJGK2A{g_EAJB{<%RPEKO+u(X$*~+7#R!ZEn@XhprQ*DysvQ7Y)IfQHw2BAX; zn4zeF*E#qh1@M#^lm%Do_@@4eH6B%|#Fh2F!EN6+qLUoB-|u*SV|)qR`O2t-(bAy} zg(0?BHxJ3<QdqS5iM6ZIKF3Iq>p(^wNNNcq?L$WMDzr z%*gDXs+Ol0LUr!H3QV%l2&=hw1y=-F?omig8?9U&89(^`kG!i!qNI8h=(zidlGF~1 zl6+VJ<6mYt*5O}52>vG~Y#kTqv}|8~a^yHwqsKm=W=Gdh*bUJ#Y1(RLdB6gQ_seC7 zBB{m+cQ&QNw8LqdV1^|G$5dZ>p#wk+E8kZbt1eZ3a-TesdY58r8eJ^DTM~bDcNsG_ zf4)L?rK%sc!K2j|<)w1IjK9Srp)Y5ZuzJz(tlsTnEq{?;149?YPRcd1W7lu}H>UIB zKd@L>Js-%$?IlC@xLDv^kal*xgjQ-su}=GtE#~;RSy6ZgU4w@4jvJX(oL_iwSOU#0 zo%QOStVnqkuCmU#+|d-{q|Y42%HS%obUS@p@FTQ{!yQQPTp>Iw8+!_R<8v^b_9mFE z0=i(EFmui-qV?afF)_>S8^fEZGOz0Um^M4Gh?cRQN=0k{R~d89m32H)_W-WU=L-Jp zI5UU46Tgx$cFV{u9hsxiYg2Vj@(``Jiy8UY#P@zYGLck2P|}O11)p5%GII^ZS8j+w zc_ysmcbaQFV1{Egw1`ggAKv-yXB8KsffUo715w%>Tl^VXgI{Fn z#Z%<4w01=-Gvt=@-6bsIfKBXnr3AmX-ckyFQrL>8i4pah$kPF!XWf&H`PxSvKU#U8 z*?NR0Dv6f60D9Zd4qQp-87P;{mvc?VyXj-s5{I2C_Bdv8R8D*}X6c18{&XZD?DT`j z{d_S21GN=bGkvetes^TMr%4H09#NtA)#B|H@>1HS>?1$& zxUE{+KZ+w=>JM27F}yvn&4wX^the(-Xo-JH->#YD_{>}CSMOll{rX_df$pw%2hL=U zY-@K85iHJcL=HAAE&lQU0WW}+#&S+LIXM} zJm=NdRyHfuty<0PB|G~xvSW~L)y+#G158VD1xT1kZb7v;e9^S@*u{W+A7{)xoo&dG zz2eqebo#M>$vxdzCa4Lb80p{&C@rnhj;C=wdFO^sjF>LO22R}$23Q(Njwi0Vn_r6M^w`H59%oeu;xgV)LaNVtHhh<*qRrAR`O zICgVZf$?Fba--yM2pGZn?3$_LuHmo?%H241*DE(F29JtGVubRQo9^b{3sRw)F0>?X z`Hnm0`{hD*(fk}E-IQ@Q%`Qn;JDt#3-P7a(^&mv-xSU^CJ!%I9tK0~cYQzsk{}IOF z;8%*e6+L1%CAc=()vUg)X@o|e>irMh+hpH&XxeRM@uebD!WHRE-SVREi($AAP{Z|~ zOWHOR?LoQ;Qgm7i|J~Lwx99K&EOM$Mw4m27k-_`b+cE!~XTooeZ91EnD&g?VLWNbS zto?KCr=K1-`IbnQUPR?5eE;JH9BVc}u~WpSBG@L#4c{YM zt-vYcpB-Uh#3skZ%+q-&6+L&}gL!L|NJzn*$mLs(l1Nje21lk|Ik9(jxmHT=73F&M zGc?K9YA^PwNVQf}ESgtPe43ZjWQX^Nb12y6I9xU#M1<6&k0OZ~oe`mR8yU~etNlnv zMdA*pH~0IXvM{~Mr|_y#sijaCw)q3c!)s-LnQ?JC`ong;GVD}nn6!yIxd)4#8x6}8 zfF6GlbG|3WbtOJxL7@>Pedz5ygEb(qO5W<|1{!z>WFqlhN5PADRi7)diT~?e0C48C zC!krl9wdR!PT8m7`)t){vLKS8hfvdW5okp4ByUFnC%>|zp-qEQkk?n4x$#dN>0 zgcUj?_c+OK*%hflz?#TSBOXL`Q#Vc+x_}rkza~@o2-kt(Zuq^UD9Fk%tBDagxx-ar zi=3Y_X~=eb|D5&yr18l{o2h8wiSN_{ zZ}fad_KT$R#V1>#)|B*2pJlDB`P`Ewc5PpjO#se~ z=-Z5sZ(T1h9s_2o(I<5)%;oYWa)=w*C|as7Cr#Zkz*jD(dMw{h>D#1N#NOw0SsNdv zrKOwBne*pRThXN0nR46FT3Wol=x7VuNw>kQku_KPj!vVcEEt5vvzu$>qp_YXdPtnn zig8c9ZE8iezZ@O=%N{QwZ?=`qA>EnSIsZ9{D?gE0(aI<{!*e<^?8hQIqIs#(E4sOn zE^6u_9f&^L0Bmnw-xig=1&M1!vAb%0D>od{OApJ|Au1>u``<7kzZda;*66JGRx1$o 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

    VSNNma7 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 diff --git a/assets/mhcquant_web.png b/assets/mhcquant_web.png new file mode 100644 index 0000000000000000000000000000000000000000..05c49069be75e00061b691c23b6d7d06c2c165e1 GIT binary patch literal 1048862 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 z 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�E_#M{QvJ{krvnr6Mx4 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࿨UWZRy^)uI-bM^$=yoWwv^~KYtxSfDhHgXqXg* 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�IDU@q*xz)n|P51bx0xT z>p!S$IB6X{LMyZx+dEbe{j60r;f3>Bm03+-%Ju2YkdXB)rz&lpw_iQEqemLU?v`>7 z{iYl!pHMMV(bkt?AYRhA!9#`HN!#mgSi9ti zE%qZia@$1__cvKVAuCZj_viPbj)RG;`DU#~6Fc`l;>>TI;?<8>5ZLJ0 zWQ%P5V2YvE`&%K6 zyFjJHLVCp1Y4)9I`YO(X-&PhC*BHUrn0v4 z+$1|hYdO)q^miRUndN!8QV_)O?pkd})4zxb|Mg5beo{1+x%^ zr}yl{jZ_PaZ>Hk$Up=3u{JHb;8ctGOgnS~UQgNkKb3@?=e$VWoC-P3$rZz(oQo{cT zcVCw2pMB2P(L%n#z4rTOZ@$a8_F|D%Ylh; z*_;E&a_TuwtvTun%<02gH=O;g=>d@B4T4zufU%yeM_7=*(JXfB9Td&8KTFHYcv`#oQ)VFf-=Q!6^@y3D&5+s>8PiEm;$x8(?9*98L;gcz?JudKB{adh=_Uop5qR{7!^ zwluS$eEA!S+R3%eot@UAp1wYODT#N&L#D-cwzgvB(Am}ZoGp-?TXaH|7ya_vRr_n~ z6e@}KQ@^?J9=!cddL#h~ywK)7NfOU0x&jn$jjlPpY!{NDOI~PU+HDLw`Npn{F@NwjvTAj*=w7`1_Zxe{60fKenfm*5-*zwH zy*-V?Y?*`&{Qh7xg*TsmPD$vJHNbwJPri#+u~=@lLwTwFcqL4~`H1r7F~(yIy7~E_ z!C~{qMZ~kLsoQo*UoUwt2L3+uC#?`yTJP}1Be`TR^`-*!%eE1wNuY27_vOcSy3O2$ zk{v+r2d4d?^F*hb8(K-=a*x}9oTMX9LUc6Ydkm3q2%x3Kh3=C`w2^?aZwwh|Rp*d? z?$dnqxsc&MrQ^V9s{k_)ZD?=kAM<5GCy)@&d{$vdzcD3BT*6sFrYf8rg zPtw7TD#}nK^k|{9<=`Eg-MFPGs{8csO*J{49}PN8&__o039Vl9k!p!Kbhx~{-490i zuD;^-ZsruXwo)p`H{RmkdAnC1Zzn}^$9Kp!6gu$`&xaZm4{0Z+W)gbGksjQ=F@ML9 zG`$i?@c_`nhC#o7`dCf3MD;3hPK!(b$4=>@1qljreW^P7#8FW6!Fn+N?hRe;+lTkn z2fUYHdu+_+Qa4?=Au$?e@>L{V?PTc-Y&2FCsvMf$;ybN&EN!g~Zez`he6EIdp+h&9 zqJ9B&UySqpwa*sLYL8L-@#q7+QHyteFf@1<(+_o#UMzg@YcT}SGl_bb$#1v8a@UpL z&z#DgUDou%vbQHPyE~UgZcAZ$e(Ec}a|HKbJPgYZ`_p%_f|=A_>F`x9e1<&K8MbjP z)ekqZMK2NifC;x68x{2K`l&zD)VdZ+V4xUX%bZ;-_V$zVZ(K-;#k!)jaV_SFBJ32y z{KL^Vn*q2QGz)=N=+r0i1OyH$j*mLVu8iAJx0d4{r6ID*uK^7OP?ZXu!Z$tlEC#d+?*`vUeijhY9=COHl(!

    I*xAwqKPEpB+@%i&M`-?ME`KO>hQ9m=gI;p#39&(Db>Le=*(94OZym_ z+H4J)+`!R%|M?vL&=YQ@FJQ!DV`H)A+%>7;x9C1txlo8d=iM;Qek=z4M6`oHk5j5E zT0tBBKgtEN+&>_hW6(|W#P&VI?pYq4g{PnTGCkXSY^2!zYE=7=X+bQG;~i@WyHGt;Bo0@t9%N1oJa!e#ds=P6e(F*bIuS2Zy; z?a`JvXhKnumBRyS7}qq}&J)*`(8~XBs;-g0)%k|hI6kN0#p7(O;ZnP9VerDZ@w73{ zWm{W0|7b+y=kVayumF6&B8+b}HTU#{Jl$23rJR%Q?kS{BkxcnReX1)1ia4W*MuU-g-(g0viKK-;rR6GA}%GnWX|eBZQ$7kT$MW&@SP=G&?md?H9Vh zuJ`{}Nr7B*5XZ&jt?6G!rh1wtv-9T3U^bY$Mq3u=#_KXM0pjQ>k@`F(C8h0aQc@E7 zLMmu$-B>J}i*h zd(0r#e8sm~O?ir%X!*2!*+r`L$zfUOH_P1;a|$RqK2Vct9=bbk!4ZneylG*Odbpl_ zWHmf@*sianbwB+?si=y(vx9@~09lif@8Pq-OWB~Llt>6o0bG0R7&J4Xp3z>}Hle*{ zLcnie0}8I$y12a9Cyf(%w!9!kc>qL0ObzNHCJ@y>i5|rWF1z`E{5hz0;!0b^*l>lY zoX)FU#w>oE$q>p2!zi!exuBrUqG<&`tn0RQd9r8Eo|8mRPul-30Ng=#Y!2ak#UZ5p zAq6F$$(XtGEqXJVx^_IOHg$UnNh(~OQnv4J$pf1h9iDM)%itT{O?dR)!@8=^P#cG8 zk>F!4E-poD5u}kn)0260(okAZG6#5-GGtW%1&h^9!r@z~8GT{F4`_TBKD-4Bv5Gz1 zR~O6o?}bPbyO1cmqYyy2 zfW6LX>4RvzUeuO(+qc?CFZm@4txtC@6Rj@5jnFF26A_c0<_& z&!0ap`3D*zB1(?Pq3S2LRg$I`C+{qpbLr8eM>dPDloS_ZB^z`zD=RC}a}dJw%Brf# zLS!CvfYBhku|aeG)n|Aiq0_m)i*lc+(}WVPn!~o~Ct_t~mpqVNvj$|ZoL#H1MFkB2+iCtW&vT z_d+|Z^78#zbsokmL3)8WAWj7Vt`O7Yev4K|w0J2gDKXFjv_&!}3qEK{qPHJ4yaPqC zXLGz4$h1Y6G8$ zy%_8PmM*U5odGMdaG(^(f_XsJXocYt>Y9&1#_CSYt;CDN}yC{4=zF^NgH_gZ4Mr?6}&Ab(V6s zjEs$~6_)A>o|H|w26qS>1n$r-JRMf%ts)bw%!d1?$&alM56kvAE6lgqxmSLo88d>M zNL|3Bnxz{qb#`-z=?2Q%0XVbksWb3TGSL>av>i10N!ghv?kM;xJu$V$7?1{b<4UPTj`E#BDbj7BUU?3^z3aEY~%G=BszHZL=OAP1hkS0%~pVC-0EI^TEEF z{(V}ROMvDf>4NNMw;xh9x5C0;^Mng}rZ^DBHGa8EjKs;42{5o{4kHS4a7Zn)gu^+# z0Jy8I*K^`@u0e6bPD3{2&ksisga4M2x<+E#CYI(q@*4+*n$MfwZ)|BfDtD{ywM@68 zo0*xJtLx^#Rt)h)_%9D2k(5{kc^Nc!hBw`M9UHSi%nN1os)>1&YoM4aiZzoFE)9`~ zcivAFvfvOQ;GA7SzA=x9n(YiYaj8o51#zI50Bn^$h6C?}MkP)$1a8^~Mko$yr(Rrz zOLWF2L`=A&%)*5Fkl3i4JA_E7<$4>4D^dX6dk7NBhG94tkN_-OUb}+(O80cjk>6LF z#_l!g9`p7?7DZ({@j!9FKms3NQm{lvdn)$b1nR&ao?NP41`&|lloaH)orJd~=)FW& zFf?m8s#}1430JOhN`UN1;M>HNLSzq^grprA*08=^&eHnF0-kMqa6PsI!(c2E>Zlxe zJblx~jfbQKTj)vEogt=5cv@&J$4H|&a?cr?y=V-4|VN_OQUiVuNJx?AB65a5|T$Slm5CUG5EB>v zw~*jW3}rYgB0(`#Rvp9f=ow`Y2G_wH*j)ihYGGzFs!iu!*lLTtO#^b{Ak3}Shrt|r zq1djr&+Wm!Pjy$SN?rYlq#pZ4uHu;#v@?KIAd3Mp6=AYbnwiQxHUyWLm~G=l&&t_o zq@Y~^XVV8Wkx*s{m-lGu=#Ew0{E|NC|XM@#4k6`cAErPRaflrK-v{$ni;dPD)3H z=K^{1GiT21e@VW`-zwy*B)UUY%`@OSd*uK!W$(Do6V3dm>o9{X8YJ9p`DY;dg-UAZ zZuE9RueOK?BNLNusYjDViOo>cA(gtly_SiK=x&x3}H>vo_2cCf&$T zca0A2v&FC(NmPNwURbyr!h>N34~P#;D<6N6v%XJntFOU>eeu@2Dqx!wBT7`bvop&k!=3)ic_0Z5>GJy|l&`w0k?UW+!aFhM=+*$GGz z=Rv^%@P#SldFHbAMHTF~Ydj8TawE88Q$fGJ{vZ)C@D-yg=JOCAP_A>&xc<|P@Uft& zT&&=WaON$XY)1wlk*l_l!@D1^5+hxhR@|_Mq6_4lN_F<@XZr=dde0tIbX0CsK56Tw zpANv+AP-t%3>;k++OIZgcc|A@sn3Rf3sc@RjL6{KUI6* z`N^}xUA3gI^1#3VzhV!87w>y5mN!-Q7(a{RmaYc`gr&AeVjLcTenzbNL^sjRxByjE@Y>|}`ZxYp&WTG&poT-R&B$cnzI^f7n{cYD>U zZsvI-1B0=jhjP(aSX+~rP$A}@b+t}aHTTu4C!XYKSI8h5K4f&vAWY&4pUwqSW_!|; zcLsGSW4%yb?B&mq9??vuQ#20O^If1M0A5S-^z5m->lRRO7uiu%vbXgcJgD@13EC&{-vb+KUsUq;bY^FMqKr4P9RS?VcVuJYc#XC#KBkmR|*J;BN{ zeA*>{#g?0@Ifcjiy~lqZZz$p3Yp9OvzA(-lW?N?pSRTmuUpMBCm9)%S$+qAG;=EO4 zBUV%0?U*jRp3{EDmRCgCeK5LCJ7Wgk5{gfWw@M2{^;b(>{f@Py+hZBe-!B6i8Vj)FBQ2THN~xT?Fw`kc>Q_`;VV*H zXaNoOZ_UCncK{i~aKW-s;R!+^=0s0M--?6P0hE%>>-a(5l}Q0qM@H@~O<^H{<`_GM z)@LW1CZFoPh;vCZ_?UqsVtBM)k(HB!H28NY(*5XV9E)(9QcK z>iIDA$5+!R60(WX)deW$-C?2uiQ9AB?x0iM8xFqf-9iQZtmKr{@cRYTpX#6TUVJs$ zQa)1ws?}GcOn?gxg{%_I@Phbr2qi%a0g|w{ zky=CdDQ8s2LM{q!fsqkT+1bS2?%X5fi<7R7-zDYI&45Jv?Y+&SvaAnjPs%L8!zE{Z zjnBf(dGk;dwWf9r`jQs}c@oC%_om;=_OOsfg(4ETY0MjEDav|yu|qe~^}BkJYS4MP z9_>AAhrTsMzA<&w36bV@YcpG27Rh(Ad49KUwQtG}o%Ij5+-dy!uCXj-lD>3QONhLj zlc=U$uL+NfQV50c&v^L(%e!Knd3}!rz>=(}cM+Md4zTPLn zB9oFceFZJGe$~i(_cEji^v-D>3$iW)PWca0vHIV8nNZ99QhSxHw&ev3lYP!15T57nlHfDiRR4ISy+8MNM7sP*T zG3;sQIHOwnn1k{)wo8hW<5d&6KuP$^5^0S97u1rL6to%YW=s(Omn zIpi8F@ug_k^_0D$JhNlw^O3jpVpGf7xTt(ndH)=zn>j~9Wb3|e1%M*bq_3|;(RA}= zH3X@hm*XzB{`^!Sc1VB=)C~DdF358GTmy>>#@XbE6rS8IS($m=_wf$5jSu5im5H9S zso6bvbNlX!!FN{{WGjhEIjZ`07nCv9Ec=+mL3^g`Hw(5^7ivNi5U_)F5>>x}!GaY| z5a;n6WwBcWA<=v~8{e^)mQvF9qO@Wgv0207*DJeZDcFn2cNr7s5WZ60=eK09egun| zEm{eOVEl#BF#Y5mAQL9SrA!pNZa*AtB36DNjMxI}m9FEG518FzOfKzxd+(kT^ehiJW`;|HNJy-%oy zmb_DeuBx^S!SSdCJ)e?B(Orq7&3=T$>TGbz#8%YIEfxWBUV;k9_g$Xcq32iWhpoV??kKksNl(8{$y-(*7l`O=;EAkaiU%){f5{T?Cx zv>*g7M2hA#!8=*q5Z&-ttv4x;fK}#8AE(?6;&B3K+ z50cZ!Ve$(*)dkg+Vn^Zeu~&2wRy1!e9N8r?IxZCR_1MVtR8!QZGqLb?#+QAz+ThR~ z5QVAglu5}3qX)sUknhjJBsYCc@*?oM4+?OJx%a(!`xZ#yr(^iW`^{hvB+^1v4tbL~ zviEMGe{4Ig^g7pQ3x14=j?%G*iv|ed8^yxLnr8V6rf62EbMPsOta+g^IUgyz}#REl6R?v|g|gB!)O~XC1j-&_GVFM=!VP==oI*6?*!;k%@nlU#%;I| zilIx}skPa={w|Rnbi6RGQq-0v&5i=&9Izg7tZV2#^k-ibbVp;ktkxgnyi=G%#&m`u zI+AC$)?uw*G>caS%LR^?A~#aj;6IQRpR)Szj@0r;H#}}E=F-wmBpNZg?xTI+msAGL zcEVji(Sp&_lqc>MGiA<&`%#m_U%E4qngS`J^2A5OU;;uOKrOs!e7=Eb7) z|GWBi_>p)o*UzvyOr~ddwI_UL_WB+IdY(#5EyHr?c4u|_ElgiZ6vz=z_3QfQL9au& zU^6Ghixu<&jDdx4)v%rcS9(U4FP}*s2T-l>pV7`8GRi$ze;;HoSd@;2=}(M&B;JcW;4ZbCcxG0P%P?w(b8YCPW6*aE_}DvTL5cC za#7qnbVdqk7t@_P1h_o-L!{VY3~t0o6NW4nPDuyh69(UPh4B@W349bpf0UiIB_ynJ z0pgAskKdngm+o-1zySbGmJ`15)xhLeSxxe4V1{XW?EF2FDur160%Y|AJI>&*ZkZkj zmz$t6tL4Ey1=2M>J?^f8UeCe>idSmqmIgL0|Ffr4a>x_{?eg?Ay+>{tNwR5ZTug&V zpvCQNSZ1IA(0Bn-1^Qq|pu%B)#E@yR}ER2AepcO`9aJ^MegyTK0htRS7HAlfcmK+?s?0)n=Ku4_AV*~u5ZUHA?K z90mO#QwOd<+C($>@)%Yp-QFM!{-Nhiv-UL{#&ewYY2(%D zt<_Z}cf@BFLCH|70V$UuVpyGbH%&B-5G`6ZKi`l&E1@bOQ-DuE`~hDUL_*h`De>_$ zZi@9YV9MC6IP<1Q08_CE00AWE6-RL~;w!DDZ{R)NR@|O#sx-HuI z%=GYZY3I<^>uoRY-7Y;b?B=F4;Ng`Gq}0*1ymus`Zbr5I#**+W6C|B2-S5EMMs zV75QQn4TI#hEHswrr=IV>=F&~YvwC?S-^E=G!zb03}H0#wRHs-PRk*D2B{lHCg24s z97}c`voZ(+ZUNUC9gxi}%*|J5SJZZB8iXNI=yB~0`Fm^_RQ8UbB(0;CKtSG{g9JO= z?DFd&F5A-j;jl{+6J4uMRX!?*!WYFSI?*J$xLec&Ka+od~al>@pilbY$&1N3H z{ias{`dn{m%D-67?f+t^J-8Jm&a# z@=L8TwbpWSa{8O@(s{uO21 zK5D4i+=yrT2M}r@A2d6juZ88p4(*TmSSeiuoh`6k7+S>);|V}~D0>K&Ft-;EA(n}J znAWJ5bcHzuFN>HiZ`Qsh{jf(r|J(r_jaRRX+w9T5@gn=BKtj$jO)lgE1t!O|S{Qd4 zbj>lC>mORf#~cl>ZPEbY^SIum%HQKMe7U+V;AF|bRt!NexuM@zv=Fi|FkFLKp&0c@ ziu!8^`aS?7mE7PF?U;1wIrnf_(j{CXQBNk5jO1Yp{WBuxGpZwJRO8fpPlV;#G}hFlD9bR- z5bhA0o>cq_eMt6H=$SoUKu{WdXbV0@ZplXFzE#FEa;i2n7qS;UbmDv;{8byJ}rT>S{}eJTFVRbi*P% z9ko((|D+`7Rl06exZw04%1@7sUOMtgu5ops`9Th$^J3!<#BlPW?8oE8ZjXt&CP$HO z49#clguQ=v+D&lp&;+pL_<bYnj= zXxA5$F}2?{J~@S|5MZtXTvmvADVhV&UO{yfu|GcDj0MAU!7=-3DgI%i4E08no_UKe zx7Jwm(5*@JuE(L{2A{1JL&a*+$1f5FWYZ1H zX6$U9T%<1Tzio_ze%K%^L7Ec20zkQM;eWPlFKO_F?1Yg~1t=(Za}u|R^F&MUHzYq^ zSybSF6Ww_h3awBYOEDYYIk@9){;DsZKmQS^jNTg^BNK=n175^!APoB+CT7M^Qz6^l8vM2t<^a)0dj~=#WVC7c4Y_RvAYD- z!9!eF8rRedihVa$XneG^KaDr>L z6W}Vbfkhz6P1lq>SdJAcF`NqHCq_c&#-fi3>_JO*2h;B;MFrx}j~aa^W!v;xgzG%p z-f7*I(8MXTIue~Q=CVGm#69|ssq5m6J#&ww?!}Yo3a%p58%m?)qy^bN7#>Mj2{#a| zclee(_X|oNan11yJ$(2u56NAkZo@!cfT^}C_#s9~9*K-09B`5iv_uaV7Xv=xqA>MP ztj{i0@gLy;eXLLaei7!cIn^p;jEfmlWULA=v#WuL2fGC64i4muwb-{#QpM45afbmkl=Y7e#IA(fC$Q{ zdom0!R6;Yy^w3^>K?N38$dEG_8&d?AMsltp+i567s?+9bG;9O(1`H{;>+LSd)pb>+ zD>eU3;9v-2d}Pc=q3{r6!i<4+!IOnr+j;dW>c;;vdhV+o0C^pdCpOJc~XwFzerJE<&)|^W5AFhbQ)V*TN@i~rP@#w zH&`nUC?8VvHmPM*Y?}0Jat5R0$}FEZAeEu`R-J9Jk87}{2C8&$@*2Kcg8gh~&<%B$ zsfXSA`X|CX(vyttvxAqtR0{~vZLm?H+X_>X@X=v$kJhEMqms2mb-9-%{8-R^)S*#u;@zH=C zH9ENIsh>lx&=A`hGj8}177x;p+6VX<_?PwYD3N%Yw2S|9Jd_@sq2&)1Kci%Z>Mv!~ z83NYNuRpN#PxwwNBPUQ;8{iJbG%<3jty#%cgIU5g-4ZJpv|YhF(62)>4<}*n)KGHo zSgROrLWS6d*O(%Nj?&0&5|g`~JciAqRcoZ5J(NWLS?IrmT(Sl$1Q~IZSG=FXj+gcq zoZtMRh2E%hX?Uy^ZeB6`i}7&)*vEaz92BRC^9*0F5#>?~vyg*TW$c8B{#m)|&ylG0 zGVUCKI`RE!_<3@?EODN}>zrkT$cvYEZWVchkY(B5+FNQ%F3gf{325Ef#5d@EnLYzftGG=lw2DNth6VaHq+K^PIfHH_OLE6ahRO)6>g(*pEqQlFd!Tv81$KZjs0= zEhzzhgVVO->>x%z9O?+jieY*aLqe*^5@gn(0)zZIMZ19wz#dM~1Cf$y0x$yO5%F<6BI)W?>H(mTDwhI}T+w?Nt;b`X zx-99fPKT~^I|wJPX1aCLl~MiYzdim20vBc66G{09VfFw{)EXUiGYA78R96srT#DA= zAI-zE2UIFsWOC1+tb%ZZUge|t$rq&kMU|atv$$t4C;l6CGx#zf=Eha@KU}vEk7}a5 zuxH41_uM{H&!0G(Khk7LSxi6#mYJNqd{&*!Ju+p@ zAK?4liFMm$-8CsfVZGdCU3wS^qs>m+{aEEgkep6 zA(nXSLZnNzE8zb%=qJh+LAwG8>1b&^1Rmi$24P?+BBt~6$w5jFmE^oM{b*^|zUK3h zD4<%Xp4vL7K;^%wfM-QMG-TDE&@@qzb6jnK7Wqy;nR>n-mV9bYa<$v280sXA z>LT6aSv5Up>jGWsLFKV9;2Zh%<25`o0892x3xmd(C`2l72$nebvE^&OovkfjT)m!b zb!Gf7<@%TgUO*l74<$4u*SdeTY#I%69X;+o8ta+%CetZL42#)s@xYJu+5Cq9?_pTCXzNdrCZwhL9(03D% zT*H*5K^USHNM|@5z-o2gU7^6s@-N+xvj-l2@Wb&1bSeO1pf?uIrDASLTzSl?#r4-+ z4KX`)sxxo#ktag3JV9+PPJG5;7TEquuYVH0(Y{+vv;~UV6+crm7uwh&Q( z@^wI2Y;SOK_?*dOK5y=4+n~UcmjxzlVL$^tQ0d-B6`f;;lZL0)4?XB6TYnj7vC6I` zdI6_;LGy%+!T820H~#w-9eN)=B}ZpQUU2>zJ@P?aSNYD2+;*RY*V!IDbLrcF*dNy_^*8${Dfe#FDv3 zcW6P7kZ#|)5ZgzP4Le}*k2vuV?&anP!$hXbMsaP%S^0_U4Mee(620!H3{6f1#iP0 zJok4z4hHmI=TZxn;GQT93XMG(Q-&70TjCe2Dmrar1D`VB`)JVa$aW?DE|Y{#5SXwL z3tB~ZXDvEf8>*m<6$VimlnQAJXcX!($Gp_(-oA}C!|RwAaJ&(^w3OP<{t znYMZf;|J<~hg=&3caV1&Ud3}kxiqnUrTdewBflMlJKCqP_8hK)rSIM0Gw`- zqp94mTj=*0{>ZIn0*@W16UE2s>vPlX>aV4knAnd^F-@l4t zglox5g&&1|EJ`D#0o{T{X~rfd^Db;<;3&4&Lm9vY284}EHD9Cj=W;9h!gVfZI{(s= zL~!QhMM+-%3&%QCvz=Suh^rW}?+6>XY0?BX((v;J!1vgWD7n!#G9iYGaC6GfAN)6zBd^}H9vfzrQv ze}n%h>syb{IPXa<6@d`CxK3>-Z(qD;E{>=%RNTxb(ONTwMPO|Y|9+cessq|NMFY1Uj+cju^Xr_7_a|3bfjyc!eJJn#366I< z0={4W@th-5bb51AyJL2D>c^Z-%(b=Nue_3uH8bwPGO&@GB(idZ(I5wsduV_(GVo;^ zhSz)h!UBhwGCHVw2pk7IK}QA)=q3p}tL41c-fDjV=@d%&_TN?0e^4+FJqra7?X*MT zPSw|Va6LtK3ESujf~a(}jJbW%b9%C+NNO)TXwXslDRtMHom^9j#0>_TC(PkYqglwa zf_-2!*GxJnikxuJ<2$CMC@#ixXq~+`N}10g;94>LkPIlZ@@n)Clt98?nAlY2_n00NM+$}G{T3?B33t8egi!YnEVug_kT=^Hp}nQ${-EoY zjEns!&lvFvzyn96TMj>|?gWs)aj8)=^p%g)#>5t3i8ph47Z&tm!PA9503i`9*7`9r zA(y_TZaUn0tBN#+bt``gTv(oJQ!l#FU{tLVAt| zEY7fa=>SL*PzQ#XV5!s{j54^qD?;SicW?92^|_zviNAW>{O~5g-*72E#x4d-Y*-Od`#IYS&uN zsuP{;twk47rw!{NcD{y}r5SZG-CVj4-bqMZCB#e`Y(qt~4@Ca@jNT4gp-I}y`c z;5Yp0xTbJ{#;*tmGqbN{LbV=AFXlsn&6nH3*llf*c^Zeyoup%oIX5lFeh-v7ZN4|@ zUPGc#Z*oi^HCLZmY9!(FhGA0&PQa-M61g0FS2sNNlHhEfD0Bp%U!f0dN{3%-m2Q{>>{{i4CekJqx zLiIHB-)aI}SXD}|k!GR?ADovD4S?)<)sVJhjkMYeIOmr9QWkr?Iz%Gj^;HQ?zHB{y z?o@FexPJ>~9IH?$A=MMeYxB3QfsE=Y5959xBeHwptqUdvJrY5-aLKrkaKU3 zjO}dU7k`{NxvEguuhhkeq>!N(&5^|Mgf}Ej>JP$}F7&Z~GkFVxxbI7IM_g4Af(@b=INVfek#h zVKp~M`wt5U7$;W20S8r7&YD)7h|I0D|K7Ot#CMI8@3w2`>Nyl4S4t0DtuN1Wfgb4B zZo1MWtGZMBESF2D<#(iHTNTZO^iO&S7vwiSpa;6;m=1OO*?n-#Hd!g>A|%p?5DJH> zrMY=bp&aPNXvy)774EuGrV1%gfeL5!z@`}NF{sO>0j!d}9=X^PDw!7rLc#X-9?OnIZcS*8a z(LU756{R5r|EUU|Ij(W1-31%RH3FnKX@9gXP*PPr(ysxu-Do#N!54b@z;lC2M%~YO zoc5^2dTedHCC<5C5WztV_tM%iljA4Y=SjFeuxe<}q3-1SHG+TGKSLN6 zECD&R-Ffn3iLgTOZ#O%%?0^HGRi`g8lk#4oC#W7Q!LE*k^d4#S!_c3=y*rb0U;AmW z%Uu|0|7|rTz`Ax>b-&U!9bPza0Tme-)GzB-06r2fsH!;cH#^rY(h7>-EP=)Nv+7oJ2f6A|_6PHo< z+%>jN6cgCOL(4pLTFAHROcHo~X&1t3=i3 z?R#m{OJoU4HyAgRS=MXz#a&kraBX3jW^k9(H`nmT#%((`*A2gliP_&4o+$4FR~Mo& zPW4aVzI&CNJUD3umHmX^$GI^iA7irq`=)9LB3oPQ)zXX7)&?cqyF<=oBjV4seg{hh ze!a>mVi0JyZ)w85k6}pDWcmAkVA0j%+()NLu*V5#P8eq4mg>643>1r}6Q|rqML`YH z(ESGLCdHh9biyb1C*WcI(FK67p`9)Z{NC?S9O`dQ&S1V*euN@Q@@X}v2|i}M!u(?z69WqOyYeoe4p-vTA0^;*<)M)^$Xr93L z^Lqa7(D)yS&42b6VwV>lpY-&)yZ(*F{qgiGh+eouH=Cp?nWJJGxyCl3g6X9Z>=);* zIJ=V5+yX{RcF&Pa@;J0e-;El-lu2D#UhfB|Q$h{U*35kN>?~47;yn0kL3P%kKsBsi z05*KE#1&F(h&UN>hy0o~K$AsG^(SzYK|66k`4$0y`VK=#k{y^JNWgi!y~K)}@h(!| zp4<*uSi;i62T-|`FaiLGQq|W#nL1j&0MKdAL9A`Ih5gHL(eAZg7P2|OG_;T(PV7&Iv2@bs$?WjT zOODfH-&fE?$cf1x+qHXE{yV^%&<`kA82ZXS3LF%9ZE$^-5|Z1Zjc!L%F3tmw)-iy#x8m%DmM>SMYt|ln0Y}|&-Tu71 z^^kICdp_*n|M_#K%M<_Q)gedA3yyLAiqwXiFZ?1+Hp**i44teE61mxnJzaF3O;D@z zvD5$`8>LxS31QwE8L4IlL2hDHR!GK+Ft*K$@`RkVcExs+8TLZeJ?l6aVGGr<;j$Z& z5@7-UX845WvOR|vs9)(kCt}9`YZ|;DFogQJyq@Y0{E$dzd(C2sJQqaTU-s$);q;6~ zxY)cGAy^>i-e3t3?kOkN_+W|J{!K$$DhV$4!AF#LmS(W9b&#YwEdPLHF}K^3ReK)X z8zkHJ#IKv@ea-gNJ;KN zl4HX(pVA}fZbU>N`B!Ci%{sw^3jB1y|9|-$KEUp%i;=io@*Kv;-0d8y81WwndSL%@ zN-De0Zbn%A*^SA&tbgc;gW;Y$X43=NqQ};bDILs%dyl0_cEfszWYyO7cKU}#)rPK@ zG3~~Acl=ULR9;?QzjDf!aQ5Sikxi%pGiYS@sy|=4dYZj2d?3mkW`RQnWiV{63OB^R zOkO$ngR`ttQF*|H3V9^$Pv|r?H8t0(_?SDK&z5&dkP2-aIZ&qv|3@dcQ$cDlYcVhb z=xmoslj}MY(P*Nwgv%Tf4I~%GQgcuf&~oK?{Eeryv=keNv;Jh>s?7#r+B+_#%hoyM zUENY}3E3G;b?b3t9l))#j*#4zC*I|AE$g_o_Bb5yS@hFH6$LC^B*0GenFH2{07IFFwvfX)fAWf1m=Fy>nr0P1zu;G$MQv-RiC$F7{kfpKge16JO96Ufm+ z4HY#ehHq{h2DH<9xZCU|-wK(HMQI{gn*t`GjMMd8JJfs`_rX~#JRr9k4gP^eQLS*u zfO2wLZDZQ6uOIl_trf&Mg`fUe@u&qke4k*M-U%qOgclUq4wnSD5%3CEr2M)HNtr+g zBnI~!8Q(9c4lGqtPq+Y?hhSK;6(K||$J=1V|41{}97F zCC<}Am-BCVbjvij4%Sm|1U;dTOk^CHcoBvFK{t0A>VPJpoZ)oPnv7+sfc;?>6Sp;H zF)z9rwvs^y?uZ(lLrKP(!8;bv=Og$*QH~Y=0Vra~Nc~gbkhdl=G5B|cMeS%cJ+M_| zK^R=8;gA$zU$fAehU1f-VHSS>v?*u$N5`MG#B%jZt>h4vqxVotOL8x$3xAq+UlzZ%!t39o6C zrXGs&7_P-4oh&Z>tpyHOg2n=lSWQ&b)zp02PYFGu@iw?~gsc4p5CY2qAmB)hD2bJ$ z9mOL-{dAb|nK$#=)Wg-j4q{K~fll>aLcSB5@*&m-$8V*wLSXA{!@V&_J%G3q zPq*d%CMs=H@1#_g-xXn4y>pOF6rpy?`bWzgU?SV{-@}q*86^FU*G37Fiq=zhA*S3F z=sD}4645_xaf_V_b|5UEQV|5*uqGlKBQjvBpR9YkgNCOJO_PO?j~AHwQMf-$+3pgX z-Yx0wb$xP7vEOgR+X4s&lsmR@`a9_; zg*;1#B6AS6K!pSC;5QczxFa>I&T+irqeC~uy#h~hdT*gSc7>;rV}KcgUPU-*!9qHB zQ~@|Lc8HMgg)e5~0WO=tM>V$>)Y-ps8FKM1)43T&PxV6!+K@_XrSq~pdTjRxjLqcD zJ_<`9gF~9d2l`=+z?S zdGzGT4!g;xxkDdxJj;)9d3V6uK(^!h^s7_|l zcrR@Iz#+OCr17~S7PaP_e2y@d2e0gbCYtd?w(zb=4)26PsO}TWPjQ--8+qGiT}Z(I zOAVU3iD--G0$8j@VMP&VYZ4Fs6|# z0cIob`g(*lk$vKExTY@iKW zJ%X<3?bGh0upG2tJI{fLk=~~1bg$vksX?9TLFn(4{w^-%Qe)gWO^Gg4zu^jezVrN+FyrYb!%L@72H%kDrCK_G7+~H&EqpMSu`Wtkjf6CZE+J(I zaD#W&V?J8Z-!&BQ1tSTkuewvFR0Uo(1mX0HAFeK1$IDXCJ}A-*nTG(IEwg+O8mb8d zyh(*u9`nER9f$Gj<7AzCujsGg9Z}G}8aE4K--*l?hotfg zX*uXeenv~tCO4^^nxW;`EScy2QYgbbBb6-G+YY-B@M3R5%W4)zK1mFp-qI0 z>v1fSCOAY(jI04Wg{7soN>E6KI}t-Bhwq~N@(3?=AHUd!#@ zC^`v|0k_YcLxTL&PEyPM-^y)AnHFNwNalA2N&pbpAPpgt4ApfZ-;;N&W@z0O=Xrd0 zUu1jvc`<;aqr%1Jpb|+y8qeI>I_6gU*pqwfLf(7x(v~7&|0{WVJbA*Iya2VpN~js( zyQrw=omiL1X||A7ckX0X(>Me}rzd+!dlGCzjCmJviN5lC9R|yQZpgA9CUtX=YC_y%WkOC$~v~gKUmPhxgBiYynYE83A9T*|R{zkgeOLyBr za8Utk#|wxyYQS1EZyRw;x)e72@A(S!$yyqZ!=4DO~EukgH4NAzpINwJvMA+&T);^N)C5C)lVHS@)D( z$}ho;o(B{64RlEy@!-S^V&VTJ-3H~>tnnC5k3w6_ib+8+%KVY^oOu`&`g|-Sp?e8B zH^_~=rEp?`0FTJl|K0MFS#=mYco@|0UyQBNeHeM zAm@UTSe2y7GQCSu_8jY1@xG`0+97=$HBsLV{O}YH0d2jPjNoybewQ@;CK}9>Ka;0^ zqQw$=*L*k;<>5G5iX-Uw=c_X*rrWFGFQ-_Shp|Xd;L{ZYH3dj|Cy)kbNuxCO^wC0L zs%gNgUTz@QW?GXv#b3YDdJE{*C}w@->;Me5#q%w#c)<9rh}Jc1*Ka{mny2H(T0^3N zQEe(`nSMsL5j7wH=YRI1>@Oot)~Q|=<&xKEQ{)9eg~WoZXLC_D5J;aA9kO(FLkY$m zPb`*Eh$f6bwe#rY6dPqi%#k!&!8Bma>_=Mi_-A4sY0;A!UV|Dw;?6+!h?aad_dIeT zUaV=xS$Gy}s>p>Ivyh|AK}ORh@|4O7Fad*+F}PotRG7xgqG`^*cfLb_OAWwFKN6Z@ ze9BsyjSdk&Zdj%j2;dI}tb##(+4{vt9IIZ*77`859rL3Q;#?<9F_4%=ymFqsSEb-d z014Mlvw^DGArMNTx9>H921~@;&~hfx@mO~k<=ruyba^<)qsts|1?U_oWg$#m%KQIu z_2%(Ze&74>F{LDxBuOc$BvXNON)qXv62Zs+;@AX!|lvsyG z0Wb5x`Meul#T!CTEicsE3)=6cyx#=RQcluXr>yG;faMKxpk7WwM_)Kxu)#f7u#3sF zeyZ72Ijk*8cQ1f;mP+|5N078FWh~}g3i83-^(pfu^Ao%+u)i%6_gf|!AW$w->Du|o zr4wQ*)*SMp(5}GIRSQM*QhJ- z#z+P`2G)Ww1mXwv-HLE=z)%(_8?wS)v)+~{9zk;6Q4pj#s!0wj5w#FD?9huBFP5AE z%!@psgW^PBDdAA}+MSGn2r*Z;3>WK-A8ABRLdyT9G(8pcQlD(wo#*iLhT)gB51-3L zbU`Cz$xb&^vRz;H%w#Gk#iN&TGV5vL_63hh{i;H~c=FQvCmjdsJW0Ay6T zHWjgDVikCPAm@m!Pq=JD#nsYZ+;sghL7BE0TOfzVuW~_2QxdAPryfc>CYt7y|M|y!w=x&nZqr0g-vM zn&O2W=1f7j` zAVfuZP~Pz3ayqd5lMaH*`C#_@10(INVMH;*ZLI~464yb|xng7{l7I7f3;6i+zmQc1 zMMnmOYdJUG9a-vOfVv4=HQ_R?zNocFQW8T#bBruXgZ}ri4&MfBuDxeH<>KKt+Gfna}=8f zFaG!${WL#q76Fzei*Pkrk7jhp@PPtVve{y073)Q`T7 zp9>TMo(X4UeEYu1M0D)Pd)ZvgEd^GWP7asd{t#L{!+U^t4bS4KW0Cd+>rG@fzm@es zMWeWw*Z`g;De4G|n+2}bh@7YLo}aZfHN$ACHG|+QW-lI8&;S7ofVTbX?9@i83%%c` zpw520eiRhy87Kz-$h^9yWixfzQYZrZhQY>YsFS9L2zsKs?M5er6KpX{s^1 zS_qD}VY;bg(~pj>3#~~fX6CAgW%TM#G%$!UpZsJ4w%DP#_Gy<*&lih6*S^YBtLy4I z582p~QBV-cCHDm9lX~6Lr%&OGoIH85*?IgYg7pT7Zvnek>!ey?HKC5@IxUR(J->rP6MnYX( zUR9{8t|`k5si-D&MxHBc&$%WTl+$y`@7S~N(t#&c15rME=*GpcxM%_Oh;wzuVVAfR z+%-j7#vciv{Z>=6YU6u+c#Xu;1Dq>ZxBZ<`vok|j*Yx#kboZ2e%cgz47u&Uhx0G4d z)Gv$AN3dyzo`X8@$VN z0`06jq$)_~8KtdO<-6-&o_*biI9huABK2cXZ6Z!v3iucl(c49oY!0OT#`xOwSZ~>Z zdq*Qxtvohz-BvZ2yDmGffxg;e#_Ox9ut170c>eW|Y@K%D+s5wwX|Kmdr-9?!N-Sh5 zt$0do^hzwC{Cu&lRHFQlWQ|19kX81>jfGCU$If_As7@S3hTpya{a9SXKeTX*f;X@Npz{2wfxt6^~hEcP4= z&)|wDA{#k%c|KsPS|7M*uPUQL0FBL?vXlcF;gW|<@g(5EYuN)$ z(vg>yv&665S!KDNU4ADI+vW6z_s@eXLJw@A?>cz>`gK4#e11_>=M=ZXeZob)Sugj7 zeZ=LaF$5H^FP5;ijHl%GNgwx5#yI8ga#o)Pco<2D43mLl|C{HhUK=iKxxO&QQ8Z=8 z7-!q`=VHy8p3Tr+j`IGAg`cW*Z@O4jQ>n)E>eU@i3JD3)zF*iJxH#A-Nh{T3 zL&U|V8=Fe=NTY{sa`LLE(cTnVQNF%D!W9@9v+wI`CMKI2SC8IYW$AocJ!ln^N+lx4 zj~8g6Dh2_8AH|a=PTXykBKZ(dp+=y>N_xf>V8N1MJireUfJ?vdVn?GTB~fwh>FEK( z5<8B=vnhyJW?Z$a$$C|{!FtV~9c!wkF%u}|S7fl}r0?bM`CK@4>eO%hK+>9-tkunA zt#07q!G}G&Zy#sEnWjCbI;o?|u_aXL+}N*BrH>ZjThDC(9iT{TqEo)+*DYNy#4=r> z{nK#2>TRAB5754uBC%}y<(fEUC_e-n5g!`?#enlX7TSX&d?+o^&oEy36TVe>$8y(+ zq7NT#wMtfW}kKZe^E)F_Y(*qR#DyJV~?w=UhIi{~;GQDx1(k8s{<( zFE43RT2fL%)_B$5$P8W@mgSQNDVI28ZlEb@lZn z=O^i+s@sZ6_U+r(VZUuD>mE&x*deP>u!4S@OFb?>cLSn5%ZlRLba#l(XC>t3=4R_} zZC?)Cpim=GmL?wh#YyzYM%TeLuGMbo3KzL}d3m|HEqT0L7VgK`;dDiu@?%mo(haY8 z3dmWi`S17elFs=*Lpox3GkFr9AXVBbh4mI160+FyP^wl>Q_I|q^6RAwC#74oP?Rpk z?aJq^zR~}20d(NLM$6yTt&i=Z4c%BA2MCnkOAY-$MqevU@1e>oBh*F`SG{oOd8P*TxPyge%J3?x|%~vxvPB*?p!_U zIg#%Qtm9vfhz}nvV#E%2UF;E+&^0hHK!ny2${LsYZ#jjIAYr?&!mXMmO(bvJ2#!P) ztMVEGlm|$6vAOm=1=*L%!w?sbp>;3j`+)tBp{wfwTB#3t1Qn|@SScz-2pp5Uhg7!E zh7|S%eW3Y|`x}LRjE)G61KA%pTtR$IpXh;`%OvQugZ1jw)prLemKV85`v#O6isWib z@g#fgLeFjQBhe3qh07AWoF)~|sH=m$uD;ZSPi4M+a!GbGRJ)t9gvvY%4lhzsef#!p zw7``xh0ujb`*PNwe}6=4P9Lf?2f%_mFj93GTk8?O2|9uDPJTK%fdiZ}`U}ZW3!V;A z!|j3^<7A!8E&|@UGcYfvA|-fF)j!UvgA}Vupex6-`5wSeu@QQ$N0siq>QySo&=VQ-8&?ChAhr(8C8zW ze#bVQjXS-)-sY;z&xD8kr51#$dh5_r@eQIJEXA#ZrKP3PE}h0FhbLi4_>Wuay=Hk! zG1qQwZ9RPWuu~3!)5&EYEpV+dqZ7?b8&FF}tRMk&VR8zl`*KNg-?rJ_iw_iqFgpk= zjDd~eGCS4R*GCRHmx(`IM#3(A_5CrjS_aM8wx>{uBsratjYVhR1&_B9B*EnR&X5z z90=Hk^h46?=IDoolh%5t_}Q%<8CqKhrX-UuH@KE21d>wr>%G?hROW8pJw3O#WZ?b0 zd0#I>&&=t^<%1pa_l5u7;hoVn?pr3ZFQL#i@?v`SeEpAgYox9?IXTTvjV5LknjhpmNP!c4xxHvqkSAkL$ zHF1vBCi$V)JxbKU^2E!WA~v$3f0I6~4hm(bP##$$V4$A5RFHx~QEr`^?#B@+bA%#S zw36{)d8wEFKHt`yBMnkHQ*f9Vb# zh))wb;s0TsWUVls#AeRjb?Iqf5jFLD?B1rf6tI65z$+>+Ff4sN7p`v>DyF!_RfaRkW$qxBF zkn$~xDWiTG#h9L%jc34FzeWNlp0V+1w*5!QNGe`He9z%%o%x~URTA{^+_XhpBauxl zq{5%dQHZ4qs5Il{;`-O!eHKJp>O&UbRWboEeE=LH+SQIux^$G?E7-jLgP-MA!EL~U zI~98xE!^;+vy;z$`Y>sUc5W=4y}js0s>;Da%~IeKV&A|KM+!kRNoUmil#>TEPu%WG zABc4Z=PDt=|0^C#S9sW&9-j3j)e`rq$+|Z})Nib6Zk|IoOVCWHmqgCooC}fEr0Q`j zODH60zRD7sS<;0xF!hSMC-TV*t<0yf$%uNcCAjQ`d*N25rlwkL@AYC^&(7%10;@E& z&F6vycdRP;E5TdDw_KKynF;H;P_#{v$biS&(sI2?5>j6jV-)_Z7PpO%XQV{+IJLCA zv4}AV)4lxPx3X7Mnz?qpcn+-jI_dKQo4@Tfq*m?k2I4NMSI9bWuH3kduU~ha87z4r zLwl852M)6kCwLu_Fsu^E^sSBd^~@BxhS9Mx)JzDlAg@Zj+z2dkpd{@jgwyjA6T3I# zG$9seIJ8noJMC5@1Ep#NBG4sZr&}E}SyQJmOsDV2%S@j zMIH|nmczp&{+_N${2fTCrLOMGO+J6{j1EzaEWVJt`gf5R^nr77b34K2l50J!z8gW1 zxO4tD%zqwk0P(Z=&;Q~tIZt>t?RF941Uj1rBzf_{{;|+Xr%TYPDGL^kf$f(FPYuU2 zC0MfUPn-I}LJDnzxj8^Y&fyy8<;sZIZROye%d7qkHmB2vJ_Beg3>%M&;a!TW~%NYOW!&(`2exDZlf(6T3I#>)DGgMAu1W9o#jX z4GnKC>~R%Ucw#x{OeqeV`20RapoyzlJ7aT@P+3lL@?mh)0{W-X zxfj?`Qj#)9@ywIUS!QcwnVPb8E3cAI#mfUP#}H&G*BI}nP};sWHDU0NG->mIc}f%F zl`=QDa;3|id4nB@CIqNPcn(G((Vx0<4LbUUhDXXLTaYtzcXuCec1$TKh@@4xQ&je% zYBqVFl$4hD%duhknCf@$4r&K8+*?gTBTST~QD)>S7SBI}6V)+C&6-3EuerCj@346O zHX(sdVN1aA%HhwlYoj*l9(+upWLl2aX|9>@#SucT_*Dq$EZIofFh0oiB-$GB9^hd^ zq__AzGq2Q$Or-@+<*<0D(yP)NHa6bT$B+ybxJzgZ%a$?ai_nY;R8*8!+;ZZ0*_~4f z=d3w=-L*Hr3B2vU<-|V(uj-QG;^M)?bjS=8GN5?dLyq?Ca`J7vsxGE#J$Z!E-WrL+ zPgUd}u-{iWdi3a-7lF|NR;HK2;*z`RqI-*eqos3}*(1sF`AGibe#iI=3k$u65e%3(OVpG-XA)Om*7H%;C`d6MXiXw?Yg-#Ue5PwWO(^lZvAhPxGtu zhs8txo~6yM%6br1v-CPyN4|FE07p8LS+tt{-1V?aueQHP(E0f0hPpb#z0Zc?M&S%q z<|N%&tK{f7O=J`e`hQdB07=vC-rnA>u0MS^w%qLBODLlq8C+DOYVe2}8xu^p+o<#) z{PN?L4p=;3xH41!2;<}J@7wE;pb?$zZJ85>&{I_2Nt8DFryIQU0Ln^?J#a7b7;tLu zreXo#T;D3!+$(9d5%ZhhY_97lv!Pz1d^j&n>9A@bB?kMXtlE81rW^X{UWtu~*&I-+ z;zGMiiCZwGkk#zYIhl)B+HX={&j5)?X47v_#MVPlqikHrY1bw$TRg?U##>je0IYbdfKQZo ziw8>p5`h?40?0id;X9~G{U+SB_I7e2z(_*j&H;Tg>QnSV+3x}wuEq*;a${PCrm+#M^gDruo0A* z&$;!eTeC;Mtz~?pu~0e`!{4*|l~l-#C-DE|hm!`VypPBCQD#nUi(ylU2X& zcx+@W8yb>H8Ik*bmt{=kwI%xT=mwLp-1E@WDbb+hZcp9wSIfliy?ghLa;8c`SnK-~ zEGpx_i*w74Z!cjAqYxiar;BF(O%@(?S3^~m%C9z}HdZB&laphuci9tO$>*zBG=p~G zS_^NZglGox)Y}lV0eeooP!f!feme{P?H4rXpcG7&Uk9VD0j@CdLmo?-P0e&1sN8=7 zPiV~w#!cM!gHr|39V2gF_)P(yFn}hfP2Ef-o`Z6ZCLgh}TY?m|_k#QW1}d~LjW?BZ z5ySR0yo?rD^!OB?A2ESfVmFCb4S#;~NwG}}Nmm88@7D6Fj0Xi~%nIelR~XdB27jSz z4`PBeoyuVtns?s@7Yuho(fBN)eC*pUcpWOva14X;i~a*7ju(m9^`VRPkTf)JQFCqE z^ZlUS!mtfCu*+Kj{R0}<)7uNVYt7a2$NAaGU?;TU&78s(M^@idh_eZn_UzdvtgEnU%#TdbK*=C{nb9LsJDSw->V{~6V^#pvP*oJ z+;semvQgc=>2pfL6*tzAVWad0Yw5ROaDRx5J^i9k^XrL0nM#Rr3Ik3MZ_N%$QF_Bm zBkfoo4r4aWs-uW8GGD(wF!ueT^}?dGxoTh_=g+SlY_bw2VRS9FRHJKf`K7YmceRA# z{tkTDjMUh#={e+v0!sNG=`8$NNJlMZn%DlXAIe4Nh>AMW#IO(FCeJ}kIq!Va82ncV z)C<4i7c3?%W5F#fPvn>#v=#A3NZ8EF`Wor!Q9W)8(b{2|B?`*4n~ffls|%+`*Zux!9QQBOd@9JDJrwYnd_I0w zM@P5b#?rKDOhy#mwrq;I6v)j&Ws{EWcYJZ6L}!^c@Rf-lTv##`H=tR(m6L?KXwi^v3Y7Q-gCQH4+k3|VJLLBI|mhHg(m@?@E?Elq*tCP_kKao)z_3| zq$94}edtv0^)1?Smo}sEhf&~-gjB3h3YNdy5W7`H!No7bdBfNDAsIECH`DvGgT7%n z#u(9{Izb55=sWHFp7eWRJ-D@JZ7Rv?eIDU(1(pkKH4rz?*FKk(NA#;)l+}CKiw$W` zU^C8kb|FpG*g0V#$=z_Y)g7Gy8K*Uc#H}?|#96j8Sx>!=5`+0(+krHzPn=0C$Cq(u z^g^t$*0b#s?hT(QKoT?|AzDB_X*b{ELvESJhf-4G&;BrL3bs;YHQU3w`MWv%j1l=2 zx9nuj^~4*Bhq?+Z7kC6tx|O4}waM@NZgM%_fM&674HifGp(|H?g`{r&T3FrN;J`8e{QeYyR?M)pu? ztz`ucMEY7wU4G}m1b{BsXo-j1F6yXF!syaeb_g$c8%er*liu+aQ(X-@O0mDuUc?q6 zXT?KVZ>+T7Ia&s(2KBl_oLfu1@|Z)O^-sr{EaK8~FwQm7ZZMUU`{4BI&6t7aZ-ZjG zu&?xuER^`9v9Yo0YSl2>J-Ruh1KYxhf1#N6f=?R!B-FA|#y$UA!|hPD#A&m8|NdEs zArmbJXrVd(^*f6DFNV>MN<|=Y|GLvf%qv`bAh0zxHL%=#gjW%jjS59C?OudS$=zE6 zN)0Zms|%O$@E>P+c&vLm-$>gi6mQaU7p2SZM&Av zcAhKt)JCm#{BMiGEIoyO>573T&jl3MUd%^Q->SV?DY%WYPxJ&|qFED8rZ->L-mXTz z`q!O=1kTl?Fk(WSJH`Zz>=}>``_tHseR}ESt2S}B6F4+}n`_mNS_!O=exz>4hAd|Uc*_yHlr6^J%C!m#?#`StZK^O7CmHz7UPb3oY*w<};`6)r zeT&J-gM=SiK1kWw+S;y7Z`>h_XuVB*P0tgz4*OC=@j?edAm1GF^)^d?$jS}n_fG?_ z+Q(viVX5)8Cj&C5&&9ff`=+r^aMR;*#CYuWzEic|zG(#8E{sl2``!a|zjMih^Jhu( z2RZt@w?%|RM6@4Xy)b)n+Zhjjhj!M;$Vjm8*$BtJY-5Qjy<^MdrX*3sC)A|0UF&(9Cbx+ZKYw4fn zJIrctybCHkD%#b>v(XZP%C1ZqnF#YBv>V(+ac+SLDP*_?taHUSn#NFl-f(CKldh+G_ikVO9_#G}aFINdl8=?2*WlqQ&uF8y+Vh$=;RhYaI4|Pj zV)0aTDp_Y>C;2#2C^7IRJwS%e4vI%{|_L#Xq9*PQaRY=!&csXl?w8WrrzH{fh-ZuQT z`lY5D-COwCy(w15pVvHU{5{E1nz$_3q31=>IZDzBzI4{bWVF8;lozm z>o5{eyyAoe?w8!2!!n{;tZ=Avdwv{I6}nOU$W-!d(_iN(*_HL@c13gyTF6{U#9@`y zZ|OD+hgZ`~dlPM(zoMO5`n$WA-YDXvzEGH#={SB(m1DPZ>(T$7gv$DLlBNJoxVgEf z8Y*3~@F2EDIt_s!SG$3t;)5^^KU(7HfFbq|3tbYu3ti{u3O5De6O0u-Hr^`wO-Vue zDtai>v?amOJBm)bJ3o_cv7RBKcz2f10X$z7{n(9ilUa4}{!pDdX9SlJQvs?f6))th2#E*m|t2ob?+v zZV8UkqQqw#M7qC8KHKDdHdy`X{-b<;Slw_%Du9bL}k(cVD6iCDSvLJ ztr7ct<$oaKaQz?gzP(z<9He+6T2Jpdep-r0FEB4!ddtkjWV>Xt-iliQ!+TWePc26zye0X_Y0iia^NlS-#f z9RNH^z4K(WIMiTk26rupA2gVxCQ0-e_X=Lj6b_ z;c#v(EPUSzIgon_F~xn6FbT#gbQP1UFErh_eED+Fa%m~4cmYN4eSA6DRn7v@6~edke)qu0GZnjsG|yfsI}D^8&zd7Pahu%kvIG4lJh zuuGj~bc^n~Eb}VjmGR?TSAQ)muEU_vfBDIiC+?cp85C=g zN$yHaIW14SN3|ME#8CwWa2Sx8BNr293LR@t^0RZW(p~}5#vu<*6&E)*w%TOX7_vPY z0Bu8`JR#i(kkBTTmp>4_VEdpz;qs;{_`^VX@0A`v(4IfPY-#z`f=9U~AvDB9JGg(E zZV@NfybgMJ{9?2ROITq4%e;F--o5XVt>1xq^HtO^%j~jvD1|}vO%FUu7Ehl>2F>4- z-mA~B*viK!SjZIyh=6l*JqhH2nQF{pLPtF1gLot?u0HKo7_pG;OO<4@gY%{2H9bRwyBNYm& z(n~1Hzi{eea7gs8U%wuBjZbtH@t^}Ab?4;wuX%iD>Y(2-Lqul?KpRZI&84%a|LSPB zk1z>ClvK=iulPc=K*jz&RL+rVE~+U=OtMzO-B?0#oqPMnCQA-AzA#t5Gk|NE6#kK zk@5Gikh*%EMACPgBOcY3iVZi7v~Qnh)LNpT8fdkq=7Q*l+vhnPr3i7|ARFvLPo?Iu%!pQ0#fmEaO(!WqMhr+Tx)j&IQpWEUyeonTFQP zQWz@roL0+k7wp~txLl*JoV9DMMX&s(DICZlscWX(@aO=rz=vezO8mx<7 z{$D#Kb{Ir`h7EOqG`Z|?nhBL#Ju*7F_VzpF$%UopFjTtDxdlY8|Ct`c#b(TI3WEqt zuQg@$!Y?Ep0pJkU*4Ex$w(cLW|JY9*GA<8WrD|7CKtj-?IAPHWYPJ%dgJxbF6`m?A z+#7Ac@V9m)$G+=+b!@fI4J>-^4?SwM;L)pJEnj-{H4c+Udve~6T+N_Cm2%28jKo8h zzn{?9#8tamuioUCDt3|BBSZ00@73zCt&w%KH5T<%K|ukrigqekRk)($^7{$Z5pI{q z!bw31t7AUggrf(((&%sKEPT&0YwAFo93+TP%4q831V&AADU8X<6}Rs86%ETIEY%G> z&-Lz5&`s9+6H)}}S;&)8tBK1c%db6K7sCM_arT&P2j2+;aK7dnIqr3;FTjiH8 zRW~T{Pr-zEo{-=IsG$GfKPjvBFLSfgS67P>1N(Q)E&<8)nMa+vU)<^XX4W&AU@nJO3k>pKqxqV){VFS7!Bn_>na+@eH zWH5fB`4fLgBtmQ$^%}khc^v+D!jYMnREJK9KoEJq@=^-QbXTU61JOvi%;%e z_Llu-hkZ`+3ID)S!z=p&3=Vc-Fa!5@g|a?P8&($J5LXUZuEv1ek=#MF=i>3wdCEd| z%%2ZS1pgaQXLmQY9faS>6(xtN71U!qy&gxKITFce2XEWD6~;|UQj*NiEXc!XxTwN} z=ozP$E0jJCh>NEIS?%oXgv0f42j<5u=R(+}(N#@l>~Gczt&rqlD@${F$NT>{6AJY; zHAVa5<@PVl3sw-|NE1rT<855*VGtI_f85G+b6J{^cAIo6Vy>RmNjux{dyMRzMw-{iC> zIT=rb4IJS#bR24|QPHH1Xl`zf)WL)*wWE>{e$$T$JRq!{Q>Nq21y@$FdLD|soYY9e zn(}^?XGaU*NyqPB!LjcEDnk$kIj(k_f=@2_c$sAJF@89P+I&wTajINn^V3eorD5>| zaoLgGjOE>!qZUcP^t+u$_}GT8MM>oC}y{17m}Ry82E94L9V6~c8kvU?rlyM z&&7)uaUa^g3KpIf^;-_cx~3i`JjaO|11oYEe_pDuQ%BJawpRTF=kX7$e90f10$5csQ39I*_#>~ zLQ4%3b{Q$xDE`3FpWn~SW#_U;FV)^UmXR*zpy#1YO<5=O4WM|B%uLVMhd7ZC-sqxe z?d?Fps6Rh)Z#jMc{u#?`SbpOlnBLOTSF|;}FF!UYDtp83ZPpazDEdy_Zf>zxQI=W2 zb5%arJ&tWpPFl6g#|rD^Seu&O6aR0Jpx!@G+Dh6P;F8-E7Z;a5{j-0_;=jB(WzF|j z=Zi2*_`KllH>0FtnDCPiQC1WZB><4SKei46bVH$@%n=+LsCMqnnIzH$VjTv~)j20wiX&&XA%LF6qDlB#7Vg`^qKZ3LMM@`MH zy?Z-zl8v-;k`ogI=k-w)oO4Y(xI5?QgAKi%olCrmV%KcvysLcjBoftSmTte1Mt`iZ zwzYA`nuLgx&&&3ms)a7INQuRpiQqmT1y?#sf@moG<@j#t%%h${Al=p%%w=}iBOs=k zd`e*1zyLH*-{l+9_GO4yABGFw`l>tBXM=wV<+reVgTsE5*I8o2gZZKZGevmI^d8sY zJ%KC~mO;d>cz-`0PghqLD*YZUCODUzl{wE*^*V5}j{8Hemj8HgTl9tUr7PLIz#`mf zTSrAAFC4`tr9%Fa;83>-V4NLiKjQTxP1Vu&D2J2~uW`aojqi*E|4XnfKkNBu4Wm-eepJJ-) z7-Eb(FvI{dw+|3)8Ps`0;bWdi5SU8lqSA|6UQ^}7Q&LURzXw+!Yw+#o&nJqpPA#JK zOQG%eVgH+C$Lg8SWnU$fsVT!+pphLx#1ye<_sSIw%ABen-TLn=KRcn#|NZ-{JLmTK z_ymU+#+RTDS0m#vV*KjXh?=1Kkm3At(90r*Add+*s9#o96Ew7c|KiP>3^Uh!8qO=b zW+(sT%WAoz&Ym7j!!B{bXE8CYkUwl^UI_ZyhCZx1HQ=|E`UK>D!(l;|?3e=Wfk3V) zjq#ved+232V}odhM=+9m9YhT#&XQuDPYU=-4GB)^edI#X?PawDj~Tud5Ky^8b52N0 zsAn(X8R%V@Wi7gc5ZxD0xJ7vMZT^7LLl<^dGlCFyo(u7nl5SLH=I9Sz6lDYt)h5m8 z|E6eqO>wY!<>uswgy={=;Upz@k7U~vKSZs&J@{_#qv)Q={&;3&fBgCPdTo;xbcb<% zx83JLlVqaiQ+CX97jQturPNWlr42X}sdOX#r?gZ;l=l9afg*IMxN+m_`TqvW!te73 zr;lmV9MHQUrLCyPokFv^h(C04Cr*^1wB^gvihi|;dWKS@aNZLJ++QCDqaiNT@8Zqb|E9e4T#mUZ&_ z_BHnoUIg0w=t{UynM67ZJkJ&31c}T|E=y4m$VJaA7sxfmB-8Fv;O@2vJ3e;rfwolx zsCFLTd2Pd@*+Q#LhXXhrDj!yDHEXngc33Q_W80afO3H6Kvhwe}9SL8wHABSvr}+IF zSO1*w<7)cae8OGWgj?U|*zmW;Raei2ea*d>RIbChZ_9PJJ5Qb&v3h^czVT-{{|wi| zhjLw~a%vLha@sAA_Z44um338Ws!iv0E$Dmu{XqfA2P&0-h>Wb?Il-W3Gy|fE?lnZa zUP~xhFL$hRex|ZuEHmY&Wts44#>Q{!4)+2my^Tj0BD!n$7ilQ1P61w(jpSXwUU_T4 zupR%T(;UFAoUbW4(aTyCV^0flri_Sa2}tkT7bAe|%nLO|lPYfXCl(Bn20SnO9Q~j1 z8KyrhWg{bBWRD$sDt3ao^d*Z&q4>uc@p?AhfYRcz3#rDbPeMl{#`8K5-ikgd!=fYG z+wJPgl0j1P`0?X2Qf4Q%9)yIGv8OAVFva+FBBy*cJa+)`rCu8x;#CBGpzg9@a9zQs zlTk@Cb^5b)@Gi6L2LJs2{aa~k41h-+IS%=TCFsiB$g7;GgTxZhx6l#;%j_TOUo!PO z^}clV?sANKQ*n^%HfEjm@Wr$$f1lzDTLbJ75Y;(u4^lKjj2e8+$=W(YBhkjjMsHfV zZFn+NiqCjod!zeR^%rWVUj$x#w6hf)&qY?frs2rxt0r}V=8Bb_yJPW8Xli_Ede5Rp6?;GzlLd?9k8}iX&GU*059wpWaUr)cNwf23To^A!Vxy=$}GfrbW%ZIjO*YeJ#R5tfAh&c{T zI-v%Er$pT4E(ma&>)k@%-k&#@ z&$ec4!`-?yWFZNo5VKQCO27m^0H^9d~MY5 zstNA0xqAJ)0H?vh9h`U3tG4-pH`6xXR`o;;RB%*`xkEwp&{K2a*DFc}d3d&E2wL?P z-doGV6JB@sS@kur3tUlg{ze>uG=-um3<=78H;`ZTMtUAb{*Tlg#8+g+#rXuu?lL;r!i9OUgt!3kM6Vu{H{54(UdOghO1DSDpgVnkd6 zCQu|%HAUts4YeDB*V0o``a!>(baL?#p4g71k(k@EHvDSjTh-CiFC@}SmK6SgeBgO5 zRLp+P*GPnyetF%$`iUC*p*`WD`*@5+u>(R8QTY@{9}C@HYWQ^*ao5}u$6$fB1(YW4 zt0X>a)X$zD*}GVa)C6N`(MQOBG)O?3T|2u8KqR@q`$?(md4{F6R81%NGGs76Z$Maa z9S}GVxlj=35-hWwg!dGn0Rt(*gpdP~D6qiXkUSi^G5}?*xBCR~*nK#Qvvn&jrQ-k$ z(}#GhY-B->V|c@PB%-RNd@m0y+E)IRMTTN^9n@NsN*KIQ3w!J+!ohN8{zD4nD0R$4 zE^@71yQFA<+jV(1Uz=t2=@+`AkEXY?*1y-?Csu@|tUJej@M616}T+GamiVY`#>$2fgC~lO<0D`QzBF&849DvvDX7*qHSKfU7Jlj++W_H6NI!x8{+XEos8#zN z6VlJmQxW*`arMz=EN4{vTuN_vvD`#bcl56VIBD(rp;42<)hor)|48{p^?-fW-uKaZ4Pa&Gm^VmBd^WK6VBOp`=Qjb>5XXsu-$+aWwMQQAD#iF@z~NpH+UBPV<{hCK zbm*x87*cNbszRJ=E)3uoyVB}pvp4Kpb#!DN&13-Q?y|di`vRSg7VJ%%<#{f$pnCfI zdDpE=th=H)Wqu;|>!(l0U>H|0!hzOt$$?=3UuENBB$w0$IFkPuG&`x?ym|9FPo2!Q z%u_5LQLUfLKc=vJ*^-i5k-NogZo*yrG&!Pb>77+?wx?Qmeg(;U_1$6tpIQQ<6^`tm zn`p((EmOo#l$unNnmAL*b&T#AQK|*KcmIAVaio8xfdJKFEU}20S)S$y4etmj zeTf?9cg(y!kaxiv-5QXMieYQ|FDaxQFw7D5$7{0p!j8ba*IhyWz)TCPYb_U7NbEXz zL{DBAC|72>A&YwB0p-mh=)P$QNglrvz+59!!l3z~?A7o!i^m6C3^Z1=cs5KIMMzfv z{OLUMPt}Y#0%Fc!@!J8979m9OLZf1fJj{ik-%1*pU2Ydp9njNJ#!C=9qHnYxf$SB! z_A=ObB33qE8aY#n!gVm8!XuVZj6xNx8{Y8 zpZ=1rGlizGq@c8?&#sXb77A7BYs@@Rgu9?9wcr4im6Y5{plr7?@K`kY{4nGNtJMx% z8JhrQb2+G|B}r)1)$yV%ew5)$CWX>{OCF**&z((ZOY#rZ!jKx+Y!9T|2I(!4ZC zFRfwVj?5Q$CylLLc^&)vwV^U-T5ycm8o9FXudnNihgugKQ12bJge`b9NJ}kDxUxWy zA`uGDYPvQJiunN<85rFR#xGfL5WuiMTQGXI-=RJi_7ZGss;hEFFvzF%jq+#jR=c_c zb*oo@HPF!4^L^%zLp&v%9XdBpbB&??tFAL8u6giO zo~nq|vQgxAQJW)X7F}>m(zqLKTp?Kn%a!S5FB_Rs-@VIL>dQJfoMPi3a!4N=&?3!Op#QE!jC`bR(A8x-ZoHOaIn6Pwq~BTf^^P`s|$?CBzY$L#MAVy4$p$ zVvzj7B3v<6cjR7T752=`ga!3>&9(6`U*q`rOJ>|$8;p(5m(pcVlKn)XEJZhRloiYn zt!+`~&J%E2A&zHLnCUoLr|H^1?$S@Hu4p^P6kgG*SAk`1VyrN#KX_~q4e+z0LKf_P z)O2+@2Pwv)GR9PL-*~Q>=KgF1PziNiO1x~t8y}bZtf#bV;Y^Z#66~-`4BjZ9gFoea zli$M^g%+<(%6oD<)MpDqvE52?H2z8hFVzBF#85Cy+u?=pp@pFJLTwH*kc8>##kT(I z2J<>7aw4k&TE&MT8n#)JdZsZSd<8nh+7@&v zc%veK<6Fij`a-JI&DS!{2-LbZ)T%>kM9s7q>-1B{u*Y@w6ODMd*VF}rtfhNPD4Ik8 zL`!IjfjFIR+nu`4wt(T}Ph8GIBO+ph&|)$D!tHtl9OGx>mDLsEB(f%;y~%(dKsJBf zVqHIwxtFoAiRkCgz=QNYatInVLe`T@UPN|b8O$;GwAxu)OGH-cccL)s7Swf=o3C=n z!=P%eF?^vWI9FTu^Zge~hx7YDN;4i`Ofjf<+wa_eH~LtgGV!wNSv(J|U`%%ZxVp2i zPuBA9oorZTY$qcWRU-*}?jSk5-n^Wh9v3~AClye7hqk*olLdT4&gJ1Ym%DVGiOhj_ zncmQYV%+DaFdg9LQB45GWJ*~~apN5R=;DCNM-ISg5dWO-c+C6*YXg#TPtd4GOvr`CV4q|eF!hO7mGdA z1h=@xU2I4*Lbqj|q^;~rs6vwioH$py|NS%fJce7KS$Uv$(Z|%tEm5kt*}advP;-Dp z1gbTVCHjp7JrTdH7argQhXVtO)$0ZwEfmlmlAez^_kTrZg-#Bp~w)0amG z+e9@ZFS>X2_1!3!BOl!St-bs)^P)wD)Z;G`<#H$qLS4MxN%C7t)dk|kB-UNa>5L3QqROG3s4gtF9yhZO z3xsNJ?e3!eimkOZ(&6vOHz=9mw^Z}HP=}{;3c4DvuZspL0xWeMCNj5x$`o%))*DOY zOPvRE2T79q(eXc55o3uRvhZcdww_D5>RyJiAqyH3PJU^37p~B9R@P(0y)d{!OJnh1 zH?1PSrDVJkV+AR}5dt($P+RBW;X&8u#@k~VsMA5}dvbrj{VDXx>+c^IqQ2j)Ooxxp zzy&*1z~^&Y+J+Dv@z5F6g`G~)Smk|-I=m2Tq|H%hfGi|6l2S6Gk=QKzXz7iNo5;=} z`o#40;R!aw6GOa_e8ZTRh!k;iqoRw8#E!>?soyB3e3yyoORi$9|H{-~2;fTo#BM=X9;G6H?!jek8Sgl77yxp(H%(m`ok$HLO+F1__p1wE>34KP z>7{gd6trE^_!%k#D0tsv);NM^l2%YK588M2fs6!1A~L9=g>N0Ch|K9f5{*#|#t5{Y z3n`eUX21$5zt)IY^~$BwwkP|ZGsm_DfVUZci@Y~v1fsEJpUGA&G+K|MWJqP0o2x8r zjoTg@?Rrv6G*ZsJMS%pq%oH#R0duy|XZXVb%EX;Ok9`LR3xKfK6GTRU6Iu?&#qbKe}f7(S)`K5^c5q4r>Grk?jx`r}tJfu$qb&e{(|KLG? zOF;|m+1A3G-CQoKCBQ*F%dt6GiUz<>hLro<52WNlsFvhj_O8&Q22T5;MJ}W<0_J!x zXoXz2rOELRco3G(80zWIPrq<@o6PN^As*_4{01XgMOE!6#LUAa9pS6)J4oKHWP)=G zg*TWB+A6Y3N5!LJ>=1Fj2v~y7t-! z1fb?07fe1TqGbAsb;J|GRcNZkryga3NM++4@Y0ep-2Tj{LTFyKgHn8V$kK zvv_x*(-Mzg1&C^kTmGWJ21vXEqT3r(3LqA4_z^x;!5}#JH;A$8vx+2z0VoTWesORZ ziej$+o_d|LZwor~^r2#`1o?8Y6YyEDWQJMOH8x!6WhgfV%|5a+@y?#5MFUV7V<*!k z=h&ESb(z4jhe#tJG5z;qGxe^snuB|?Vc(Lq(?2E(;C0-b1eg%OGI{4GN=SEz(tvHn zi_BiH)O-TtHc(F^irbF5mKOaNYJ>&cg4{2u zM5VMB!G@5ffG+cc*lZ^w7g3D&oSdbP>wnVk^#4)yYp$H&_F-~k|=WB?J~Zeo{~`?=z0DSz5)6z7o0LyxU0jaJ0ML zB*ZLZYvM%s$mAkjuN%q1nz=RLGdtizsL)2+J$Z?a)VxkM~3i*b2$Bw$++m6 z;Q#Mo2sL3s@MS|jW9vlb`Ld&W!nvs84l#5@6}uR3K#u&yNzZ&yRZ}_hA0mPw;{1)s z+z>8scmp}^edC>x4WQ$#%)f~|65p*hAPdDbcG!`Ng5vpcA0MAojVTPK+S6A33-;E*SwiXr zmkg)TSj+2(eYh#jPuzm$w6%^fQs&yTh6WR<`#eQ8?Em z)Bc?vVDqjJTW@#<->mygUj_?NK?45T=Sr3-P~tEIcp}vc$Cn}~C_s_1imm(Y98DcoRg#3w$)P##O8rR@3m0%f77mMGMZW)C)!|8n9jq5!}KdM1PR2Pe~0Ob;MedV`7$uNuM! zPA)D-c#?no`8@&zF~a9}1h}LCXSpfrEMBq&kXX!WqgFKGs&)|c_I1hC>3uQ}w#yvy zNK`J^ZfC0m;9k&mf_$B&GcavkfiC`2}gllmz1a|-v)9~l(EqK{q_K2J@>_{ zrXWM)sL7r*S%`eRu+y;~Stc+;AD;?j&_#mVvnk>0Enh}KU=&3}#pYY2pQH{Qmw+Lw zFD*$XT%18wbI00UXW$=aK-b6lQ$xNb!VxbV&Bv5hD^~hNp@RUB2*>SV*{Nod?#9bz zF}UhOh++!nSWsE=`GbgS!nKeU68^}SjtEi>i3UQ5TT+Xuyp>qxe%h%Tp06L-ZoXNE zS*wzN&sYtL_Z|6z*ehBDl%wCQo&X0QJq4l~BG8G#paI!k5M+5*=5e0+Cx5WQrdZW~ zan{W2xx_Z4+=@aG7){*G==&QxX-5Gg`AWI%0vrpW>3Z8%093^zNiN68t=yGI-pd=M zte|$^7=QFVy2tgW@x~iJm(Nwz!ao3_LMSm8sST=&Du;*cI(e4OI0fwB`F8$sFVF2G zRWa^>lVV9@7g&kfzIbxz;}P@Y5$`xfKi<#ecEQH7#sO`Of6KWU`3tZe4bm00--^xB ze0V+2x^>|Mj=+J(_DmQj1o8Glu$qLI!3va(G~*h22Xh}Zh5el4j?YHm8dhz(Ge{0px@Pw(|>1Y041n#(1|7Q)e*6P zcRapC0vyyquJf`0gV-03UdD_>`S9Y#S8>REWQPNefyj+k8A{A1d^8iz)99o`DKA`3 z^&cg9;%{`zTPV3RBJE4^Zqd(i=MJrB!mt%EMtsH3D@Tx>WQ2w9l624asFmm%>=@7` z|GRA)QWfJIhsK~6I>WBW$EEMaa!cC3?_GhCAO<7TKJ$p&|9)rls56j$rT(vNla}w*={eHqGhOII`xi;W;gA8hh+T-Jgbzl)|JJT9 z9{C&pVhR5(I`m7JRUk*;@J+w!f+p9@M9*I`3629D0!;&mxes|+5HZn|)17{V-G!q> zC<4GGp%WrF{V`Zzx$7v$!n{bykQ1pI**a`~a)m?x9jQT83D@Ju6VJN_Xuv#I*NgnY z;7DTgTkvdJZh)xwsJxZ7}c(5MM~j3Va!sFw2sf-CfXW z!SV(K34)^$PH=s8CY*0*zQ;EWI2HrXaik&-2e7v8&G$f+ePp16;Io=#_B#>;)?l`C zL+gK+6{|Wh;xqOxG+06~oyRj7v-55yLIuo#afsdM=U&Ie?NVm|h`P(;uQ&_9yYqmrhV zR=&D2`@S)->SIGc#@(@>puRK%kzK_Wu#l>-B6F~*NGDpaYR68tN+4lvgU&k#$af1m zIdHGXE&-evO|Grz76_A=b~~*0UzleABA~_rK^-p$DE}QVtmu08E>(uJWMqJJ5XIRl zk-8;*$BK-wKOi0xJ39k#1}!_I=3y*Fw1W@S{q#q^w0&VBCS#-){U|Fd>j&|rzxmV$ z#vL|D=gNkR>4(6}$;9*XX+t7jlmJ;Fviw1 zIjG&`3dvAK8fN(X&V)A#aOl&Tox z*WkmapCsYj0Od_OaO1y|W|0~@6WEv$^%>YD=qN~;Z2-WE1%$&!>Ri7vM3Og<@1gQQ zL6Hjr8)2Ir^LDL=uTZc9NF_61Cu-y(=vQC! z3GV?vzHiw5KS1h+u1$`JMg}Q-FB>ED0+qx4?)99sXJ;y3OMgmo+wp*QoWd(eyWa@C z^pAwFJ{L0|8LN0V@W-mAlcV9iEjaPW?3XNE8bmf6*>d~YITl{V;R=yvKv!pOTX5D4 zYZG5i%+F(W|d~`(#=9AFq!U!%(S&47tmr!?6L|owc~O(3zYTl<)l0o}Pce_JhI#T}=7E9SEJLe>+g`7?(c?IMYcdr{HV*5=n(g^ot3! zTm=FFfPwqZ$#lW-f4}R^FlMmG7ooLFOh2klHRqDQHGT?Rp2HA}IkuDh(clH_pMd=* z3edrRoI+tR#^6|pcW^Di65t!pEAH~yu`HiY+fUXFj9_x7e1iPDxq~dj6qC-_wDj++BwDZ26qr|9blv)v|FXWwSzvtsMK zSAAFlM}Pm0|NEQtwQ)24!IsC6W_WSe0OlcJ1GT93dsnH1T_>HF>U;DZuno|1(c{36 zuQ=2^Q#JHJ;37k6XM6VLi_`#^StZ{Lgme*UTzsT2OJDKqL(Q+;wT?Z|N=J%#9T4|y zM%B6=oLWc%JD8Xc+{83|6-v5;5d!32=m?;0c-7Vh??!r!(fy|Nm~1SP5^u70u)AYW z-k?c^yTl&-3&*9@*{HRU?2f3IDEq-94NmqmL|S;ui#t&xw}|iO#@Zq)D(av90Z;3-hI)1@-3iuGDI3w z@6Rwf-_Nc%$J*=&Mps7f1x!84A#;T#e)a-+A)*!kn_7^U``%Ut`fOmJV~XPssc&s0&qcHt>Mm#BKH7hjd^{qo{u3DURsWVo@qv3k`)(c^A07Qey64~)(Y`wf zx5l}DO@&PVcFX`A;=j2}i2O?`LKA(Js)Rdw*U5b~5}5V#s||CUJ{3FcTL6V90kt`V zd(j{&Gm7_&FEtQa#6?9ins6=H|H!hLo+5DU5#AIB`7<0fPEtEm>A%`nnLpR__pkqb zaaNc~q8)zLFo}2fhu{lfG5)ho z-HFu+ohgxG3l@84oVI^>0B7j;WNI;ZI+^#c+uH*TZ2jYBw9ojN@!QCqh2-e@8lZ^m-PhBhlG$r z{sYtc@de5D=(fxu7UZ16zn5UzZ;xUIl%Onw;$Ot4rm2G>@fA2Ir z-_-^h)9&5SP3E8<78Kq~-dzxO(1-*|fnR2+2lUb4{Q1IF_P+JoID?S$Np1)+MF(t= zq3yG^YrmsFFyT^=O)`4lNY*?!f^%n}Z#-#=!_1%uokGIA#DIYjt3wik_z!gEyZ|uZ z{FvMP4Vxl3Y_}n8u-uRH)fHmP>%1pTKGD}<3UEoBN!yuS_0N9Gy&fE_#6nrxI&equ zD+}$O7#%&N28_(0YoVm`*VoYb#eveXZw@>3EsUr$3*ULN8-wNuT(Z--vV)+9bF_|v z;e8IL0S^D$N9Nw3@9$5EW-7>~s2!G2ukL}FDblZvH(rrAFPFQ=;o~7dhElO_*nV0h zu0X7^7*{f0q7P-$L}j<<1Z(k8GX1-=zQb>JpjYs528~RDLlq0`>s9zahQv zuHH{cIov`$;RY2$#C3}U_bPr!abX+0W-1+ewU6)#UTn|W3%^7u@(Pi1>9I2&{gl#6SGWfcw$C5pZ_WAF4Pu%qeNq#(;MbS zs{M;^ihKwD1TIy2TRNA0e5WmWg~xsdvFD```%!Q}F*^5}zyyfoqblV=Yvh|@3zLVL zhq_^lV^EodDPkK=4IA<8T=_x9jMTY@Sy@f93MY_n$(?a0_QMFNmUv~ikED{1 z-Bkiu31|m!&1Jc@Yj}7X2S$)ZX%D~hK)Zp}gv-5RHKlWx|8!^1TYGR(J~_HMmVpaZ z?Xb7;3V3t1mvHvhb-6ULSnfjW0~N#U_}s27Qa9n!N^iqogZ)A@1D#KwPGQjnoB*29 z?6;=bhsOmbU+=*+C~sgpI7~h19QpFd!W7Xb93ucY!}@~hfv0~M87ul+(x!|Zu&`|! z7%4VDW5%$#7g{-BF2cV11fXu2{p^o_Ysc0#LlCX`%gOg?q8p}9gvZ_!dyLU#D0DYq zVtsUO58AKvPkI40v09tT%69V| zboL>BDk^nPM^JUZPr`wFsj3cg1G>P;&*vBBgM;ApVbRH-KX&7Z;1%a1Wdn_wNMB1p zTe9?f$6cWp26E{Yab zu|~|40Qvm#OcW-WIncI^Rb9lUXOyqU15zc(ZvDrn`;JWWH7!A$_TC9H9*DwDPEJy# zLzh_Xk48?u3!I)Y#y8;x@{=2wmmb(hh!r1KuT zm&Mh8N*)n$Qa^d}q*QDHow(`a(ZI`-9~7wEhs!`ktIOhmn*%K;}q4`95YevegU z-v1t|B=)+gtYhv_)Dn%TN25Qr;*?{a7p8Pj<$L$~U51txW)fF`;{Ar~LcDKfR(ez( z9rc{TJMW$-Kb>91BIL0F~W6#aVZPGt*>_0xMucat)3qQb)jJX33e z)kdB?COb02mX5d53=BEOV zk9KM7v~^$oLT+B3fM}<{mAqgV0lDGz^26#3m-6ykKXinB8qG0i3%F(UT!p)Gk?6`A zmxcP-kGcOcsAmW|e0-CUq!Mv+o_v^=@L}saqd6bn{<;?-lxpOd=JVuN#E{ErmxKvGLuR2ltrO?MzHQV5MxK=cn|m zRYDmaZcg;YyuD`udTy>R9)-m646eOwup}^nLx!wGin^NGW}R%c90U=CM2&4x$yQto zhE+v6(7<)Hb98jHvI=kknobFX@Uj@RkL}$#)nltCW~(6-VXmv?6WlwWV$V7nA#}Um z++rWKX9d#*6E5IA(_QFjSFh1xMbdIL0yY_5alMksRxVPp8Aj!;U$~{5EUm3yR^)(H%xe|9gvMtFC!6>e&1(yq-KwtMifT|hnmi1|M(YSC<_UtkYf zwseS3KQ}c+j9v!)Cs>n@kE_sP8j}Z0)UKT0&3Ip>%*Y3WbBc>7hq{$XY^H8*x}Ki` z6586XNty%8E7@9D{=-d=Jsw zb5Jxyx6GsawF(zj3g3y1&2P7FU8;DU&`MCzeduSUo?kAB21t}o8~Xg$=9*lRIz}E_ z^Tu4pc_Yc2fO^G!fg>=|)k=pEvd`#C=^wX_Y!2~LE(J-AI4Pv1by$i9uA3WFdajYK zNh?V8cq)L<>oL={Z+6o3)KcE{=nxN<@QL`0bI9PT=D7mv2b8an%)oIdy)CVM5E(12 z%%d>b3Uj}1RINmPj+t&;OiWO=_Ot?4;HgswG&RdlP!yvFT0E8#3;O(fp#gKYC%sH7 z9s1?b{AC0;Q)m)q>zM$Hs8HqD1(#BpUAs(lIe#;#<2Y@4`7&%V_M~5XTOMr)u^frn z@SpRpOe^U3$lJ=NWSy@!=Yd!3Ho{-mkO?Ntx;>7E+MV6!_z#Z~frF;Eg-1jfwkK($ z&U&KteZy|bw-ZA7p72Jg6Y-sAow02HRTAxK~+^1crq)*d5Qa+v)8o35OzwApuAeGIDS7D=488SMA%GY1`FT4 z)2(r^q4h6YE^H)AXf~jTL4oNe0!{YD_O^$zfAekiHQP9@2~@K1)9*V~PumoHX56DqBJlJh7Q5UyL`dA!*> zfYKdsi%YhORXv?PBM?y^Ztk!YVTxDAOxJ~2RT{PzmV{z zG+)1)=25c*R@&8Z5dTpACq_YM5uNU@k$Wn(2B<~R(}mO?W7;@CRfSG6b@7y#VGq}= z-{LBltQ#)2Yge{P);NUw9>hz#;XqVetEuVLBa3=Vs~1cpj8^%Zgi09;A|oJeYljgg zs^#t@XEC(aN-UM1>g>M$FD{tf$Q;Cpf23FBNidFU5P#vnQo@2gQ33CQ*4R5vQrGSO;lojTYz9P2hHVh!(1ZC@>2DGv_Yg zQfI|lTp*mg`&iorwGx2MEiElj-`kO}gi2L!D2Wzk)6_JdiPK?MravoRL3NI#F1sGI ziqNK5QW?sfe1glLR4%Bd6V?{XFP$q4@nJ=32w_29EmZ>?U&Rsz-sN;`*@niyjtboo zovb#wh^h@FVz=l}ySqnUW6(*oIbCC$ z%oT3`56_=7HC^|;p{t_|-!=MiSuO+IA6z>Y<*3LA; z{t%GM5i&J24SR%H<~5Cgw+6@iT3L#hl~{Y4UYDtMV&M(4p>baMx{@(cS4mjQs63uw&1oqyNqwI%Ep%bnK z!Ni|HXF|v%^i3y9=WvY+9yKq^lx-*|b54fsqPC_H<8hun6T~5<-B~(z3G;l4my>Q9 zep6>&lqpxWRp$_NSKW>%6wcC&sBoiO4@U%3NJiIO2KISgNGLKeJClY!Gl$~?~ zp&zb{>nUNQ`47{x1&_8nzYsLtFMQ!vtFvLB-<<{aNE>pQ*oR<6?3C{9;0X=I;1g)| z?1q$*w9o7xfgb~W!$$Jy=>eO~o6AcxX(LC@dYEuUCr4es?ZLwDJ0#z>n~DBDU!BOi z+6!g_@o}zM=W&fUxEWm!JOvY#*3WGO)}{X__#!>@ofmcIj)9I2P61!#n|!GrORQfD zRyy3#N*8AM42s$xSn@;qVtRZ?2qkFT|Q?LHjiercG z3ZDp|JLxgB5s%3nbhM=8 zqyn0HT)0n9;_BbT6fAvHfQ7E(Gt=%PBPJ$)`ZVwM1fwC8YXh!?U`-Q`x5R_;%oRLi zVsdXls3n`{Y8Ptme+k73JtP#*-n7-`d@Hd#sZwoAQ*}JFTH)W(8;JMlQtAa9o;a!@ z`2M-xK$wDCe12{DS22-m-=si-KsG`e(VFGskt?qwRs&$O0ogezedNn>M4jAs9IN&6 z_26bY9t%Iuf}u~JK9%=FA9LX#P&8sBj>>8eldtks_xwWIP~1gB9UWnno61PGIgsPx zM3spbYR1*KgRcsjst)HOsyZpsSuBjNICFb>z5b5xEdQd}ahO$L$OsFAtQIGm^@PmU z3j`g%MA?;Iap0=&Yb_6s3tcex(EIxOkT0C;nW&TY?QA6mKe!baDIQwE9#M+d)}VbQ z_YD)Sx?n?1&887F-FDVHE=**i6t4sSJ&$%}U_$5$-W6<>Z3!o+=`xq1(JHFm`r{ja&^S1{+yTUeiom8kr z=Zlx=sF-~xA(EK&Zg{19!Mo2S_7YLGTi^JFT}U=NwZ?C-WMiu-1WwGO&X)Q`A_5s0 zkgPgr9ScvHLB9Yrcm-XYal zR(jt~2aHwnu92G*rcG%?87B%)RP>RJ?A=Jxdd&gsxGE&u+dMDK=mT z3?9}_+xA&pZ)f=1Y#aWL*s&F_-yWuidm0dh0$ZYf2iWaz5f1kQE3-&@lL#F=F#c~( zn9ZwFb(1e0zc*R_@v^h#(drzo78^(xwGMoevanf#dx)Af>He8 zV3K?pIubu!GE%UvI(SREdTvhs4Z6+_Zv)qq2*QJNI zCt3wx-eTs@*|5+y<~;*r5%3>?c*WDqRBD)iNwgYV*j4P(-0 z@=}^lKKsPGX+OKpndhgcY!R;#7$WM;y;NEl(KX9?xPfsU&$j9;^UrqL4#`hXi;|5r zUH+rQPV}tHqnni_DAXH19TGhJtorxcbLY;ft#zstUcRGiiQf~4J0=S%;$|F+ZKC-r z^l$9JAQXmb^b7_LQgzw39xg5g)1SVO?8Voa=45kLbWLD_O|GDjZ^m9Y91}au4-CF} ztF;XqbskwOUaMZ)aBZK_PK&Y^EbEL8U&y!hh+O_qk;{LO8Ghi2f+_30n*9dcHr6`} z?%Y{3=5}2#?{MiJ&m8fYL(Iw-vil#C^cBWXZK1Ttga@dHZm3oY3Z0lS=GX91O5H@8<8N1HFPgDl{z)GB*j!mPQMa@YLLku=4EQ zWMcSwfftaNaPxL&)Ahwars2vYIjNc=A|sQLW_{qaHtz;um9(-?1LSG$_*Q=oQa`zO&_{x_@*wPqlsz)BHWu6t4kbr@U z5G|5(Lzq&YcsEAj%Z!eFTrRYJHRQkG8_Hj9x4dx^5}a!O+WqWY{tmEt;NutYH*rM^ zTTNAk+uyZSzh|PgcoD7EGGW9))!tCMeGEh;{?~TpJJl4SV|Fvi2pjHEvw!JFHfsFqThVrz?+F(Uk}OV zOxTLYY>H%}t1JjiR0m9e9f_VHsRIoleGP3sj@_+#UU2K(j z98v|FR&@LPok3L|O0$%EVTH-3!%soB`TYl{^W80wxvT#=yVHaVg?OT<+$+fEjiS|U zg968wLC!ijITN-@|K~h@5|Ui+rV+H+JFZi$Bakx;-!E8i+F2uTrf%h0$&gL;zXT>S z-`Q*neAWUIGDWp0sB!d6kN{pY&Tz?O@^+TzWg`O5Qxw}pqij6J?$@t5R*Z}Uy9^zG z;GbsxI~xn*hg2Ar=I-X|WgkJLC@Lyad_r*q@+m>k+s^|zyZ@!@1j7(Zbt_Vr znJU=O&^-+?J)Zd9EiOSIG3t1SUEzpRYESMNb?Y0Sy{jC_x(ok=1ETqm(IxnM3Un-s zkgB~jcltTbzaNF%Pru={bv~EJLtGrMkCUOS&#dQ!T|Uh=a1q0PVp_WC`rZREtdwFd zcY7NzbI$*qezsiIpBeSD+OM3<-+ozsk&>{=Id^xdX3d36n>B2Vqx-@2dnT-G`BopR zJS`2`F}^^qLop2B2JY?{o{9Nr#qAtq0?g|@e_|f+E`eU<)(8Z)oa5*WXZF3dJ)%B3 z`Nn3zzp3h}uNe3zEZfU-A831&2kmFLigM7&rs*c(0)YR%gmpd^-42l)$qXmpJx|W33bP40hg!@XN*$yNv^-P~LUDs*-Da8$_C@Yh}UZ=cHBOq<~znI`MXirL9Og=&}LLcY1WgM1{79>x4CRWOC zFfBe@I?lu8zaJ&{TA(cTIV?*1K-M>NaLE3wMjhYl*ZOz2`|8dwPLs(Y@-H`9aVfkx zeProPh|-E^d``8}OKDwQ4>S)}K{dbLNQaq23nA#Ntc*--hgU!-o<*;qE$K{5x7igI zzus@XLr{=(Yx|fLGvc~DkyZ6dD!U-k_)4}rqb{E4FUib}6MBS#Y#4;a6&tA9OP=j* zhrs_`<9}o6CKh_`|A3zR%QVGc_GwypO|ZW$&2;^O=V;&PsKZkS2hhRy^cL1uE*5g% zHg7CN6GDc1OOkGS)3H0&rV)XY^z`1?7)oEd1Bf#%4GnDRp`0}`@=Ko-aM#?k;_$VD z6HZ!MPMXpZRPlP@E14MDWk?OH`82>UZea6_7X~OxdN#87negW$8~;)wRR8N$Vtv>j z`J91ui}%)uu^mLdv}gZznbi)4g*`>`7qvAt!|soj{oK0~^O7o#Vu{ICWq~|M(_MGoBXpfDFIZAsFmOIP^G04aj zsaDY?nIj^cRs@?NwN**x&DFfI2-y%r*X5KbK~nZ=6~Sguh`dUcwJxM3Td5B(9fkUR z9ySWJ9hXvO2hzS;hrORJf1i%CB*SoR*)k@PQe+<*Sz#Gh+8Jf9BMU=TdE}G34YTFL zvt0gZY4f+XoHINxnDYEcQckwGaqZZKgi{wyjGhv|L4UW)ac2_P9-l0*9nmB-C*IgK z!3r5#(_~;C5-t;6Bpv=@*HI()5abz6aDaHSPVPkg6Zs-X*!gemZq`^B=hyhXs+rrnCa9 zXxiCLO6pB@vV%W_cC*^XXn*#We!63R(w4AY(b3U?E^q+L*vL5)VoRGDm$b{*E3n-% zkrdx?Z8RU64QN!KE)5Nq{xn@aSQ2i&xYep820mmeJ{hFnXyY8MxBd~qkOSHszLxBJ z@pAT~li`naLl397KWK%JLyJm|iktSDujCZ>vZc-1*=x6F-p;iH)o1&%bmN698r38k zYzwXP*Qoq9DjYUXjQ^TBIE5yv(c_fV@-EtsCi-`t&Uc36p7 zr1g4xt~&i)Vzo_6so5m*Ptt5)_E4tq_^bz)e`0F3QiA1%%V27|U$`JxPxGuO%3S*? zz31Y+)-RGFA`MdNC7BbncNp}RpIBIM_WOD-X+T5oDkg0dcjxIj*iRmv^Qo%v^USeEB?q5X4=}(qq>e;3$F?pu9Tk z-Q&-FCf(vB8v5=8gJviCv<})YQEil%gELjcC*OJ|%vvb`y(Xca-?Xm3rd^*@6lv zTq5&jWu?rjbiP_EC_OITv3>ZPz!&;q;7>mcq*(mQ?Y>QTXyEjThH=2hASOON)0>vf z2i(zKu#}2-ja7O*)d@k35w^2HlAU4{y5C&rAD)a!IMg*_KIADujZzj3rhnb9gY z%vZ`Z)qiZ+O5WVUjZ-RzYQ~-as}Nk9A3hO$gBQu3)iagR^L1hjJP_CPaPRc?P+5;! zt79{qx$^|>F3S_DVj*}ZhDi6bv)fQr8}?<0hPRq#Xz3dnjeGULJej|`HU}=TzkWHU zYApYAQ#Ga6t(*FB+oJfIS-zg3k&z3@{=Ls0dyw|E?9 zWe)E0W}mvLh3LF2L>VOxjsSJhNu`!H&g`A3b6p zGCW!HgzB*za*3%vt#}(E^k9W>GA(GaO7C7B()%-%3lFREk!|U;f>uiFy<79%_F-x^ zK05m27B0%H_UfRu0*qTMa<~49>-^oL*7CGrw0G>`>vXfh5BYdsUfpN%J1EQMa0%a`X5%dSo~!yeF1*CZWg?)NuO>4s0L?jpgJ zl6!&Gqx%M_&m^p4SMAmQ@2x3fT*|}*A(^B@k8tsDqhB%O4~cb6u5)s7rQ_YeH+EXg zKdwAnF#WuUh+(!_-`1EX5N(~mEvM$7i*IanbcxqA01U>4)Imos^8C}E>eTXzU zjqlgebcW4jq&9f7&6Z@?+rW!x9^l_tof?ydO~q7vgD?*cIYF<2xE8RX}Dx+(7YO z6eC1WJ2BYzWV&m3?tgWX(9f+JQh^oK({!(7tV(w|N2EMnvEKFyF zP%v5u#q%lo-BTU1WoQ+Zw>a{{QqYSw5@GqW<>IoX9->$FcCS2)<;AvXJf%7N@m&)x zQX#Ev&E)ywfTu=^zT_QpQc=n8x-2n1@H{7!j5Qi_DKx1jH!z`eEm;60-y=^mn0#AMixT{nes$izq<8XdX<%|ihc<)JG?GX6vW&NpFntlejCD1LY+ z!}K@?Qtwp{sfDN;7wl(0I}B4kw6oy#E}qJCTp&j&$%UPFfn?ZOyi0 zH4ZI%VxYxc;fN1_J+r1zJA2 z@di4zbuul1pU*gk_Z=FvuC6KoFGu&O1d<5lU!Bz~eoo| zo}3Ab>OAg;i$5C&KdOpKb_0;ZBeB$vx7p+xb>mx*tB?NEFF{>7kvAR+%JWBZw2GR# zNmmNH2#$Vpl8PHxEStWEH8A0jbBTkq&2`XarVwVLj~~4}_e>RJuk6)F+mY>{S#{}q z150BjkYDdq#EHr6d$f^8bkRaml08xT zX($;FQ31KNVf*}uC)b~ky%P6P;B0s(Yt(e8>`1{nqoDQ6cZolhU_<|#CwH~KiS-$q zz=MP|>58Zusp2ybh^}2^Lm4tE1eGS2{L=#qh(fa8EE`#(^ndo z$i|!weMdiD_NcnOVq%*mH+vrrOu(7VBXM-3@xlXDZL^&VURmeErH331BGp>&`AQIE z%2#|dfI+Rv>7Ri+!=Lc5-hYbmi~3Ky8&~;qI2smuY`v_WdME-Q0QLN(Xd{lWFPaEk zt`ZWwS(ygKj#Hxq{Mr-#vLrg#vqwVZMEIxjjv$;VoL=9=Ul?-^3{SZZ(yPpoy*E~< z78`_|x1D{!SX3MC*VT99fora;ocEdhH77~vqaKx6^4G$KVT`z$PuvT1&qo!GrVjZ# z^22-1vb~!zBZRtYdf|#ET3LUHio&q!A5g0jdCUwPIhCHe3|W<5TC1&4O%pvV%oCkl zHJQ9IEBsgLeYM!{4Gqc%vex^5=$mX9 z6VO566L|EGFUQw+;a#GQ&xEd$YVy$7<2oCz1%*40n*p$Du9zLHP(60+9A*|3>L$F} zoiWM6c2MmWP-pC;u{N!8jcwWARn4wF6@1w{wricuJG3k$JNQbR7loUuLH~tyWz=MO z&ljgd1%pb8 ztk)vkoL*PzjO*Fg<+-M;PEV7PkSLrH|MJ&Kkx)UBtx7VtIBnl#-C;*_8C9r!%n`6o zZnpeKwIp_wsLF~x9*m~v5$urw%wU#oM=I31|(=(_aa* z?Wq4+9L9c}32iZWVCTi7I(rZLnJHV0xo+>ab&3ZRE=FCf8T^t(LegM1_i`9tz;`6N zv41>9tv+ITS4HEMEt4iV|K*J$=__SwxwDP7=2&0d&7Qxr6X#Yxez4jrz3rn3U2_Z= zNCa4-Usl9VGJRm$NVI)a`9eW7Ijb;WPI;MJxY7x3QC9iXHo{`671h*~@5o=Ida8lp zX$g7&Vk)_|`f9hDf8^EPFGm%9HaPkHAGxNH>g6}fkwH$E+oIm(A00ssNs>Nh}e^!en>#|ZRj5g~p&63|1i~8k&320E8S2gd9}SwaF={xUNepX*Y3w|H~-r*a*xa5FtALG;);^FC5O=IheQe=v3ioHZ{W6O;XB z6$`-q#fc}$&$q_!9w>0P%oi!}viSAY%(EFF(mo#pwy-P<70(9Ow&pi{DtrE zJye%tklrR<2FC8gwUpk? z9UXLALeEKOfCIHzcRh9+!E1M0xQ^cc@a>$2d9r*M39T$st`}{pzQu7|W1xJ83DJRn z%NEc9=s}8sQW|M@st9=O|1)S)Sd3yAW-AZ%3&6DWxoB0M`5^*+3l%wV`2(K8?l_|$ z{$7~vd?$Z^S->rC3%ech0_WofKs~Y)J>@fF84a%?Mzi~o0sVqy0ktMi*t$QnC_NSM zv3G>FSyAzqtN0vv9hx2t>E70ISH*OCRTPdnI>$N>T}pCc>@Ka z;aWJfwr6sI6*FbVQr2NA>M4Bgr>o4&T%(g~qz@~!dc!#}adzOhhs67y?!paIY;s}u zwbC^+w2na`4zdZd%p2|#6qh>AQ~}$=qjBW1^sOVyeDW`NZV*keYF|Pr{oLDR2rH+Q z)_1c!fXjZJApo({rj5m$bi=V1nD?{S(@^N9rD5#o#@6IP2t9X3A4vjel57UU~I;VAsktF`$!M-|CixNATV>szq_5<(181*^6+-$^Rm5NTlXvn7*97dp0L zhV4qL$Qp4u--tcvSvl|bIY={Mgh!>+8Pe72pc3O6P{JgK3=u+tt@nY1r2 z->UvE`zLg53@!h>?BBa~%cwMdf=euvY@cr=gx8#@kv zlQSx#XEBc4Dr(psoty|ybn-G2W=?U#qE zXQr#$-uMXeDYdk_#+{}W^h!EZ39}s}{*^&xSH(-QYC377of=ly)s zn|0nw{7m6Jw;HzS4tIpvn7uELIbhigwSQb=^y0@JmX~{!_sFX~6nhz66k=r9&Qr6j zb6*V}zz)@)!p38Qyer5+5|p_ux)`liFzuf(S4vX9*WMzorLBFov#5Edhq%~Rt2s}+ zM<1{qnoAf3ln(h|%#5LM9Ye#eqDDafOSvUOe-$||mEOMTaPrvR!R`wG=ktm;)H`Nq z(VPs?meCcJ$@1=%@J{@^;qx!drSydK-hq0RdG9=GG=-&VguoXEr|*BLTHDaM*XY7^HGmh<{h%BF+zF2a zQx(yrTAFPiXi6!b(GK5=*JW9Lb$ngemGh9a^X;P>lY1ro&fOb{MmgqXqNK=s3_^Pu zL|oxM$G`Q%wIHAa^Y0SnumExTJAt_q9$9Zs!GqE9@v_ixoTwnK0FPDrnp;s5lX?E{ ze}54*zO84oe4xGa{W1f_%{|dg*%i!k`PIn7X$bzr?m6erNY$<|Y%h&i1~_$KY+I-- zfQ=b=_ttJZPpN-`tX051g@OAKdmxXjCllSRRC#n`WU<@hxPJGQ>x?Fj_OWb9D?X%0 zLXxrB8|i|0Nr#R4JTx-62hF7pXG6}P|FN*{ub#+mUPWrVpA{IXEi;h~MO zzVWkLN?y|^T-M%QZ>7tl-ux{t-jY?tV=qNvM zo_^9*y||LyrakWHog@a1H?Th-ZlE8uZ5i05>vP1*poILfRVose13ddYT}Ousw6(PQ z2L=xRN#?4?V50l%82;B%b}=OYn^q_sB)4rO97c+ZN{B&u4S!<4tu~ zLKfe4hTJDUPX#}wadQwCV|=Wi(u&VT27DBZ4Mk;CKQqtK0^~%k^c$LlYB%)#(t)h; z3ou5DlXA8m{o#SBaKz%~ik%AzR7zd^7E*rDIhwxwcM#EtY3CqVcX`YvTv8z?MvLxJ zL>FlY`Y5%FV&}>2BMmtdRQ(o5K1vdevBVu9krTquu9|b)@Pp1 zol>EUq7RuAuHXK`a7c$|Jy$mFr^{ya)4FH#QM+RjZlkYB*B^ik3bx(E!=Ctv zWGjf1F1hnzSzTV;eg!@y@P37_@wxCtGYv{2vHD%QO5lILvE7mVfc$ zNYilU!-s-9c3@c)ecm;XVnEb+zgE~sR7Hes6I*4lhXqZ1kafdErcoJum~i0o4u++t zFC)SY(cxdFy(iQ|WH5|hpR>@J7HZ6YFRNzob^5ghGII~5HW=L9d_5Tm_mMI5jxO|4 zpcY9u!liTFHLnjTqP|!8l%So_Ww&Cfu_zb_EuRN;ZZSUIF?>3vQJJ#{6^Xh6m zD;~3-z0Y{@>ET1?!c}kmnBLPZ&AT3<*+3{_D>H+7t-~F9PB(gbb&F;nfAD`?00_4t zSUd(Qw(N2Hix)5c{Q1Mu&9Y0+z@W3gigOh`-4MV8jHn9jb#OL1h2>3R+Z?|oVz>l} zpwsVP=3#73)JN&i)}~G zEM3NkIy&+2b-Nym`PA;lk-bkpOpMv%WDW_^VaIaPRS;Df@q#urcCI#iA7l62$UiO%T>->a z%kD+lIHJnzKRgr9a{BOWzT-l06XPNhyMovl+#I3gLW~2M2V>?@%hS@8LImrvZ&!H! z7G^6xSG3qK>P|x&fpwkJ+m1Y)BhSm(01cBk+r1as0v!o!#;gkkgJMka1myN%Kx{Yb zwdM7ElunA3UaH2%bx&As)ti_5HD`HT1*ROsE#p24dfOsDU#mRIQOVvyFG+n_j|UCu zx=TfKp!f3^Ih`XZ4=bui_V!FLyAEI57-n^|{u=5*()t>Yemf9h4U&4CVEwN0ey;VS zoI`%c39Kcmaz;GH&j;vovQ_qDkEs=nx|js&0?v*^Hv)>H?!4G%@5Xj#2Icw1;0$`q z-z?nF)UA$)vdR1viDBbsdlW|+(( zUbpcz3bPHT{LRn;Mkdry5O&+xB0FSb(AYNinoc#cKB$i?oo$f9LEp#~BW>!-yLegP zy~$81JjbQ!^UoZ7xODL~<$S%Qd#in&Nubz+ovY}3AAO~3&Gc!ZNAI?PJPR*_9`pqR z8K~dAlB!((8%rSrG})~mzPa21#MiW(=cjAt?|+ZxvV#4e)$)8-2By8QWrg>W13eQ& zOEQk|F`9X;|GmsXKascd-xV}^cBlo;6LM8{k6YFLswEz0_@*Z%x^iSra0nhzo{ASZ zzS_0#6BDaS5fg$9>J%o$3JGs%bZYzd?IR;2i9I{nwhj(;WSy*t^TQ20s9`c_dfmENtM$8=dOTm}VpYh*q9 z5#hX_{acYr+RH%tqw71^Aysg=tOJW(xwYZ&C2~|BYKw#QxQn`o@F^z|#zz4rTm`m; zG~0QMe5b9g1B=&jJz3|sfRZcR37R{8m=?&*I-R$t1y1f%?wP1MI|Z3f(q8y>rur_Q zQgrgW0v@KPpsQmzak9sP<;Jzk#-%PdHa+HDt;SK6BiJ)R;u(<0s@?wBhD8tVzBg!e zE&XYF7!z0%o3A^l+r7a0a#!@bvi}+wXjfxxX_zl(a+u$OgZ_K8qDrfxhC!HJiuc?} zw(JLoKWR(nRODuto2dqCfU+gvE8bKEH!+m>oN?TY)KxZASM+}Wojris{-;T%6o+?C@sS-7(1N>I20V;K|G?))Sl zVL!P>e#_v~fxUBvZ%k<=GVJq8pU!IS@ev5PGJwc>Z*36=JL=;P(1PQjang=@iMzW2 zgV2YF91i?X!3sheoKBa(ZoAP0u%%mTd{soI0BTLz_jM0s8M6H_qt21z+j_@GE_VaU z$0q4d(11jtm|3sUjersxM=SS9o`dEl2GPw3Ek?7=z*Aij?9j{sR+5~=mnU|#uZQmt z`y&(7n>G`k+W=93rbgr>z~OoM@0xk#7-fs!i;he41vE`>AWlCsQU>B zD~YttD_}fOP&RP#eYGoSdF0xf_%kg*9l6CP zb?eg7P2T{)h5ih#!QVlzKi>l&O)Sy8<#mLFcER*aq;J>4^$sMw-13e z{0IO0Gh<_*@LD}Lz|u`WmO^az0`6AZMS^#iKNx|ab{W5?BBMp=h_F?v8BMLWvlR2| z8v^3WHe$CfX@F1rQU%PZKxu!Fhi~#HAPtlR2<|Z+^}ms>T9TY)?2fGworI`2zT@_HDcu!#fI!~Z;kXe*WS~wx|CD`hZZ7J>hl=Av&}|+&tbuh}9vG`7TdYH83xBNK7~s_U7g^5Sajjlf>4_V%R&}OtKN;+UBgsFgKl$Snuir<$T5dw! z1dJos)6amB#*%cJQ346jDT@xcr-`#Qb2vCTwLUajS`uT$3M{_BWWjdj#5FOLUEM}i zdAVTyAs{FPorx)`X!M(D41Ut1?=G*XSOEueON0{}zmy7%k>R3KIL}b+LdC%<2kEr+ z!~AZZBxgoHz|5VX834omWXr=B>}K0yKo-`y76W_dnQKF2WaRGd?uxhfO8Fcpt8snM z_WuZiciGw57Q;>kL6{Y%Wr%O0TA-${j33VINOhKH0woBW>F-~5jZ;3^m)*4$-@*y? zeD7=S(&pgU&oWtdtq410;~LZAM7{BBFiUg?b=c9ggI zDbjrue#Z&}(HfeXkV-S(x_j0&vD8c%TIo`ae?YVlk-`K6;EJ_Ikhi=oF76HMeP!Y| z9At4it}vd0cvBul?iW^6xShajD@Rk1VpMpyzZq%H%N{b90}j3t5Uo<9kT(1pGWFfd z7f6!KvoJw8zAf#>63Apn3|8&~QP|t5rw5kDA*q>*Al7#X4s!hEcflh`T*P&K8nTM0 z**-QTHh)(daFkX7*X4p3lrpGrwUk)Wr{Pk+t+;M}z%;mjiiKNRMV!hA%dbX<046(~ z#ofTA&`Z0PaIc>D>>ZXH-DKj#!^?MGPBiJRgv?kKa_v!4{+N=V+O2synghG8``dVj+^>=>Fsk zp15Xa3r#d@R{-xhsC$8ThQ#bLM6t1@D3RUih_U0sg&*Zmi-2-wROX##sAT8Gsu0gH z>JbyH78zk=RIY$8@s~ z#sj)x2e@GlKy3Ffl$HeUN&h=FLF+f-d21zPv1KwV@ zAlZ^~ltuOQ^;xAJ!~3So?__O7t+_a*1*FkqJFMW5a&*J6y^h>itf(!fUO4ry~t#>{n@#>nqMomoWzc@8w&q|TF;Mw=K}i` zJpAv7ih!8+(dY~hZQXmpqm_Ca4sRfMx|3M~Iq@yp8JMzz7wmvg_3D{#<(So{N9Eu! z3C7>iF|E}))}S`$>gsxMFshVM#65W>%k#55JZ3_|wRTOMCVmu2KoYNjT!2@86!9Q*b>erzC7U<P8P@XWQ}*6J`fVnx1uHH=XA zddKbO#VG!{8?EaOr}>Z*1I4cPY#-?w!WjIHI(aWII1w#-h;w&s-r~FK`kwq*>LNrO#ry1 zFlb}9YM+5NdBrrb$II6H(%+Sp_1Dy7_z**Z-<87Vqi1&z37))N+G6*wM=UKZVGdy! zleD}JnEv$7;}ou!mX_Z5bp*1W`*Gys%T54nHw~GjcK;I{FICG5W?1(8)KS+}$?TP55G1FYV!|G?cZd-n6Dq*8bq>ZQRvRM5@-sK@K;;7%NhQ$!Av`1IB z54BIk6>Y9fTo?iVk%k7iZ0+ywzsC{+u=kJs&+ut~o3T|_ttzwHo+Uie2J zX5>oVJE@F8ndt(87A+^}-Am1&Sp z9%Sq?!=QILG&q=FdjxtI>g<%cVxV0yF2(~Bn5q5kpKeN>9&x4*YJ`9_6$kpb)mn1` z-DLwykPl#C7O?iDwT@>ijddt)7MIE!*oc>1{oK0%N4N{oRxZ4gT5|L)>!@Z5{2cq2 z-okq42gTWp`y|_5K%Djj1s%8;hwG?U5A>S*6aaI^6x(xL3HalTb zdb%0Z9`xrf21tp_eE>&nkVu#r$-d^D(*3zKRUxL;DKpbNHeL4yUsPmOd7H5{7nOWNc^P+%yT9pM&_weG5n6NZN|p zpWDXGt)jgAQUx!G-gOY1P3<-nN=QGr%Qb|@xr4HoSlrqJts7+}D}cND%;8>hgf37& zuBomDeO6<;M=dWDt{XhOXkDxcdQ9u+NvPjj48f6g|0>2!l)wIGi+x9}6(1-=X%`;f z|3n_t2=?y#YUMBp_4mwH6vJmU2Wevze_Z?W@^aUw4c(TX=Bo}uQMI=zgEXG*52+5& z<#UujxC1QI7zJbUvDns`4o$u^KzmPf40#wBT#afCcA$!feaA6TTfDKczq;k7mc>ya znxni5BIqsJ#wHhqb%nC@`-3hB`EYRG z5FwZ~kG&q4(i)=&fq%^fO(DI#pOiswRyqP#*k)Wb_0U(9qH*R)Uzi(IDjFZO#oG4{ zk3b1#pueA4o~G#UoJn0sQIf{O_P!R_NWjnBBNOR73nK;eHZgrxj%%N{NF8N4Cm*{> z;NJs<-jy5G48)*OY+k&mFOjEDoteoR$bGc>pbmEr-1%S&KJ3K1B7xq21x|*`%a-or zZctoO23hr(Jui+Goxc;+TK>>|TbetDoiZp!p(${t+B8Zn3#JPU>efU-o*D+?mmIed z#wb-IS*1lZjC=x@I*0}ozO$*_wn^+$hb)FK>vBYK4*jAZurjLAtx=sv$Mos2Q`+N2 zP22=Mhan3chcNIS*&!dW(l&^};djpMGlHNK7+HG!{L>>r5s}TV@ZeyQeO%NBkj;g+ z5}$Zr)d^VynDX^hyPjFHD*VY8AlzE?AW=!JXkcJ~vvx7t@n$wr=R}F$Cwmh+VGC<( zU58LoQ5o)-HgIy7agVF*-)Kwt;VLvFZ{qj1@jr_7C88=UQ7vTD5` z^(K|QSd$9AN7enZnkq`^ZbfwE7Jn2YVPJ~ObHik1n+XZ|a2ZkjZ$A!aoJ;iT1Ok@( zS+3_|dvZ3NvA2wJ@K$JY22CR{5b?j=;~$%T#@7ba4#U#@LxjX_j@-V-;JgnMDH;>-qCmNUi1sOMfrVpYpi>Foan?OwKTE47~9s%51NO$w50wT7~0g zo>^>cdP^aD;4`MMGN7%3+GhX?Ph@8?D^D}0AJlDF=*iSE#fER5C($bo9|}h={csUtbgFSmol=fv-!7}KBwQ$!Ie{s z$QYEjCgE*I$H$#q<VLi|EfPO~OPvz#BbNVH0Pb=7-u2uKn)Kn=klRtm{oMQsaPCcfYNaVvubz$86 ze)xN(jImO#xb}6eHD5rdR#xA8)mm$N(VH7k`!mb;v!qLNVux1W{?I(IHZp1ixD6=S z^^m}3nbAyu4&uqn$8Y=C<0a6xZLZxT145Fc=dWKXC_)$}Vh;Qx(9TYAHcalj(YHLl z3m`bJ5n(PP`XPk{Ihuu2yXQX(i(97!7*^s*_IC0@>%lW^a>_MxT26780i5Z58G!;R z#dJPc=C#)>4c?v)fFRfXAWExnZk1P+`fXP$0=`XM2#R{v~^xUO>)#)SlZ}TpC&dvko?yQl8RxJCG z29b?GfaB+{4*pJJE!(-oqkld7tq=GBgu49$Nrj@;k!RY|{obK_5ma?E5RG8~ys?Ui z5nX0-13ZI498M?C`G~RoMeCF^U2lV@0s+$89vL6U#G65$ObUAOk%0ysE~(vRETsb- zw{zi~)V-wh_s37MamdN|vwIhSd$+aaNLuOm>k{=I6@NQNRI6mQ^|HAYlRxME^pac~ zQf)mW%WXGNcSgsI-ZiH$@e}29mT?`5>z>TSjQuZcdo%2_VTf9FmU`_p%z zKb$PPra=OpJ6wyYe3U^sq%f!qM`yEWCDn%xl8$Ac#@{>7GmF{Tp5jO>PEOV}G{>QQ z-qCoY+uNj5Rkl?I`nQY1nS*I4Y8cbeZGx9&&$pcvv*FCrDx<4I71Zmy9?8mbq=OR% z+IWj~pDkf{AZ`095d^#8a30J=yZl~C>hVw`|z)$1Pb4ZJ6+6VcGp+Awm0 z=rA@sYZHD;Kew$_`$GUORf>`cYw?J}(TBrjMDYE!BAF9O{=)Twq zQQ5L`%U5R~?oFDz*)e!KZ>U1Asr(xhUUXB#qN`n0;D0c(JUq1!*FGyp2coWjA5f_e zjgFIlrNdi+f;+W4y2IZ1rzRf8!0n9`1E5II2AJy5){O7iT5_tB&{w_E76Y?N-jJe0 z<4%l@2o+S92j%XKz?2l0m0E%Ev9VheXS4IBOn)}U*V z)=QkF+Nrgjp$XG;vyfin&ensgX&@b&!g5uc2dbEDg6uG!Iculq@7@+O<2}cE+WLe_ zsr+*EG%}h&i0-*)(bl~YOCuxc4@OZBmaz3Qa{t+J|3Fv6W(LAx8H+1EO2XXQ`XPn1 z?yyddnvn**V@I1*#;Fi*^Awhl_bp37nYdWPqvy#Z(7 z_;o{>RG7d8^WcRCJX}}8I`IQTIJ zXyG;a2sK*j`yI<$ZcvjyoWk*ncww>ce4Os;9EG+KR&GAK|lP^Z1`Udp}Fd?xZ7VY8w6(xXc}azcWWWgA19 zy1Gz{N$&2$+0eTHP6knm_6o+bb|Z)LCFgX2xwQ2Q{PFP}P~rHY^1BJChDLqMjdyfl5hw_w(No5DvB z15M+x8qYW~N>si*@wnx=!HK_RxTa*>exg5S>_Q6u@^t&Uk1r>yaFPB&SoQ z_I|;)+>vD=HFpq9pFRIOsK0z_;+*>3H5ZThG)L_@iMw)#djqwA-jptgqN1&9LbJ~J zN--6bmoL;@f!%I+8>vJLY5g8dom3))?42cFzB~cq$)!7}BJf~0(n!a4B*{GBv;Zsy z!Ygn40~#%MO0YMZb=43!Sy@nAxo?xxtFqCvh8p&0+~`<2{#MT`gMs=#0d0 zx5$M9>1V=Z>PRg^>h%wAj{x=eS%G@BPHAloB+wL#+F5;nZ7X0&3}m)D-if-7-e*a4 zZ2)M%prX_uap&`2VfpJ3A)jofsqI%EG#Izujv2n+es2GZwpH8yz?$&&?Wo>sP)|R}-`V>np?~zL+nWwAhNIDn-DfX&wx#|a`lmVZ9UKP6!xyrZ; z4#CT3WqaR1sr>&E6jbzs??CjN>__AdVT<;25wo6VOas5F?(Q)5)(f#5pIGjb8D~S0 zyUS+=RZ7S7+u79c{|h#{#%Nv|I!7|Vs@T6yneM?} zY`k_rgFUoOA_tY!gtPBOGM6Cz%eyQ9_|?GY1Y9z=y1*N;EpNGz^v^`>e_QY>_5@x6 zgMst-zkw{C{tPA29IKpZ7RyL@!Ll;ltSF(Nq_lL-;C(({vEB9aEgLE=4nozXrTh`N zn&mx(?EA$Hg0K^z?%t2=vpO%mHa~AVduayeiaf}Z@eo^&Xt9*e%EEp_%gzYq@<%Eww?p7Igy7GB_cD4z?vboSMVK!!0c>zplU6+?|Du)|;m+LN6{P zv@Ti+?h?;q?;OTR+dl@{2A^V3^Hj~>_D>dfvX&}p%X_XYhe5q}|I_uZ&-&m7GT_KC zSEGr44+K}z7TWFEX@WJAmxYCed#f^-!hX!o&NA<9D^Lr&9eItPx|ggBKL$lzk0sc8 zL{uie*tKzSaRK*Ip$mipz%8c{Xjh>8{;a^Q+KN*W>xItOb1Mp~}zYn$@GRw_|+-9K>R(IkIWLi3vL5!v?0CPKD=!eL}kC3OSQ;ti) ztEG3l1QH+E>CN8K9_*NzqwzVl3HP9JYE6pi-W*=tX!KE8ETb|cllolXX&0N`ZhNok z_Te-CnWe4#(5GiwqXyJwhdVkt(wa-8nZjTZRaMW}He7nHKIyQ69X{|e!F5=URPnet|4E`m1=#Y+7X*5cCAjLgL}Qr-|#UXY0)X>fstECom7qc3S7 zw=W+drYtAy)`8p@UYbaw-RWsVxHshDeA(kL20C#~)JM?X#f3VwIR>OGp0b`JuFe`+ zh6!5aU;$&ZXXWVh&lhIg;|mN@Dyn*&26@AGIlaREsf8seW6ZaYTeGJncSl zMBew;2TlDm%M8DbNQgE)>wV;yAF)P)IAIwtvb=Rv-KI}e-ow712ABi1qad>jXZG*? z|I6=-UH+?t-+&MBup5OBxj9&FgYk^L{l@Qx*DynJTk&!4SMy?_5uZkI1k7A)X_5c( zBo-|P>V3mQL!j3mo_0pDx=1Qj1w{5Rm_KV}bD}OIHe#%1iVyjS4Xmxf$7;9c80Kv~ z#H>#hKNM;dcqB!HtTBmal9Tzh78@{XJ5xhCYKT7m^+39OZ*f+rt)z67MO zc(jB(02BtMot>OSNOMFkgf{2=zWta!A3F|e&xss17?8dJtB4~ru_P1KJ0}kgWF@Vh zFZZBP8IHKxB4Xr7BGt&gC5fC@zbNqq1 zltm@@+#2l};x{{lzN$K9ty@`1$_`mzvWJt8KCS#M0TxRSqNjr3u>8aZzn*i)wO=O> zh!N3#{i-0fVN2oNX^+w0ui|T~axygsFwoVEB>0*;SMxh<#-aI&Y&6m5vpCBef`g`!N50Ra@(>uZboJU`F1`YR5t?p71GB)F$o<5gi zkE3_*b7pMk+$9!VM&;Sbkyq0D63ohTSxasx&EIs5Utj%M+7hJBBY(%4muE<#o$uvb zoJ&BeORL^ckd0$~!QABI>05-pT*-4S3QF+2++^ssbBbH4$YlvkH?vv^;eou93}1zU z%Jmu|lYolmWh15ws#zPaMMqR+_6tQ}Q_J?9Mz>y0F zZ~2zCIiBmhiyOMv&tCjpkSA|@$b#3iZjY}=h%+m)KQ93qQrioXkcEP6xf7GxzGCm! z>v;&?GJ9=AGeV*lkLTfcLbFh4#XR?o?|YIp6ZK@AwaihTK>yLG^4)UB%Q{{&>KS^G zp0fkT(}TkEe>)0^4`+q148bC=9DPpi&%rg?sc*|+OB|pb zwtpD}i05V_TW6BXfVRBlHnt&Va_z^Lp=5ifJjEYr+v18L5AzwtW9QMRXmMyp)WWjN zs{;l1uKuo@=-(+-_T-)QJqwqSp)S9mVY7l@BBG!0Os#S)8GQg;g}FfKPE?&7=#N65zU@31)j|h}hutJ^ zAdAFhT+&3(zyJuf1R|j$w{yo7C90>?FoZ|y?EN(VhU<iw? zqIN=HDOhNNjf*rGmM#QH9gO|HhV6(0^kBs_+}U~##$+t5tTfPrkM76Pini_sLgPcY^6ci}6XV(@^v zReQleN3t{g6$04}P>to0{gz4n-RdQg41Egwarf%+rY8T|_ENjwK<6x5yfFRi zFXKju3u+#%X9c!2$&dA~DZOenN%Cw8JVJgC7azymuYYUsOD}-T5nm~2q&;_99%4hj zhs%8BhXUUxzAM%75eNig<1*ITE` zebvb2+?jP2u`uc1j*RlY7f^00F_N z0H}9D$1d^SDUcIQ_eg=E0BCC@2NHwBZt~LH#RMW^TUtEHbv}t{#5r(pPe>H|=^syV z=Z@LB8h}sl4_-y>fnuC>MBxYZl>oE7opax?NQ13Zn+#t~{y#a0H_w|z-Z7iOfSdV^ z@XoohDn%6v>l||F?&dNl6$()cM-Pv`2A6$Yx4;I0H%`&F4c-e1%E6m~cKaC1it~g~ zE+SswEnL%rG@I`7ciiWQ($duh`vo{;Z=d!Qa;pXq&tByHMFudT=dhMzrxZR;v??93 zxC6?b|LjMat@ZN;VD?9huld%WVJazh%B3y0xlYGWX{8J=!8<7ef!{K zzt(+oi^-K8bXAg0;+0mZqDy|lx?48-xpcu73fMlBUI<`M`=H&)s~DklvKf-$9P#@1 zlA-JM-LgSEj@@j#+5Q30eBZOU>IO)xvU&a|GzSnR2PH?q0UmsofdCJR@VdeA@7AV< zIWxzl;C9NSo_}-pSvdIkZqdnd$9%OOTX690x+6qY29JrPbwKmfdlG$H8=H5XbDp$6 zvAyatbg`!6<12+JVD0$EEEbfPQo!sDIN}Ax#nM>YMbvgkXeeAG0G*eDWr+MB<9)00 z-({v;$))?PmZSFI(<82j^;~Zc4?V3%0#oK6Tm}d6*Mhl+Ub?EPx-_V^QeaIglD+ai zX!cG^!s4-aT|AF==YVAqUh2qz)Amj@S9`!w$gl)bB*3yQFGILJY_uyE@fxf!P+O0; zeXHobx4A%c>;d#b4) zSUd2_tj=L^FUjop7>Q)Ephg(h-rnBcKNOQjp3zB-+6i$10T_J?ZhSV4#WCQ7N+uf! zA-jODZ(?%e$MRE(#u0yLGewSmkiFs4~yJV{8#rM>MJPf%Mo7%+6K)Mg0f_N><7{I#5fyYDB} zEd!*Azt*I3tU?Jy=$4vHGTUXsARtFVe-4J_kk4D^3dIlwNN^tJ1e(SAN$3Oa+8zfi zv86CPl#PsPU(tIEv~tfPCtjViWcf1S57^g6aGBF9^?%|GeZ0#%JA)1WYc3)QN}&@d zYun{Q_E2wAy?djuEfM%^xwrKMH2?Mop+c>UrB?cM6?lgNgXBIxhk(1;IO&&XZXAhBt8E< zR+2zEfETPBoa>S8yhnlG0#hK-*&xE)EdWqepo6u=a`-)so^f|WDG0onv zcO)m5gkEVB{LKoXju7lu{;awDySys6SEZQ~;yMp^IzUQhEEC+;#MLR)S-=VF2oc{% zI*9~a;PVDe&qB^1S=?yu=C=>P0q3=JKL9%>;sJGQC_4oiNMSg%hL^TL*`+I}Ks_7H zvG0`&{_^xIw3srCPnt295sVwyRVCm(x(kn3yjkp_m-qZFkZ8X1>KoMN2&qFCSw^2! zXoec`z|6s|Fgc2|r!+pu?&aP`s!`~t!)BD#{NQr100q&j*c29DMnshZI*CVDuqrzW zvBl|AK%0aIDuw0O<&*2SpS|qBBEibuz^1AiX*48h;g+oYMh2u*-NYP{mH*{O&Uv`% z=_7|shWO#lL+rzV`UWQKuKSGV>)Hf4zJ6R18j1>PyUi_38FWiR9wh${rJIS3WZR8< z>7B#_0EL7r?lYg$1#kvpf}QMUn1OkT!J+NAv?Gyp20^{F?J{IHvkwK4OV3@xcsrwA z2?=At^xE2UNei8ee9+0Jg}VCs7hB^lB8hU$aF-AF*?V~%wfPk{U;}EI0pDcDfCQBv z4J1T@H>Sv;LPiD;EKs}pa8xLEC(oT+?#2t)x#1Amal1Of0*#Njfo8_6I$kLQC`@=YudV>Sgi>AiWj<*YDV1sRlQ;d{ zV_tj&azMdKcoM8}?T{F6SUM{-eD}3)JD`D`v?Z z3w%pzjdlkw8V8{un*!GlwA2;KS~+TDJx!8VD1(f+0m|X|H3&IFxmMpbWOd-|J*E$k zijE0T77!8w0ff?dZ0`22?!I;Dhi~hpUO>_bXWqj{<(m>WK$P_MPD;cs#$DJ^&p$q4 z1@dMW@LB^s2}PYQBDblA|Wt zTugQL6lnlvDy;!8=r0&gb0Whb2m}kSyJcTBbKuS>Wi0SBru8grDnlcPaDb?ab4qt#7wS132`Ca70!`Wt0t#D|2Ua?oF z0>~^MUKfJ+agdWsVq7S?+LL``bsK`%75ScP8VLQlBDb{=_6x)?!S{B5z{O@969K8z z!$(jL(3gZ84UPQvIkmmFln003@%~IFCH7bNd^9W8L{2{~pMQnk+IDVkKM5kKxwn%` zv9`Cvy3R?Hf1@#C3-64YX9Y``eK^cL@&<^c_e~lLtRyc@l)W;*iEB3|OSE&ytp(Bv z4+e)vp;3y3mX6L7Ox~_KVzrrZjjXLh5lh4%kaSa_fTqnIzibTPeVuds{QRLIA&D>( z@~4rgfs0r1F@-b@+0mPah^(HEUZ6~>No}cCZ4+Byidn2aHE==%1O)|!goZ~)*};?h ziFuDnmsKfTHK=Z1q&+zXP_NFx4oU)lgwSSD-b&4!#9IW5;CIU-Y7s|%WXNyg3Wv^#^~Q5hO-i_lU)(&k<{?&FRAlequnFs; z4dQ;q&xYulA%}sVD3)TB4Oc5Bxw8Jfn6nTll;Zn9 zI$7G9EoKF#c!E;%ky|;s23lGOJc<<35+m5t0j}YDv4P5b zg;+;SqF;&o1MO{Ee>lZN+736!2E05x6nu!dLcpvG@NRJL%EW#OlteO!UR64W*5H2Y z5VQX9@FtZ8M-=EG0SfShb?WIgpO{tPzypw_8w%ak@)j!SPo)@8majr9&@<|uT!K?W z!5TcTK*bMs8IQp#u+f2`O` z9`GG#Zm%tkG%!wGD$S8Hsofr8;)^OG{G@d;h|Ml|?a*%_p9h7i--dxp=j#s!& zSM<^|3NpoIi(<{>AI~~S26cf=3k6@|g%Nk85{h$O!AL=AJK{XCv<0M?CekJNfs+Xb zovC4%{aoCtIF!!vnL-PKyy}66jnF`xI=k^iZntSZrh%4=cxq?IWnScOZ4E9CxVLWt z!qd%ze0(l@U_Vsky2nZ4qwc;@FH&2bsGR`DySd|?xG}`1Ua;E{Fu^_UO5_l&8-0+` z+h?xY`xOg&&t0jUWkQ15bG8JftjwQ||5vy|DICN^9iITA5Mm{8}+%G)S42oy>cD(T4{VW;{Zc3u3?4)U4FtV5m4Ve=`fvFQq&t zigl}Ap)Lf)e~yKZK|r5@P6&)7SX)@MIm_7F)*ZR!4O9wGUU^$Nu%xlQ14_>7xeP$s z8;rFfT9Kd#f}8HGk*KPBbov3=mw=A*n~E zZ4qqiITlalfFy=8wE2c6q)R6a5JQa+nN$Zb9uJ90*I=Qr0>L~tx5ZWsXj-#<0*7Yv z;-CMpqXy&9xj+PcitR>#{lw`fA}R{f1mN%u^$2p`pd|f$p>~n#E2hmhV7}PwPD>vA zEpNAvp5yOLelv3@&~am2g#zYI1B}0IO(|{r>yRx_qK=oV2AOyR+9==xzfN)|e9*{4 zW&^76+g_OR!ejTk(Opp#I1Kc0F{CHhk{g@)Plmo zXEP2!0uLI7dKV1ZVRVf1%s(i+fD*Dox*UyJiY^hk5@Nfo-@*t_KGaVk$G{*5Z!`Ew zu&2uCEjJ|{vnn03u(GfKMvRtq;_62X4-BuxCf|H)4N%bY^BPOWLqo1(5`HmVo-^fzI|2fp`|Q2wSX?&^F{3`PYk17J?y zYIhB4i!pqkR1dM^RzNGE6Zih4RLAfCFIXc?r1T)4U1b)E;bqM3V?j~TKF0)>Hb2$8 z0dNoI{E2HtqP|wvV#poQLM)vN^guSMvfc$WJxdilCkDYl0n1Sn-k;bYSvrRIgFRVQBj>xubz*{vaxlpk;?TeNb$;>i4{N={y$ z?xw;#F@E_P0#;x=VkDC9){}X}rXP;f9$u!yA{tQ-n92XtLHk&r8X7 z{vk6tLIO3rN0!pf;zs~%um&zE6{K>@O#)Cjqs(ecoNBW1xeIFjyN-7YOD zd7`RH;dgHp`5vSfG=GMnGWzbcv@sF$s-(5B3aAN-YS^;lbEeyju&9D1%-I(G%p;iX zL=@M8bPptYdGC?UW5@AOWD245qF`D~d135Dxe5!#-v@Hw1f-cm#1^AKPfxEyPH9oV z-6bk(oR^n3f>-9rYc62T9pmwD@`dRB4!Pu&g%1IV@2|R}EBi{6A)x>e8#ZfU7@{-czQn(6mN$^<5CS+6%-X`tv-@t*x0z?8PW@LKwIIVHg_8;Zq{xTluYyuo zFc@;mmy^OmLWoLuBd;EEk<{|fCJziLky1^3Usrno2ADK8VGzM&;<1*NiW#a77c30I z)4XcMXTL<~> z(q^$H$6Q!m?rLY3vIMRFg!Ka73vGaI|$XBnD;O*MV$AX;_< zSxo*IWe;@kG#Jz>vTbYr{wM#NFCfjYI$VGVeRkp8n`Z?(aG-`24%4L~Fbg0_>w>`0 zHsluEd{#8H`Qf(c1vpc-+&t|DMyh@qasw$l;pi-meS>D~GjgKKz^DYQWyD%x8h82O;SVNbivJ2QhHZ+Aen?&GFj}CSr-lUtc_B!X5{I!e&2?&3;|-Me5X(C%Qy;F zH*MJ%=v2b>v79{_A~L>~pu`qvXJ-f3eJMby$*i%zUk%uWJoir$C)B_5kd-qua5d3} zJ_Av~|8f(M=!M)QgA2Sz6|K+Q-1Rv6IV*U&5WTXw3EL8~Ih!ze)WHE82K@Z6YkU_a z>U~tzXMXYQDItRB8-Ov*TkIW*1uPSFoF&4D?%jz|5OeugmzRyP?RnQ(ItTp2RAWDW z=v@UB-9PKp76%NABGVw*8N1!JspgtjkDE^$+tWOz3TlK-05q;WMP>}S%i(U{ zmNxrF-41C)(IW6pbw5->KK2>h+BAvqr@9;uA%id_IG_uhbU!-S1=&1=o|W`p^8__1 ztg70(0MQjwHHF;{W~Yja{vmxWA4WN5@^I!${EO&2S?uRUp$?2OK6Cm0~mnPV`RlGGtVaj;a*Wy}S$h zC;zOipZ~M?H#yZlNJ9hsGfu;}$KGKL44kkpRjjOD0Y}Z!ks%AGUnEe6GcSbm1N}l} zdqGf`zU~@q=ZS;%3E0L-OxPIY^HD{03#1n>jp4S%0L6qg5-|SGB(=)1JH#)|Dx!cf z36&?IW>!Ce$EZGcO!mMMJY*32H)J{Z0Y`{YxE`Z0YgcYt=+7B;X>fde#X$)06?5Iv z5yw%c4OxSd8DPm`fB$UauPUwl=_G*-Qna+3GX7O*bg>)Y1%vhV z=*F0q4j`#Jt~v|RWjR15_cJGZQNwv&;8eV6V@KTl<5H2yS@~xL_viL!O!%7+GOu$GKJmO^dXNj@D-FFJ+<&(UR zT$7bQKJ?kW8kpjVu7rM2O4msKBP*DG*0=`qQF#MJN05U;yKzH0R-QOFQqcobD{0%L z=5(;Bb;=q7z^*Dmhug+Mqs(w&>IT1rbKTx*@;)y__OTLytTqiC=tT}KQp^zvWX+vP z5DqV5&^qGK_XRwod}5W9E>kn-kr)2x##|?#B8WU(ISH_kOM-`PV2bJS;3&|=*yPE3 zv0c4aa!g^Mtozdv1n=l+;QVJN^kr{NVd>d8Sobx zx`XrhCj)qi;ziJV(D+ckr0*<7EgJn}J@Lk7I)C;fu5_489ef_z(dbbWDh+fr_RId0 z`!Fa~vt7NqHgMtOqoHc$!oL<5&sdtQxs0CWPvb|v{7Qu>tm`zAAxx~u)K2JXYlF?s z2cy0JMtFO-x%p(}z|s0Qk4ESEZdLA*m=ePlWuy*kBu6ZzfcXftP52Zyx=y34D9-wU z(L@)oVkS02LHSCm_VG`6M4ZE!jfBZn9)ov6K3xk=l@2thSMMPt*NddEkiQ6?+(#7S zpB2dcmkOe&lMuka-d=5gcsMq92?;rnk$}?-NL@m9=tK{!Hqg|^HsatIU4WuWA6VA! zWg(>rgNd6xN9E2nmJkvcgoOPkL;?UUP^>Wkd#x@ntK7n_1sPcUQn&yC5G2C@5YHGr zf&imCJNsW5DA}x$o$CK%d*2iATv|FGci0ow#~ACIC!Gz#Hz#`{sNAEDHb^EF!+9Pe z9#I)CVVH4|nY9IUGD&e5cPOMG*QGNz1`Z1|`6fLsh|w_|&dYijpTriFo&w0olLt&q z8IV>EjgJ0u6ira-J>gj>z)s+`gkBJNz*{$CK&Vgnu1LxQ&wLp$xDLNNNvn9oBxbM# zzRm&i7$c!1X9&#z5NFI{=|j%dRRevq64Yah)6IUJJmQFfymig)b#0tBu);EDXawys z-LojdAhj$b>zlUAD6+FKfE2f|!$iglp>qMMnuQZs5`~&lR#hc~NmcPhu}5Ei0W*F_ ziVl{y&I3kADsth$Qt2$5KxX3_w4?y*LSBR>2P(x!TL; z{EA>oTIDI()~7>M?h_UY1SMWPDb0;n{{KnD=Cex~ECWLMT{kiNp8G*STLI=-x9Q*r zFka?4P=o^V;lLPsJ*>_eNgjZ&{n}^$nNO#}$p=8a1-k*Lnp~o1U<&!mk{dF7jC^ZW z2fMoV_Pq@Oxw*OFgD0rJ&jKTi;)6=TJu)a%eswhFo%uBWtQT61z|+{DP{|-F8L@2O z5}~E4`@Ft;@S4HPH1>KVw!4EWLSRX)Qmcex^!d6f$n7!GI?(dlH3ya~^hxi3dS-0^ zw8kYA-lxAK!q6>dj;<_y>r#ie zpLzPmjT=O&Kdikr;^6S#8z0v}0b2rjQ4ZJF*F&mX4m@;9NnRSqgR_zp($G%1&;yL* zQQNFOu*rb{it%Qp4BEVm!jFd&q?;315n{$D!jGUOvinVF1)C*8k}rcxr`uGQ_afrdS;w+AO-5v4!~ zd>@lNA4gv`)5^xYc_-aJ!zBMp^0M$?h9fNp#yYp|qMA0r=5w0i=r_avqwCG%VqE{Y z@jIm~rH(bUA%s*&MVnAbLL@~iDlJOdv=327RLUVrn-rm4i&70CBt_D+Z=$qPP3zR} zeNE2uJdB-^oaft8}7lO zb?UmGJ7r%J$B?$A)45iLS4{vavEk_DS8PiP>G_YPUlz~ZS?ywYYwqQpvdduOendie zkGAdh`CKo;TixesV8@{t>*+geM=1~_@O;S<9yB)mHA7pq-3|zIs;P{hsUMxDX~uOE7`@bJP2q|JsN6&&MxdNhldfiwCu9sR1k3s3YQ>ZbsmVFAa+o=!$hbA zZNBoyZasVUtUy^AriaXFbZJLPXO&vD&DNM_WJwsNxJjRjVsKc2qA=BuwlI{oyXijb zz+(@w#laN>-4(Un<$bCrQfC(B(lh9BT9wY0mft7cBBP=#;r>MjBS~ED4K#$c?CClj{vuif0*3)HmhPza5%IYA{ zS@`@*G-e6KEN4^Epl4w!{nJ=v(P$)WN8e3E95>4t7x}PAI!Yxbd^_(Gi9iia%|6vJ z8Qx4uClhMC6*Kx7l-|Gl(0!(89F-=lF4L(FO;rzY5=VRdOga--E$Yz`_W*xGB=&}Y zOWm|7{-JPlF1$$OQi~X&p`kj%b1pUxqC};xiG6}POd=8^O+=bBFzY=zxD5gS7KF;B z!n;(iBqb$@YjLY=Bag)l$a9@{1l_@%N5xR$j3O27O4(T#Ck0zC^j0k`am;T}$*tyb zbw>RTyE#s!o*sThk0ZQKU}FBp$0-%uHr}U?^v0vv7ySA`IYEdbz1xE1eMS)k?R6{4 z_bew1VcM8Ext9HW-(NP9zG=R?E~3Z21w0;2bG!4=d>0w(_w1m2hX#o* zKut*%0T57tI+{F^Kxe|USfiEk_zfaG_sfX7rFqAtMD0Sm#R8pt4?%y>%j$k%g=uJL zfLa`2v$%ujuXEPa?FYlYd3DRdQr^NnZl{f=;zfji~k(12tLm_Y`cR{|sA z<;#nCu7CsD9gC{5lT#Mt6$&PNgh`&D4qFk*DP#+#b^XT;zFeqV12V;Kn-o$#`|m2W z+-Ex)c|a~}CwxxHtGywfenkbd=Epd5((^&(x|@4@T#vJj0VOe)p6=IvMo~saM%UVM z!2x#lwU>%0ml_(?3qj7KWI{>lc|f($^5x@Y4n7M?e#sg4*MarJ)3b?{Y^$1kXb5rr zKJA&zW)!JSbsq5jxr6{$=q*UKj4e2z6k7hHoexij5cl{=Ku{v(o)s64w@drF538Ku zrnRls3PYEa@o=T>+mA_w^W8Z44OMqv|6$t^&g*!Kku7aslIoIGw-L#Q<`+HL=|Euj zB)hTWW^#wBKbqXP9us?}gRYxc8c?JbO|kkw2njP4l`g~KnmO(@=&mZO6ECrT;T&V1 zqv;0qPS9N9p5t$lky`-AM^UQ#*^T{ldmQ(l=pBG`)j9G6E65X|3(ac2Ctx;OwQALH zz^1KRhiFB^9F&>Bed|2y0vD-p04?`(1cy)Wm}Trr^R#%0K$OdV_1-_^VN6=w(0yt! z@0m5c#Ru6YuhJ|`I*OB(BkSJ2eT%-{#1ND$g@_XLKYqr0DVLg137*8$Hn6EmN6r{T z`<}hQO?w|#{Wg#s4E}+@0J>;#6N6Fc=`_LeuV0Q@oVF;O7b=OI+z+PRpdOF{f+IG- zoYCprI~9hgdijsbC7WPr5t-wyg&$M&;8um`n3z752Pi|Rs(gZvy2~JQP+M4dbeMcY z=HQpC%q50Ek0y(R*rSRI975n`m6B>?se&ogFq|{KyMa7+yjL>(1S>0Ly4y$&&ivNw;PW(gUoARH?2b6Ubv@Zmt+} z=hnYifR@WkOs;S0pKUG(Po`<=N15f8>B+2@4!oz6Ukk$>7=OBg>$0FX*c)YRBpO2_ zzhPc+8p4@NKcj{#1qKeyZ-Ku#Ft?NKcm~fl@(_&WSan^Y5j0P-2!KLrvVdC$84BTsFFPVHp5pne?Gh=K;$p0@4#_b0Rc>Z~s2*=;O+x*6%Snb-9t&|WK=B>eO zu`6WoE{3X;snm#EWEtF^liTPjo^UdJ$0}p6jb5 z9kC7SVMcOMf~StVWbyOyt=2juxj0H#NE7*C7_$(?iR|rbx0<&Y00$kVXGSR|sdY^N zBQ#$}_d_M6`gYH}O(Gbb)&OzGiC-8udVJ;~spJuq7^q&_1!||`%0smY`yV(dKoWl^ zk{GSRR}w*N)`akxCx8@gB5CnJ>5IS959(19$lWB2W>aS>s{j`8Zu~Z~H|!Mh+Z5TS zv}Ca00Ks6P1Yh}}#9JbFuOlG?`=s+s|1dz*Xx;obzDRXM=edgP!QQ`UCa|oIfZ(_S z3~44wdLrNI+7!Otn^DkB(vU={DFo|~SPH`wsZJF&!+IFA$@btR(#1Ci2W?9{Ot`>vJ?d? z=JV`*d`6iE=W_+0PD8*pm2xm^ zrsadfauRAV6D7dT!!cue=>`keS11!n4@ZCq&wAO}#yx`<#I>T`zc0PPR-tl7q{4IZ z_Ds&kL2wk(#wKlk3r80c#9sfCO%}7hg;*Q(Sl#N6lW#K+vW0DiQYe};T1ZX~vUr&CRfmV4AMP??Z8L9EBV_ z_$OGT{b^!S9NCd+s~`a$CF{IYSZvU=HPP|0T2tyKa({!Js3r}HXi4%{YiW#!4s}y`?l?XxnM5$RknkqkjR)DBdai z&mAm8qe^QpuL;73t-OeYDU@OXj8PrEK-5`GndH;_jNP)C1T3gYHgO2 z%kC_Nz5q=%`pRtLq=ZZXetInI;qUJci~O@}Rn`6`VE)1IiqIK4xnPbDz!rzo9jS-b zm2n5JBhJ5r|NV~v2Tv(f(FJVL6AR3cfy9qE%v;?`7$+jCuF0pMu z`J`*X!5X^as57EP>yiEg0ozf*y3j8 zuoO}}co}Zyf@`!kZ{D2IITyS(cxJI#8Im`YsU6bj%?zg4Dp^|H?Qm8z#Q#0C`%ugcM;axDh`imCNHn z#QaH<2W}k3C?bzHMbrAACBnqP2YkHXEMf!SLN)WAXTgRl28ARtoaoM%?ePOBeaTYv zP!}3IfbUHFDmk)_%rF&G(LOH`0<)KBIRz=u+$~+&X_>CVrV?U5e8qw{B_#w>o=LvX zY=({0!9fYejrmmU1977I!O#!Qt=|<96{Qm<9#g(t z*gNUd>3{aFp0-Ei_J-a6blQ1=mQYC;M5KZSoC5i)*rup+G9x#a8-wNVm<`PW(^Thh z8@ax#t-1LM-d*V&JnMOjWpy+)G_pNz=s$J=(LR~{Ept$VaMQw2&>x}=-5`%|JOxW0 zZ3B#?A{Ti-`E=Uo`T0-m20FB$yytQ%+qW;{y6_F-28W8xLR->&Lx+Xx+$6L@XJP;E zIG})*zk>d%BQN-`5i!n4hJytw=n9|0X;5P7RMyngoM}X2KnWdm*%m%02c_WE>i5*D9HfJ zb#W*Y7yAxlbbJ&d<+o3?EO>P{TjJ=+ag zE)ke#=#p?~lL@6Tf32Jhmct{6ti~dAKUyX#3TR@r&h*{9eEAY~FP&DbCkY%)RAeMd zJ&zZh0e;PEG~+W&o?R6dy5kiU72Vx-5s7L7f^+?v!NOdwJbYJ|OexhBCXVoy;`h+f zc4sCoBxI_)@QhRZcpizIU14j_v`}*G73f-(=h_qT6Y7(S^~4h`kv3T z;Z*6KeXMFev`}F9rdJn>K>_#Hn@Ypl_%)priAgbJ2a#2byuq`(d*~fF+pzWGR zApJlG7TNALYC-;$cOH&?#jgGElM#*Ca5P1b2*8RU^het>BzX4HoXa~4OiYc8gqAL? zv0Mb%?c*~Es{Gl-GFtN&aH6c(@YZE>hK}xde}6xreiGM$1*7EGhKM?pY!06gxrjly zg(0-qrV#8E^-u;r3C@xT^bZJdQ@V&U+DUfs7=Hges-PVl@-PEoToK!YCcIHnQVF`~ z+>BrtqSg^WK|{*0b^>Pz0(r;-p^}t~GpKGIp%TWMB^NcqPG)6w@aAbqg0BWE`|CoQd?w2zJE=kh2^ z*-K0>NPG0*Lt`Sy#&~SmFHpu`kJpO2e+z}~0OR^eaga_YKU5BG+ZiX*|JUXU=nM2~ z<5p(hg_$38(@7zSvcQ!|(do;{o>l&d z)}y{7#iB@wao~2T>&`NKDJnC4o99;2=UHpj2Nd)TU za8lmrPKYkwTrWr;uac4C&ZF?!nH(fsXgrA@oc*@8uS3k^3a6x~oC_ zFZED5E;M#%p?U)d8B(jg<;X_bVLZMDhNDRTi#=v%&rjarbm{z@fHF{H(s%{otJkm9 ztH4*hsPTq{VS!0V+j)ngNZW?W)3S1tEyn^N=?|tG80GuNl>Y!1`i+^C!a?f@)SP9x zp=IIe(-Nf_*g&RzAR>PL^|QV2GDag3+PQgoKUZON*fuGLlDY-o02Y;`7q%34V~Xr= z!xyb1>xm_X*F)PT*x!29^PJzcMF~Bei@jOku~jQfY?e45{`tvxvmZZXc3bVjv-NN} zJEF51nc%Ix(mSMV&~;XH*)os*@EMfCIYf8N1-aFlImMhi|A^%T_Bng8|cOty7I-eF=J#PZv@grbFjF#mqc74j-oHp)4Yv1_4V{aSVy=Q($h zMrp$hZm)^w@FXAmeoML1D*jl9C&Sr@G$TS;pZPU!9&$BsU<9~um}XrBU}`dLLlFXp zggHiw>|%-ze14mL_Nyg(UjmW z)$vB(*TT8dEH=e^fw74xCqQf2>g};Q`}X}iQJ2^gMWT+T?(K`rDc0JU@_=DpKE4F& zhzS&WoUFxjAAfw>v`vMJkqIONsOocz*oVwuNy)EZ^J_stHL3_r#ug!1f^avsI!hOT zKe9sn4;$=DhEdsWn9&D|3fwX!BaY5!A2xIZz3<#A+9(g4O&v%LBzHhSF;xGaCIa-# zwM)CsVxtl8c7t2fA~`(1jI1p5f(Odts}pI3N1r2Kh+`mG8YZsQ2a~~{AHE8&?^9#R+ z4TqEUvDV@g&u-)K@2H>3b2S4d)Nqf`#Vc2?JU*JbM(c#4G{!VLefqScqwbKP%xRd_ zZ}P1&B#%F~FYnc=d|KH_4xowL_U&M#sjjU-?fBZUX0iG_7uypjc0Og_5SFs=oUsCt6O#v+cKF&hO>rr)=xuD1UkYdE%ftC^~`OV!dhV5=7=nvZj_5ZD{ zv_=^u4YC7$%iE#-8Z^w-k<{*^W!* z3aY9_tn`$o%k!um!}la=fAMT&n4;w%_;YyM=g5Pl!|%J@1&~_vAnn87o+yCT7EydD#dMtyM!fZ*?%Ru z6=JmGWW$#%lu$^P*29>oD3IX=Cn#OP%l1qfLZgV$=Y!k4z@eO4IQEEm#AeqwZrrFm^yTn=avhpW5v#`mokQ~6 zquDN{pnz6b_xV_<^>|#~2z!;;t^-%*Q#70z8Q$0Q(5^p8h#s%fCes%(#1(Qc`f~$rtc94-<#^P-6L-?jyK-Ic$c8ql3Zl zc~Iw2&9jq?E{jWss7~fiPg@Y0&i(4nED!wiARu!}{u*o!hx-Dy3vVn!;-&4`s=fOk z+(=ByMAPLBJ_h%!baZsqb#OLwB-u7ak)XL&)-hob5taR2+)Uy-J36Mb18=iGABOie z2n1y$iEi`$gQG=Afj*F(C%UAmz?TkvLG=C-Bk$v_jIgxGCc>aYg?Y4N2Ur+G4aRDGkrz z-;o2WM#vPcsdjq+`CPIZ* z4BoEGaqw-KYue$Xg8+!Rp#9X=%bxop+S;Y3eoOoQz7g}GtgP(A2SF069V|c`-0QcN z6VU^V4jAkRpo){5qUYJq83LUw9e;D{%SWCEb=TTi2wsl{_>Khhp*Fkqz9(=g{JED8 zA!&PY$4N!X6NW>Ki__IN_ERq><5kDvqZQ;j`0`n*An{@HxuZ!t>{ZGoT#8!m zJ<<|jbCdi@3;HbEu!-N;6Ms7o)X0=(Tqwsr4F=)SV*j`mGtxG|h-wyuF^618gZ=WA z_}*YTq;`p@uh9?;J;Y;3%U>2O7&2O3lC7IDg5ETHkb;0R2*t)Nnq4cR~&b1U5}g4(C6+Nd$&MVwgDE0$%JS2kc2cf==jrFCX#|QvgL0 zAGuzcZ4cvN(;Dpgy`VxX*4~rISh0XIChk{B9awjiHf{Pv@|(o89!x;+;xvjU{yZ%r zBZ$YsMGj{tG1H`A&laDRCW?fp-DN@S2^`z~pmH{QTQnRbqc(o{@BzMlRapaB0eX5S zD0_i1k62FLX`pwZg46eF(_$b9{w~vY=y*VnrE}b(>JDASQ!1dH;xCc}P4^cw*@E znJs!He>rb+3unny5*FY=6V{y(i9VIY<6&7%_u*rQ_R@Mm$7^D23~17y)kz}oz*tW; zfjux6xpgvYuHAdf;9!TJJ9v_NMPIzug4q zpUMjtzXIVGTmHo+ONLix5iObc<|==w>)x_}mn?y=3{Av#vvX=N8M)^!NF`R2bbVk=P6{U`kK0Sp;-mObSaa|^HN5Yq&x4YS2`q6(IO;PVQZ$Z#5<4d+#hk~PJ@(l~TOJJjO;KW$)^0VugsH*b z8=DZUf$g(?{7>Xn6fwGbLS*zu)NH`DgxnBdK|>3*B)!dAcu#Y|K0+S%pv1KLWbC;@ z^0y6L-@o6G)mc4<;{AIJjaI?G;jP;0n^%$~dmHv=vCOr5$X*N|qjVQ8>g&9ag;<-4 zg&C_Y z*z2hqkw~J7(+k1#egxOXY1Sc$Oh+4=z1oUA$(5aVw>hl|ZZpx&tL(gF&alt%G}}lG z&LJT~2OmT{NTj|zkInSR@ zFiwWR-=E%#_^e+H__v%XG`3l7Mlsyh%3bf(z0!6b{;W($RQw`;bayR~yTlf`{E}R> z=vY`HV-=*C3OfNoVvP!ksKg#!;`?g}J9*F6c@T1JLMf`=p~N+$rNx{?#b8x6J7+mv zVyj!jTSK)1ke7n~B+n9z{qSrgL-7lF>o-kyD4;1|U62&%`~$du%~^rznI@oYBnop#u_^b!#yY|oK%Wib3vvCpf=)|72MlA-YG))y)X(%5A;h^*jJe{=re z6E-&Mbt**+W>K1e>rjKq4qk1`5k1d?9{US2iT(?6#F^P`xQhrVA^~c){#&F&K0vf@ zrJM(%ooI)}!-L4^8&{fIB3U4m8Y5(h4fYS&V1mzFy1u@8b?FMZQ@cUna8=yG{4n&6ckj1% zHwgCuY|v8`7~rfVXf4tD{lybpk1jpRBl764a2$E;EBD@-cHvhQZ2%}v4*O2!7)UN#h!5y_ zu+-1HxK#ajm1&ce#6{|Oaql@ozzV^hWIKl)@NGSFQ7qSM^!FQ8t;#PlRCDflZFM0N zryGbdbRS;61_KU0LHQUlgujywltx&%28L37jsK5m!7R-x97=XDetzDuau{qi`5sfM zqc>DX+f*k{?&{Kp|M@Y)t|<6Pjh%+>7r%xM2%guT9*|{1xd*uep zjMg6i+qP!V*))#dz^+;vGSOaR89C{Lv6vFJlf?^#4nKi(yFq*5g;)RB57T1~=D@ff zZvKUo8L=Ds%C7JQw~bx6a1W=8`z_c|P`X*lNEkwF^V>fhBw$ZNE9`Q{-^cB z^k|eO+O+wbOZdX^0M57pN5wf{H%es^if&J%2i+7pc znJgXbOy0YI|Dd(QILgqJ@r}V?px*FMVzWMw->@ zW4KhsD$E3$VA~Q8np(b5TACn@m#_sk`2;Uzw$M9ViEuYWfSEuP_?&*XmmJdnvI zVuVa4n$A4I0JN!+MplW&xu)S4MT&3df2*{v&RE^HJ|@@dmBz`a_i?SeZ>_fu_~+Zx zuWbRIJLhcB^1PdDo5K`+uv#eT*8;s9=MxWDUANBNT__hAsV=;2%K8d(_8g@hTb=)k zooRDU-*xI2tCrRFE2?`9!`my#wz^+gpv00<8LBB2{!MCl=;8_itKN@pDorgPyFUz% zPyQ>2VC}l*qupv{XU75>Yd0u|uccsz7lMLzF(Q!^O*sb^G!Awr*|4;%6q5pv{^l2A zv-H@(Bl67n_yR)vNDDCLrNy9=@FTMWB(eku4OwZ*ELm2k;Xm7q zA)k^OchvKGB7_KEu}n<4XnkO^{UakOhfdZ~8^o;i)&svci)T~@*o^DAO%RLn&~$+e zK#b%;<_FREW<>M48t+5;1z%6(PG=8+AUjW>XL6|^G zA0c)ULm0s?XskdIXG>3D$(gIBIJb8!f_k>$iW zM|2t}Kj-c5$@(ewka`bLL}1pe@t&3iGECB_7);#%zRbRWFv$C3Ggi|&;^%b{K5;RR%H39G+}!Qgr$GPX>NP-+%nrF^|?OYyTk@RWmnIRkMl@{&yR$14mec zeU}qA;PCV7JhzaW{UwtvWOjz@`3jzqR@r2o<5buF?>UQ zYnxz=rX5NDJ(38L4{qZ`MhB~UJ4N1HaIYPY;9~N$kt5^2Q+-7wgal>2h)6HjwqBbd?#m; z@f1(NWW2IA`k*o1(3T^Di{=$a{<9wU?^{1AUV3Wo+_{)L0BhMIQf7pl3wbw)$fnV# zCYV*f*oAJcFA<(W8g7~%!xpyV3U)~9{~GY^_=$e7C)i{?iuXY9T2roja%>rAg%B;M zK5;um_fTPV9+(Q4>KBC`RFs#0Kr~l{DQri8GXlvPr0HkYpdH`Q|5!!22}n9H<$c=Z z?MH2UTs^h3yvjWroksf2+nYoue@sop#EgEh8q3`P%4n2low`wya}pva@E+ul+Y*YY zOcqXql-U8Wih^9s?m=={X>3?Gej$bCE;+oV^C5xU|0%>r??3yi`4+C~v&%*<=Sx#A zlaps2;udJ%+fS%V)C52W5of!N{1%t&9E_JW+$+$@xyNqe=-Ev)``7!t20 zdX9b!$LajwC(WBg?EiV0(OH8JRIAjL=N2E#5T#S|$)>6Wguv&Ao6nCgNr!ESTCH3no&x^?phKBlZ3ktD+zTL6)6}bxt(?t--w4Obc&In1&CO7`oMlN!=$=6pU z=IH;1pm}#TFY^#=reEM>pAio30B9hyxhA0e2AVZyo0G;T{5Dn|e#ik# zTv}dUUK`_eNbAp?kpBq^vvqIhS(+LuLn%fCA!G{ePJ;p_|#lScQk-L>?%4+y5TOg*=c5CWQ4qbt3RRxr_Q{q=(RB`9GqKiU;ED zf%T(04(2WLB&Gj(l1}`@?D1#WsECL|82hdLStR@rEU zJtRRZyGDd^3DWbj`9n**r)=Rl{X+k|BmX(gl*ZwlIyBdd+OIjq*$qNwpgn_y6`7y4 zr4f!F(IA2=(hV#?B_f{tUXW4juP1gQf$-n0E|UR#lc4`^7R3z2bHr*+4aQ7X;>zBH zsd)y@7<~=wF;sdzB0dAow#oAmERex}&Nd}z0a#?<$^eQUO=Ra_Z^&dv2)a^)iQ5qE z9T}R~iR47G9=Qj3um}G?Q@P6C++6L1;=ey;q@N@>TNJ!2Mg?ysckl-IStd#(kM^>| z-8XA zH^pq4tn(cVnf!#TXWYSq1a6y~ge;x!FX_q4wPZB*79@G5Klj&#f`Q}7I=MU5*)t$$ z(qJ!7z!>-VIb6xnishf|ZDQr4B(=yLy4Pf~1QDs=agK2*MSn^L|bC{(L119@>524Ax!PDNkF0vM1E;>DO(*p}}qJYOr@>l={L^sftN8 zEh>C)h9h?-ISNg86&za=!c9yGoEbUAYEYhaf2oQqIPk~C;cSF&{^a3vUi-MzD}eoY~2cA`ai^%m?xxg76%*DOy5cRVR|Xs-!EF_ zMSe{&cMJN<>u5G?dyTekePXjvly$4n=B%)cg2$wp7XY)xGTnVX;#wpLUOX4nfMMdt zJ>Ko;8HxV8E!RkD_<1`J1R&G?vWQWL@+gD!w6uzFc_X7xmJ%v${LO*pCazasi~UQn z0duyGP`5V4n?F}=cK(|1(mNk!=l5OU5gB=Zv~cs5Eii|a`yrQU(E1RoK_MZJiJqkM z!LEhF^k_Z%o>!gNsj*9JjmDP6va77iBM%YXC<>u8uL8%8Q|4Ls3x4&Rx5!p`T zAHZq>Y8UGQvfyX^klRI3%0u?*(|_B;ji9bKIQbYbae5PKG$BjIy5D(VPP>lC#abY2J{`KX;% zkYDX*)djfna3i!(7w9KqLKg}X59@gY zaEaIY+1tID8)wYkJ_SALA6G%bC{f)H3twdcJtnTD@vYM;;n1C!7*U$P(A)K@ii&le z&S+ys$ξ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

    YIkSQI^aF9F9# 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 G?L&|P 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%0D*K< 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

    6Y;%E!~q?Y~>H~5~Zk?cqu`kw%U6jGF8?Q)3v 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%0DXbKH@tYg6lVlo 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%0A87s|RTbS2UE64L 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�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
    dO_Z64vce%0cQv!mrIZ5AIGs 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 Date: Thu, 31 Mar 2022 11:17:24 +0200 Subject: [PATCH 74/88] removed lucidart statement --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index ab4993e7..5c5f1b00 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,6 @@ On release, automated continuous integration tests run the pipeline on a full-si 1. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)) ![overview](assets/mhcquant_web.png) -(This chart was created with the help of [Lucidchart](https://www.lucidchart.com)) ## Quick Start From 4a56ef07469a923ffc127ed575ef44f3a82ec8a7 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Thu, 31 Mar 2022 16:01:17 +0200 Subject: [PATCH 75/88] Docs: Add pripeline Summary and increment documentation --- README.md | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 5c5f1b00..16ef911f 100644 --- a/README.md +++ b/README.md @@ -26,10 +26,6 @@ The pipeline is built using [Nextflow](https://www.nextflow.io), a workflow tool On release, automated continuous integration tests run the pipeline on a full-sized dataset on the AWS cloud infrastructure. This ensures that the pipeline runs on AWS, has sensible resource allocation defaults set to run on real-world datasets, and permits the persistent storage of results to benchmark between pipeline releases and other analysis sources. The results obtained from the full-sized test can be viewed on the [nf-core website](https://nf-co.re/mhcquant/results). -## Pipeline summary - -1. Present QC for raw reads ([`MultiQC`](http://multiqc.info/)) - ![overview](assets/mhcquant_web.png) ## Quick Start @@ -63,9 +59,64 @@ On release, automated continuous integration tests run the pipeline on a full-si --outdir ./results ``` +## Pipeline summary + +### Default Steps + +By default the pipeline currently performs the following + +### Additional Steps + +Additional functionality contained by the pipeline currently includes: + +#### Input + +- Inclusion of proteins in the reference database (`mhcnuggets`, `mhcflurry`, `fred2`) +- Creation of a decoy database (`DecoyDatabase`) +- Conversion of raw to mzML files (`ThermoRawFileParser`) +- Executing the peak picking with high_res algorithm (`PeakPickerHiRes`) + +#### Prequantification + +- Compute alignment retention transformations (`MapAlignerIdentification`) +- Align the different retention files of the replicates (`MapRTTransformer`) + +#### Refine FDR + +- Export filtered mzML content as results (`MzTabExporter`) +- Predict psm results using mhcflurry to shrink search space (`mhcflurry`) +- Run Percolator (`PercolatorAdapter`) + +#### Post-quantification + +- Quantify identifications using targeted feature extraction (`FeatureFinderIdentification`) +- Link extracted features (`FeatureLinkerUnlabeledKD`) +- Resolve conflicting ids matching to the same feature (`IDConflictResolver`) +- Writes the content to generate PSMs files (`TextExporter`) + +#### Prediction of HLA class 1 peptides + +- Predict peptides (`mhcnuggets`, `mhcflurry`, `fred2`) +- Predict possible neoepitopes - when an vcf files is provided (`mhcnuggets`, `mhcflurry`, `fred2`) +- Predict neoepitopes based on the peptide hits (`mhcnuggets`, `mhcflurry`, `fred2`) +- Resolve found neoepitopes (`mhcnuggets`, `mhcflurry`, `fred2`) + +#### Prediction retention time + +- Train Retention Times Predictor (`RTModel`) +- Retention Times Predictor Found Peptides and neoepitopes (`RTPredict`) + ## Documentation -The nf-core/mhcquant pipeline comes with documentation about the pipeline [usage](https://nf-co.re/mhcquant/usage), [parameters](https://nf-co.re/mhcquant/parameters) and [output](https://nf-co.re/mhcquant/output). +The nf-core/mhcquant pipeline comes with documentation about the pipeline [usage](https://nf-co.re/mhcquant/usage), [parameters](https://nf-co.re/mhcquant/parameters) and [output](https://nf-co.re/mhcquant/output + +1. [Nextflow installation](https://nf-co.re/usage/installation) +2. Pipeline configuration + - [Pipeline installation](https://nf-co.re/usage/local_installation) + - [Adding your own system config](https://nf-co.re/usage/adding_own_config) +3. [Running the pipeline](https://nf-co.re/mhcquant/docs/usage.md) + - This includes tutorials, FAQs, and troubleshooting instructions +4. [Output and how to interpret the results](https://nf-co.re/mhcquant/docs/output.md) ## Credits From a49db3c87d056adffd150e634b55c65b1d3ed46f Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Thu, 31 Mar 2022 16:02:18 +0200 Subject: [PATCH 76/88] Docs: Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 16ef911f..b044aea8 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ Additional functionality contained by the pipeline currently includes: ## Documentation -The nf-core/mhcquant pipeline comes with documentation about the pipeline [usage](https://nf-co.re/mhcquant/usage), [parameters](https://nf-co.re/mhcquant/parameters) and [output](https://nf-co.re/mhcquant/output +The nf-core/mhcquant pipeline comes with documentation about the pipeline [usage](https://nf-co.re/mhcquant/usage), [parameters](https://nf-co.re/mhcquant/parameters) and [output](https://nf-co.re/mhcquant/output). 1. [Nextflow installation](https://nf-co.re/usage/installation) 2. Pipeline configuration From 2ec63b6ecfa2797fc0d622052d11c2172a9e8646 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Thu, 31 Mar 2022 16:05:11 +0200 Subject: [PATCH 77/88] Update: changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 057ac783..6f2acdbc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - nf-core template update (version 2.3.2) - Adjustments of the `PRE_QUANTIFICATION` subworkflow: `OPENMS_FALSEDISCOVERYRATE`, `OPENMS_IDFILTER_FOR_ALIGNMENT`, and `OPENMS_TEXTEXPORTER_PSMS` - Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write a combined FDR filtered output file for unquantified data +- Included `pipeline summary` and increment the `documentation` paragraph - [#195](https://github.com/nf-core/mhcquant/issues/195) Updated parameter documentation - [#189](https://github.com/nf-core/mhcquant/issues/189) Added backslashes in Quick Start in README - [#188](https://github.com/nf-core/mhcquant/issues/188) Added reference links to README From 43689e7f58536a5f991d922d30100bf14c24f373 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Fri, 1 Apr 2022 11:01:45 +0200 Subject: [PATCH 78/88] Update: README - inclusion of the default steps in the pipeline summary --- README.md | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b044aea8..c8936c4d 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,16 @@ On release, automated continuous integration tests run the pipeline on a full-si By default the pipeline currently performs the following +- Identification of peptides in the MS/MS spectra using comet (`CometAdapter`) +- Refreshes the protein references for all peptide hits and adds target/decoy information (`PeptideIndexer`) +- Estimates the false discovery rate on peptide and protein level (`FalseDiscoveryRate`) +- Filters peptide/protein identification results on ID based alignment (`IDFilter`) +- Converts XML format to text files (`TextExporter`) +- Merges several idXML files into one idXML file (`IDMerger`) +- Extract PSM features for Percolator (`PSMFeatureExtractor`) +- Facilitates the input to, the call of and output integration of Percolator (`PercolatorAdapter`) +- Filters peptide/protein identification result (`IDFilter`) + ### Additional Steps Additional functionality contained by the pipeline currently includes: @@ -72,27 +82,27 @@ Additional functionality contained by the pipeline currently includes: #### Input - Inclusion of proteins in the reference database (`mhcnuggets`, `mhcflurry`, `fred2`) -- Creation of a decoy database (`DecoyDatabase`) +- Create a decoy peptide database from standard FASTA databases (`DecoyDatabase`) - Conversion of raw to mzML files (`ThermoRawFileParser`) - Executing the peak picking with high_res algorithm (`PeakPickerHiRes`) #### Prequantification -- Compute alignment retention transformations (`MapAlignerIdentification`) -- Align the different retention files of the replicates (`MapRTTransformer`) +- Corrects retention time distortions between maps, using information from peptides identified in different maps (`MapAlignerIdentification`) +- Applies retention time transformations to maps (`MapRTTransformer`) #### Refine FDR -- Export filtered mzML content as results (`MzTabExporter`) +- This application converts several OpenMS XML formats to mzTab. (`MzTabExporter`) - Predict psm results using mhcflurry to shrink search space (`mhcflurry`) -- Run Percolator (`PercolatorAdapter`) +- Facilitates the input to, the call of and output integration of Percolator (`PercolatorAdapter`) #### Post-quantification -- Quantify identifications using targeted feature extraction (`FeatureFinderIdentification`) -- Link extracted features (`FeatureLinkerUnlabeledKD`) -- Resolve conflicting ids matching to the same feature (`IDConflictResolver`) -- Writes the content to generate PSMs files (`TextExporter`) +- Detects features in MS1 data based on peptide identifications (`FeatureFinderIdentification`) +- Group corresponding features across labelfree experiments (`FeatureLinkerUnlabeledKD`) +- Resolves ambiguous annotations of features with peptide identifications (`IDConflictResolver`) +- Converts XML format to text files (`TextExporter`) #### Prediction of HLA class 1 peptides @@ -103,7 +113,7 @@ Additional functionality contained by the pipeline currently includes: #### Prediction retention time -- Train Retention Times Predictor (`RTModel`) +- Used to train a model for peptide retention time prediction or peptide separation prediction (`RTModel`) - Retention Times Predictor Found Peptides and neoepitopes (`RTPredict`) ## Documentation From daa53a746dd08564fbdbef99b873bbfdba0b2854 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Mon, 4 Apr 2022 17:33:33 +0200 Subject: [PATCH 79/88] Fix: prettier --- docs/output.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/output.md b/docs/output.md index 1873d36d..248ec1f1 100644 --- a/docs/output.md +++ b/docs/output.md @@ -9,8 +9,11 @@ The directories listed below will be created in the results directory after the ## General <<<<<<< HEAD + ### Quantification + ======= + ## Pipeline overview The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes data using the following steps: @@ -20,18 +23,19 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d - [Pipeline information](#pipeline-information) - Report metrics generated during the workflow execution ### FastQC ->>>>>>> upstream/TEMPLATE + +> > > > > > > upstream/TEMPLATE
    Output files <<<<<<< HEAD -- `*.tsv` : If `--skip_quantification` is not specified. -======= + +- # `*.tsv` : If `--skip_quantification` is not specified. - `fastqc/` - `*_fastqc.html`: FastQC report containing quality metrics. - `*_fastqc.zip`: Zip archive containing the FastQC report, tab-delimited data file and plot images. ->>>>>>> upstream/TEMPLATE + > > > > > > > upstream/TEMPLATE
    From b9193133c6864e0173ce3906b713bbceb1954746 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Mon, 4 Apr 2022 17:36:22 +0200 Subject: [PATCH 80/88] Remove: fastqc module --- modules/nf-core/modules/fastqc/main.nf | 47 ---------------------- modules/nf-core/modules/fastqc/meta.yml | 52 ------------------------- 2 files changed, 99 deletions(-) delete mode 100644 modules/nf-core/modules/fastqc/main.nf delete mode 100644 modules/nf-core/modules/fastqc/meta.yml diff --git a/modules/nf-core/modules/fastqc/main.nf b/modules/nf-core/modules/fastqc/main.nf deleted file mode 100644 index ed6b8c50..00000000 --- a/modules/nf-core/modules/fastqc/main.nf +++ /dev/null @@ -1,47 +0,0 @@ -process FASTQC { - tag "$meta.id" - label 'process_medium' - - conda (params.enable_conda ? "bioconda::fastqc=0.11.9" : null) - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/fastqc:0.11.9--0' : - 'quay.io/biocontainers/fastqc:0.11.9--0' }" - - input: - tuple val(meta), path(reads) - - output: - tuple val(meta), path("*.html"), emit: html - tuple val(meta), path("*.zip") , emit: zip - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - // Add soft-links to original FastQs for consistent naming in pipeline - def prefix = task.ext.prefix ?: "${meta.id}" - if (meta.single_end) { - """ - [ ! -f ${prefix}.fastq.gz ] && ln -s $reads ${prefix}.fastq.gz - fastqc $args --threads $task.cpus ${prefix}.fastq.gz - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) - END_VERSIONS - """ - } else { - """ - [ ! -f ${prefix}_1.fastq.gz ] && ln -s ${reads[0]} ${prefix}_1.fastq.gz - [ ! -f ${prefix}_2.fastq.gz ] && ln -s ${reads[1]} ${prefix}_2.fastq.gz - fastqc $args --threads $task.cpus ${prefix}_1.fastq.gz ${prefix}_2.fastq.gz - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - fastqc: \$( fastqc --version | sed -e "s/FastQC v//g" ) - END_VERSIONS - """ - } -} diff --git a/modules/nf-core/modules/fastqc/meta.yml b/modules/nf-core/modules/fastqc/meta.yml deleted file mode 100644 index 4da5bb5a..00000000 --- a/modules/nf-core/modules/fastqc/meta.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: fastqc -description: Run FastQC on sequenced reads -keywords: - - quality control - - qc - - adapters - - fastq -tools: - - fastqc: - description: | - FastQC gives general quality metrics about your reads. - It provides information about the quality score distribution - across your reads, the per base sequence content (%A/C/G/T). - You get information about adapter contamination and other - overrepresented sequences. - homepage: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/ - documentation: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/ - licence: ["GPL-2.0-only"] -input: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - reads: - type: file - description: | - List of input FastQ files of size 1 and 2 for single-end and paired-end data, - respectively. -output: - - meta: - type: map - description: | - Groovy Map containing sample information - e.g. [ id:'test', single_end:false ] - - html: - type: file - description: FastQC report - pattern: "*_{fastqc.html}" - - zip: - type: file - description: FastQC report archive - pattern: "*_{fastqc.zip}" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" -authors: - - "@drpatelh" - - "@grst" - - "@ewels" - - "@FelixKrueger" From f10524659fbd16327123b1fb61c168917aa170b4 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 5 Apr 2022 09:47:15 +0200 Subject: [PATCH 81/88] Fix: ran agains upstream template branch and updated multiQC --- CHANGELOG.md | 2 +- docs/output.md | 24 +----------------------- modules.json | 4 ++-- modules/nf-core/modules/multiqc/main.nf | 12 ++++++++++++ 4 files changed, 16 insertions(+), 26 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f002d678..77597564 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ ### `Added` - [#206](https://github.com/nf-core/mhcquant/issues/206) Updated the workflow picture -- nf-core template update (version 2.3.2) (included pull [#208](https://github.com/nf-core/mhcquant/pull/208)) +- nf-core template update (version 2.3.2) - including PR [#208](https://github.com/nf-core/mhcquant/pull/208) - Adjustments of the `PRE_QUANTIFICATION` subworkflow: `OPENMS_FALSEDISCOVERYRATE`, `OPENMS_IDFILTER_FOR_ALIGNMENT`, and `OPENMS_TEXTEXPORTER_PSMS` - Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write a combined FDR filtered output file for unquantified data - Included `pipeline summary` and increment the `documentation` paragraph diff --git a/docs/output.md b/docs/output.md index 248ec1f1..3293647c 100644 --- a/docs/output.md +++ b/docs/output.md @@ -8,34 +8,12 @@ The directories listed below will be created in the results directory after the ## General -<<<<<<< HEAD - ### Quantification -======= - -## Pipeline overview - -The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes data using the following steps: - -- [FastQC](#fastqc) - Raw read QC -- [MultiQC](#multiqc) - Aggregate report describing results and QC from the whole pipeline -- [Pipeline information](#pipeline-information) - Report metrics generated during the workflow execution - -### FastQC - -> > > > > > > upstream/TEMPLATE -
    Output files -<<<<<<< HEAD - -- # `*.tsv` : If `--skip_quantification` is not specified. -- `fastqc/` - - `*_fastqc.html`: FastQC report containing quality metrics. - - `*_fastqc.zip`: Zip archive containing the FastQC report, tab-delimited data file and plot images. - > > > > > > > upstream/TEMPLATE +- `*.tsv` : If `--skip_quantification` is not specified.
    diff --git a/modules.json b/modules.json index 7ebdf96a..be6a841d 100644 --- a/modules.json +++ b/modules.json @@ -7,8 +7,8 @@ "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" }, "multiqc": { - "git_sha": "e745e167c1020928ef20ea1397b6b4d230681b4d" + "git_sha": "49b18b1639f4f7104187058866a8fab33332bdfe" } } } -} +} \ No newline at end of file diff --git a/modules/nf-core/modules/multiqc/main.nf b/modules/nf-core/modules/multiqc/main.nf index 1264aac1..ae019dbf 100644 --- a/modules/nf-core/modules/multiqc/main.nf +++ b/modules/nf-core/modules/multiqc/main.nf @@ -28,4 +28,16 @@ process MULTIQC { multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) END_VERSIONS """ + + stub: + """ + touch multiqc_data + touch multiqc_plots + touch multiqc_report.html + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + multiqc: \$( multiqc --version | sed -e "s/multiqc, version //g" ) + END_VERSIONS + """ } From 03e8efc07aa2e12b10dfd51750d98779755c7849 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 5 Apr 2022 09:48:04 +0200 Subject: [PATCH 82/88] Fix: Prettier --- modules.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules.json b/modules.json index be6a841d..03d43200 100644 --- a/modules.json +++ b/modules.json @@ -11,4 +11,4 @@ } } } -} \ No newline at end of file +} From a42da92907e761d45e75a821f4f7251a90644f2a Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 5 Apr 2022 10:38:29 +0200 Subject: [PATCH 83/88] Fix: remove faulty template inclusions --- CHANGELOG.md | 2 - README.md | 2 +- conf/igenomes.config | 432 ------------------------------------------ conf/modules.config | 65 +++---- nextflow.config | 3 - workflows/mhcquant.nf | 1 - 6 files changed, 27 insertions(+), 478 deletions(-) delete mode 100644 conf/igenomes.config diff --git a/CHANGELOG.md b/CHANGELOG.md index 77597564..d6c4690e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -94,8 +94,6 @@ DSL1 to DSL2 conversion ### `Fixed` -- Clarified conda usage and added an installation tutorial for Singularity since the one on Syllabs' website uses an outdate version of GO Compiler - ### `Dependencies` ### `Deprecated` diff --git a/README.md b/README.md index dd17d7d8..1146e702 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ![nf-core/mhcquant](docs/images/nf-core/mhcquant_logo_light.png#gh-light-mode-only) ![nf-core/mhcquant](docs/images/nf-core/mhcquant_logo_dark.png#gh-dark-mode-only) +# ![nf-core/mhcquant](docs/images/nf-core-mhcquant_logo_light.png#gh-light-mode-only) ![nf-core/mhcquant](docs/images/nf-core-mhcquant_logo_dark.png#gh-dark-mode-only) [![GitHub Actions CI Status](https://github.com/nf-core/mhcquant/workflows/nf-core%20CI/badge.svg)](https://github.com/nf-core/mhcquant/actions?query=workflow%3A%22nf-core+CI%22) [![GitHub Actions Linting Status](https://github.com/nf-core/mhcquant/workflows/nf-core%20linting/badge.svg)](https://github.com/nf-core/mhcquant/actions?query=workflow%3A%22nf-core+linting%22) diff --git a/conf/igenomes.config b/conf/igenomes.config deleted file mode 100644 index 7a1b3ac6..00000000 --- a/conf/igenomes.config +++ /dev/null @@ -1,432 +0,0 @@ -/* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Nextflow config file for iGenomes paths -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Defines reference genomes using iGenome paths. - Can be used by any config that customises the base path using: - $params.igenomes_base / --igenomes_base ----------------------------------------------------------------------------------------- -*/ - -params { - // illumina iGenomes reference file paths - genomes { - 'GRCh37' { - fasta = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Homo_sapiens/Ensembl/GRCh37/Annotation/README.txt" - mito_name = "MT" - macs_gsize = "2.7e9" - blacklist = "${projectDir}/assets/blacklists/GRCh37-blacklist.bed" - } - 'GRCh38' { - fasta = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Homo_sapiens/NCBI/GRCh38/Annotation/Genes/genes.bed" - mito_name = "chrM" - macs_gsize = "2.7e9" - blacklist = "${projectDir}/assets/blacklists/hg38-blacklist.bed" - } - 'GRCm38' { - fasta = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Mus_musculus/Ensembl/GRCm38/Annotation/README.txt" - mito_name = "MT" - macs_gsize = "1.87e9" - blacklist = "${projectDir}/assets/blacklists/GRCm38-blacklist.bed" - } - 'TAIR10' { - fasta = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Arabidopsis_thaliana/Ensembl/TAIR10/Annotation/README.txt" - mito_name = "Mt" - } - 'EB2' { - fasta = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Bacillus_subtilis_168/Ensembl/EB2/Annotation/README.txt" - } - 'UMD3.1' { - fasta = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Bos_taurus/Ensembl/UMD3.1/Annotation/README.txt" - mito_name = "MT" - } - 'WBcel235' { - fasta = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Caenorhabditis_elegans/Ensembl/WBcel235/Annotation/Genes/genes.bed" - mito_name = "MtDNA" - macs_gsize = "9e7" - } - 'CanFam3.1' { - fasta = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Canis_familiaris/Ensembl/CanFam3.1/Annotation/README.txt" - mito_name = "MT" - } - 'GRCz10' { - fasta = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Danio_rerio/Ensembl/GRCz10/Annotation/Genes/genes.bed" - mito_name = "MT" - } - 'BDGP6' { - fasta = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Drosophila_melanogaster/Ensembl/BDGP6/Annotation/Genes/genes.bed" - mito_name = "M" - macs_gsize = "1.2e8" - } - 'EquCab2' { - fasta = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Equus_caballus/Ensembl/EquCab2/Annotation/README.txt" - mito_name = "MT" - } - 'EB1' { - fasta = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Escherichia_coli_K_12_DH10B/Ensembl/EB1/Annotation/README.txt" - } - 'Galgal4' { - fasta = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Gallus_gallus/Ensembl/Galgal4/Annotation/Genes/genes.bed" - mito_name = "MT" - } - 'Gm01' { - fasta = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Glycine_max/Ensembl/Gm01/Annotation/README.txt" - } - 'Mmul_1' { - fasta = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Macaca_mulatta/Ensembl/Mmul_1/Annotation/README.txt" - mito_name = "MT" - } - 'IRGSP-1.0' { - fasta = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Oryza_sativa_japonica/Ensembl/IRGSP-1.0/Annotation/Genes/genes.bed" - mito_name = "Mt" - } - 'CHIMP2.1.4' { - fasta = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Pan_troglodytes/Ensembl/CHIMP2.1.4/Annotation/README.txt" - mito_name = "MT" - } - 'Rnor_5.0' { - fasta = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_5.0/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_5.0/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_5.0/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_5.0/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_5.0/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_5.0/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_5.0/Annotation/Genes/genes.bed" - mito_name = "MT" - } - 'Rnor_6.0' { - fasta = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Rattus_norvegicus/Ensembl/Rnor_6.0/Annotation/Genes/genes.bed" - mito_name = "MT" - } - 'R64-1-1' { - fasta = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Saccharomyces_cerevisiae/Ensembl/R64-1-1/Annotation/Genes/genes.bed" - mito_name = "MT" - macs_gsize = "1.2e7" - } - 'EF2' { - fasta = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Schizosaccharomyces_pombe/Ensembl/EF2/Annotation/README.txt" - mito_name = "MT" - macs_gsize = "1.21e7" - } - 'Sbi1' { - fasta = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Sorghum_bicolor/Ensembl/Sbi1/Annotation/README.txt" - } - 'Sscrofa10.2' { - fasta = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Sus_scrofa/Ensembl/Sscrofa10.2/Annotation/README.txt" - mito_name = "MT" - } - 'AGPv3' { - fasta = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Zea_mays/Ensembl/AGPv3/Annotation/Genes/genes.bed" - mito_name = "Mt" - } - 'hg38' { - fasta = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Homo_sapiens/UCSC/hg38/Annotation/Genes/genes.bed" - mito_name = "chrM" - macs_gsize = "2.7e9" - blacklist = "${projectDir}/assets/blacklists/hg38-blacklist.bed" - } - 'hg19' { - fasta = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Homo_sapiens/UCSC/hg19/Annotation/README.txt" - mito_name = "chrM" - macs_gsize = "2.7e9" - blacklist = "${projectDir}/assets/blacklists/hg19-blacklist.bed" - } - 'mm10' { - fasta = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Mus_musculus/UCSC/mm10/Annotation/README.txt" - mito_name = "chrM" - macs_gsize = "1.87e9" - blacklist = "${projectDir}/assets/blacklists/mm10-blacklist.bed" - } - 'bosTau8' { - fasta = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Bos_taurus/UCSC/bosTau8/Annotation/Genes/genes.bed" - mito_name = "chrM" - } - 'ce10' { - fasta = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Caenorhabditis_elegans/UCSC/ce10/Annotation/README.txt" - mito_name = "chrM" - macs_gsize = "9e7" - } - 'canFam3' { - fasta = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Canis_familiaris/UCSC/canFam3/Annotation/README.txt" - mito_name = "chrM" - } - 'danRer10' { - fasta = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Danio_rerio/UCSC/danRer10/Annotation/Genes/genes.bed" - mito_name = "chrM" - macs_gsize = "1.37e9" - } - 'dm6' { - fasta = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Drosophila_melanogaster/UCSC/dm6/Annotation/Genes/genes.bed" - mito_name = "chrM" - macs_gsize = "1.2e8" - } - 'equCab2' { - fasta = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Equus_caballus/UCSC/equCab2/Annotation/README.txt" - mito_name = "chrM" - } - 'galGal4' { - fasta = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Gallus_gallus/UCSC/galGal4/Annotation/README.txt" - mito_name = "chrM" - } - 'panTro4' { - fasta = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Pan_troglodytes/UCSC/panTro4/Annotation/README.txt" - mito_name = "chrM" - } - 'rn6' { - fasta = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Rattus_norvegicus/UCSC/rn6/Annotation/Genes/genes.bed" - mito_name = "chrM" - } - 'sacCer3' { - fasta = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Sequence/BismarkIndex/" - readme = "${params.igenomes_base}/Saccharomyces_cerevisiae/UCSC/sacCer3/Annotation/README.txt" - mito_name = "chrM" - macs_gsize = "1.2e7" - } - 'susScr3' { - fasta = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/WholeGenomeFasta/genome.fa" - bwa = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/BWAIndex/version0.6.0/" - bowtie2 = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/Bowtie2Index/" - star = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/STARIndex/" - bismark = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Sequence/BismarkIndex/" - gtf = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Annotation/Genes/genes.gtf" - bed12 = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Annotation/Genes/genes.bed" - readme = "${params.igenomes_base}/Sus_scrofa/UCSC/susScr3/Annotation/README.txt" - mito_name = "chrM" - } - } -} diff --git a/conf/modules.config b/conf/modules.config index 9fd2acfd..9336a39b 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -48,7 +48,7 @@ process { ].join(' ').trim() publishDir = [ path: { "${params.outdir}" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.fasta' ] } @@ -88,7 +88,7 @@ process { ].join(' ').trim() publishDir = [ path: { "${params.outdir}/Intermediate_Results" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.idXML' ] } @@ -103,7 +103,7 @@ process { ].join(' ').trim() publishDir = [ path: { "${params.outdir}/Intermediate_Results" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.idXML' ] } @@ -121,7 +121,7 @@ process { ].join(' ').trim() publishDir = [ path: { "${params.outdir}/Intermediate_Results" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.idXML' ] } @@ -129,7 +129,7 @@ process { withName: OPENMS_PSMFEATUREEXTRACTOR { publishDir = [ path: { "${params.outdir}/Intermediate_Results" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.idXML' ] } @@ -144,7 +144,7 @@ process { ].join(' ').trim() publishDir = [ path: { "${params.outdir}/" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.tsv' ] } @@ -152,7 +152,7 @@ process { withName: 'OPENMS_TEXTEXPORTER_PSMS' { publishDir = [ path: { "${params.outdir}/PSMs" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.tsv' ] } @@ -167,7 +167,7 @@ process { ext.prefix = { "${meta.sample}_${meta.condition}_all_ids_merged_psm_perc_filtered" } publishDir = [ path: { "${params.outdir}/Intermediate_Results" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.mzTab' ] } @@ -176,7 +176,7 @@ process { ext.prefix = { "${meta.sample}_${meta.condition}_all_ids_merged" } publishDir = [ path: { "${params.outdir}/Intermediate_Results" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.mzTab' ] } @@ -198,7 +198,7 @@ process { ].join(' ').trim() publishDir = [ path: { "${params.outdir}/Intermediate_Results" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.idXML' ] } @@ -211,7 +211,7 @@ process { ].join(' ').trim() publishDir = [ path: { "${params.outdir}/Intermediate_Results" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.idXML' ] } @@ -225,7 +225,7 @@ process { ].join(' ').trim() publishDir = [ path: { "${params.outdir}/Intermediate_Results" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.idXML' ] } @@ -239,7 +239,7 @@ process { withName: MHCFLURRY_PREDICTPEPTIDESCLASS1 { publishDir = [ path: { "${params.outdir}/class_1_bindings" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.fasta' ] } @@ -250,7 +250,7 @@ process { ext.prefix = { "${meta}_vcf_neoepitopes" } publishDir = [ path: {"${params.outdir}/class_1_bindings"}, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.csv' ] } @@ -259,7 +259,7 @@ process { ext.prefix = { "${meta.sample}_found_neoepitopes" } publishDir = [ path: {"${params.outdir}/class_1_bindings"}, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.csv' ] } @@ -267,7 +267,7 @@ process { withName: MHCFLURRY_PREDICTNEOEPITOPESCLASS1 { publishDir = [ path: {"${params.outdir}/class_1_bindings"}, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.csv' ] } @@ -282,7 +282,7 @@ process { withName: MHCNUGGETS_PEPTIDESCLASS2PRE { publishDir = [ path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*_peptides' ] } @@ -290,7 +290,7 @@ process { withName: MHCNUGGETS_PREDICTPEPTIDESCLASS2 { publishDir = [ path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*_class_2' ] } @@ -298,7 +298,7 @@ process { withName: MHCNUGGETS_PEPTIDESCLASS2POST { publishDir = [ path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.csv' ] } @@ -309,7 +309,7 @@ process { withName: PREDICT_POSSIBLE_CLASS2_NEOEPITOPES { publishDir = [ path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.csv' ] } @@ -317,7 +317,7 @@ process { withName: RESOLVE_FOUND_CLASS2_NEOEPITOPES { publishDir = [ path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.csv' ] } @@ -326,7 +326,7 @@ process { ext.prefix = { "${meta}_mhcnuggets_preprocessed" } publishDir = [ path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*${ext.prefix}' ] } @@ -335,7 +335,7 @@ process { ext.prefix = { "${meta}_predicted_neoepitopes_class_2" } publishDir = [ path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*${ext.prefix}' ] } @@ -343,7 +343,7 @@ process { withName: MHCNUGGETS_NEOEPITOPESCLASS2POST { publishDir = [ path: { "${params.outdir}/class_2_bindings" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.csv' ] } @@ -362,7 +362,7 @@ process { ext.prefix = { "${meta.sample}_id_files_for_rt_prediction_RTpredicted" } publishDir = [ path: { "${params.outdir}/RT_prediction" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.csv' ] } @@ -371,22 +371,9 @@ process { ext.prefix = { "${meta.sample}_txt_file_for_rt_prediction_RTpredicted" } publishDir = [ path: { "${params.outdir}/RT_prediction" }, - mode: 'copy', + mode: params.publish_dir_mode, pattern: '*.csv' ] } } - - withName: FASTQC { - ext.args = '--quiet' - } - - withName: CUSTOM_DUMPSOFTWAREVERSIONS { - publishDir = [ - path: { "${params.outdir}/pipeline_info" }, - mode: params.publish_dir_mode, - pattern: '*_versions.yml' - ] - } - } diff --git a/nextflow.config b/nextflow.config index 2aa1d348..9e826caa 100644 --- a/nextflow.config +++ b/nextflow.config @@ -207,9 +207,6 @@ manifest { version = '2.3.0dev' } -// Load modules.config for DSL2 module specific options -includeConfig 'conf/modules.config' - // Function to ensure that resource requirements don't go beyond // a maximum limit def check_max(obj, type) { diff --git a/workflows/mhcquant.nf b/workflows/mhcquant.nf index e2d3379e..197c5315 100644 --- a/workflows/mhcquant.nf +++ b/workflows/mhcquant.nf @@ -179,7 +179,6 @@ workflow MHCQUANT { [[[id:ident, sample:meta.sample, condition:meta.condition, ext:meta.ext], idxml]] } ) - ch_versions = ch_versions.mix(INPUT_CHECK.out.versions) // // SUBWORKFLOW: Pre-process step for the quantification of the data From 54928dea6524e63ce9982f4a7f5a9f1c7fa81387 Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 5 Apr 2022 10:43:08 +0200 Subject: [PATCH 84/88] Fix: resolve PR suggestions --- CHANGELOG.md | 2 +- bin/check_samplesheet.py | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6c4690e..2b6284c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,6 @@ ### `Added` - [#206](https://github.com/nf-core/mhcquant/issues/206) Updated the workflow picture -- nf-core template update (version 2.3.2) - including PR [#208](https://github.com/nf-core/mhcquant/pull/208) - Adjustments of the `PRE_QUANTIFICATION` subworkflow: `OPENMS_FALSEDISCOVERYRATE`, `OPENMS_IDFILTER_FOR_ALIGNMENT`, and `OPENMS_TEXTEXPORTER_PSMS` - Included `OPENMS_TEXTEXPORTER_UNQUANTIFIED`to write a combined FDR filtered output file for unquantified data - Included `pipeline summary` and increment the `documentation` paragraph @@ -16,6 +15,7 @@ ### `Fixed` - Typo in previous release date +- [#208](https://github.com/nf-core/mhcquant/pull/208) - nf-core template update (version 2.3.2) - [#199](https://github.com/nf-core/mhcquant/issues/199) Fixes some typos and stuff in the output documentation - [#192](https://github.com/nf-core/mhcquant/issues/192) Fixed samplesheet format in usage.md - [#184](https://github.com/nf-core/mhcquant/issues/184) Fix parsing for VEP annotated VCF files diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py index 53a8d349..3bd02e19 100755 --- a/bin/check_samplesheet.py +++ b/bin/check_samplesheet.py @@ -5,10 +5,6 @@ """Provide a command line tool to validate and transform tabular samplesheets.""" import os.path -#import sys -#import errno -#import argparse - import argparse import csv import logging From 2db54fa5a873fdd5c18174773ad07d3efa6dd8da Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 5 Apr 2022 11:08:36 +0200 Subject: [PATCH 85/88] Alter: bump version to 2.3.0 --- CHANGELOG.md | 2 +- nextflow.config | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b6284c2..cc49fb4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # nf-core/mhcquant: Changelog -## v2.3.0dev nfcore/mhcquant "White Gold Swallow" - 2022/mm/day +## v2.3.0 nfcore/mhcquant "White Gold Swallow" - 2022/mm/day ### `Added` diff --git a/nextflow.config b/nextflow.config index 9e826caa..62c90a23 100644 --- a/nextflow.config +++ b/nextflow.config @@ -204,7 +204,7 @@ manifest { description = 'Identify and quantify peptides from mass spectrometry raw data' mainScript = 'main.nf' nextflowVersion = '!>=21.10.3' - version = '2.3.0dev' + version = '2.3.0' } // Function to ensure that resource requirements don't go beyond From e1dbf518da68a3390edd21f381d199772a33b3cb Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar Date: Tue, 5 Apr 2022 11:22:50 +0200 Subject: [PATCH 86/88] Include: depencancies in CHANGELOG --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc49fb4f..8867bdee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,10 @@ ### `Dependencies` +| Dependency | Old version | New version | +| ---------- | ----------- | ----------- | +| `MultiQC` | 1.11 | 1.12 | + ### `Deprecated` - [#191](https://github.com/nf-core/mhcquant/issues/191) Removed the table of contents from usage.md From 7fd13d0c779a4845a4667f05ded7206f228d549b Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar <71317334+marissaDubbelaar@users.noreply.github.com> Date: Tue, 5 Apr 2022 15:49:15 +0200 Subject: [PATCH 87/88] Update .nf-core.yml Co-authored-by: Daniel Straub <42973691+d4straub@users.noreply.github.com> --- .nf-core.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.nf-core.yml b/.nf-core.yml index 3805dc81..7ca12279 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -1 +1,5 @@ repository_type: pipeline + +lint: + files_exist: + - conf/igenomes.config From 61907f46daf3aae747b1e6248744f0660af58adc Mon Sep 17 00:00:00 2001 From: Marissa Dubbelaar <71317334+marissaDubbelaar@users.noreply.github.com> Date: Tue, 5 Apr 2022 20:46:39 +0200 Subject: [PATCH 88/88] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8867bdee..3b7fcc43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # nf-core/mhcquant: Changelog -## v2.3.0 nfcore/mhcquant "White Gold Swallow" - 2022/mm/day +## v2.3.0 nfcore/mhcquant "White Gold Swallow" - 2022/04/05 ### `Added`

    )08oV0+6iFvb+J|v(NTXcGeAmwf6 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