From 340f3b20ca2ffb5370efbe6567e88b32bb3a86e1 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Wed, 8 Jul 2026 14:05:20 +0100 Subject: [PATCH 01/47] polish contributions.md --- docs/CONTRIBUTING.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 67a4370..94bbd9f 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -204,13 +204,11 @@ When adding new functionality (e.g. a new submission mode such as `isolate_genom All inputs in seqsubmit are defined via strict samplesheet schemas. -- Any new feature must: - - Extend or introduce a corresponding schema (assets/schema*input*\*.json) - - Clearly define required and optional fields - Maintain: - Column order consistency (critical for pipeline execution) - Backward compatibility where possible - Avoid duplicating metadata logic—reuse existing parsing and validation patterns. +- New feature should extend or introduce a corresponding schema (`assets/schema_\*.json`) if pipeline inputs are affected. ⸻ @@ -220,8 +218,6 @@ Submissions to [ENA](https://www.ebi.ac.uk/ena/browser/home) are governed by a w Contributors should refer directly to the [official ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/general-guide.html) to understand latest submission requirements and ensure that pipeline behaviour remains aligned with ENA standards. - Follow ENA-defined submission workflows and required steps for each data type - - Ensure that: - New pipeline workflows follow ENA-defined submission workflows and required steps for each data type - Metadata fields align with ENA requirements @@ -237,8 +233,8 @@ Contributors should refer directly to the [official ENA documentation](https://e All submissions are performed via [Webin-CLI](https://github.com/enasequence/webin-cli). Contributors should rely on official Webin-CLI documentation to understand expected inputs, parameters, and modes of operation. Make sure to always use the latest version of the tool. - Contributions affecting submission logic must: - - Respect --webincli_mode (validate vs submit) - - Support --test_upload for safe testing against ENA test server + - Respect `--webincli_mode` (validate vs submit) + - Support `--test_upload` for safe testing against ENA test server - Never introduce changes that: - Risk accidental submission to production without explicit user intent - Ensure compatibility with: @@ -276,7 +272,7 @@ Some data processing steps may be resource-intensive (e.g. database preparation 7. Documentation and Usability -Every contribution should improve usability: +Every contribution should aim to improve usability: - Update: - README.md From 9692ab3827dea6abb994b3361ecd125892a037f9 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Wed, 8 Jul 2026 14:38:08 +0100 Subject: [PATCH 02/47] add limitations block --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index 40f2f6e..7133ca1 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,26 @@ Currently, the pipeline supports four submission modes, each routed to a dedicat ![seqsubmit workflow diagram](assets/seqsubmit_schema.png) +## Limitations + +nf-core/seqsubmit does not yet support the following data types and scenarios: + +- **Co-assemblies**: Metagenomic co-assemblies, and MAGs/bins generated from co-assemblies, are not supported. The pipeline currently expects each assembly/MAG/bin to be derived from a single run or an assembly generated from a single run. + +- **Eukaryotic and viral bins/MAGs**: Submitting eukaryotic or viral genomes that require additional metadata generation is not supported. + - For **eukaryotic bins/MAGs**, RNA prediction and quality assessment (completeness/contamination estimation) are not implemented. + - For **viral bins/MAGs**, RNA prediction, quality assessment (completeness/contamination estimation) and taxonomy assignment are not implemented. + +- **Reads in non-FASTQ formats**: Only reads provided as FASTQ (`.fastq.gz`) can be submitted with `--mode reads`. Other formats (e.g. BAM) are not supported as input. + +- **Submission of MAG/bin without submitting the assembly or raw reads**: If a MAG/bin cannot be traced back to an assembly accession or a reads accession — i.e. only a sample accession is available — it cannot currently be submitted, since the pipeline relies on that lineage to build the required metadata. + +- **Submission of assembly without submitting the raw reads**: Similarly, assemblies that have no associated reads accession (`run_accession` column in the sample sheet) are not supported for the same reason. + +- **Single-contig assemblies/MAGs/bins**: Assemblies or MAGs/bins that consist of only one contig cannot be uploaded through this pipeline. ENA classifies these as "chromosomal assemblies", which follow a different submission procedure with different metadata requirements. If you have single-contig assembly/MAG/bin to submit, please contact [ENA support](https://www.ebi.ac.uk/ena/browser/support) for guidance. + +- **Coverage calculation from long reads**: Coverage calculation via `coverm` has only been tested and validated with short reads (e.g. Illumina). It has not been tested with long reads (PacBio, Nanopore). Exercise caution when processing data generated from long reads, as issues may occur. + ## Requirements - [Nextflow](https://www.nextflow.io/) `>=25.04.0` From 4452cb8975d5c91f8df5ac1b20e28ce5ed8cd586 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Wed, 8 Jul 2026 14:50:19 +0100 Subject: [PATCH 03/47] refactor limitations block --- README.md | 50 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 7133ca1..1e17529 100644 --- a/README.md +++ b/README.md @@ -31,26 +31,6 @@ Currently, the pipeline supports four submission modes, each routed to a dedicat ![seqsubmit workflow diagram](assets/seqsubmit_schema.png) -## Limitations - -nf-core/seqsubmit does not yet support the following data types and scenarios: - -- **Co-assemblies**: Metagenomic co-assemblies, and MAGs/bins generated from co-assemblies, are not supported. The pipeline currently expects each assembly/MAG/bin to be derived from a single run or an assembly generated from a single run. - -- **Eukaryotic and viral bins/MAGs**: Submitting eukaryotic or viral genomes that require additional metadata generation is not supported. - - For **eukaryotic bins/MAGs**, RNA prediction and quality assessment (completeness/contamination estimation) are not implemented. - - For **viral bins/MAGs**, RNA prediction, quality assessment (completeness/contamination estimation) and taxonomy assignment are not implemented. - -- **Reads in non-FASTQ formats**: Only reads provided as FASTQ (`.fastq.gz`) can be submitted with `--mode reads`. Other formats (e.g. BAM) are not supported as input. - -- **Submission of MAG/bin without submitting the assembly or raw reads**: If a MAG/bin cannot be traced back to an assembly accession or a reads accession — i.e. only a sample accession is available — it cannot currently be submitted, since the pipeline relies on that lineage to build the required metadata. - -- **Submission of assembly without submitting the raw reads**: Similarly, assemblies that have no associated reads accession (`run_accession` column in the sample sheet) are not supported for the same reason. - -- **Single-contig assemblies/MAGs/bins**: Assemblies or MAGs/bins that consist of only one contig cannot be uploaded through this pipeline. ENA classifies these as "chromosomal assemblies", which follow a different submission procedure with different metadata requirements. If you have single-contig assembly/MAG/bin to submit, please contact [ENA support](https://www.ebi.ac.uk/ena/browser/support) for guidance. - -- **Coverage calculation from long reads**: Coverage calculation via `coverm` has only been tested and validated with short reads (e.g. Illumina). It has not been tested with long reads (PacBio, Nanopore). Exercise caution when processing data generated from long reads, as issues may occur. - ## Requirements - [Nextflow](https://www.nextflow.io/) `>=25.04.0` @@ -297,6 +277,36 @@ Key output locations in `--outdir`: For full details, see the [output documentation](https://nf-co.re/seqsubmit/output). +## Limitations + +nf-core/seqsubmit does not yet support the following data types and scenarios, grouped by the mode they affect: + +#### `mags` and `bins` modes (`GENOMESUBMIT`) + +- **Co-assemblies**: MAGs/bins generated from co-assemblies are not supported. The pipeline currently expects each MAG/bin to be derived from an assembly generated from a single run. + +- **Eukaryotic and viral bins/MAGs**: Submitting eukaryotic or viral genomes that require additional metadata generation is not supported. For such genomes tRNA and rRNA prediction, quality assessment (completeness/contamination estimation) and taxonomy assignment are not implemented. If all the required metadata (`completeness`, `contamination`, `stats_generation_software`, `RNA_presence` and `NCBI_lineage`) is already provided in the samplesheet, eukaryotic and viral bins/MAGs can still be submitted normally. + +- **Submission of a MAG/bin without submitting the assembly or raw reads**: If a MAG/bin cannot be traced back to an assembly accession or a reads accession — i.e. only a sample accession is available — it cannot currently be submitted, since the pipeline relies on that lineage to build the required metadata. + +- **Single-contig MAGs/bins**: MAGs/bins that consist of only one contig cannot be uploaded through this pipeline. ENA classifies these as "chromosomal assemblies", which follow a different submission procedure with different metadata requirements. If you have a single-contig MAG/bin to submit, please contact [ENA support](https://www.ebi.ac.uk/ena/browser/support) for guidance. + +- **Coverage calculation from long reads**: `genome_coverage` calculation via `coverm` has only been tested and validated with short reads (e.g. Illumina). It has not been tested with long reads (PacBio, Nanopore). Exercise caution when processing data generated from long reads, as issues may occur. + +#### `metagenomic_assemblies` mode (`ASSEMBLYSUBMIT`) + +- **Co-assemblies**: Metagenomic co-assemblies are not supported. The pipeline currently expects each assembly to be derived from a single run. + +- **Submission of an assembly without submitting the raw reads**: Assemblies that have no associated reads accession (`run_accession` column in the samplesheet) are not supported, since the pipeline relies on that lineage to build the required metadata. + +- **Single-contig assemblies**: Assemblies that consist of only one contig cannot be uploaded through this pipeline. ENA classifies these as "chromosomal assemblies", which follow a different submission procedure with different metadata requirements. If you have a single-contig assembly to submit, please contact [ENA support](https://www.ebi.ac.uk/ena/browser/support) for guidance. + +- **Coverage calculation from long reads**: `coverage` calculation via `coverm` has only been tested and validated with short reads (e.g. Illumina). It has not been tested with long reads (PacBio, Nanopore). Exercise caution when processing data generated from long reads, as issues may occur. + +#### `reads` mode (`READSUBMIT`) + +- **Reads in non-FASTQ formats**: Only reads provided as FASTQ (`.fastq.gz`) can be submitted. Other formats (e.g. BAM) are not supported as input. + ## Credits nf-core/seqsubmit was originally written by [Martin Beracochea](https://github.com/mberacochea), [Ekaterina Sakharova](https://github.com/KateSakharova), [Sofia Ochkalova](https://github.com/ochkalova), [Evangelos Karatzas](https://github.com/vagkaratzas) and [Tim Rozday](https://github.com/timrozday-mgnify). From 6bda9c774448e48ff84b17af3cf00a8154589ff2 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Wed, 8 Jul 2026 15:00:15 +0100 Subject: [PATCH 04/47] add scalability section to README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 1e17529..e699631 100644 --- a/README.md +++ b/README.md @@ -277,6 +277,14 @@ Key output locations in `--outdir`: For full details, see the [output documentation](https://nf-co.re/seqsubmit/output). +## Scalability + +Some processes in this pipeline are resource intensive — in particular coverage calculation (`coverm`), quality assessment (`CheckM2`), and taxonomic classification of MAGs/bins (`BAT`). For real life data these steps should be run on an HPC cluster or another compute environment with sufficient CPU, memory, and job scheduling capacity, rather than on a single local machine. + +Depending on the resources available on your machine or cluster, you will likely need to adapt the Nextflow configuration to limit the maximum number of concurrently running jobs and other resource settings (e.g. `max_cpus`, `max_memory`, `max_time`, or `executor.queueSize` in a custom config), so the pipeline doesn't try to claim more resources than are actually available. See the [nf-core configuration documentation](https://nf-co.re/docs/usage/getting_started/configuration) for guidance on writing a custom config for your infrastructure. + +When submitting a large number of records, be aware that ENA recommends limiting submissions to 5000 per day to avoid overfilling their processing queue. If you need to submit more than this, consider splitting your samplesheet and spreading the submission across several days. + ## Limitations nf-core/seqsubmit does not yet support the following data types and scenarios, grouped by the mode they affect: From 9074e16fc2ba4495a48360ade7d84565f82f32f1 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Wed, 8 Jul 2026 15:22:35 +0100 Subject: [PATCH 05/47] refactor contributing guidelines --- docs/CONTRIBUTING.md | 66 +++++--------------------------------------- 1 file changed, 7 insertions(+), 59 deletions(-) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 94bbd9f..e48f6a7 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -184,35 +184,7 @@ If you update images or graphics, follow the nf-core [style guidelines](https:// To ensure consistency and maintainability of the nf-core/seqsubmit pipeline, contributors should follow these guidelines when implementing new features or modifying existing functionality. -1. Understand Workflow Structure - -The pipeline consists of independent workflows, each corresponding to a certain data type: - -- GENOMESUBMIT (mags, bins) -- ASSEMBLYSUBMIT (metagenomic_assemblies) -- READSUBMIT (raw reads) - -When adding new functionality (e.g. a new submission mode such as `isolate_genomes`), ensure that: - -- It integrates cleanly into the appropriate workflow or introduces a well-structured new one. -- Existing workflows remain unaffected unless changes are explicitly required. -- Shared logic is abstracted into reusable modules or subworkflows where possible. - -⸻ - -2. Follow Samplesheet and Schema-Driven Design - -All inputs in seqsubmit are defined via strict samplesheet schemas. - -- Maintain: - - Column order consistency (critical for pipeline execution) - - Backward compatibility where possible -- Avoid duplicating metadata logic—reuse existing parsing and validation patterns. -- New feature should extend or introduce a corresponding schema (`assets/schema_\*.json`) if pipeline inputs are affected. - -⸻ - -3. ENA Submission Requirements +### ENA Submission Requirements Submissions to [ENA](https://www.ebi.ac.uk/ena/browser/home) are governed by a well-defined data model and submission process. These include relationships between entities (e.g. studies, samples, experiments, runs, analyses), required submission steps, and accepted file types and formats. @@ -228,7 +200,7 @@ Contributors should refer directly to the [official ENA documentation](https://e ⸻ -4. Integration with Webin-CLI +### Integration with Webin-CLI All submissions are performed via [Webin-CLI](https://github.com/enasequence/webin-cli). Contributors should rely on official Webin-CLI documentation to understand expected inputs, parameters, and modes of operation. Make sure to always use the latest version of the tool. @@ -242,7 +214,7 @@ All submissions are performed via [Webin-CLI](https://github.com/enasequence/web ⸻ -5. Testing Requirements +### Testing Requirements All new functionality must be covered by tests. @@ -264,36 +236,12 @@ Where applicable: ⸻ -6. Performance and Resource Awareness - -Some data processing steps may be resource-intensive (e.g. database preparation for CAT_pack). When introducing new workflows or features avoid unnecessary recomputation. Add option to reuse cached results or provide prebuilt databases when possible. - -⸻ - -7. Documentation and Usability - -Every contribution should aim to improve usability: - -- Update: - - README.md - - docs/usage.md - - Schema descriptions -- Provide: - - Clear examples (e.g. samplesheets) - - Meaningful parameter descriptions - -The goal is to ensure that users can successfully submit data without needing deep knowledge of ENA submission requirements. - -⸻ - -8. Design Principles +### Performance and Resource Awareness -When contributing, prioritise: +Some data processing steps may be resource-intensive (e.g. database preparation for CAT_pack). -- Reproducibility (consistent results across environments) -- Automation (minimise manual user intervention) -- Clarity (explicit inputs and outputs) -- Extensibility (easy to add new submission types) +- When introducing new workflows or features avoid unnecessary recomputation. +- Add option to reuse cached results or provide prebuilt databases when possible. ⸻ From fe619780915858f190d4b6a4c82a00c68ee19ab4 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Thu, 9 Jul 2026 14:16:06 +0100 Subject: [PATCH 06/47] start changing --- README.md | 2 +- assets/multiqc_config.yml | 2 +- assets/schema_input_genome.json | 3 +- conf/test_mag_no_quality.conf | 1 + {assets => docs/images}/seqsubmit_schema.png | Bin docs/methods.md | 2 +- docs/usage.md | 64 +++++++++--------- .../local/generate_assembly_manifest/main.nf | 12 +--- modules/local/genome_upload/main.nf | 2 +- nextflow.config | 2 +- subworkflows/local/fasta_validation/main.nf | 4 +- .../utils_nfcore_seqsubmit_pipeline/main.nf | 4 +- workflows/assemblysubmit.nf | 1 - 13 files changed, 45 insertions(+), 54 deletions(-) rename {assets => docs/images}/seqsubmit_schema.png (100%) diff --git a/README.md b/README.md index 40f2f6e..63a854a 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Currently, the pipeline supports four submission modes, each routed to a dedicat - `metagenomic_assemblies` for assembly submission with `ASSEMBLYSUBMIT` workflow - `reads` for raw sequencing reads submission with `READSUBMIT` workflow -![seqsubmit workflow diagram](assets/seqsubmit_schema.png) +![seqsubmit workflow diagram](docs/images/seqsubmit_schema.png) ## Requirements diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 5df001f..eb16eaf 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -28,7 +28,7 @@ sp: genome_metadata: fn_re: ".*genomes_metadata.tsv$" sample_registration: - fn_re: '.*registered.*\.tsv$' + fn_re: '.*registered\.*\.tsv$' submission_results_genomes: fn_re: 'genomes_accessions\.tsv$' submission_results_assemblies: diff --git a/assets/schema_input_genome.json b/assets/schema_input_genome.json index f851f85..e0aef2b 100644 --- a/assets/schema_input_genome.json +++ b/assets/schema_input_genome.json @@ -91,7 +91,8 @@ }, "co-assembly": { "type": "string", - "description": "Yes if data was co-assembled, No otherwise" + "description": "'Yes' if data was co-assembled, 'No' otherwise", + "pattern": ['Yes'|'No'] }, "broad_environment": { "type": "string", diff --git a/conf/test_mag_no_quality.conf b/conf/test_mag_no_quality.conf index 9d3724a..656bffe 100644 --- a/conf/test_mag_no_quality.conf +++ b/conf/test_mag_no_quality.conf @@ -34,6 +34,7 @@ params { cat_db = null // CheckM2 doesn't allow usage of small test database, so real database will be downloaded during the test run, // which is not ideal but necessary to test the pipeline's behaviour with missing quality values + // Track upstream issue here: https://github.com/chklovski/CheckM2/issues/140 checkm2_db = null } diff --git a/assets/seqsubmit_schema.png b/docs/images/seqsubmit_schema.png similarity index 100% rename from assets/seqsubmit_schema.png rename to docs/images/seqsubmit_schema.png diff --git a/docs/methods.md b/docs/methods.md index 0f15a33..80123ab 100644 --- a/docs/methods.md +++ b/docs/methods.md @@ -98,7 +98,7 @@ Genome coverage values from `coverm genome` output TSV are parsed and merged int ### Taxonomy assignment -If `NCBI_lineage` is already present in the input samlesheet, the value is retained. If it is missing, the workflow runs taxonomy classification using the `CAT_pack` tool. +If `NCBI_lineage` is already present in the input samplesheet, the value is retained. If it is missing, the workflow runs taxonomy classification using the `CAT_pack` tool. Before classification, input FASTA files are normalized to a `.fasta` suffix by `RENAME_FASTA_FOR_CATPACK`. Classification is then run in bin mode (`CAT_pack bins`, followed by `CAT_pack add_names`). diff --git a/docs/usage.md b/docs/usage.md index 7d3b5ef..00274a4 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -51,27 +51,27 @@ mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default, > [!IMPORTANT] > **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. -| Column | Description | -| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | A unique identifier for this data entry. Must be globally unique within the input dataset (used as `meta.id` throughout the pipeline). | -| `fasta` | Path to MAG/bin contigs in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. | -| `accession` | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | -| `fastq_1` | Path to the read file in FASTQ format used to generate the source metagenomic assembly. Required if `genome_coverage` is not provided. | -| `fastq_2` | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | -| `assembly_software` | Tool name and version that were used to generate the source metagenomic assembly. | -| `binning_software` | Binning tool, including version, that was used to generate the bins. | -| `binning_parameters` | Arguments that were used during binning. | -| `stats_generation_software` | Tool, including version, that was used to calculate completeness and contamination. | -| `completeness` | Genome completeness value. | -| `contamination` | Genome contamination value. | -| `genome_coverage` | Estimated average sequencing depth across the genome. If the value is missing, it is computed automatically during pipeline execution when reads are provided. | -| `metagenome` | Registered metagenome taxonomic identifier or name that matches an existing ENA taxonomy entry. For more details see https://ena-docs.readthedocs.io/en/latest/faq/taxonomy.html | -| `co-assembly` | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: Yes or No. | -| `broad_environment` | Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428) | -| `local_environment` | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". | +| Column | Description | +| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sample` | A unique identifier for this data entry. Must be globally unique within the input dataset. | +| `fasta` | Path to MAG/bin contigs in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. | +| `accession` | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | +| `fastq_1` | Path to the read file in FASTQ format used to generate the source metagenomic assembly. Required if `genome_coverage` is not provided. | +| `fastq_2` | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | +| `assembly_software` | Tool name and version that were used to generate the source metagenomic assembly. | +| `binning_software` | Binning tool, including version, that was used to generate the bins. | +| `binning_parameters` | Arguments that were used during binning. | +| `stats_generation_software` | Tool, including version, that was used to calculate completeness and contamination. | +| `completeness` | Genome completeness value. | +| `contamination` | Genome contamination value. | +| `genome_coverage` | Estimated average sequencing depth across the genome. If the value is missing, it is computed automatically during pipeline execution when reads are provided. | +| `metagenome` | Registered metagenome taxonomic identifier or name that matches an existing ENA taxonomy entry. For more details see https://ena-docs.readthedocs.io/en/latest/faq/taxonomy.html | +| `co-assembly` | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: Yes or No. | +| `broad_environment` | Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428) | +| `local_environment` | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". | | `environmental_medium` | Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). | -| `RNA_presence` | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: Yes or No. | -| `NCBI_lineage` | NCBI taxonomy lineage of the genome. Can be composted of either numerical IDs or taxon names separated by ";". | +| `RNA_presence` | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: Yes or No. | +| `NCBI_lineage` | NCBI taxonomy lineage of the genome. Can be composted of either numerical IDs or taxon names separated by ";". | > [!NOTE] > More information about envioronment tags can be found at checklists [ERC000050](https://www.ebi.ac.uk/ena/browser/view/ERC000050) for bins and [ERC000047](https://www.ebi.ac.uk/ena/browser/view/ERC000047) for MAGs under the field names "broad-scale environmental context", "local environmental context", and "environmental medium". @@ -93,16 +93,16 @@ assembly_002,data/assembly_002.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 > [!IMPORTANT] > **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. -| Column | Description | -| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | A unique identifier for this data entry. Must be globally unique within the input dataset (used as `meta.id` throughout the pipeline). | -| `fasta` | Path to assembly contigs in FASTA format compressed with `gzip`. | -| `fastq_1` | Path to the read file in FASTQ format used to generate the metagenomic assembly. Required if `coverage` is not provided. | -| `fastq_2` | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | +| Column | Description | +| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sample` | A unique identifier for this data entry. Must be globally unique within the input dataset. | +| `fasta` | Path to assembly contigs in FASTA format compressed with `gzip`. | +| `fastq_1` | Path to the read file in FASTQ format used to generate the metagenomic assembly. Required if `coverage` is not provided. | +| `fastq_2` | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | | `coverage` | Estimated sequencing depth of the assembly. If this value is missing, it is computed automatically during pipeline execution when reads are provided. | -| `run_accession` | ENA run accession for the reads used to generate the metagenomic assembly. Reads must already be submitted to ENA. | -| `assembler` | Name of the assembler software used to generate the assembly. | -| `assembler_version` | Version of the assembler software used to generate the assembly. | +| `run_accession` | ENA run accession for the reads used to generate the metagenomic assembly. Reads must already be submitted to ENA. | +| `assembler` | Name of the assembler software used to generate the assembly. | +| `assembler_version` | Version of the assembler software used to generate the assembly. | An example file is available at [assets/samplesheet_assembly.csv](../assets/samplesheet_assembly.csv). @@ -246,7 +246,7 @@ Key parameters: | `--webincli_mode` | Webin-CLI mode for ENA interaction: `submit` uploads data, `validate` performs validation only. | | `--upload_tpa` | Mark assemblies as third party assemblies when required. | -Test example for `mags` run with docker: +Example `mags` mode upload to TEST server, run command with docker: ```bash nextflow run nf-core/seqsubmit \ @@ -260,7 +260,7 @@ nextflow run nf-core/seqsubmit \ --outdir results/validate_mags ``` -Test example for `metagenomic_assemblies` run with docker: +Example `metagenomic_assemblies` mode upload to TEST server, run command with docker: ```bash nextflow run nf-core/seqsubmit \ @@ -274,7 +274,7 @@ nextflow run nf-core/seqsubmit \ --outdir results/validate_assemblies ``` -Test example for `reads` run with docker: +Example `reads` mode upload to TEST server, run command with docker: ```bash nextflow run nf-core/seqsubmit \ diff --git a/modules/local/generate_assembly_manifest/main.nf b/modules/local/generate_assembly_manifest/main.nf index 4cc0121..90553c0 100644 --- a/modules/local/generate_assembly_manifest/main.nf +++ b/modules/local/generate_assembly_manifest/main.nf @@ -16,7 +16,7 @@ process GENERATE_ASSEMBLY_MANIFEST { output: tuple val(meta), path("${assembly_study}_upload/*.manifest") , emit: manifest - path "versions.yml", emit: versions + tuple val("${task.process}"), val('assembly_uploader'), eval("assembly_manifest --version | sed 's/assembly_uploader //'"), topic: versions when: task.ext.when == null || task.ext.when @@ -37,11 +37,6 @@ process GENERATE_ASSEMBLY_MANIFEST { ${test_flag} \\ ${is_private_flag} \\ ${args} - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - assembly_uploader: \$(assembly_manifest --version | sed 's/assembly_uploader //') - END_VERSIONS """ stub: @@ -50,10 +45,5 @@ process GENERATE_ASSEMBLY_MANIFEST { """ mkdir ${assembly_study}_upload/ touch ${assembly_study}_upload/test.manifest - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - assembly_uploader: \$(assembly_manifest --version | sed 's/assembly_uploader //') - END_VERSIONS """ } diff --git a/modules/local/genome_upload/main.nf b/modules/local/genome_upload/main.nf index 651b281..095d9ca 100644 --- a/modules/local/genome_upload/main.nf +++ b/modules/local/genome_upload/main.nf @@ -22,7 +22,7 @@ process GENOME_UPLOAD { path "results/{MAG,bin}_upload/ENA_backup.json" , emit: ena_upload_backup_json path "results/{MAG,bin}_upload/genome_samples.xml" , emit: upload_genome_samples path "results/{MAG,bin}_upload/registered_{MAGs,bins}*.tsv", emit: upload_registered_mags - tuple val("${task.process}"), val('genome_uploader'), eval("genome_upload --version 2>&1 | sed 's/genome_uploader //g'"), topic: versions, emit: versions_genome_uploader + tuple val("${task.process}"), val('genome_uploader'), eval("genome_upload --version 2>&1 | sed 's/genome_uploader //g'"), topic: versions when: task.ext.when == null || task.ext.when diff --git a/nextflow.config b/nextflow.config index eaad0b8..2cef81c 100644 --- a/nextflow.config +++ b/nextflow.config @@ -243,7 +243,7 @@ profiles { test { includeConfig 'conf/test.config' } test_full { includeConfig 'conf/test_full.config' } test_mag_complete_metadata { includeConfig 'conf/test_mag_complete_metadata.conf' } - test_mag_no_study_complete_metadata { includeConfig 'conf/test_mag_no_study_complete_metadata.config' } + test_mag_no_study_complete_metadata { includeConfig 'conf/test_mag_no_study_complete_metadata.config' } test_mag_no_coverage_single_reads { includeConfig 'conf/test_mag_no_coverage_single_reads.conf' } test_mag_no_coverage_paired_reads { includeConfig 'conf/test_mag_no_coverage_paired_reads.conf' } test_mag_no_quality { includeConfig 'conf/test_mag_no_quality.conf' } diff --git a/subworkflows/local/fasta_validation/main.nf b/subworkflows/local/fasta_validation/main.nf index 4d2d559..c59df83 100644 --- a/subworkflows/local/fasta_validation/main.nf +++ b/subworkflows/local/fasta_validation/main.nf @@ -8,7 +8,7 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -include { FALINT } from '../../../modules/nf-core/falint/main' +include { FALINT } from '../../../modules/nf-core/falint/main' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -63,5 +63,5 @@ workflow FASTA_VALIDATION { ) emit: - valid_fastas = valid_fastas + valid_fastas = valid_fastas // [meta, fasta_file] } diff --git a/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf b/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf index 1ac05e9..53fd0dc 100644 --- a/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf @@ -237,12 +237,12 @@ def toolBibliographyText() { def reference_text = [ '
  • Richardson, L., Allen, B., Baldi, G., Beracochea, M., Bileschi, M. L., Burdett, T., ... & Finn, R. D. (2023). MGnify: the microbiome sequence data analysis resource in 2023. Nucleic acids research, 51(D1), D753-D759. doi: 10.1093/nar/gkac1080
  • ', '
  • Gurbich, T. A., Almeida, A., Beracochea, M., Burdett, T., Burgin, J., Cochrane, G., ... & Finn, R. D. (2023). MGnify genomes: a resource for biome-specific microbial genome catalogues. Journal of molecular biology, 435(14), 168016. doi: 10.1016/j.jmb.2023.168016
  • ', - '
  • webin-cli: David, Y., Alisha, A., Awais, A., Rajkumar, D., Dipayan, G., Muhammad, H., ... & Ugis, S. (2026). The European Nucleotide Archive in 2025. Nucleic Acids Research, 54(D1), D120-D127. doi: 10.1093/nar/gkaf1295
  • ', + '
  • David, Y., Alisha, A., Awais, A., Rajkumar, D., Dipayan, G., Muhammad, H., ... & Ugis, S. (2026). The European Nucleotide Archive in 2025. Nucleic Acids Research, 54(D1), D120-D127. doi: 10.1093/nar/gkaf1295
  • ', '
  • Edwards, R. (2023). linsalrob/py_fasta_validator: Compressy. doi: 10.5281/zenodo.5002710
  • ', '
  • Chklovski, A., Parks, D. H., Woodcroft, B. J., & Tyson, G. W. (2023). CheckM2: a rapid, scalable and accurate tool for assessing microbial genome quality using machine learning. Nature Methods, 20(8), 1203-1212. doi: 10.1038/s41592-023-01940-w
  • ', '
  • Aroney, S. T., Newell, R. J., Nissen, J. N., Camargo, A. P., Tyson, G. W., & Woodcroft, B. J. (2025). CoverM: read alignment statistics for metagenomics. Bioinformatics, 41(4), btaf147. doi: 10.1093/bioinformatics/btaf147
  • ', '
  • Von Meijenfeldt, F. B., Arkhipova, K., Cambuy, D. D., Coutinho, F. H., & Dutilh, B. E. (2019). Robust taxonomic classification of uncharted microbial sequences and bins with CAT and BAT. Genome biology, 20(1), 217. doi: 10.1038/s41467-024-47155-1
  • ', - '
  • barrnap: Seemann, T. (2014). barrnap: Bacterial ribosomal RNA predictor. barrnap: Bacterial ribosomal RNA predictor. vicbioinformatics.com
  • ', + '
  • Seemann, T. (2014). barrnap: Bacterial ribosomal RNA predictor. barrnap: Bacterial ribosomal RNA predictor. vicbioinformatics.com
  • ', '
  • Chan, P. P., Lin, B. Y., Mak, A. J., & Lowe, T. M. (2021). tRNAscan-SE 2.0: improved detection and functional classification of transfer RNA genes. Nucleic acids research, 49(16), 9077-9096. doi: 10.1093/nar/gkab688
  • ', '
  • Ewels, P., Magnusson, M., Lundin, S., & Käller, M. (2016). MultiQC: summarize analysis results for multiple tools and samples in a single report. Bioinformatics , 32(19), 3047–3048. doi: 10.1093/bioinformatics/btw354
  • ' ].join(' ').trim() diff --git a/workflows/assemblysubmit.nf b/workflows/assemblysubmit.nf index 84a9dc8..f712b72 100644 --- a/workflows/assemblysubmit.nf +++ b/workflows/assemblysubmit.nf @@ -176,7 +176,6 @@ workflow ASSEMBLYSUBMIT { test_upload, is_private ) - ch_versions = ch_versions.mix(GENERATE_ASSEMBLY_MANIFEST.out.versions.first()) SUBMIT ( assemblies_with_coverage.join(GENERATE_ASSEMBLY_MANIFEST.out.manifest), From 3e9998f4f20f2fd36dd2b6215202071d1e1fba3d Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Thu, 9 Jul 2026 14:30:41 +0100 Subject: [PATCH 07/47] fix --- assets/schema_input_genome.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/schema_input_genome.json b/assets/schema_input_genome.json index e0aef2b..26b64ac 100644 --- a/assets/schema_input_genome.json +++ b/assets/schema_input_genome.json @@ -92,7 +92,7 @@ "co-assembly": { "type": "string", "description": "'Yes' if data was co-assembled, 'No' otherwise", - "pattern": ['Yes'|'No'] + "enum": ["Yes", "No"] }, "broad_environment": { "type": "string", From 44c38d9fb33c78ccdaf0964f0fb27f51d0efd013 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Thu, 9 Jul 2026 14:50:50 +0100 Subject: [PATCH 08/47] update CONTRIBUTING.md to clarify testing requirements for ENA submission --- docs/CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index e48f6a7..7552e65 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -216,7 +216,7 @@ All submissions are performed via [Webin-CLI](https://github.com/enasequence/web ### Testing Requirements -All new functionality must be covered by tests. +All new functionality must be covered by tests. Running nf-tests that perform ENA submission locally requires ENA webin credentials. Contributors may ask for testing credentials on the nf-core Slack [#seqsubmit](https://nfcore.slack.com/channels/seqsubmit) channel. At minimum, include: From 67d436af06f56a0af45c15fa7ac1885bbc2628a1 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Thu, 9 Jul 2026 15:02:32 +0100 Subject: [PATCH 09/47] add some links --- assets/schema_input_genome.json | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/assets/schema_input_genome.json b/assets/schema_input_genome.json index 26b64ac..65472dc 100644 --- a/assets/schema_input_genome.json +++ b/assets/schema_input_genome.json @@ -75,11 +75,15 @@ }, "completeness": { "type": "number", - "description": "MAG/bin completeness value" + "description": "MAG/bin completeness score: the ratio of observed single-copy marker genes to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined", + "exclusiveMinimum": 0, + "exclusiveMaximum": 100 }, "contamination": { "type": "number", - "description": "MAG/bin contamination value" + "description": "MAG/bin contamination score: the ratio of observed single-copy marker genes in ≥2 copies to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined", + "exclusiveMinimum": 0, + "exclusiveMaximum": 100 }, "genome_coverage": { "type": "number", @@ -87,32 +91,33 @@ }, "metagenome": { "type": "string", - "description": "ENA accepted metagenome name" + "description": "ENA accepted metagenome name. It needs to be listed in the taxonomy tree https://www.ebi.ac.uk/ena/browser/view/408169?show=tax-tree (you might need to press \"Tax tree - Show\" in the right most section of the page). Full list can also be found https://github.com/EBI-Metagenomics/genome_uploader/blob/main/genomeuploader/constants.py#L22" }, "co-assembly": { "type": "string", - "description": "'Yes' if data was co-assembled, 'No' otherwise", + "description": "'Yes' if data was co-assembled, 'No' otherwise. Options: 'Yes' or 'No'", "enum": ["Yes", "No"] }, "broad_environment": { "type": "string", - "description": "broad ecological context of a sample" + "description": "Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS" }, "local_environment": { "type": "string", - "description": "local ecological context" + "description": "Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for \"broad-scale environmental context\". Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS" }, "environmental_medium": { "type": "string", - "description": "material displaced by the sample" + "description": "Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS" }, "RNA_presence": { "type": "string", - "description": "Yes/No if at least 18 tRNAs and 5S, 16S, 23S rRNA genes detected" + "description": "Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: 'Yes' or 'No'.", + "enum": ["Yes", "No"] }, "NCBI_lineage": { "type": "string", - "description": "full NCBI lineage - format: x;y;z" + "description": "full NCBI lineage - format: x;y;z. For example, the lineage for E. coli can be: 'Bacteria;Pseudomonadati;Pseudomonadota;Gammaproteobacteria;Enterobacterales;Enterobacteriaceae;Escherichia' or '2;1224;1236;91347;543;561;562'" } }, "required": [ From b0343f445ce70c0933beb76eb6ba72d69b5b4734 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Thu, 9 Jul 2026 15:07:00 +0100 Subject: [PATCH 10/47] update README.md to reference Methods documentation for metadata statistics and coverage calculation --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e699631..07b3f72 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ Additional supported columns: - `RNA_presence` - `NCBI_lineage` -If `genome_coverage`, `stats_generation_software`, `completeness`, `contamination`, `RNA_presence`, or `NCBI_lineage` are missing, the workflow can calculate or infer them when the required inputs are available. +If `genome_coverage`, `stats_generation_software`, `completeness`, `contamination`, `RNA_presence`, or `NCBI_lineage` are missing, the workflow can calculate or infer them when the required inputs are available. See the [Methods documentation](docs/methods.md) for more information on how metadata statistics are obtained. Those fields are metadata required for the [genome_uploader](https://github.com/EBI-Metagenomics/genome_uploader) package. @@ -111,7 +111,7 @@ At least one of the following must be provided per row: - reads (`fastq_1`, optional `fastq_2` for paired-end) - `coverage` -If `coverage` is missing and reads are provided, the workflow calculates average coverage with `coverm`. +If `coverage` is missing and reads are provided, the workflow calculates average coverage with `coverm`. See the [Methods documentation](docs/methods.md) for more information on how coverage is calculated. Example `samplesheet_assembly.csv`: From f7f99b32df13817b972d0a73b708dae848504b2b Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Thu, 9 Jul 2026 15:07:23 +0100 Subject: [PATCH 11/47] refactor methods documentation to clarify RNA presence detection and update metadata schema --- docs/methods.md | 50 ++++++++----------- .../local/create_genome_metadata_tsv/meta.yml | 2 +- nextflow_schema.json | 8 +-- 3 files changed, 25 insertions(+), 35 deletions(-) diff --git a/docs/methods.md b/docs/methods.md index 0f15a33..acbf12f 100644 --- a/docs/methods.md +++ b/docs/methods.md @@ -1,15 +1,8 @@ # nf-core/seqsubmit: Methods -## Overview +This page provides a detailed overview of the methods and procedures that are executed throughout the nf-core/seqsubmit pipeline. -`nf-core/seqsubmit` currently contains two workflow implementations: - -- `GENOMESUBMIT` for `--mode mags` and `--mode bins` -- `ASSEMBLYSUBMIT` for `--mode metagenomic_assemblies` - -This page documents the methods that are currently implemented in the pipeline. - -## `GENOMESUBMIT` methods +## `GENOMESUBMIT` ### Overview @@ -17,22 +10,24 @@ The `GENOMESUBMIT` workflow: 1. Reads the samplesheet and associated genome FASTA files. 2. Validates genome FASTA files. -3. Reuses provided or calculates missing values for RNA genes presence, coverage, taxonomy, and genome quality metrics. +3. Reuses provided or calculates missing values for tRNA and rRNA genes presence, coverage, taxonomy, and genome quality metrics. 4. Collects genome metadata into the tabular format required by `genome_uploader`. 5. Generates submission manifests for ENA. 6. Performs submission to ENA. ### Genome FASTA validation -Genome FASTA files are validated with the `FASTAVALIDATOR` module before downstream processing. Each file is checked for FASTA format validity and contig count. A genome must contain at least two contigs to pass validation, which is an ENA requirement for contig-level submissions. +Genome FASTA files are validated with the `fa-lint` before downstream processing. Each file is checked for FASTA format validity and contig count. A genome must contain at least two contigs to pass validation, which is an ENA requirement for contig-level submissions. Only FASTA files that pass validation are retained for downstream processing and submission. -### RNA presence detection +### tRNA and rRNA genes detection -The workflow only runs internal RNA detection for entries where the `RNA_presence` column is empty. If a value is already supplied in the samplesheet, that value is passed through unchanged. +The workflow only runs tRNA and rRNA genes detection for entries where the `RNA_presence` column is empty. If a value is already supplied in the samplesheet, that value is passed through unchanged. -RNA detection is implemented through the `RNA_DETECTION` subworkflow and combines: +The resulting `RNA_presence` value is a decisive factor affecting MISAG/MIMAG assembly quality classification of a genome. + +tRNA and rRNA genes detection is implemented through the `RNA_DETECTION` subworkflow and combines: - `barrnap` for rRNA prediction - `tRNAscan-SE` for tRNA prediction @@ -42,11 +37,7 @@ RNA detection is implemented through the `RNA_DETECTION` subworkflow and combine `barrnap` is run in bacterial mode (`"bac"`). -The custom parser then scans the GFF output and keeps only the following ribosomal RNA subunits: - -- `16S_rRNA` -- `23S_rRNA` -- `5S_rRNA` +The custom parser then scans the GFF output and keeps only the following rRNA subunits: `16S_rRNA`, `23S_rRNA`, `5S_rRNA`. For each detected feature, the recovered length is calculated as: @@ -66,7 +57,7 @@ $$ If multiple hits are found for the same subunit, the workflow keeps the best recovered percentage for that subunit. -A subunit is considered present when its best recovered percentage is greater than or equal to `--rrna_limit`. The current default is `80`. +A subunit is considered present when its best recovered percentage is greater than or equal to `--rrna_limit`. The current default is `80`. This threshold is arbitrary, as no strict consensus length is defined by ENA or MISAG/MIMAG for considering an rRNA gene present. #### tRNA detection @@ -79,16 +70,16 @@ The parser sums the counts assigned to the 20 standard amino-acid isotypes: - `Leu`, `Lys`, `Met`, `Phe`, `Pro` - `Ser`, `Thr`, `Trp`, `Tyr`, `Val` -The total number of predicted tRNAs is compared against `params.trna_limit`. The current default is `18`. +The total number of predicted tRNAs is compared against `params.trna_limit`. The current default is `18`. This value is defined by the MISAG/MIMAG standard and must not be modified. -#### Final RNA presence decision +#### Final `RNA_presence` decision The final decision stored in `RNA_presence` is: - `Yes` when at least 18 tRNAs are detected and all three required rRNA subunits pass the recovery threshold - `No` otherwise -The result is written as a two-column TSV file containing the genome identifier and the final `Yes`/`No` decision, and this value is then merged back into the submission metadata. +The final `Yes`/`No` decision is then merged back into the submission metadata. ### Genome coverage calculation @@ -98,7 +89,7 @@ Genome coverage values from `coverm genome` output TSV are parsed and merged int ### Taxonomy assignment -If `NCBI_lineage` is already present in the input samlesheet, the value is retained. If it is missing, the workflow runs taxonomy classification using the `CAT_pack` tool. +If `NCBI_lineage` is already present in the input samplesheet, the value is retained. If it is missing, the workflow runs taxonomy classification using the `CAT_pack` tool. Before classification, input FASTA files are normalized to a `.fasta` suffix by `RENAME_FASTA_FOR_CATPACK`. Classification is then run in bin mode (`CAT_pack bins`, followed by `CAT_pack add_names`). @@ -112,7 +103,7 @@ The workflow checks three samplesheet fields: `completeness`, `contamination`, a For records that run `CheckM2`, completeness and contamination are extracted from the generated quality report (`quality_report.tsv`) and used `CheckM2` version is recorded as `stats_generation_software`. -## `ASSEMBLYSUBMIT` methods +## `ASSEMBLYSUBMIT` ### Overview @@ -120,14 +111,13 @@ The `ASSEMBLYSUBMIT` workflow: 1. Reads the samplesheet and associated assembly FASTA files. 2. Validates assembly FASTA files. -3. Reuses `coverage` values supplied in the samplesheet when they are already present. -4. Calculates `coverage` internally for entries where this field is missing and reads are available. -5. Builds the metadata table used for manifest generation. -6. Generates assembly manifests and submits the assemblies to ENA. +3. Reuses provided or calculates missing `coverage` values. +4. Builds the metadata table used for manifest generation. +5. Generates assembly manifests and submits the assemblies to ENA. ### Assembly FASTA validation -Assembly FASTA files are validated with `FASTAVALIDATOR` before downstream processing. Each file is checked for FASTA format validity and contig count. A genome must contain at least two contigs to pass validation, which is an ENA requirement for contig-level submissions. +Assembly FASTA files are validated with `fa-lint` before downstream processing. Each file is checked for FASTA format validity and contig count. A genome must contain at least two contigs to pass validation, which is an ENA requirement for contig-level submissions. Only assemblies with successful validation are forwarded to coverage estimation, metadata/manifest generation and submission. diff --git a/modules/local/create_genome_metadata_tsv/meta.yml b/modules/local/create_genome_metadata_tsv/meta.yml index 74752ad..870b889 100644 --- a/modules/local/create_genome_metadata_tsv/meta.yml +++ b/modules/local/create_genome_metadata_tsv/meta.yml @@ -35,7 +35,7 @@ input: - broad_environment: Broad environmental context - local_environment: Local environmental context - environmental_medium: Environmental medium description - - RNA_presence: RNA presence status ("Yes" or other) + - RNA_presence: status of tRNA and rRNA genes presence ("Yes" or other) - NCBI_lineage: NCBI taxonomic lineage - fasta: type: file diff --git a/nextflow_schema.json b/nextflow_schema.json index 59c6dc0..b7d7da5 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -43,11 +43,11 @@ } }, "rna_detection_options": { - "title": "RNA detection options", + "title": "rRNA and tRNA detection options", "type": "object", "fa_icon": "fas fa-university", - "description": "Parameters used to make a decision about presence/absence of RNA in data", - "help_text": "ENA requires a boolean value (True/False) defining RNA. Decision of presence/absence of RNA is based on number of rRNA and tRNA. If both values are bigger than their corresponding limits - RNA is present (True), otherwise - not (False).", + "description": "Parameters affecting a decision about presence/absence of tRNA and rRNA genes (RNA_presence) in a genome", + "help_text": "The value of RNA_presence is based on the number of rRNA and tRNA. If at least 18 tRNAs are detected and 16S, 23S, and 5S rRNA subunits pass the recovery threshold - RNA_presence is True, otherwise - False. The resulting value is a decisive factor affecting MISAG/MIMAG assembly quality classification of a genome.", "properties": { "rrna_limit": { "type": "number", @@ -57,7 +57,7 @@ }, "trna_limit": { "type": "number", - "description": "Minimum number of tRNA.", + "description": "Minimum number of tRNA genes detected to count tRNA as present. This value is defined by the MISAG/MIMAG standard and must not be modified.", "default": 18, "fa_icon": "fas fa-users-cog" } From 36567f412f06f80241e09396939c27729ed09fe0 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Thu, 9 Jul 2026 15:09:19 +0100 Subject: [PATCH 12/47] add SVG pipeline metromap --- assets/seqsubmit_schema.svg | 114 ++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 assets/seqsubmit_schema.svg diff --git a/assets/seqsubmit_schema.svg b/assets/seqsubmit_schema.svg new file mode 100644 index 0000000..2338fce --- /dev/null +++ b/assets/seqsubmit_schema.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From c57e86589021709490079d438a7a2e6c03c8872e Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Fri, 10 Jul 2026 11:19:09 +0100 Subject: [PATCH 13/47] update README.md Limitations to include issue tracking --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 07b3f72..db00849 100644 --- a/README.md +++ b/README.md @@ -291,11 +291,11 @@ nf-core/seqsubmit does not yet support the following data types and scenarios, g #### `mags` and `bins` modes (`GENOMESUBMIT`) -- **Co-assemblies**: MAGs/bins generated from co-assemblies are not supported. The pipeline currently expects each MAG/bin to be derived from an assembly generated from a single run. +- **Co-assemblies**: MAGs/bins generated from co-assemblies are not supported. The pipeline currently expects each MAG/bin to be derived from an assembly generated from a single run. Tracked in [issue #61](https://github.com/nf-core/seqsubmit/issues/61). -- **Eukaryotic and viral bins/MAGs**: Submitting eukaryotic or viral genomes that require additional metadata generation is not supported. For such genomes tRNA and rRNA prediction, quality assessment (completeness/contamination estimation) and taxonomy assignment are not implemented. If all the required metadata (`completeness`, `contamination`, `stats_generation_software`, `RNA_presence` and `NCBI_lineage`) is already provided in the samplesheet, eukaryotic and viral bins/MAGs can still be submitted normally. +- **Eukaryotic and viral bins/MAGs**: Submitting eukaryotic or viral genomes that require additional metadata generation is not supported. For such genomes tRNA and rRNA prediction, quality assessment (completeness/contamination estimation) and taxonomy assignment are not implemented. If all the required metadata (`completeness`, `contamination`, `stats_generation_software`, `RNA_presence` and `NCBI_lineage`) is already provided in the samplesheet, eukaryotic and viral bins/MAGs can still be submitted normally. Tracked in [issue #40](https://github.com/nf-core/seqsubmit/issues/40) (eukaryotic) and [issue #63](https://github.com/nf-core/seqsubmit/issues/63) (viral). -- **Submission of a MAG/bin without submitting the assembly or raw reads**: If a MAG/bin cannot be traced back to an assembly accession or a reads accession — i.e. only a sample accession is available — it cannot currently be submitted, since the pipeline relies on that lineage to build the required metadata. +- **Submission of a MAG/bin without submitting the assembly or raw reads**: If a MAG/bin cannot be traced back to an assembly accession or a reads accession — i.e. only a sample accession is available — it cannot currently be submitted, since the pipeline relies on that lineage to build the required metadata. Tracked in [issue #87](https://github.com/nf-core/seqsubmit/issues/87). - **Single-contig MAGs/bins**: MAGs/bins that consist of only one contig cannot be uploaded through this pipeline. ENA classifies these as "chromosomal assemblies", which follow a different submission procedure with different metadata requirements. If you have a single-contig MAG/bin to submit, please contact [ENA support](https://www.ebi.ac.uk/ena/browser/support) for guidance. @@ -303,9 +303,9 @@ nf-core/seqsubmit does not yet support the following data types and scenarios, g #### `metagenomic_assemblies` mode (`ASSEMBLYSUBMIT`) -- **Co-assemblies**: Metagenomic co-assemblies are not supported. The pipeline currently expects each assembly to be derived from a single run. +- **Co-assemblies**: Metagenomic co-assemblies are not supported. The pipeline currently expects each assembly to be derived from a single run. Tracked in [issue #61](https://github.com/nf-core/seqsubmit/issues/61), addressed in [PR #66](https://github.com/nf-core/seqsubmit/pull/66). -- **Submission of an assembly without submitting the raw reads**: Assemblies that have no associated reads accession (`run_accession` column in the samplesheet) are not supported, since the pipeline relies on that lineage to build the required metadata. +- **Submission of an assembly without submitting the raw reads**: Assemblies that have no associated reads accession (`run_accession` column in the samplesheet) are not supported, since the pipeline relies on that lineage to build the required metadata. Tracked in [issue #29](https://github.com/nf-core/seqsubmit/issues/29). - **Single-contig assemblies**: Assemblies that consist of only one contig cannot be uploaded through this pipeline. ENA classifies these as "chromosomal assemblies", which follow a different submission procedure with different metadata requirements. If you have a single-contig assembly to submit, please contact [ENA support](https://www.ebi.ac.uk/ena/browser/support) for guidance. From f759e9c2f76fa86d860be68f70867502ef004b66 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Fri, 10 Jul 2026 11:36:48 +0100 Subject: [PATCH 14/47] update README.md to add a Table of Contents --- README.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index db00849..9fb879a 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,24 @@ [![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqsubmit-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqsubmit)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core) +## Table of Contents + +- [Introduction](#introduction) +- [Requirements](#requirements) +- [Input samplesheets](#input-samplesheets) +- [Usage](#usage) + - [Submission study](#submission-study) + - [Data privacy](#data-privacy) + - [Database setup (`CheckM2` and `CAT_pack`)](#database-setup-checkm2-and-cat_pack) + - [Required parameters:](#required-parameters) + - [Optional parameters:](#optional-parameters) +- [Pipeline output](#pipeline-output) +- [Scalability](#scalability) +- [Limitations](#limitations) +- [Credits](#credits) +- [Contributions and Support](#contributions-and-support) +- [Citations](#citations) + ## Introduction **nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home). @@ -205,7 +223,7 @@ The `mags`/`bins` workflow requires databases for completeness/contamination est | `--upload_tpa` | Flag to control the type of assembly study (third party assembly or not). Default: false | | `--test_upload` | Upload to TEST ENA server instead of LIVE. Default: true | | `--webincli_mode` | Choose Webin-CLI mode: `submit` or `validate`. Default: `submit` | -| `--private` | Use that flag if you are referring to private data in ENA | +| `--is_private` | Use that flag if you are referring private data accessions in your submission | | `--release_date` | Use that flag if you want to keep your data private after submission until particular date | General command template: From a7f6dd63fd0e884ccbd89a8bc7cc0e00bb49d372 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Fri, 10 Jul 2026 11:59:12 +0100 Subject: [PATCH 15/47] Move Data privacy section to usage.md --- README.md | 15 +-------------- docs/usage.md | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 9fb879a..1a8fd84 100644 --- a/README.md +++ b/README.md @@ -187,20 +187,7 @@ See the [usage documentation](docs/usage.md#submission-study) for more details. ### Data privacy -You can reference private ENA data if you have access to it via your Webin account (it was submitted previously under your credentials). To use private data accessions in your submission metadata, specify the `--is_private` flag. The pipeline will then use your provided Webin credentials to fetch the required metadata. - -You can also control the privacy of your submitted data: - -- If you provide an existing study via `--submission_study`, your submission will inherit the same privacy status as that study. -- If no study is provided, the pipeline will register a new one for you. To keep this new study private, you must specify a release date using `--release_date YYYY-MM-DD` (up to 2 years from the current date). - -| Example | Source Data | Submission Visibility | Required Arguments | Result | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | --------------------- | ------------------------------------------------------ | ----------------------------------------------------- | -| Assemblies generated from public reads. Assemblies should be public immediately after submission | public | public | – | SUCCESS | -| Assemblies generated from public reads. Assemblies should remain private for 1 year after submission | public | private | `--release_date YYYY-MM-DD` (+1 year) | SUCCESS | -| Bins generated from private reads and assemblies. Bins should be public after submission. User **has access** to the reads and assemblies via Webin account | private | public | `--is_private` | SUCCESS | -| Bins generated from private reads and assemblies. Bins should remain private for 2 years after submission. User **has access** via Webin account | private | private | `--is_private`, `--release_date YYYY-MM-DD` (+2 years) | SUCCESS | -| MAGs generated from private reads and assemblies. MAGs should be public after submission. User **does not have access** to the reads and assemblies via Webin account | private | public | – | ERROR (submission can only reference accessible data) | +The pipeline supports private submissions. See the [usage documentation](docs/usage.md#data-privacy) for more details. ### Database setup (`CheckM2` and `CAT_pack`) diff --git a/docs/usage.md b/docs/usage.md index 7d3b5ef..54177c5 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -198,6 +198,23 @@ study-soil-2026 Soil microbiome study Survey of soil microbiota | `existing_study_type` | No | ENA study type (e.g. `Metagenomics`, `Other`). | | `new_study_type` | No | Custom study type. Only used when `existing_study_type` is set to `Other`. | +## Data privacy + +You can reference private ENA data if you have access to it via your Webin account (it was submitted previously under your credentials). To use private data accessions in your submission metadata, specify the `--is_private` flag. The pipeline will then use your provided Webin credentials to fetch the required metadata. + +You can also control the privacy of your submitted data: + +- If you provide an existing study via `--submission_study`, your submission will inherit the same privacy status as that study. +- If no study is provided, the pipeline will register a new one for you. To keep this new study private, you must specify a release date using `--release_date YYYY-MM-DD` (up to 2 years from the current date). + +| Example | Source Data | Submission Visibility | Required Arguments | Result | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | --------------------- | ------------------------------------------------------ | ----------------------------------------------------- | +| Assemblies generated from public reads. Assemblies should be public immediately after submission | public | public | – | SUCCESS | +| Assemblies generated from public reads. Assemblies should remain private for 1 year after submission | public | private | `--release_date YYYY-MM-DD` (+1 year) | SUCCESS | +| Bins generated from private reads and assemblies. Bins should be public after submission. User **has access** to the reads and assemblies via Webin account | private | public | `--is_private` | SUCCESS | +| Bins generated from private reads and assemblies. Bins should remain private for 2 years after submission. User **has access** via Webin account | private | private | `--is_private`, `--release_date YYYY-MM-DD` (+2 years) | SUCCESS | +| MAGs generated from private reads and assemblies. MAGs should be public after submission. User **does not have access** to the reads and assemblies via Webin account | private | public | – | ERROR (submission can only reference accessible data) | + ## Database preparation (`mags` / `bins`) The `GENOMESUBMIT` workflow uses `CheckM2` and `CAT_pack` that require specialized databases for completeness/contamination assessment and taxonomy assignment. From 81e64bdb908cdcad2bb2f98add04ce0db1aaa8c1 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Fri, 10 Jul 2026 12:11:00 +0100 Subject: [PATCH 16/47] use one format for tables with column descriptions in usage.md --- docs/usage.md | 90 +++++++++++++++++++++++++-------------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index 54177c5..bc30044 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -51,27 +51,27 @@ mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default, > [!IMPORTANT] > **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. -| Column | Description | -| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | A unique identifier for this data entry. Must be globally unique within the input dataset (used as `meta.id` throughout the pipeline). | -| `fasta` | Path to MAG/bin contigs in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. | -| `accession` | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | -| `fastq_1` | Path to the read file in FASTQ format used to generate the source metagenomic assembly. Required if `genome_coverage` is not provided. | -| `fastq_2` | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | -| `assembly_software` | Tool name and version that were used to generate the source metagenomic assembly. | -| `binning_software` | Binning tool, including version, that was used to generate the bins. | -| `binning_parameters` | Arguments that were used during binning. | -| `stats_generation_software` | Tool, including version, that was used to calculate completeness and contamination. | -| `completeness` | Genome completeness value. | -| `contamination` | Genome contamination value. | -| `genome_coverage` | Estimated average sequencing depth across the genome. If the value is missing, it is computed automatically during pipeline execution when reads are provided. | -| `metagenome` | Registered metagenome taxonomic identifier or name that matches an existing ENA taxonomy entry. For more details see https://ena-docs.readthedocs.io/en/latest/faq/taxonomy.html | -| `co-assembly` | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: Yes or No. | -| `broad_environment` | Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428) | -| `local_environment` | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". | -| `environmental_medium` | Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). | -| `RNA_presence` | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: Yes or No. | -| `NCBI_lineage` | NCBI taxonomy lineage of the genome. Can be composted of either numerical IDs or taxon names separated by ";". | +| Column | Required | Description | +| --------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sample` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset (used as `meta.id` throughout the pipeline). | +| `fasta` | Yes | Path to MAG/bin contigs in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. | +| `accession` | Yes | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | +| `fastq_1` | Conditional | Path to the read file in FASTQ format used to generate the source metagenomic assembly. Required if `genome_coverage` is not provided. | +| `fastq_2` | No | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | +| `assembly_software` | Yes | Tool name and version that were used to generate the source metagenomic assembly. | +| `binning_software` | Yes | Binning tool, including version, that was used to generate the bins. | +| `binning_parameters` | Yes | Arguments that were used during binning. | +| `stats_generation_software` | No | Tool, including version, that was used to calculate completeness and contamination. | +| `completeness` | No | Genome completeness value. | +| `contamination` | No | Genome contamination value. | +| `genome_coverage` | Conditional | Estimated average sequencing depth across the genome. If the value is missing, it is computed automatically during pipeline execution when reads are provided. | +| `metagenome` | Yes | Registered metagenome taxonomic identifier or name that matches an existing ENA taxonomy entry. For more details see https://ena-docs.readthedocs.io/en/latest/faq/taxonomy.html | +| `co-assembly` | Yes | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: Yes or No. | +| `broad_environment` | Yes | Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428) | +| `local_environment` | Yes | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". | +| `environmental_medium` | Yes | Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). | +| `RNA_presence` | No | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: Yes or No. | +| `NCBI_lineage` | No | NCBI taxonomy lineage of the genome. Can be composted of either numerical IDs or taxon names separated by ";". | > [!NOTE] > More information about envioronment tags can be found at checklists [ERC000050](https://www.ebi.ac.uk/ena/browser/view/ERC000050) for bins and [ERC000047](https://www.ebi.ac.uk/ena/browser/view/ERC000047) for MAGs under the field names "broad-scale environmental context", "local environmental context", and "environmental medium". @@ -93,16 +93,16 @@ assembly_002,data/assembly_002.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 > [!IMPORTANT] > **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. -| Column | Description | -| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | A unique identifier for this data entry. Must be globally unique within the input dataset (used as `meta.id` throughout the pipeline). | -| `fasta` | Path to assembly contigs in FASTA format compressed with `gzip`. | -| `fastq_1` | Path to the read file in FASTQ format used to generate the metagenomic assembly. Required if `coverage` is not provided. | -| `fastq_2` | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | -| `coverage` | Estimated sequencing depth of the assembly. If this value is missing, it is computed automatically during pipeline execution when reads are provided. | -| `run_accession` | ENA run accession for the reads used to generate the metagenomic assembly. Reads must already be submitted to ENA. | -| `assembler` | Name of the assembler software used to generate the assembly. | -| `assembler_version` | Version of the assembler software used to generate the assembly. | +| Column | Required | Description | +| ------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sample` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset (used as `meta.id` throughout the pipeline). | +| `fasta` | Yes | Path to assembly contigs in FASTA format compressed with `gzip`. | +| `fastq_1` | Conditional | Path to the read file in FASTQ format used to generate the metagenomic assembly. Required if `coverage` is not provided. | +| `fastq_2` | No | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | +| `coverage` | Conditional | Estimated sequencing depth of the assembly. If this value is missing, it is computed automatically during pipeline execution when reads are provided. | +| `run_accession` | Yes | ENA run accession for the reads used to generate the metagenomic assembly. Reads must already be submitted to ENA. | +| `assembler` | Yes | Name of the assembler software used to generate the assembly. | +| `assembler_version` | Yes | Version of the assembler software used to generate the assembly. | An example file is available at [assets/samplesheet_assembly.csv](../assets/samplesheet_assembly.csv). @@ -121,20 +121,20 @@ pacbio_run_001,SAMEA7654321,data/pacbio_reads.fastq.gz,,PACBIO_SMRT,PacBio Seque > [!IMPORTANT] > **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. -| Column | Type | Required | Description | -| ------------------- | --------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | str | Yes | Unique identifier of this particular data entry. Used as an experiment name. | -| `sample_accession` | str | Yes | ENA sample accession (starting with SAMEA) of the sample used to generate raw reads. | -| `fastq_1` | file path | Yes | Path to forward reads in FASTQ format (optionally gzipped). | -| `fastq_2` | file path | No | Path to reverse reads for paired-end data. Leave empty for single-end reads. | -| `platform` | str | Yes | Sequencing platform. Supported values: `ILLUMINA`, `PACBIO_SMRT`, `OXFORD_NANOPORE`, `ION_TORRENT`, `CAPILLARY`, `DNBSEQ`, `ELEMENT`, `GENAPSYS`, `GENEMIND`, `HELICOS`, `LS454`, `BGISEQ`, `ULTIMA`, `VELA_DIAGNOSTICS`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | -| `instrument` | str | Yes | Sequencer model, e.g. "Illumina HiSeq 2000", "PacBio Sequel", "MinION". | -| `library_source` | str | Yes | Library source type. Options: `GENOMIC`, `METAGENOMIC`, `TRANSCRIPTOMIC`, `METAGENOMIC SINGLE CELL`, `TRANSCRIPTOMIC SINGLE CELL`, `SYNTHETIC`, `VIRAL RNA`, `OTHER`. | -| `library_selection` | str | Yes | Library selection method. Options: `RANDOM`, `PCR`, `RANDOM PCR`, `RT-PCR`, `MF`, `cDNA`, `cDNA_randomPriming`, `cDNA_oligo_dT`, `PolyA`, `Inverse rRNA`, `ChIP`, `MNase`, `DNase`, `Hybrid Selection`, etc. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | -| `library_strategy` | str | Yes | Library strategy. Options: `WGS`, `WGA`, `WXS`, `RNA-Seq`, `miRNA-Seq`, `ncRNA-Seq`, `EST`, `Hi-C`, `ATAC-seq`, `WCS`, `RAD-Seq`, `CLONE`, `AMPLICON`, `POOLCLONE`, `etc`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | -| `insert_size` | number | No | Fragment/insert size for paired-end reads (e.g., 500 for 500 bp inserts). Leave empty if not applicable. | -| `library_name` | str | No | Descriptive library name (optional). | -| `description` | str | No | Free-text description of the experiment (optional). | +| Column | Required | Description | +| ------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sample` | Yes | Unique identifier of this particular data entry. Used as an experiment name. | +| `sample_accession` | Yes | ENA sample accession (starting with SAMEA) of the sample used to generate raw reads. | +| `fastq_1` | Yes | Path to forward reads in FASTQ format (optionally gzipped). | +| `fastq_2` | No | Path to reverse reads for paired-end data. Leave empty for single-end reads. | +| `platform` | Yes | Sequencing platform. Supported values: `ILLUMINA`, `PACBIO_SMRT`, `OXFORD_NANOPORE`, `ION_TORRENT`, `CAPILLARY`, `DNBSEQ`, `ELEMENT`, `GENAPSYS`, `GENEMIND`, `HELICOS`, `LS454`, `BGISEQ`, `ULTIMA`, `VELA_DIAGNOSTICS`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | +| `instrument` | Yes | Sequencer model, e.g. "Illumina HiSeq 2000", "PacBio Sequel", "MinION". | +| `library_source` | Yes | Library source type. Options: `GENOMIC`, `METAGENOMIC`, `TRANSCRIPTOMIC`, `METAGENOMIC SINGLE CELL`, `TRANSCRIPTOMIC SINGLE CELL`, `SYNTHETIC`, `VIRAL RNA`, `OTHER`. | +| `library_selection` | Yes | Library selection method. Options: `RANDOM`, `PCR`, `RANDOM PCR`, `RT-PCR`, `MF`, `cDNA`, `cDNA_randomPriming`, `cDNA_oligo_dT`, `PolyA`, `Inverse rRNA`, `ChIP`, `MNase`, `DNase`, `Hybrid Selection`, etc. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | +| `library_strategy` | Yes | Library strategy. Options: `WGS`, `WGA`, `WXS`, `RNA-Seq`, `miRNA-Seq`, `ncRNA-Seq`, `EST`, `Hi-C`, `ATAC-seq`, `WCS`, `RAD-Seq`, `CLONE`, `AMPLICON`, `POOLCLONE`, `etc`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | +| `insert_size` | No | Fragment/insert size for paired-end reads (e.g., 500 for 500 bp inserts). Leave empty if not applicable. | +| `library_name` | No | Descriptive library name (optional). | +| `description` | No | Free-text description of the experiment (optional). | ## Submission study From c11bab24fa76bdc982905fc41da18f94fd0ba875 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Fri, 10 Jul 2026 12:13:14 +0100 Subject: [PATCH 17/47] more fixes --- conf/test_assembly_complete_metadata.config | 2 +- conf/test_mag_complete_metadata.conf | 2 +- docs/usage.md | 58 +++++++++---------- modules/local/count_rna/main.nf | 8 ++- modules/local/count_rna/meta.yml | 4 -- .../create_assembly_metadata_csv/meta.yml | 5 -- .../local/create_genome_metadata_tsv/meta.yml | 5 -- modules/local/ena_webin_cli_wrapper/main.nf | 12 ++++ modules/local/ena_webin_cli_wrapper/meta.yml | 5 -- .../local/generate_assembly_manifest/meta.yml | 4 -- modules/local/genome_upload/meta.yml | 4 -- modules/local/registerstudy/meta.yml | 5 -- .../local/rename_fasta_for_catpack/main.nf | 42 ++++++++------ nextflow_schema.json | 16 ++--- subworkflows/local/genome_evaluation/main.nf | 1 - subworkflows/local/rna_detection/main.nf | 2 - subworkflows/local/rna_detection/meta.yml | 5 -- .../utils_nfcore_seqsubmit_pipeline/main.nf | 5 +- workflows/assemblysubmit.nf | 4 +- workflows/genomesubmit.nf | 19 +++--- 20 files changed, 94 insertions(+), 114 deletions(-) diff --git a/conf/test_assembly_complete_metadata.config b/conf/test_assembly_complete_metadata.config index 16e4ccf..aa8c4d9 100644 --- a/conf/test_assembly_complete_metadata.config +++ b/conf/test_assembly_complete_metadata.config @@ -20,7 +20,7 @@ process { params { config_profile_name = 'Test --mode metagenomic_assemblies complete_metadata profile' - config_profile_description = 'Single-case assembly test with complete metadata values provided' + config_profile_description = 'Single-case assembly test with complete metadata in samplesheet. No statistics calculations will be performed; the pipeline will only upload the data. Study for submission was already registered and provided via --submission_study.' // Input data input = params.pipelines_testdata_base_path + 'seqsubmit/samplesheets/assembly_complete_metadata.csv' diff --git a/conf/test_mag_complete_metadata.conf b/conf/test_mag_complete_metadata.conf index a25e31b..e2d2489 100644 --- a/conf/test_mag_complete_metadata.conf +++ b/conf/test_mag_complete_metadata.conf @@ -20,7 +20,7 @@ process { params { config_profile_name = 'Test --mode mags complete_metadata profile' - config_profile_description = 'Single-case MAG test with complete metadata values provided' + config_profile_description = 'Single-case MAG test with complete metadata in samplesheet. No statistics or taxonomy calculations will be performed; the pipeline will only upload the data. Study for submission was already registered and provided via --submission_study.' // Input data input = params.pipelines_testdata_base_path + 'seqsubmit/samplesheets/mag_complete_metadata.csv' diff --git a/docs/usage.md b/docs/usage.md index 00274a4..756daa1 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -51,27 +51,27 @@ mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default, > [!IMPORTANT] > **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. -| Column | Description | -| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | A unique identifier for this data entry. Must be globally unique within the input dataset. | -| `fasta` | Path to MAG/bin contigs in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. | -| `accession` | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | -| `fastq_1` | Path to the read file in FASTQ format used to generate the source metagenomic assembly. Required if `genome_coverage` is not provided. | -| `fastq_2` | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | -| `assembly_software` | Tool name and version that were used to generate the source metagenomic assembly. | -| `binning_software` | Binning tool, including version, that was used to generate the bins. | -| `binning_parameters` | Arguments that were used during binning. | -| `stats_generation_software` | Tool, including version, that was used to calculate completeness and contamination. | -| `completeness` | Genome completeness value. | -| `contamination` | Genome contamination value. | -| `genome_coverage` | Estimated average sequencing depth across the genome. If the value is missing, it is computed automatically during pipeline execution when reads are provided. | -| `metagenome` | Registered metagenome taxonomic identifier or name that matches an existing ENA taxonomy entry. For more details see https://ena-docs.readthedocs.io/en/latest/faq/taxonomy.html | -| `co-assembly` | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: Yes or No. | -| `broad_environment` | Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428) | -| `local_environment` | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". | +| Column | Description | +| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sample` | A unique identifier for this data entry. Must be globally unique within the input dataset. | +| `fasta` | Path to MAG/bin contigs in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. | +| `accession` | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | +| `fastq_1` | Path to the read file in FASTQ format used to generate the source metagenomic assembly. Required if `genome_coverage` is not provided. | +| `fastq_2` | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | +| `assembly_software` | Tool name and version that were used to generate the source metagenomic assembly. | +| `binning_software` | Binning tool, including version, that was used to generate the bins. | +| `binning_parameters` | Arguments that were used during binning. | +| `stats_generation_software` | Tool, including version, that was used to calculate completeness and contamination. | +| `completeness` | Genome completeness value. | +| `contamination` | Genome contamination value. | +| `genome_coverage` | Estimated average sequencing depth across the genome. If the value is missing, it is computed automatically during pipeline execution when reads are provided. | +| `metagenome` | Registered metagenome taxonomic identifier or name that matches an existing ENA taxonomy entry. For more details see https://ena-docs.readthedocs.io/en/latest/faq/taxonomy.html | +| `co-assembly` | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: Yes or No. | +| `broad_environment` | Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428) | +| `local_environment` | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". | | `environmental_medium` | Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). | -| `RNA_presence` | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: Yes or No. | -| `NCBI_lineage` | NCBI taxonomy lineage of the genome. Can be composted of either numerical IDs or taxon names separated by ";". | +| `RNA_presence` | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: Yes or No. | +| `NCBI_lineage` | NCBI taxonomy lineage of the genome. Can be composted of either numerical IDs or taxon names separated by ";". | > [!NOTE] > More information about envioronment tags can be found at checklists [ERC000050](https://www.ebi.ac.uk/ena/browser/view/ERC000050) for bins and [ERC000047](https://www.ebi.ac.uk/ena/browser/view/ERC000047) for MAGs under the field names "broad-scale environmental context", "local environmental context", and "environmental medium". @@ -93,16 +93,16 @@ assembly_002,data/assembly_002.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 > [!IMPORTANT] > **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. -| Column | Description | -| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | A unique identifier for this data entry. Must be globally unique within the input dataset. | -| `fasta` | Path to assembly contigs in FASTA format compressed with `gzip`. | -| `fastq_1` | Path to the read file in FASTQ format used to generate the metagenomic assembly. Required if `coverage` is not provided. | -| `fastq_2` | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | +| Column | Description | +| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sample` | A unique identifier for this data entry. Must be globally unique within the input dataset. | +| `fasta` | Path to assembly contigs in FASTA format compressed with `gzip`. | +| `fastq_1` | Path to the read file in FASTQ format used to generate the metagenomic assembly. Required if `coverage` is not provided. | +| `fastq_2` | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | | `coverage` | Estimated sequencing depth of the assembly. If this value is missing, it is computed automatically during pipeline execution when reads are provided. | -| `run_accession` | ENA run accession for the reads used to generate the metagenomic assembly. Reads must already be submitted to ENA. | -| `assembler` | Name of the assembler software used to generate the assembly. | -| `assembler_version` | Version of the assembler software used to generate the assembly. | +| `run_accession` | ENA run accession for the reads used to generate the metagenomic assembly. Reads must already be submitted to ENA. | +| `assembler` | Name of the assembler software used to generate the assembly. | +| `assembler_version` | Version of the assembler software used to generate the assembly. | An example file is available at [assets/samplesheet_assembly.csv](../assets/samplesheet_assembly.csv). diff --git a/modules/local/count_rna/main.nf b/modules/local/count_rna/main.nf index b2594b7..2bf5758 100644 --- a/modules/local/count_rna/main.nf +++ b/modules/local/count_rna/main.nf @@ -20,15 +20,19 @@ process COUNT_RNA { tuple val(meta), path("*rna_decision.tsv"), emit: rna_decision tuple val("${task.process}"), val('python'), eval('python --version 2>&1 | sed "s/Python //g"'), topic: versions + when: + task.ext.when == null || task.ext.when + script: + def prefix = task.ext.prefix ?: "${meta.id}" """ count_rna.py \\ --trna ${trnas_stats} \\ --rrna ${rrna_gff} \\ - --name ${meta.id} \\ + --name ${prefix} \\ --trna-limit ${min_trna_count} \\ --rrna-limit ${min_rrna_percentage} \\ - --output ${meta.id}_rna_decision.tsv + --output ${prefix}_rna_decision.tsv """ stub: diff --git a/modules/local/count_rna/meta.yml b/modules/local/count_rna/meta.yml index d7e92f9..4b505cf 100644 --- a/modules/local/count_rna/meta.yml +++ b/modules/local/count_rna/meta.yml @@ -49,10 +49,6 @@ output: Tab-separated file containing genome ID and decision (Yes/No) on whether sufficient RNA genes are present pattern: "*_rna_decision.tsv" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" authors: - "@KateSakharova" diff --git a/modules/local/create_assembly_metadata_csv/meta.yml b/modules/local/create_assembly_metadata_csv/meta.yml index b1301c7..ffe7be4 100644 --- a/modules/local/create_assembly_metadata_csv/meta.yml +++ b/modules/local/create_assembly_metadata_csv/meta.yml @@ -36,11 +36,6 @@ output: type: file description: CSV file containing assembly metadata to be used as input for the assembly_uploader pattern: "*_assembly_metadata.csv" - - versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" authors: - "@ochkalova" diff --git a/modules/local/create_genome_metadata_tsv/meta.yml b/modules/local/create_genome_metadata_tsv/meta.yml index 74752ad..83f79d3 100644 --- a/modules/local/create_genome_metadata_tsv/meta.yml +++ b/modules/local/create_genome_metadata_tsv/meta.yml @@ -48,11 +48,6 @@ output: type: file description: Tab-separated TSV file with genome metadata pattern: "*.tsv" - - versions: - - versions.yml: - type: file - description: File containing software versions - pattern: "versions.yml" authors: - "@ochkalova" diff --git a/modules/local/ena_webin_cli_wrapper/main.nf b/modules/local/ena_webin_cli_wrapper/main.nf index 6d62fda..7a68961 100644 --- a/modules/local/ena_webin_cli_wrapper/main.nf +++ b/modules/local/ena_webin_cli_wrapper/main.nf @@ -26,6 +26,9 @@ process ENA_WEBIN_CLI_WRAPPER { tuple val("${task.process}"), val('ena-webin-cli'), eval('ena-webin-cli -version'), topic: versions tuple val("${task.process}"), val('mgnify-pipelines-toolkit'), eval('python -c "import importlib.metadata; print(importlib.metadata.version(\'mgnify-pipelines-toolkit\'))"'), topic: versions + when: + task.ext.when == null || task.ext.when + script: def args = task.ext.args ?: "" def prefix = task.ext.prefix ?: "${meta.id}" @@ -40,4 +43,13 @@ process ENA_WEBIN_CLI_WRAPPER { ${test_flag} \\ ${args} """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + if (webincli_mode == "submit") { + """ + touch ${prefix}_accessions.tsv + """ + } + // there is no file for mode=validate } diff --git a/modules/local/ena_webin_cli_wrapper/meta.yml b/modules/local/ena_webin_cli_wrapper/meta.yml index e31a110..62deb91 100644 --- a/modules/local/ena_webin_cli_wrapper/meta.yml +++ b/modules/local/ena_webin_cli_wrapper/meta.yml @@ -47,11 +47,6 @@ output: TSV file containing the accession assigned by ENA for the submitted item. File has two columns: "alias" and "accession". pattern: "*_accessions.tsv" - - versions: - - "versions.yml": - type: file - description: File containing software versions. - pattern: "versions.yml" authors: - "@KateSakharova" diff --git a/modules/local/generate_assembly_manifest/meta.yml b/modules/local/generate_assembly_manifest/meta.yml index 6bd102b..1f9e1de 100644 --- a/modules/local/generate_assembly_manifest/meta.yml +++ b/modules/local/generate_assembly_manifest/meta.yml @@ -50,10 +50,6 @@ output: - manifest: type: file description: Manifest file required for submission with webin-cli. - - versions: - type: file - description: File containing software versions. - pattern: "versions.yml" authors: - "@fxquah" diff --git a/modules/local/genome_upload/meta.yml b/modules/local/genome_upload/meta.yml index 14b5412..4364cf2 100644 --- a/modules/local/genome_upload/meta.yml +++ b/modules/local/genome_upload/meta.yml @@ -61,10 +61,6 @@ output: type: file description: XML file required for ENA submission pattern: "*submission.xml" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" authors: - "@KateSakharova" diff --git a/modules/local/registerstudy/meta.yml b/modules/local/registerstudy/meta.yml index 803fc62..f4ca931 100644 --- a/modules/local/registerstudy/meta.yml +++ b/modules/local/registerstudy/meta.yml @@ -59,11 +59,6 @@ output: JSON file containing the submission results with keys: submitted (newly created accessions) and failed. pattern: "*_accessions.json" - - versions: - - "versions.yml": - type: file - description: File containing software versions - pattern: "versions.yml" authors: - "@timrozday" diff --git a/modules/local/rename_fasta_for_catpack/main.nf b/modules/local/rename_fasta_for_catpack/main.nf index 38ac856..e70cd15 100644 --- a/modules/local/rename_fasta_for_catpack/main.nf +++ b/modules/local/rename_fasta_for_catpack/main.nf @@ -13,24 +13,32 @@ process RENAME_FASTA_FOR_CATPACK { tuple val(meta), path("output/*.fasta"), emit: renamed_fasta tuple val("${task.process}"), val('bash'), eval('bash --version | head -n1 | sed "s/.*version //; s/ .*//"'), topic: versions + when: + task.ext.when == null || task.ext.when script: - def is_compressed = fasta.name.endsWith('.gz') - extension = '.fasta' - def base = fasta.name - .replaceAll(/\.gz$/, '') - .replaceAll(/\.(fa|fasta|fna)$/, '') - def output_name = base + extension + def is_compressed = fasta.name.endsWith('.gz') + extension = '.fasta' + def base = fasta.name + .replaceAll(/\.gz$/, '') + .replaceAll(/\.(fa|fasta|fna)$/, '') + def output_name = base + extension - if (is_compressed) { - """ - mkdir -p output - gunzip -c ${fasta} > output/${output_name} - """ - } else { - """ - mkdir -p output - ln -s ../${fasta} output/${output_name} - """ - } + if (is_compressed) { + """ + mkdir -p output + gunzip -c ${fasta} > output/${output_name} + """ + } else { + """ + mkdir -p output + ln -s ../${fasta} output/${output_name} + """ + } + + stub: + """ + mkdir -p output + touch output/${meta.id}.fasta + """ } diff --git a/nextflow_schema.json b/nextflow_schema.json index 59c6dc0..1548095 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -57,7 +57,7 @@ }, "trna_limit": { "type": "number", - "description": "Minimum number of tRNA.", + "description": "Minimum number of tRNA required to pass.", "default": 18, "fa_icon": "fas fa-users-cog" } @@ -71,9 +71,9 @@ "help_text": "Provide a path to pre-downloaded DB or DB id for automatic download", "properties": { "cat_db": { - "type": "string", + "type": "file-path", "description": "Path to local CAT_pack DB", - "help": "Database should be pre-downloaded using CATpack commands. The folder with database should contain sub-folders 'db' with files .dmnd, .fastaid2LCAtaxid, .taxids_with_multiple_offspring, etc. And subfolder 'tax' that should contain taxonomy files like .dmp, .taxdump.tar.gz, .prot.accession2taxid.FULL.gz, etc", + "help": "Database should be pre-downloaded using CATpack commands. The folder with database should contain sub-folders 'db' with files .dmnd, .fastaid2LCAtaxid, .taxids_with_multiple_offspring, etc, as well as subfolder 'tax' that should contain taxonomy files like .dmp, .taxdump.tar.gz, .prot.accession2taxid.FULL.gz, etc", "fa_icon": "fas fa-users-cog" }, "cat_db_download_id": { @@ -93,7 +93,7 @@ "help_text": "These options are used to run Checkm2 that will calculate completeness and contamination of genome if those were not provided as input", "properties": { "checkm2_db": { - "type": "string", + "type": "file-path", "description": "Path to pre-downloaded checkm2 database", "fa_icon": "fas fa-users-cog" }, @@ -268,7 +268,7 @@ }, "upload_tpa": { "type": "boolean", - "description": "Flag to control the type of assembly study (third party assembly or not)", + "description": "Flag to control the type of assembly study (third party assembly (TPA) or not). TPA description: https://www.ncbi.nlm.nih.gov/genbank/tpa/.", "default": false, "help": "Use this flag if the study is a third party assembly (TPA). Default: false" }, @@ -289,13 +289,13 @@ "type": "boolean", "description": "Use that flag if you are referring to private data in ENA", "default": false, - "help": "This flag is used during metadata fetch steps. If you are referring to private data (project/reads/assembly) set to True. That flag does NOT regulate privacy of your submission data (check --release_date)" + "help": "This flag is used during metadata fetch steps. Specify if you are referring to private data (project/reads/assembly). That flag does NOT regulate privacy of your submission data (check --release_date)" }, "release_date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "Use that flag if you want to keep your data private after submission", - "help": "This flag regulates privacy of created study for submission. If you want to keep your data private you need to specify a DATE when it can become public (YYYY-MM-DD, max 2 years from now)" + "help": "This flag regulates when the created study for submission will become publically available and indexed on the ENA. If you want to keep your data private until a later date, you need to specify a DATE when it can become public (YYYY-MM-DD, max 2 years from now)" }, "submission_study": { "type": "string", @@ -307,7 +307,7 @@ "format": "file-path", "exists": true, "description": "Path to study metadata file (JSON, CSV, or TSV) for registering a new ENA study. Required when submission_study is not provided.", - "help_text": "File containing study metadata fields (required: study_title and alias, optional: study_abstract, existing_study_type, etc.). Used by REGISTERSTUDY to create a new study in ENA when no existing submission_study accession is given.", + "help_text": "File containing study metadata fields (required: study_title and alias, optional: study_abstract, existing_study_type, etc.). Used by REGISTERSTUDY to create a new study in ENA when no existing submission_study accession is given. ENA documentation: https://ena-docs.readthedocs.io/en/latest/submit/study/programmatic.html", "fa_icon": "fas fa-file-alt" }, "webincli_mode": { diff --git a/subworkflows/local/genome_evaluation/main.nf b/subworkflows/local/genome_evaluation/main.nf index 758f903..4f4921f 100644 --- a/subworkflows/local/genome_evaluation/main.nf +++ b/subworkflows/local/genome_evaluation/main.nf @@ -27,7 +27,6 @@ workflow GENOME_EVALUATION { // only used if ch_checkm2_db is empty main: - ch_versions = channel.empty() // // Database preparation diff --git a/subworkflows/local/rna_detection/main.nf b/subworkflows/local/rna_detection/main.nf index bb0a23f..0cac5bb 100644 --- a/subworkflows/local/rna_detection/main.nf +++ b/subworkflows/local/rna_detection/main.nf @@ -26,7 +26,6 @@ workflow RNA_DETECTION { main: - ch_versions = channel.empty() BARRNAP( fasta.map {id, fasta_file -> [id, fasta_file, "bac"]} ) @@ -43,5 +42,4 @@ workflow RNA_DETECTION { emit: rna_detected = COUNT_RNA.out.rna_decision - versions = ch_versions } diff --git a/subworkflows/local/rna_detection/meta.yml b/subworkflows/local/rna_detection/meta.yml index 4650e92..84902ba 100644 --- a/subworkflows/local/rna_detection/meta.yml +++ b/subworkflows/local/rna_detection/meta.yml @@ -43,11 +43,6 @@ output: pattern: "*.tsv" ontologies: - edam: "http://edamontology.org/format_3475" # TSV - - versions: - type: file - description: | - Channel containing software versions. - Structure: versions authors: - "@KateSakharova" - "@ochkalova" diff --git a/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf b/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf index 53fd0dc..f65014a 100644 --- a/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf @@ -112,10 +112,7 @@ workflow PIPELINE_INITIALISATION { } else if ( mode == "reads" ) { ch_samplesheet = channel .fromList(samplesheetToList(input, "${projectDir}/assets/schema_input_reads.json")) - } else { - error("Unknown mode specified: '${mode}'. Supported modes are 'mags', 'bins', 'metagenomic_assemblies', and 'reads'.") } - emit: samplesheet = ch_samplesheet versions = ch_versions @@ -200,7 +197,7 @@ def toolCitationText() { ].join(' ').trim() def preprocessing_tools = [ - "Input FASTA validation was done by py_fasta_validator (Edwards et al. 2023)." + "Input FASTA validation was done by fa-lint (https://github.com/GallVp/fa-lint)." ].join(' ').trim() def stats_tools = [ diff --git a/workflows/assemblysubmit.nf b/workflows/assemblysubmit.nf index f712b72..d599b59 100644 --- a/workflows/assemblysubmit.nf +++ b/workflows/assemblysubmit.nf @@ -231,8 +231,8 @@ workflow ASSEMBLYSUBMIT { : file("${projectDir}/assets/methods_description_template.yml", checkIfExists: true) def ch_methods_description = channel.value(methodsDescriptionText(ch_multiqc_custom_methods_description)) ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml', sort: true)) - ch_multiqc_files = ch_multiqc_files.mix(CONCAT_ACCESSIONS.out.file_out.map{meta, file -> file}) - ch_multiqc_files = ch_multiqc_files.mix(CONCAT_METADATA.out.file_out.map{meta, file -> file}) + ch_multiqc_files = ch_multiqc_files.mix(CONCAT_ACCESSIONS.out.file_out.map{_meta, file -> file}) + ch_multiqc_files = ch_multiqc_files.mix(CONCAT_METADATA.out.file_out.map{_meta, file -> file}) MULTIQC( ch_multiqc_files.flatten().collect().map { files -> [ diff --git a/workflows/genomesubmit.nf b/workflows/genomesubmit.nf index 8c1df8e..780a88e 100644 --- a/workflows/genomesubmit.nf +++ b/workflows/genomesubmit.nf @@ -150,7 +150,6 @@ workflow GENOMESUBMIT { trna_limit, rrna_limit ) - ch_versions = ch_versions.mix( RNA_DETECTION.out.versions ) // Update metadata for records missing RNA fasta_updated_with_rna = RNA_DETECTION.out.rna_detected.join(branched_rna_results.rna_prediction_input) @@ -304,13 +303,13 @@ workflow GENOMESUBMIT { } // Combine fasta and manifests ch_combined = fasta_updated_with_taxonomy - .map { meta, fasta -> [meta.id, meta, fasta] } - .join( - manifests_ch.map { meta, manifest -> [meta.id, manifest] } // Has only [id: prefix] - ) - .map { _id, full_meta, fasta, manifest -> - [full_meta, fasta, manifest] - } + .map { meta, fasta -> [meta.id, meta, fasta] } + .join( + manifests_ch.map { meta, manifest -> [meta.id, manifest] } // Has only [id: prefix] + ) + .map { _id, full_meta, fasta, manifest -> + [full_meta, fasta, manifest] + } // --------- Upload data to ENA @@ -369,9 +368,9 @@ workflow GENOMESUBMIT { : file("${projectDir}/assets/methods_description_template.yml", checkIfExists: true) def ch_methods_description = channel.value(methodsDescriptionText(ch_multiqc_custom_methods_description)) ch_multiqc_files = ch_multiqc_files.mix(ch_methods_description.collectFile(name: 'methods_description_mqc.yaml', sort: true)) - ch_multiqc_files = ch_multiqc_files.mix(CONCAT_METADATA.out.file_out.map{meta, file -> file}) + ch_multiqc_files = ch_multiqc_files.mix(CONCAT_METADATA.out.file_out.map{_meta, file -> file}) ch_multiqc_files = ch_multiqc_files.mix(CREATE_MANIFESTS.out.upload_registered_mags) - ch_multiqc_files = ch_multiqc_files.mix(CONCAT_ACCESSIONS.out.file_out.map{meta, file -> file}) + ch_multiqc_files = ch_multiqc_files.mix(CONCAT_ACCESSIONS.out.file_out.map{_meta, file -> file}) MULTIQC( ch_multiqc_files.flatten().collect().map { files -> [ From 6aea0f85bc13d2b711b0e760c6ab220b7e318fd7 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Fri, 10 Jul 2026 13:07:11 +0100 Subject: [PATCH 18/47] slim Samplesheet descriptions in README to minimum --- README.md | 93 +++++---------------------------------------------- docs/usage.md | 6 ++-- 2 files changed, 11 insertions(+), 88 deletions(-) diff --git a/README.md b/README.md index 1a8fd84..f13b535 100644 --- a/README.md +++ b/README.md @@ -65,42 +65,9 @@ Make sure you update commands above with your authorised credentials. ## Input samplesheets -For detailed descriptions of all samplesheet columns, see the [usage documentation](docs/usage.md#samplesheet-input). +### `mags` and `bins` modes -### `mags` and `bins` modes (`GENOMESUBMIT`) - -The input must follow `assets/schema_input_genome.json`. - -Required columns: - -- `sample` -- `fasta` (must end with `.fa.gz`, `.fasta.gz`, or `.fna.gz`) -- `accession` -- `assembly_software` -- `binning_software` -- `binning_parameters` -- `metagenome` -- `environmental_medium` -- `broad_environment` -- `local_environment` -- `co-assembly` - -At least one of the following must be provided per row: - -- reads (`fastq_1`, optional `fastq_2` for paired-end) -- `genome_coverage` - -Additional supported columns: - -- `stats_generation_software` -- `completeness` -- `contamination` -- `RNA_presence` -- `NCBI_lineage` - -If `genome_coverage`, `stats_generation_software`, `completeness`, `contamination`, `RNA_presence`, or `NCBI_lineage` are missing, the workflow can calculate or infer them when the required inputs are available. See the [Methods documentation](docs/methods.md) for more information on how metadata statistics are obtained. - -Those fields are metadata required for the [genome_uploader](https://github.com/EBI-Metagenomics/genome_uploader) package. +The input must follow [assets/schema_input_genome.json](assets/schema_input_genome.json). See the [corresponding samplesheet section](docs/usage.md#mags-and-bins-modes-genomesubmit) of the usage documentation for the full list of required and optional columns. Example `samplesheet_genomes.csv`: @@ -109,27 +76,9 @@ sample,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binnin lachnospira_eligens,data/bin_lachnospira_eligens.fa.gz,SRR24458089,,,spades_v3.15.5,metabat2_v2.6,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,No,marine,cable_bacteria,marine_sediment,No,d__Bacteria;p__Proteobacteria;s__unclassified_Proteobacteria ``` -> [!IMPORTANT] -> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. - -### `metagenomic_assemblies` mode (`ASSEMBLYSUBMIT`) - -The input must follow `assets/schema_input_assembly.json`. +### `metagenomic_assemblies` mode -Required columns: - -- `sample` -- `fasta` (must end with `.fa.gz`, `.fasta.gz`, or `.fna.gz`) -- `run_accession` -- `assembler` -- `assembler_version` - -At least one of the following must be provided per row: - -- reads (`fastq_1`, optional `fastq_2` for paired-end) -- `coverage` - -If `coverage` is missing and reads are provided, the workflow calculates average coverage with `coverm`. See the [Methods documentation](docs/methods.md) for more information on how coverage is calculated. +The input must follow [assets/schema_input_assembly.json](assets/schema_input_assembly.json). See the [corresponding samplesheet section](docs/usage.md#metagenomic_assemblies-mode-assemblysubmit) of the usage documentation for more details. Example `samplesheet_assembly.csv`: @@ -139,30 +88,9 @@ assembly_1,data/contigs_1.fasta.gz,data/reads_1.fastq.gz,data/reads_2.fastq.gz,, assembly_2,data/contigs_2.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 ``` -> [!IMPORTANT] -> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. - -### `reads` mode (`READSUBMIT`) - -The input must follow `assets/schema_input_reads.json`. +### `reads` mode -Required columns: - -- `sample` -- `sample_accession` -- `fastq_1` -- `fastq_2` -- `platform` -- `instrument` -- `library_source` -- `library_selection` -- `library_strategy` - -Optional columns: - -- `insert_size` -- `library_name` -- `description` +The input must follow [assets/schema_input_reads.json](assets/schema_input_reads.json). See the [corresponding samplesheet section](docs/usage.md#reads-mode-readsubmit) of the usage documentation for more details. Example `samplesheet_reads.csv`: @@ -171,9 +99,6 @@ sample,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,libra illumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLUMINA,Illumina HiSeq 2000,GENOMIC,RANDOM,WGS,500,HiSeq_library_001,Illumina sequencing of sample XYZ ``` -> [!IMPORTANT] -> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. - ## Usage > [!NOTE] @@ -181,9 +106,7 @@ illumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLU ### Submission study -All data submitted through this pipeline must be associated with an ENA study (project). You can either pass an accession of your existing study via `--submission_study`or provide a metadata file via `--study_metadata` and the pipeline will register the study with ENA before submitting your data. - -See the [usage documentation](docs/usage.md#submission-study) for more details. +All data submitted through this pipeline must be associated with an ENA study (project). You can either pass an accession of your existing study via `--submission_study`or provide a metadata file via `--study_metadata` and the pipeline will register the study with ENA before submitting your data. See the [usage documentation](docs/usage.md#submission-study) for more details. ### Data privacy @@ -191,7 +114,7 @@ The pipeline supports private submissions. See the [usage documentation](docs/us ### Database setup (`CheckM2` and `CAT_pack`) -The `mags`/`bins` workflow requires databases for completeness/contamination estimation and taxonomy assignment. See [Usage documentation](usage.md) for details. +The `mags`/`bins` workflow requires databases for completeness/contamination estimation and taxonomy assignment. See [Usage documentation](usage.md) for more details. ### Required parameters: diff --git a/docs/usage.md b/docs/usage.md index bc30044..d666aad 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -76,12 +76,12 @@ mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default, > [!NOTE] > More information about envioronment tags can be found at checklists [ERC000050](https://www.ebi.ac.uk/ena/browser/view/ERC000050) for bins and [ERC000047](https://www.ebi.ac.uk/ena/browser/view/ERC000047) for MAGs under the field names "broad-scale environmental context", "local environmental context", and "environmental medium". +If `genome_coverage`, `stats_generation_software`, `completeness`, `contamination`, `RNA_presence`, or `NCBI_lineage` are missing, the workflow can calculate or infer them when the required inputs are available. See the [Methods documentation](docs/methods.md) for more information on how metadata statistics are obtained. + ### `metagenomic_assemblies` mode (`ASSEMBLYSUBMIT`) Use this samplesheet structure for metagenomic assembly submission. The input format follows [assets/schema_input_assembly.json](../assets/schema_input_assembly.json). -Provide either read files (`fastq_1`, optionally `fastq_2`) or a `coverage` value for each row. If `coverage` is missing and reads are provided, the workflow calculates average coverage automatically. - Example: ```csv title="samplesheet_assembly.csv" @@ -104,7 +104,7 @@ assembly_002,data/assembly_002.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 | `assembler` | Yes | Name of the assembler software used to generate the assembly. | | `assembler_version` | Yes | Version of the assembler software used to generate the assembly. | -An example file is available at [assets/samplesheet_assembly.csv](../assets/samplesheet_assembly.csv). +Provide either read files (`fastq_1`, optionally `fastq_2`) or a `coverage` value for each row. If `coverage` is missing and reads are provided, the workflow calculates average coverage with `coverm`. See the [Methods documentation](docs/methods.md) for more information on how coverage is calculated. ### `reads` mode (`READSUBMIT`) From 93940733a3fea8ff3757c12158e985bfc0ec9af5 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Fri, 10 Jul 2026 13:49:34 +0100 Subject: [PATCH 19/47] Add Table of Contents to usage.md --- docs/usage.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/usage.md b/docs/usage.md index d666aad..995ec2a 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -4,6 +4,23 @@ > _Documentation of pipeline parameters is generated automatically from the pipeline schema and can no longer be found in markdown files._ +## Table of Contents + +- [Introduction](#introduction) +- [Before you start](#before-you-start) +- [Samplesheet input](#samplesheet-input) + - [`mags` and `bins` modes](#mags-and-bins-modes-genomesubmit) + - [`metagenomic_assemblies` mode](#metagenomic_assemblies-mode-assemblysubmit) + - [`reads` mode](#reads-mode-readsubmit) +- [Submission study](#submission-study) +- [Data privacy](#data-privacy) +- [Database preparation (`mags` / `bins` modes)](#database-preparation-mags--bins) +- [Running the pipeline](#running-the-pipeline) +- [Core Nextflow arguments](#core-nextflow-arguments) +- [Custom configuration](#custom-configuration) +- [Running in the background](#running-in-the-background) +- [Nextflow memory requirements](#nextflow-memory-requirements) + ## Introduction `nf-core/seqsubmit` is a Nextflow pipeline for submitting metagenomic assemblies, MAGs, bins, and raw reads to ENA. From cd8d99a23b7b76ce70fde5c03533de786d3ad7e0 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Fri, 10 Jul 2026 13:54:33 +0100 Subject: [PATCH 20/47] move Submission Study section up in usage.md --- docs/usage.md | 126 +++++++++++++++++++++++++------------------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index 995ec2a..eaef351 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -8,11 +8,11 @@ - [Introduction](#introduction) - [Before you start](#before-you-start) +- [Submission study](#submission-study) - [Samplesheet input](#samplesheet-input) - [`mags` and `bins` modes](#mags-and-bins-modes-genomesubmit) - [`metagenomic_assemblies` mode](#metagenomic_assemblies-mode-assemblysubmit) - [`reads` mode](#reads-mode-readsubmit) -- [Submission study](#submission-study) - [Data privacy](#data-privacy) - [Database preparation (`mags` / `bins` modes)](#database-preparation-mags--bins) - [Running the pipeline](#running-the-pipeline) @@ -46,6 +46,68 @@ nextflow secrets set ENA_WEBIN "Webin-XXX" nextflow secrets set ENA_WEBIN_PASSWORD "XXX" ``` +## Submission study + +All data submitted through this pipeline must be associated with an ENA study (project). You have two options: + +### Option 1 — Use an existing study + +If you already have an ENA study, pass its accession (starting with `PRJ` or `ERP`) via `--submission_study`: + +```bash +--submission_study PRJEB12345 +``` + +You can create a study manually via the [Webin Portal](https://www.ebi.ac.uk/ena/submit/webin/login) and then use the assigned accession here. + +### Option 2 — Register a new study automatically + +Provide a study metadata file via `--study_metadata` and the pipeline will register the study with ENA before submitting your data: + +```bash +--study_metadata study_metadata.json +``` + +The pipeline accepts JSON, CSV, and TSV formats. + +#### JSON formats + +Single study as a flat object: + +```json +{ + "alias": "study-gut-2026", + "study_title": "Gut microbiome study", + "study_abstract": "Characterisation of gut microbial communities" +} +``` + +#### CSV format + +```csv +alias,study_title,study_abstract +study-gut-2026,Gut microbiome study,Characterisation of gut microbial communities +``` + +#### TSV format + +```tsv +alias study_title study_abstract +study-soil-2026 Soil microbiome study Survey of soil microbiota +``` + +#### Study metadata fields + +| Field | Required | Description | +| --------------------- | -------- | ---------------------------------------------------------------------------- | +| `study_title` | Yes | Descriptive title of the study. | +| `alias` | Yes | Unique project alias within your Webin account. Max length is 50 characters. | +| `study_abstract` | No | Free-text abstract describing the study. | +| `study_description` | No | Alternative to `study_abstract`. | +| `project_name` | No | Project name. Defaults to `study_title`. | +| `existing_study_type` | No | ENA study type (e.g. `Metagenomics`, `Other`). | +| `new_study_type` | No | Custom study type. Only used when `existing_study_type` is set to `Other`. | + ## Samplesheet input You will need to create a samplesheet with information about the data entries you would like to process before running the pipeline. Use `--input` parameter to specify its location. It has to be a comma-separated file with the structure defined by the execution `--mode`. @@ -153,68 +215,6 @@ pacbio_run_001,SAMEA7654321,data/pacbio_reads.fastq.gz,,PACBIO_SMRT,PacBio Seque | `library_name` | No | Descriptive library name (optional). | | `description` | No | Free-text description of the experiment (optional). | -## Submission study - -All data submitted through this pipeline must be associated with an ENA study (project). You have two options: - -### Option 1 — Use an existing study - -If you already have an ENA study, pass its accession (starting with `PRJ` or `ERP`) via `--submission_study`: - -```bash ---submission_study PRJEB12345 -``` - -You can create a study manually via the [Webin Portal](https://www.ebi.ac.uk/ena/submit/webin/login) and then use the assigned accession here. - -### Option 2 — Register a new study automatically - -Provide a study metadata file via `--study_metadata` and the pipeline will register the study with ENA before submitting your data: - -```bash ---study_metadata study_metadata.json -``` - -The pipeline accepts JSON, CSV, and TSV formats. - -#### JSON formats - -Single study as a flat object: - -```json -{ - "alias": "study-gut-2026", - "study_title": "Gut microbiome study", - "study_abstract": "Characterisation of gut microbial communities" -} -``` - -#### CSV format - -```csv -alias,study_title,study_abstract -study-gut-2026,Gut microbiome study,Characterisation of gut microbial communities -``` - -#### TSV format - -```tsv -alias study_title study_abstract -study-soil-2026 Soil microbiome study Survey of soil microbiota -``` - -#### Study metadata fields - -| Field | Required | Description | -| --------------------- | -------- | ---------------------------------------------------------------------------- | -| `study_title` | Yes | Descriptive title of the study. | -| `alias` | Yes | Unique project alias within your Webin account. Max length is 50 characters. | -| `study_abstract` | No | Free-text abstract describing the study. | -| `study_description` | No | Alternative to `study_abstract`. | -| `project_name` | No | Project name. Defaults to `study_title`. | -| `existing_study_type` | No | ENA study type (e.g. `Metagenomics`, `Other`). | -| `new_study_type` | No | Custom study type. Only used when `existing_study_type` is set to `Other`. | - ## Data privacy You can reference private ENA data if you have access to it via your Webin account (it was submitted previously under your credentials). To use private data accessions in your submission metadata, specify the `--is_private` flag. The pipeline will then use your provided Webin credentials to fetch the required metadata. From ae6b4627c82977799cfe88f844bfd5a251a02ecc Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Fri, 10 Jul 2026 14:14:50 +0100 Subject: [PATCH 21/47] Expand Requirements to include required pre-submissions --- README.md | 6 ++++-- docs/usage.md | 15 +++++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index f13b535..e66d1de 100644 --- a/README.md +++ b/README.md @@ -53,9 +53,11 @@ Currently, the pipeline supports four submission modes, each routed to a dedicat - [Nextflow](https://www.nextflow.io/) `>=25.04.0` - Webin account registered at https://www.ebi.ac.uk/ena/submit/webin/login -- Raw reads used to assemble contigs submitted to [INSDC](https://www.insdc.org/) and associated accessions available +- For metagenomic assemblies submission the raw reads used to generate the assemblies have to be submitted to INSDC/ENA to obtain the corresponding run accessions. You can use the pipeline in mode `reads` to perform this. +- For MAGs or bins submission the raw reads only or raw reads and metagenomic assemblies used to generate the MAGs/bins have to be submitted to INSDC/ENA to obtain the corresponding run or assembly accessions. You can use the pipeline in mode `reads` or `metagenomic_assemblies` to perform this. +- For raw reads submission it is required to register source BioSamples and obtain the sample accessions. -Setup your environment secrets before running the pipeline: +Setup Webin credentials as Nextflow secrets before running the pipeline: `nextflow secrets set ENA_WEBIN "Webin-XXX"` diff --git a/docs/usage.md b/docs/usage.md index eaef351..949e1b4 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -37,14 +37,17 @@ Before running the pipeline, make sure that: - Nextflow `>=25.04.0` is available. - You have a Webin account registered at . -- The raw reads used to generate the submitted assemblies have already been submitted to INSDC/ENA and the relevant accessions are available. +- For metagenomic assemblies submission the raw reads used to generate the assemblies have to be submitted to INSDC/ENA to obtain the corresponding run accessions. You can use the pipeline in mode `reads` to perform this. +- For MAGs or bins submission the raw reads only or raw reads and metagenomic assemblies used to generate the MAGs/bins have to be submitted to INSDC/ENA to obtain the corresponding run or assembly accessions. You can use the pipeline in mode `reads` or `metagenomic_assemblies` to perform this. +- For raw reads submission it is required to register source BioSamples and obtain the sample accessions. -Set your Webin credentials as Nextflow secrets: +Setup Webin credentials as Nextflow secrets before running the pipeline: -```bash -nextflow secrets set ENA_WEBIN "Webin-XXX" -nextflow secrets set ENA_WEBIN_PASSWORD "XXX" -``` +`nextflow secrets set ENA_WEBIN "Webin-XXX"` + +`nextflow secrets set ENA_WEBIN_PASSWORD "XXX"` + +Make sure you update commands above with your authorised credentials. ## Submission study From bea141a3c6b922941b68e823ff2ac93af6d5514e Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Fri, 10 Jul 2026 16:26:42 +0100 Subject: [PATCH 22/47] Apply James' suggesstions in usage.md --- docs/usage.md | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index 949e1b4..ad69cdb 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -153,10 +153,10 @@ mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default, | `local_environment` | Yes | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". | | `environmental_medium` | Yes | Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). | | `RNA_presence` | No | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: Yes or No. | -| `NCBI_lineage` | No | NCBI taxonomy lineage of the genome. Can be composted of either numerical IDs or taxon names separated by ";". | +| `NCBI_lineage` | No | NCBI taxonomy lineage of the genome. Can be composted of either numerical IDs or official NCBI taxon names separated by ";". | > [!NOTE] -> More information about envioronment tags can be found at checklists [ERC000050](https://www.ebi.ac.uk/ena/browser/view/ERC000050) for bins and [ERC000047](https://www.ebi.ac.uk/ena/browser/view/ERC000047) for MAGs under the field names "broad-scale environmental context", "local environmental context", and "environmental medium". +> More information about environment tags can be found at checklists [ERC000050](https://www.ebi.ac.uk/ena/browser/view/ERC000050) for bins and [ERC000047](https://www.ebi.ac.uk/ena/browser/view/ERC000047) for MAGs under the field names "broad-scale environmental context", "local environmental context", and "environmental medium". If `genome_coverage`, `stats_generation_software`, `completeness`, `contamination`, `RNA_presence`, or `NCBI_lineage` are missing, the workflow can calculate or infer them when the required inputs are available. See the [Methods documentation](docs/methods.md) for more information on how metadata statistics are obtained. @@ -210,7 +210,7 @@ pacbio_run_001,SAMEA7654321,data/pacbio_reads.fastq.gz,,PACBIO_SMRT,PacBio Seque | `fastq_1` | Yes | Path to forward reads in FASTQ format (optionally gzipped). | | `fastq_2` | No | Path to reverse reads for paired-end data. Leave empty for single-end reads. | | `platform` | Yes | Sequencing platform. Supported values: `ILLUMINA`, `PACBIO_SMRT`, `OXFORD_NANOPORE`, `ION_TORRENT`, `CAPILLARY`, `DNBSEQ`, `ELEMENT`, `GENAPSYS`, `GENEMIND`, `HELICOS`, `LS454`, `BGISEQ`, `ULTIMA`, `VELA_DIAGNOSTICS`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | -| `instrument` | Yes | Sequencer model, e.g. "Illumina HiSeq 2000", "PacBio Sequel", "MinION". | +| `instrument` | Yes | Sequencer model, e.g. "Illumina HiSeq 2000", "PacBio Sequel", "MinION". See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#permitted-values-for-instrument) | | `library_source` | Yes | Library source type. Options: `GENOMIC`, `METAGENOMIC`, `TRANSCRIPTOMIC`, `METAGENOMIC SINGLE CELL`, `TRANSCRIPTOMIC SINGLE CELL`, `SYNTHETIC`, `VIRAL RNA`, `OTHER`. | | `library_selection` | Yes | Library selection method. Options: `RANDOM`, `PCR`, `RANDOM PCR`, `RT-PCR`, `MF`, `cDNA`, `cDNA_randomPriming`, `cDNA_oligo_dT`, `PolyA`, `Inverse rRNA`, `ChIP`, `MNase`, `DNase`, `Hybrid Selection`, etc. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | | `library_strategy` | Yes | Library strategy. Options: `WGS`, `WGA`, `WXS`, `RNA-Seq`, `miRNA-Seq`, `ncRNA-Seq`, `EST`, `Hi-C`, `ATAC-seq`, `WCS`, `RAD-Seq`, `CLONE`, `AMPLICON`, `POOLCLONE`, `etc`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | @@ -241,21 +241,19 @@ The `GENOMESUBMIT` workflow uses `CheckM2` and `CAT_pack` that require specializ You can either provide pre-existing databases or let the pipeline prepare them during execution. +As databases preparation can take significant time, we strongly recommend downloading them locally and storing them in a local cache folder for reuse across runs. +In particular the `CAT_pack` database is extremely large and may take a long time to download and compute. + - `CheckM2`: - - provide the path to local database with `--checkm2_db`, otherwise the pipeline downloads version specified with `--checkm2_db_download_id` (by default `14897628`). + - provide the path to local database with `--checkm2_db`, otherwise the pipeline downloads version specified with `--checkm2_db_download_id` (by default Zenodo accession `14897628`). - `CAT_pack`: - provide the path to local database (containing `tax/` and `db/` folders or `tar.gz` archive) with `--cat_db`, otherwise the pipeline constructs version specified with `--cat_db_download_id` (by default `nr`). See [CAT_pack documentation](https://github.com/MGXlab/CAT_pack) and [CheckM2 documentation](https://github.com/chklovski/CheckM2) for more details on usage and creation of databases. -> [!IMPORTANT] -> `CAT_pack` database creation can take significant time. -> -> Reusing an existing database is strongly recommended for repeated runs. -> -> Databases created/downloaded by the pipeline are published under: -> `${params.outdir}/databases/` +Databases created/downloaded by the pipeline are published under: +`/databases/`. In the subsequent pipeline runs it is strongly recommended to reuse them using `--cat_db /databases/cat_pack/` and `--cat_db /databases/checkm2/`. ## Running the pipeline From 59c774654cef2c04b30ea4401dd2a654d4a070e9 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Wed, 15 Jul 2026 16:29:22 +0100 Subject: [PATCH 23/47] restructure usage.md --- docs/usage.md | 381 +++++++++++++++++++++++++++++++------------------- 1 file changed, 241 insertions(+), 140 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index ad69cdb..aa43cc0 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -9,13 +9,26 @@ - [Introduction](#introduction) - [Before you start](#before-you-start) - [Submission study](#submission-study) -- [Samplesheet input](#samplesheet-input) - - [`mags` and `bins` modes](#mags-and-bins-modes-genomesubmit) - - [`metagenomic_assemblies` mode](#metagenomic_assemblies-mode-assemblysubmit) - - [`reads` mode](#reads-mode-readsubmit) +- [`reads` mode](#reads-mode) + - [Prerequisites](#prerequisites) + - [Samplesheet input](#samplesheet-input) + - [Running the pipeline in `reads` mode](#running-the-pipeline-in-reads-mode) + - [Limitations](#limitations) +- [`metagenomic_assemblies` mode](#metagenomic_assemblies-mode) + - [Prerequisites](#prerequisites-1) + - [Samplesheet input](#samplesheet-input-1) + - [Running the pipeline in `metagenomic_assemblies` mode](#running-the-pipeline-in-metagenomic_assemblies-mode) + - [Limitations](#limitations-1) +- [`mags` and `bins` modes](#mags-and-bins-modes) + - [Prerequisites](#prerequisites-2) + - [Samplesheet input](#samplesheet-input-2) + - [Database preparation (`CheckM2` and `CAT_pack`)](#database-preparation-checkm2-and-cat_pack) + - [Running the pipeline in `mags` and `bins` modes](#running-the-pipeline-in-mags-and-bins-modes) + - [Limitations](#limitations-2) - [Data privacy](#data-privacy) -- [Database preparation (`mags` / `bins` modes)](#database-preparation-mags--bins) - [Running the pipeline](#running-the-pipeline) + - [Updating the pipeline](#updating-the-pipeline) + - [Reproducibility](#reproducibility) - [Core Nextflow arguments](#core-nextflow-arguments) - [Custom configuration](#custom-configuration) - [Running in the background](#running-in-the-background) @@ -23,31 +36,33 @@ ## Introduction -`nf-core/seqsubmit` is a Nextflow pipeline for submitting metagenomic assemblies, MAGs, bins, and raw reads to ENA. +`nf-core/seqsubmit` is a Nextflow pipeline for submitting sequence data to ENA. -The pipeline supports three workflow paths: +The pipeline supports of the following data types, selected via `--mode` parameter: -- `GENOMESUBMIT` for `--mode mags` and `--mode bins` -- `ASSEMBLYSUBMIT` for `--mode metagenomic_assemblies` -- `READSUBMIT` for `--mode reads` +- `reads` — raw sequencing reads +- `metagenomic_assemblies` — metagenomic assemblies +- `mags` / `bins` — metagenome-assembled genomes (MAGs) or metagenomic bins + +Each mode has its own samplesheet structure, prerequisites, and limitations — see the dedicated section for the mode you want to use below. The [Before you start](#before-you-start), [Submission study](#submission-study), [Running the pipeline](#running-the-pipeline), and [Data privacy](#data-privacy) sections apply to all modes. ## Before you start -Before running the pipeline, make sure that: +Before running the pipeline in any mode, make sure that: - Nextflow `>=25.04.0` is available. - You have a Webin account registered at . -- For metagenomic assemblies submission the raw reads used to generate the assemblies have to be submitted to INSDC/ENA to obtain the corresponding run accessions. You can use the pipeline in mode `reads` to perform this. -- For MAGs or bins submission the raw reads only or raw reads and metagenomic assemblies used to generate the MAGs/bins have to be submitted to INSDC/ENA to obtain the corresponding run or assembly accessions. You can use the pipeline in mode `reads` or `metagenomic_assemblies` to perform this. -- For raw reads submission it is required to register source BioSamples and obtain the sample accessions. -Setup Webin credentials as Nextflow secrets before running the pipeline: + Set your Webin credentials as Nextflow secrets: -`nextflow secrets set ENA_WEBIN "Webin-XXX"` + ```bash + nextflow secrets set ENA_WEBIN "Webin-XXX" + nextflow secrets set ENA_WEBIN_PASSWORD "XXX" + ``` -`nextflow secrets set ENA_WEBIN_PASSWORD "XXX"` +- You prepared either study accession or study metadata file to set a submission study to assosiate the submission with. See [Submission study](#submission-study) section below for details. -Make sure you update commands above with your authorised credentials. +Each mode also has additional prerequisites — see its own "Prerequisites" subsection below. ## Submission study @@ -61,7 +76,7 @@ If you already have an ENA study, pass its accession (starting with `PRJ` or `ER --submission_study PRJEB12345 ``` -You can create a study manually via the [Webin Portal](https://www.ebi.ac.uk/ena/submit/webin/login) and then use the assigned accession here. +You can create a study manually via the [Webin Portal](https://www.ebi.ac.uk/ena/submit/webin/login) following [these instructions](https://ena-docs.readthedocs.io/en/latest/submit/study/interactive.html) and then use the assigned study accession. ### Option 2 — Register a new study automatically @@ -111,58 +126,78 @@ study-soil-2026 Soil microbiome study Survey of soil microbiota | `existing_study_type` | No | ENA study type (e.g. `Metagenomics`, `Other`). | | `new_study_type` | No | Custom study type. Only used when `existing_study_type` is set to `Other`. | -## Samplesheet input +## `reads` mode -You will need to create a samplesheet with information about the data entries you would like to process before running the pipeline. Use `--input` parameter to specify its location. It has to be a comma-separated file with the structure defined by the execution `--mode`. +### Prerequisites -```bash ---input '[path to samplesheet.csv]' -``` +In addition to the general [prerequisites](#before-you-start), for `reads` mode: + +- You need to register the source BioSamples and obtain the sample accessions as described in [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/samples.html). Those have to be provided in `sample_accession` column of the samplesheet. -### `mags` and `bins` modes (`GENOMESUBMIT`) +### Samplesheet input -Use this samplesheet structure for MAG and bin submission. The input format follows [assets/schema_input_genome.json](../assets/schema_input_genome.json). +You will need to create a samplesheet with information about the raw reads you would like to submit before running the pipeline. Use `--input` to specify its location. It must be a comma-separated file with the structure that follows [assets/schema_input_reads.json](../assets/schema_input_reads.json). Example: -```csv title="samplesheet_genomes.csv" -sample,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage -mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default,CheckM2 1.0.1,92.81,1.09,66.04,sediment metagenome,No,marine,cable bacteria,marine sediment,No,d__Bacteria;p__Proteobacteria;s__ +```csv title="samplesheet_reads.csv" +sample,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description +illumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLUMINA,Illumina HiSeq 2000,GENOMIC,RANDOM,WGS,500,HiSeq_library_001,Illumina sequencing of sample XYZ +pacbio_run_001,SAMEA7654321,data/pacbio_reads.fastq.gz,,PACBIO_SMRT,PacBio Sequel,GENOMIC,RANDOM,WGS,,PacBio_library_002,Long-read sequencing ``` > [!IMPORTANT] > **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. -| Column | Required | Description | -| --------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset (used as `meta.id` throughout the pipeline). | -| `fasta` | Yes | Path to MAG/bin contigs in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. | -| `accession` | Yes | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | -| `fastq_1` | Conditional | Path to the read file in FASTQ format used to generate the source metagenomic assembly. Required if `genome_coverage` is not provided. | -| `fastq_2` | No | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | -| `assembly_software` | Yes | Tool name and version that were used to generate the source metagenomic assembly. | -| `binning_software` | Yes | Binning tool, including version, that was used to generate the bins. | -| `binning_parameters` | Yes | Arguments that were used during binning. | -| `stats_generation_software` | No | Tool, including version, that was used to calculate completeness and contamination. | -| `completeness` | No | Genome completeness value. | -| `contamination` | No | Genome contamination value. | -| `genome_coverage` | Conditional | Estimated average sequencing depth across the genome. If the value is missing, it is computed automatically during pipeline execution when reads are provided. | -| `metagenome` | Yes | Registered metagenome taxonomic identifier or name that matches an existing ENA taxonomy entry. For more details see https://ena-docs.readthedocs.io/en/latest/faq/taxonomy.html | -| `co-assembly` | Yes | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: Yes or No. | -| `broad_environment` | Yes | Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428) | -| `local_environment` | Yes | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". | -| `environmental_medium` | Yes | Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). | -| `RNA_presence` | No | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: Yes or No. | -| `NCBI_lineage` | No | NCBI taxonomy lineage of the genome. Can be composted of either numerical IDs or official NCBI taxon names separated by ";". | +| Column | Required | Description | +| ------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sample` | Yes | Unique identifier of this particular data entry. Used as an experiment name. | +| `sample_accession` | Yes | ENA sample accession (starting with SAMEA) of the sample used to generate raw reads. | +| `fastq_1` | Yes | Path to forward reads in FASTQ format (optionally gzipped). | +| `fastq_2` | No | Path to reverse reads for paired-end data. Leave empty for single-end reads. | +| `platform` | Yes | Sequencing platform. Supported values: `ILLUMINA`, `PACBIO_SMRT`, `OXFORD_NANOPORE`, `ION_TORRENT`, `CAPILLARY`, `DNBSEQ`, `ELEMENT`, `GENAPSYS`, `GENEMIND`, `HELICOS`, `LS454`, `BGISEQ`, `ULTIMA`, `VELA_DIAGNOSTICS`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | +| `instrument` | Yes | Sequencer model, e.g. "Illumina HiSeq 2000", "PacBio Sequel", "MinION". See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#permitted-values-for-instrument). | +| `library_source` | Yes | Library source type. Options: `GENOMIC`, `METAGENOMIC`, `TRANSCRIPTOMIC`, `METAGENOMIC SINGLE CELL`, `TRANSCRIPTOMIC SINGLE CELL`, `SYNTHETIC`, `VIRAL RNA`, `OTHER`. | +| `library_selection` | Yes | Library selection method. Options: `RANDOM`, `PCR`, `RANDOM PCR`, `RT-PCR`, `MF`, `cDNA`, `cDNA_randomPriming`, `cDNA_oligo_dT`, `PolyA`, `Inverse rRNA`, `ChIP`, `MNase`, `DNase`, `Hybrid Selection`, etc. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | +| `library_strategy` | Yes | Library strategy. Options: `WGS`, `WGA`, `WXS`, `RNA-Seq`, `miRNA-Seq`, `ncRNA-Seq`, `EST`, `Hi-C`, `ATAC-seq`, `WCS`, `RAD-Seq`, `CLONE`, `AMPLICON`, `POOLCLONE`, `etc`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | +| `insert_size` | No | Fragment/insert size for paired-end reads (e.g., 500 for 500 bp inserts). Leave empty if not applicable. | +| `library_name` | No | Descriptive library name (optional). | +| `description` | No | Free-text description of the experiment (optional). | -> [!NOTE] -> More information about environment tags can be found at checklists [ERC000050](https://www.ebi.ac.uk/ena/browser/view/ERC000050) for bins and [ERC000047](https://www.ebi.ac.uk/ena/browser/view/ERC000047) for MAGs under the field names "broad-scale environmental context", "local environmental context", and "environmental medium". +### Running the pipeline in `reads` mode -If `genome_coverage`, `stats_generation_software`, `completeness`, `contamination`, `RNA_presence`, or `NCBI_lineage` are missing, the workflow can calculate or infer them when the required inputs are available. See the [Methods documentation](docs/methods.md) for more information on how metadata statistics are obtained. +`reads` mode does not add any parameters beyond the [common parameters](#running-the-pipeline). + +Example `reads` mode upload to TEST server, run command with docker: + +```bash +nextflow run nf-core/seqsubmit \ + -profile docker \ + --mode reads \ + --input samplesheet_reads.csv \ + --submission_study \ + --webincli_mode submit \ + --test_upload \ + --outdir reads_submission/ +``` + +### Limitations + +`reads` mode does not support the following: + +- **Reads in non-FASTQ formats**: Only reads provided as FASTQ (`.fastq.gz`) can be submitted. Other formats (e.g. BAM) are not supported as input. + +## `metagenomic_assemblies` mode + +### Prerequisites -### `metagenomic_assemblies` mode (`ASSEMBLYSUBMIT`) +In addition to the general [prerequisites](#before-you-start), for `metagenomic_assemblies` mode: -Use this samplesheet structure for metagenomic assembly submission. The input format follows [assets/schema_input_assembly.json](../assets/schema_input_assembly.json). +- The raw reads used to generate the assemblies have have to be submitted to INSDC/ENA to obtain the corresponding run accessions. Refer to the [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads.html) for details. You can use `seqsubmit` in `reads` mode to do this. Assigned run accessions have to be provided in `run_accession` column of the samplesheet. + +### Samplesheet input + +You will need to create a samplesheet with information about the metagenomic assemblies you would like to submit before running the pipeline. Use `--input` to specify its location. It must be a comma-separated file with the structure that follows [assets/schema_input_assembly.json](../assets/schema_input_assembly.json). Example: @@ -177,7 +212,7 @@ assembly_002,data/assembly_002.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 | Column | Required | Description | | ------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset (used as `meta.id` throughout the pipeline). | +| `sample` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | | `fasta` | Yes | Path to assembly contigs in FASTA format compressed with `gzip`. | | `fastq_1` | Conditional | Path to the read file in FASTQ format used to generate the metagenomic assembly. Required if `coverage` is not provided. | | `fastq_2` | No | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | @@ -188,56 +223,104 @@ assembly_002,data/assembly_002.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 Provide either read files (`fastq_1`, optionally `fastq_2`) or a `coverage` value for each row. If `coverage` is missing and reads are provided, the workflow calculates average coverage with `coverm`. See the [Methods documentation](docs/methods.md) for more information on how coverage is calculated. -### `reads` mode (`READSUBMIT`) +### Running the pipeline in `metagenomic_assemblies` mode -Use this samplesheet structure for raw sequencing reads submission. The input format follows [assets/schema_input_reads.json](../assets/schema_input_reads.json). +In addition to the [common parameters](#running-the-pipeline): -Example: +| Parameter | Required | Description | +| -------------- | -------- | -------------------------------------------------------------------------- | +| `--upload_tpa` | No | Mark assemblies as third party assemblies when required. Default: `false`. | -```csv title="samplesheet_reads.csv" -sample,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description -illumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLUMINA,Illumina HiSeq 2000,GENOMIC,RANDOM,WGS,500,HiSeq_library_001,Illumina sequencing of sample XYZ -pacbio_run_001,SAMEA7654321,data/pacbio_reads.fastq.gz,,PACBIO_SMRT,PacBio Sequel,GENOMIC,RANDOM,WGS,,PacBio_library_002,Long-read sequencing +Example `metagenomic_assemblies` mode upload to TEST server, run command with docker: + +```bash +nextflow run nf-core/seqsubmit \ + -profile docker \ + --mode metagenomic_assemblies \ + --input samplesheet_assembly.csv \ + --submission_study \ + --webincli_mode submit \ + --test_upload \ + --outdir assembly_submission ``` -> [!IMPORTANT] -> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. +Example `metagenomic_assemblies` mode upload to LIVE server, run command with docker: -| Column | Required | Description | -| ------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | Yes | Unique identifier of this particular data entry. Used as an experiment name. | -| `sample_accession` | Yes | ENA sample accession (starting with SAMEA) of the sample used to generate raw reads. | -| `fastq_1` | Yes | Path to forward reads in FASTQ format (optionally gzipped). | -| `fastq_2` | No | Path to reverse reads for paired-end data. Leave empty for single-end reads. | -| `platform` | Yes | Sequencing platform. Supported values: `ILLUMINA`, `PACBIO_SMRT`, `OXFORD_NANOPORE`, `ION_TORRENT`, `CAPILLARY`, `DNBSEQ`, `ELEMENT`, `GENAPSYS`, `GENEMIND`, `HELICOS`, `LS454`, `BGISEQ`, `ULTIMA`, `VELA_DIAGNOSTICS`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | -| `instrument` | Yes | Sequencer model, e.g. "Illumina HiSeq 2000", "PacBio Sequel", "MinION". See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#permitted-values-for-instrument) | -| `library_source` | Yes | Library source type. Options: `GENOMIC`, `METAGENOMIC`, `TRANSCRIPTOMIC`, `METAGENOMIC SINGLE CELL`, `TRANSCRIPTOMIC SINGLE CELL`, `SYNTHETIC`, `VIRAL RNA`, `OTHER`. | -| `library_selection` | Yes | Library selection method. Options: `RANDOM`, `PCR`, `RANDOM PCR`, `RT-PCR`, `MF`, `cDNA`, `cDNA_randomPriming`, `cDNA_oligo_dT`, `PolyA`, `Inverse rRNA`, `ChIP`, `MNase`, `DNase`, `Hybrid Selection`, etc. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | -| `library_strategy` | Yes | Library strategy. Options: `WGS`, `WGA`, `WXS`, `RNA-Seq`, `miRNA-Seq`, `ncRNA-Seq`, `EST`, `Hi-C`, `ATAC-seq`, `WCS`, `RAD-Seq`, `CLONE`, `AMPLICON`, `POOLCLONE`, `etc`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | -| `insert_size` | No | Fragment/insert size for paired-end reads (e.g., 500 for 500 bp inserts). Leave empty if not applicable. | -| `library_name` | No | Descriptive library name (optional). | -| `description` | No | Free-text description of the experiment (optional). | +```bash +nextflow run nf-core/seqsubmit \ + -profile docker \ + --mode metagenomic_assemblies \ + --input samplesheet_assembly.csv \ + --submission_study \ + --test_upload false \ + --webincli_mode submit \ + --outdir assemblies_submission/ +``` -## Data privacy +### Limitations -You can reference private ENA data if you have access to it via your Webin account (it was submitted previously under your credentials). To use private data accessions in your submission metadata, specify the `--is_private` flag. The pipeline will then use your provided Webin credentials to fetch the required metadata. +`metagenomic_assemblies` mode does not yet support the following: -You can also control the privacy of your submitted data: +- **Co-assemblies**: Metagenomic co-assemblies are not supported. The pipeline currently expects each assembly to be derived from a single run. Tracked in [issue #61](https://github.com/nf-core/seqsubmit/issues/61), addressed in [PR #66](https://github.com/nf-core/seqsubmit/pull/66). -- If you provide an existing study via `--submission_study`, your submission will inherit the same privacy status as that study. -- If no study is provided, the pipeline will register a new one for you. To keep this new study private, you must specify a release date using `--release_date YYYY-MM-DD` (up to 2 years from the current date). +- **Submission of an assembly without submitting the raw reads**: Assemblies that have no associated reads accession (`run_accession` column in the samplesheet) are not supported, since the pipeline relies on that lineage to build the required metadata. Tracked in [issue #29](https://github.com/nf-core/seqsubmit/issues/29). + +- **Single-contig assemblies**: Assemblies that consist of only one contig cannot be uploaded through this pipeline. ENA classifies these as "chromosomal assemblies", which follow a different submission procedure with different metadata requirements. If you have a single-contig assembly to submit, please contact [ENA support](https://www.ebi.ac.uk/ena/browser/support) for guidance. + +- **Coverage calculation from long reads**: `coverage` calculation via `coverm` has only been tested and validated with short reads (e.g. Illumina). It has not been tested with long reads (PacBio, Nanopore). Exercise caution when processing data generated from long reads, as issues may occur. + +## `mags` and `bins` modes + +### Prerequisites + +In addition to the general [prerequisites](#before-you-start), for `mags` or `bins` mode: + +- The raw reads only, or raw reads and metagenomic assemblies, used to generate the MAGs/bins have to be submitted to INSDC/ENA to obtain the corresponding run or assembly accessions. Refer to the [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads.html) for details. You can use the pipeline in `reads` and `metagenomic_assemblies` mode to do this. Assigned run or assembly accessions have to be provided in `accession` column of the samplesheet. + +### Samplesheet input + +You will need to create a samplesheet with information about the MAGs/bins you would like to submit before running the pipeline. Use `--input` to specify its location. It must be a comma-separated file with the structure that follows [assets/schema_input_genome.json](../assets/schema_input_genome.json). + +Example: + +```csv title="samplesheet_genomes.csv" +sample,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage +mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default,CheckM2 1.0.1,92.81,1.09,66.04,sediment metagenome,No,marine,cable bacteria,marine sediment,No,d__Bacteria;p__Proteobacteria;s__ +``` + +> [!IMPORTANT] +> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. + +| Column | Required | Description | +| --------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sample` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | +| `fasta` | Yes | Path to MAG/bin contigs in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. | +| `accession` | Yes | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | +| `fastq_1` | Conditional | Path to the read file in FASTQ format used to generate the source metagenomic assembly. Required if `genome_coverage` is not provided. | +| `fastq_2` | No | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | +| `assembly_software` | Yes | Tool name and version that were used to generate the source metagenomic assembly. | +| `binning_software` | Yes | Binning tool, including version, that was used to generate the bins. | +| `binning_parameters` | Yes | Arguments that were used during binning. | +| `stats_generation_software` | No | Tool, including version, that was used to calculate completeness and contamination. | +| `completeness` | No | Genome completeness value. | +| `contamination` | No | Genome contamination value. | +| `genome_coverage` | Conditional | Estimated average sequencing depth across the genome. If the value is missing, it is computed automatically during pipeline execution when reads are provided. | +| `metagenome` | Yes | Registered metagenome taxonomic identifier or name that matches an existing ENA taxonomy entry. For more details see https://ena-docs.readthedocs.io/en/latest/faq/taxonomy.html | +| `co-assembly` | Yes | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: Yes or No. | +| `broad_environment` | Yes | Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428) | +| `local_environment` | Yes | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". | +| `environmental_medium` | Yes | Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). | +| `RNA_presence` | No | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: Yes or No. | +| `NCBI_lineage` | No | NCBI taxonomy lineage of the genome. Can be composted of either numerical IDs or official NCBI taxon names separated by ";". | -| Example | Source Data | Submission Visibility | Required Arguments | Result | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | --------------------- | ------------------------------------------------------ | ----------------------------------------------------- | -| Assemblies generated from public reads. Assemblies should be public immediately after submission | public | public | – | SUCCESS | -| Assemblies generated from public reads. Assemblies should remain private for 1 year after submission | public | private | `--release_date YYYY-MM-DD` (+1 year) | SUCCESS | -| Bins generated from private reads and assemblies. Bins should be public after submission. User **has access** to the reads and assemblies via Webin account | private | public | `--is_private` | SUCCESS | -| Bins generated from private reads and assemblies. Bins should remain private for 2 years after submission. User **has access** via Webin account | private | private | `--is_private`, `--release_date YYYY-MM-DD` (+2 years) | SUCCESS | -| MAGs generated from private reads and assemblies. MAGs should be public after submission. User **does not have access** to the reads and assemblies via Webin account | private | public | – | ERROR (submission can only reference accessible data) | +> [!NOTE] +> More information about environment tags can be found at checklists [ERC000050](https://www.ebi.ac.uk/ena/browser/view/ERC000050) for bins and [ERC000047](https://www.ebi.ac.uk/ena/browser/view/ERC000047) for MAGs under the field names "broad-scale environmental context", "local environmental context", and "environmental medium". + +If `genome_coverage`, `stats_generation_software`, `completeness`, `contamination`, `RNA_presence`, or `NCBI_lineage` are missing, the workflow can calculate or infer them when the required inputs are available. See the [Methods documentation](docs/methods.md) for more information on how metadata statistics are obtained. -## Database preparation (`mags` / `bins`) +### Database preparation (`CheckM2` and `CAT_pack`) -The `GENOMESUBMIT` workflow uses `CheckM2` and `CAT_pack` that require specialized databases for completeness/contamination assessment and taxonomy assignment. +`mags` and `bins` submission modes use `CheckM2` and `CAT_pack` tools that require specialized databases for completeness/contamination assessment and taxonomy assignment. You can either provide pre-existing databases or let the pipeline prepare them during execution. @@ -253,75 +336,93 @@ In particular the `CAT_pack` database is extremely large and may take a long tim See [CAT_pack documentation](https://github.com/MGXlab/CAT_pack) and [CheckM2 documentation](https://github.com/chklovski/CheckM2) for more details on usage and creation of databases. Databases created/downloaded by the pipeline are published under: -`/databases/`. In the subsequent pipeline runs it is strongly recommended to reuse them using `--cat_db /databases/cat_pack/` and `--cat_db /databases/checkm2/`. +`/databases/`. In the subsequent pipeline runs you can reuse them using `--cat_db /databases/cat_pack/` and `--cat_db /databases/checkm2/`. -## Running the pipeline +### Running the pipeline in `mags` and `bins` modes -General command template: +In addition to the [common parameters](#running-the-pipeline): -```bash -nextflow run nf-core/seqsubmit \ - -profile \ - --mode \ - --input \ - --centre_name \ - --submission_study \ - --outdir -``` - -Key parameters: +| Parameter | Required | Description | +| -------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `--upload_tpa` | No | Mark assemblies as third party assemblies when required. Default: `false`. | +| `--checkm2_db` | No | Path to a local `CheckM2` database. If omitted, downloads the version set by `--checkm2_db_download_id`. Default: `14897628` (Zenodo accession). | +| `--cat_db` | No | Path to a local `CAT_pack` database. If omitted, constructs the version set by `--cat_db_download_id`. Default: `nr`. | -| Parameter | Description | -| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| `--mode` | Submission type. Supported values are `mags`, `bins`, `metagenomic_assemblies`, and `reads`. | -| `--input` | Path to the samplesheet describing the data to submit. | -| `--submission_study` | ENA study accession (PRJ/ERP) to submit the data to. For metagenomic assemblies, this is the paper's ENA Assembly Project accession. | -| `--centre_name` | Name of the submitter's organisation. | -| `--test_upload` | Submit to the ENA TEST server instead of the LIVE server. | -| `--webincli_mode` | Webin-CLI mode for ENA interaction: `submit` uploads data, `validate` performs validation only. | -| `--upload_tpa` | Mark assemblies as third party assemblies when required. | - -Test example for `mags` run with docker: +Example `mags` mode upload to TEST server, run command with docker: ```bash nextflow run nf-core/seqsubmit \ -profile docker \ --mode mags \ - --input assets/samplesheet_genomes.csv \ + --input samplesheet_genomes.csv \ --submission_study \ - --centre_name TEST_CENTER \ + --centre_name \ --webincli_mode submit \ --test_upload \ - --outdir results/validate_mags + --outdir mags_submission/ ``` -Test example for `metagenomic_assemblies` run with docker: +### Limitations -```bash -nextflow run nf-core/seqsubmit \ - -profile docker \ - --mode metagenomic_assemblies \ - --input assets/samplesheet_assembly.csv \ - --submission_study \ - --centre_name TEST_CENTER \ - --webincli_mode submit \ - --test_upload \ - --outdir results/validate_assemblies -``` +`mags` and `bins` modes do not yet support the following: + +- **Co-assemblies**: MAGs/bins generated from co-assemblies are not supported. The pipeline currently expects each MAG/bin to be derived from an assembly generated from a single run. Tracked in [issue #61](https://github.com/nf-core/seqsubmit/issues/61). + +- **Eukaryotic and viral bins/MAGs**: Submitting eukaryotic or viral genomes that require additional metadata generation is not supported. For such genomes tRNA and rRNA prediction, quality assessment (completeness/contamination estimation) and taxonomy assignment are not implemented. If all the required metadata (`completeness`, `contamination`, `stats_generation_software`, `RNA_presence` and `NCBI_lineage`) is already provided in the samplesheet, eukaryotic and viral bins/MAGs can still be submitted normally. Tracked in [issue #40](https://github.com/nf-core/seqsubmit/issues/40) (eukaryotic) and [issue #63](https://github.com/nf-core/seqsubmit/issues/63) (viral). -Test example for `reads` run with docker: +- **Submission of a MAG/bin without submitting the assembly or raw reads**: If a MAG/bin cannot be traced back to an assembly accession or a reads accession — i.e. only a sample accession is available — it cannot currently be submitted, since the pipeline relies on that lineage to build the required metadata. Tracked in [issue #87](https://github.com/nf-core/seqsubmit/issues/87). + +- **Single-contig MAGs/bins**: MAGs/bins that consist of only one contig cannot be uploaded through this pipeline. ENA classifies these as "chromosomal assemblies", which follow a different submission procedure with different metadata requirements. If you have a single-contig MAG/bin to submit, please contact [ENA support](https://www.ebi.ac.uk/ena/browser/support) for guidance. + +- **Coverage calculation from long reads**: `genome_coverage` calculation via `coverm` has only been tested and validated with short reads (e.g. Illumina). It has not been tested with long reads (PacBio, Nanopore). Exercise caution when processing data generated from long reads, as issues may occur. + +## Data privacy + +You can reference private ENA data if you have access to it via your Webin account (it was submitted previously under your credentials). To use private data accessions in your submission metadata, specify the `--is_private` flag. The pipeline will then use your provided Webin credentials to fetch the required metadata. + +You can also control the privacy of your submitted data: + +- If you provide an existing study via `--submission_study`, your submission will inherit the same privacy status as that study. +- If no study is provided, the pipeline will register a new one for you. To keep this new study private, you must specify a release date using `--release_date YYYY-MM-DD` (up to 2 years from the current date). + +| Example | Source Data | Submission Visibility | Required Arguments | Result | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | --------------------- | ---------------------------------------- | ----------------------------------------------------- | +| Assemblies generated from public reads. Assemblies should be public immediately after submission | public | public | – | SUCCESS | +| Assemblies generated from public reads. Assemblies should remain private until 1 July 2028 submission | public | private | `--release_date 2028-07-01` | SUCCESS | +| Bins generated from private reads and assemblies. Bins should be public after submission. User **has access** to the reads and assemblies via Webin account | private | public | `--is_private` | SUCCESS | +| Bins generated from private reads and assemblies. Bins should remain private until 1 July 2028. User **has access** via Webin account | private | private | `--is_private --release_date 2028-07-01` | SUCCESS | +| MAGs generated from private reads and assemblies. MAGs should be public after submission. User **does not have access** to the reads and assemblies via Webin account | private | public | – | ERROR (submission can only reference accessible data) | + +## Running the pipeline + +General command template: ```bash nextflow run nf-core/seqsubmit \ - -profile docker \ - --mode reads \ - --input samplesheet_reads.csv \ + -profile \ + --mode \ + --input \ + --centre_name \ --submission_study \ - --webincli_mode submit \ - --test_upload \ - --outdir results/validate_reads + --outdir ``` +Parameters common to all modes: + +| Parameter | Required | Description | +| ------------------------------------------ | ------------ | -------------------------------------------------------------------------------------------------------------------- | +| `--mode` | Yes | Type of the data to be submitted. Options: `mags`, `bins`, `metagenomic_assemblies`, `reads`. | +| `--input` | Yes | Path to the samplesheet describing the data to submit. | +| `--outdir` | Yes | Path to the output directory for pipeline results. | +| `--submission_study` OR `--study_metadata` | Yes (one of) | ENA study accession (PRJ/ERP) to submit the data to OR metadata file in JSON/TSV/CSV format to register a new study. | +| `--centre_name` | Yes | Name of the submitter's organisation. | +| `--test_upload` | No | Submit to the ENA TEST server instead of the LIVE server. Default: `true`. | +| `--webincli_mode` | No | Webin-CLI mode for ENA interaction: `submit` uploads data, `validate` performs validation only. Default: `submit`. | +| `--is_private` | No | Use if you are referencing private data accessions in your submission. Default: `false`. | +| `--release_date` | No | Use if you want to keep your data private after submission until a particular date. | + +Each mode also has additional parameters and example commands — see its own "Running the pipeline in ... mode" subsection above. + If you wish to repeatedly use the same parameters for multiple runs, rather than specifying each flag in the command, you can specify these in a params file. Pipeline settings can be provided in a `yaml` or `json` file via `-params-file `. From b61853e6d0d4125ab9bed3c8cdbf964dcc4f3500 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Fri, 17 Jul 2026 10:00:41 +0000 Subject: [PATCH 24/47] polish usage.md structure and wording --- docs/usage.md | 115 ++++++++++++++++++++++++-------------------------- 1 file changed, 56 insertions(+), 59 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index aa43cc0..5a1fb8a 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -9,26 +9,12 @@ - [Introduction](#introduction) - [Before you start](#before-you-start) - [Submission study](#submission-study) +- [Data privacy](#data-privacy) - [`reads` mode](#reads-mode) - - [Prerequisites](#prerequisites) - - [Samplesheet input](#samplesheet-input) - - [Running the pipeline in `reads` mode](#running-the-pipeline-in-reads-mode) - - [Limitations](#limitations) - [`metagenomic_assemblies` mode](#metagenomic_assemblies-mode) - - [Prerequisites](#prerequisites-1) - - [Samplesheet input](#samplesheet-input-1) - - [Running the pipeline in `metagenomic_assemblies` mode](#running-the-pipeline-in-metagenomic_assemblies-mode) - - [Limitations](#limitations-1) - [`mags` and `bins` modes](#mags-and-bins-modes) - - [Prerequisites](#prerequisites-2) - - [Samplesheet input](#samplesheet-input-2) - - [Database preparation (`CheckM2` and `CAT_pack`)](#database-preparation-checkm2-and-cat_pack) - - [Running the pipeline in `mags` and `bins` modes](#running-the-pipeline-in-mags-and-bins-modes) - - [Limitations](#limitations-2) -- [Data privacy](#data-privacy) +- [Scalability](#scalability) - [Running the pipeline](#running-the-pipeline) - - [Updating the pipeline](#updating-the-pipeline) - - [Reproducibility](#reproducibility) - [Core Nextflow arguments](#core-nextflow-arguments) - [Custom configuration](#custom-configuration) - [Running in the background](#running-in-the-background) @@ -38,13 +24,14 @@ `nf-core/seqsubmit` is a Nextflow pipeline for submitting sequence data to ENA. -The pipeline supports of the following data types, selected via `--mode` parameter: +The pipeline supports the following data types, selected via the `--mode` parameter: - `reads` — raw sequencing reads - `metagenomic_assemblies` — metagenomic assemblies -- `mags` / `bins` — metagenome-assembled genomes (MAGs) or metagenomic bins +- `mags` — metagenome-assembled genomes (MAGs) +- `bins` — metagenomic bins -Each mode has its own samplesheet structure, prerequisites, and limitations — see the dedicated section for the mode you want to use below. The [Before you start](#before-you-start), [Submission study](#submission-study), [Running the pipeline](#running-the-pipeline), and [Data privacy](#data-privacy) sections apply to all modes. +Each mode has its own samplesheet structure, prerequisites, and limitations — see the dedicated section for the mode you want to use below. ## Before you start @@ -60,9 +47,11 @@ Before running the pipeline in any mode, make sure that: nextflow secrets set ENA_WEBIN_PASSWORD "XXX" ``` -- You prepared either study accession or study metadata file to set a submission study to assosiate the submission with. See [Submission study](#submission-study) section below for details. + Make sure to replace the values above with your own credentials. + +- Provide either a study accession or a study registration metadata file for the study the submission will be associated with. See the [Submission study](#submission-study) section below for details. -Each mode also has additional prerequisites — see its own "Prerequisites" subsection below. +- Depending on the chosen mode, samples, reads, or metagenomic assemblies must be pre-submitted to ENA to obtain the corresponding accessions, which you then reference in your submission. Refer to the relevant mode section below for details. ## Submission study @@ -126,13 +115,30 @@ study-soil-2026 Soil microbiome study Survey of soil microbiota | `existing_study_type` | No | ENA study type (e.g. `Metagenomics`, `Other`). | | `new_study_type` | No | Custom study type. Only used when `existing_study_type` is set to `Other`. | +## Data privacy + +You can reference private ENA data if you have access to it via your Webin account (it was submitted previously under your credentials). To use private data accessions in your submission metadata, specify the `--is_private` flag. The pipeline will then use your provided Webin credentials to fetch the required metadata. + +You can also control the privacy of your submitted data: + +- If you provide an existing study via `--submission_study`, your submission will inherit the same privacy status as that study. +- If no study is provided, the pipeline will register a new one for you. To keep this new study private, you must specify a release date using `--release_date YYYY-MM-DD` (up to 2 years from the current date). + +| Example | Source Data | Submission Visibility | Required Arguments | Result | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | --------------------- | ---------------------------------------- | ----------------------------------------------------- | +| Assemblies generated from public reads. Assemblies should be public immediately after submission | public | public | – | SUCCESS | +| Assemblies generated from public reads. Assemblies should remain private until 1 July 2028 submission | public | private | `--release_date 2028-07-01` | SUCCESS | +| Bins generated from private reads and assemblies. Bins should be public after submission. User **has access** to the reads and assemblies via Webin account | private | public | `--is_private` | SUCCESS | +| Bins generated from private reads and assemblies. Bins should remain private until 1 July 2028. User **has access** via Webin account | private | private | `--is_private --release_date 2028-07-01` | SUCCESS | +| MAGs generated from private reads and assemblies. MAGs should be public after submission. User **does not have access** to the reads and assemblies via Webin account | private | public | – | ERROR (submission can only reference accessible data) | + ## `reads` mode ### Prerequisites In addition to the general [prerequisites](#before-you-start), for `reads` mode: -- You need to register the source BioSamples and obtain the sample accessions as described in [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/samples.html). Those have to be provided in `sample_accession` column of the samplesheet. +- You need to register the source BioSamples and obtain the sample accessions as described in the [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/samples.html). These accessions must be provided in the `sample_accession` column of the samplesheet. ### Samplesheet input @@ -164,7 +170,7 @@ pacbio_run_001,SAMEA7654321,data/pacbio_reads.fastq.gz,,PACBIO_SMRT,PacBio Seque | `library_name` | No | Descriptive library name (optional). | | `description` | No | Free-text description of the experiment (optional). | -### Running the pipeline in `reads` mode +### `reads` parameters and example `reads` mode does not add any parameters beyond the [common parameters](#running-the-pipeline). @@ -193,7 +199,7 @@ nextflow run nf-core/seqsubmit \ In addition to the general [prerequisites](#before-you-start), for `metagenomic_assemblies` mode: -- The raw reads used to generate the assemblies have have to be submitted to INSDC/ENA to obtain the corresponding run accessions. Refer to the [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads.html) for details. You can use `seqsubmit` in `reads` mode to do this. Assigned run accessions have to be provided in `run_accession` column of the samplesheet. +- The raw reads used to generate the assemblies have to be submitted to INSDC/ENA to obtain the corresponding run accessions. Refer to the [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads.html) for details. You can use `seqsubmit` in `reads` mode to do this. Assigned run accessions must be provided in the `run_accession` column of the samplesheet. ### Samplesheet input @@ -221,9 +227,9 @@ assembly_002,data/assembly_002.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 | `assembler` | Yes | Name of the assembler software used to generate the assembly. | | `assembler_version` | Yes | Version of the assembler software used to generate the assembly. | -Provide either read files (`fastq_1`, optionally `fastq_2`) or a `coverage` value for each row. If `coverage` is missing and reads are provided, the workflow calculates average coverage with `coverm`. See the [Methods documentation](docs/methods.md) for more information on how coverage is calculated. +Provide either read files (`fastq_1`, optionally `fastq_2`) or a `coverage` value for each row. If `coverage` is missing and reads are provided, the workflow calculates average coverage with CoverM. See the [Methods documentation](docs/methods.md) for more information on how coverage is calculated. -### Running the pipeline in `metagenomic_assemblies` mode +### `metagenomic_assemblies` parameters and example In addition to the [common parameters](#running-the-pipeline): @@ -267,7 +273,7 @@ nextflow run nf-core/seqsubmit \ - **Single-contig assemblies**: Assemblies that consist of only one contig cannot be uploaded through this pipeline. ENA classifies these as "chromosomal assemblies", which follow a different submission procedure with different metadata requirements. If you have a single-contig assembly to submit, please contact [ENA support](https://www.ebi.ac.uk/ena/browser/support) for guidance. -- **Coverage calculation from long reads**: `coverage` calculation via `coverm` has only been tested and validated with short reads (e.g. Illumina). It has not been tested with long reads (PacBio, Nanopore). Exercise caution when processing data generated from long reads, as issues may occur. +- **Coverage calculation from long reads**: `coverage` calculation via CoverM has only been tested and validated with short reads (e.g. Illumina). It has not been tested with long reads (PacBio, Nanopore). Exercise caution when processing data generated from long reads, as issues may occur. ## `mags` and `bins` modes @@ -275,7 +281,7 @@ nextflow run nf-core/seqsubmit \ In addition to the general [prerequisites](#before-you-start), for `mags` or `bins` mode: -- The raw reads only, or raw reads and metagenomic assemblies, used to generate the MAGs/bins have to be submitted to INSDC/ENA to obtain the corresponding run or assembly accessions. Refer to the [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads.html) for details. You can use the pipeline in `reads` and `metagenomic_assemblies` mode to do this. Assigned run or assembly accessions have to be provided in `accession` column of the samplesheet. +- Either the raw reads alone, or the raw reads together with the metagenomic assemblies, used to generate the MAGs/bins must be submitted to INSDC/ENA to obtain the corresponding run or assembly accessions. Refer to the [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads.html) for details. You can use the pipeline in `reads` and `metagenomic_assemblies` mode to do this. Assigned run or assembly accessions must be provided in the `accession` column of the samplesheet. ### Samplesheet input @@ -318,35 +324,35 @@ mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default, If `genome_coverage`, `stats_generation_software`, `completeness`, `contamination`, `RNA_presence`, or `NCBI_lineage` are missing, the workflow can calculate or infer them when the required inputs are available. See the [Methods documentation](docs/methods.md) for more information on how metadata statistics are obtained. -### Database preparation (`CheckM2` and `CAT_pack`) +### Preparing the CheckM2 and CAT_pack databases -`mags` and `bins` submission modes use `CheckM2` and `CAT_pack` tools that require specialized databases for completeness/contamination assessment and taxonomy assignment. +`mags` and `bins` submission modes use CheckM2 and CAT_pack tools that require specialized databases for completeness/contamination assessment and taxonomy assignment. You can either provide pre-existing databases or let the pipeline prepare them during execution. -As databases preparation can take significant time, we strongly recommend downloading them locally and storing them in a local cache folder for reuse across runs. -In particular the `CAT_pack` database is extremely large and may take a long time to download and compute. +As database preparation can take significant time, we strongly recommend downloading them locally and storing them in a local cache folder for reuse across runs. +In particular, the CAT_pack database is extremely large and may take a long time to download and compute. -- `CheckM2`: - - provide the path to local database with `--checkm2_db`, otherwise the pipeline downloads version specified with `--checkm2_db_download_id` (by default Zenodo accession `14897628`). +- CheckM2: + - provide the path to a local database with `--checkm2_db`, otherwise the pipeline downloads the version specified with `--checkm2_db_download_id` (by default Zenodo accession `14897628`). -- `CAT_pack`: - - provide the path to local database (containing `tax/` and `db/` folders or `tar.gz` archive) with `--cat_db`, otherwise the pipeline constructs version specified with `--cat_db_download_id` (by default `nr`). +- CAT_pack: + - provide the path to a local database (containing `tax/` and `db/` folders or a `tar.gz` archive) with `--cat_db`, otherwise the pipeline constructs the version specified with `--cat_db_download_id` (by default `nr`). -See [CAT_pack documentation](https://github.com/MGXlab/CAT_pack) and [CheckM2 documentation](https://github.com/chklovski/CheckM2) for more details on usage and creation of databases. +See the [CAT_pack documentation](https://github.com/MGXlab/CAT_pack) and [CheckM2 documentation](https://github.com/chklovski/CheckM2) for more details on usage and creation of databases. Databases created/downloaded by the pipeline are published under: -`/databases/`. In the subsequent pipeline runs you can reuse them using `--cat_db /databases/cat_pack/` and `--cat_db /databases/checkm2/`. +`/databases/`. In subsequent pipeline runs you can reuse them using `--cat_db /databases/cat_pack/` and `--checkm2_db /databases/checkm2/`. -### Running the pipeline in `mags` and `bins` modes +### `mags` and `bins` parameters and example In addition to the [common parameters](#running-the-pipeline): -| Parameter | Required | Description | -| -------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | -| `--upload_tpa` | No | Mark assemblies as third party assemblies when required. Default: `false`. | -| `--checkm2_db` | No | Path to a local `CheckM2` database. If omitted, downloads the version set by `--checkm2_db_download_id`. Default: `14897628` (Zenodo accession). | -| `--cat_db` | No | Path to a local `CAT_pack` database. If omitted, constructs the version set by `--cat_db_download_id`. Default: `nr`. | +| Parameter | Required | Description | +| -------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `--upload_tpa` | No | Mark assemblies as third party assemblies when required. Default: `false`. | +| `--checkm2_db` | No | Path to a local CheckM2 database. If omitted, downloads the version set by `--checkm2_db_download_id`. Default: `14897628` (Zenodo accession). | +| `--cat_db` | No | Path to a local CAT_pack database. If omitted, constructs the version set by `--cat_db_download_id`. Default: `nr`. | Example `mags` mode upload to TEST server, run command with docker: @@ -374,24 +380,15 @@ nextflow run nf-core/seqsubmit \ - **Single-contig MAGs/bins**: MAGs/bins that consist of only one contig cannot be uploaded through this pipeline. ENA classifies these as "chromosomal assemblies", which follow a different submission procedure with different metadata requirements. If you have a single-contig MAG/bin to submit, please contact [ENA support](https://www.ebi.ac.uk/ena/browser/support) for guidance. -- **Coverage calculation from long reads**: `genome_coverage` calculation via `coverm` has only been tested and validated with short reads (e.g. Illumina). It has not been tested with long reads (PacBio, Nanopore). Exercise caution when processing data generated from long reads, as issues may occur. - -## Data privacy +- **Coverage calculation from long reads**: `genome_coverage` calculation via CoverM has only been tested and validated with short reads (e.g. Illumina). It has not been tested with long reads (PacBio, Nanopore). Exercise caution when processing data generated from long reads, as issues may occur. -You can reference private ENA data if you have access to it via your Webin account (it was submitted previously under your credentials). To use private data accessions in your submission metadata, specify the `--is_private` flag. The pipeline will then use your provided Webin credentials to fetch the required metadata. +## Scalability -You can also control the privacy of your submitted data: +Some processes in this pipeline are resource intensive — in particular coverage calculation (CoverM), quality assessment (CheckM2), and taxonomic classification of MAGs/bins (BAT). For real-world data, these steps should be run on an HPC cluster or another compute environment with sufficient CPU, memory, and job scheduling capacity, rather than on a single local machine. -- If you provide an existing study via `--submission_study`, your submission will inherit the same privacy status as that study. -- If no study is provided, the pipeline will register a new one for you. To keep this new study private, you must specify a release date using `--release_date YYYY-MM-DD` (up to 2 years from the current date). +Depending on the resources available on your machine or cluster, you will likely need to adapt the Nextflow configuration to limit the maximum number of concurrently running jobs and other resource settings (e.g. `max_cpus`, `max_memory`, `max_time`, or `executor.queueSize` in a custom config), so that the pipeline does not try to claim more resources than are actually available. See the [nf-core configuration documentation](https://nf-co.re/docs/usage/getting_started/configuration) for guidance on writing a custom config for your infrastructure. -| Example | Source Data | Submission Visibility | Required Arguments | Result | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | --------------------- | ---------------------------------------- | ----------------------------------------------------- | -| Assemblies generated from public reads. Assemblies should be public immediately after submission | public | public | – | SUCCESS | -| Assemblies generated from public reads. Assemblies should remain private until 1 July 2028 submission | public | private | `--release_date 2028-07-01` | SUCCESS | -| Bins generated from private reads and assemblies. Bins should be public after submission. User **has access** to the reads and assemblies via Webin account | private | public | `--is_private` | SUCCESS | -| Bins generated from private reads and assemblies. Bins should remain private until 1 July 2028. User **has access** via Webin account | private | private | `--is_private --release_date 2028-07-01` | SUCCESS | -| MAGs generated from private reads and assemblies. MAGs should be public after submission. User **does not have access** to the reads and assemblies via Webin account | private | public | – | ERROR (submission can only reference accessible data) | +When submitting a large number of records, be aware that ENA recommends limiting submissions to 5000 per day to avoid overfilling their processing queue. If you need to submit more than this, consider splitting your samplesheet and spreading the submission across several days. ## Running the pipeline @@ -421,7 +418,7 @@ Parameters common to all modes: | `--is_private` | No | Use if you are referencing private data accessions in your submission. Default: `false`. | | `--release_date` | No | Use if you want to keep your data private after submission until a particular date. | -Each mode also has additional parameters and example commands — see its own "Running the pipeline in ... mode" subsection above. +Each mode also has additional parameters and example commands — see its own "`` parameters and example" subsection above. If you wish to repeatedly use the same parameters for multiple runs, rather than specifying each flag in the command, you can specify these in a params file. From 6d38ce3e2892a893d705b839abef05e7a618a43a Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Fri, 17 Jul 2026 10:15:14 +0000 Subject: [PATCH 25/47] update pipeline metromap --- assets/seqsubmit_schema.png | Bin 506710 -> 505550 bytes assets/seqsubmit_schema.svg | 26 +++++++++++++------------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/assets/seqsubmit_schema.png b/assets/seqsubmit_schema.png index 475bdf3cf940aff2138ae519bcadf8c30d89928a..df619e5a85de867941b51a9c4bc2b1b62b432829 100644 GIT binary patch literal 505550 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�~^r)Jb#LUS~C&f;t2|Z-r_-IL?scez`05IMz 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

    2g$Cy&>NO=2e;ugiC# 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

    =*Rp72HZ^Qv07Tk6%|nz_)Raa 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�*G|Ktsw8Bl0wp2VmsgDfUO+F)l{55T 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 literal 506710 zcmeEucRZE-|NkY$T^S825>h1DWM!PDLPmwiiVB(8^ElO=2C^!na0;bll)aVgII?9N zq3k`5b)4V(x-R3~pU3_E@Av2Z{)2PQb-mYXJYVBI9&4&AGj3zw20;+xh4W`FLC`*C z2-+6@7ajP;Z=&)JM4xxy!kLp-+-OERPdKu)G}Co&ImICuaf->_WYg(AJ23ZXPuPEp znb2_V`^Gd~Kgif1 z#($8pL5u$&gNhda`GnNO_zyBRsPX?FGTP!H2sUQ0wy2AXrQJm6~diqh=03 zkW9q$=g$KbMU3*VDhw{gtA>3Tue*8c0y>_nitdtzN37sb3>5s0F)Rc<>;2j@aO*Gx zaU3czm|mP69*U0~bkbKCB!FIitK9Y8Hr9}qo2&25xn;RdYOSRKCU;4jgKI6}8XQTq z5S|N;RVFSBZh2XGcrAb=~tq>KefyPetqAiN=C=&vz)2y+4szxZ1L z8B0n^hJL@C;bDTHI=f@Xj(y6_Wgi|MZgQ2`o(4z+mx+V!lI6k2S3@t1XAV4aVR+=* zBsl}kB-yoNKx`I~Y>;zFAxy-WNoMO>P5WI_7G1pSbGE$$XvVDsM`~Lprx-!YuUT4C zl9INLEgW92!a6nZxiWG!M#Z;xkRhl-8AP8LntU(NCC8C1bGj);0f6VYZ)=okJjrRu zx=xuHKbSJrFlF%Nx6<@R#>dNtTT(#f?!#b^yTJ7BE!~UYMf!+ z6hENP!24hJ`v6hJVhC{E^h*{ooK>bTHltLD|*TJQ5&NhdRe`va48AY#&u!_(7K z>}3sLK)1Y(j*h9BS?ppQ@p}kbwOG6|cIo7Lmp2_?QPP76>S3xFQ*I&o0mRKXxuld7 zU1qY`T89oH%C4aw+0Z7S^Dtp7d_lyH;|#C4^(ilJf5V_8co>=b`SY&*`}a2;A)BmK z{fXi16#9H?wQ9E^tObo4Fj30`&czNz5c&Zv>f*NV75=uk=qaRCktJ5?>ldrr@wz~lG;-x?$9bfyO8Le``PDu;QG=Y%IIXCd{n zbZpF4?Og*HQN^$Nc-1?jKQpfC>21yZvc^)UyYjh)H)>XgTx1xrZPY2V-q4jQgrv_Yt*1I)_#l3g|VP_Cfa!?iFCZ18)AbW?g*W_7)T&JTJ zN7k#Kof^pB=++(S)&=Rd2dL;AiG)lzU47fA5@mUMek6@>&t+ZH4EX|UPp|W}@e3>y zX!DnXEXzbUA7+o%}OIoH(A zPK1ex>E8010AXS(V#78%l0-UcKsqu-tDLiliP77IQg7gpyHncwoG_uV7 zRws*y&Q3#meITnMacz7xGLnR~UY?!dG-O_nZB6RQtgy?<5Bh23L4qqPDBc zsE%We!mBi8W}?=M7Y3TPH!?Iasmt5yd_? z_F$Gp@z(%~*}JS+E}Rcv z;ELo%FD^?(3d{D3UZEy`%A;pWFWWvT=_Nu+R4Abot%pX=G zH2{q&((D0(d@{UilP{j^`!OE6uDXUW(U4vQ^I?#AX8Y;tH+WzU>jUepj3urccPRH8 z5E=-chiceQL1t!VPzmqUJDKev6TPMj-FVuMgOU3NkcFPsETJrnzb zA5h7SXfMN{ShFU<_ENn4RP7Is@PPK?;r1_F@{Ffb1r!dv$hUjC{>Yl1K()z@^7`u# zGjrE)GlY2$3zlHzuV2?e7ZU`)lL@hPqAolOSFT^z^h=Gcf3G$jlKeE&F>AZ zjEjtNt6m=#HvTu&ur!ci#lgecnyv$;%|V#DM_Om}kk%zmp>@q&EEC=Y;Uy7@a%aGA zPmG_7)dFDAU9_$ov;0Q`U#v6Q+iWi|DeN%g7*%ba19Sn?n0NIn{krQuWnBpy-#w$A zcrZM1OL*dvf(3sA{uNjHpNlPCn}TK*a6L9Sp^I<=K`(rpHEZvr4Cq280ys_63-T)K zwl2Y#NXvydIXF4bRj$vYX26kp>d7!i_7J9Ucq%V1 znG3A39Fw*fUR|}$@=MuAXrN~pSnp0VAxeQuJ9<1-dJRJ)69e7T*U^pt0gw&+W~6QL zD0R>UF3p|1==`i=jkI+i75`942TS}IJc&2(BxuswzN^Bd?GO6%0e~FuI`>@BxE=R#6 zo4gdkT%jSYD*u}>)ZrQVLN72pEE$qrj0Q?aTIm`Z8hUB&?Om|A+~X$#duGtU6UDyt z&wp%H`$c*u=L?kbycRx7z+;1p3=N47!YQsU4`Hmfj(~CC*(_x{=jL2SMn=Awh$ckO znD+-i*_>>c$J&x&94Jz>EG{J_1tbOfslr(!&Jpz`E~Kopvs2n!R5?B%CZtxcxw-iR z&t0doklJg{q~RAqDZU1qL~j_g@wZ@P>CUgOz8A=;@WF^hK7|WAe-OeavihBUh9F0= zcwDIyAx0@MDJkiLB;M9?(9om4C?<~Al{D6w_+)eaXV`(W2vr1D;g5?7iBi9C-s9=9 zt@F=f9bfbfeB`}wcGKX(P-03?S-^fUC8Wd)+=PXT4;C({j%V;@QB6(FxffE%bIrHu zsbiI)M^u$O73HSYZM*W>NaI9ZpivMsb4ku;VK}9z=XZ6O_Fc2fz~`FHcbnwV(bY}d zbT_4FC0D=>aAUPBo#I&*#EIPI%7SI98{D-;Bruy4WXvLV(et zWQq^zIycECo`y@MsHM4C$BRNHefsnX$Rh+9N^meGN<2+ZFB0k(8Fc;G(curG!!l{2 z*KR8-t2OFCkW(no3lIm~@bt_RU~Fw`L&IH}z|1hZ{9{6COM~xXdb$cc?@(5N`2~^{ zk{(x-L|VCIY3A`N5B>!y7*|*!fmu^k4gR@2#f|*f8KOdaNzbNTl~(Z?w*MOs%s!mQ zfv7zSZWHJm@M}0**fIdOA;jpL>h@RB3ZBh5Th!rSp!Aj)pOv;Y$NuyRTW9CvV_gON z;h!6ibZU3BwLN~w%%#&W0{?;(j5M4dW+- zqXViqKigv58)l4s92FIX)>9OUN>suwBi$zu)65ASH`j#)_Y_rh#`)1KqN$bDF{BDE z^n&ULu+{JvO;||7)nI&BE$J^2Hd)~Ijv&8u&u}VXIpB|tb}}4g4evBIreh(EOb4x* z{?%`<2+Ittkdl3EY38*?=RnGEy<-o+|6ukMr&dM&&BQoZuP00 zFD5&xrTP;!_S$5?~*Rt4U zJ>5zDjfQ>UwMJBgMN>!+?!^U>o$8251Cp4g;zuf48p|sSEAGs9mvC`)?Hz1*r}b_I z;1D36mYi#j4`rp^kNI+N?<&%}Gd?V#8s?xW{3R(BUm!cgNx!h!)xWB5%{i~ed z-bKvf1j!zFs%YVV`w;$8p)IF*)Ehr;D{125B85CMNvePCOi)}Jd3%<2OofosATjp% z@#BQBm(q4fsxl@lni6L&=1W-@1kCgy(I`g+JG2Oj^N-*A_1uy#;RtpSM{Xy zf(q4;Hl;M>IxLpvMki+)H1<0ok1>}$=YKtnHG1_Po~&0}ef_2H1VXvT%*>38=X%Gu zO}i1AFiulrKhv(-o5)1Cx8>=<<*+@HgL_xsMqI^AJQWMOV1U^n8UQ6 zkCo)GAM41unzFL8g1!&`eKPub{R_?+q`@99EG#61DRa6bnDA(RzBjNptZ4bB%gSfC zJ1yZbc-&~=mzrGr2tmy^ZEb~z;;#stRaRDpe@_1pA0Hnc5mEV-W>&`4(#|e0I5>FY z{U;g-fsr3@&KDlGHB|$dL2O}wwY9Y%=QqF<7~npEoZ{>ZNOnCrzAoOF`#WIjqNV$8 ze96cV8}q>EC@ht@b5hdMd(VoAitcF7wAsG)7K9gjw1LeN#r5_W_8kciqobqOq_O#3 zL4g7tJ$}CSUt|g+OM25{Gl&Tni>1ee3pNNq?>%CYAQgK8+2xhOo z{u7UZkr97oE^jzV3b}~_OACg_UAJL47*TOUn!z1cjio_4B9qB5M~i>P|G<6u@`XRF z8vcqF$;`~Pj}Y#7uFI%CE11ru_cyW+fZvO0^#LzQL?5NHvNF>()rTwK%6JhXBbAFI z<9^^IIW@wB*Uu1+Hp~iQ``z%)*#aOJ5<#<_0l_Cj#2D z0GojFMIh125!iarU4ZJJ5I}K3Lg;EWd<50CN91U9!ia%0?m$p!P;|-+iBvvK zP@-6BniPPL>c!a&PUB2>Qt9#K(9qC3gZ1$V^uOS`xWx+uecy)g+wOLB;ciS3+C^+k zQp=GTFNBv!-GA0g_3)(y*kaaS8wC@lxD3$s+Q*i!Ur!+~BY#RKHP^q?g_M<-_x{YV z`eX!zWb(TN;f#ic2K+cxHq*9~efaqQJ;rcgEM$CEybOIy;=ka`W4xtStq-oIp{t8? z*m<})X}u%p$>|Ls#y=1g5<>L9W%ehKzmbj{3HZ%cFEEHtMwT}=rpM2;K};O0n359L zUSWf)u826oHog_i53U--e4m1d0{jKPKut>=v*J9ruwgFCa8pA==mXl-QR1}$2;Dqc z22AzY$;u-!8{$%DKqa)1tw4zlavXT!Fnu@!@S`=y(H!n2JrWg&^6%f(Mt)`_?zmnW zsI(%}oVcnf@H-H$hf0YpE)8nt!Anp;Z9ggle3GC3F7czG0p!tuM<{rpH6|I1hL)B# z=iKI@oy_M6-tYsY{Ii`?TwW6=)zs9!fw6s5W@p&P$@vt>75rv5GvARTX23{t`Ycbn z^*lZzrNCqVyXv_hM~+dg7up#3i@!=e$Mfvl_i=F%=vtFnI)B~iC&UEGKdb(24HJ|_ zODarN{w;Vo6$le>U`F~&n3epA zD|1=Se&@Qh1IIViI)RHyQ0V3+%el%$d={#$A927N;h4Sw(Ii0mStv*buJ5brc9xAwlpW|5TfY%G;YF$I1RfiRRiWbQn*mY%R zf3k|q=&w&MY-la=OJqlPx5+b=_|;nA-;?3j8(-j0k(a>IFatBQ@+y*`PpPdR@(XEl zqJ&xb5KKYfv8{PW$Rqsx&kZ<*f60Dl)1Fxh8=l_|vh1aEqwT%>iSxep$lJ&t$si;U z+4vzlrM9-#?N5aHo1!8m>{2_i45%r9owGjx7Jn-)#>~On+0i0Njo9!{30mwsVKvVL zx|9Y(p!;sv=R*sw?8t_ZM1Eq%8wi_QSy~?5{ugX6|Md5prNte*KT|{j{=71v##&Vf z3b^<`1Z_TepvT8Gh|(EU3vlEOj0G@RJ^Um8W~ zC6Hwhw>P;#iQE7}Bhxj}uvb3zod<&S8&0qNg7$6w$Z5bQH`At_bz?H52C6R`KZ8%0 zWGZ<1#}kO#{C}i(<8hG0h7NE1ihQbwpt8jOeAY+h)c*4cf7o^?jwGFes_Ay0Y9}NfF7-%{485dLX6{0e?x_e**)li|q6=o^#f)M^+o76hn3t0)f%Q z^CGM?cTh4&^8i<<7EK%Be;j_UO#@*%zt`5nDW};q;6zxstO&3A_o)l)md;NG`f%74 z%<9a|-cm8!GN@88-{bcQEJUCYJH8^M>H~mlTM#M%KOVQ(mg{UKdBP`b)#YsU3RrPZ zCm_q2IG&f0kx$IZpO%6=va|xby^^=L_nrBPUxJ50pOTq6;b(#8`F6wDua5-htP)E@ zT9?O&EX~r5wg;ov@;;@Ci ze*GYbUDABijfW4C)4aw#iGKT~ZNL30c?ic!5I6IMn_zQ@rgU0b8n9#-vUO+f@yMv6 zwIxRD!gCb)pXNwdk1z)kSIX zM_^CuC$mX>y$MXT-fP4~9ae_czd$^yhw1LC3?1IKHSQMO1$HySwP3+vcb8jl1a>$09-CQ4zNkUR_R}Ii}gSY^m|8e5rmW$ujpIji4 z$6Q-xJiFX_17xtvZot{K*la1&y|-xoECUl$^Rj1sOf{*9LPmzt%KvY(xxu=3uNhce zY_k%ozlxFjn^Jt2_J;+SOsU`AmYISWIcI?`k6|=AZvE?DTX=fl1ncF?myeGY>}T4? z#`gH!T-koRZ-5v&(<@xd-Sl_B7FuKk3DO8LaLAYSKixq8C!4R?HKmhmWlR7+BfkV6 zQtkocI6h7U^g&*1eEBb+fbqL#VBilBs41T^GuUu(H&ga-fOOX*JD;U?FdDCgsYomu zBxRfzNZbVBawDRm7$FN4$3*(A4Hphmf^Qg?PYvlK87g!)N>jI|Gvo=X6#k ztiYBTe0_guy?I6Qk>F(_LH=|m2WI<1o)0-sW-cXzu|(tH2$zgKcjONcDd$go-7co6 zXyj~1ig7Aeq7ZzZmgjP9$A6J^q{aEdpbo_Q985%K;O=2A>lrD?@6+JP3D54^$mBq0 zn|EumecX4O4&*u2l+z1Z=E|=^b)RhoJ07J_$Sqbs!4lL8%x}pwkWFpPu+nASmGCE? zGIiax;0M$_y)m1mUk|x% z(cIO!GtvD8o>h}~Ng#811O>~7(xZQhu%uq&)k>92FSDc9pfwkoe`}=7v9BMnj z7;zU-+&eR6w97`x`6N}-k+r5bXiY=?E`V9SsXv%S2|wc?Tv7G&JB130m zc19WdZVa4Z38LG4TdSI|(_$CeF5_WDZ-s>2k38-(4BN;QL3qpf5>pEA<30tFFAb!x zF4sEu&L-G^WVB=cwmF5+7C9GBJJW!}98-zinz7tQz}ic(zSz6TV&`hZC?E(4Zl_nv z_Ftnj_@Bh>E?r3ntaBaD*x$6K!qC`Y`8XweDB8(>1;BXh^Z3cXZ?j^HcD%!S3*ef2 z0CjA*CNw-$UEIi){tLjwQ1{Xzy0qimG?+-C@8Y2|44>s*rpaj`k;9^u$?6)_o^tIos+fx?^X zexi*r!$uqsrn4u?FNUfuQc%8mt006ai8S(7a&3~hff zeUWyM%xF?5iXdNvP-)=&TLTMf;ve(wzVOYIYD`z2s~y?dLJRg>gyi?LiJQP9(sU+( ztj|Q#?S(eM<)R@aGyHM1mFCrnHT}=Tj^ADi%X|cwfZrKM2)gLz%WyUC7zG2q9_zRpMz#|oM`JnrGk;3f*#l#u%ltXCQf zk=wvpi504CSJ7C(;+&tWFqSHH^ifMZ`ivlOqt3oiJnaGqTzp^8AlZoX{Y@D~QdX*g zLOqnu1b`iQTS0*BhLmFo~>nh+zC-PARNy$peZNXeO}&)>@5ABZ5hk2?y|0` zdoUuyk}rX%eNd(1OYwbGVZOG`8{i~K1?XN*2yAV;Z7lG76K)Ze{>D?NY^Y5ot5VIq zc#(HJ=OqKAc_#WGEo5PUQtCE3$Oyr6hjk69b1%&z5$Abc0Iu=CyuSeaV_MvzBcfhc z&@AS~!|pBd)OHFR;y1=m3$a`fA0xA+VgsF(beswBLP4q+DzzlEVvVU7&qCCi+YCzz zhJ2&M5;%gmd*_oqeHrk7fh<|#*x*X&7&I?{4s;30K;rm<)$+LEDyyZj&Ebs051c+2 z=XpLIVwezJaqg@$NxSoMwf(Y=PBr1(ix`QzH>>?0M3DX>-~hEc<5z$!+HXMzVG89> z(>1EL#5iep9^$mOo1UINK04f0e*hw(Ov&DhBGsnKGrKSpehJ z5_o=(kmodbsY$_5!=-eTyb`nZ!EXd+`BRY?kNuj*!RvAku1ou=4T+|!q3hVtAHfLq zZFlV0AUv;7av@hp^}obmp9j5Tl2X!^sLD(xn(w$|3GO$sMmM*hMVqm>%* z?ujJweh`(EWWm6m7-(P{iU#Zk;-S+wamgq4Ds5PO9OGs8!d;(u9e|P}f_m{qzAnzZ zVo~8VUCk{M6Z}xLgn8}em@r>jM4H+^nJGi1u%`kdQ67|!CI}yMK6oXC7_O|w&hWUU z>RvpmGO4A#7B=2-oenaY{(g3h5Y&ks%QUaRZ)Id;)b5m!l41q){=yX{@BVoxy0Ea& znuf6$I9nj9!t}tytSb&llr`Qo@FZcm<(0^3xLveh{1Qe!+@P&-n9T!AaJzZ;PW$)@ zF49_@%J@cmDTATfj@P{Q)%#p?H#Zqv*)Md!?C5~6_$6A&IXExnv~LgsvJMg2`TUDY z-_ZzlhoW)@s7@s$!mF1i`r!RPP2e0zL(r1G@9(T9V2@$=t5+X$$6pecZ$XUT(6Nf5 zW5s{o4!IBM8=|p2I!^01Rmmz+b%Gj|v#-X*X`%E-Bi=2hedQ82>Sk`UIm9r1*Vw!B zh(`3s+#>8z+I54AM#A@b6sExN|FbO^_pY=uV6VgaZL5$pLZqG*V=x>DqH>3wF;u) z=S0V=g^rh2Mfi``U|P|x9~=83APi^bnJaYD2l^rnYDnr5z*|>MKH{^F`{iyz(8*yL zrvc52OH7>d`;r70kHpbDxV^ZzXlh}>kE2`Fy1!7)VJg*XCvp8#1v6`60RATl@Bb4S zoByzF6C_zM9GqCy0stt9=YUHLQ$flf;LM8wDN7m{_z`=2^n};EJrq!ba&0rpHH){p zfFb=qnwqEw9G%M}P$0`Bajj6|I|E1#sS>To!sR6W!D+Jsn)D!DBlq~X-t^3z{yGwJ za*;{5>!A`qk-~kL`zXA#;84pGeuIa|yktir0+Oy3ZlCA<4jeaLS-w5&ER2!q*L z(cD~+XrI z<3qJ%HKi{ZGT4-{FX#OX)wVK-|7n%UQ&+FBLm|T;Owcs0RKt#c63|F4EE?H{-{ReW zf>`O>-C_ztYK2{fP$J%4rKKK6B~Zb&@cGqKedq`pK=xp0yBgtTrg3R1T=n2 zbMNJUy8DPa%+iaVU|&=(5WydU_4dWvMe>6RntSSApN4Z)m{8Q^=sSbB9PDSrgQp)Z z6;P=ri>6ecvud9?9|&L`qHOU33s#Q?#>Sq89?@vdrvRp2+_~eb6`XY9Q1p_){XrF{ z0^KPg`RE2;xm$5;V&btiK>@KK&(B?2?&3u!Qz~Z+Xh z&bLH&ANCz?vrW2YSga!ZkNJ5wcuD<_JqFC_m7=#C8nuF*hL2HkzgOCHd~Z%pr_Twh zetJI4^h;L=?l*nW>unD969<3q+sm9V^JgBri$AW#*hc~2idC1AoLuf(n&q>1dcHj# zSu#?c?|!JXe0>Jwdh3=^`{<53q;x@Q{jP%&4X~A1EtueVS8Uc9+mK;dqB|XQk1lIp z4%5RVm`L-Vol;lyef!@1!tFJ3JE$Hl&vrJfY!eJNK!C0`jGqADGt!oJ1jo86|98=; z;QDSq5V(l|NgazVMGnKQQiF4>!mb#;DNu%+VExq4~iSS?*M@y%nZcT8f_q z*vIBF`g2ctAeV8&IM_~PjBsW(5^c3cbU@Ro8a76bc@&qm$$X#D=fpGz+Pz?$3JQxwb_~6rfZ~WEws?SE~0&%byb*}9vB*; z%FE+VUMYOh+uafY$4Y7`$-gT!?4T>Nc$&M7dk<|IRI>90h83n;Z?H1w<3q|%Z|uCA z@iWUV#vbZMY0doy)%a_S7eclseyDV(lG z{gBiM)M8fr(E(QC9USeg7TmdzE*f?E$3n`&^&(EE7LLM z#FbHES-V})0p=lKi`rBenV8Bz`ug3$yE8FX!DTe{&S29Myv<|98=(CsBSS;O$r7#= zQDDb+Lu?4*7xST8a5t&Goz9zK3rtQ-%3XX1|(olMQ?dH~c*6vpeQ&otSPv%^5$YeAlgs$(fzuKM3$*Gjo%XowM)I|Pg?Faa!z zJVEDZnYa`=D06lcRsgKqagnPnqHx1$O^@-Rt6MQ&iJ|N7)4X-UvT_1Gv#t0UrscU z+W;gl#SY}WmlxoKtn&%yHp8YBtbiz6XG-n}qGJH$jPmAsLsOiKrW2&TAe#}sXgg&9xOi4PwAb-Q0ZpnUSbqYCSw0^>etZwu820G$JM~gK z?DR{J=J)qdrFe=I%v|!Ceo6d(Z;L4nMq!l_kqGdz{Ftq%8C{|F%_R%v=_7cHRNqW_ z@q%3^unFW?7|=8PV?issV11tZx$kCS<3f&xhK9Cb{rj5+i$oYV%g?o%{U8##z~0uj z6dG$5RFTf1`?5EwtQ?A|-V_nNHWBbY^5po?&s_@)@rL)6voc zC7xZ=K48@0{7oKTF2q#xQ7L?}n%+}~W`HbY$=FvREsr25tvDP;3H!fUn882Xh07DS zyvgR&!doo(-bc&!sr~Fj0dR7PC+1-L6LCc#k-j$&JeN^HUM~Los7D$W_#SHor}sI# zfFn>`d`A`=IH8pg`8)dHF*c{|kf?+|k^xjck9c_DhleK{Y8H1X{xo8xvd`gSytJl? zvkqUfAt?02V*kBTT6VZ2|9fIco-TnONnY%ZyB#@0H9>!!O767zevlZuEKzl})d)`6 z>=Z@vG#qp15=VYn2ZbRSSJb2`h^OQ$?pDWn9>y~n(&Wh}Js^xD$)e4lVXI7~iEZv{=#y^mH zemA%DGlVfzY=OdMwwyNdd(gfK`YvE*3kFoYQxowY`OZ|noSqd?Tigi6ae6wE{Btp2 zQlt+`EFMp-uX|d8r-xQqu?-z(+|@wSAzuVQR_7<$AkOb{@JT}CgG~-J5Z^^dFhic9 zKoDL*q7G#p;4R!CJfgH}kA|2Z*w*&n_?tQ>bgS*unNEI|eJ^QphG`&C(i6ITkS>Hw zW>#5=L0P%EW`6LG*VZG{^Q8A-EoEV>0`p|qQex=$0PH;bE{D$Z(NUC#czqGq%Y`cs zE>Pv?M46w^m9a7)^_ucd5rT!RMF8!KSDESmlOA@fpXpA#_4-k{v8NjJP z+N$l7@P^4Tj0PwBqQ#_!zxNDO{CyFeEp;g<1luED$-9f2Sfj%~^cI~uZpd)Y*}lX7 znE9VGoe8n}BBDMy2VS&;1IIa6`q)PbJoNB_P}(qvob!yp4Lkgt#jR{eisl^fyFlT$ znI>QQ`WXJWTK-hV*oX{kouNy(8N?118wfZtzF=YQPRRFOk^-kr^_8ThNs9dLi!+1p zK?9Jg`PS283PvoB$gY17Y7VY8eSGt5aWB=GI;dE_lKYduwwmi$uvYGv=%G6%`}r!< zzQ=+)Ccx^V+sd;0$K+%ep?#?_g52=lgKYa>r-qL}-*=%r;7557Po`+8sh?UKE%^WE zJYBi4wa7IwmnM%r&fz5t(D(PV{JpWb*EfT4U{S4((+q?mN^7zTGG9NqYO|zqY;;!q>ivG_V^^$4q=+JZ zK)#Gs_Aot)NhX`@gHJ&w>ZX(dr`znxRNCi97-8U-!&mpIlHpad| z*!V0xqd+qDpUS2Tgm9C!1SV-E9=ZmZ6ke&>bnx?dQ+0B|zK+!cc=Ri^fa0%CxC(;< z2l}do>MviuocvSsQiq@X^XJdPaju(Mn;`xwM6X3rK)_sx-$wuUKcqHg=-dHqmTjp* zG7s4yeE6w@pM|PvXk`=ZF|6C+z1#-b_DJMX0G}TO^qTG`n1Mr~kV*4CRDRB)@{^!1 z;xw)F4~WWXYBgfb3`^RVH^i*ncwJZm(CLHggXlw6#-x)m;@w5pe&GaJ>_Ny5@86j@ zMhvY6+~@(*OX}JDWMX+H{mTyqkF_Ei$jSpo-{f(3;d{;eQOw0hLXfBk z;K-J~<6JYx?vsnao(+XzLez=9@VPp$EoYw&>%nZtes!yB>!5yUl?RRf;-Bqt`zdRU zLy%~Zx;0RMbG5NXOhAn^k8l6GyinIC&J7~xfhFc>O$sdZ@X_8_uoDC_dAmxG?yGPc zH~VTxN&H{qsNBDByIGN{nxo0h)msKOLH>sCCt4f-8c=0rbX%UEOm=3QpiKNKfgmPx z1jF||V1`kN|IO_ec?(7&#}MRM9i3y+ji3>(O^}K0mGNx~%9%T!(AQ+8{PefRXw=RJ_5=rp~rix6806G%bL7$va^tK9Cw}#nB+{2tz0c>6Rl|g5y`E0(Q(EW? zJ?%3NE+9&}sU%`tII@&Io&8y+6zr;DR>;H#S{XPLr4?l?b)D=#+J2<{{a*L3wDI5O zoQG*gL=3X)Zokypv#WwkP^19jHh;RwC9B4H&DN*!!P%e0yCsG9N4Y81ejR~Ydv;f> zM6@f8$a9pEV%W@39^U=X1r}xezk>r&Tu_~#8O8qN_iu#KM_iQZKpLo_2j0A{*G~*t zB}%XKC@Hqniq3@PgU`n|i|+(f<|maX^Os=&7PKn#dHNBz=#v<`LM*MS%VS`sfQ|JT zR)%yph~U%>-^r9OJyA@@ID=w3TNHGc==FcdZZGUjUqe*oVCwOnNbgywbcJA0xhv+YI zP7T1X8E3UlgF-La!j;A0edp$?1$D#*3UBOpVpXWXHdx(#aFTF3FT5ndk6&~@P~PJC z@29~=InkJ^4nrW!IQOhQH@DGSCu)RGP`N;7esF)fU7&^ola$e}acGgB{oG$Mppn%* za`N<~@=@ASuzQUnFKm=A<5Yot$G~CdGlm~0)J+R2iaxTQ20+W~t(L=8v@)AQzwNb> zN{+E!kZI6Yno*MZr~4oSqP&$YnX=bsa_^z7ZR5|pZNnX3*o1gzNk|sy`YdJnoCq=V znCJ$XV7lkthn6Ztm&7ghr)R~C%2c>ljN3#%yhIM&x~h@&hza*Me*KjOfaHcC*KK>2 z^hOikng@JX?_n+VFLnBF8^HAt$t~bq=^c;<<`=sEg?U?xv4O#|yYaNSaE>rB4V?A` zx%Uo|BWb%af#kC|_)f`3r;1RGo2+$F(Sx{sNZ_E5*tQ%3IJsj*{yy3dt|!2DEB1ZD z&b66OcDfSD`2^krjfE!y?fS?2>qlEZV@|J(fjxp|uZ)VY-X_Fq@1F|_mRuT~nMM zVb)9S1`dvAbN`*2OHQFSv*k)FcL1tdY_(IKc-=L!E&60U2?p7tq&{jvmzf2vXu7Wl)c7YpWfLQ zgY_}}{&{?6g-t(^Cd!+|MGSG27zPn@VWvxdZ7_+0gYC6~d$AaM>bhwJL6;lD2$@(< z>Azz;+gQG(tiA}a001P-V5q?TQh-sS_Ca2BKK-9B)A{;|y6*q%ma z7#r868#15pv^{aZ+H-3hVYCa}fw5fXT*S$V7sW`hq|K#pG?B_n27cosqd#~Ph^ygECsh$5f;efK0X#FA4W})K0i90 zRm3$$EaEB{(#bzW@W!TiSOQQ?DO?mVD)efb^|TM~n5*SsIGXj+dptF>LWw}EwlVj? zkx`rJ`xTQf|vu9X+1H4w-PM7!5zmFEhLCOjj!c&We2;Vt7rco5Ipo z?Hfeel~5ET=oa*V#ic5UT&p>Ar)pHmW5%K-m*MI-L%xz4XFJIG7Fcy2 zW;qAIE1Fi;NG3p}?Cj`LA$E3oYgT_Bq@JF{Yazt)s~ z!MloQ+kKYJm4)>w85tRdDbwMLqp_o>_O?B(dye{xf1&YA_V1dxB>p$HjWp1XHFiSd z&tI7tBwB-3mB*_8R?k+nEw`;zIuD;o>tb8)Jqe^M(fe^+% z181+sEr};fntFRQB$u-m$OZ;vSr4cJ?K(3-KBcx zp)E0Znd#~D_^aCS3huKk-J)p3bR7*r&2(&7U(MuLQ`_Ry(`KG}kHo>ACegg+*jK-y zxk-?jHcXL7^#bQQ>6+O5V_x?aY)%MN8S^n8@W?XV(K`h;Wg4cW6@L|dJrVV5F{lq}qyo@QT~-43sRc{bZvTXQTH*7DGoVCj{wzar}WdGt?GJ%2URMima>d@^=u zNe}VAUOWxf#L_-2zOKutRi@$KE+M-PvEsS{f!Qwa>FFV)NXUEJ*a($bf>SnprNHF| zVG@WG7-FZ%y~4Gk0#SDt-b*YO83XzeXFY(+T4ovaW=9)SRH+br^sl!$XMCYx)a9uO zKT4c~Ys4uy=9K0=Nu~-3QyU)hn^}2A6nIHRt!p8l4d!@hVxFnVGdLb`T82XYwV~d@kj?Prn^ryxuMy=xNTsk{Y9Xs$bDO zM)pZ>g`?>CFTU19FS{&zir~{=Z`;;WJKnd81@<^DIfIZ+#&xVC`4mfz9lSFU#4g!j zM?&x$y6@a*42DCq1a}0k$lz~MrBI-`3S8UmC7-h_49#0083FCIx(w~e?`n6#|BAZ1 zJP2GcvD-@z2FCk=M+eJSbG<6w%Qwk9bpZ~;4$g#{niuzZq9w*_>Vm&M z)>i5Ia$7$@7oq@r-RSb@vn`v&?I~X$Y)`_GPm=832{LGX*jJ`&?7au}0Z1QxmgnzS zRgUXm2`sxz_MzN8iAIfPR~+iiI}@lD{Y(PC4_<=}({k4qsCYy#P<$#f8Tg>KG&2qR z>J*Q9*yJ%-6*&*<9Lq1@Vw;IpEfhK3k+I>D-FWvq2 z)1xgnQ2?f!JPG5J*<~R7p$gmS1*yU;jB9m!wNm-Kjg3gnyk)Hfa78VQi7cAZRev{# z?+3A`%Y(;79;3@m4uz6((snX|)Q|lws|UM0-qA4zQyprm_6u6+;~?TN z{rTIS3@&&uYh)VsZ1YJrD)^Z}NhcjuGVAZ}8!rSxJKLqT_e1#K_c+}@61}D`CMKL> z{mTu=e^? z18kqKh~&LBwFg@?+V(JjZ6BOzx6F6=v;)}BOIA{0Q-os+g<%N`3OEC;@F3W{4!FjI zYbX0dcNBMBJn<~5K#@Gt00)u&*TB;Lh)5d+z7!SQU0n5=_<*6w*wD~swg5yhXN$_n zhQrF(afiz3df~%C<+()Cu@>Wew@=y_6M(5EN~@B|0k0IB$g8L?E>~RKINu9(LjnB# zh9FGx|Deamk$KZWA|hf_)ZJNNqm!Ufz0c|C>E?!<{n+NgHA3LurQrp@HF_e-*w{?E=t@YI!5i31=hFIoO?yxy|xhCRii^0zR5N13eL&YZEGcb-A^7` zW>UY+Wx01}#dr%?*6jh;(=M%y1?-pR%f!*|{)*xhgr+0ao~SPh%D!K>YryIC+TLD0 z$^S-QM5YCp>c-|+|NQ7_4z|++tolXZZsoK%i4Mi*{G4@q&ko+NOffFvyg#JF^7`-E zi3RIxTQ+0s+eiQr_w;6hV%`bvf5^j%c!-@ZdReCU85|_Z;@RZR0B#6lZe7jFK&w{v zS>#N_KeUEPOQc2X%%9D+K$X=Ju>36b9y})eY}{BN{f5Jw@@_lQ4hMdc$X}ivZV^*w zlUxA{Lx#iP)DTx%H)5@vw||ULj-nwC5BK^EWT&O{D;k3QN10{h()mnX)}3zP*iCei zGJFY?{SE{QF-0g8iXD|2oQ|cUiHyOaDoZ-3c&6IE`BcmC(o>cZM}aTVIV*R64D7e( zO6vo+j&#i~0wfeu?>yC;x8;LItZgY9xajPDLBCAVwcat$sI$jZX7cp-MT58ORRlt2 zIGnp@%Uwg%+4e@A?XuT>aRlFg2>mY=x>}tYko$gX^u=C>5G=M0+(Fj0dj$&?eZVV=QZDKCBt_BG~>vzje7Fjfxx}; z6cg^;)P5vMrbKkfabchrL{seO|4JU(qArs+4CN=DFCk z3^Ux}I(z4Dqo=&IWhYK|q`7?&Jg2qHbPgb^ihRogO`;@hAwh;`YdOshYUoe)!V7+r_tnve;7e6b{e#@G1G*{`x(NTf+JsNwJe8LXMukD@-tw%|d z@Y*Z!?5>|DNA)aBfBMnKfe_<1A$M7rVb_hAe#N4PZBhj@Q2?>Wj|v7q;Gq+Gbq9zY z5HtHT{q97N3Ur+tspcLHA|E13JhDz(&ifc+lSzplSSHtwOFG>|vNi*!we0{VpZl{k zUc?Nw-aOXR>LYZyC}l<3xslSPM5YP11(zsZ|1L*ay90M$k!2CrsF4Jud`kknd`yzE zKy1>YT$_%e!5z&g^gb|4tTs?4&vRk@=g$^bz!&ks;q_@Bk&+>azm~ztoV?~DVD|QW z_SO_70dRsZ;8mU5lk2L$jDoaxgKYqzpXOEb<~GA(?UrV*HDEM5xd zj)KDU%Rir#PtRs7@jIkDN#FXuP(3&SNI=5QUX3r%{0g@ntAAdUFlv^W?(O!`X6 z2TKehXEHRaciziq4*4=q{<|aak}V0`I%yavWK7JybLgpx?Gm_XvgawDQl4JaXVk>O@8QxQVAmVP{xpaT+LI*y?6TTa;KO zfk*cfF$({jge`~c;dWUTP}KcVT)#kZy$Vy2^{f?H<)`3j2!|yI&f@X3=*9Ub5dM7} zc3Yf7)3H=r-gSWL@>VIsCiS|nO97bhX~`DBw-T*(wbOn{+gs8|MGhS{K6BZx zn>GEsP%VG9C)`@QWVdWQMPl2Ji?Yq@hbU!t_TMeV$*G=$^wWA4v6MmV4sbAH^FWZHB2U# z*N&WB>rU<*W>VwgE)w@2f`UY{!CDFwao&@M#QL&YEyJUP%)XJpd#P6g&KPrW7Pc6@ zKQ(GRx8T1xDrFG#!y(CKVa?2;AI@X>Gwd@i19DltuRMfo=9+ucq)$t^aown}|2@@e zeQEB<8LlhS{%!t{_MMuDod1@;LLt9ko%W>8sx{Sv0V7MQe{>NT)q^R^0QhfCSEHfO=unN6Nku0|Xg zWYZmkuX@K`8Cqlyt8jJfb(;FAHUG<@aBk*!X1ZlduVkyKqhk)sBPj(U41eD-_T;TA zB{y@ZMl!0Uci%Lco7PS4?cvFolgl3NtXX&{B{xYKgdD~c*|6F&O3JOEcNJZ&FA#_= z-?3~rl+FTBhJH`aE>6t8*-LavUvYLdX(?NPgii&Tg!Ql3um3D$30p%M9(cZ(>{yEx z1zxezm!g~s9el>MSnR*45aM|52=udJ;4YA~G)z{bENPF7kXK@G`&%f6|9R+Ny~*c4 z%{~nBJ)j;AwKX;{Ews2f^~XJ`J?g@+i$5;_@y|nD^WUraotzdJ=|r-em@jzE@_6{- zgy)Yq<4pozZ(Jd1?#DM7TUZHPg1m+X)Slj7lmZ|?!hM`K*5H2RCO(n=^!lgE61qf@ zC2JRavPr-$4w7;Sc-A6%=@k{hl4omIAm)iArsoeuB{m+qsZX4Tx7bc+_ z_24c73z^rwWnP{&t1tp#fIBR_ZV4)O~iEypDVA`0^9}> z2Q~alEhAl9om9;ypUAP|nB!Egy4p#k-X&q?FlV4Yk69kWRI(Y*5b}XBfhmk(<3d=bj_!k=Xwxl{;kl7Uf z9(u^w*5RK;v&6SRE0fQrE^n8oa#a#Jx_fvo40^o32^(zi*)6XZ2WKIUzj*?GQ>E3* zAVAV^c|Jw<*{1Hmu;6u2I|8JFR@$loV{}#tVN?e0TndDqv%J;PJGvqgl6|Qj(v1AI zlt)c`h#52Re8bOERAyv*ounmmIG%f1;tdmeA*mwwPXiZ2O*K6x`fqO;s7+7mIz%a4 zP@W6N`IHP9?^;Gf*%#`fLydEE7;$s596JMucojYVQIhyaZF=GQJoaAKGT|cF*v0u7 z$a{>f!Z>5=ZH*>J?=-gWwidxV?op>j zExmT_hP-FJ75x0^QILCV&t=^E#MK2`{K=zbgR&rSe;>K{A5XfIw0NFu#fVauRH!Fp z;!XXSXb!3f6V+|ro5p;nS<%}hx4)NP;52(RC>hQfPOZejE#!wZSQYEi?zoVSC2XU! z_G|Jz_IE7|^HZ(4l+yTuEzbcMRSd{Lu!H%QXtr%~R8B?&)HYyR;Z|?&q;#wsC(kiF zOxvR>%-Ht8+I*SrF8Xxrb^gnbU%GXMj;-!qg$2B`HNxs(;PF8el>lVo%d`X32@-E& z%J|_#7r#bZku?;mDElXhaT)hq%aHeIu#(A{X~D1vv?~@AL_wNT{M9v}Bwlg8frl`% zPeDlknH*j5S=#M9q7FGg?=3OFe53nm2z3R}`|=x&J<_d=ez%BHX9&U3lb~)v9K*9q z$8aaqEHL-**JUz8ipypz0sB?2LO8Pyi%zZuZca1bMbbkc8RX$h3~t@JwJUXDAXQr` zI5_x{2c3>o);jMx(EH+(o?#pS74FMRtSv7lX8`n>B1x@JE2SP$0Cez&TE|H_zkxfZ31^G zuTi(qRRZIV#KrK>2g|c;AbeYvSYUg$V8bDIpw}||)H*CsolmDhcq3s=3e4Oqc7n;) zk#>L+Ur)M^muA0wqoz?$A!YL~)lB`_71pJCw4(ZQN|7^S35vH&q(s~_eK~<^Rn2$d z->B}wpVdj%`9%C3!NycHI~6i_iV0$*W_-tHb35UWNHNI!sawucqqwMO3@1H5b?p$Q zd`753i>Y(t61eB)+!Rz)Ea1wj!i6|vm`ws*1cSudu5mk^O$?^@qz(Y%TU-5%A1DlZ{`LZh%WhTUg~y_HqA)ypMyiL&5|3M zxB6Ypi>qHq>A8MmNAa723xwBrj4+IgcQK!EzwNi>r9=5Y<$j&oL55j|J|~^I#!P>mO7(2_hg$weNDet9&vkJvz8M~N19-wHGzEyB zneqnVm68}iN~F1NrjlGS)L!VeSUdiR=J$mZohzB;JhQTq-Y|qO(-poB>I&sC9pU0% z-CKS`8d)N0c9dc&(ZE{^~nTGrF|E8}cl2g=4nqZ$3oRv5dVn3g^^3 z5*^;wbHd}G6Yq{|A$neGjOHj)*@c!YJ$)DQ?iJOXA%eeNq+Jq0e^fj{14M7i=thp3Qu@`vrDtL((Q0@%34t@S*J=D>WD$!E1%jw|G z+C$p4$=9Uw^nZ#M=Cte3uj`lMTa&3jH`mbkb@2qFaFGIT#NIx;iN1y@uKr)LN z_b{IQ$+Spbcx2gfuA?mLXPbS&QF7&pVe%@DoFU5WZ>9E@?xTe>)hXZC1Rv6EsVmK| zps+oqv~(nchOj>viKW+29r6c$bU+Eht0b+?Qs+y{jZTHAc<}fc=7{2TSXHV?pjuxp zW5Nm64Q27c?`e45e+aG3zZ61&;m`96(}f6*ko4@@^pvS?j*T%n%Gk`QP>^i_azdlk zM>{fBwK|I>*q6Cw@21Jw;7*^~Tku12LRFLq{0cY`=LLQ^QA6xjmVU2eRY6d1->Zd( zy}uyUjIcOESBfJ%)~#=a0*hptHD}h){P@pcEw-HW~lEyk@!e$33SU4zvms zzQ~_C6~d0^wsB9zQ|)SjD(m`-%fyZ(xJ{*0Gcf!kd|7hr<)rwOJff#@tqc8+;S4aO z?r$8&O%5=-JcFWwjFg~4elYPj<>kwlHxAyb9d>0p&>CYam8J{#lNhwz@SHX!xv*a8 z%Tz9@nf^HeMUPYDO1Pk6>Sd*5tG_+wc4*&?e*6NPb4v{DSFt?S}JMw#np3qSbaBP5$NLF_;~FQnbODf zh09@+`(<=16cjfck}G4^Qkd79Ro>Z%&OGzi0%dMZ!Lv)dyqP{naYIX}bK^QECijfv z3PSiE@YIy2N+12rcAlGcTz~g~MHB7yGqs@dAgVE3q2pHnQ9_PhZr`c)%6?Td?&llTLv6q;Htf8h@F7vna!Ha-bol z2}+#zFWa%&_wg&gQp+}=1F^q{L_DKUQ+bd7HyCkG!->n+$O%MLT3)B|JV++|eT=)` z_AIh@9laU3ACq2$=-B|X9RPUl>#QtR_{_XU(}#C-1ZxX~o`G&JbW*};w)a{-cRcaT81f{IxZC9AAD3flSZTmx?o-GfQwqDlnu z7w%`c^VyAG`u2A(V1_pbRwTB0MfKQLmaoQ2qaokxV_Hs3F_Nal$@y!48_55+!Ib7U z)5Ag-Qhwk`Jkc4s zD%Y%R!Ots&h(%cx>yh`Ya~mt)e;rD0k&yNQxX>H7Mb|+WWbeR#TV2e4fy17at}pP! zESU4=qsmfqXIM9tjW6`NE%YWwAvpS3sPNwCJZ!}AL(+8D?VrWKp%&ZgE?d%$;~g+~ z!J8?m-q$)n@;^2qou%g1Hi455ys4ajz_wk5OMq<~qmPDXg6SsGWuvvutXqio2o20q z;07Ilr`(Q`-B>r4ZCqgL8qUN@RLr-Y=<8-fXo8k$eow;LkC+TKfFR{eQyGQQO69&4 z2?y@eo}t2qR1n3@z&DL&eX*V*V3kWT{q060vrDEEhM>9WMa2x{yal`fM3e4uk9RFN zu9xK{Tc#E|0JESu&@WQOU1leWY$GY(;mVg}NjscB?teZ8hz7gK+V_|vQw}7DMTv)~ z!5JwB?}lKC1w)wuiNwFpmKYG2hL;9yHsO;~fb90GZ=8!K<$lv%W1>s{yaQ$~l4tqZ z9>ny64waY?LR}3fMj`5vI`Samo%pTauX;)7PF?@G-+SF&y44|aI1?9aM^*i3>wQ)ki!YbUR6tDqd=I2MIP)Jh zaeC8Ky|MD3h3Sa^Bd=5YM!Er|I!)1e@BuF^R$oKq*w4ltztQDd(8g(b5Gl-Q2kW*s zpBVb1jtsemyGYDg?I?Do+Xm@>=&q#g@xzsfIj%%@io`K_EaOwsSyjRMtopZB2svKO z=QYaDUiB8rKEqBCw+GOTVWF=nIX^Z$m0mBq>gZ+&gT#Snn{L?=d!AKd{+KvSj*%n^V)cg*n+L>YP z53!IRyVqZ1rYh*7TWZv#4E-k`!Icbo)@1Xc)9e9JE^9G`9N1K6{p`)0R~L!mxpbf5 zqOfB;!*~TA6;cmE1hoYS(2>4?l=Z>1Yen#Z040LLZ;=k3khN8$26=r=R3=(kCeiY$ zwq4i-9Htr5TNb;ih*KM){EFkwQ$JIh*tH9D#3atP0Gi#oQL%2}nfMw&*ykZ+-0CV0 zs*NKop$J@sKa56lpLbs$&A&+dU&jnM6 zS%gE*;hblMt527tFgk1dKUcybkszk=%d&^VjlwtN^~?iv3s#kyT)#fNl>*;?!V#ib zAKTuVA?@kTckU?2RB%Upq1BXJXczFYpbiou1`vZ5Q=-hW>`a{lwL-L*-;ao6} zdkM4Z`3Hph(9a?pJb5`)kf+VKHAv^agO z8$>%hyQW+)#cSNf&^*~U*DeEa^gUU6o`0;?pQ(dv8#Y|Mk8u+xcQ(2mU_#^c&g{B_ zuL{RS*MB}3y$JKserikaY}%e-t;KWsf#DmNY#S+3Gc0dQm4oo1nnlErmG77M8IOPJO<=3X~0F_WitWap_C zE(xcM-toDAd`(l4l(smSj<_s1czy%T_JYMMN`@Yd901oxYAan?)QoeExbxJ@N%r>l z)6Nff&E{lyvm5D`4aHB1I85EH8Tv77A~nzeV5dtimH@+=8Xvc9&8ZG-y#>jiThP{z zuEQzbaVkrLwXn>!BRLsmVhF)F_1l)H|C+_vD#iK*huwd)#}s0p31~+v2nv7nrrSaZ~n$NSW32k1r1nk?iRMdV4|AlgHE3NzxTfTGB)v z!M9Suu11?k(8N8}uwg7@vB!FW8ztCu2U|-vdLAx2{1kda1}dwBai)x-1`M@%CV{B3 z^!EwqKh3PNS9~27vLQZlpZRKn9CWsDbhyq9ohkkVjU=0a=Qnr;_wIwS?Qli5>@Hf0 zQ1s%?W&m(*7@|l*zGz|)Jlj*#QNSh}GKM13lGEOlLYksT2T!lt;@xz8r!uuhxU*NF za-M4Y2mL!EzmT!U38-q zSuwJs1IExME6=+djgr7e$;t{I23VQBRWIPXIr!cpoLce_S3Q^QrMd0rtd4sdFsa^* zabarKgn(~Dh%>Gg4z0*!*lR3al$ktF$FTOuZr6FT6g^fIw?S&2U=rc>XRMb`M@EOg zeJVTYe)aqz6-VwESG{Sb468s;FUrIl4F#E15j85Dr`?hO`~Dvk_q)3X``)I+l5 zL&{~-sIusVHWT`xUN`?-t{)<{TKf8nIYepa@O-NStyciZ>pGp+VJG4Fv$9zU3Y`L7 zb?2oTf-fU5&b8?OD`$eZ=e{o3VR&ItYy0G4f7A$8wV#?bKrA7Ox=)MlS;}zEr5fL< z8d!|;n+@){M2p3#Q3^HG7tga8W{(u0Abc827X!|t(9kvxbj{G z4^Z|6yYUnFe|}$BqCBpT^DExdcyPNkuE?=-YrS?PBe^)EA*HTz2UREf@XpvCf2uXD zeNoM0dKfLZ^l-P{M;&4ROw(Z|7lkTN!4Si1_(g4ab;3#AlJ#wl<#HS`p zh;RlEOhiIQ90!dUzJj-3L4Az|S2!1NE2zgDHp0$03{l~qhjir?o3VulK?oz>1m%7% zJ|zy4ZMSfWq~H|E=MnB7KmF$o_@{zzu8Q2@eZ{c5P-RO^6$MCnL?6Ic(#KcYp}wdJ zWyVj-5iuA=yG@TZ_FnAeLafMwhs7re8RRuf?#t45$t0eQf`Z`RhoCE8?T%V;i+LwG zo1>sAz*&VK@;d4vcM>iQ2d@HK{`U>2lRlMHG21Z#ZY)#$Y%rfZl@0IW>x|nMBiaRMK9LR}^~i*6(Zg434I6{VK3xA@$#Qd2u6M>OSfw zuHhJT!cm+K#TK&c%iFh!1I+6R4+<}GU?Hy6JkP-O{`0~TOz#w`a>wZL+#FxlQAt$x z2JUB85w5ISq{k8Sd4RfJe99j5RZe*G zU(X%9?ED~k`W(&5{M{9GfvsU1@D`kBE=P2dImDmwh6um&hVd|6Q#uS-&XpoIe`o!?%t$zyX)Z*-G_$)_-$HTxl?p-v4b6gspOgN0FYZ zVx~8-0n|~H>WSy*^k?z82PV+a2w(9k>ZAv)_VVEj#N30jo1iTm!ziFBa$I>>=NSN- zi%Y!Fd8&5#Le>miQHkl-ysCGjJf{;Yx^Y#O-Q$iv4Hja63vLgt)aPJ60bhr}Tm3(z zgMTJm1f0q}Cc#$Fw_gGLu(RHv=^TjkL0o+2aJHoYT6G26&K{H%0}rrIv3$_e1I}mx zCqgKm1pXO^#O(P>$12~0hxOhi%b?H=>oJ9>t1mk3PVE6bf#b@Ff40c0G3mP8f|#5{ z`-7rxZ8&IkUQW=@B%H%7@JK3`Y9xNjO8oaxMbEeU?*@gAVG_LR;?a`7ppb>p-Cbp zj6Pb8w@_iUxMT<|1z-vF>jqVi_Ae7cKj}}(Z6{9@0p^C+G5-|+1_?Mko6w4r`w%qn z2P$(3+zePQ^!2Q97YSCGS|)m;Am&-IPmr;~d-IDFmWaWtG4%D{Wlh|~Mu?&Sx6~=E zk*++_f0CKenGPe$E}d39@)ocgE!6x7h}z#LWZ&d{!SScw9yGL2_!g=V1;s>Q##tf{ z-=ot1nR=6Rdn$NX=$XJ8py;(OSB1Ne1tYNot1oPIcG$9~A++cI!apyLp!0J9|Rm3>b&SZbKlSSb~mj-*{?FKql&+R@pe9aAO z^T+PW-uZlH2g{=v^G`PAcP3(wX-PMFY29eM^w#@Ty0 zmF7Eof$$;PVW=)$q^5nI!9G`Dl5RP(ysDC8KY#MD5Eh-+%@bEoflsX~rp{dY^IBa{ zER*jt)j{H|*E5ql9M7az9HC z=9t=x5ubBh6KMJ_!Uf9%TKTe(fIF^aMAfS@pYT3 z<8^4ud7OKcN8<~~UEp~Ix*-mQ8z}T;S4=T{~Rrq^{@b~ywe(N;o@r|oXhg-;s{sARZ0VtAr9y>qmchnF=hm(q8F8l4}#)+a)!D8Py?vU zuAE_JmDmPss3+gPC6KQV3~v26{*E{Pj=amReBu9I!A#^>t0RysCj+ue$8V4GW*O## z=)D_D@8N5`N`k}GKf}0O4G5V^R@`L6ie4V57mYUD1$=i?9L*;oCB{&h$f(m6k&$kh zbV=``GGb;M14hhZ$>R!{vjWWEu2Fo8cX8%Ox?Yqtbuv_-bJ*(l@EN144X@QbIGcxoLkD!dic zJ^XnI3)wZ~VN+sz>6|eGJuPNvAXae^?$BW4Be%hy5S`4BEi0-rm*Ag}nShP_eL^J0 zU)1RYzTOPjxXeg2y#Mr*ZsEdT$mzbp!bH{0t)y-qN zT;G_eC9cXn@S-jN)>BD*Z3IC#Cc9)KmX@p2uB1EuC3yDxGW{F1FRgztB7Nq9 zstLcAb4sTRkXdMHr|Xw?D(^xQ;Y-`ITo;HOJbgI1ThPOuhV&kI6|$_PPfHwp2j62x zW3iyVbas>_vTRFFQB~NS6<>_{HzF4OJU?A z1TpF^re7~Q3CG-rYw#`SsT$m*2@a``(c!=MNUv3r9{dUb5hU94%dk@kT8S@r6JIVJ z5wt0I_Wd$~5*0GQT2uilR_N)ZRHe^8b27`@4jPQe?MO8k0e_ZL4UD<|-(r~bhg-~b z+K1Gn*)X1`>YM7Q>{Xq2jki1r8NR#*FMn72=?pmL-bYku)6??$exZd zc-uLcf3JcQ9acP1~&b@mF}ST83v&=ZgXO`v)9LtZBw`{RSZ zzjI&Xt2YNp^$*Y#1PR+BGjZfG5DXE^HV7=!QkXd+u|ndV_wYx7xsBHA0Bu+ybd=4P zzrd}t=yu4F=BF`Nx=1&m>0F!L)^64a4 zod@E!?hngP&O=h#=d2CX`6BgDHEP)}DGgqZ5eSQdW&b{rB3rx18aL2lA)4nkpLO#X zNAG}aUN!{8nXs!*$8L@g0pIcA4Ui2cfk>w!=qw@?ZU!vMi+TfiPA>Pfh_vG> zvhQMnQrB1xUd)B4NEtYvpsMu%4Q)RBE6uTp#|^Y+Uj#0(f#AXwnI=MN`oAre>Xxs{ z^9rRYx}kkvaIC-tlz6l_eA*ARI-=6`$LrRkrpWM77zgpjWe$B#@pJ(EFG)*vjIrmD z{!8QrE*WC-c@F^EZs(i0x!H8cpzjeaAGU(u8 zGXOF4^P^@(wl3~)jtSHl7hwm#=y?u5S^2^6lefve%hn+IR;4Q0f^A{T?*=zpCC2>i zszgvR>&R^(2F;?KfEYaNhd{$!_|8(sef-g&|q z^F(6IXVq!QUBB8vZi{}7Mwh`>V>1vS1p2&1=4U`)4VqGPBNA(%Zf|H@vW63=j0X%R zvY%=uRz>~y+n6qjGLYSY2%&++zxJSzj zZ5{ZE$$x3T@jQkQxGf8mu-s681MPDlgb8wk0>&vrL#B+ZCP0EoAVCRgnM8N?%ASQS z4$h7zT`7Y77Fh4Ct%lu$p=aBH3l)3Gs;EoL-D~V>b+Qs!7J0o20U(@*!F75IKWX?4 zu+i6{;>fcrd}|wE0g9tci%HOZ>$2DZ(*k{up)%xS7B2WkHdg$%x5uwqfkl_51@R56 zb@~FvTAp9#FbMB7P@>isq)Z1UD*Ni8)?1}riz-NFo1&l-b#BdKK9w9Wz5flp z?TrqUI{))1WPogHtMDx5XB?v(fg!8eoW@livClz@_JI`1YCSJZxw!b;Nazm0A{@5S z*5^1+Tg?Nwbm#~tn+N~MBCNj7EwZuzWSNUXfkGyS@P@K0`5nNqv*QY|Oc6g1`)?g2 z6n~yDo{&PTWM;l-dW=aOl&twI$OmckM<@qV`-{|qZBY8NnrHz8Q3)Kl0W%sJG1&|J zr8hkckPR-ydSO)Q6IoLDcUBN|b;zZNNMFGnFg$c!P~1JFcrYSAxHx;RL!7YMYId!W_c?d`UAt7iU*43mYx!yh8Q2EjBLqnnTvc+k8om*MxS0 zLmwYXfPd&s^$!b>%7!T_I$-dc3Jx*Oalxerp8e1b2?a7ZHn>i%$x{jqIIl0CTvD6v zxO%8dHR@EODz_!lkiOP8X>9X*%o8NB2BVM5RDDIblIRRyYxW)t-+lfvH-P@jrozRH zR-96<;-1~0BViR_;uI-#v)>VP$1405J+3kn^gb2!f=l`Lsr4@5F%^ST)*REe;%5gJ z6aq=MP!NTZ*M=XrA&hf3w2rh4Huh%lD!x7C}T!q4=zQ@J>yT{Upe^6YMH z0Aiy*+TH-P{XZH>Jc-wl!zTuOB+{B?=?%)}qsfoq^{p_vs|yeynRN4Y0CtfWF?L#{ zOy@0#_XaDjANUD#zwEbz)^5{k;vNPzIub|KrD~~@ud23wS)rT435CZ%=Fb~UpaXvg z`2usP7aRFtyh)AF(S#}v>$jhHYo%%=e|Ngy?0$R!c^|s^!6nnS+n)0GbW}q*_h)Oi zz`&2eFn}Y4A$>)V#yvL*VxE<(Wn#1=FZ0Ok_d+qUec2t_qSF<-pI2Yqw*IRDu*?^T zf@F~$Lw7SO(cV^poRZ=;R$$dW#Kqsy$TPUD0%iy-MnV9Og_typMxXAT%UB*2fALXu z{K+q>!{@#pn=lpgD&PGQb~J@N6=y)ecjZri^;XGsn!M_xEwZPK9+X585%&qy&69l! z23=%UI0XT$u}|)J+@&E^n;#73IHx%QqZ_a=@ZG)8T`1_^gx_5l>Yg7}uA`bt?E zfYRJAoCzI`&wcRdTj3P858jpKUqmwznYB?v3I&9fxgeRv2vy zrSjcxk&h;wT*$ob+>`~ZZ3F?JS2J)j>Obi7n1ucVwtc$!PC$Lq0!X_WKVy+;9qCEh zZS2T(K&Qb8T0n|}z=GHy{n*!KPRB%CzA|@kyEdOXWFh*_!}sBOKn#w_2HlZ9Trg+F zREfL;=r~aMj2o@Kj`OQRVA!8zI6Y94C;Eb88)7{K+W=IwH6-o~l3yyFU)dxX&2{O* zvv{_AK5t2I!k_Y7Cyzv^mRx|KO$`={UBCSpGbluVfKHW0=R@N{W~!L|&x`zrtWtO? zUBYrlD zBf(5QyM=!zjUqbyC1;-tMMyY{pwI!`T}8SK!FPg!{qq*Mtf7>K$p=`!==6b4Lj~Y> z+WysUkX@|RvyeMb!Mv(w)dw**jChh?j@|Y$QgmA&Z;&9vT9JAnsN)0RkmbIL6PKj* z=1h06AsT)5t<;wTx$Y^c&B!Y?1S1|{sgYfk!w)(kVDI3Yf|;K1F#6g6fZ%+9mbfnW z4U+fJ)gl=EP$-rl|Mgmr?|vp#k&R{R&0sQk0@7EF5wCiI`Tst({x6%<`NAm#(2%MY z{LRSnm46TA@bN$v9xyqE%3zW-=fW%kYyB;pM$)4wFQ@DPpwDr}a1BZ2IYW^-XORhF zAyA;t^bQc1(P@>hzhfoJ9%QleK{YQlKUUZ_ z)n81bGb{&z7mv(&cawT22AtTZRAd){VRH+(!&%@GmIJd588q*pQD7CZ&A5vs;XHMN zq3D!Un%)cgRYlQAZhin*iKaMk9bejk79a(L$c6&Nk^jfX#En_tm8l#G0JWB&+(oL_ zs~3mw{s%0+k1ybBK7ydcae)_>;-XkM{v0g8QSj8w^&J4Yg|V4xso4U^d)pcUVcS~F z9l~UV`)^0*;f7{f&*TBWgxkP*zqAi@AFIjUx_Vi*6{9!URiOnA+p3J9O5c6nvrhNn zFI_=$UfY0XgRu3IMI#L5G1pHAKaK6*gO{>CkX@(JTbjTzc%!05OHze93lxQg*+ti_ zCY^vtJK@7H2oOo7-0g?iPOxnGkM!As=VLklqchPfV{0qq1>%Xj46x{&Zk~@QUf_NJ zZlYe=^&)h>Lh!L$QK*-A0-`xv{JoNGX%|9#vET-|~#=fL|V85ovFLcABE0LS~K{QCl2 zz2U6~1CC;*gu#*WJK^-rV=JiLf+;(2vb~{|1Y(7P$Q@TP}`qRn9jMz-|Xr2+B4}}!{MOMgXJNL8+shpha9Wq;7L*+);E)8Lw zNenBE`{R-}D)fuUjBbiSVCvrUB)!KoQ;ck)?f>%hM>u@F4=Mv%0=``I+YM0^s>lC% zNGDph85VN;wUglp7)c3`#Ue(hg=^Snj`{D#qMtSvpVaLU`Y8q(vcC`0 z=Uai5SEXP8z7NZG^jiU_RzRdr3^;ps`0cpT6S#jG3j=*hx?SnEai}@{qm&OuvI&Cx zT>8-8Ujb^3w2*_#&9j3TS@zOnVZ4w4dPn8uC`hRly>whjFJ|Ri=EI<^`VQHV3ra{ z&clmdHY+&g^2K{L$a(Y&isPj6AU!%y>BG&UM1YEe!Wjg?Cq0B2@=uY~Ig_!V`aJJe zxj@OXAS$7~ZD7IzDnfjLYHP6Es}lS-e345-JVs5n$!M%wja(_r95iN88Avu@z=eQb zJ>>%#oHCH+TJ~E-BNUYWljOf_@cP9v=Xsua=epddm&~ zLNOxz^II`GjO`6jyxvuB1-m{62QVHY$+KXfky}epM5#v7>ucy@Xc$w1?S*KUEeDx1 zxJcy)q>boPGV8qz1)eTbcQ zr(Gu@3PooY@J^JB=&bO`m@f5X^~RzytWQ8Zt`rmQqueY(6OK9Dx`4gN0&=?~gB5D- z_C-HIRJ!{6?5Ty~@juk$a97;qtJ=(&8L%UX)H0+`FktB&1~N_BHHjiXXlWJbiSu%q zn<{~pgjE1lfrQXmW|aYNgp^u(NTKP%6=iQ{A@c7ccIPExR1T0w98mNHUQ+^|l%u5y zQ32`^Sid^6TB-h-q@x6L3{v}k}_4kl`*n-D~$3n3gl zB?33{_t3W7W}mqMH%17Z#$1H{ia}hO9&T)I>Afa}HOBf9{QRhAdtf@FSFsZml>F zANii_DBXyK&3l@(ugW-2x?$2A+=EIRxH2sz zRSd=vncg{p;#f{Go2P^3dM=X--!2HHN<~v@crKw)x6xXM9{}JNek2ELdQwXucv$`{#&~m7V z)q!_LIy^Dir2i4v{FvJ+te%f$O2K=%)bSiVEe4h|Fc1vq=}lS+ED+p4sv8(|6V*qD zaig>$R*1Y=N%X5=X6io}$x2(FrB81$;{W1Ap2tnB96^k-Egp2-MQhsn*+lOeQJ$GQbzSQ4et}%eh6kjm- z#afyZ+jK@ylqOq>6jR8VW@#c=qU(?@!4gnqQsD{G4p#ExJ}D7VjaRo^TA4=MfEhnXiohG!_04Vu6y$$nzk~AltIL9XkQn3et=BBF>P z3S_f~7t!pb=jOrK-({?dUdj9I|;S5#{6LES|5>WuvI&{3|uEO(Xz6 zq+89>JI%9PN8YWWQQ!tk6k_Hmlnd@t&ANUV*9Pjsg11HN>(&||&I4oR8Q9%*7$h0# zHVij@{ynNm!6wQ_p55a=wO}p>+e1}fTFuO@I^%cu*`^+~YP*MSgMs+PRsG(~6^(D- zV03V%(7LoUwyaxgjFA$9Ve!**CmVQs)mV&bW`-f;u^;~0?lAi8N$*E4w>GWCC&MiU z^~GVP6^=TPE_(Ek&~vEAg{70CqCqcZ?w#6(oiSnfKk(;0V4u>2a#kW%}<`P`)jxQU^?YKS~Oy#7G zi4JfxK0Mm4?|938uBzMARp_IE-637)g{!g0zS6r$ZvR(&!;jYigMo9=t&TB*KIGaK z^HWN8z0a?TjkS%Ha#%CXr$3oHI&Bv)?vN>gZh|X5a;PbA;5T_Fz)d742=3=o7!UHL zIwfk~znm4Wy@Q#)KBY~To?eO63_yBZwVE~LMChV&OF^=V0; z%qWG)g4+i#P+AvftT!=&K`+v$H0YOPz+klyS9IrE7q(CbwUu_!ml5B3pu5tsZoER4 zZg5>Jer6%E0Shh}!(lYU2Kf&{T;f~yWl#eMvs>JlkNn_d;nR|q>p z9rB^KciJOl?xD;>p~aT--#V^3LW$(dbJ0m{t>2=y1^KLZYi8a;`Xj=iGQUPBy&(MH znF#hSP#G3ZdA;^ECk-hU!`w0x&RUUeJDShz?64MUwH$ zjdjB_dH1CjXUG!yu1`{UDNh!ib%#R%9i_HA{64g#Bo3O7?J!dB>JJmKY*8rY_7oUC zZ!^F>9GoXymKe6luI`*IUx6@V=2|xX%uCH>N1CjvOKBiX3Z-8~xQu*_eaKxwVagR=sKnI(TW8Azma@U+Mf^H^H9)z0&E(TB3WGd+1xAIgj)^S3kn3*Ifi zj9BTTbqcJ*RVV8x%>U{gU=%2r_b&IK(Cq-4VNB9qp-_S}+!`O31*J^Uh} zp&ivVLcwCs__-ZHWtTb*xb}t%K6}!d*R*QPo#)rvPh&=n$DW;ddx7;`O?Oo+#l0f2 z_n5V8;Ya(_sbB4_&mE<$qV&So)R&X}zdz4sm)$ip&?cB*d7I~>roba*rR)|(kS#hL`7Er> z-#5uo`Vbk?)Vg!I7Jl)LMZe1_7aXEg9W1K`o!SrQG@D$9R0}EWEIf1Lri%W zt%^JU_o(se8FcYWx~pAGicYqU=jGLOwyiJ)nIH*Q;-sWjS_aWT8kG8wv_88QY)_WT zH29Hrv&Dvon+eQsKS+ma8?C$7_zUo8xY49u5-CA|6xPRU)#X5s5 zMF!_!K6Rf?OuJ zZEEI;%3o|XoK>DV!PLh`?xlGBHxlK6LY|(M~1Ld~id))`=u$$$9#NYG}D2 z?P4i(SI_;!%bIQ{)ew&`8aAvNWCcj)Z+xw0QRS_Eu3qp61#htVHowv!R-@9BX?x=*O-uk## zRaiHt#eaI8uQjt^oj<7=XSh#jS}|x}`lKR5+tDkecZ-ka%r5%U^2LevG**mmE;i$Q zHAUILDO$_hrmw2;yP)6ZhpAcHwl#qTfcUUy+eG#322f(ZuI-R{mPq0Wn!rf~KvhGI z-T#O0cQfwhg_+294`e|BR?a<; zsYP_M+FS!fU;PR5qV;9Q+v#kFFv2J{8sT>&x1yl3IU!{yZ{mMV50vuw)FE;$8qPJ3P z#ln6TzYSWK9`oMhO+pn^$HBXG${(*eetn=m5i1QxlA8=E98>a+b#Tp>d}hHWNP0(0 zvCmfD8H{5PddBpVOY|DCQ|9Zqi> zGfef)O{$)e@^?QWY|G{`xsBh)VCSDIXwet#ixEB0zLR5*h3upAzRP+rOr9*b#RWzu zrKFa}Rx74uqkDS6d$~E7oc$f{O^uK`dZ|x5{c~KTX~k}`qTpw-j;dR|;H?dCUhgxUAJg8XK5PTN%65wGu)isbUg;zzr$ zYb!b~T)nDO>U)I!Zh)b#i0%4{A)%L^oGH9QWmF&f>fdabPbxGEDZEa)U4#Y}qw8ux zrx_rf251Zt?}OVNm)G=0*#kes)CiqQW3Q5QTbTEEMfeV--&u#AhJX9csq=a8*5D1s zi4AeLPZj8kTq*0lV`mfbG5(4)eeB@L&K#?pD7f~dZDyEB_NZ8j;5CT>LsW!C4^bTg z6tjaYJbY6|cG`Z{-ib8WDYch3%~;RbMR4U-i4}q;74g0s#$11&rt?g{=+tvdDD??@ zYeHyO?k(GZ_aAbYLS?=_|8iZU^UYbBz7sV^{-^@um^;}B5)sJ>vex(BM#qAgSqkn`FXC9EoFFXopp_vf-7;%>^&KnAmnQGsp^C+2BJHI45!8t>|<%CQO* zP8my`8Na0)5L?X4$muZN9jq@K0VM*5>W&`4WZjfp;Qby)2m@LiU4MVO8!VG|x%04k^)JWl49OY`FXr(wT`~)nNFT(}X(qrc5UTPe? zw7?%c3FRJN2H6d}2VKGMSm!^=Kj8wYx*Geh5TeJ;biWQN$+^2PSlHXONm%Ilfsyv1 zki;Kiq<57=VZC0HKTKozUPg9_h22W9(O>_|c7}!C*&l);Gn@^=AzCl4 zvOVan@MWM}XgwkoJoD8t4 zum=sKGU@qJ_bY~dv1m@)7owyg6l-Opa0v7HEXU=-3>k>~WXU;xlpHVmjq-1y5A{1u z_T26OcMsIqo0Iy4XH(~0-Z5c>e!+XkuPVCdJ!V?8=qRAfEv9gMd96wRripPQ*RdPV zw=`OA{%*Zl`i0)5{cCJq?$4HEEwbM2p2vPM<$WVNy;Yi`&9&OS!W+)8ds?Nrik0!u z*4cg3ppUe56ZvQIPtsi>iGOdSHbsAvn|6dfq*M1Mcb{zftuZ8HSne5%qQ;`1KnbpK9yVa%IHtv1>V6_mVyJ^px*5M<(Un5&Hlu|CWJ9m@k zc+EPD+S7AR2Au4&n=5Q_)jE@BRmc?UD7{64W(1;(9Q)AO_D01YY@}S-?afd31lz^A z9DUy9|5aEl+vLRed4+=q4>tJembo-1@4O`yc4V}SEEjP2&`hq*GmD+IiUHpza$Ia8 z^Zn$?Ejx_ZRkO)X0p#u6@5$a(4uk@U0Yf$4|pXkwXyjCalCz7qt`=xUpI^r2Vbtrl^wZnP8c z3``4&=Ih;*XcD4rXwQ;c;Gb4YrS*;sIx*e0KWCk-_8^MkrG$<|&0T?EfwPZk?+wtq z{)i6J$+ohY`)3QJB&d(ju00%7$XpJ;S=)LK4;rFbftSIN4Qy|#CQZIgRaaP8=w@!t*|nSDFn?^w5vR0TJz>mZ{%Q;5l8o}F}wE0J-tW0PLjp^ z;STcCg<&Rxa=h8s>tZRz_MpUCy353!ccc&cZY?u@dHmOlF0Zt)C)!QoJEx7aWj9ft zb8LAS=4XA@QKwrpI@hjZ#@?Lify~U&yaL7Gm~d`ImN8C|Byw$ro|+kMl-MIh8cVWyg&$GuSGnA(8FHX|fC`>yH5Vf{fC!`nN zmXrLMbgh}M)^wK_G=mxys#odBuwnd_NRfAA@wPGX(o^n2kEqj zmEW(N8?`(PSEzPsZ(!8vIKcQWq&#-mPUh~5Cd<9)&30ma$YAIN%=~g4f1~KO2se{N zNUc%Xn0xkHzn)EPC}RhYK*tSN_g5;CE<#RM>Ir;eCeddNBi(v+J74E9Q{Gu?LYnYqRt$bfn;tM}t8lhWz zq`xUYSu6T9{FHS2SHk$rW?nx^vZD#+J=rkEURb|r7`VUI#@fIgM*s++i2ZteXC|e0 z54+^MQB%a<^fUe{oE6J(o}bfmc}dOB699U7D-CSc@_-aXsTx~7C2-y!)bN2F(;+ww z4W_!AZK(X63#4fj24}z4UTEyb7CN%Off!&39)}4_LH;uSeV?R#K$%5mwoX(lh4Kr? z4!8-O&ZZIqUkJno1J_{uEQZ>7geFN>%^tsrElQ&P)SZEekZaEij&$|)NB#iQ9QBiz zCavGZglp@^OmYdcx7w7H&X5!;$ve@Qg0DK$uyqypO;T4 z*)+fL;d!Rq!=42AoV#SW%}tnac1fz5)3!PB0E8#ueF>tPY$hZKzlUVqXDMSXK zzDCh#aSb_d%0)U#jQ zxcWXx`x2qV(4E76_^y^o67@{UTt)mhwBf0$FJD9J=W)`1gZ}sjOV1yd>5}xmfwPNN z#jzS)uFz0lX)Z0A6$rVBf(}@iJH!$4nTMdqX8Wd2jEptA9B%x9phmgCfQOZ7W!%?y zny)c83|HiZ}q#@;~o+H7*&xl zojZ~?;EP$nnu26?0$rdw?8H;)DFrr5MHu3HiK*jvWmu;l(1C z4xbR?233%^+>`mLVW(Qsg8;>)ys)E*v)=A3_XMw7+M_b=rq8suoM!+{@m`jZD$rwF zgt8@_a*Jt&eMVH;HPYteVFfjI5caX3*lql~?$)WDCs;TT5pj|z~ zRs2D2<6uT0uIXPeU9v$_!hdN+&yh8wXIO;uP^y*W2i3+Jk!<$HH~jM#jK{UO4oqnj zwfHeHBGU<@?Gns-akwwsxNsNDT;@vOOrX9LyKtMV%N&->akiQZ)#v>j6Hs2^j~`N^91%Sh%SxAH58|i*EA8BlA6Bbf|Adu$7(wQt5oW-6YQthO z=+775_s zA`)c#vZIg0H0cvrDwpcs0^Zpv;x;)f_zndbFAnHQ#FhaIA__7~gN_CmlWR)v>hrQR zq3!3AK=ltXc$XYQ&y={H-R`tFtY47oPUbqS`KimWgIXQxZ`!B5HxBHK@GF4x<uC1<&I4c=L|fwR3GmE_zcD9bc(XEBCrI9!*U+r|V?D3WDHug55W#)@ z3PdZkLod(qv~ptt0PXj#Zq3c&AF?~_26^kh>m@sMW^o2sl^!uH4om~czA z($*4D)2is*^%h`}waZxCfr_LJv)7{o0jIPrz7RXK#PRAB03WeKzO46{9%eip>-7_e zbR=Zmv&C7%D6*}LI>nI zU-$SV*@jju|&E_BgieO15p+hwtmo`5?on&RsI{njT z*8QEPwwd4TdyWHvN}p&I=0A@Q(-HE-{+5TlUzw8w6iUv(3xEtHLC;i{sU|MQnAEai z7P!{JVf9XoK2_}#a3yBufbXw0t~UWkqve@2h$Ra3Kn{j1q9(v@#bH&L7Mt)h*_J`C z$8XcfSRCgE-Wt2!+UMig!?`Uv)DtkMuPri2m#+7gwCh!=--@YX zSY7*O^ns1%D^rOb+I*je&NVU3U@6oZWK}t}LONWL!{mU55$ju^84%W|Kqu*9+m9ud z`^+0mS25>hL1a+9e`nx=I?7WkSP_#NHR#|`=m!pWjtCCp+?y0nBUq@d+)0_ZyzyEe zI98Y|E~}$j9HYeQoA0A!+zA$hn4Qtz3;LHRs>Lk!XM^! zcFs8_S|tWRz|}WEyO3=`5rRrrJsBP?d9y!U8_b!vm)c287VR?W5hLaC_ty2vrwKBR zewz2_T>%=OCSQ9G+VC1TM}~tH-8$*0W+yiEihjt=_jsjnOysTTk7&PCw$Pf^^VRkK z*L25b#L6bNUuPmK`?e$YYvmbn-h6SD1wXgcCHY_tx-O;n7~CIgewa!awVU<3LbHG| zF(b$~^i^kcDEM}AQ?Qz3B^mR8g}#@8?DF)Do-?jq+;K%@q4G)FQKTXJm<^(IO_qfH z&w(2*c;hJfD5ddl0+lMMn56L6d8XJI?6Kz9(V23LDc-m(7yn}<)5*_C;v#-{iRmiW zib4Q$mf;e1?9{+vkE6XQ$rC<3~8d0+YhTcmG>Ql#r15uDr?hay5Z}w~I z5@iS|d2^dYuVO$x%p5ZKDSZzzy3^Bqs;T+4nmIf-x~brn$&gTpm3Nb*+VY+!$jk2P z=f4YyaRSAOqYEK%i($_Ma3xR2>Sf*c-eb_ssy1&-w8|7?G`eroTdHrzz<03POh0XQ zIBPZql2xVl<-uR&+av(P0P|C*d%V}&@NGrk`j17LCxdV+SKr8(iWXw6@|2^erb1$v zH)}+gy`O(4#IuK8s%b`d#lNXJkXvXyo!z0I_$a~vfJB8C`@i2{P@U)wObXltwM%*8 z8mng16K=|C>K2LTD}Hm59-0LytSLN%x&R!A5*6b^3Nw_m5{YA6pcrL&@1g6~I>`t0Au;vY(=wOjI$ z;D(4K6JkK1JPBNcG;&Tp?@TvG@9hcYpwN9pQ3pKZ{=d+H)*R^oMTNO#*@z4bd(gLH1uKbDXPL8z|`( zcY`$(&xjio1Zq+(=wqol0#8HrC|l0^R6qW_57@SuC~17x)p{KVg4nQq85l9Q{DGUm zFri?!SvxMFcYn2rMs$mhM%wlXIvMJ64AfnP2PwfcJbEoRJs}cC#>aTPbyt$Od^=Xo zV+MpRs)PURnc3f`t-E<gii(HZ({yG!TgY?0<{>V z+0~j)V9xV_pu#kjw6IJqRdZ_Aw=r|wxX$!)A@@qL=`C5tiR{NHMwn|$p znr(7(k`CV&?d#`Eul#TxtwVKu+=Z$IOWs8tOhfXKRK?4FDHHQmIdlD1ev#}7hNFQN z`N_6-cLHF_J`fkjTpUm_08qR?yLIQ!xiOje?2*_P!wVf8F|^vVb+ym4M8EtH=QXuI zTjzN8J_>CZ`W&A~Zk5i5Ei~G$V)=64*1hP`-y z>^@SOc%eYHELb*y?$4|=J1Xp41Y}f#iOJVef<ln&WdUW(W1`uJW3#r<3)EtXOWU*Xr8?91?J>GKzx&Y<^{HG~6tP_cIsh)Uqz zQ%F)1zgjZ->BW}tjBUCR0U^7SkaR;6brX58ZuFJvN@p)G5~Dm%`5Nki~< zst>+EYCw^B);p*)F;d8R3gi(HiH`<4X0sjH(K8DE_3RH@^Rq7kvL|T#M=8v5v|)u; z1M+NBzE+ti-4RfG^x%S#@|6{2lsFKjs)PnwY7=d6H%vh%8 ztE#N~&&x|W*KAlBXIAbyoEc;zp{?pYm3&6S4Bkj>d8VkGXD)bEwAbCFXWZ0|62le4 z+aR{fY&sHQwT|oEyR(-y+t5e_GcPg?SSlY$ccHQsLnm?-sB~=QIG%dbHQ<%X{LS&K zoeRrI&h>rf)7W-UN_M2a4DtFBJ9i|88D)wdegA6vcbbPk5!l^ptT1nnlt&lj=DwSx<(A^zMt9dfphOAfMpHzI>&JtKAJ`+-&Gdp|L%aEwg;NIZP zzE5sWF3kdCDSrE771bsLX;e_ssCcDw|B_+NaX5p}L^rO`zHiO_{b+rMKh9PXbz#7k zclHp4U9#rb;-`^B0t6i!bphn_ivn63%)KI4HEC|))?#tFkB&0Uw%iA48Fi5}ex)q7 z@9;6W!u`F>QQwSWA@AqeIxdx9WZHnyX6+;nInsJyC)%6!4);bLj%(=5mfg%rlc;|D zS^jQ~yXIs7*xrm&!|*KV89y8lc40|A!KVV8^*6j!Hun!|JloZ`N;KzEaL?)yi)kKq$whOa5x%7ID`S&?y`Y*{#8A+EH6#2{* zA%Q9G3hM=7{R1|~`p)Z9pJ_hWtW9-q*oH)9W^(nX;ZrQdcV&bm?$yYA>sKGx=BiwQ zYLd)4Vt1+)$9og1*&vuTLtV-*#c=ePO=(xZW~$kG&G#;xbLsl-*bK{D;&tE|q&8FU zWup349{w%@DUbjlnN7V9$K>Em%|8k2`lBPfra;2t&2e?kxn}gCu>WP?Z-0! z`~(c+AmGT-1}F+Go`4BEi_VXVYu8D(Cw-`-ZO&vXddHQK`J^OMWi3ZLICM^Q#)xuh z86X*8N5&u9PNa?PfVmfjoZdZAirbewxl3meT%C^s{f`nnl4kZjIswB@m-3tj^Xgwb zz?>W)zt_~5f0v-px#69H8Zxh&-dJsJ0Uz@SXnhx1yA$qp1rltMsGW3ea+A()DgxdI zPgH7xBNcxX{@(emUh;kKh)e2M+D;Km8itAHEHnOA(NQ&Ddk*U0zvfOm&XxcPp@RAq zl=XpRLyll*7q;~nvn8$W~d@TsQ_|6j`Y35RZPEGa5<&TlVOvc z(ZEak^;b#e=(o?!va+j|p~x2U?WJxgBrvhW&7IDc&5H2HK8)a|3W}Jw4qBIhG8%}Y zUo<11C^_(@7uzhod|y(h9h6!ynwazNj#hSk4c;|ULmrT9vR*c-TQZgYBteGR4H^?# zxPTuKJNQk-E4+MW6J_ENpz!9teg`Hz0M$hSXvdF?Hjab@ABd|lTvhkN;>FUpmTOm9 zi)Q_uCB;pj9}jpxN$TkpqRz7#f<)y<7nLC4=jW3z6<(GY_`>2Jm;t$eT1ChttM1#y z?tg%ve2v&Z2OA;X%6$NMN|Z^aDYozX_m*P5PE_|MWS}nf^*`tiVteqs%o9m_-}??| z!Wz6Nx~2J=61g#GB%yX4#gtC~QcJ_r2EeVb;2BCmiToyUf>;|pf~w5e z$P%q44ssavnLc>N1oQ9P%^dR;#Vqx8bbB!HLoV7pwPRYDa;4n~_Pt-1G->i|&&&zr zB~~x@bSvSaDfK*44G`roq5kA6euoQs$c6I}&a$Wtt4swfpi8hqrVX0Td&aRC(}4U^ z`aOeK`*)OHrN;x=&-obxq^1qBDo-j-u=M}oflUL*?xuIYe;_g7RM$ab#D&oED9>8l z8r0sX6&c<2w&fS~_%Tbd9M9XSVpuro;B9h7TCAnXdR+=`QC@Ge)P50MxCf-f6L>!RL4MdG2CT=g<721 zHGZY<)0&=6h|_7^td1QQffc{LaAT|cV-|sVw zm7ixA2SHF=c%SZAiFPnmpXhnHe+PDnI_*l=?`64rBVi%b-V7ABX{jKIA zn2V}p53T|msexCUB*C~-un6lQB+otdL2u*Z>b#yPK<&WqlLWLApC^>ITOKB;-S#x( z7aNk9U70Pbsv5d_s(yIiYc4bQQi}}AI5b&QBM68pIC|u0@}a_SijwEZ9T9XnA#c!c zh+wScQYw&>q7yyaj&R)=)?t5KQDz$M5#zt8XAG~Dx3>63i|u;#hdaQ02SLx+2HuGQ(_pJ>?)|iFf%bP``&}u!@wh9 zUCbl}Nqq$?x8;1dnyp$>as=rZ#}idQrWaxyTizv}jXA$N1Ih-ow!BJG_zMSx57L@9 zW>$1PYL@Sslq0&-meB9%QsV>7xN*`5#xjott$3dPmf zG_q04wn#dGvHd|K*A~!u-fXXiPhS2wvvTho^+3blT?j~aNhWfJq#`OuWS8)O&|`oOoGT)lWNd(bb2z=oTRSN|M^f7Drg+FR0SOs?&G%!3R0 zD=k&Qk&>l?({^aeZK(_vp_rD6wiaopxUA~TZU)p?XZyzk?;Z-tlFh_7xUvYAGmt?} zO$RrXH?El*mvvKc)f8jQ6)`H~Z#c6SH*HsXQ&UPt{UNCPN?vxX3IA$9UiOqe5(E+DGh%$F~`&zRNvr8>7v6#m8r1wFZ+ui`; zS#DY2O2Cr`wejhd4{*NphHx-Y7(Cz?r4knJF)Z3`#+VN9w~&|*%|IjIy{QHWu#!n{ zn_9-WcN8@fL5=eFCEPOCaE;2CFKuEs=QEQCO#H_YMuRgcB!gTY3~d+Yo->*b5v9W* zG0Cl*)=Mz$X0ggk>nz?t;WYn{!5F?fl1!>MJ+ogU@?4W8d!}AFntTNmqFzGVJz?bL z+i75D@2R5$+(gZwzl2)a3|VRk>5En`{2| z5y;a((d?N58O%nDApx~&eAl2|iS_tV%d)+#6%uFndzCWUE^EX!3S${($>dl9=uP8h z+u2GfgW4Cv#Su*SaS4S$sS=R&NLh)HA5GYegYU%gUZF6M$secR!GRb@uHUd)!K0Q~ zssu^Jn4aJ3vAsO7_P1m%?3rqo0>qxso_$Ea{tKq<=;sZr0i@+$lQsH?BGaZ>2ImL_ zq>ypdX~2!oJ~*hH@aG5b7Rq@d_eOzSqDGBWYfy;TwRxR`8*1fFJnxHI3mI1a2~a_W zs1x1p@sREUP_{IXsq9_VZ;dCoBO*OU@7`B^b~D=YAADqfOiP*)l-aPz%(%bb+Xm!D z7J69s7l3SjgX9K44^1X~>JOkJZ*cH+Q)@Pnyd3V}2C^f8E(@Ye{q91p2;ak|eW!mK zD{n3SM?ROS6;KSa98=!3!+#pCeaz$(fq4z=;y_em@yPo==FCs9$&BOAuWLFcQH#H| zgq5W8!}rY{w`<{aSCSh420-bTtq;=Arj?SFKD8kE*P9gW@koFVj zAVV?^GiABzTvpGV>_pU-sLhGqlgNtM^KtgfbKsz8H2gnS`>iAEQ^XqKVGIG-%>LDw zLCcOqByz=kD;Y5|6D|w!u7` z0_G%7GRf8JdC+|7PYAtBL+nl9S$purNORZN5g}`Jr<^ioNY3Uwxt&H{XvEDscRCdV zb!*O_C~ClCO_AlB_ziia?HaCf%QWE1;)+iYGHnG%w|dFZ#Zo9~Bu;Wxs}O#G7m{tT zW>OZLBwO*v)P7{|j(Si?&M+kdDoTE^K-mH76JW+wSp~msaFFX zF)gf>%h5%_9Z(_|u>skkq>a|yrQp=t)zgu3{uA0tX{wb8^bz&Dj;T=~8v61KTDsa- z>jgH$U#?A20XLTaTp`o1Ui9e^3uN51j(+KGT7APg1+iU+Nix_{yohCJWL83C1 z*LgQ>ngFJ+pr4jKZ)5GmMuFWxqJ*PA3+EfGr4+J(d$WGJoEikICyqv0wq%HKgV;SE z@d|9i|GB8X<3IYOzD^zNq)>iH7gXQYqv%Qt>lFjU){g-tCkk!yE%}qwaQL9?+!-W? zvW9^t{^dKH!z*MISJHUe(!RfW^11`|RAbtv#l*m^nX zdtAeVJ=eaMq*EI*fGYN&$r}3k3nE@0D_c@C3eWvzJ43f5{6gJKj72qV$)sl&ouMk? zpONSdlg6O2#8vs>++I_?V=!FDTw|2dp)X|PbJzvn5poBWNJxmgv{LeR0W@OW)i1Gn z$-SZQrZ7mdjq=M`N0)l&wX}sP?N8pG&|#r{!$l#pY<8!%iOkz`t~)!zl3spQ*=Zaw z9{~*A)49{eI*D@Qd!~Sc1`g*!W>}&WvEu`iY+r_rjo!X$PYrhqZ1rRRnR6AI zFHB_!y`|IZ*T5*2btJOpx6d8WD-gBwhXbfCSey4%iw>9EvMZMo zbDuHpRKf-@wFTi|Cb&g@5F)yWNk=pQwJS6=eqW88to5JUyr;3pVLv%&gEGQ!9j0fV z0w5$^H4li_VamAQll^RH!*H_&N`P1g%<%qmFu*j4Bg{&?ar{s!?bga5>T@^kRd;nd&>8Z5;9=c-?Ppipp% zr-dm8u&j*=^uGY_nv{4rSeL$VlCNT&;R#Hs@B0>U+9y|LYeY_2T5Zi z-PKr`VKay7M&stc??CS(~l}M!&<+i8U5v#>lYR!z?4D! z`I3u&zGQwUG}l7wKOY8Yi!(76y7_aeXTShZVZl92V2PXZ!wE*cU@@bE2FJi(rw1KP zB_>Z*vx_+w0yp3N*LSQrdp&k#O#mYhF#0dJgRf{tKH-UR@V*ze6s!TG-A?o0w7VymOKIdb`E zG>biJF14gy82Ya-Aa{`uFga8IzI-!kvtf`OCM(!hh5WU~Bqd_XwgSvui!FbDg@*z7 zN%TFyF^L3;V9R84m?KgV;B8CpR#u-L4``;ymTyX1cgDm^yIXX}i%e@og*bfW;eYdJ zE62C^e;a(jdRbB=MhNN_s??zt#DR=NR@J0l1&k-iV@3?vasKH(Ic}+o-9}LHO?dP7 z#()o1N1aSxp`$BrP@Zdpg?vLkA1ou(luxT7S3l_Q(Ku3=YcDEQC`kqfTQ0&a;ANIm z@6S!sN!4-Lj0s=Xt+Q6Ub1{|0t2eNG81KFyJT+tYHq(YqX z7qs|VaiUx!9m&Qa!%iQ()a1K38r1?<+)SI^&Ytdz^h9lRC&=>5O^8c{7BZb;@*S6U zeLuZ`$-wmrD0yyj_<*mpgjRw0>;=-?g+7|;eCmwg_p6sk4C%Yis2dT&^U$trr&;)w z;vJ04Tw9)49yS#OUvHQ%yV|T{fhk-*%Za{vj`RVn`+5GOw-4RrJQau{8mmJO;i@7; zsd_nE%9v5O6MRWPE0n5?l|lOw#j)7BM>o5x?IXn$(Y9b7MfCYBWPwlCTYz`id4isa z_3wdDD*$$>`RO#0@6tU440L2Blp>kO-2!KP1$LuePZh$a3qv+j60S%?Km7YLuY+vx zfErr>I%;|DCck+5_U%a8tfi^9PFBMZt#4<{RS^(*fH0>uiv3AbT+ed}(U1ieKbLe2iV_EZuu3)%{|UKg_b#YEKtT6!zov2t`kz zh#LZ)m5@mtl+uDKZobKq9nTUq)y+ercu8l&B@kojb|*;*&7smbqPaCs*4&03f0JX> zZ1lyi*!{5`iMhKetYyC>{wK_8M0CADXt4WzdOTYg#UYft(X%J?iJkKeCckom1q2}{ z%wgk9BL35Mv?*?LXLDwT+KY#_cOuq)V%XUTXatSlDpFCuw#0rkEO=72cqZaD`Ij#* z@38_Ka|Aos?aCWOsw*~zDmh-00vDCq)^x1*boVStlqC6(V-s%8tPYRJJu`b>R!j9n zO!9|Q&K&Ac>P9+_FeE~QOl(D zgS93txNyy{%84DL;;C!=PY10p9n8zsQ&J&<#s7cSL1rTSiMuhYkk;&+DBV7B;!**}dwwA`Ei zP^j>LhK`qx#!iFkxPV{ta8Pd2+_xW-*<{2lz5OJ;8$#ig72lSKCO^I=s7ztWAAlBk zU#e(N>Nf=XK~`>v36`1DPja47|3gNu{E$u2PdYM1mO+O{GlDtV)|l9EBAWXfreMc# zf8TXK(5s(=v;bPf>$uVx`hXDa#Y-|6kqa!E-;FeIv=eH!dh8ezIh$< zmK47eb`&)6$iw)Y03WUx^cOWmz_jU@*^2D@Gxf{t?$N&Edw%rjLe?GxY7#NTJ#eNi zyT_oe7O&@Xz-!<)-}#|x9aj(@H@;p{6}UTFu4GhXuHt++cnyMnNRt61RrxIps)eAD z3h%(;sP1QKrb&BWGKDweodF{d9D__jS(Qi_y6`Bgfd&dq_mv_YuCU&IxfmF;j#$38 zYOVopu!CQZArv29viQowb4++s(5oN|Yvrq)8kLu(O71`1Er+@>b{6))IFv%3h*n)2 zvW#j0v_eOutA>IyXCbX$vYe005(@SO=IBCOWO=#GVj3qkxZCjHDy`1Y6(YwZS<3q$ z<5C_-1ULoAt?mGF8=>@4-?Zrg8KQv*U^&KvlEj@v@v8_Zytz;g4k7&tCj;0(87Rf* z*Lc~}zREcot495*CDpn-HiHH3O{gK+S*B0I^2mOeWQ9umz?GW=F;(U1sJ;WzXyr* zKtlXy;PqqaB)T9E-q5=bR=O|H=BVTRcOyI%(3a;e_ts(jL=ici-YK-S?YZMch_lR> zimW=`jaU{8!_abrV@%>3Xv7{e5dI*coNu1vD~0T33JT!mVS;B&AR})a>QL+)786pX zL~Nd*N1Oyj4m|Rf7mWsWG|1np)H{IKoq?NRS;5{d=So%cNR4|4gr)r&@+ z;JtHeD5*ojYegQV+bF@iSW%XY72+TxY&YR3po3;ejfyXf7zMyG%yo(imvNSZe^|fI z?wpJGl}?}XA|513WL{>!s#9%d5|Rx{ZOXk1vd$&rpG+_X;qAg3dccVAb(E)o?7y(0 zA{x2;-pIASoMAIQ3PwaoNKxIOdgOA@mA|%UwtpZEJTT@Yd(K{h4e-dPD^$-Rf$M>x zl3scxSdF$|$A8uF^&KS*!w>c+4qa2l0E?sj_N**tlI*5C8`?QxVm}Ffn532@vLgmL z%J(^MT%Q)W?_vdvZ|G>EZ9!!4cz-=IURGYBHAAcmb>j{#EIsNd1%aM2o%I>DGQ2(0 zgP9H8)#|ZS1JHmeRgPWlJIPY~t44gzudA$Iwazwgde3dX1mdlGVd))ykJQQDELHov_H#^v3Z{;spp&{dVM-_5d z_%%ltV(mfOW*fBJFVcNwb7W?Jqfnoxr?PRJ-p-@|2f(~422R)m)n$zHNLhA87_ zHOOJ6`t8s*BkOd7&;(-$CnmR~P><>aY=BEXU7|WPZI4n}!aBbj*gI3$rGj(ejR0qY zVvs-VU=~=uihzA#-u59q{lDbL5O*CvH&!`(5J~XxANR&wz$z`DjNnmE_FG99xeP;N z|9jciKuLcU(4II(%*k2wzw7D0!_({TX z@JHfzvV%wS{UGw%SV*gX8r*-^O*wKBs0P9x=IS2U$#c-i@Ia>1`As+Zj~#DhYA0BA zfe5xf`q3Lu$2S8A1;FWoxo*JBoeVrPuxzX{46hHTKT0cpuMWyJ#^kIR4Qv&B*IzOE zg{K_2B%kgFEZJWHpHFISXUIMe%q&VY+a#Gb7w9}433`B2qs;~j%{V}#>DR%7^pj*A z*Ds^5<})z4j#lJ*oXDVI5O@JlZw9PV;H+Cd+P8IvS!7N!!=Id+L+P$PKOUY1wm_Oc5ka~}%^510L6078)nlS}U*0=T>o40;8uiYNys^SWDOc0(G$j(xb@Igb0S~Kv%0Yw^xoFf=^+U6ylxa{@Jr_<90J>m^zUrHnBXx zpdy!y-x28WDgR6DVN&maP%GH4!052rM zcDsOD#{sXX%nU7xgTXr1?c!jLyL)T6C>U9~0e#TY2VZPjU14@qM?}29&x>6V@w&4X zb5AL09HKsZ^xL3FB|IQ|i&PPnbre^}`Q_4tyBav{pjGKxETa?{KwZnVcDn?M@&QO| z0m_2qN+HFU1x0u#=;!G`P@N40V@(`_ zFZxljjA>5LiNf5kD9AnbJK7$*BGNZ zgxjCfFbY)uW2Dz6qkrKPS!L(wV2U=**o? z(DTMAVP(&-P>1ImQ;(F|YQe0*0skD_%OO~9KF5y3BEsdR&e9wQMmz`xhIG3@G4r0 zJ68WS29;n8;yf_6E3ft%e9ijmtG~Q?`K;8Y=T$Ifv9%|aWUbX5FMoM=c-~0ElIT1! zMLyjOV0A~zSO~(_Ql;pPYl#BxDfyHqlzG5JnCM#LZc71F0VD%E+EHe3CO%^o0ww|a z^%#u$gu~}PW63zjimUKKkm}_Q%5Q_{p@jpG5Rwfq%cg(5s{zFsBbU+fo(k4flg9MK zry%>XECesu^f^_s5XRmkb@0}U#?@7~zy+POSIlDFqcGXtMAi$dXbk(St%Hue#NGI0 z?2N3o5Kii|2YZ=$)6>k&d{JdiOg@C%m^&S(=gsorCko}GKO}Z|qOG6ngzuZU>+%{p%H!AyzX=xBMb1Xwj1F!H^GF2U#b`j7JX48k7{bf6+6Hyp-)z5dib6j>5xsKcJ7)qjLB;_Plkpcd$?Jtrzp*7-QENou9;nf2}#o*!aCb5 zVL4YQC?<%RQUfRVbD7xQEcE>2G1js6r}m9l$i*D8d zyE*ooIKI?A%?VKZmf+){OB*M;KKAcYw;5OtyW3zceEn8xxuzt>KoR~~_bJ7Kqb&26 z2cLf;Vo*yU)Gr1*Zl8No)A{$$s$1f1SX zJEcl{rI{fV9?luV$}OfKV-31?gANs)KKnc-c-V?zN#nP`a#R~z72Mw|B z@$Nm(cn{`m;bN!K#O9J{}$({tcQ6%HCM9Q=yTGcd%+-#V2jhEWXUB^;{ISyfixXsHXrVyf!Nad3 zFnuEO+ADxRB7b77McP0Jv75R5=^}`=b0pApF%ZUPLbA{!KG!>b3PxqbK>t`)oU^S~ zK)roUs4&T;CVLZyW6#UyKy-v;{qN|d_;G%oZRaP0MN zyXf;ROp*8@Ub^qZpMsWP9(F5ZNuu91G5d9=e^wshV$4rOO&-b+fH&?YgMj#ZkzY6O zc>2^SkZZj@K~^^(l6GjGzh-!OToDsJy$sZ14%2`q5#U(f$9TW6wAXQ>&QApRS4Api zz4KI1s@c->X&KA*q>x5|LmTOv`M7`)h8w-Z3Dpwt) zU?x^Q5rV7$_+r=(qjV4a$xh{UJM0WHX1JyUv0oA-XyUf7M( zo!7n#!qOKfc!@%jWCK>kXa23e8BIpscK71mOC=Qf^jJJ|8HHNh_b=wNKJZ^YmL06I zHwGelSt9!UCOXMO@X)qdyIhm2Ydjn&P+?qV*B5oFs7!2b_ECbocqs_|M+!$JEL+1N zjPp){=#}(m0KqE&&Zw@th-XGW zI*dO255>y(#VU-+2#9uV^A&S$EN|Ex^mBFwt<#>a(x;gAq@$;Ai)$c$hKd)k3tK5K zPNb!t?laxtA=ZQNXi5{gmH9CsicRMGdryVoFK__0Iu9t=_Ll*%{Npk%WBbb^f2R%% z*Zvc+m71+UF8p{sStV79_pR;l`q<-xePtyhux=qZX8RBowCq_<@PK(ek&vo6g5jO^ z_gg;(NI8$3&(+O;rSjv>>c;B(=C##AB{rR~EGqQH|Fuy=fZ?}eWfIj-yn@AYUQ2xF zRC^UT2E3n~KYaYuUSVKx`~h5WCmyw8yu-HMSxEYJPHX=Q+2sRGUuEwTr(xgASL!8? z7Lj_4%qg67idr2msy{>!xdn(!W^Sj-{vHn*-wUMW<{G@k)olYc}oIQ>*$#&Id5s>{%#|`x9Tt8c(cSQtoUgG_62e>=(DXpmC7K| z=5mdCXjqsd-TV&&6^!x0Sdb3`KwZ3__;Hj|+d^o@bdPnPOFww>bCLTMZRn)!J^;nc%Reo^q_(vtgBNUFR1B0h?8{btliyyPnR1$p za_9H(Cg1jjg-6g<2-!=%lh7VUd}iG1t1kf&=STH6u$R98nSvZb(L>f^zEPVt$nsxR zvDS#a!}W$LJZiYVqzv=HdFD85FlDgdw->)`5nH zn+;v7UFuND^6|lI6Ed&VRfLCs<#p2clNUi<5OGq3tiDVD*84Oa08MIA)=kbX6XK!( zVH*NKvmV1^!GUK=uhR*RalF?!T|Rk{P#|2mucKJ!)HXI~DKdN)Gb8mbk}(7O%V-EFb_|I&c5XQexVI z?;M71MTAxN?s)V@H^p7?O#9DfV+%5^EFVWwr)drll0`vhRB+IT2AQ2;`L+yDt{Cti z4#%)(h1>#Bw-gs_SDAsrx_{q=nmVQv2PpQbsp1_YAkAN^Pw}nyurOHht1s)P;H(M^ZfJMDHo71gWz^(x-YnttMvjdr7!#x((RuR%Kq_mnQ(U)(?)qlQhZ z@;8xfY<)6t(uTt0BvHS3Ti{rt88ikU&aQ|&GF~4L7C@zxekE7DrB>zF2S#tP8vK@b zJJ)=`j{K*3ro1)F?tK$vml{!(KM@ahgTU|uS7JtGj?THZ${Wc$j3jM-QmIAqExc7(f9*LZv~Z83q`5*H+K{y}$R}f1LaI+|NCi+0TBS^{lnNvGju@nzoQW zO-nTF<#YZv&`|g!r;(?cXmd08lO0FYifx^`g)v_tX1QNAtCAa&eyqW z*j~g}yeV}1jANbW61%p$I!NvL(P}^(n71r+g1i?^4}U5G4q}DF1)XT`8-o|sh8L2t zgOFkRZBUjL1=Wo!vG2*-Dceu|2IphbS{sO7AwSpZCup&S3(K!`KSGgY4_Pf_{ymRG zayfZC4slDx&*7H}Kaa(PC}p^q^6e|wgV1-dhHQKd!Q9+b>~FolT=(Tub3zPe)v89i zz<);je;*^ciY)PCxz@@VA_pbzRP00uL<`Hns@S~TfR*i4B7zkW;a)0c6X*R<5~x-l z|DI-|AC7XZkSv$}y6WYx0fFXnCcS4WCI&;u83&w00_$QHsJH;Rt&J8U*Kp0xJ|s=a zQh{Q?XK|&6UM`6mX(*5&a;-YR*JY@R@IBbLZLQC*yJ6@bL_;=Z{Zqq_xvlvcnJRac zIkWVEawi{4X>xvstHnzR#OF(h*|NY(uJytvFNg9a?lIZKP%Q}tq|e^A4jOVRa|SiH z`CfV9#!gr3E;)}To}220->o@X_2TH|Lp4U2wgnwHBezTdS>z-cIMyB$#=&PX*^x}c zB)D%Sxnw-pKO|Rkcz4N??Df3hxviQ4)m^)>@0Y@AL(DehQ|pcs2=foqwY%pB7 zq&!3^F22hICR2R5#NatAnU#~z?_z@74E~85*cm*y5@3}{y$L*NmEW0`I6fn zJiIV~6(mm<%jI36`!21!{l-WlMSBuSbMlICIy%$YuR2l;(1|8J(`%Op(hzH(5z(@c zGgv@Zb^Yw+^>l8U!Nun|N-lz}2oSh;-s^<)P`jHw{<(|hmt&hJC+d3Kk+h2QTgx7` zf%O|i!)Ai+E4vPYd)&V-dkT=Z34Hp+@h-p8eb$$HhBI*z!{u{d3SX7oymGir5}AFykyaQtrly^uBW`o2GpS3%4MToak_? zFyNGrbIK$bGcv`xd>JEmKl~_mK#SmMQQ^V8NH)=&4Scmy5O!0)fZrRMB>Ci^x&`FpSDX zPeF1`T*1F%i3bop)fJ3PowgEfavB9HRId(~k+k*m_7o7C;8XHB} z?Le}?F`~NsH}9XvcXH&vG}j+0b2VF_Dhh>c4E;AXL}NnLutV}FIkT9i$uGY2h9Le- zk74#4Lz)xjnjZP<<&oI%rX@nUy>o+Rs(yR%hx}uTwYeEQ$N^DZ4mnJl^bKmjP?`mI zqTXV)`pV>$8F@tSlpu|IdgzmpQvi$aLcP-mI40ya@QFSE}u^PsJ2W4q@2YvRdqRwbAcTp-%3r z8PapHJixzrrZx1hEH0UPx%KO0PI zibzgdCd!LTu_z{3A`&PQ8xh~PePZJ?t;|djl9d*{Q_q5PvqYJorTD_M%5ULZ%}vMJ zdL!O_6Ak&Mr8#n)Vvei0n3~OmXvS^A!8lwccY63Wp%*NV0`$A$B`5@BU5j5t1UPZA zj0q`5QcnWbJ70OWnYr&m`n{)h*}3FB+J!dSs^otOb8p=Ok?G5m$E=DUy4NV4ND6XA zI+9)PSn+(2a)9t;5{tVp1&&*T^Fu-Il-WRXU9Q^dum9pyuwdlr#XOxRLc+q)nR=d- z?xx;VdkhsM{Dyh~1)0kczwV9_z8aB!J&p@{+{cpHr&Pta!P{-P{pQ;W1LDv?7Qj?} zS50rTZV3B1T!f*nYYoMOvTzsq_Ko7$kTkMpkFjRb_G96``vslEZf^+v0d}C*fuVH7 zmx0BnFii^a8~^C4T;XK#enE{?8MZQIihkcp*;3k|F~1n>(oT)HbJm(}Th}5^R0*qx zhz4GPvng`lhOQd`tgP2v^(%_+ol0JGC-|)x z6Tj_BJfwlF>pOa2!_ILTNj~M`M)0r z-Aj>pMlp#}7_f5BK0Q^PLN#^mzT<4kiF7zydlm?jx{NG(&e_K#MN8LABr1B_)dnWd z0JtbVGs$aG;_$S%fBPV5J8rqcf4WonMwdj}4p_xhksZ}#?kiUnnap9bhTvTG{cy{Z z)OA4XZC`C)rKpwJN<3E^crcF*7kyqFyPt}9cuFJ(<-85`CgS*VH7YDyqAG!X!7=EJ zVe3e)*{GG+KUfaF<3Dh9ZH>OQEOd=}SQfU%$Q3PDhu&UAX)#~GG}YJN>J)4Ppj-Tw z@Bt1N%8W)I2Mf6r(JNjL0^l21XgX!lTo?1%FxRbt^em_#-Tvtex`_g2?=vhB(Dk@< z$%+%b?O3^6v*fjBG{-~LWgvhF#QqEf-iV}W9CZhJ>3@z;C%Y7RhCJk(OPm!jt1ybL z=0r@P@0FF@bxB`my(p3+hvNLs|#*j zGE$a_lI4f3lA?1o}?HrV8JgN4$y?3>wybYsAsC>yH&F-fv^P zMgq`01kko#_9bsyT{jyB zeljPi?$DI^^j1BvLGIPjYm&GbxUgu`3_s9en~#fc1^;+h&#RXb+jIqP*wNQMQ01XR zl?xbmj@n4#%pOL!Wp;heW#yHlXHlY|?GVs>6ye%YGB?L;X^&V=-;L3&o4Q}qGf(7$ zE~zQUh&JcdSUInDyDx~0k<_o(o0PBFWX%=URd6}Er7|yj2K@$uPf01(u1zoQvRLgl z{ewUw9Tm|+V$*>V1*4^%cNnlaldFVO7%+BTeX3{4w}1&qQ_)c`0c2)WKTfKPTW;`_ zgKv+wp=wU9)WucF+2>i%ble$`=gCd`@Y7JQKi3zw`IVgIKnFP=o^L^a-j#Ox+R)mw7S0$&Y3Q8S!WmyuGHg;+-1*CApJbK@4Xs|VU>&};w)TBpT&tGLXQX62`$Eg@ zIi^Ajr5r(u{aV2;1n zbB+CPU)3Q+NNo1`@5uN0DvcfoUPyqX_UHW4ti1FO z)*+f6A5iSQdz&6=hTejg8&ZUd&a=ffhx?r#&@PL@`?;c7)pu1zMp_Mth|Q_*_sBj) zq24tjj-$zSS!fi4Gc7ox)4bB8^X1LIXT<3<24z28B?u*-Vwla-9bdO^;&Heq8B714 z5NQ4?2^W;}UDeumN0mU_XEo;!KnwO+GACW@&hWh|(XK{^l;pgA>efD%H)4M65;6)& z1{b2?9(PA-TFcured#^dPYaseV;e^m%WTwp3U};5v4w@|bZQ8+hWh7Ifi%@GPuq{) zeaRvcFKu3Qg4^RO{dU&94w+YMr1#aL9KZBb-B(TCm=rsqcap~dG)Fq}TolZ`G>Tt) zZl$%5KMKy!=&G-ug?H11IU4Bgy~GQRF6ixDkQja2se{#+`Xc&Y;7OAe)V|{m#LRCW zik{`XPSxDUi7=vMJnSzK$JfeG7=HVpX_*w=3xnGWq8F}RySlM8RK{?T1XXcJe=d3~%4?-O_yYMY9Lt zow9{$O__!^on{xBPyddc!0C{Pg*0BH#sdydT4Jj5;vfVK_P1}NwFaLmh%BBoQXJn^q}Pcd?qteYZe4y?gk zbg~CNgL6!gPV>Vbph7lH%z~kIgh`^7Y=+qL2RD@zXx8gm;y2A_X>%qPo74yAQ$d^n z;+1ESztBtnit*Ja8=a7gg#QYJTb~viFG8UtSnJ3Qx;MZyu>gKPz4-Ui`30Q?X63M5 zP4bMSQvZgE`4}|&tquIFP4n)$N5O>fPJ|X&zjP_gcqu8or8mPSa)yD17U|Icv(v{_ zkPdEm5zrkpTITg#ICzGBv3YC9?Bnjf#u}NQ6<5^nL0mb1WR}Q?_=2>GXH^ZZM#yMrk+j=*&1S`MoncJk8&eI#Y*g$Q)rde3@CmifHeGFKdr&3n&-ic|hP z0j~s-%1RfLf8X@!M^!Wsn~g2vH(y5Bd8Z1Y?e(mE+v+0YP8Y~NI1j%8MEzOs@x-Za zCE#L*Z(01Jv&f2{p~$&>*^Q(CQ!Fc4M|-*cH0P*IZT{4!%w8df6sJ5~Oc&G_=ZaBE zv(NC|MEz$nc|U#hXqV~U)93}qYZJ@9tA21lkw3aZ2wH?e(qkCE(Ms02CNf5_ZLuLH znw&x6s47E7+Su8)U9WUvDqqNge{;dWx+@WfM!}MoM=!sB`}a$M?$C2kr8kE4+B&dl z;xc60S3vr5^?w_WG7MZXM9-i4naqadoFJ=mie2mITmU=;Z&jlPP32Es_|&dcdJ08i z6;pFm;ozBF%T;tr=b#8vJaXg+Byz`7l!WaSpSSJ~1*EJu@n^a6zb*BKZJe^eysdVK zPR5ZpFS)X+ervCb7nd3mNYy9nZ?5%ty2uXJUqE_l4tigSs! zDSUmt9Z^4COULsZq$y_3IfPZ1Nc%qPC6GMJmx=D+bIdw-oYn5{SNqmb(RcO$lJ(3D zH>o9IFzN zBcADSl3W}8vVC$ZSlFT-H~Ae_fUKlRNZXLt+~`!3vv=L{3>|j7%42Z@er(_F1MWo$ zC8O^yUy5aKk58(!NW763r{f1%kO(iE zmXlUW%r@kD?Anw2K2y<;2y$y*P{n+Zpjo@5h_TV_`AOF?wL28;Ae7uMfhO9^4WPJ@ zqt#o8^b@Nd)lqqOn~3>H3h?zH&w6N~zJJrE!a()nb;{zHwytTC_+HKQm^$xIMVisY zN3Wes-NA<4x_T9v@#w7k2WHEBSCw->61~T#1UO~6PdG-a^T$;UZ@&rzeQ4N`!j}|0XUt>zTV99$%rr%a;`A6KO&xDkd#=+5-wpP>5-ij9ySojz#V$mEt7 zJO3hIPLi7y-pae;p+Q|T)1pxVs-~Wz3BAE#VSST}pCpR>4OJ;Q2BMKiy-%A<{i{;G zBm2t9t0xA0yk4>z3c&}{g)~y+wra?pdjg`*1LO94(al>6vff)#eZDaDLG$)9gzakN z+c|F27~>dRIYb;}3KvbS7nyl&FzQtJW4!mE;T0fKSm^n0Z80ZM&y5 z(JMBaTLD=+ZY}uIH(yaI8*<|JkyCsjVj-pwa=M#cijw1V6}mY3Qxl}qubIK5+gEJG5F5E1F|$h{Kh2A7)NmOysqU?>`CRd3oeCClp-we%v|PN6;+Ni);z@u1hRG;NyE z?|K6n1|)%T=9!MGE*l7N3%Pt-j9oz^8PchvTG%=pOFm*?WEByh#Zc~mWf#Kqn%NN=0d*Lh|tzL|ZWaWt;x#M5&sAVtf* zyCas7CfON)xpU-Fefq)6NNwFHy}@mcu*)6@OPTui9Mj115{W+2_NiC9>z2T_qyAL96Ety%210!jrDHl?PoUs|xjQ9jx5Dbg)4Y zafWdiZ3C8-HA5Zh!X{kKYq24zAvo5}r7b&@QE-SBc#T=XshdIZ>lNAj26|oeC(%W4 zL2B>D3f(xRzLyUPlL({RTAbT**8BDFxWvcTRsq4A%U`W{!>UZ`Yl&};Dl6EV5Z@;e4YQ_ZQboLYnE9zO#RLU#wouR#{1%ocz&_vL>H?h z?x52=CZ(}FTdPf2K^ zzZ-&h7#Bo?G!DY8XzF!u^~`QePG7k!`7V#6@Vw-Vw9+1*C{=Ho3iKj#R9rxrQu){n zj=>$fj&)8isTvClg{~ZJiGDaoK?ir=^rJE8)Gp5t&#sw&`oNu0l8sM!!<||~ef3~_ z!TvVmmb%s36PVQ`G6OQZ(at{1ul_)b>#~!}0C8sf*EVPEa55J%V$t;W%tnMV^?PE= z1?xrG5CLOca1d2Ab-R<{_u6@!1Y+W2%uVnt!HNVf4Q`CUfW&x+gCqwv@=KS)=3dVx zLboa9H$b{dvwS}jC-CT1=813#%#5w);uJ22sM{{*UjG=X@`%%nluo-{eymhuA(Biw$O*XvJhxhQMPLT zXN$s=)FPWpwSkMfSN!^WiLw7E-;}8mPHNi;Ic8MpuI*K=-g+kfApiV(-#sfjCS|pPmd4S&Qf3dw0EQov3;N zAMr$8s!&eN&eiI1II`RW#5$fKYwCEqX0Inb6L^ux%J(lwySog0BMzNSD5A968f!nA z89t_fV8hLzCU(^o45RmQ7Y+%@#vqhi+=o*FPYG()=W6u<_oU>AI;Lu+nW6q!icH!f zK%2m1@{~T_ymJ!fWxUci-AU8ftCS>KdvFgQGSVBeMm9r1Pqb__J=TdPL^WmK7OlS$ z{e+M-P0jkLmI59&e0P$TsDE(5F~1ZVzbm=C zJ^oom!?g4j9Q+<*E$+M4ho9=l*KN-{#og@K{b#M}FUsLW9iz)2dI25hkSkn3=6&%p8 zGWpG6PvdQhSh1^!cRHGErCxJ0lR0{6$@YalVC~arVEjxC z6&H2G{0+CRwPm|J+F(y2eV&k_BqSMG4J|(IpJC9jxB0Gd1d5J=Wz}0vGc1z)KFTF_ zfWvg^7F|p;5yX>pEnEkfUZt8)5ldVB-)S?SCp}a%!6HfIr{?Al;4Q@0=3(^>n!dIAjdz|)Q zxn}a+0&bb?E7Jj)BqEGU=oIh!sn%=7(=_BYBCC*H61w>L>+%Y1n*3t5 zzi=4Ft5ssQJD|XA^$9~3Se>jJ==4K-)NsR>^PA1S+$tgM#QpMvKKio@n;WQg!`-uB zGU8$z{cLf>OFEPIBF3tGi?4kfe4ZxM?pLw>qhzqLZe6MnOOmhMb6o`@Ue$b9ktYVw zB+qZ}LgQQiVZ3xtP*&tDWjs|J<3{V#D2sO*D0#b;>J!y~Ga3sVKYya8InW$i@#k)t z7j6{gP-mt4La%!dLcXso>=@MIp<>@jCzdyew3V{bBa2bHGsRY zguhjfzBpXAuTbrP8k+26a>aB*h83w!fba$6EuQ7Y1$(2crTBt)ckRGkxZu|LLQOk(ac1+w(0d<*?I@ z8TGIob5v=$ZZ6@eSAzVPzVZ(Bg3&`?>rJ?@OGTZBy&j_zuuZG4Z4oiHuI58YPoOZ* z>u&L_AXYA$>ozMbyI3++eUbDTB>oG3+}Z(judKCnSLHefftwd`LGhNjV@A@UDAZF1 zNwjW@EWFB04D!>uB7q%fXqtb$aIm*UlbrA7H`8SbR&@$iMECaKc&I#Yssu^STmn7# za2%1T??Tyg(>NAhpq~sKqC@D;c_4c6Ni6Bd>rCjY;C=?r3EJtsCf8XsCd{SNJ-s(n zuphMIWIXwa6d0H;k#oOC=IY*duR{by9MiFlQ=EHbaz}li`z&owZ= zj;w!+P&xNi4>&gpUZWRhPi{kh*|n5$JB5u6Y!q|@Mw&?s^VTa!C}f|^NQFew-~`Xv zBYl_g-Ag;EIy;VPkgs`Li;elWCJk9|?ugnj60{#?I(6@C+)uOW16T?$ADNp9kCM%S z56KTI_$=8z_e{p4VYE_F2i1)+LvDcQn$H}wm^;SGML&7xMQ1T>)}0qGUI2NahCMTE zap{5w;z7LZzxCt3)hEeW!U=g-M!^L|t^}|5xjx@pNqX4!^?KoL!=R<_;*dSF$B%yB zhY<@GMuEn8V#sDEzJcSmJAxT?FC)rt{pu)yL^j+bSw20{%lDD5)5a4g-Zed^E4||N|giyvQeAF+CY1#V{-GG z?P|hAlGp##FR zvpn}lnN%D7chT>1S+4uRFmh|~-J;P@1kvCJF7?GkztzeM@V~R?^8O{=xM2j8^z4*V z;-2W1ADAyor}1f+2pP%zkIzXJZ0I!CZ4_s%-}AT zv|A;o?|XsX`1ECs7pUe~wa)WhU4#mFvsY1O>&Wb1fja_EgnM2TVCsm)9z9x*~d@KCSL*t>^|@VdwX~VaJlBCd@PM_=-)c{l8=lNszb& z>%cxcUW-rR!Ut?L|JW$LW()UsaFU$KaO`n$N#f7xOAGaJIA&m`8;u6 z)5;9HFq+6~4-Ks0BcmI4jSLA{>S22lS=lZMj?BOAZRg^XWD8zj$ld?XA5=tx3$?*K z3G=3229~=I^P^q(Q!#;Lz|Td9>b&hV-SZFemieiOX-6|56^bV1Ub@XYF{H~6T<;gK zArO)iwvY(N*T#^l8bm@&U(t^9yi;6tS!-X{Khi2@zaCBH)>^Ubv)?YA`{Ga?pZ~@Y9W3KPY&`ttmeHCI=>$~gy zkZUOfOc(wB$k3-2ov{FevTHu>axZvaBcU!?6UJ{#N{LSO63b8yBDC<5&sw_=R zqPHaC(?F{7yiyxj65ha@EK-HW9-5tlpnl9#gNK7G(ZCt_1wK8h`NlN z3r`f_Ez-k_m1Hc;G=E!PJF;)&`GjlcpMaquY)eTQ?r%Rd*>;c9)ZIMo zj3#4XagwKM^!|6{cJ>%|$P#sA-g$yy#F$@l^P@4;BEO%s;$Lq^9%m$GuLK@>Ht@<# zNa0{on`>W@Al9kl^#P?LyoIF!1@>@^>LOd~6TMX>%ZlDl&IK=I(qVrkO55uUfQSQB z9YMz?oWnBuuHR8{{vG%XE~Op{>i+sWCoxjgJvKmScV7Qe)o`T z!%zSFtng~UoATEu<=*-Ewna*Z56zT(y?lsw70g=11Hi<`QJkxH;`^QG-FKlpFS++X zR~=)hvYOKJ7ucN41MyI0&(Ru#o~5#@@?V_^x;X78Nsb3&WNq83TUFd40qOBV z5@J z=e{#TLt7ST;|BrHd1Yd9JqW!efF0(wW%@D>Hx+g`{BV&*$y2_{`&MR_J~Wa;qyIMZ zVu+rNnvNrzS|}{9OGhuIaGjK@TH0U~%dhFzeOsBXYxPX;-!4Fh2{e04JJ#%Ya>p>Y zG-_Nl!m7}AowW;34q8yAGKoc?`O2xXBV^ z6EM5^_GMFTHcJ88U;6zm|7`h`xVCPX(8v!4En-^<0Y{#>ctl6)do;Q z%yJ5Loc01ke}yD@cem*gFL5or1Xxpw&!xfHIH-V3mJH-M!dUP;-WzgVKQpdu@%=dw zlB<835Q~yCelbiTOHM}{W@hZ4$$n%!K$0r4`_oCdfrpOI*-GdisAtg7qG1np_gPud zZ1~#b9%%KBptjJRi-x`YzhN)4E#c&=bRp-yZ%27kY(9O4jS0 zR%?oK`Px=M)(yj?3Cqi=g^d$~t%>ao;D2PQAcWXL4a)A7KmCjYm&34A=16a(7d1FJHizw&ayZfm~HT z(8UHo2-NuC0DDnXQOWMlfwWk!BTweSCEPKAwHu4UT9uJ&q&VwqoGtQSH`C6lH9(J1 zHVF6mBL9!piN1@RYt>_~tk@NXC5Wp`g)ZZt{#5rYkDFqIFQ_Z~FWS6I^P7Be{|D*_ zgicB*_OenWhsB?m)vk8w(HKkh$z{FEz@)LVITT-zFME`+0uMz`wn{@xsU3JDK_gvH zeD|@Wp_?!Hfm%3O&|C9^f>xNoY67l~A8Mcg<3J_05-jn(vCWEB1v55!w$gbMhzu!_ zmpTf)iyygW!}~}WvV%-+?@}5Vdzg@thf9ixaWmKCxBCScI(Tv0k+?^elMQN*{%>*P zUDVU?Cf z7JD`rZ?wd7{qwAivEALAqBz2>v5#0aHhXfhG#EN&bkP*zEB$`gdmh9f_1G6msCDPf zG4CX`;DF9*lP}|GLR?F8ZX1@DiR+jD#DOrd+%sqaskAjT9mE-Syaop*DEx@8-O71k ztgqQuVN!#UqYP8G_u})N3!zL_{O`V0d?uvcEcN>1zE}A4I}P_?m^=#ft%9#I`wm7e zs%WG#zy0DrW!Ws7qB8Pqf;F-5M%|;g;9Ww8_39azywFD)6Ez#^yo%L8?a9uZs1%=& zL-F64pov`0ya?m%#X0&8<^PW`eY9exU`Eq(XNQG}Dn_D1#OXs(%JOULc`i!%CHn z8f*&_ac(e$mL=x7yP~ zr8Sn$^AB@b4Q;N1vfh1&4-F_f%^xTMFHDMA_j+xjO>i-biV{w@j-7;GsdHa7cdbj8 zjEf6U1K!n%C9Jw^)+gcq;s&A*}J#xp23(*>a+^{n52n3usOOA1LZpK*7zVUQ<5C9Q&vx+_=&MD(>($RH6e-YB@e@=ou5ZIE9O7HtY$4*oMc-~tI&hwe&S9$7zZ4&NY1x)qV zKxX&=+Nkj}vIMtJn)BB9GxS~-sJ^Cji6K940n9znrq%i&v$_Ju@LEg=$MDvN$CG!~ z6`PG#^A~e)-K_^->-;pcT^q|C-ca_e{hG69nSLY%MAN8qmg8NvG0=nGMZFx#nrN2e zU8bv`ss}g1Ksqr9?ZQ@@jn4f#4~YAO$S3l$O&a?o`9H339uZ$Tx0!`=uhE8#6 z?s4t25htA^dc9A9EeZt@LW9(wXJi6n(YNVHr~&()Ecw>iGL}272OD7bUC1@cyS4|t z50MTP@NRwN#%L+mU!DW=cupnYtrm_?P+pwA!-Pupf13!Q-V{e;Hqq0o5dv4*#bJ4) z+%7Z#Xw-mjtA=z@=n|LuX5!29?Z?Bxhslf!G)CW$IaW|%{VnW$JFCME9E@t?lv*o3 zOC+Nmq2pe!zSLCC2A+hj#-D3xSsqNbf}f}?UL5eBND-HRmHP;_-9=qABge5$N|e?+ zYwyA&*wajN_zy?DpuwBIk+M|WZtus34mHhVS@wXmqlEXM9%`}H-#v9Ol!fIBIB1AV zrVU0lqK1z>zKBCA_>pQC7zW$6C|C5`+vSZW_I&=Tc0-$4N=z9?esn@zt zGd_*yJ82B+;aH&lpES!)fS1Nef|1`AYf z{x|>D-kZDywUrH>{qI$1X1G;9-?sGVm+Pv%Z}%*SHWk2G>1on8Byr)}i1A-yOGhwt z2_K?9BEf?`A@I!?=4;uR*|3i`hHG*-k(^^QkKDIP)gP4yEziLIeRke(bg5!$aOQ_N zFR`GB$Ka!I#28}j1fJccvPt0Ud{!B9V8fZOCn0@KPz}5Z+L4M?d+@js+v4+QJ6uZ( z#rj?_fxyc~wJz=Pm&2z>@8xFn2SbltaG1h=FVxO4CBp*dm0V}HWNvr!6^|;I^VE>Y z+0k2cOSB_o^XuJlmdI7>kL)aO27DUZSdJU%1#|Pf0faMj2m1jYo=29z2wKi{%RIe3 zP_s4DU(bw$jq&0(jThSPm+v3OF+@QdEhl|qHA(Dq>y4JK(#K*_YlQ6;yo?9qWK<9y zJwW>3qRg72}EF`w3mwr1GDAB{2HYxL3XEuzP*oU(hD}(C%?ExTZ?%;~%5Vg{4^?6L){|6hA9UtPx03l>b_# zIEeNzl=bK|CW6Qddt*4BKvpvW}7FnasMMu$)eJ-8=HE2xHIt|1bwobDs_z zYMN@QUjg%%E^ufkE1dj|M?B&Xb*f>^nUef_G@0`1Z%oIhq6J`FBX8 zKW@pLwX7)VZ(D)cD~70<($aW_TKfhx4w`-x3#%1_XV0Y=q3-%*z%I_KHx>%_ewI!y zHy|hvVmPVz7BAdS!hm zYU+d{eFO~lXbjHCX`}wp;IpdEcnM|@fEBv2^J#g99L$ah=oUF~MWoNE3?`jx%4uXx zogk7wLaNOC=u_OIhm}GhsVqNPyQI{F0TU%z@+uJ<}4(N4@ZoTx3zeZ zynJQq0tqulx6qSLH9626?o~D06Brq9f$?Xl5K!9=>PTGJ!o1>U+M4Vgft-CLLoK7( zTE`;SnzZdh=5l6IHM5PpyBvaBqWZOnLJt&u($t}K`#x&L7&RM2?R2M1^KRN+e5bxW zv0cTu`8n?l>GQ} zcxtma>GKIBK)Bal>TH@w=#$9N^>(;ItWf}6!yb;OO3M}vw-+TJe2erO*z2z~M`34% z-@f7GkpxtO2K6m(YbqXtefd~FvpMWe=ujhu1B!)gpW$6uhvA0uR6H~Yx)vB;rivXx zv3K!o5jy&BSNT5BAZgt9*##a$%e4Xc@_&|4vH)dhbBywwzjx5?z>Q+G6Ze)p6i9a> zV>n4RcHT0&P*O^2@0>p=(8*d?I!A8&v+bb^1vsGOD<;N`=sZ?mE|(2aJN`JeLM-4o zyMbGR{2${TI9H{OqGO_zGHZXR3MVIGkTKa6}F`5=IL= zV@}XjM}YSqQ!GpzQLg5 z29~DFn@XFey)S4G3mC6)qJZd*j$-V$E)Jzte3Ct9Ht5wNUK*UcDScq>4pWq>DR4&l zHDn?G%kRmhMg6QNrTca`!bwG?x~TDlxWPe*H0h!R6HC-{6CzMIEuEAGlK6c$fEW3V zhZ`>!y9sI>>;^?ib?Y@5-}aSP<$s z?*iW~ug!lwP{LAgf#rH#uNrTQof-`Df=6Q;E|U@C9!HBjBhjQh8wc#Tr{vmyS>t($ zzX#;Ne)PQ5H3&@2nk$8&KML#ARGQ$DPzkI5j3iwm((CV5IST_0R=--eCo9sRAYItF zY=5~Dd5_=m?=-JL4^amJXvOaCt|qktwB5Vn!+`SU89#P(=#?}-p<#R&!fX(F1_q9l z|<6K8an&on=OJ7UHV2-KHfAh5$5I&1H_og^(ZhTFR$dypv_h%hK zU>%T=uP8AqIVj_nEK>|#ZQslU4)ET02TjV|75F#W$2zq_s^$Zy*AbCC{-dzb**_W+ z7voS|&c{^lOWQl_t?C&In0~@?>M3IV5eC4ZuFbxEOt$C+o_b8f-FEmDe1G3kc7_P1 z4|LZx91__68_5MKO&jTnCqbh}Jh!Rj3&O3?8|)b%@E?t;k$9SP!ynZp^pq&-mzlYK z2|Cf1`&zI^(Zv@KSR8vopucc|PRuX5H^!C>NF4zWNVKP23*&sl2fk#g})YGTaHqEHjRr-T3h_hy+k|BisUtAy#dFS=;u z1i>g03KK>d$OwFf4@N5bDy|NIank#>H{{8<1@{^s*X1q&iA~G@!}nOfkA4~)njE0- z_9}jBED86B@+p-SIbhHyDZ_hzwds|3q+T@LH@b|ufx_pke0Vg=ed3Sws#ir%7HTy_|ndOSP`KOV3D%wK+ zvv%O<;6B$m^lL$vxE>*7hp<$+^bgO}Q>`|8IH3NDVEr>|%>)nuc+!4A*wuHQtOERW zl8bwPly;IjnLw)houzE)33wOLgw!+@3fHou=El|}1)sLDR|~&-SIgd&_nvG2`zJM? zTh1+P!;MT2!jWqJB^Xe5IMv_M3?kJ5=05|uihp{c)t`nyqfk4FOb0#CsPCp>FE&DX!?lAN7fsm4|<0QUxSr@N`_r;W->d z%H`)t^OSyf9SwY<0%)BHp)Eo;cv?SrpN|F^4K!67rKIx`!T*Qai0D}a;wEQ@wq}I4 z-(+gX(p=AL!}WZvAnFFKOvC>*YUB+60TylOA3`S2Ox)XHqdx)m>>sbSV6iNcjTvne zl{<_GONKYF!AwH%W7lFrWhu$Prb1({ue<-4cc)h1<6Zx~BJh2Gj<&pv-;yX-*$2bh z;3uJrF=w%l1SE@aKt)U;)31Pegy`QL`aR+iS#XyH_wV~mvz-XRgS+m(FNYZkgP5v))KAQ64Yl2Ypo;3=Ok<_ zhOID5w)VK%V)SD`VU8}%W3;tC8F=Q*nNAUP#sf#U#Pt~d%=F5-4GOl5b^w91RONV& zMV+GQOY?{6P@XN~#&4s({ee6S&LGdL5R-L0Rz<4KG=*D$ln zdI7)r!x6Rl#&f2-?(hA3JXnMiu{KR%ZdnzSuZohl;7WOUlJ173ukG7Lrh z4ydj@U;O&gq^S=Pmmxw@@idpYAmOw(?50WG!v%is8lOEMuv*dOo&Y$=ij93|DvA>% zNRG<=@Q|x0of7*l+*w6NG`*4u`oMwjp zpLDFv2^jcG~}R<0rj8ldb=R<8Y(P{O_4>r2lkfvxl?S z3LS;bH8=o?y4%Ja;7|)IeQDUbn^~^_K9KF&Oqwb14=CTilMLRKt}X?7QP!0s4O`O+ zlQ>A9_%nL%dO>5U)UKayvHrxZLkax+dzhd*ltG#4hKmTv^b}L$64EEt<}*n94FZW% z=>dffe@1vMt`B3N%a>p-mDcdomh$iagV%^c$%BrR`?hbw@VNWe!9$2Ah0QcLC>z<# zp~9#Uk&+qDDt%lFRxVh;=H_|Fx?f3+Sc++!j3%@%?$x*#@y`+5&! zC6+UNh;t@AbM}S*pR4_Tpx@6<9A^AIJAbbFG2Qw!>Ph){h$T~x5)edeNmyq74&zRi^661#Bn<5|5-Q4N%ZVcLD3n-Sr;A-#AmXGmqHdD?pLB$tOxgXR5qC`sqg9d9G3*B|dD zUGT%&+nWpf#N7n}(tIl^{Jp^q$$wVp_usjyOf}l2J}y24|j?FuYCYl9;lrST!^07o~uK4 zy=Bom33gNLgw!vl|E}#9{MtMt-B6SFbMVFC(vPRiduz*TZbL)0eYH0r5u2aRDyB90 zW7QQ?swbtSrCl4FntDN6!vzA#a0H#$=XWY9uKWD>e4bqV$}H))S5VbU6Y~eoB)xOB z{@(;=&yy({|Lu@K`epdJR$@g@#O6B2pm(fH0^Ha98cTo!{Ak8N?_>;ykl=l2K%RV) z;uv`DuW>9=xw&Le3i3BbWDh~;q1K&;2abOB#b19k!vn+rTwBRH7>(y8t?IWQhQt40 zUZk&tWDiH)t1{;l12>vcmXZ^5Vu|gJ6YPqX#-JfT?KK4jFCHEqV}{fBXIevLnZ@I! z=0b*n%frLZmmPLRkRjs!+DsE-?HFX~-(B>7r+f@9@vGft4|{Z5IiR_bgZdfUbgTRC zFaGC;(v1B8aW&|WBvYZ}Vb_(e=o%QLpH)1#<}(;B z4GyS(d;=UNv4#CJ)sOFkrdxvRR(9}5;1)RkuEOU3S%oRmDtw4J5rGu` z&m?5<-?ct0hZEa@2<%gaZGR29?)_+YA{PT{`+nB#Q%5QfyLR-g<`6ovqL;pmDB+kO&j z1jHbv8K++VBMYeH<1O||gqLY)Q9_rpmC3-9ih;gg62QyQw2@Yt4aUm*>~FdG;1>17 zWMw_#+2q~9B$$HPK6mWz=l>57 znH)R+A0;L8QPx}T`oG%!?|m?1G3=kXkI}q@T!e(1ZS`Tk&+oSquiI>zR5LNq1Z*uC zb&wJP;*O4vzg3o+@p;mw0-7eg@~^3VVD#S&r4g`$FXTy9BrY@jN7Nw9-s^YjRh>EL zE(605GaGuv#%Atd$QdlaB*PCJNqzJy9yQO4aqpUc2R9e)_feMQ=0PB!Iq>h--#?U2 zTmbuoWTU&tWC-$hGv_F@J^o{v0Y!Y;dXkk#v&wYMW~dQ{2A+^cO&!U5ADO#N~pv_?Yv{ z%lo%>cGAIvr&KCb>mpAGA#5|x;Ra9kzJtep^UAA4bl5*d##4v74*162MVKh62s>I1 z*NFE*RuyE&&zYqC;Y!~aoj8rC4WHHP^ z8EAIh_rLAjpGi0)zVogpLRlBQooL2&(%}eLxV!T1LPGidGaABxjx#@JWIhrR$18w~0-4&ja^Wt#--e13jOQ7$NV0&T(!I$X5MPq}*kwO}DE zb_XeB1Dl`+$?eK{aUd@h;m+^s>s^1(Q^)e!n#5YXixz~hAAwW6e&o5$u6vT&g4llq z|5u#C7YA0>2CIQRc{ke?wnUTqb@gZ(=j}ZA-X0iNO%0Tn?I)G-LEN;>{@J5)vdSnO zK}AW)F>$KtVJ-&$Q61V+=v6m-dwYbIPIpU9d?im#E!CvNns^Vr6uVVlP(QFbCwGdQ2^`+|VBKjb1eBj$_IdP6 zeel5b&{^-x?CBn-SoR-RFWv6)0WIVCUIa2vO0BkLMUJ(kOSiDCC4i)VPql&jMTso8 zI{%`D`+H`|)kxzh;BqEx^V&AWkQ`WacMoH#s8M+1Yt!PN2JPF{dbhWPMBG zhEP}aIw5cX zi*KN9ekw;JQD&t^KJ8iZbIgyiDMR9{8!fJ>ClBg&$uCg6y_DROuJ;qr6S_vLH%u04 z&^k@nTT_`(3*p=;0oU;{ z{n_V=#9eLi(ErV|>j_EAoJ2bQi?0m2XYM_!QRjB7jwXtSNurhu;;;3R}T6-*XdX2)$CW(7WJeHb_tb?(Xl9NpJm=5)kxrj z_w{WOVce0Zoyxw10(m*PONS*p&BcL+qS)f%VptYRyS8*M7_{DL?6(hItBING>g;^L zpga&#^!#B~gpF2H&9fR>beE8I6}|dE?L}s0QPK%8O&M?3c&!-M1W39S58RF`%ujWO zN4H1iM);pyzkdCEsG=}Os01{UTwI9zS$WN@L;}(dsk(1g#rkwoqXx?xiZxlYs1}b0 z)!FI`B~k|bckct70)|mpK!yCA*ul@7RoJ~e8HN!`w=E}zjKijiIN6x%gbp0^^z|3{ z*|Kptif3jEZw8=$hl)xUs&D_#;xF-GTZtnF#HK9dxpg7W|JjhD{0Mz$ckR$Styfzn z-S6GGdyYL%NUXYgeUfzk0Jmg`T32CwFK4`wo;g*oIJ*`d!EImr8$x{JCGFnT!E~K& zYL-y=%k*?Hus36AxhC+f|u21Ma`OYcAwylI3 z9F^~loF~eK<+cB#MlX}g_kXP|lc4(u{59a-hzb1_a;3rKG_CHqWM6HncccP7Zhh^f@k>fD znN(k0lJXq9E-4|AvcEe7U17`9)(11*rqcyd!Gyfy!EUYP%N|Ir!qOk!@LXx`6Zgcq z>xY{s@Ne6L=xK_u8!JzW^b{h1tN4gV4xkRK0H9zKEc1psIf_Hv+T{)MwVdbN5ALp5 zja5fC;B9;WlQ5=#D+JB^woI*Ksm!hg8E7jI*x32Kvb$Dgu=NLTi}}a(YK(tCK!ELh z5Q91&VJ0mz&lDo!vH4()S37E5XH#yS=Q&epLNy^~mV%EXRGz4i_fyY0UuABPxQb00 z74Lys9A~ilRTnoq#icin-QOBEK!u9*Z@S7BWSkY!nQkZ^#F%xph*uO!XbYAdU*Mp7PqwDiJ$0{=n43s5 z`6EjENBN^;T5fE&LN4nJk|8o`Q%jNS>+5`X@{U^6dF{6PE#2tI{N6nG+yDy&?EGge z$=Nb&wVied7oX2ORms)jMWH>puJ|}EF7BmZa#RrTN-&*Sx6Wgvg+BzBx_nZPwT3g? z_^dqVgL*-IrD)gw<(6Ouf;N{h73Aerw!U+)Q28Qq_rMJgT*i{bRaCFAhxr7ijMzWEdxXk=V=-2A1}ZDf@IRoA zAshEA<6NlX-udvmzN@5~Zs$!&?gkTO1#Wi|TQ_;t?lCbG=rg_vi&E79En3KAU~%ew zz2Si^bqx&x%HF4o-+{4uc4*gf*L}b2?O-(1LLyl!K+h@hk@sT5cJTM35MweRhyPAJqB<_bRvjXIbUkgzM~~%ZNHt^xF=5qE-Jpyes=i zRfT}6@osbVCE!$-?cTd{=Rbf0deawcUS|8VPyO4{~=gCS6)rb{71AH5Lj>caj&zuXmbnZ(3N@5raiqblgW; zE!JjIW)a*!+kA$l1KBD5m6fW&zuSW3&`bb_l?3E*fI#T3nVH+0e?g5RweILd8g1wN z2uskzNvf)<%IN#U`XB22mj_Nqe-AgyKJEcbRq}}Ey?bA$n*)bQV81Enb#76Up+n$n zsCTUZ)-i3Ez1G)*kC&0HoiD`6atjne=&5I|wU@L>w|VtWR@QXINh<|ze;*0{3Y(_i zIGu>6B*&JQt=OOK=539NU7BS6IRB;76=K-UL+}4n=xb5?A+ahu>q3hOUqzeu{rdwy zzK7XQ-3Nl>`-s$J`T*$NvU7LN&nJ$ugA7A$k(=FG$R&4$m;v36>+{sI;`8#xrEV+J ziO#|MVd;x47bjW%1l=bEzM9M*n2Hj&w^89S zXZgtNatBV;9Y%&(liyT0qAx-q9YN^0zpx+x(}raM!uAb2pE&jQ zn&a&8<-@~6hJ^v2J7e>1%n7Yn#W^=-Z9coLD(e^XV|j_i;LvU>ue$JpTF1}$?7){V zUs~41RhKY}d#iDUp%n6$>xJ!GFSW3b$R6jm5aI7W7#J96#Fwnq0yofALA-@?HcN9F z>RO0++E)Ja291iqo0B)sSI;bL$EgoB3AF6^6&CxOYt0HQW2g6q8=nb;hxfJr)yBF1 zo(c@&>3H$oDwoCBK)U1qL6VrU0MaxP^^)3qk;nnifFiwU{6W66b_n1V)_hD{ZCK&H zb}LaX3?8HDTy!d) z_jmf!dt1rKxoCF;2bX>faI`bnm{fG;Hc*u(4G`E`7G5He+FQ2V17l*TPjYD+nK-<% zj5hZ~3x-`Mg|(f_+7Gn~%Kgb7KYrYhxQ?-XSb%0aH?Xw^e;ay}f(kFz-ZWYdRdsTdmjHDRWoMf-DZ^EYD8+;ao z-SicPF<9OuFHQKXwrl>o6;Dh~un4C~-#sVsSHhGE4TthUInS*SMnuG=_j6Y{G7?1^ zldqK+MUp2*>AXwjUAAK^G{^!mJVvXVKQ`AVDgBoI0gma-sR>GU(QOhgl0Q$D^IP8( z-7*v1$d9g(Py~*c7>Q1lc$YUrQN9hdLJ`*fTF$iz?H*U*^HBI=XXlv?h~~1j(sv|+ zc+4t&Jg<1pm2{6O9&QaI)u?MkT-o0ZYgtWS?gK^Ly&oT0@sys@>sk*cR)x{_`d!LZ z0I}=EsR0q?i#zfCg`xIc;W`9~+kfGocmD;-my}wpQMq@ZuMd!zom9z}DWh@D9w_9$ z8eC}sF!;E%Y0$=r*FrO&(kfidNu?FMdVUyi3-kI@Y;2>E2gi-HI;F(Ks=REN6P{RU z^~V@`1b#uD2(!BqC<3kc^)-C_6E= zfg5Tlx-&A1hpGvm)v4TJaKB|6Tff1JkO@yr(0PV)CtnoZs)%5&Z@m&-Pk_lQE{4v9 zuWa2b;#v*NI)A7-!I6?e-&(R9Mf(G7+Z7mtFHTzmtKHa}aTX?5YE)Tc-gCu_^Ezv?Q4^+9mls&*9lf#S0q?41cYAHkG zOsGE1s5*_hUQCAY>(ExYi|h5ieZqxlXHzVpF1A9MtMOWVi7F$-(jZ7D`HaxcE3(UeJ5D$7Y)uqioY`buo z>L^s@CDo*g@q?9I?grwhc3+ui&faELA%2G$#J0n3N00$TusGr6w+U#C~V2ajpz8Zhz0====9Oz}HnvdQy=0A^wxzESm-{m-AFD-<{MQ zrJQ&bu7%kJgd1qX<8V~f|7tX*c#lGIOPAW>Z|o}fZ|usd{xErE+FiE3@nH(JUhU>jnJk9En=DEM=7R|_Tt_q2qyH@0Ps4er)J=<_A9`+y zghB~6EYZ1+}xUiWO0jUxV1@y>OAnwPKN-MzBA6B0zE zses33!&Z1XnOe*Tn$o%Yf7QOrtF0ksAjS&yR?GK>WiPLh*TkF7WEET7PW+gyAS=|u zG$g)S{btR3|KQj6PcNxYR6K(N$Eee zrpp7bIcmmSXHv zN>7yi(LQRhD$K~&#=V*Oo{=`bB6jNRy$?MlSf{PlzU^*0>jTa**N359V^Q$KlU*Wq z)?=`n=w#9!Z$27rEexFqOIY3cWZI@%W`F;$G5Gawkdn+Le9}1U>N_z{-dS;RI7Nt_ zu5Ma2z0KPXlydxL%0w$-t zTqK5Rz|hk+D)IKjj|W=g8>7gxr6-ycR%Hfv=*@3=vJV{ze7ByKTOnx6l^=GN*~_v+ zyBA{Y>a^O|cC1e1xP?yPy#YRh1Px_V*ybd}#cx%#RQGMRzjU+TNV+Yl^5KbDZtc#w zd(C9o9#EuDcuVTiE^6 zzai~5=b}pg9<%tF7VJh+Eyf4$UtDV-)dP+Caj+9#Gt0!JM?ey2Ec&x#o;G6BS6zrZ z5T^f^=~2>p18X)lUR8&!S7aD@z-WD;F@aFuG5f-Ghj!>lKgMduA;1?8wWA?KVv`>@Cl1|<#mQcxL*?r z!}bdiRNGbWx<4NT8gYu&*rSl;AcN#?t{A*s(h#tbtM$>~B)3)S_wV2NsDfMY#zG%n zDwrrAlu#9{${5c76lEpZ5$M*S zu=gV=M)jdpop!j5*`tGohK86q29YsADnw1fZdX5`xaX;cIdz7OAHTQmH&l@VW7(r% zsm7+*p36yz1i*NV1f+5x(DbqVEQ~EyK={_(${~FRx~gNYp(N90i;yB(~KH{6J zZ8bDB^0J7BVWmDAVwaw33a`I1b%yF&8}D zvmU(RZZkt?s*{onj;BuWNn5fyjb1gq`P6R!yW*M;sgU+Ev}k%4-M--3RI?yTUV7WX zfs-F@{Puo$pA$eipY^%O_!pmxr98CGGM7bILdhB+GQ;2cGhZ4iQS>c74mb&VTk>lUA2!^FEbw=xKvak`oqjp z{InjhBIp&$b{z%y<`1p;CcDZ(dDQx$Mc%B$5^)ZTHO3s;{azTaHlv4qqHgRyd!g2c z{%Oq#kN(C5;!k^jBeVcCFj>hi?0eID+ui-m%F)#*Q!)#+6J`8S9zj8k^I}uq$FR5Q zHEyO;OPiwG^I4y<%LUx794BSJ#KjZf&#m%CPNm-J5;*oP`~k?k2ikVI>W~cq3S6-a zM&OrOS7Tqan3xzPBm^XDkcLZl|1h@z#lr%s<*&jeVv=6N{y4Aw(2aIfz$lIOB`ZLV z9BfDc2?*d|ZCGBY2}?*~E|~&16afkwS`WVRNbA$NfIJ*SQp#9lYg^b6G3KXnvq_N! zyXOf+?b`Twn${;c8W?dA#o<~n)ey^9AWT~5H>i3yWrOLQLwJ6tEWOfkhQExfr!^zF z6YJ%@b`+yEh;}Qgj}EhQMI29aqMBG_6CH!BX+f)Er2P7!T*oN}x|JEv*4I^cL$r$D zXRs5>j=AvDpgyA$MfduZf{5CiY`J{U4)V#!Oc);CxrWa6XVKaZl}O4z>_fh+jf~-I zjGn7vq}EkN)A%=`te;LAOcSG>*um~8gGAX2<_>PbwNRJ+*~f@^I|Y-dgI3f3vs!U~ zR!d3cYPL36pfJqPcaK#g_S*^ew^s@uB_vTk=U38w7)3%*o{l)LoV4N!n;}d&KX@<% z;Y*N_?PQ=CxS^>-JOpP~B4B138P5PO%LvQ*ckg5y&CmPY zo6oP@Q#(zcm-u?kD*Ed|#Fka3I*(Xv-mzowA%TvGxCH@mtZtQ+v1`SBq4 zu8rlkL^@=Sfk|iZByoF~IHpTaZv1xX$-I7YKCZNGRuoj#C+Llt9rwJ_c2X<#!u#C5 zQyKRZ3?1g4Ln(nnf!;?S8KOWxLdt*WH!eKKxpizUxmiyo4$3!&ok0oW@RtnH+)h;FL7R6+aVH) z46%6znR1pJO>0+{+gwI&WbPRK`s*nyDtY`}S@*8x|p4R|TbJgoekkhT7{vgK);_B|amZw3=A19anfAYQZ- zt$192$Z=|fwAf$gzM*Ndy0OFN>dwt~F9UprddZJvdy z1ALvoIUp@cR3?K+l25n3r-e3?PofX?szMKnc5t_vZ7x^#O+mFrd*Daka43yT&s_K! z;x0(?xmZQlzGyq0Q)k3@>eMNQHq^>f#Llc609xmFT3cI@VeI?Ts-gfXvfZ(a+8LbR zd083Cb+}^`ID02o9<0}{Y|GmV7cU0hxOgr7q^VmR!Jv8=X6tCsp807GCDG?WmiO(&Mp6hfGFKA6D2Rj&P- ziRxQomV#I)V&TrpFN4ROD1$!g0ebsCBRgYUHQ)X5c2dAqNiJ2<{QBb$pjy~rY0y(b zjaE`GZ`H}{m@WWUWf8)?31@?u8H+5+7i4J+Gc9IJy)tKt#M2$!<}6;C47lw<*2KWmRrD zR=AzByu2LKFP>?LF+(%f9lg0E>sK;A-9g}M2TaUg{qwg8LaPu}^R$HYxTG&SN_i=o!de4G-Q-Uk*`{~w)j>|sgPV|XQRl}v!DkirW49FClig(2XA7v}tMEW7o*95%e_pz2M z8>q+`GpKlJ(3BnqWnkuo?H{sJT!UHc+<~*lsc#axqqh&arpB2NHj3R%jKR%rbDBOP zdH&JFkjZ1#qthf#RA%jqTGJuN;nwtDM+)7+Jsj7wy#PvAE z&3gLN_xjVd4a>8y1>2dR^(oZpq58uT-9Jw}pZ8|Xo4!mhRb+Bx_A7m=I4C4UPVza6 z()IacRj{uTggu>|V&?gEli}&3I!>YTR9n;~!dF^{34C+*P26{{6B)xe8UyXBR-6l9uLI=HSh*x6B@MzYJu|KrXE~Ub*)$}2WEmfm3_CKQCBJ|;e*G3S$xO11 zp6A6xZ5b1nsESFfP6+ZzUk(ZJ^Tj4hC}^YSL5UN()o%g^v)qA7Zn%$e`6KOTs>DCt zu*KN*B*Iw6u^yH~?FN|Hn^Ot~-^t#;#*{e_7|p*VVDbVWmG4mD^&S;{rP`W8jh&Nd zo3{I}*77EwQJCLq)}x4-_ISN$f`-dmFTd1P^vp6K=oV*f2Wp|LcVu2{F@wgwdoYw+ zI-gx=-H5%;aD42>n7{bhAoy_g;Un_evqsETW^Mgx>z~BEdLIk1+Xy3C-Ioz>q8F_~$V;Kw=vbKfzSm$hw!%Wq#)Mnw!@#@KvD`%X0{C|{aw_)v&> zTDH-sz#Hn~fVK4%rkHPU`80BPjX*MshS31-`}*Vz3wWa>X7buiYCt7UmD=mGO5C>B zHH}pD(Ylk0a=;>Y2tM^ zS(wz7sXN(L;pGB7@&p35%^pfL%8j(H^Loj7_1g4WMCR5Fou0R7vEVkl*wF2(n}HpS zg6~+RR^+RSlGKLWTml)5&*4e5z&UdXPli&h%4ZH)ky}-tVV>xm*;=pmDmM~`rx&Hz z>hPr?K8|^$`#fn+{~jI2>6w$2U-)U*G@_4e+|#${o}!)T!c%6PnGgZCJ?Y{cO;a=( z`JuO_jHnJr*k%Nw6xw}g6J^bG`bs_!{a=r}OUKe!$zwpHMaYbMXc+P|vA?~ee_5=< z)uts#!iS8kCWSz?SS^BzCEJ?%9(xZo!m7=XKiu{x(;|E?3?3(UL-mENx5qIv<26qfdY{L8W3nwK9<5I{-!w_;0GwX|ROy zyYr)EblcMcZl}s31WR0E#X1?NDp8&4gQ8(ugBpvVCq9NKqSfpp)Y$jBrGG$jOk%VR zzIgQ@8~UcaYMa%5)=BVj8HRs|$=~2LEV1x?${f4w)%4YIY`Jkl{DNR;AD-vY? zdkx?yTtos;zfEuayt*spORLrDnY$UMwl)-~p&)0TRW{ccU*IY5Zbx{(wNJ&3`X@wd zNj`CIEC{qG&R+WfmPzRf;9k4Z$;-<-ySa5kKC5?uY_`@!M4}tNW79O`oP=+&39=LM zdhjdH>#=Kca`(X5FRqpEv^c81KCX}Rr(W--4JmLMl; zU%ND}E1pH&Za@e4pH-OVM6QO$^|cxO<1#J`fy6<%y@y8Bx@8(T!?$#?{bAdKIPFwS z`r4(W>f0(-mX9x};av!3~Zh690<5T81+sBLzNa&!Y?VE=ykLwr3UP>iC% zr9#Yb1G47_ja_Eljs0In3hpjK`1bhhSFn*x+JnR$jVE&3YxH+gLb_PROd$h?8~ZjheyKPKD?HrORI~J8QYzd_z{&x+>e!N+!X*S*xrtE}y8q(qvg` zsAuJtssz%z`u9_QdLrmAP0j3`gsno};b~Te{d(bf{9TpU8zm zwdNDzxptgtI&%mWT!e^q22&-m{s$}dW?8G%UA~_e-mxxE=lZJ#QrlQqA&&5EMATA? zZ`Ch?rqv%E`r3cRGPcN~QNQ?F&Xf8bP9?L(vbbl@ZiN&$r2HVM5v3+7lliks-!(&M zeu!PWb{mj!l^@bGZ*tZ97gwyle@JfRXg<3EFjn=2FUVh&QGtdF8H*fxqNYZlz5_py z`sE3Kg_zTg$HD~ z?A>*8?&EjjDs_!u zmG9T%!}W}W{#*NU|7xIF;!P-f%!Z-znFWqk`pM^ z3d#%|^FNfl|6{@1prfjWJiT5__=y3*C^Jp|NG=a%CSa7~us3~ZhiOiVxlQl1eg{EC zsv0330=W zaoMUx#JR=j-Zx!5z5Z_Sl+QJ@hxtVNoouVH-sd4EJ>Tc--7G;~$jaZcx_`+VrnpuX zW;<2wSv4d%+L&`6QaL$67>RhW)8CHgV9y|j#SKVsuQeE=9a?q_hkOCFznPC3Rv&)g znhElXqFHlmm51y8Z8~^)?!B>=$T2WsIoM^Q2C7-EBYI1&5V~YpH5N3mH9wnmE04e% zXO7|R*{>nQZ_Cb@r<6tkxjc;wi{tIC9h33H_6+G;4-dDd_+|~Xx}rsTsuc*URZI1K zjqHHuI`yKje3EFzYdQXrZY~6;XTm@OQ1!$~7i8%iBa$3DeY@D((uQ5ixxN5ISR z=aca=yGTeHYT?e+3BT!m`Y1_)oq8<$;d!N#jn2EQB5z>zhVP4m?aa}s_4+YxuCL%- z78D-su!3drM)h6Rs5h|IEmU6Z+cHHP>u`sTnJGz=V<#vYO)4K-tA!03 zbv?Fmoq4eG;wM$h6p8hJu*Zccr&3v|t9fvLJm{8K_EfeWZPU|t1O0l<*?GY;Y=J4VVT z%c?`%F@jca+pCN8Ogv+t_XzoOjGj|`_?dd?$If}%qa~hWqscGso8#7Mcj`Vi>Z?S5 zt7bct4C3xGD^X8%)Vwb2KI}h*9rdykn#i^AB{ zi!FV!@Mg2ryH)$~?Bu266>NBSn6xCE+F^zQL?l~n? z7Nt7rG9&^E%`HB>t~;MUPFa0%q8C}J@LU|`5%vI+1h?~cwZ0%MjaDVC=m1ickY zQ60HT9jcrjO={1=yq^^)YQn*K<;E=kvwSBX$Hc04DBGE)CE_wDN(pMvKjaLM?6gsg zMYbCBBbloYkY`zTya|_FCQ_01^5*XEFlH*#qKqx@ScjdnvRJ>FUBc70xO=N1nfd$M zttDgCYZV1<&O+*U=-%<(pb;0E(V56nyNZ(@*&#v7G5N<%s&&hHTS*1+dd?}nf#lEl zA2{~UgvCr2sFhnI!q~o8agnV7`1)MS!UmxbgUsp5I;msBeB7;j2g< zZU#D-QG%WhmLTm{9c@qCL{KXE@xLd7C^1rx8yl((DbZ7$=G#~t8M(E3G^H*^K{axU zexN>ie9+*axK9AUnO`osW;^Yn!VXccm++~@lbd`HWwI_yIyHVnhk$@xC(fZDadvmP zt;etM4Km|D^xmI=Sni_LZN=VX4Ey%^^xvTt?3rp%o*Ugdh<`=c!6wLj_kBRVzqRG7 zmgvY*bdk5rkr&079Uy~kKo!)0gHDJVl~j zio^RToI}mA8w&DMdk-^e7hGFZDWJnBmr3=}L=N$)f67MpGEOtxZK-S=ytifrstW%M zS8w;H0#~B#tBeV`_W5#pEX9*Np6NyG8dHKG+#5=~Zbg)vQcYb;o}T3y@tOKOI$Iuk z6$32}AeZX=%ENQ3siEJXWTqSaNN$nM@8vm7hbQXMu^exhrhaZNq|u{N#l1eiKAsk{ zCKIyztEd0o<{;N~-B!U!@)FVVJoueQW^q;V0-P@-%nS$yHqc8kCoa?5K5ip!FqqVK zq{Ox3bM7}v)=uq>bowD!rAlDSjLs*8wA#KoGkaSq_l3P2rh#1&@7bD)7IL2yM5l7@ zhN|8Abv){mtdypWy>iP!bnu*QoVDs_to=z%ONxHd>Cl;MRn^sZA$Ri}Pb%H`(jP>Y z%|YDDI+}odj(0o>d7g4cP@DN{$?b=OgM;G{S^I6?t$RG~_YG*D<+ho3<<=|33$o_W zkGxfH0*pi+?Nm4P%^o@?-Bn&^eHF|t+;j17R$+yBKfp+b0lFu(C7K*kSxFUXTf_Wr zbWk0A$NYSTm55FK?fJzu;74F+5Bz8q$9wH}6pk88JWho>2nh<_Iw-?AQ~|ux(qFOI zr;+xEx4|1Vx1un5mU-;PF7Vij_gm^cRL<|z67j`$x9jIPMuEH#n`XrxkM*yvt~PpP zFMhzD%t{tw%Z4(gq`ePi)J}}}*!Ohorp*h;l%?d=y1dfYx3vi&X?Nk(@e4AOD-D8F zYYFh%g{ejhBlVcx#~H2c$KO0UUb-tM3Cgk~eg(iDH;|Gce@FJ=?#6TNTeE%c9bugv zX3N-7nyl)$5grq>OQlZ+kXQRS%Ihsoa)0oaf>I4_3cA=#1=*a=-VT-WG9ZX*r464- zY1j4Jl9N&b=wV)c2H;+m$713z{;wFMgG?>Mi(Q#B5;FT_o5%#e)#~Hf4SQ5CV42%V>V$*7C>aELEg;ve z6Gj|tFzOE3A<^q2`;hM&7>XY!huKD9POdPsv5|OnZ&_KJvyNS`ff88grfi8$>TShRk)ypXgIny{vo0K=B4tTl zLu>SP@ip)TYO;~MP~1R{3PaXj{sSdr4teKQunD-j0HE2X~K*OdtYu#7fZ3uxA8}FS4;0suvz3D4tv(9if@GzPzL4k5dq+GGDXG3Xy4cW}d~-xXDuNQw1dXHX9b|C{C2I zr=>*3d>vW2UDOvvqAyZYy^{4WTa)$OrFvE~i-F0RJHY^7|2${4onG^f0W4Pmlz5Y|wT=x)nFF^Y*Yn6i}Kb<03 z7_()P+wQ{*{C1qx@D6$R0?^7$&pXK1g@(I9==;yeX5CYpoVu#c>tzYJgmg!T-@e^m ztnG8o+1r^4w64*U6E@S{AP=O)NWHZpxG|FIe|ABS+S1UE2@DAWW8wR)q2o@FLl2%u5I z=)oqUO&n602RUJw*-NQ3H9&Fe6T%+u2I0zcRKIBh3D_SJ8&@^(*+}ZKf8EQWShpGk#@HcoM z-x&UN#@N|&+S4t_^=0JE=^I!2=k;E*I z75Is|b42pH{w^liV06Fum))D%Gj}})@wAMDwImW}a80RaP}p-GUh-%%bd=^5uU9t1 z4|%px;q|Vwe9loQNvSly^kL}h)o-Ovq; z9nTkvSvU%N%b+p1H=f`FIP@hk1ocr1&QZybfOM@TfnBY@3v;ifh zk3xxaGnu zWY|Ghn7EFP4yBSOIXU^@b>N_Bx?g~@JglVr$!|CzqI!<=PAfb8r5JlTr8pCaVe0Q4 z@A>pS*T}^IA-3ndH>(XE+A=5SH=3O%8@#bKQfx99;xW0hH9?a>Usza(vSqL7ONtWM zAEsh;c&P6j8&Mx~GSSolR`)okud9Yu*%c|{-Gs~a(3|vl+;_CzVBgK`J7*KeUcwVt zu7NDDKbgZCb3!xKC8z$FMh&%$c#Ib~^VWug$c+5J3ewISU^6Y!8NRAIUh$2{b(6_hTuWW0f zmtJMW9b{SAxyQD!ru4yuA39B?JUGZ^?Dy%<+Ex3tAXGdqECo6*vZZDXY;CMi&hG=* zLZ>2S*s31p#>kUYT3AX87Sr1joTb@a^KllMoLF7pQbs_f+y?OgR z%PuyGx`_Sz?m;UWmbX}9`>@DX%Jd(KRK2l_pZY_ye;TqNdOe;;gc_vQlwR?Y?eFXB zEW6T@uCtlh!=9zHFuF_j-k9b~C}I1hNZY{>C|mA|kLQ5=Jc+BO$-d)z{%}541hk1r zAT!K}Ki~3xp_2}B4#|ElgEy*{;qhCR*BLTAWUfN)_sq$wb_j8EvPnh~gPO|77*sO3A7b>RkQhk~C6*;RZW<#68}! z3)=F;8$IlW{bx6aLVmRLZ^trlo#FB@*QWnIBvWQOkW;cZaHwfVlt$)!wy}Dw80@UP z2QNP8i~GBGA+CZoIeVUEaLx@gU%>cZRf6>>m_z}%xpKzF26Q-P-hrW7 z4*s#C(sfeJ0L6p%XE@I!Dks;xUPUVEjFj|M__cG9OAJ&rN6?Ci+*9KZw#It0JN7QK^GM9AzDQ%P!fnHyIfTp%5Y2dvnZ#b5%yN_c#uPtmBY9 zj>GSHbX{H7`*Zt!Uw`1HabB<2^Z9)2`~BWt--KTgbJYPunh^f_1R+*S*n@(Hr z7dL6}EVp@99$7fN^$W~Tgwwp{C(jjI%k8+(eyfQvIIi$(Jb2caJ0!+^ zZhr^ufNCr;83fZXB*zOcX$jBWIoil)`8auIk?>}}XoT+y>pl~qINTR(GvN)fE552T z0D68SWp!p;bg3(1(%SlpcaJ&ku5IrYd)M~xl#OB1#cf(h@zPARq%fo(Q18DdQTynq zx(s2QOF$i%Yr$Ytvl|;56fh1jZ6cWQ6dV$*+`lY@4tHNn*!-%53kga9KvZt1-gtMOCHXOIB$OR0urr>qI3jj(zhi1- zBmsH7$)C{c%zd|btc1_}{u!Wcmpi?4EoR&DhsWIJP7nV<78jh9Ex8M@4sphTan3n_ zY`gSljywu z<12nlHhg!%WC)$=oc+@(jzSc$;UlMwIPLtEbH|%9k49YSx!wxT6*6)loUFaV=6|LiI z^8J|!c}F)KE~r*90km1Jy=9-UTFhj|B-zsVkDA!o%L(I-n^A~7;VTgC4q{>HN5@Uz z&13om0UX|mEKMAtMq>AkfqHkV)W7Q-&-dPQ^PoO!LqS1t7Vs4c-R|t}PRhtPb(}mA zY{hTK;x?xN@s6>}R=I7npxIWXvpjktjR5GX7Z&n(BG7fZai>J>xTu9*+lp6{n7lY~ zdeX*>>xr^vP&WY(ltzgnn~hGo`j(|g8Wg)k#5_aBxN2>;xGfL5#im_kO|9L4PqG$V z1z6q0K{TL+a0U) zkn$nB;#tMvZLcaGn@L~zc=-%X&j)ab6nJA~CT`P>wWhv|ajdh$C)Hew!G$VxW{!$= zp^!ZVgdLFK^;OJ8S`T=-DREO^L5wbx(8pP!j&9nn6bB&dHFSBz>z<7rGCN6030eQ3 zXLAXkT_ZqL5h!i(Re2;ZT4JBOenn4|#dp1(YmPXG#GRz#?~mfqPa6H9HZpz9ieLn~ zQlkFYkMlqoS%|iBY}b~6BckM5=HF#sXt7CRo1{unbn<09Zm6C~R01PUtW@`N5jG?S zaiJdeWz!$=TPlqU8J}^|tDT$YWmmr-qBgI>eL1(fzux5M*E=nQ6&spVwchu>m}h6% zHUcV)ghqkMA~xkC34v%Z#EPHMz{^cEVoqvY!Em!t%UkixJ$sl3zKXBRv>`2X;PhX2pWj$dE-@NZ;X#0}A z6ha*?`fB&wyv+p5<;#NBJg~p)?&|g*-X=xR(WRYF)sF&GAbC%7P)ee!7cubsK3Cs< zQCDkb%Q4}b#tnJ9Mrb2+!B994q>H^I_Hl8Pdph0aiTLcNW`=<;vf4?WWt`$`7m^t% zyAAzP-HqqZvU}rxZ~CwaL&oi<+Go>ow|8Tr^FBW+_DNov?H}_1jUNvu1b@oN;CF$eyD@0bR1t z6Vb%N8!v}dqYT14;z&Lri@mG-_Ea$y$G4GML?p2=_ATec&2ZWQi6xEBKs(!!+qP&f zjQ=wqq)`cClet*c&JsDriLsn`+M2z3F>yh!-3dWeUrw@u8tA+;oNO{~_JB3)a(IU6 z1JRT9<&Q!0-Yp_;FvBIBX*GE}DadpDDkGgiv2Cbnp|*UQeuj{*AHV}FG!^L$qrzDs zIE%8Ke7z4xVcV=;q?+Gl9>Ve(O$tvA}t@Nadg1M$8vn0F{7o3z3cv;I#in$nKHt%6v z#1KHI5g&X6=YS77kkw7NB#;&@k!vnWV2o0&W0j%$3wFh<$cCQVdL>&<9hk4a{9Vt# zuhIpJ17e&w91#g00FmnbvuSX0g7-jYS#LxoznN{nlQUHpSu##7#4RB+Xj~-R1SYSz zo$Sw166h%NliJ$i@dT0`sJ=105LVA)8`|(h@#=KRa>V*o}Z@qXvJ*x z5jv%B>38-`OmcA6i7)O3dcu^i$M@_qe36m3?IBe{3PthB$jm&u524keG0j$oguT87 z8>Uf$9$L{KJvC*r<`EuI)}cd(RB2h^bKkeuVCt&eHsTO15GDYr8ahVBbX)=Mimuti zP5-a5a37XZdng;AFA{>OyB7bVHCX&03|OYZd(R3=;TRIk&QN}k^gsN0U*2%JmK(1B z>VaT-I2VaI-pix5RumI));^br;k3FT?1h+o0XH!*!I%vP008l?#fE7HD(d7sBb*qc z=+>3YpE^IjW)ZMkJHXy-pF!2u`nJVopUR#jvlh!rU$kl(;#@!>2Wqvxi>=lol=f3> zsRML2I!q34^RlLGB&`EM)vSgRQCZg_2saBT5uDGMT}175Ib;wsvogB(h5}v{jOK%3 z3Mr2!V5aC7a?GPi=}&1O!4_gt!ZD)3@hL?nBQJowSSzPab;>&fsVbHCGJVzQo{%@u zfvFR$Y#2+^`{b+jJ1eJi`d6LWY50$>yytkYg$uSWBs`Zv6$Zcx)f+w+8`PL4w42xDR@>=UZL?IN`6LwKNi#XC3`X(~ zXBs`%OuK3$iV)q?Q5-myeMz$of<^*mh_nTFOt+V4Y2C;PpUAH?(FL_PP*%!`)7?L+ z@2ZGZgq(2gNxuX|y$S%MNC8mFk#OpZQ*sr;h|J@TVK{c?BY1;QCd`HniSv$KsMEYGV7z;JgP*`|$3|YoTsNo_ zTU|y1fsz@(zK@^|tM=AAZk`K3jnz1$?g4g&Ov6^l=fB^O>n(I&M{Xd=X)~36$LuJH zfq?;Su~|Ug{I!2fP{8e#c3DXBU$y*84H>Q8HESlQXn>`%5D^j4t&&%HJJ2i9Yb|vH z_V%FL8gx^myYI1edksM!TFR1#MMg*Keu#GS%^MEGNS?Gfr$S4<5u#G2mSsbExnJVU z;z6lpfeuLev6l+Ii<7n;ahg%DVCf!~>aWaH$mhR7+OB1_t)fD+ zJonr*Y_9aDt>%Ar2%mW&!JF( z>p$Q<#c>n$C7wo(c9axYV)wy&vTcvP&U{T|X7ZdOISt~O zO=dTZN#Rz})_@XR2Z6FuTfZof9M88{VU1s&Y!uVy1ZK*ufS`hXxMrZY&4lc+wSqDy zA0E6D#JIaV@F*o%fr<`*j|F7#)Exj~b3O^pABn);BtZeFn9na2Kv$f5JV6d%9HzYaL}-aS@p97E>%+c zXt)gYMFQNxL8Cp#OZO|n#W6qlI{;HUL{|rDM6)J!piHR~oiRX|myo0}r%RV_0*zDUY0BxzgM#Fw6+g{-9TALo6fX7>8E7(pKkgHk13 z?9!avN_!uCySg0t+@`I@N%nAk%zPk?y;r~5B1*S|Rap^j`v3shuSz2=MlKtt?V25h97z#6|v+ zXY3_JB2_yOmgUK;j#^q;($XvF;Qz|k%+2t}5*jBR)TPs61d6_IPYs9(Rnf=u*dxul zF8?J=(c2v-P7p!uDFb3k>eIiu6c8V3yJ3JzOjPXcxmNc+DRM}^<~(BpV_gLI71kxX zWdk5Ug0Zyf7pHt88z3Rr!Z1oyRfUhT)UI-2Mag zK+`mJx{-ntPwYFpXJ@nSfhc`?)QFJ6qM73q@71M#Hb&K{nn;%=&!y_mh4Kt&&3@GB z-qiNMa=efEMtj~0{J5<_w2vgK6K~=K778W2ygjma)T;K=7JY*$8u1F6?3J|5ji~md zT1mdGdAq^dg=8YoiOx2YXjcOmVr$A_kzDqHtt#|2=ku1%LKYX2vc8k+j?Z>hA?p{&hJ~>L7f2DI1IXqCI^-;TcmXS&YwxGB3 z33+7yVcHEKVjdq{28F`_S#|LxP+)Jd4A%xEi*fKTH#0IkZ;MdsWm@n1ovoTnfAt=z zlh*9jR0JPg-%JdTcqiepas`g=bw7qA^Gk5bfHE><{3Liw@%vYZSmv>@u{^7+(~pOp z_twpcCA&%GyVK#0t&Il9V2yNhBB>H=U?cYKoU(p?b5fIvQWDF^Upi(XR*;1gPR#oK zoR%f?#BnwhADiE+*)HJOuo4@wS4C)z<^fF|uSDU+;Fx$+u~>dAZSN_$s4IH9ab}9IQYPa17*4)KuTY7w2UzX03_! z=aI=xRCNx$+Neui7FEuTr#`UD%bH>}3l(q`>7KzE_6WB#a-WlA@~w8AJn`2YxenjQhN z$t}~}>FOZm{siIfF$URQZ*{@bX^Ce+Tbb=Qw=XW(!=5{E(i)V%!%r;`w5r58iA*K8 zlrbVia1U(bpSPJS{j#Yj?Celp7ORDBC6}aqT&+1Lppj$G#fDAw5rwOAtWL-L5_23B zGb!9qNQ&ayYUV)NH&-yUqbB*JT&|bw_|1QGS1CFd_k>7T=J;N;7&nDN{rb!;szY!I zxmgm>0m!A=c~|bqzHrjBGTNIL>Pq(S9^QZLlcOMdE}_+^Sksixn%I!YB8 zLdM+4Xy@G0J-}%b9y5S-IDh3XHPpSG;XVHn)U5CVvsSv;mBan@iMkWy-gBOFJB z(daX;PV}Dg?r{PXJq!2Wsjgmou$gR2-rz$tqH4CJwODrd)5W^vWJoL+y*THLbjRI>1dI>DTe3H7lA^9!177B0GsenJnFIG&rt`r@aG4DbjRGG0!3C zsOceLp}$G&*vF~J!jH>h0zUv3ELKAE>DyGZaz=7y7SM_Z-5%ZNB`nsPZ!b1t=v1_tibkN$7TBQ;9ZUDYXH_x?-7D62~JG*Hi{x$c(6vn=b<< zWTV^*MhVIHD9ccG(9%c+3cH9ab^Y#iq-yZ6Z-5^Y>~EL1-R7dXi+ZfqTn|!uHfy}y z)k2$VCcXI-W>-CwieyuGeCsW@$wq9HC0E8|=5uQ2KR^#GFT3r#=4M*YHcGVEohg>I zi$E~bRxvLNpT$r@!74Fx#MVW;LkUvI_CH2_4}pZc8Kj`mK$an5Y3h(`}+FQ z`+I=#(**J-1>~&IjjcO3Ubtk=>!K%9a<-|?Me;s^xRUy)0PN~=z02DumlP`8y}rr9 zrG`0uz|(#x>@e+&8L;u2_{?5Ur6UFD3hM3=oy1kXI#itiV)7e{K(5Z^q?>g;@8ju@ zK@--CN9*pR15nqiTeM%%*zn;*2#ARWqv<9BHqw%@!lvd1U>j~* z!4}s8!p6S~^IxWZcR|5Z{=QP4Ihn^&zF@b=n*%-CoVPDSLo?ZKw%m%0ijrM3374u6 zbX4e_)8K!1SdBtWElVQYHcVqL1UCnJ3(oBAJcouURn=7k(K^q7DF@X}zw^ZVp8g%Fz!WbtF+~Kb zSF$f4=xV(|xHxLoks|-%n?h2)^t-Bf#ey zP9t|}DtmwqX(7V}`7a;Q1MU!>r z)0={O+E06CP_S@AzyGOL+a6#F%Y+H-JW^F0&|E9ICU&Nk{?-NM%&!|J#iXQq&@X%H zQZKz3MEwpt(|aE9o_`xJYEkgT{Ov}Jj5^+1OvBOn)p`F2KBg{^kylpPcKu$IWA z(zHj+!RLJ49;?-aJn)OYWClq569x1HFZ$Y&Qwj6~ed zDKUvZE=}2^d;tBiAyL)o?p;A>bG@3D66Db3%&e(qpCF;POy!I%azWE0TK{18YB9AHUH zI(PH%8}Wx*5fKp-Ft0)R%&c}BR`rmdU}ir2NSCzb@X)UkjI6jU^s+H3(^RzQRjE`( z5n7=_wfPqmBu@g?JAXbsPV7ZUQffDr(KSjpm+{=Tc+D#P^nhzmA_r&L(C)>`?C}LEzh+4RCh4hsi_*4%Zx(4VE{r*M>G3J zrVn3&MlCDEimhPZ`=QqmHx{bYk)Wor6<1#YY|ce)aQ;@%UX|3y%VngCe;juKGMvaqpP`nl?bUuqFBh^ejz zas(3}MBTuzmXIQ#by5+IzQJe`FY)5Ap&f{aEcxAB6>lz9v}3Zn?wX_WRR(;dsAlcD zKllz&gEa0+I?uk6Dj#Hhka-G%;4%^ua{PF*cPWnl{%l>*K&lMlke)p^J%#w5z#>HXKxHh-rT-O z^*%Yd5Y&m%C+`^5yINx`!D#1kU;Xc-mG~eafT4&_NI1u6nKoaS=<~=g6!m}7M$x{% z)5ZYDxJxU5023=A>G>;-1TqEdSu$C@Xe?-+d?xN0J?O`*2$g~`hTuv|Lv{XqQlrm~ zY*;u+8ZBVOc9J+c*x(*JB93D4TuTckFy<jM@N_9`K8wa zYPZsV{z%bvI=DuJk;26O)1m=)OLuA!OmrkjIniZZ$@nrg{Y|#=|BlduBO3lUo1=ZN znD<8j%>f*WUtB#rVpL zXF%TQEHL28j3Buyr^Huo*BKZa3+rhau;{ma<+Ps~6occ$j-PJqw>|}NDIf?a`Go?_ zARyDy!U$AN9{kUUH&`k-AWn>ZBS;Dp1FV)&G#SSn;i?=q+7-eawr(dmHZ`u@C7@^q z799wmNfb`RL(8uObPpf}4A&1=6Y9Z$$R5v=vXwhvuRsD+z?30-IyQH5i2DiZkN{HZ z=BcXHkafDy=Rg#s^LOz9RY!L6d=Zm_koU!G50xe;C7$s4fs2dFTz|GA=Q&JJb1{_w zOW4ZB+RlYW+d=o}SXUG=8%a{GJ#H@^KNJK~#{J-GR4a`mg-c0X4E1U46#BmK6wwzLm0LWk7ftEdYI!eRmef31^y;+@Pmc zQx77_0|m8Wn?(ALY}H8jYWLJgg23Zd6*Yl@JUMcD=nYKj0zuou!vo5H^QLa6T-AGo#qc5^dL$k!E200;P(w&H)iMJ6q1;xtc*v;>9tM%} z8=Zz_4LmC+wm^Uk+1%O^Ah7f4_!0Q;7&ruS>IXX1h?B_Mo^go;@`Ps_9zr%9gCGeo zFGc^y1O&{|nfL>$L$_2uoueQsiC2ESYvnX&Y(buJ5E&zlo^9)&no0$rkbpVB+N+hB zwO{YIFY}x~nR<$WR$gJ%Q|lDBouo)3Eh7kX1WwE{2+7}RA`fxamMX%*X2F=y>Zi!h`3O$(M-< zL%P@bQKu!yD^mdbMw%yB{H}>F>tYAKM0V_duUXIFu@~7y5MGvFvtC)oTO#A1#dsfE@rFRKx|~ z92mFcn3$O(_p<;qR-FydM_D)ad3VKlBb$`;(Ct3X6QG#idrN2;%7-0Nu}FNd-5&G{=7FFaNi3XFFeO3#wC~N8`3<9kEB2J@}j>v_(AP`ON-2L zmdvf<;81GqA+AX3N%Yc>zllF9V+tW-obLbvUq`}tD&T+*Ruj4a?a-gBI(*=7!JP3S zAa1a+#!|0*>S)C0DAfzdcY(cvcuAxhm8fIpq-5PW2T>CTL@8@LBgB*VKoc$iRF?dA zRu7F@EP1orPsO zJ{Zg!Ss6pA+$EM9toC^|ya2iV%gyr2klU+MsH2L!Kofq=jkLf-(876rn&(Yz)0IQN zf~^u?7&_=M9#=~147^J~H(kyN*5Atuz6K-^G-#Q zHc5@A4>2dtBRXvtJK&cKijgzmpYIyySA64%>r zLjIAe(D|>fKpMPZf2mMi5OSInTKWg1h63fMKd%V*)<7SSIY`Df1KGb}Xm6zrgDyCf z#~?=tG*vG8s`kMlh`E7*|C=t-O6aF$)xZBi00TX*)!uKZwT=IXyQLAjh)uZ6d7>I% zu_bG-&~qpA>rTXTXm$A?BEza+ub4kTY0%k0fTCRQ`t(esMVjURq&OwNYds+K1M&41 zs6pRJUzjv^6m#;0RRR&Sw|b8r-69I)=>fM4x`O_D{zQEquZ=E|%qQS5hPCFd0g*Zn zOf6_5DuKOM;PmrHcWAtNP)hXS;i1)4#B;W}PbIp=(O_kJTxp790Rj7{o#{@MY%c=T zS4+`^e*2TSGm%O5Z!)f40~?tN&3NV#MLIZ_s|* zF77!;1PHLrEYXd~-PU5gk}OSVjb!ReGh2ak!}maX-39gyAI+rgb0WPn=osIO{XCK> zJhtG^d-HQ3BBD>d4#)wt8N<2P3d+{AQ@P&R3E?q zPD0F#Y=?m@b97`R$K<5@nN5O*d6pU-s|MKfDS9XR|VT+vJ*FAbNmHps{LT~!y_b?uCSS@zZr5ZaRsxfj!W z+g5V$am1STz`HG$ zbX2fhAVz2QfGCItZ0B%xRu%xXsLrB5B`lB}mRqQO_d8Kigl1?5__=mG&Jk217xWA$ zza9hO_gBE6N5iZpu|)qa zD+G}YMjQ^ug|BjwtipDVt*h?W+NQniF7-81$P;4DdQ4`Y^^skwktUWe3~7Ss>Ax$n z`!L=>yuw6j51>I% zVo+G{BWh_;E)8^tO0cl7sD8L5DL`+qdFFDIdFHX|qOPr}YrDYu{F=0abm zjDQe}-mppI3>{4LpVuO!{`o&Ky2h?oPXXo6|KYX*gD#tnpu}g6uf9bY3J~6c$BpPb zPe_2HmN@KT%x97e>2-zRs|lS=NF@3>u&r|kdmCXfNVHSRT_;n_5s$UEzQS35+_(@C zdcpm~C&s)2emE0;!s_Zo^Op6z%*LB6#{e-F5r;{`9e>`OH*OLS`u8_#GPi~7GQIJk z)tFzu%Ie&(!}V?p48nOLz6sT#+mYS_!$-C#ttSv)uB_t#O8YJhFW+ch))pTx)n?OA zpoWS6V~djh#}@Hy+8f+S@4We+F$YL74y32YrGvDoK0m+RAEDv6qI7y%@(e>Z+ST*F z9gN#=Blfv@`@+ac1SdzmZs7Bg_4SJOX`&2u; z`@Mh7Kg4bU_(IOmZae(LCl zRNw7Hk~g4Lcf2pHl>eJ@1keGI%Ui@8>r_Ov^}i@7n62h?6<|V7_>!%daCSVJ=0_b` z@8K}}>xC;oTv_SVagGe>-LG~yqbdH~IL+r0WUqzeX;0EKlXkoj8_gWC#}0Dye!s5J z)W@jhYZP8xU0uNAC5HEC(XlE2fGCo)0fAHfwK1UE(Y4y#_)z^CLB|=Kcehk?qnG?x z=D(&u=0)Dr4EsX!UKalSD0MQyY8(Jzht&AriUM^B=hd-Qb zgM2MTp-|I1KYyCXhQw^+Lry*TmB2-ZdiCk^=Rj)?g_Tu}^f2-1)7l_c)FR+(eXW5a z9wMgJyw;CU4+il6xr=%$-+#?dK%Dz#@S+*_|FBulEX^jvX1 z5{aDN0U=jn(SeiOZImah5R@wb!j0H@_1X(zJ|HD8sWl}BbLVp#J(42D*Gke}#{U3` z9jG?`Bd3Hty`%M?i4*}|GwRB~nuqSr#D>M+SDMu^z?g^-hxFQmf>D=)KOP<41JH7q z^|0p=n?$)*upPMJ2xYqB6EzCwuOyUR>?$P=a+t5J$&x{22CA08KJRnGWM3m^bnRM? zt-LN-?0|X|JX~2VceS2sU>jjWU(mY^me9eqbh>+lI5E`&Hq|)I4j+)ZG}Pt)zW%dA z{X#HE_ugNZi@F3MBFm3&Q2*lZw#x6jWz7cBuhQzUP-U$KsAmx~>>6TK;_u5Ucs1dR ztCtS?Xt=~N>?Np=#=Uk2vmNLVvlpDP0O}fIb8yP3q|{ zEcn?4fxsZH=dh`0O8e9gV6OWbY%e4Dm%qT){w%|PlWK_Btv`V^I12yVI{4nJ!oU&= zuSNQzkJHLKjeZ30I5RgduRU{TO^%y5;59)$sZOKDQBD2;2_`(W?m}?3e{clHJ(}6< z*-cQF%5Ng3qgK5;aREj*?bW=d5{M|w z30Ldwch|JgQ_J;MKbyPV$ClR?uPU+^+n)m!C8bluNg`fQF6I)>fBF_U+>EUFtp=b3 z0lMeY?XpG*_ESyF996D>zEyZu99L?YQV594&Go}#;#8ECWv~L2#d3B?uo>grab$*c z=NHZ%v(*yyqIGmcl8TL^;P6#c%hR~l{0;k(JWCNzVT ze8pK&ie;xXOWBXi0SCvMp|{CztI*^ayb101-&Z|qe}1sm=5}NcW@Rk={F;Wh`V7=5Y`E9kLQNgDN%_;=yq0;%KlH7%CA ztQ$9&|5t+!&^V2X_4~yPj!v5J(M0KaLh%RwbpF$`I+nf>TQ7C0Gx2qlKZxjw%qOcl zqL=?zskl$A!+DLzD#Gh~N2!g-u(wO!@Z$bwyS+cQKYOcw|C&IgV@zG1GRbY7^ta=2 zW@j5As)_+ZHhJ`AkgPuFW6DP_NWOeyUDLR8o#f0{X8G&J4CnY6ll31vlqpf>$@oYy zSUmKG(p%q8+;HXio^PVXveep6dtrw#@oLvE>kYG1tMC0Cj&4Hg5h_+EtbUUKh_OUC zzAQ}r7rx#f)jp=Y0E&KEgQ!mtaXYwv(o{)oyvy~#+0XQYj8_KF{IQVu# zb^fp_`fd-da5NAUzo7BC7-uUy;IXPNKkFs&a75ezEO--;F>kGY6?;~^t4T*}9HcpI zC`}(L8MF~){S2=yMlC9LD}*y{P5-^+k-X|W6UW%i`ZATbuD*^v21L#TLuCDrgDh-P zOyj62)X6%tn5WVa)am%wXG0kRp^~sh8<9zO+ zU={sVC;~md-DF^=K(KK-T|?hx6nfY99+>}W%G`pyx#CL{1V052IVo&EVMUBJYc$@H z*1#S%8jAqK5JE2t3E=)CbaU@6P=40@D~YtfJ|9fGvDN`54`I@H0gCvxr?je%#x00B zCro62>#K<}w|~-p$mPp;-9Htg08?&~gpZVbYd#Yvj!LWo4LRyGGDJA|mG9i=nAff_ z;~4*TeK8?kY9J!k(Fk!L9MwsCsbJn-(QHi9`1$b>1=%9$R&R5o_$;*U#;{^V>&LO# z+9c!t6M@=OBaIFAgyps|$FNQYs+g}u=ml{{&?<9TnYcGl?0OZnzl)ayt@PdPj*2L4 zaBi!>sD+gx?I)_oAJEfeWQ;!#A(NLzC%4+%ROXJ|stM|5fqB?yf0rf5*Xy*@Ng`zE zhH5U<+$3!`YTWxdNl(v2 zy@C#yU2p*}04A?c0R#>#j>+5X-IhlMSLa3SCqO?VK;!TH|IMh_YQw;$@h3*2w>hQy zV)yi1*fr{_dDYs5Izr^;&MM@Pv?K1jtomwFu9C38z$K>3&+T4P7$+yzk>@;%9S~n4 zKen9U3wJn;t~JDEIIC7&!P%VF$oxsHADHamcl*rG5u@3ULC_WEH5>ENnPkr=je~h8 zybYQ=Uw<4|NLW_fPmnIma&WS~tk037@_7YIM2_?8Bfe@$-7Gbb)Xcz8zohWv{N#|( zFIe<|Pa7VP7+fM${phtKHXEy|-J@9T7_@p7-fmZ=8qcrSk2vT_m2`Nn+79y#d$!Rq zMXKM|nBsF(=7!aw>D}fA(0JEm@zWCv5}lJQr3N)OTu={CL`7@u+zguPvf%92M(!=2!I8Vh+Taj=sD^8 zm5d|_*`9^ag>k78Ukz`|IVB<{;_~YkA1#8uXIkxmsZ0vD+MxWqxulTrwD0>10jJNM zA1!+lB;~I!zB%4G*ui3US4i_v{7=-d9}+WKtzcFN*ue`lO!@Bf4f=4jS51}o(E7ql z^vlC4;$BIvAmVN*!o6cT2{s9%#sdSlrO%Ke^eGy3D-H{|j7KW08xcLv@d|<;ntY3K zS-vrwdX7k3;a=&Z^64(&;pf^X9-u2;XZiJ2+oF@W^IeeDIX%^O=wWUKb?ue<#YW@C zGJC>wdo&s6iJ12-V2jr&a9R!C)16=BrLPFfG$NsE`D|mTtQ~P}H=J)#v~afCX$3CI zae_P?z*=IxQr~)3*F+8(6L5za2bYk*WKlq3oJ%$L?UJ+qQWjxvDiuXr(quP<6dZ1= zB?IldXERNPD3RyBn)^lH2rT2(`X>pKy}K}hQhc&hsuR^o_J^rVV2k^Mf$qF}pcR^* zM2yQoT;Oh$K>+oXWI(zQf8+BR?45{P*%2w*i~jif_7S9?*dwl}-X8V}k^*yjG^481*Z2xY-yg;sj5t3R=& zC}A+XWSw|Px99S^OP)X;n>p7q)~{}$f0GE`obKPj%sxp1aSoEHqu>4>LIUv0*ef`* zaIMul?9t6+Hh+z;w*A=N@l2hZgEk^|uo#Fn?{j)FEK4X>BhCV`1P7)Lvxv)9dcgM& zRd~v1Bu%aQ?TA(S5%wS1>2{<6_31mkha-jBhBehy$qmZ>rR)RhHdJ056jYMf z%Zrsy*?Swg2x-Y7uhvz}48R-_DoF!3;^8uE76@fZf?~uI^=#GALlw(&E{B0jEPD5_PIOT^g z-UAJer!__#CIf!kT~oT3*y0e_oNDzgH>}(p7YCt_FG9;a-$+|vS{qB2#C<`_WIzDX z&^MbGaW7T-T5(qa6+YT3bZ8RB|_VC?;K)h!10k#_WP(ktu5!!1xk-EdCe$>p=%v$XYM4UlQ;J6jdyR?ZyW;$H1Tzl5^~^{ApX#q^%JM zMv}r$eg$@fXu*GXTmqVbp6~Ex|6ju3jYZVqLmzvmjo&b;Z@xzl36RK@>RR!AKF)rU z+vIE7+?!9o3nRq0{7Me)gbDsjK{)>9Gzq4eV1I2&XM%lKAN+6biO|j0cN8d-3*R8_ zVO@0WOhobzz%Y-g?}#o;ifrnk)5vumlWVpdmWrCY*Btallqaf9-nn6QRk3H3xo4_$ zDKK*Lx;r0GU{L-W*JrJD=N<27rTO-Kmk37hhTA+=E1r$rCWB}T-QFAzzAf~S@gihQ z-0xtNRa|7RY5zPRl5tSGQS+XnMJQnR_sO*SmYW%jSLfxub?=^a!3sD}%Bvt)7~KV8 z(?0Wr6nqWj4cAA}KQ0LZQ+P-wnf&(CEwXc|DxqiQ{+w6Xa|H#KY_q2dtRGqd2|@BC z00KA6ct9m2s7T3E2(exIr%W$zT zY6d7@ynCkaXu@QySuJA*ejct2(KEh!etilgzc%;2Hjy94^^6IdbPDRi z$CV+>VGxKa-Ib4CltLa&d``BGu&uAyzHV)RL?h97binPt<89MxQ>C970Mi0-D&Rl4 zrJeI&u8;I2Z$KGfyJp7Kx5$+dCVZydvgy)@m=7!E+bjE#@#IW*CNe2NR1iPTcPBmu$PG6^{|{4wbIx zi*PKANQB2KJwj`Sr=(^Rlh+p9OjtLzC&S`$3Q?X^M^ z!nbErO^s{DxR)97{xz<5JF7m{N&w-iyw{2?j;_Y43L_*nuT+LfV+cw+{42i5lD+!F zg0By0`fO{AQ}#EcH+t^}tuRkd+FD5@`Q=Wr;CA=VQ8A0oHn#Oz;^LKe#H@#~Q8ASsw@j1x;AZr*QdFI(3yl%B);#%4-FRoDL7^Sq~0WUvJj z?%~~Ee6*iCCk!k=kaGF*S7;ntL{%6#E{Q20&9t{k0dXnpzw%wqzeO)jodm|u5 z!x-g<(F&tM$?e4$FO4I-x0Z6uN);xIL$Kl1Rq-N8{90Iqc?Uy~DYv>!;fZ1=4noOz zQb}T;50^k2u)w#c?$p88ec>_4FlELMKR=GEJd|NVM8@`dsmz}YKYdr9Yux+oRY6iE48&~7l;WL7%;qlgZ*;4$zzfrU{D||=D zeK~$*(QYaj$2Xujg5xLmb5+er5U`+TW_mJz*^X@G`DTrcoKvw0%5Rc@nk!wjovb$L z-A00@Ova2u&|U1~Hi++E+Ly7OCLK0?q)STS&xLks<`_OL93w?=n)OdBOLOh50I-(whGNGVPVmZvcpR2ELnPMxNqFcr6#**-JvW2UQAf1F~ ztno#}{QNMk5aT24gHd*FeD#GQs_q)=@BrSILb zb)bBTB3HGZpmh3BG(es#r@*BeW5i{4b@r@5rR4;J6+^Usub{g>he5^DVW`u=l?1W1 zyV8!#yp^!rz&wAJHm4dcLW6Fm30t$~!)|B3_vQ0LwQO2jhy1gGULJG{nr}%N3S4oq zHdZEqXq}ryTz8YR6@upuPP%!7VcQ$tMq;Ny%`{ia+r;wz*sn9&T5noVK|1n0U?vQG zBTXpwZz*A0!Yx9#S{$IkVwzul2$Ogzt9QF}4G2NC$sq3Ak4LDX1Hh>2#84Mm+eusd zsE#^6>>JdEQ~r2H`<%%hcNr>*>>vRg#ObjLCyg5koA@okvL|tjkRd0aXo2#b82ZL?-%Z+O-i7tE zZK&a{-&DHiT_;GTImNT@H-3t(i9S7eUJuU^Q!1ahuau?A;q7>|*(_)$rEb~wDfFJ{ zFd=vSD~O1A!kNc@_ETVjEnyQrF7YHpB^{H=Vu+(J;zBia#$e z(5w}6RUup2ZtC1}38yVa2k6K2WK?pwyX;PF$C z7QW0h5l?6XTNWxPR`7Aq&E}j4){tUn>!|5R6CDQ!nPqF-vnRfDlMMX*awdDt8D6ta zB>9bGW+B>}O=9-9UH5#7BF~pRd(3u_&AriN@ny)D>FCk*4lE#?V9~0V2w}eW z*yh;55kwr9NN8W1i}xtD;^UV|Tf3k2X=x_UdL{lJYy-&|5)rb`MyTZIHmjO1yj(E^ zDG2u2SEHhphrG4_JY=*nlaveJS`O=Mv#sTDN%i<1_Vs(pe8|k=qT1)O#$|1h=Q>+Q zy-Zcx!zM@9+}Co&-`e)Q-G6{hSx%sd`uOG-v)p-L;_m}AS;O&ZuRc;u8W^) zKpE?clGr-Y$*hRqRZaopuIyVMAh%hLvtvlIcEKslpSXtx8kmeso+Qc;YtLH*duw*{yHj~L;dfl_FRL7%vUge|f5hTbxk1aQxH)-*1#iyvp6InrA*SE{j3 zxTDVT`uw`yKrNf!&no**Nt3WgYFPt7t*eo=cUziD$bTe!#m}x9yH2FX4 zBV5t0%J_bE(|i(M%%U$G3zI0=*Yt>v>}`f0WTt!J4fivR--7*?Q0xXN`;i@6%O*&N zW6M2S^xYb4o>6^!%#Os2a6x|SpnB-On~NiPjH>mUb4F^OMNx7;$20FV^Fk-*T%;wK zXxb#M$!3}Vx1$g727Q37Usg8B$|d@o?%h==8EV(kD!Z;Cswl4!UDjhYJN9rV;_5?r zo{i_(zOj?$m-nbU#Rb#C)wehGBjntz5~aD__B-tiU&p5iG&QMDKI=S9VGo`x55V1N zZqU9i**WT?=2t}U1jRp?8AA%>v=5iqiGIzv-;vJ`b!G0 z(&JGd9I!&t`LIat#oE+Z(CD7(hsm3Irs%PYrKZ4vz1vvD->hl9W-{cZGzzpvjY>gK zEl+mCUu96`UZ^WH7y*38PjOz&#iM@$aKA8i$n@B)Yjq5IqlD;Xbd{WgdF6!iu7S?Q z`tDCXpD@yPCOT4(M=|n}5cd+aEehsbWK!=pVMSSc22uvJW$FN_5)Xud_#9tV{QcC_ zR6D=w7tvd_51ZbS>7CCruV#gOr(Y@qeetnr%VMElNm+PLK|w+Esp0Rmb1@~ml343z z3YT54-sV0|W9t4>pcL3WGruXe$0=Q^`QCK@nMvRCt8S=ImGGqqby5LiMp?W1EhM>G z(dK||-);|YPAXWXok4Nc_E5^Xv1SKj@5@Ap`|xj(jCHshfO?!0xZTNI`sQ)pC$CZU z4f{}f>BG4)I@Vk>j26E<3PC+0U(T`EN}Icq%aCI80W8$aqpjBG63Ke0U$b>X(Dv0FEg~ z(>XLa@DgOd zUe_7QCAuLleIou&S%i=rLm09$VbER3ZjkO=Y!pFCfRbW?yY@+~9=d5N=Kj##r!|X4 zmI!>>L0yI&nx{ysPA-0yKmJ(yqN@$2i`qCu#sJu;WouxP*Jo{46k&tRJEDc_}P z8983cIG=N6L_Pyd!pjoUgSAOR?+)S;}uzVE2Xe}GF?wj z$EU8z#9YTbZIo>Yo!Wn-_V!&Z6Kk*4m8>G?C@%Y}(r5|UZh;H&Wn!q^ZLlH{Ki3{}=|jvVI~828Uuo{!E^4BtYR*gBWWxIx*Fp?(e%~?HhSz99<2R z9d$IR<3{V}xQmRa8{9&unDjqCZy|5-&Q%dx)yr9X?h&tP%FW?gFSHkDI=+b#3TKzi z_wCl$tFk%KI$cxf$D3|cEiPo8xfZyQt&(q5Sp6~R zm~(gkq9a=A6`$$r`713lIin0VlEqo>^oT-DsMSXgL1NORU3nH@%{{E zR{AI|m)weKOq9Gj{`1Xdss(6Z)@kAcq}e-7)G+hrqWVrLq(=Moj&ykAMj@ugAGg&7 zcW7`nt``n0!jus*-@(gCXeEyPd5x*jii&4ScVC3oBeuYDSKy)a7-1`>js@b!_v@e~4KKwBTv=>K!FH6}{Rj^I?H^0-6D_Q&WdrH9vLy zc+w63=o_g0j+da;n|T!$_m>2P$_f z0eVvvSLmNJ(Z6ulldTzJZWT7Nbv1(lDK~L>H@;fCN1bs}Ql_E(B6X_-BraK_F~*^G zp`cGqt^9~lpY|HH2~>n~R(&0(gska;%ohw&DbigTP2pNmXKW1AG!ELYnOgDkZhbj{ zXNIgwsF_!D9r|j=pXT#5oe(P;ppBjjDEfpKuq49u^k4shpb3+pkU5a4H?9=nP-x~b zCMOm&^#2qziD$+GLb(_`i$1-|dUIiubQus`lJN_LRPw)t!l}5%_hiTz)?N1+TwYX4 z7cEe?4~g1wzE&r-gbK}Hq^4cXc69|#*tL3^7Aw%kw&hi%8_|Q)wJ!-3HvS1o5 zu(FtGDCvS{tKE>|jCVd_bmury)%vdYuN9__p`W>8-Ij?+OR*AjyqJq(>N)<^!!hwz z-R+#!y>V}?Oeqm8dd#*=v}Ck9h3_d!ZStKa?#VEonGneFIx_v?h)3C0@TOc!pAW)V z0)5oyvcQFNa$z-KJtbz38zaqC2ci{+1G>xQcstlx3a!-8!y*M%H*aO(y=JxiwkBU5 zMV?)i*4t~cz?ou#!n=%USjDmy!QnE5<;1jL5vTB)s|)Ac>W_u;@F@nJ$mZ9=+X#$B z1gc>kA6S5yZ<&k`bUuB9#XVr$x-idjnL_e=?3w@QS0HvOgGL2qZ1hQq!tWj9Q=MvR zw*72#c#O(h0{2_R8E{7p+0$Lor1inB3zv9!cpfJmPH4FE*iUE-_FS49J-$cZ`xH~C z6abh+iE@L=-ak*i9_6pG_zYf9LtdIk7H=fTz&TwWLs|QDADWt&HoL6whKmcpH+IPIPiWAWOv6&I{j8TECCsaj_^k766Jov_#CC!cN3qGJ|_8>Cu=0{simIDN+L z;n@?HktI>Sp2C(n{k2DiZuQ7V$i-%9i5ce#2?OujMakc&7_?*>AL0AVie3DE=LN2* z@1={;8ue5zP_yg|dwU{K{WNjLSqTXSqX%YM@tG;R`MEFAFK@4MS|A5pSbNfE#@ilt zwJ8kWeG)1;nvG5JH0nt&xR;4t*fGNf;*{OF_=kofV*=5>BDVr3XMLJqP~06-U7^Gw z<84_tvNh1|u}Njj#gO@(tk^w&fxf%fws4;8k-Cs-Myj%1vlo%@Vz5sSE(aRyVTa5u zDXEKw*Bc%*%-uLX$5OmzL2Ge(4|(0$=rAZW9L^gdXdSnkQxx?4-{lG<#2`Rb(eEw( z@g3)j`b;j{A=)A@;Ah)-H8UTv>uN7cY(5x_-Zhof`xaaGi!SZ$W3CUDNAsbcv!K|` z;LpHbVU*lbeUF-Tf8uf}Db5q4`yn^7rg0l!`0h`(&oh2>TgdwD(>&4Sjh%D8r(@!U zCA$R%7R9@vDv)Z(r>6pLv1`x;{sKMDud@Rme0zwJ^qylBkq_cy1vtF4PR=`-Wc@)H zu-jTUzm_R7B4}K(sxZBz^I?HJ#G!oLA$t3_&c0vUwyf%@P=e)S9$wxId6PO@jSB2K zb_UVryIVvO()w4il1o#sb~B~O4NUVg^`aLoqB=9?GZXU2Yu-EG`4>;vxacR1dn_r! zuf5Ydf+nWxUaSN%UFVycbomF zlnBRW`$O6LZq0op&x)O0GH4mBTYVV88H^*z@zj;UGHo4ksmB|k>+ibUTa_Ka!Tm$Z zU}*+q3io=fIK%z3M(^%}8}cxq33|!S732@AYAMSh%5H-y(pT-YpEdB|gRYH%mm9yI zj>QWNSK=bz_}4d8Z;v6g-=4AGa=(0>%~|y?DB;5Mm+4CH{_}e6G*nd!{P?exvJRH7 ze6isz^rD{Vnroz4L1(_a(Qw>>n@wMnqHn-K-|c5pn0Rx>&EqfM|^ncwF{e%4i}n`=1*hD zgMM{c$ZE!)4Sm?@0{6yuQIvjHF+dIo8dTUF-|To*Z(g(kx5VEA<2=EGUIVl$Cv`N5 zH-0CvxRf>f8f@KTq*14Vvs@;b8KNx&tS@4KjdnSHtokRGUBf1oB!s!R8|ruX~rJhSnS$|aq}yC z@}1UA?$3e0SO9ap5>=^wg?Bk-cv!4Fy;XgCGLj$RjY$WNL!}!>Pg_z=oHKw4A<29w zuQ$N?j{41~903a*M2>gf4ONB=6~0wrayUP^6FKXHb$sNIf&g6Ph1USzhd{y2ZUuj<#g=8;am}d~xh4$3rvlgw?Nv}fGh_6a+|M3^`yE<5Tq@(SOeT8aCIO{MgyC~H*BCI zlpuWmwz_t~#5avDWT^)_#kzX+Qw!W00q5FMZNlH~$mMXB!F^Gz{>{xmW#j1yT?<4K zD!kSY2us;_?p?H|WdD%Gj0-5?#8x<)ll*XDrQ9AGpH#<1CYzgN*|j~87(EBUlyea3(DdK2mQ z-b41tBfnqraD9=yiW#e?1WFrpH$EuTr*B_W@AIxT!TEox*ZHUwUC|`-#jfC_FSv`% z6si{ct;{90rPH_H|LAh8z8DWo$(g>}^UBL9@x3X^lcYjEi33ray}U3_!JtE0 z@nTP)$LdnY?qiP|h#J4-D0kF$$yF?nifiQ9qu8ZAzw0F(_$H#T>oE((pU;K_dF-v~ z>;n1z%8tM&AXU=iv3)V@GFMa&qr8Edrw9kEvwzXJ3qttbBteuWGh}4m9>`1-ulj+% zIf~c*66W%?L-x!v^w#ieru7c}c6-4s7~hSaLRZd5<%&~W0eGDa3-9aC$)3`GdRie% zF5ZNX3V%lEF?8aJ&F6uYsC$OoE8Z1tPN~Wph6LA_1Gz0P#g5^Z*LEfslO7vg_*5Pw z?-_M70%q7y{$$6=f>V(LH6^Jj+eKO#%ufPa0B*)3sFRS$9<|^< zVEh(?|8wLqTJGmNd)x_lzb|y_@BCn~J8ORefMLAI+OS!3wM||)az2icnZ3|4j4q9P ziRsO-Cu7d6(4=c;_gbNIK9>i4URmv+C{Q`zNgXZO$AAMY8tq9_DpC5X*1N{x%AM6N zOCSG=7XO>emvLJhgA5_P=)>E89jU7{drf&MC8tV+hpKc4RM6eFy^2SHAs>94wR#T5 zarFHc@-fBmW`Sig_ii!3N!72l^}Ewy21lBQapxi9MPUTuZp?7;GdOEmu^=|XB@)cK zZY#nGJf$^@xj8xxoyiBo4;lW-=8iwS>7MD>^5v@1`lgXulG{}A-fvbD?@dDzfXe?c zVD7`7w5JdoPPN`Xv7<71x8rAuOCBK?vv5vN;5qbwoc)xbj``}dwYmiR#pLm^^-NlQ zTRsg%Y42Oo-I5Y! zpbcC2il#XY6;$qKYIrnLZ9};&1D&+b5cml9ub#$C;x%XRul%EXLaWAyF+KGHaGR)= z$9%eXD1SVS{-4wI_bzu3aRw2EMmAfDaE!<;Il*Z8(GOKtX?lD=L8K zpVgN0RoyZ*=ONAX*}NK7?RGTvrL@?JIp6aEu6 zEqg?vY!}2O`D1XzxUmrqFFwx^5+*C_K+6r06x0~B6^6l0e zbkR0@z8MEfyR=tAo=~%hZu98 zv;dMIdwYwAq3@$EKHhxj_qia~l}xRBT7tq&f8K$R60X#y;e4Nl#_Nx#1FOVzJ@R2S z!-^aIhMKvm)2vna?h{uJ@|5*-W*@ig6N%$l0~*JLM}BZae?SBWE;Mc>@3zTEJ-855 zeh+1V^F-#TRy9y?mWK^(8?r}%lfORZtJnQ;0Ppf!OHi5`%vXf;il$6A zIQ^M;q%z5Z@i5yB40Sd`4h*ATwdI!FlbmPbT{LDyf7b>`F~ttg)PHS-m8(W;>*M7s z+mJ@K5%y|2r!0Ee5*5DZ<2_xEv2XV_l1d?``ZjzB&J#c5r@V~JrF~u z0%3D)+|+o*`+jMiA9@XpG@m^+#sb@y`!g~Q!mDTq<_ujz5qjJ%AGt8)-aVMvRJi$N ze_fv0s|iE56!I31lZB`a|7r^eZ{;QT-gv(y-7_&#RvM4B43e7|6~d zM-OCyBF4(ZXgx#wszVY*ki#Fh#BBfL#?IUIw^Va%&Op9u=La%gjNsW*02{sE4^kqMdQ&*GWzLsL+`U?a zO{J}0{!w(K|A)rl6x*Lg$l7zHJaXub=hbH}G_M6%Sc~LC^H=n!)YSai2>q@>qld2g zjeR*Uv?E#&Qj+-@`o97`c_0RUNvCwPOBH({su+*6%Z9*2?F-WCTcFyA-gtKqmzBdng923W>P8*iew{P% z_^31gPDu(OrC-OWToPVtzwe<4y;B4DiS324IZ(vvV+`k#}CUYoE}&t z2t646rfZT~VAe8Hk7SQXfxc{6&a-Ns{rN>o3SFGgy>Ed3+>1hd_qU}JEl5cuWOOjS z?#*Y8|Bg$5Uf{_0Y!mPcak(6M^UShlIWx>Kt;@l~*5M%M@pO@G2`jNz`Fn*NFr;|> zY=7-LXvWx3Fqtf5a;3+NaiMtSo!|5nlbmG0!DbpT-njk%!!<-ZEs$KeVf(2EzttdC zIYtga$ENP~@UP_F#>X)kw;v3q)N3C5aG%%7x3n+~olxH$Qoo=*1E|<2XaN^Dz_Qbs z$!$`UQ4-C87}$8Q_$jaxik)mky^UyLQ|k%YxwY<>{RdkqGVAsmG&+=s7e6ba%mS%;O9uAE1 zM-)nwIM($6egx;I^ijmCV-Wg1q z43sJc^X~?fz22{+Aa~osY9P_z2RjAem#{RiCC9ulbKLYI=leFFH^~#Gtu*)Vg#}r? zC2;|PJt`NvuKf;>Vd9o|3-&%3zPC$|_CKhQe5Z=7t4NrqNwnj+P?^%WJ66l5sw$?V z8oy+xFZ-pCMPBX(u3rTu(SK0C+031{q;uWb2hDe`JsQ8tAXyTaw|0nhnedWvpAS=N z;vwZ8VXyx9y&`9N(Qw!!etyX5c}m5m7q6Pgm})h5<%7ZC^w^@={+=rNlf#7~OG^FA zXr61yohg}cwF~{8!gTB}3N2}*v-96CK!0pKt!TvE)}JgpuW!B*!^e%de-g1lG!ZG} z4pPlNCYWuxS}(Chm`Jscxb6c=Qk>$lO0f@6AUv#bi0^Lj0Xo))HQ3cdlO+ssic6@A z3`n3ku#th!FJ!$0cILAC%4ZToPJx)%6@-ev1_0o4as&vgFVV=5NCS4-)QaR=W)7gE z*j{d%0JN%PBt1m&iYzhGRMCcxr|g@&XW=xhQj#x^FxMr^J92D0-1Ot5*Qp-Z8!AtY z;KbSGXrJK^sLA?U@Veb_4%*V4SH-&_Lbvk5RvKJp*N;2ue9sE2P5 z@AXfL!2nXR|W>&tBC?|dib%KdZA-XEM`+}Q7AwpgSKPh4(l$lhJ|buGWXqq>^5 z3}D$dva=&kF20GR`;^Cp2efiiMTS`n*Pt_FN;M&)`;Ri-$I|lpc%79Hki-<3ZAXbg zT@a@PY-p_2sw6Na5HR)aVV|A0GnGz9?y9cXWhLC~3>Ubix>8mVuwb|&jo^bz`)!TB z6x@bedVNG(pNGms7yRb_V5pQUWtG#L3#+iv*(@ylDmN^#6+=0M*jL+3b5*c2S*!^f zb{6>1#Q(6QQGOOjI|(vzLPUpF-npzC2y*dPY&wk7u+%DO><(^RHuy*oNw*Z3UmnZ+y}H|d@Al+Hd?l09>i>Pn{O@H0 z+2*@YlidUk1#x}T9C#gI4pjTL1;_9kCMQ=e6W&}oP1wZ4-Uilau}&xZSAa_s12++)2K7bb56i|5H!3KN4l6^B2He_3$S20FNg~Si<~P}ucWUR0W2RPH`!rKm zQA~cR+MaJ-`M|;9Eb8lyvqA8-_=NKAL)xkIluw7hu}P9Z&z*jfGxxi8DX9F-E#J)h zQo{SZ_}gGe^2E1iXo!yFc0fAG8Mx9pqcXV9{cUz3tG&Y=s@wdbXBcM|{s70hnNCO^ zeFOWV@8I$r?xo8ENsmDl8v=anh*xbT%S8$o4n#YY0ZK-Gx6y-dOJ}?jRtS){F1430 zQ!wvUJj2!?)&GMvg*Y*g?h`3~W;t}9qo41sjN}dA;U{|JqhD3K!jFo!H+8m!hFO^9 z3@6d+)4$@m)vxr$8GeY1N30eets50aUlZ_yWFf~t2ywDGRi2pdg;6W zRh5)Zm^j7}!`!dFJJuTSgul5_@vb4{G1?R*+e<#M;+xxlv z(3o2=6l=2!fSHB6M5DYK48QLWiC>o<=!n*N+#9_VNncQchnSttTK}<+5@S?y)>anX z6kSg*--Z}J#IX$3H%xZ9t(l8Rdn>))@RaZQD%tfOpJ@5v;=AY#6WFT(;@3kt9~@Ud zB)xCP%3orni8&~?!R)T_rhv1BK_KG5WOKGfa(g$kVhp{wOdW|@`6S1JojtIsAxr0BrRGkDA660Y%!Z>_%mZ+L2mi%5!5IULF88 znW12StP1~CORnBopYkNVaGyIvpEgL0@AIanx7WiK0FyjOap64#UB8C;OyKn31-?L< zaJ^ZU-(=5m{yG=XP1mcrV3{e$DFaPgKN;HcUvD;VJrry!zRdZIoc7`VH<3#6jp2np zm+)G8z7|r4LPHqh+|LI~UV}wSqFYVFSYD6g`Z6Qzl@W947CqNzkUaBugB9o#lC+iiJu(t3R&FC9Ol`k>E!7j zbiBN|S4O9sJJqE9{#kiq>m;ncbi7P)A4DbgS=f#vqh17H(|2 z6UdE^RYUsZXEG1ZlfdGvrtbn#@mgtaKd|w#s-9K?HF!EPQ0-IRMus5v(@A=^xd6*E zb{X#vzzOz*|Fnk*d`53PWE$@4cX^Rsoy{E-GrTZPcY`6K&&RMayWi!s8XI?)=4!!v|4c8+>}=o5O$2B&ktZ zgu$ZH%R80?-Rvn7?c>({h)q6V>eCX+MV~)lyqsw53H!Zr975zhA|K|kHmAuPNLSZ5 z!QG4VUf%S&u|L@q$hc0~TbJ`Wq2h=y;I1%{s(?Ud3xLuN$b!ZGF7%&QS{7uH9U6Yj|5pYr-XG>L!!C z`-o}nT%kZ*Q%(Z@?PJUL4h7DKO`-HNkVUb86}`yxJsK*_X=0!GqIpgk6(+NKV=Fg8 zYIn;EPNHnXowLOZ4~dhFG;<$(XTBf^{pj6p$~5b_MYAoVH-paeo-=BEzYd~SG<1m4 z$)Spp6Eev|jc#V#c8?H;pYy%*jGO;s{8BVc0O<^2#O?e6W~OO0M z<-tybE9SwjPW&D~;%zt_-GGYUcT}6L$8N7wu zR{$8uD8=#%47yLcTvaX!xUsHFq$X}vi{j132G<6(2w_`OBiF6@M=mcNtdtN%w=EUm zKn1ZL)oXRYSeh^f%CMC{SE4@he0mkd)dyK}{u2m;PCh74+!VCad0%MLdO>WU@zde)rE-!^03KKbxe=R#}1dsN?t=}|ZeWO5WlgiOe&Ze|mzTsNPNSW>!Fq$BOhMeH3M zvyd6W{H;YzzPrm)?%t6tBWOHbI=4Ly+&S;wIW_H^#l{*GYN_i|Q4R3l`R+!(Y_Jg? zX1U(r>WNAXvFugU0aa9kNB5hR;o#>@ z%6y|SGFZcPNszp=(>e&Egv?)Et(M`j=*thP1xjxozox)c-^C{+A!TKg8_|o0zHqUA z0Whu{YSi?yu;*)A5h$zDh#lGW61R|+))xbrB9OSTzg&Kxijp-2LmSu!G6u&=OAXUh zvz(vVh)LCLE`3(28+OhMk>f@SzP!xv{c={ZbaK+o9Z&`FP>~%slZ2|0z9<*Kgfd%j z+jEN=a&jMMRExfvUP16>QJVQ3>UpRq!oYL1ymsC2%S6@ zKGk*7%q^YVBQP3tP5!}33-#U=Dz5i)DmHC7kG{>G96a|;qIkP1n*)=xa|`z$EIPwt zkLBHA**vTF5#OTOopr91(Mx`ZENE>8Ep%bvK7pFCUs5`5m}ytl18YxtMwzkck93Mk zFwQ}a=sR%ae8%Lh=rP?_;9s&Ds6T-xAscKWP|kE0*Fhy-+)Mi#iSqp1-Tx|jAVUMz zax8!}}E1}x9f1ndaH4pvx zZPh@iNR8bvi$JH|v2p zVER1=@r#ZhUCGKl0SQe+(@7D9=T;Di_0?q*)4mo4x-79km~H_ll$on_bcP1Z|G6XlOuPzI6=`A&PuI>_2)wG&SF|&Q|3n!CpzihkJok}j z*nW;;%#+lFv15$~8FRmH?N<4j=sr!^Y-XRPg7-oRPiw7vS_h%gqcC^=T4V9v1xn8e z#dlDeqgr{kz50TRm3A>FC1#(yGactRqn?QvY0noMg_6eSHy>qF zML2*}$M_?ne3lTmWin%>(rp;wUjii_=2W+Ube3PJ*k5yWzxDf2c(_< zWXFJ%LXG}7Br!LpGY^Q!hQ}vVWZXd`2h?IeAc}Odp!0{U>cTly$!G;4MC{v3-XKTLr3pL*Am{*kjonv zvZu#%I^L9$)1Rm~59}K(#$Yq#G{|auWTV~XnIpzD7W&R%5$w6^f}Ez^{^`~WD}y;X zIHP#ju)wx&Ip_X$`goYypNvn9ALM9Sf~(u@=&W(P7WYgV_>{|Ele#y(<=;G#cOEgt zNtHXG#_Oxb2@gi_eC#d9=10(me+_ZiY$mR{ft!nKpY=9ol#`zrp1# zdZ8DR=sFUe$^n&Qvri;i(hc6ybDP+^?1Iu=(%euSBlj`zW-I&eKQkh`h(bSY2=Y zZv{1H{tZuPkgqFNwp*!5BrZ!HEAETA8g0*|S#25>{emcOC+OW)O63 zq!9Oy#Qi%rmj98)`*Q{FF?*-$srq!XWEBE@+DcCAc81sQ4+kfi{svn3WzhZ2X_{JG z?>0!RFz)-s>08=V_|X_q#>R*o&kXiva~#Ad9&7^`H+YJp8E z*ZFxv__Fh9Mxv1MPoA54bPs{PyE>(XQ2)Vr!T@zbgbK29O;8;gY)%dD4_*hZ7GQFT zMtWn-4IsL3<@)mBC93hH+! zn&`TY&lF(XtG)AJ>++sEjJ&H4-WwFWmvg?vh?2*=IAANx#a~}Ne3GQcT@n2RKdFx5 z@iVVoDe^|$_cX<+L!|ypR9m1uvtrE=W7)MZntBmjbBWbB)6(#smn_QBS8orX<#6F^ z0ZD^6X`VnF{egUMTMn)N3=)6W-}P6dze2H+j7#lvf6e+`tf%I8p+1IdWH{2EH6*&t)fox_aV}6(^}*yl@|J zgE5s}4(|D9I&4i^(pws&P3oeL88kXo#e#ii_tWIAE)!(*7;=|RG)G_&*$wrC0(|?) z$qu7FeU^U|99@U_HG_`2vgZffw7vwETd09ezebd>{WfX;eFSShPU_%zWv+X}Rg91y z*#%vR6xp8kBsx31JN_Fi_|Jk5aUfDI6RpI=7dx$O zBeg5F-WcSRRYJgagH30@;JYm%qA-U_ZOmWDt`Cx^nusA&7fn_dF_f6&cg&Z-)DbcC zWM%izO3QVpi{_@0X-@*&i`QW3hS@ci$O)vmF;k~BPc-Y;0StfB70%Ke#Oi2+i?!T` zvd3>;b(X28?s=O3r0JE#S#Rb{+Kx?>9KdT;6tIga59u1EAvTiN4X zP_Rm!Mp5B)N)MD`^7T*2{a3B+og6qu$smbZlUX=)F#55kX4f$uh=vC6CT57<&p?z8 zv_Hc|gNfK*;0Qklng2TqMe(X`I4tO_V46dV^;=bb9gC6NuYeOw0|Cm`<~u<`DH_IR zT&#=b)DAwED-3d8NimdJ*x9oOmI?Dkg^rHn3CqiY3fGKR8bb}B!Q#Sb-}|9&X1E4b?GQZr z9e4FnQ%uGYy)Org@~xH_fxIu_b1jYFXqZBD7jv0Srt z$5k2j1E_R!Bb>h5siq5}IJKS$c1BKKy+)hCU>}pt@+MyrdVv&)^ z_XmSux!%FDG7cz8tA~G^q5lWczdj5g{oH34L+Fn<}OWnhVwQTlHRfuBwGjlvtwTQ~2RLrR&JLSYqNwuE<&8SSw+* z?mW7wBHyPhLeHK|G!?VUNsW?X$xLS&0Dzb*aApW zFZKFE*+Kg&eEE*<@w-OFVZT(T{WHX9P$%i5siJ0?A2hYB)JCes&LJF!{ct*(2?IwpQ5j{2F6YD_XOGLPTG=(#lw^ zifJ4xG9rEM-c|BdCu_dPrdeB||8RDfz(yeK)(r*1j_-?Km|C19g}I8|I|TAs*fYvR zYS)>2nghi(d^SsV^cIx@4SNe{v*2Bp4nIHw6hvG9dC)fKhjX8dZI_*`S^x2vKDVgj z<+|NCE{RK8eMB+vv`-k}u;$wr&!-*SaoO!g}oT@m4EfS z{crju&glul6+wW#pdgPpD1e1eRL+LJZgkclJ3Cet?_%L&jzk#Wisw6sfp(kg?MeNh zTdnYj7`U31Tv!qQv6*9PNmW`aO9mrO^4Uowr9=!+_BmT>+Rg8)aLn8TB%81gvQ};ntX&$ecb=(-> zdMpFG=k9wQV}?{$@hP;RMDn`R5356|_n8=gOzFNd$E4*fuN=oK0&{UT(g(+r_K2kV ztesVhpOUUY$rH;&b(!qB{{$a_M3X+C5vA{)SE5TJQOpMEImkrLTi6;BMV-GHk088> z2o1$a0ydozNDe0U%vDc=kJoq;#uvI{R|1Pf(!SfidetZ*amT^W4+%nCW~~dYPpV|Q zms^e~_1Nyj!iYCxSgOo9?E*h=N`iTuMJRqZE%u+pFZ2Rp5S*R6uIugkoaoink|Uxi zZr{*-@&%{k$BvhG)Xv&Xn$XquPwmQ1Drdpm*>(0yzlF!hM5n zy~v7@)5*|o89gfg?vX1;gYt+$<}IheW>=I@%RrMe=WLatL1Qz@B}5*XAGwbiz#W+1 zJJrWy>UZ1PVn_OX6m%B-0NaY(aK7|@A5*V@^(bqJ*=j3md!b89g1a;grZ1(MPf{Yd zQ8hS;VYHs~t-an|$s{@K^pTe|ZsWB4u%&DhokxcY(o!Zb6KmJ%bHug468z<}rdqInXKLn_S0#K!j(mT@}q zAoeX&yU}FZ2cS_HE zf|k7f2a$#`pFH^wqJXTJ1ViY!zqgugd24INficJF6#%le15OH%Tn0YUelQ4Qd7r&> zsvRsRY0XiBxp|+1eL&&zB_Wp2paUQdT@T%wplLb}prYWv5zmSPEMb4)t|Q`ab4>`Y z4JVap=|aJAzk(0P5$PB#A&S`W|Gh9efR_!~F+E<0I~qiv(iAy?3V(SKaSHy(;x`TI z!>txD8kL5FCD&y0R9O6uQ7|eo`meH_;kCSE*t{UeZ;Ff_CRG*ILwh(U(*(=+*qyMjm0lz3- zWhw6`!gjAN5~tt(>ncg6RrRw0Ias8S@8R+AELq>$wK_04j3qbY!=!mSEohU8`Y29U z;tR0&7(zr8pov5B>ma_-g)2d;Pvc(oe7G-fUbsEOH8<277y->BA^a{^$Fjn*=uQ$LFnH)14(%tk(Gz0y+@M6G#5{85wR= zCC#0o&*zVWGXEL7v!jy3dhaqjdlqh*C;~SIbAmEc!cIW$lLmp-Jxkil!Cds!zD3DZ z(xVXxFc{_8=nLcv1;So}>OFMR-{y|!ZdTS-I@3_u)F}#HSx6bDn(7Zwmb?>-o%|}>LLTA*X0CJGk(G5K?n|#u0TJr~@Hx)EPQdrt;w>q7U3R_~BFdT1G_F?ob6 zc21~RB~tTCJ$7Ht9cmy3Txwdk7sDpDaans?+YrO0QuDq@~Z*Q{z|O8 zPfr5t0D>B$d_F1c1VjZ!BN`IjER?B}Rs(@#E_$s*;okdQac5tkg}QOnVsfbMwEb;J z^_PCC4vI$$c>>m#xW3z;!|g8lM<$#~=;$Y`0<~yW=YFB5ZYO_^9_CSi$IVsyf3qLR z{@Mh!lztL3!~Xlf`9He8JD#flkN=W}c9e!f+$)ikL^2aXwj?sj$R>M_c6L^>g$N@9m-m*4ALDxdG~_q%`O@i^Uk&ilOIuRWeG&w4~Iy?*R!zYkR`RXHyo zb?GknXqKK9Jls++qYDLgl$*s4xyltcYGUY)Zn*9N9F}EWJ zMb13)=8qC^$jF)uQl_}>;E{GtEHJw$O)b-c{e~4}0-)LxmSjzLxj$K|1Nu)D8_g0hYpA8pD37*z{Dk!I^Q3r6Tx{K3;YK2Cx8&OAy_D;qP#lVn#mV5 zJIG&C=rDOtp20HAujg6+($7cxj%~#RDNlK_jTdq+#~@|zv+mB$m+cymL}VPBp!&bi zs^>%B=7H)TVWp7GU36FysII>m%drr?o&FwHO z*#e!F%$VScps>!K7II&?)IwPM{bk?Ge5SYB%e(C#4E%Vf0ZgZOX$KyQ z0};^^t6E!k12NY?FqVGncGPUFJ9&iYvdU7)@?Y@|fmYvrCESocJo^v*0L+*x&(Zfj zK-my{@je3g5{<|YZ6x%_!~r-%7bkHP{~w3Y4cpeID-UIwzhWqxFHX7mi{7w>Hr$l273VYXFn9nIT@dN9_sw zW>z$hY;K-d`J7w}0htdZdUF<;+y%Ko;(rInhgPvTt zxe*4cCQBZNbHcZscmI7aGJBD40SkRV)*LGkT;I5Y{MlhlMv(w~UO4D_nYVd35joOl zZlYD8qKLI$yu~dHH<($5F+)5txVLaD;L1!B)QO zWTN>1{kq6kJi9AYHjRp6tB0=M`?Ju&vYTgt;Kz+ui-v}~@csY$YX4ml{l0@}Qt$3ZyZ_x9bypTB?<537krD8h zsY6$0>*mOr#6$@Mn;Jf(2b*X1DZYR6 zl-;3nA<-EgBkKJB*=G8qkY;`b4F=VrwG z!}h7(lQKtc7|K!3Y%=ZGT7wz4%kDtp%0sF!SZ?5Bov`Wh7?eKUYlxTFhI&y81-SQ; zaHSh&XX2Ir_lrI>fYLLS;59QcL|5r%IpskFmKi}(cULEuhm&Kgp%XGf7+>Nc0ugSe zM^hcwFQ{{g%yq&)VVrs2%|r?tZb|W}En7HaDexBli!YueIk> zD=XEyz}xnRR`>l!Fi>ygr2o4EYHuIs_2!(b8=$Z)ap-nR9?k(w|E5U<$|GBDmSN~3 z%LDK2Y#EmJ{%uIH+d42hYJctGVxH4zdTxX^N)a7{{&z5<)MVH7;QoKhM}_noyS=71 zxX&a@c?V8CdL4N0$8PdFBluk8?=J6B2>SP(`4MlqNtExe9-H3w7&(Z{Az1^MdA5jV`Rems%1VPy_df>7=Ha4 zO7!TxfzRmANc9`)MGFj@-W>sxuPad`PcjqQZXvJQ^F36(TA<=&|GV@v47+K0gf4zb zxVv#T_#?_shLL?8Q@I7@Il(I|OBQvh|DW?fvs?uxgtFi86m^Duo0Nk0o57|FHg{tb z0w4qloR^3Y05Z`EcJl9;hzLq-vbusE?~YitaV!0|7L;NlboIla5weDQ@#9;)DeXE> zJpaoR3VGd|elT&fkO)p$fbB|s~Icie1c~NuOxcbNEcz%C`n&_~_!_B|JlnN&< zOhyh58_xi|Rk`8ymuJpHB=a8BmLuGr#JB?1*T7V7h2QucV|pV}&I#`%(r?K9lyg7t zIvh`eDMx1AZVO#)RWw?R4jKj-YRVe-inE1gg8*S2qp^@@hHu4wm`Sz92Vet-=Ci8a znJ20>WEcO)(8y_a7jT%p&~wL}xPe1mu?=?BE;{#`GdPXHbBZJ;=n2-(yX+ebvNGcbCMWpP3p=C( zXSSvy^=E%Sit%5sX4c3SuTXf1)IO!A+oVlq0~G6$DonWcEC&bq#{%%AD`~FPPfdW) z_4kAJ0=qP@S$(8+k^U@nZwnNZRKvU|IgN;yNk{ES%X8(^Z=$=w8Kvin^esMwxk7k< z_e-Q215e5AT#In1GaZnlBwiZ(VB{i6`_R0gQdIAJwXhO&N7eA6!oeF>4D4~-wR zI^Jgfvd{61u6hqvp^#vE=0-Y-3ZTB-SLtDuo}IFCa%7lNQFlp6N!iTaTr_GnY;ERK z$$1?F?HUhyexU7H(_fLbqLnKWFra<`73b~0a<@%z$*MGD++#I%)nu>xelBVr=VvsY zlQ1I6{)01zvGR24!F|8o6ubrnF#eVjqZ#m8Pcz0nprB9kmuH@I+ifLf7tFof%KneC z3PedFTgtnyTL449^VWP~_P(46X&Pc!^ZX1u!wY+-beJL&fgq~ylt&xv+VvnXddR%C(Acx3{pdD>ILc3 zM~mleg34BnTQ3;XtQ2`~*B4^Qw)}vePJTz3Y|1>vE_M5o zsM-04Jk*mp<8#W&^Y5N)5hv;a&NecCHat1m*r@$`e1G$YR_$}6FR`%( zPU#4uDoAwJn5Qi>d?ibA3Gc5mj0y?~b=`^$KBaJMHU@|l3^xSrVS`vLk`qUrFzjlL zb1<2O1YxkcqBGJvQEcZ622u>_lrJ$2yXHg-FApW$fJI18=X4t5GD*=%_dSi=W&9Z( zaL93Yr@%8uT#eM=J=`E(o7`1~a$)v*=wi5!EUTIp)_U0}% zI#sWixB#7d3Sgt_2x9>^s~Sz5ktoB8T2s^YrVpci*V!`r1#E|2@IwpJ=?I!iqW2{u z{+v#G0jY?&fC3o4QdKq=5r!=k$b4a50;61p+;ck28OIGVAM;_<1d(MmUlTN+8rjDXfCtWYjZmk3U;u~kx>c$?tkB5QJt{nF3d zbPgrbg-%+uDLs%pcu9Kp+IlbiEcpws)iD z7xJCwOnO5Bd{EUm+GC-R5RO1SVFDaZpIk=dd}U|X;~|-+tDm+r^5A02AqQ9k;lGYr z5t*4*!A#Bk9+HEc9!wChY)LtRaa=uF1wRX z!y`u`y@ZS3jf4I9&&Hx3t7$Fs7e#b_p$_eCEAjA1D9&k2O&?jaTS@a2)j;AZ*(vrj z0Ut(x3EcZJ(VOjH`|JhOb&u|<`S6u|kfmf(r~Z1#epjeG^+ONK?CFt@^dJ-yggM65qHbI9>C(oZV~664du<_RwBMVm;2( zLA$;P@-e2+d4Jc_{XkL((_amanoSA(bpO$c*fzh-3>is7cuK?li|hLv{c#H#OU#zm zG!^)hTLNG&`7R3xw$=aS!xda4W!AEcDR;l}n-_iYt&1jtFbh@u~<_6gi9Ga5&wN zuN4D;+2YhKp{_br36pm5`jgHQ#sY6AA;CoPMBb|fP)Y;}$Fr-W^F~vRjohPYMtoWt z_!u#!0l`K(mE#H7TA^(?l?F;u^nA`hx}D!gk!(Q=N*By8wW){lqsI8qf#fxKi#_b> zIIKeQXA0f0b|L#4^`E;Yq~B`Uvg;l&z(4OW2=SK|B94~Pc|TXC*fPE#Ke)B#c7;MX zanBCF|FGZ(#jRAV$w&1!yRGFgr-UZl4*|yAhuIsTtZSvyxM+{aQjU;=MR?<`Ue>YP z?3$3$uCS1#0ijx+&Di7ib8`^v*}0th7-8|kuAcKY0}2|l^2TXzSsnU+wfif*cxL9w-e2rP*}GB@Iz-TQKV zA=xWL#Q7dQWg#}5=+!ahAoJ86#)~<{LV0Clh@AAARsf?2ue5PA)}pIpHoW6{hc1;> zUX{AOi*2hO3^Gp)&HgE_Y#|_{(#Nvg1&LHXH(ntjE$7#}IG^Ehoe%d8x%cLTZMfd` zdlA<=?r@@9qvh$q;>hZ5xf=xUoif)>Pvy~!9F~^;(WO5nV;jTc<)I7;SZ*>W!`O#6 z&#T>Sw9k62_}iS_U}(0~m2g)g#+?2~Rv%rH;xCi~gG7^cp80k2M3nJGEl|!U z6khye_c;Ca@W9spusZ?tFSG`Tdbum@kzw|?MdoyWM20!kg}flaP&sY`4XjyvQC%bJ z3RvP-Et+H!s+|BtqWVT4%}62s7fjO$-^pQAQa~tio=ZKA2ah(gdvrx*K=|4e-98-e z$#q}Go*c_u6yQ7HmMlI$Z`rBeFXOFa8}GyySV)sNi45+P9!>2VSF)h+M7wUK2aC%% zXedNVc$Y(mRmasGI8yw0#G5_K^EHq$mu>Gfc#%jf`o>E+OZlJRMdjv#dfH85ZTb!R z-fJ3yKjfJnT{~hyX$3aXXO~1|gqc%pSBVE9#Msf%vD;lP@`X^H7?l;w{d+r1LULkC zolZ+ZvuY1ANpBS;Zh{kH?yS>?wZH_-iRSoGu`{ek{xqP76ovZ92;tT4+xzDA-DW8S~bmbqY2riOpi#O($rT{r7kn;+ehskre-9 z;JbX;qyVeHA*)*jw#H2^oHmCR=oJqM3T<|bIgvOhkg@D0GXAFa&9H$yRzShEvJeWF zRVvXVU3Y+aXM}et`Q8O8wM{t0ag(RG6^j@@r$56I2HmjG6YxF9Etm8*?$Pbz%zGBv zVq;=5$_i{IhB-?ZmeQ!7kmCl6WOjbx7n!G3`MWD|#z}?SHrKHf=|^kmbYc(mXtA>k z{!%z|KmY5_*##I(#D-2GJ!5pgG%@H}433i6(6ofD7Tw@tHC-F1e&W)gxjRIG^4VPV`67 zWZ<}FF(h6$q{{ng6<}#1wPECx5&A$KM|)A^7;fk@1{%w2X`gSqDc;}%!ylNASsJBEXOx_rZJ2PS3r*x@QzM@OSBFmS((YjEA zHJbpoHjDQT6vKbda}T+o_0q-L?!^n0#ti?V+(YcY#vR8)j~-_VR2Ml46C$CC@B+Aq zu?vST7jS%!B=Pv@C%a3wDkvsar!&Mz`6A)!MlUA-JklfZcCeq4VE$LmFyw^a>@ zHZ_n`Jto~*vbt=#MFe9Iz=j%`Oh;TtPl4U&G3nJNi(Vj_o4E19(U))T zh@C=G+!WK2oA-d@#yL^1v4wH`;k5gnYzGQxyg2xaa4s<05%?XLqQz%EtYqcuW5t_2 zi}Eu7FCoiv*Mp;Djh!LREtP5-&P1+wOy-P7-?u;*H8O1CWJV8zV6KhLhlMfY;{eAd zT1_=&@o`LM4vo;f$5NHfwsuQV)!(z5^gQJ)!Go-?oFO#6DGGwCqv#a67ro6 zva%WC12QcZ!6~C_4+K*dKSRkey);Q6rvmKVlGEt8wWQO`aoEhqr%7$|&_}jMk!Ky~ z3A1iF-3L%LNgcbFWdky-8I)A&p-O_K{j83Y_F&(cuW8|L)%_0nQPNa^gwu#eyphPGW4>CBA$|_!;&4<;NNn(fN;YsKC*@On|JcH zf9JZt6z~b|jQlG_+l)_us&^5?6rG@VH?A*1)Ds!PAG~)-U0YJ_35<%`=Xvmc%h?4{ z=+}v>&?<3W$Ae^-;Ah9aJB~N4b)!N>mWH0!%&2IL2WFNN<|mDbqOR+1nhaSrb;(!$ z4DIZ?COrTlrFKV&;AM{Uc|qSf+6%R%u1SyhNZly09d5kkkxa^a|nINGSBV_EuJ?0#lsie@EV!;E%308lxsrv)nFGT60Ao5k5eV1L^Z>3R+$JMaL>GjI3~;mv7kE^9ZXzlFXPmu@9SN4{`_v^tZ(Z7ET&$tC&vl*hWZ5c? znGzrzt2tkLL}4LRa7cwJmt>^vgjkLm>E7p2>X00Zj7oAum~s{Bra*+@hMOCQ>wX7s5%ZE0Mt}j3w#Y-T>Xk`R!yG5U}HvAm}!fFiLX2w(p`)7^Dt2xKC8+;n%sEbt}|^oc6OVL{O`X3E9TMeA2Fgo%$ma+=o8p`g<&XVU%qUduPfJ za&Q%9bzK0ej9jn;3mocc_+%tKmS=~Z*6d+U7wnx7%qyzvyFzT`%=isPU%0mZLS*Km zloD~z+nq7T|M9LUlg~5l$o;E4bGtT~qoNE+_r9RH=^;rYN&_Kj9>lI(t`2+Ac~MZX zb9NOuMs+snB2(aGRw^Ccg?++{rE#}RRG{)FGM6wTlReo{;!&br>}=O$Xw~6<47{~S zzF5JX_ww+P_!mIVNb>%F$XU(|XWcKO!s`%&dpzo-Vr|2B*Y&8^3Ig>$>uzoR;kR9l z4;BHfkm2xr4_hkP@Q}?slR1x?G}FO_GpFr2!V$dlg%O}@+@{N!^kgR&;{Q23DsJK9 ztZ$u7US1=|YS%A&x;~b%EkxQAq-y1SC$INSIxloNz%WiI3D*C0eZR=%%O+xZ;B6Gu zNqy7aiz#tfaAA<1zYQ6J>rKQ<<|2E5Muit934H4L=FObSsJ_$snuM|A(!!^rHIKO9>JLcHt6GMu+4({Bfcu^mmVFaz%QG_s+Elzs!5S*aOCkZ`?AUQc_ zqKACwIJpgozn(D;VC)b#>4m|t8aq?H>5aHA=2xNK?3_B11DWx*fMVoklmzv$R=%rb z7DQVVMZZA05h+jl^Z7s>`txQTe*5;%n0bjyG8tBIU^8F#iM&djjYfc= z-RMqPts%vBbetMc#+ss%Tn%2k9F5HC#PzmV47GE_IFp7uUwC1Q3RhWzd5K9gyUpB) zYVgzf2Zd`L=4&v%#=wL)v3mA{(N|EzgC{PS5RG4UbR3ye;dXQIKt@n;u4&_yM?>#1jtF#|Rgz#OsL|Wv zN1=*Qg|o1wz3Z?EOpOxNd9rU-=HmoT_XtUuhl1o|wkhkrzy8*EDD{6zL_FX9of}HJ zURf5pA1%#nhmmh}Xk$ZN=FI&*UNlWt@mVA;)cwr-ONPt4ZT&U7^kMO-I0|K?>cLWoL4$ z7@l!rf8ph!T=Sf01EL`wr>qxfZEPYq4N(i~9f>5FV-u_{Fm%_TGcyvR>PHD5TxT1u z`RVsrc~h|6Eu`rj6#(bVy`n_ziWy&4e#>nrp$Erq=+ezWzYKOpy8#lAPDKP$?}g%oQDw?JOyI+A^BLkl>e{tT! z5l_Kv8EXyLKjYN6r zS&|B_O+CJ33DJ&^znm-P1!2f;vVZepZDz@;^TWGsS>yKXca0^Efwzb_Ho+%p1}ivd z>N5{X6Io8Wujrsx{h3jLnr_8XGz^(i8jO|YMCoG;Ro;E$f%@(wZswydMY<jSlC>jJ#4wUSdYpp58;1BuL4f$z0B8wr;VQ ziR#%Fnc}^p%-)X@l~rV-p4B;0s9L4&;rn>5a=wr=t>c;Mr>8K7n>0^UC7gVDz-yUL z( zUsW?&nB{EPaakqF5j0Z*QrU9ubiB?2VI|UICZ%s_YJuI#k;@r&pSt7Aa^iBRlq^n3 zcgelXS<-sJZ|9C1%>2&y0=HIotc%K2biyt1qKN08DT>igCi@G&3VSo}`vTaI&wD83 z#2=DGh#y6W<_%s}bWbRHn#JubJ|zb4*$AJ-#Q~5rs~QK>#tw;Qp3O9qep6l7Ei0Q0 zfbw(Ef-9iMCr(p46^Xc80&}D=HV-0*O&8}tbmzVtDv>GAxG!p{OPq5#^H{1c_T#>e z%kxmr94fLx0Vf(y3at3D_L&NOv08K&PDJD z291D{%%6NbI#q1_^@DDB;QkUFr93`0*H+$_;e}&uti|XR9j=yqcK7<4-T;yA1^0LU zZ|-7#2AI#bdXQS(ER)%--0ATyZ5?fvI*XqVKP@1{p;`VOeQ1;>X=1vIdgDc%t>z^2 z#qSjwT4It^&~*WQg8&0;-7DTRwYpf`s_l|Kh#s4A0fT$Ucq#C`P*7RL@{t%JNeIeX1rqbEtI5CUR+cs*T z-kc@!?lVQG(j~*V!!~$}WaXDPCuC44SuTiumnNprkW+!<9PJKh=YYB)K4ZtwY8bOy zGM|%aaG3Hr!AE~QYwr|MPW8#Io&}aAC;wZyi`{{WBDjTI++6w(@tkVy;OdHLy>R|2 z|Am`))|aiejH+HMHaoXJz7?B<|41`w*?Vh5A}6|M(NyCGi#wnH6E@NMS%CoWOM|JT zmbwMCOPTkO=_S?A6h3z@Eu9nY;|m@RYnhD?>ek%I z1mtPVGtt{n9znr2?om{jGjj~!02!0j7}q>#9|LF;7f9u^T1AfM-9R@FgCP{VxF&T8 zL`#s!bMYnqDnh=EVMn2ZrR6Iqb}zj@Y_rAl zUed|KpAwgb6+9wvfWMf`xbkzmv4H`Glate}XN~2GV-YjIV-a)+H%oI1gZ-T)pT#hh zT7D~DN2G-%D7)f=jnD2r?@5NLbnKO!&PAMQ7=BQl1lBNvcnqHcBOqMU|^R8~w@G)ON$xmJPsN+4Zf<5D5gts6A& z`gvun=Emp7?^=JkAj?(nI{V#)v2^&gkpQ+!9)oP)xh_OKpio!-L}NTZ+naG-sB~T` zj~*^hy{orz!w8PhHtdfh0;qFZ_Lh8^`%s?05atHt#{`LuuRKAP_vVZapV@}HE_xwM z4V$PuU}(vT^1On-XbLg`_2mt@0QKz=&JDT5W@dpOzwv$3QX}%56EvAWc74pHL6ydZ zBggz6ju{@q{?}o|+<=8Fwsgmlsf0lZk!+@rv7K9-zQJ1{X#Q$075eo9Ig+yrXU4P@!#R8o3 zwLg1$W&kSs&dIJ98G8TCT(aC*nCA{o53}qHw|IB#@`h2wq<}up5n69waTA(2Jb#@> zHuUa#rTII9#0>}R4%JwM7I{Z)|LkatvUD|av~Y%JFoSbi+U-yh`U>!YVMU%f`kw0x zLmiXuWz zI6WceM4QEfk@OQrnHSCvRH2&~1yxxoNvE6&t^`b#OAc&Tim7e-CyWo1dQBgbl~1P$Ao% zv|g-vM<_vj-YJM2X}EI@BE4@x7QDcbzM%}VUc{ku{O!-39;b! zVPySHzVtq@A7O{_vmtK}qwb_TkspZqzaLnL4MQGiWmu49a^%lL6%cWeRhA=wmC*-= z$aQfEccDSo<~Rx7m8=8=l~K;NxF;+Hcy=8vBQ$ zA~L$!F1$RhH;72ok*%n=h|&tUm7EZ-u)sW#}vp5SA`hm`5Y=P8 zE@W)={?xkM5g(5!4wt#5k^lEudCqR2&MokWIyaHQ+~y3`qysUr@yoxxN~O;`a*AcA zJp1V#lIYW(25&4iscWuT;IiH~Otod$x80~CLIT*A`PaON++=cG7gBNlN+;L%#PdLo z3$`11aG}zb&V{Epy8v8mI9#I7*&sRfK_Z{wa0vS1SV8f_6a(9=&O_kF? z*rzuLTQ&_$yp)i2qvmbIUsiNnH>3K_F>k1zbDzOrO4@K5$j_BchK*M~y)HIw+|KdE|sK9E!2U=(sozzJ5*!2198PYzS@(ry0(P zU-Lhn!Z~ywCSMV$Pk7=vc&I>;R{Du+BGEitYB{8%>U#)W1lpv_ZfcMWLn{cTsT5M*qRqT3r)CF3QoEJ z^>^!sw_CP-i@I!=I`feo4NwKEwF*Pmj_X0P2u#L1>_N?%J{iyq#*z7oQ zT#`_2Qzz7V`sO){x;LsPtB*I-U3}X^k(JrAgd?mzTZ|gv$Hd6_pAcv0Q0?4!!*YA@V=y5RQQc`$nvlp2l;kdwfzjt;Tqz(XUv9Cw+8QbT7NFIO;sv(&9Zyf{Gd}E<+T@-fkG> zV}AI!I)^s}&w=q2DCOuE_3N9!i?$k_rsYmMYM!X+=a*1m2xH;OFm z4U)CF$h9)z01_p*=$waSqy)e-0Oj!Yvp@I3*wQ5pQ!&x_V{*8(e!tYXeuX?_e?L8*ru2V9=xyUh3Wl>Uz`w~Of?;a%xohQ zPw~BLAL_59Llb*1W`*8<;IBqEm?OEj6O?k_%WqNZnb4a$T&GHP4J8`J1sE<(_fVi z+#RqBxxP&0zXbkbf=vFB1zU)yl7~?|Y8zePwxWZWl(rTO$rChaH zP&sK^o3_~QBSm>y=~BqyamCxz>MYX3`8I>fTs;mhoInMoeU~AXa_q7DuH`*f1&Lvc zT{2DX&xSaj3+K&|tWYT5mv2J3y^L7A+FQb{sUe&i;qBx$^N~-5IzbqrD1|@E_Chl@ZME7^f zMm?JH#xkpE?t{VR7Cjvu3Q8}GXc1-7u^>S|yE0RktO5^qUfXbmaj&~w@nWYV&cfP~|BRIgL7_yo^ERW9bM~NEMAk|tB~^pY zeW+f`AhNZb63%SZ)dREIFh!Ah!=|zN=rVsVkl#K*kh~x3wgt~!^q+`=>{y5U1;lmp z&vxytjb_P^U8Gmr_rHdJFpdz7GW`L1e9seRy)AmAO(Z!bB3{Kxs zN%X0jL#;~%^mRLcj)XZMSQy~f#TUCx7^dB6TIC` z;r;xoUiuZSeKxA27v7BnSv~{%%w0&*)sX$}-3k+M`uPUt{4(Z9I*(!=VcReJHbxbh zM2l6re=<2^?soFmk&>NnuyQi7QMpH!+l5VuPp|vlzF8G8uIcxBTkqq3)!y9Zd_{E^ zUtj!c``hAO82{Y4K`Vo{UhdI~(KOzSzD32Hv!-~0a_gI#0aaNO{JIZlB=a{8b3O|q zJ?#Bm{e?}PE18XNje|tT03>9Bf60-`DC&|`eDKe+G-2uc%!aQ~36?E9r*b&(JWENe zh<(2LlXl6>p-n|ozk>tN=YaN)UYnA+q^tGXVo zNADe=dc|vH4wg{zt84V*GH258PK?qLHXTo(pv}I6!Si^tkb~VM9Q4F3`RwTC;?;W# zMANUA&zw24!s}#>Pc`2!GTM^dN?cp4HaXgCUEpOZwe~gt zvaD+1{wK56v(s*o&*vPWc;VW}ajzM-3t2INo{1KP;uH_HGx@t-mfUQj)Kt~!gpo>3 zfh^ZFh7W(sXWY@86JN0RCP`5)EN5QhmV?{QW+72Ku10LC+;h`=EBu4U&JPi3P!}7soYf3K)$;pD?7^l6JTmK+Z$JPEIr`I zV|Eu1vRlV#dtJ{z&2slhAE(ctXJq)1XOP2iJ~L?~VdCESC8x|8)9YziJHBSC=md)x zBj4g#YeC+lX_>pNC+^c*4~S&)J+~Up8NXgz^uR<&7hi5gm_OdvR*@ywqw2t!I&gir zGl5q<*~Hzxy2iB7+=TlX>-=?1`fF2dlk28bT#A5jx7j@r6iP^4TN?@EWE)yooRzy= z7li6VLLAN`ejb4`iw+BG>?ami2+2w`p8yW(_%~-uG@I##Pxq;m%;;8VuN*?G%~nDH z(^IKc2CsEaD`owlcu?!YOi^sMWi4Y{5elp znU{2OJu}+06$Gcmzc-9KR`Cm49~W}AZPF*nwd6!185-W70}a<0<-oL@;6HcDL5pR_ zEHpM#OGW>jj_OOX8}HCK@OwFPZLTE4jQ||qL|CaIB)W_D)EUk2(Y97B`rA><_ZEJ2 zFjL8{@jO7hq3fO8+xl5`6P9KhaV{c1&Two{JJjm?}(pEaI^;+1L_}r$*h0dey2Xe-RP{x!tL94BE+lQ-MSD{=%QN2m9s( z>axPbySuWR)!HXlN_j!@jMKVRoDax67BHS{ndjG=NiY}6AeEkfs>nx2L*U4*x9V!U z7CaS=^u(Q<2 z&XS>QlI%&twos!Wj?Q5q7T{3V9aIKkp6dg1p$FXVHW)UyEGqf>l`Y=!4d5B)^26mN z$2g}>PDN;!Z^O&R6>B$hEkf2y5E`-1Ts%YyL3FtRqv|NljC2J014G}uSDg>;7w?S< z9rPQ^%i6cnua^v7&GCbtMP1+bTg@5PLfy+l@r^A-g!<7uTVDlg;-FG?T#bIxlv6R4{c*6`W{%Cp`I|)cyH@NtcH(BeCY6YJ$U7c? zFDz}UeN%aUDDAh?Cr|i3b(t*Yn`6o7>gssA!^F?t00thYk6*VqdD2r`BC?t1z;Bp< z7TeKcE7apQwTh+vo_Y96x6Vq>VF8N4M+KPylL(Cd8rHKTu56G``mE4%JFhz5z5{Zt zEHP@^a$>KY|3uN0QhDLmxfrhm5xp1Vrv8gDUCR!-krJP9Qbh=URr2LWxZDg5+j?x9 zaDd>n6vvY-)_dY#h-o%O&K4uljFRHByGJ@SF#^g%2T-hd<=0f%0@!ZggWm5&xL@Aq zeYFSE?Py7^4cj|yi&&Rg@FRQ~;A#?MPV>VX>2S=C$6^qa(@Bv1jLRt7OSZ zjz@X%7N*;I>rIU6tT`v}b69Elj&oNpRrit$l2G*_e{)=V`mOVkDUV0f91{EK6E2h; zzoMK^u{H3yqq0PtOmG|)aajDeRE^wtASK7M=lz+}SoPX0Itg}v7|z)dWYbxW)1g0i zh~kE2@!ZW;f>+-Ie(5dGPM^xxMhj4FJGG!OonPm6b}r%UU8Cmtul%te-_cxoUpkvY z!xJL^0Qn<$4=21V|nf;zJg!f&KP2l|mefnDt z`%329MZ9hLUA4Igrxu*tUYS=i(N2f#CnOjvXI$|a{Q-#Mw5W68P#du{*LFYL>erJK zX&@Xm!&~_T8(J?7p=;#I{d9L{j<0@OECQ}!A1!{wW>ygRDj`rnA;Fm9aZ)P34}Yx4 zyYZ$Z)|vAOCHDK>zFF1a1bWC;EJ*7)O!QhiOcOD2g`~Wp1ThYw*tcHxo1?;VYe~-TY|i z=bf^doqg)=*MYr@{@`UGs}Xq!Z}!7GSt9la z`VhoMS1X(8A(A=s(ST-x5|#Z4==nLWB+4qpz2Bey>yhtq-p&EKC3hx{f4Ym7kL_bl z&Y!uP%DnT@bf-<-@b-x-7h`RXJXIaL?BH%v5-)e+N&cPl+k%>~`%DXY4z&7RNmp?t z9M*9?-$1_}O8y6QbA$zR%90E5p1nIg3t6eF%T=kq|Jb_5L#^mlHeDx7G;@ZQUV+Rg zs`-Pp zvjj{`f9-)7iCE(zYoa@c-OPcA>L)(J9XU4B*2`vJ&h5nT1P1>QUN(+I%Llm8;uD-N zwkre++DBZlII4G$AAcEZY=$3M^wB$SsI5D@g~Ni-8Mo8h3_ZVgZeFPg%U2$dYEv+L ztMP61`C9(%F6Ieoqm4{`79~c9oufH~jU|ent)p_)`wSnY*a(upLgDWT%iG+xOzx-u zl6lAj3CA7Er_hmmB>yyhr?1n`2iqH=!c<_5jzTT)PQLVX`VQWam-YOoj-V;8FjKDr zTI*8EnvZCJ)L0AW&jgtxbd_%k)2~h7eCC|SvML&(QK7#U>m?d)vNYwUM{jpMq&1+k zw6@Iwsgdg~ZPX0xoCGe(;N1O!_Brk7F$&=X)>EY>ZjD!&6e215%(GA04HB18Wky>> z7V_(wv2#=T*8&*iP?0H=F}?209Un)!IVY|s_<7l*bN5SkvXql_RGQs9I`QSja@kfV zCwfz<=<^rWtO!~TYq2cuB?SwaF%m6jS+ukKdYToiA2|v?*YBQ+PMbu0YMH@7&^!e7 zTEM7@bk1p?x!N?CWN?aG$@fz)FW#hIHD>bpYFxU-@#REMGG$u7qZxtNG%+ zTO;$mlK7Jy4+mq{xkTYG$KGr&9ZPnlFkh6zqSh{tZIBF%YG>TM<}hHd;Ln z*{KZ3H*kde+P{hyVb9%fJNw|oW!oXz-bW{wKgHMaFVl=Je;Qd9vKj0vULHxKpLZLm zt@N3zksIkW7t-A;*{pLkbA%`%(jRGw3-98(#dovameG7xed;Jb@vV#nVKVCFoSvVm zht);NKmmCrFDT2gbnT^$ZO&H6n{dmr;NR-6rzIaNOiID^i;$W`}_mz()4qi zy}--RQ#8qYD!uZ^y^EHZ0i$9 z>@J8-@to#RB8!aRkg#>6+pp0x-$!qq=@}^X0%x20yrRf%OUN-f~#i@P`jK zOGdN13=30TqWxQH@fi34Mms&GqgE#-o^9Z=#8B!hk2#)6>54M}JnyC3ZXVfR-I^8xYtc@?m)4gQ?U>eLvV-g0- zo+5TnoKb(1*(YUj&!%WkxyPCwpVdRZ4NR~*KFOgq$Yr*{{*ENu6ga^Lt>V}d5=?}k zEgU7`7yLmuy&KclHo@;q_=quTofi2Z-vOi_ez8Q!^szMIQ^s4UX6(%O6Q35v@|pO_`m5_ZYK@closv8jNgVUar3&1`9y60%IeFXT z+*xndX=b~>noTP^u7_a+I~S8&c$=-9QC(I|76ZblIG2Kv{fN=RLK~Fj$m4CPLeu_( z{3@aT*1I`FcM>}`!j@eD7`Ai$$7hNlJ0(;T$w#|&Wv-H%BizZRg|xE&aVEy~Eq@u5 zTtSb8A(xm~>Qzkf=UgLX<_>#%^K>U7=A2w&We(`odSP~95x;4j@Lv{n8pY5ZIv@5#Yx{-6n5RHrb zzP`haC`rnZr`w-9Lz#PoBzT>>!zC%JOiq2A;$CdpX_e}_d|&-mk7J~x)g5Q!I8;fw^d^9TEJd5)lluc!-f{ z2(pf&Luq02+UF-_Ax>Kh!zVu4N_B1VN zpbKX+vwBx@o4t?Aj8}7ofdr-0)YH`6PYfG@_HSic1RA9nTpqc&G8J{%ucG69;x6aY zNx7uDG*>OmbQSlkXdlN>$UjgTF#syc(r*_0Rvbi{<9za{3YiJ?KW@>og~cRcvQp)fD}4)hmrQXb z&PctlZ(U4uyUAc&T@(4=AxL982N83;lM!#_Nl^!rOOF5$z zlTw4o`^8n!iihZ$ZvKB;)yU8Hm#ExA(KM5unD2wj-l4@O&e_FncaFX3jaHX`-Nh$(`{qNF_64Zk) zE6rOSo~=nOE8MdtOOh4g4IH{B!=M=a6dlgaUKNLkj zT$jsJ`5iH8-N#dV?VBQ_6U9gVrG9%87nF+d&cN-|RyM4=Mb!Wu)i+*Gszvc{^2xqP z3VV|bwCE#%aXs5&QD68oD$tz>hSqmBotU;W?&WBo_vyH_XmhhO{=S3$Vp47SeNNkz zGBXkDd<&Dp7hBHQQkU3~SEWI9%|ov6mPd&$H*Ssx zh#p*8C5+C>8{%pmmQCSJW_(hM1@Dr?r3RehH_Tj`+njf9X)|5>i#sOv%yb-`}pR@_y;&#Es51Q~2H2<_z5j8KD#^XcRw8&$bOe%>wRh--kd9CXhSj0|ig;R`^tS-JIuijG^?bL*ET9AdobV zC7h=n7i_g6%^o!I`8drZNxaFA&aCwL%oQk=zU&Pc&N4e+&woN~?`57&3wIZymN2lt z--_$7?N+9Kwl%OaySss&!rsc60_*r*m+aXyzT z0>8fE9N^wIEPm&7?^DgGA&?Gn=Tr2{)v@L4;TcK**5eiCxB9yXjH*Sc+l)KtlXzS~ z3ZEtupesjuL#@?TXDm}9SJvw7&7J-&HD$uzn|7rSjnoowmq^-pZ;ZJzO0BZqSzi># zX=NbG2Yok_t6Skveyw-Qn3ihbg2H=x_91E)QPzT zo9{?Dc`w*41XK38Fg?kQ$vtu=$t{R@QcCHh^VD~(+0^6R{R5p~`1{|$3^aIpL;Gb~ ztk}Iw(toMZ*DFYkuu)f*Jk0QqNJ@LFYAVsjexAU?f&D~%Vc^7)lJlybrY5$-(YI*Z zli}qJ3K4SW&iA8>ikwkzl-Z`O$YlnDH{^VC5-We=$@~!@S$Rams4~JZk+sZbWL`N{ zoGi6$RjlR|ZbI*R>Dh1$nf?SIz51kGp&qOl>MCSi3=96qqvUq!k`?hHmvb0OJo?#9 zRQlX#+L==?%DF>*pCws%I)#B~&yx+$>~_MzIkp05KB6B8tS3#0eM`={+ zG;7qcXvddB`NSx&W5SPsNAD=Y?Gjyn4_x56^w15X+A}fkYT5!48Dm_EEfcD3ueOJN z>`v5L8i;iZmlwBv_Wc6)PDUo7a!Y5d6lIt&)??#U+p-^mWOig~YX~MM`TT(EDzD>9!-18lTy$l>JreeEH}KtbAmy+ zp}}EPUZD?C8PxcZ8Ftpu@~ z7p7u7R3a^dozAQM#tb_#yd>d^{E2x1EB_P*u1FwQ0dQHA-~SgqUECPjJjO3SsJn#G49QaOTi+ko}}#mdSXLmwxC zo!$YurwAS>rRvnQ4G(;EsCqRf)L8gluH~(~4i$RAKE$$*?VpbzYF#>Syn<_hmn|!$1vUL!8trO6(0KHQdZ;NW+4!sRyxycQ3H|4MSxrTG9Kq*FBqeM0~!Y8X{((9F3RpZyqmOO^~6C5XB4P7S~lHPay|_lu^0R$C$-J1R>r>e5ZS%FO+m82;?2Nk~=C7%dOa)=A zi>wFfO+DXlFu%iq@t#m}+!WSQenF841v;;p_jzJSInf`>- z$n1QI;MHj3h^vNAtsF-7TKx7~l70M37Io?5@qiB;KMsUba)km;!`|KwCBzm~=~|co zCQm|Y&0UU20)S}+buBWzWpK=0ga;EG^*4J;mV0K#FGk%P z_|-4e63Sn8$cW!HlfJG{x-dx?(M~D7(^<-T=SF1*=oeoFfFBNi^I3q!N`CPA`KVRJ z#}_XFdQ&5V9n`ROmtr@?w_Ru{7+$iURlu?978&%mm!~w^y*>RAhPj*rYgMlAk|O87 z!9g}W$MOaHeSu{Igm9`MDXJio82T&f$>Te9LfdXjv*muQO_M}XNZnpw(2})NWZ${5 zGOl{9H_`VMTDIu(I@bOWG#f^F)c1X)kqok3Q50z9OGSZZVB zW5fGCagV=pzI_Gq`WHK@+UH*V~CpJ1)sc@m#~=~E&<%LwA_%takA0S8>9c8cY3547BGvy&aiv zMKYs=x~+_qdE>b|Lsi{JmYD)XIeDndCr17-}kMkO`5RBvp0AH}2ME8f%8Z;3Q)v^)of8XS{`}uiia&s3Dt^ z0cRt_H8AI{GAGl^||VoO5cU|9Z>~r4~xN> z?h)#ARAZVBQ8Tt0<0(a{3Ez3=tS9G26xG=I8$#?`YeHYSkWb` ztx`MQTc8t|zb&T~l(i`)gaEp~2G$JA^-#%ttM-1_#xyfYPj<7c*{h?08{NoO0mj2| z7l7}?31IbEO?h9DOlFTnaetp@{tX0mtxg#-!+ooxm#+Bc*sf`lt}8v!pnD^(U2hdB zE66=`SZOR7G__0W76|ZUm*kD@TlTO_G%0`be$l$=An<_;)Jn)e(Binmp2wN_R;<>2 z0@9I{MJZDC7X8kteg}J3JJ{2BqE@F#tD4=HujP6&TS7eq1zfryBpc!0?OnDlKP#3V zp^Cho2iZG&8S24kqj1|Z=T6BBuG~rw&C^JtS`EbgVrD84l-fy?3Y=xMUqAb|^}QXJ zBz~!`fr{1&M#rphjA}Ch)FG{EB*MlZk6cCdldbXEPaws$ylGu5Nd4mnXJyca=;_DX zlds|X_wR_t&F$na;yz$ce)NqpLUJk5rFSj&W@!Md+cGHnHKSC%&OBrQHBt&7_HkbRz7=U_uHjZCX<5pl-)4NQi0f0cMZI2hF(jZxO!45j0vOb z)`I3oR!4zJR%Rmu(_tEp?%FMdW)dsZ1o#{=Wg!cwmsGff-~{7Y2D6d^{_6K}M*l3a zz^7}06xF)RGP+OosB|Lyr*vXO$`~7OcukXzl)B!azclwu z_xCZw^W`*Z#FldGk`IgO^7#}*iOF#k33r95>6*9O)K)Gi@lICh*aa*M9h@J1TSbXg ziyz$feWgbKEW>ROX@kqC2{w#&5kSv%Op$svyJZh5pve@z^WLCd1>7XE$g_W)rm}bU zW3qopsxr$V5a#|cqpQ`nFWqD%2cJ=$grIM^#jKGL)ySD*i>Vx2-V+*->WohEaZ`h3 z-yBu3e=ER_z4glJY~%XH<%bT1-{uyfK3dQ?uIWqSCzt#r(rblCZ~RK6>P&~k#3#fB zn_l5Nbm!lQi(xe^81*C{7r7Uze^0%&E9$!F*QRDl^YNg5$U4zvB(Jt!k~N*cdoXTC z^nMrb(4`B5WyPplTu=`OLmkidlDrH$)mU8%p(qi^Yj>MS(o?TsFS%gFTxhQCT*jVp z8OTXE;{oDbbR+t<^9Gm8Z)Giq_k)#F{e>o$aAh-xWLrVsODzW4sh-#Tcsc_sYZp8x z(7x-}xy>EhA>-gCFAu7K$vaT1z*2}?&yUFxRM5l|QTGDz>pyPkWHCRNrF4$!ZDB6v zDIWW5q+aZ_o|5D=584$^-N#157(6a2|5_h)%8j>Vo~Rh9UfR`mdb)kNEbaP-nQyL% z8J8xj-xM}}B=g*tt9|W7;&o)u?f;{F-vJQ$S%6b|`>C@RsZ8}+!tt zXBvKPLE~vGSV8abVOrpnr3pl!AU9~c+X*s`-VsNXoOr#neV{^pWtvD@64}(H7aw^# zlmT?W4tf6k=&;V@(kN`d{FUODC;oi(%EhcsW{f+Joy?e)RY|oZD#}7%urRf%(VCrT zZ$Vg<;hL|POl%5o8+TsgNujLdR3ejl`2 z#aw3ZI6##GT_efG;x!eied9oKCT|kq^nL$#97^+Rcd^lfO|K-tuCRF)tJ+I5BEr*tRvC{82gq-%m-XqJ8+d|t~ZZ#q99~S)V&@D70UH~S{6+|_4 zZzPZX)Z*Z0ENa2@y*7tH9{41zPzI$-k!3L&&_OvBEr#_uL`h&=!+@EZ`&KU=1V$Au zUF>=;n`KJB=eF<(J@oX5ajj-mtV!ylB|V#l(~ z%7CM6>&JCelD)}Rpo*E>cEAIKKYHDW{cjI|KS4*Q^%W|@np zsTZku$;)n(txol~sNS!FP`d)Q?o{B)y!r^iq)0b3Fn8CH=M_e@iaWGul87m;wd#_E*4}^B{6?{-_ zLefFHrw)8)py#!2$<3Nl6}MK$$@0M27@mQ?#mZ{{O)fy)U%fS8j1p|VgV(OMfTQ+i z5{JnFl^VUh(*Mptz4b*U4E9_ca57`Q>@NCL!z&4_y_vT9p5oZ@3?zVbf8^+>P`c@& z6g3lHHuS(@R+=}LL9vbrb7~*(~9Liyol{l=UW%H_NxV32~l+O#e02RJMwE|Y6 zoQitW^W7Vh!NOerYVKeVNd90{($7ippi@)6%J63&>O9{}Rehy?nO+&#NL!JPkOo6q zyjLn_rIBP@j`|NY?!R?T-~h9#EtW<~a8d!AF40cKk+ju8UV{?gu96OC{`)rld?nn&~!_RVSV)Q-80_96Vn)q>M{V{J9B;j3nd- zr<7GVVp*CI4@Xf0V>Hc`XD`EKV&8izNPSfgqEhC(>&NV(7ZTP=)zUA?c_qlFn~Qy2 z#kObF2}p|m2roz0KKXTHaHrT!?wgjcA5fZGn&h?*wiL$}J0puCX&=V7Mp<}$l|-`N z4|@Q(kt6D1JDpwmfD^1{2$T~*vaM`oYBpk_>0o4eO)9-hC@6xTZB6aD_M?g73C}1c z))MxgsPmQy&t^L;#$R9JtXmYcj{FyVf&QqN3N371L; zzR9N~{NWLO4E;wOBYva=Z*{~T`0&R6HBiX0|4=W2;Uf0vOof}t@^D0{gg1CkeIT}V zCXoeVTPZ@I!3X0~qMZpOmUAPD)RRrqE+*IqHokLXueSw*&bSQwd`hw>T`sT5at}9% z5Emqpz7Ug)^tX&qJAWgZ-RijkXLY2JxwE42R>K+LOsDg$FB52kLT1EPU?YJdPtu}vVj#O3dF zVfhg$y-K&WN!=EJr^Z3`poQYQvTQp=5Q)pbRr~|--JWyJv*Kz8vfp4!j}W9DafWpH zOh3e|WgWwAG$cySaL~qU;<-v$OM$hx%16D?#*cJe(a~7UAyd^RdLh2^tD)h>fOuHI z{Y9M2q)fBRS2iS~hRgpWmTW}bf~M7`5^uKYLh(q(CY;Fs`dz^ORezTn1DN6QPY+Xh z#wIU>eUSW+WlPxBy$7<`5%iKv9<^Cq3JB%XQ^l#1%1S=tpi5l%d1M8-y0y=jyS!J} zKO3rFAH{H)@0x>dXiQm5H7X%`%r%5FY^VI>SqrAd+OXx3Mz)!Uh9lX7;=%*G&8=vm zVv(@r8|44@Ndrow`l0xPy0*hAR{#rp#XVAa#WZtxy~X-n2*Af(fT2h2Dsj&}7=6w< z;E?JYaND9v*<9^$q67I4ahhj}g?<)t7EBTpQ-OHhoi&MUVQ$ZC(=8>6exj8B7 zFbq3-!lnhy}a_C(LvPiC&Ee5eRiqB`UT8S0rhs$jnE#oXkOe=}*sTv@hQ@P7Lt^rTAQ}{-kQ(mhklOs{>cC zOe0HYgg9q{H%B}keZQ*HZ#JQG{+XnTMQT&wKE2;My)ARe6?o}I)TJL@3@&r2GFIF@_F=5Kn+%Ab418s@m7b_>O)*Ue8t-&=h0)nnRCTg%n-}9 z3pqcvuNnHhJ#8BzdKAJKuk7v)0)2tc|A$pl{A&b0WcoOLFBN{^VQcrEt%Zx-=?RBq z@E`=%22JMQxepr7|D+=CTLIC&cG}<7%{96TVMFJjhQJ|RX@onfzRB)0S!~F1Q9(iX z9^*6B=R@L!`=C78X@{2&ng+?d+Z%)!d3_|HvmgOd@AMmkz%a~#^XKxi5M0~t9^hqo zvF(&c!YV6ULQ@On7Y8pl;@t&ge6>e5zHu1&e0Lk^a{6?;E4klA3yG78-D;%KaYg8G z(7ky8b7F4B-GyN zGi}z9P`ZYdTsOmgER{w#ZoRztQCxa}bL9+H4G<4VTo)bB+)gzv8C^ivt%cw`iwmt_ z-fkdQ-Tc8sV2>#PbwI={KX{gPS4EJHp6RQ|1w!yaMF~ElXM!F-YS;1*B4|6JB}}1Z zz4PvO)gCVnp&SS`j+v84G3eiYc+H`<$J49ivt>wST*DN`!X8)9Q)=WRq`dyZxA{~U zF!~S^JbyKiW2vwv4`C2`_wm&*HZ!+AD2 zO{{wAO7y$WmumMLA($+0RV)_wlzjQ(KFT-K(}?9o_l5um&SQDe`8*8Prv{oW{;}i@ zpy_852cYH=vsLhs*n{8ns6_QQYBN`cnL*gZ5XRL+!e$u5#vbKup!OHX6cJZ4__vyQ zs^(0Ak2Q9iNhG9&friZ*e0&V;6|=_5iZz?3l*fe!hK_;8B}&k{GIH)RArZBgNV*@* zpb?b*gEQ2d9S=U$zZL3^wLv*tynzSjag5eH9w(2}E1V>PAN&+MiZengco?XJVSq=g z#9pKyB1i)3%bcpw8QtJzDJTR7EdM1*1C)gN>i|_Kx4`vNf~P-dR8xlV9Uc3`Kk;A9 zp*9Xkga1+4z`TF(j}BI`2oi|^I@X`G_RVGw>tVy7ctH%aIUL~t>juC0_$PAJfpS~$ ziHkx&%?C(M`5x42K9k%{Y3zq+hG9(@nkul((M{Z zzu?aoWLN$3t7ssWBll0op?u_cjX~{byE6=9tTbCU;_?c=IlUvV9YC~pg7%K?&wc-AB_J7wObyk6bhJblotZS zNu8k*;0p8SI<5}f0w?R}%>e>Xxx5@u=l=eqyTPD!CEEv4qG_{!R5|?&5Mz`8*AHnS zz+hTOXoZv418t5z#Gm|&oliyU1f;riNLc`v;}ako=KzK_a?uBb|0z&)-VP#8sb7gb z3)2+az$zPuVYFsMR5Z$Ovwmzoe1-5D`k1o= zAfE6B;SO{ruC8M!<)hUjp>V;<42uu%olnhT=dw4Q0DSOX&~WI5q8conT5T#~dl+h! z@wA;SW=BVR67?OS!vDv20iAo)-WFZRq9SbKbIoGphfj z?mXSbJzfR$O`v0q-{yuX7$1N1pJ@7pSDJ3beW2Xa&T-st^gr(c>4P;fh{6YsY_j+8ZukE)xT8t}p0Y?S`H@4L}!=F$EvAeSE0@t_3-Z}#kX-8X0{%L^Y#UOf8#v|_+gqUDF7fZSC&xib+= zxdW7j4h5!;WxUcD`;QGlye_0W$D75~aC`#SbkxJf)Iq0t&6aaD(svUMiI{Eb92Sp7 zZ2nxA5AfY3c((q(B^jR87S^{KRQ!>Qu(}*M-8B~5c{C7a^glR$UjJd}ZaeGmh96j0 zwEpwF_M0ca05vyQM&^`U?@p{dkmZ>>l2|hD{`U*wbs<=$y%?mW1?9TO&zc7V5T_QH zQix)4cxC)`_@t1lKtl&w@aB;mm&jS=e;VOjLvg-@41>0C!mRZ_#{S{{avP9Wp%#Pr zcN`v&+M@&V^$c`SH!?ci9ynRJuff@F3#fx(A;~jpPB|xVu|Np)j z*Si{*$XpBd6=@0T0b~x*8<>E=?-yp|0ZY%- z8YpG7H$S@(oAu2?~xE;@UYyalO`@=|F{T16-d6(D%gum+uKW_0|~# zgTlq1z1?A|`>ZEOCS!~R*apET4(;uGCPUgkj(UpbkgH4uvkA|7%#I`W>Z8{1`pY6vNAA(s}FnflbbsNhL z*y9I~(3sBnevLufx?fckXjO8-U<;7FO(Ep@rKkgyF`(NS?C%8Wbtw;Coni;dMt%Q? zyZQ%~fso%mu_75nWbf2>$9t`NS;q*J8DBRuK#3!qDq zZ=3=xOgBN8(M{Gfu%~GBA_ihERd7|xi{?UdlQE)YTcsSpW>EmI_0W`6r0}~iF<0PW zan5|`|C{BVZ71w?!Zjw0vB?HEXoYt>4f8pT_^AgWWnrKdoDCsR55~j!ymbD@&TcCj zUs6lRz_VmE_C|hR2I0{vDVDhV9*5Q&#eMvEbR6xVfBA*RYeeSgIm>6`p@-?x&^=o6 z4^fRxsUy|$%IOv5$_*c|+eb3IfD@lYxQ*SRJOIMSY!e=SrGofrVPA8PjpJ&a#mY3Hc6W*KO55ZzzD zsBF=zI$m@rx22{?)9LRs> zPu(dHKR0K5mp=C`0lzWW2c3|>c^YzWfJPZsQQ(AJSV09Cnwt%XM5PG^-b3l1!^PofU%*8LT4;TcKtQcdxCN0J z4n5dwSo=F>vmfcZMWaNVfIZkjP4Kd>H8VN79*iP^fKetGpo9Ol11C4Y{=5S)>|x|)ly5OMHB{na2qu|hlPFJNYhA+VCoAYm(b zLM_K{yGx(f?_hT#>$6xHP4s7V8+vjzm3O4_Fs9%KnLS~t(r$cO#LIGZ+?N1Ep|5j? z@AOG#ph_lpu!~6!AbMUOKVZ4Hbw-Ug~=`9uJUP{~1AH`Log{2a){hNS8VUMxsi zyv!*uQ7(3 z$=>h%VIpChg>`EnqQzL=qv`eHx*uPQ+LW0`)!Y*LwdCiwwAwp*huoS7<_)y7M6|&* z$cAhU1LD75gW8*Z*Ak&hF{i+>oOa_>h3C43G(h;~)ti6ahCER~Eyo&BcK<&oL|gk} zef9r3A=j(55Cq)BD(PPBdNWfpe8&#Bx8$ilw72=it-mGH40`;x*w?>$)NUlF1d%Qr1T&~-JAS3+U5@_t8nV*Tj zu*hw1``HYeI=_Q1LWK>qsQE)vP$6{n{0Y)=U!46iT;vP5;*3G3>TH4+F%a%{bHLa! zOO0xVLEM6Rv{E&rm7EQkY zZBTI#9Ltel?!!0DL^(QF&EN<0B2Bq%t-(NhpLh$u=wRGJ{fFl zQ?CT^8n=_pzMOCAJf!4L3Raw!S~qS}cDZm964HOq6&vPGfW|*Ou&bf^c}6qZ6unnY zfM|v?1urP<-=v?M*z5GTh!5LlWw?zsN@H#!0lGav;r^1WXF>m><-JpR;6F@x2LgjC zT=hF~zTEgSkAu5>(|`t|c9@pIYM?9j5V~TAF5}dHy4FrV+6UDcjf~YX)priMaZW9cyAz04z)yMYHU~F(W)&I~%lE$9nLK z)!la{2!{iByBv^$O6kF7@%(VW#(p3Th89`V{OvM_wCV$j?zt}@K~m_7f^-6pi2RD%KcA~QE2%>-E1yydgsz+Lr-X@m0%i1zSDf`ck(XOOgeA0Q9B z_@*gm{bCOA&kxUVDs+Z{YK>A2Z4TuOeZ4DGX2L*7adZ6`UWsG$nS!1fc1a~SlhtqS zU8Cm$x2+E8GX!pALOV{_Y=wjKl0k2Z2pm44c5bs~6(Nk@G9$RncGbLjkr(;qsxPr- zlqq_{#yG01tdJ!id@9NHMd(r0d zB`mS#2+zvE)!1x`q{~FZ7awN^&L`TtaQsZyv5a8rRjocZs`;2VzDJ7s$umSJ#S(({ z+XwD#isq09-kI;|`mVV2*w7M>8`D_jobn<5OG|oqFaJ*D^lvP|u>bFpaX72(d^ml{ zz{iib7jr-6EbJW^T^~ej6*7?r9PdB+Dd1<_9GwOy#gFkJl4N}R2>E6 zE^E42IqSGdY8@)3W1Sa%Py61bwTA7*5oJiO)$`8q>-m$;?Y!aOd;^yOG>cgX^wK)5)VpYOb_A zv>7bQ&+6xX-D?(QYGlNm@e2J=Waty|@&cCR1^O&DNX)wPt;}lmEl^U! z1U(E^IbADnJ}_!_H69mi?sk-p&HS04#lH|vXnpL+M`-sD<`a0OcVqeEv)dbz3<4Xm z1vM{Dmqb31`6XA!E(4MuSg>q5s^4S1P!8l*w-VJATxk&TY&P&L3yG znYaboUh`A9DDc_7~s*QJGR`zLbx3nYScjQ|A2? zjkm;pMlX3}3nJ{KX4UIUOK~mPP2Ftr`%`DcYQ`(qqs+GQrAT1if;(G8MN5ry~(fx_?nLbes!nz+p|Gw`-*pS(NlUcF1)=53i4`R<7E?mFiBkK9tw!r2= zjqLAlmrs~SR`36AuThxi`uMEI9^LE}%hq>_#WQVvlRS;YNKs1L{$l03(tNEE$$X%b zxti3X!iq59;>CS=;VLdA3=Q@b9wjo5+AKVq9e%>Rqy|83z{z@$3NDxM_I7x%1?VMy zK6B|o%@Dlz2LYQZ#9QP#){FwJ5zSXPtpD97ev!D~<0{+!A8g!9lb!yqHi4Rh@whhb z)CyO*@Xi!DV`y3nZbb1K)#C)BOcOPmE=u3E=XW;7tsDRre5E{nG(wgy!(eeoq0*VnxoO zaz6Vv0L;ch4rC*M_--d@u(%V@$~9HsuH%@qyqhY2!N314vFOf(pC4vEkNq0Zd=U)J zM#EQz3NzO2Og(?S9QQi?Y4)p5?OLMUXZo1C*k;ftepU*DwSPw->WV8+-|$NQM_F%e zx&Cntv7kZp+mpU<9t%b!+;!sHYyK5<_A}C$Di<=LGWo$k$rykZr3&LUM%bn-Cz% z5yntgtwCkoCoX6IE4^&i4j_oEFH-)ktzZlUl|?9ftvH`n1Tt66GSu4f!XhkSyr(0& z=fIS{7_fBgw3o^0b5j-hP))|kzr_5Mxjxv-9I%&L(D?}63BUcz zU+G*%-uAlI*I5fty~pMl4X!i3j<>I#G8C)nJPRvWayFX~I73#Bq`VW33qAlFYF>hG zAuMY=j6J$o_|+lfPT7h0MC5UxZn)8PVMS*}?vLd(&q!ko)56 zVC4oM*v#FNAH*qcY9|h4Q!pD6XW>}MBU3V$iXeWC^0Q%x|9T>xSRhCoSPO}&x9mh< z*W8e>y7GF07m}9k8wM0Evd)kr9eTGR1X#@}g}BYaIZL9SPlqK~fO=|AF<4rDm!%cw ztgO}q+-PXnL{HIc8!uP1d{Yy*D zyL#;V_*a+)_p876wxpWq9{e5~er3F74C;XPvSb3Hs*mp8Smrwn8(;50>e~HS;`q{R zdjsMj>J=$o-m_2Ee%3pKV%rXJws85+fbofg7D%LK{PMFNNDR?ytKU#Ym?vWTDd2@L zY59N=#DDeH-B69V*^v8MjcMrNo13RmnH}0ADTEdMAga+PUn!ESJ#JjmS4ay4Seaay zs}gIl`~_HN+(umKOSjmpCkoTRIoMWr=}Z{(Z8beo`{hpwf498$(@vtZR6!0_$M?jH zRYY*Z*{`Si30N`LQIWLz&!B@Q6YpQhb~iKpr$766zw7ynZVqrBES21M|EqRI=b2g5c|U?riCYJK8P4Ik`B01^?~NqMaqzc8x1$W zX^czB_J2g{NKY{&T<#Knol>yEX1 zR;xrJT_C5cc;AR8EK-OZjL09grh>CwScnrMMl z;RFw8eMj2W@hbmDYr6Tk1?%bFGk&+N<|k@=oc5-~;tH*E=h+I*!k{bImdQ~pbiK!8 z0^uRdvH3rYBsB-51%6~A3#tTWgN18{Y|wyw!mxkhd(4X%adJxy5hYo0RAaMk`mL~Eq_zP_Y+)GYC$+WK>+(_~XyS^<}w zA5)6tdo5T>d9I~_HP19yhRY4uR083_?@QH|38fBW=-qqEz=ztnuC)Bt@E=~^v0@s9 zTx86pM0r8rT3!R!qL$E)R|;`;s)|N$oQ27*-Fg*U`0J6A*X}HO~_|WX< zb(4@bJ#FRiorZa8gSfiN7w9biI`3cILDY%v0aCY`)oQ|NckP#GSn>K-j-=0Ok`i?SSEUX#jW)_#)_AGJ7Qwu`7k9(| zR^XZy(}KhpVIk_Q?dZ)y*r$AuGhR(_pnE>2FYvzg;7U^v&$b^C;bj)dQB(r1j>iNcgzdY_jq)9)uEYlFqVn!Y@hKUp}G^k_#%{1Cw|eq?6rQ8DivP zw?GVMq%{mrIovUmRaSbXzG-ckNwfkywh#D(?y6VPb``PJ;DCZwZgxAgS(-SoSu zw2wE-qaNv(0ScM#Kz3gMtWb9{7~>rKaP}Uxzt`_hznTKsgXUKakM<_a{7Uy{354f2 zb9{hD@OhqA33(7xm~8-@Td-aRS^ZmmxYEszu?5s@^7$t& z&gA3%*zPE_yZ3;%Ih{A{=Y#**Z7aH)m)D(gHr*Qt!DUlFq9@O&`t^#b?bp|@UjqmF zIN~?s;DirPcUccmC(L6zt8vZUw$#P&mAY}hOji~TQtuz;i{RK_OIXSA+i*NnC%ad5 za=8~M3b#pue-{3dWD@vBM%(cO+Qe2Td`phb1^?1J@54Fko58KL!Q?plInG@*Sz)Eu z3)ual!^(wg;X?R{kTVJI#ZZB6D5J9(Yj=t5m|3v^2+uVGjsiWof6eZbFvokClbg4r zh|E(DHf!GZT_bn1V}I{nbUHzMty}V!yBC7^>8m~XxNiyUds|D+gu{>g)#0L?kjwAi zZ|F<1QO8z-)Lt~Gcv-8Vq-3?OdT(=eoJqRllEPk6%C9_7_;-(g94Y6+9cnDUpO8tJ^y9z8y&G< z!Yu9j!BD^|eyC)7f& zHEEE_D%r<3Ph306p`Av+W$BsUJ-TA?k5!6*|lET2eM1;>O zd%y-rl`4r46{!)ThJYj_`DWpM-M_Nm?>gtd^T%1&Zf;7}de%Ji%-nO&J*VS zblPId>mmJYJl!TfWPgjiyvn$6UX$I!7cBP!(D;REb>}4U-5*hpTq)0^ExElOKxIP3 z`^I6w2Ri3r%fpuY()hIF`^rIA@5VldF40NuI5r~|jl(N@el@Zm~lOKq`L z&8GB)t_IjV`sd?Y%EaeKEcrMBSATvl-*6(iSDZK{8XB65>I%0Dm22!4-QRW5c4Jtv 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�_Nw!hKKmhCzs7k-xXA3nSw5B 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≀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 }67(1F~As8_*n$T-}z`v`^`QfEJCN>wm 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΄wu*`23onL%V3X+9oQ;6}OB5RoL~q%5Lc{tnUD<+C5` zBzCgSo3oc_;0FXGw-u;8MY5a0*c|+(!__+zO4;=(bUQveFE@3&6)SRVc|>ut(KEW6 zPk)_oQ1l<04opc^%sUQiV#M%TcHOfJJ){YzZO!FjK<MC~MFC!yUKINfA^hy-E7AbvUQ_}d-wx;+{K+Il3E~3F z_1)-!1xorFocU=O$bDJ>m9p*&S93U$KB^ZI34fKThS(?x1 zy?K=PYIeSX0GzJ@7H?il0||t^vfH~Nf1ey!W=x^<_m=croFen5{te%PP9V^W(p+j1 zzm&Igm63X0{k5IYT|?!$B~TUA=2>x72Tjm`;&lA;*jXzduPTHA78xK3cw#weY^EyQ zxnY+|c8`@H+`+%OS$|4Wyo)-M3^bo*66R>WRL@882ZH=4PeW$D44eB0_iQ3K}Ofr{o>Zrg$IewtTu~}q0mpwdKXTXf}n>-v~$nWNM zJ-F6?DT60^cXU5$d2PkM)sE|Wn@0@+z10M^|4hQIXwqhmL2caiTwlI9OtBJUX`>N? zqHI3xuY+-q(;!?cqYf+rYbS^9=d?lN_Jt_#)4_wDgLSpV1U~LF5RYnj1qXxmt$8!n zD*l;mNj$XT$lo`h^_9yk^@YOnYQBv=#;$-T(n}=ChTpsFQZgSSB`+)a73wyEge!35 z+biGU_2lwrM@A=M!}+|F=R~QyJ0mepL+7yR8l;E9QZEzjL~zCdjafbG;bwz4wVJ;S zLg`%o_N8lYlCGXbFC}DR9_;^;Wv;?`n0|D)&?PII7|f`pQf*Q6gbW}uq5+4M0p)=r zeK8OxH2UR*u=luS;KFdkne^(=X@vj@7hm6Hin1A?w9_lYKxA2h3$7R4lc&b|$U7pf zNJId@WeHr6rO)#-F35X`ZNI&j_6P zs76!{3Xjpf>DSwLUO+CNg|3)^KOYU5SAp9_5e0BMI`J~ndR1({*aAw5j;-eHt&Jrr zPI@X1B?kB*NG8E&vh;gWxpp}@ZFl1PHlW5kk!xdvt)v9nK$gMIGk~Q*9swc-b^8=J zcI|+hf5FAc?V6tblsPA?Wgk}c&C~XHc92;c1St2Q5n*bm?{f&c#q(hG=mo1sa@f*5 zUck2lR=g8Xt*^y%H$FTT>{6B=aeK`x{03NIcS+Ei37tY93HqUoMd zy%b#u4GFid>`zrV%2>0<{3d!(8Q3&{IL~0Pz*C zu^Y|$s(m3MgI&dW`0FLD!b2T>t0_E+8>O}U-j-@iD(5mFxaxV@y0cmG%vi8U@8PZS zRK=at?ea%Ap&5+*3jEh5yt$ZvJ0MTOFy9U%?av@*-ED|`Ani1yt=RY5S8eYz-vbpF zq4nc4UH=fUS?jfn&ramqbUq?RpAA*hY&MUyM?{RKr8j8)zB(W3Yj$)-!6fF^+ztx0 zC0vAa@+jI_hY6?X{LJt}G)`&v^k^~=P{Ap=)LII{1r#`PNQMa8XkboiYL%81E!D$h zp8CC}h=bbQt7}cZtU24m`J3_OZ9+!3x6qNHs@13{NV2(Pce!t;709?BAmq2uA7+L? z^@q#u0|i?RN?J_#@SwQJ9nlQ4ug2xxd}xtsk!L~Lw}laQiAeABet8hP^3Dhs1KqCo z$)LW9_TFo@kMl3Ar_<=S&%lBG>p;(B1hc0KscZR~DYg8uM&4_J+KpfR)mFLIe z^gUe^Ld%CE*Vbz0W%d@Afga*^0iw0i>`_AUprQfG@xTt(timva!l)g@0(*%qLgNSR z?D~sZQ@q_dN`FT$R2uv@pRsz!>@f1K?*d*;etzL1CEX$d3t>OplfM+YH#Hcykc9)x zb)A1m^}^1Sexf_!P?h@H?hGJLrvfZ~U(B1@$PTD~pcLHLAPir!GML0)3T(%5!1v!- zXD-pqTBBpZxr*Nx;e~g|2kNX`vq4K#7}c1lE>Oc}7n%XFiQK$TF9eV{6(|kEs-$70 zNvo_i1Jq+-tzneE1TN=Mth9Vas(9P)$V4C4t|ts(NJmQz;=PUN42D7XPk+Oh7nG=_7%F&w zW_+CGb^PF2)Fi8)i_|$`f+U{w?$qsS`4xgi%8FGkzAFZ>&qx%lo`i_>ENjs4{IKa_ zI6(r*!(I1q3i#2l?2c7)UdBY5{d@WL7|Q_n&V%t3-0%#~DbJ=oso*B$qJ2m;;;!G~V%);gSug3A7`LOR z5a$$%+#Q%_&Lj~R@-N;qLZbj=MrGlBP1^#CXjB4gN}jvSfxF&$ zwKwH6NIk(djQ9+oUY4Hda7zBO0ugZ!CLYcl?94&2qEK{fPROtF66YH=Ykh%@YQC)% z<>j3qb49+EW{KF^Qi)@XUpz&_Tc3wtAWkAUoK1JYH0V(_KUZj9+)4|t*K(Y z+jf})0Jjk}4_~Vr8yj1!8`YO?07^S#jJ$rf+=maUV7Pg;!%$d|a_5r7;LS0=y^6d3 zf)Sgj&D(Z909?far0?!k%E3;RV2YL&vnvJct8ZrDxC@8=aI5@xJT|jU!?u!55YMN? zYY}`Pk09VB=-@l!n&&9C_?JAaRqg^O<<(SR7)eL~62zYS+L6p3`?oJ<#;i)mj8k)$ zJ=b7v8lsn{PPN(9VoV&6RmmYVMgnEVP?Q7%4&o3VHOql0oK!4p6Xmo`AsO}WzWO8W zwi2DGrLdKzd#Jct7hwy|mXc2^1LOV6s@u)mYNKK`;loA^q`3P>iknV-CT|!_1Q`&* zR`NDc6Jbmbd74EVuKCmm^3G=*n7TLSXG=Tjf7-~+ctnWhEcg-?U^Sbu=6Zhw$YlS= zQ*7E|v1V0mM=bRZRWISDX^x4B4M?QXew&Cp(nV_io$+ksJ;Jh*2H=m2iE)@J*FG0R*iL5O zFr`=RG3le7omDOOG{{3GQZ&Sa{Q5kpmTg<+h1%p^b3*jR?f!`qn}otDl^zOriSRHL zt>dMr#=c>i%T`xuDec|qtBS=^wYWlKR7D2tVQOpa@6XzaC-wnaXnT#C&&vB8wzHro zZ#xo^r(IStG<^tsgE5|4Shg-%{P(Vjyx$pawHT0nHT}+@G+&pwi2uOKTZn$tbrcg>EFQ_k5j}-re-1C3EJ2rkpD#`Gctq zoP;pPRZ@mOk8`GsPB`1X%;jNcgXo5r`6w)5{YgoCdi*6q^EX)MXFd-4U0 z`-y>xS?WLjd3UdH{H6IqH;vluflXaJcN;|YK=nBA4=GT}R>f!SElAm0Tx;jBjlps1Q8C}tCFgANl%8V;vU3CB02Hd2-$84LXq>Z$F-yt;Xjv^`hGCxO zG)eVpjmdAmgNSNyx|7EoUxi_Bn3sAt!%Z*&X}Grh(@m!Hx2N-8 zbRVYNd~(Bl!KY8>XSm>OEp6i##i%2~P`X;q&Vb1O`<$SEs^%biZ1MV<3;1OQ;Nb5tcLW7S3JD6v+NTJ88tvzhVz;Vt+dAR z*C6SSh!}6(8APMc5%GjSN|j!mS>pcDlU2s|_Zt}ZDStIASXFP6lh%2kHOp$X&$Qq7 z!jrH)tCFWL=2F*NtS9_{U;89*u3MCpGtycG#<5^|D0BD$yGWr8!;gj2Q! zE?_4deh;H&#lC%yQJ`R$(7JubmMT%>P?%eiq|Uw-{jC^3KlPXZowt3IUF6phSNY>u zu|4$3wpz1bn++UsCiv1+zmrj={impQcm0vqtc69;@qIE8%XphA{LUU9Tj!}Sp7&md zHh2U9TR|9G*iRj6IQBAB>;+rLc_+v~aMRpp9{IU^SShq6H&t$Y6}qFA)Y6C>Nv3B+ z&1`w85(i#g%Mk}HWEtD!hH0N9!;^T!GWxB}J?mrIs(TW^qECh88)) z(+4{Qd!S&n1Du<-Kn`2 zjg7Ye=eXo%YGI&W;x@4dV1sW3f40M?)a6q06G&B9Br{fd4a!mISskSL%0DVR`Mvt& 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

    +?KM){boVF_#D%j@ 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 - - - - - - - - - - - - - + + + + + + + + + + + + + From 2db92bd294c3255d8f53860e992afbe927216d62 Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Fri, 17 Jul 2026 10:20:12 +0000 Subject: [PATCH 26/47] restructure README --- README.md | 208 ++++++++++++------------------------------------------ 1 file changed, 44 insertions(+), 164 deletions(-) diff --git a/README.md b/README.md index e66d1de..3059b1e 100644 --- a/README.md +++ b/README.md @@ -19,70 +19,56 @@ [![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqsubmit-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqsubmit)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core) -## Table of Contents - -- [Introduction](#introduction) -- [Requirements](#requirements) -- [Input samplesheets](#input-samplesheets) -- [Usage](#usage) - - [Submission study](#submission-study) - - [Data privacy](#data-privacy) - - [Database setup (`CheckM2` and `CAT_pack`)](#database-setup-checkm2-and-cat_pack) - - [Required parameters:](#required-parameters) - - [Optional parameters:](#optional-parameters) -- [Pipeline output](#pipeline-output) -- [Scalability](#scalability) -- [Limitations](#limitations) -- [Credits](#credits) -- [Contributions and Support](#contributions-and-support) -- [Citations](#citations) - ## Introduction +![seqsubmit workflow diagram](assets/seqsubmit_schema.png) + **nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home). -Currently, the pipeline supports four submission modes, each routed to a dedicated workflow and requiring its own input samplesheet structure: +The pipeline currently supports the following submission modes, each routed to a dedicated workflow: -- `mags` for Metagenome Assembled Genomes (MAGs) submission with `GENOMESUBMIT` workflow -- `bins` for bins submission with `GENOMESUBMIT` workflow -- `metagenomic_assemblies` for assembly submission with `ASSEMBLYSUBMIT` workflow -- `reads` for raw sequencing reads submission with `READSUBMIT` workflow +- `reads` — raw sequencing reads submission via the `READSUBMIT` workflow (pink) +- `metagenomic_assemblies` — assembly submission via the `ASSEMBLYSUBMIT` workflow (green) +- `mags` — metagenome-assembled genomes (MAGs) submission via the `GENOMESUBMIT` workflow (blue) +- `bins` — bins submission via the `GENOMESUBMIT` workflow (blue) -![seqsubmit workflow diagram](assets/seqsubmit_schema.png) + + +Each workflow has its own samplesheet structure, prerequisites, and limitations — they are briefly described below. See the [usage documentation](https://nf-co.re/seqsubmit/usage) for more detailed explanations. ## Requirements - [Nextflow](https://www.nextflow.io/) `>=25.04.0` -- Webin account registered at https://www.ebi.ac.uk/ena/submit/webin/login -- For metagenomic assemblies submission the raw reads used to generate the assemblies have to be submitted to INSDC/ENA to obtain the corresponding run accessions. You can use the pipeline in mode `reads` to perform this. -- For MAGs or bins submission the raw reads only or raw reads and metagenomic assemblies used to generate the MAGs/bins have to be submitted to INSDC/ENA to obtain the corresponding run or assembly accessions. You can use the pipeline in mode `reads` or `metagenomic_assemblies` to perform this. -- For raw reads submission it is required to register source BioSamples and obtain the sample accessions. +- A Webin account registered at -Setup Webin credentials as Nextflow secrets before running the pipeline: + Set your Webin credentials as Nextflow secrets: -`nextflow secrets set ENA_WEBIN "Webin-XXX"` + ```bash + nextflow secrets set ENA_WEBIN "Webin-XXX" + nextflow secrets set ENA_WEBIN_PASSWORD "XXX" + ``` -`nextflow secrets set ENA_WEBIN_PASSWORD "XXX"` + Make sure to replace the values above with your own credentials. -Make sure you update commands above with your authorised credentials. +- Provide either a study accession or a study registration metadata file for the study the submission will be associated with. See the [Submission study](docs/usage.md#submission-study) section of the usage documentation for details. -## Input samplesheets +- Depending on the chosen mode, samples, reads, or metagenomic assemblies must be pre-submitted to ENA to obtain the corresponding accessions, which you then reference in your submission. Refer to the relevant mode section in the [usage documentation](https://nf-co.re/seqsubmit/usage) for details. -### `mags` and `bins` modes +## Input samplesheets -The input must follow [assets/schema_input_genome.json](assets/schema_input_genome.json). See the [corresponding samplesheet section](docs/usage.md#mags-and-bins-modes-genomesubmit) of the usage documentation for the full list of required and optional columns. +### `reads` mode -Example `samplesheet_genomes.csv`: +Example: ```csv -sample,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage -lachnospira_eligens,data/bin_lachnospira_eligens.fa.gz,SRR24458089,,,spades_v3.15.5,metabat2_v2.6,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,No,marine,cable_bacteria,marine_sediment,No,d__Bacteria;p__Proteobacteria;s__unclassified_Proteobacteria +sample,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description +illumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLUMINA,Illumina HiSeq 2000,GENOMIC,RANDOM,WGS,500,HiSeq_library_001,Illumina sequencing of sample XYZ ``` -### `metagenomic_assemblies` mode +See the [`reads` mode section](docs/usage.md#samplesheet-input) of the usage documentation for more details. -The input must follow [assets/schema_input_assembly.json](assets/schema_input_assembly.json). See the [corresponding samplesheet section](docs/usage.md#metagenomic_assemblies-mode-assemblysubmit) of the usage documentation for more details. +### `metagenomic_assemblies` mode -Example `samplesheet_assembly.csv`: +Example: ```csv sample,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version @@ -90,105 +76,36 @@ assembly_1,data/contigs_1.fasta.gz,data/reads_1.fastq.gz,data/reads_2.fastq.gz,, assembly_2,data/contigs_2.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 ``` -### `reads` mode +See the [`metagenomic_assemblies` mode section](docs/usage.md#samplesheet-input-1) of the usage documentation for more details. -The input must follow [assets/schema_input_reads.json](assets/schema_input_reads.json). See the [corresponding samplesheet section](docs/usage.md#reads-mode-readsubmit) of the usage documentation for more details. +### `mags` and `bins` modes -Example `samplesheet_reads.csv`: +Example: ```csv -sample,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description -illumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLUMINA,Illumina HiSeq 2000,GENOMIC,RANDOM,WGS,500,HiSeq_library_001,Illumina sequencing of sample XYZ +sample,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage +lachnospira_eligens,data/bin_lachnospira_eligens.fa.gz,SRR24458089,,,spades_v3.15.5,metabat2_v2.6,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,No,marine,cable_bacteria,marine_sediment,No,d__Bacteria;p__Proteobacteria;s__unclassified_Proteobacteria ``` +See the [`mags` and `bins` modes section](docs/usage.md#samplesheet-input-2) of the usage documentation for the full list of required and optional columns. + ## Usage > [!NOTE] > If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/get_started/environment_setup/overview) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/get_started/run-your-first-pipeline) with `-profile test` before running the workflow on actual data. -### Submission study - -All data submitted through this pipeline must be associated with an ENA study (project). You can either pass an accession of your existing study via `--submission_study`or provide a metadata file via `--study_metadata` and the pipeline will register the study with ENA before submitting your data. See the [usage documentation](docs/usage.md#submission-study) for more details. - -### Data privacy - -The pipeline supports private submissions. See the [usage documentation](docs/usage.md#data-privacy) for more details. - -### Database setup (`CheckM2` and `CAT_pack`) +### Running the pipeline -The `mags`/`bins` workflow requires databases for completeness/contamination estimation and taxonomy assignment. See [Usage documentation](usage.md) for more details. - -### Required parameters: - -| Parameter | Description | -| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- | -| `--mode` | Type of the data to be submitted. Options: `[mags, bins, metagenomic_assemblies, reads]` | -| `--input` | Path to the samplesheet describing the data to be submitted | -| `--outdir` | Path to the output directory for pipeline results | -| `--submission_study` OR `--study_metadata` | ENA study accession (PRJ/ERP) to submit the data to OR metadata file in JSON/TSV/CSV format to register new study | -| `--centre_name` | Name of the submitter's organisation | - -### Optional parameters: - -| Parameter | Description | -| ----------------- | ------------------------------------------------------------------------------------------ | -| `--upload_tpa` | Flag to control the type of assembly study (third party assembly or not). Default: false | -| `--test_upload` | Upload to TEST ENA server instead of LIVE. Default: true | -| `--webincli_mode` | Choose Webin-CLI mode: `submit` or `validate`. Default: `submit` | -| `--is_private` | Use that flag if you are referring private data accessions in your submission | -| `--release_date` | Use that flag if you want to keep your data private after submission until particular date | - -General command template: +Each mode also has its own additional parameters and example commands — see the [usage documentation](https://nf-co.re/seqsubmit/usage) for details. General command template: ```bash nextflow run nf-core/seqsubmit \ - -profile \ - --mode \ - --input \ - --centre_name \ - --submission_study \ - --outdir -``` - -Test run (submission to the ENA TEST server) in `mags` mode: - -```bash -nextflow run nf-core/seqsubmit \ - -profile docker \ - --mode mags \ - --input assets/samplesheet_genomes.csv \ - --submission_study \ - --centre_name TEST_CENTER \ - --webincli_mode submit \ - --test_upload true \ - --outdir results/validate_mags -``` - -Test run (submission to the ENA TEST server) in `metagenomic_assemblies` mode: - -```bash -nextflow run nf-core/seqsubmit \ - -profile docker \ - --mode metagenomic_assemblies \ - --input assets/samplesheet_assembly.csv \ - --submission_study \ - --centre_name TEST_CENTER \ - --webincli_mode submit \ - --test_upload true \ - --outdir results/validate_assemblies -``` - -Live submission example: - -```bash -nextflow run nf-core/seqsubmit \ - -profile docker \ - --mode metagenomic_assemblies \ - --input assets/samplesheet_assembly.csv \ - --submission_study PRJEB98843 \ - --test_upload false \ - --webincli_mode submit \ - --outdir results/live_assembly + -profile \ + --mode \ + --input \ + --centre_name \ + --submission_study \ + --outdir ``` > [!WARNING] @@ -200,51 +117,14 @@ For more details and further functionality, please refer to the [usage documenta Key output locations in `--outdir`: -- `mags/` or `bins/`: genome metadata, manifests, and per-sample submission support files +- `reads/`: per-sample submission receipts and accessions - `metagenomic_assemblies/`: assembly metadata CSVs and per-sample coverage files +- `mags/` or `bins/`: genome metadata, manifests, and per-sample submission support files - `multiqc/`: MultiQC summary report - `pipeline_info/`: execution reports, trace, DAG, and software versions For full details, see the [output documentation](https://nf-co.re/seqsubmit/output). -## Scalability - -Some processes in this pipeline are resource intensive — in particular coverage calculation (`coverm`), quality assessment (`CheckM2`), and taxonomic classification of MAGs/bins (`BAT`). For real life data these steps should be run on an HPC cluster or another compute environment with sufficient CPU, memory, and job scheduling capacity, rather than on a single local machine. - -Depending on the resources available on your machine or cluster, you will likely need to adapt the Nextflow configuration to limit the maximum number of concurrently running jobs and other resource settings (e.g. `max_cpus`, `max_memory`, `max_time`, or `executor.queueSize` in a custom config), so the pipeline doesn't try to claim more resources than are actually available. See the [nf-core configuration documentation](https://nf-co.re/docs/usage/getting_started/configuration) for guidance on writing a custom config for your infrastructure. - -When submitting a large number of records, be aware that ENA recommends limiting submissions to 5000 per day to avoid overfilling their processing queue. If you need to submit more than this, consider splitting your samplesheet and spreading the submission across several days. - -## Limitations - -nf-core/seqsubmit does not yet support the following data types and scenarios, grouped by the mode they affect: - -#### `mags` and `bins` modes (`GENOMESUBMIT`) - -- **Co-assemblies**: MAGs/bins generated from co-assemblies are not supported. The pipeline currently expects each MAG/bin to be derived from an assembly generated from a single run. Tracked in [issue #61](https://github.com/nf-core/seqsubmit/issues/61). - -- **Eukaryotic and viral bins/MAGs**: Submitting eukaryotic or viral genomes that require additional metadata generation is not supported. For such genomes tRNA and rRNA prediction, quality assessment (completeness/contamination estimation) and taxonomy assignment are not implemented. If all the required metadata (`completeness`, `contamination`, `stats_generation_software`, `RNA_presence` and `NCBI_lineage`) is already provided in the samplesheet, eukaryotic and viral bins/MAGs can still be submitted normally. Tracked in [issue #40](https://github.com/nf-core/seqsubmit/issues/40) (eukaryotic) and [issue #63](https://github.com/nf-core/seqsubmit/issues/63) (viral). - -- **Submission of a MAG/bin without submitting the assembly or raw reads**: If a MAG/bin cannot be traced back to an assembly accession or a reads accession — i.e. only a sample accession is available — it cannot currently be submitted, since the pipeline relies on that lineage to build the required metadata. Tracked in [issue #87](https://github.com/nf-core/seqsubmit/issues/87). - -- **Single-contig MAGs/bins**: MAGs/bins that consist of only one contig cannot be uploaded through this pipeline. ENA classifies these as "chromosomal assemblies", which follow a different submission procedure with different metadata requirements. If you have a single-contig MAG/bin to submit, please contact [ENA support](https://www.ebi.ac.uk/ena/browser/support) for guidance. - -- **Coverage calculation from long reads**: `genome_coverage` calculation via `coverm` has only been tested and validated with short reads (e.g. Illumina). It has not been tested with long reads (PacBio, Nanopore). Exercise caution when processing data generated from long reads, as issues may occur. - -#### `metagenomic_assemblies` mode (`ASSEMBLYSUBMIT`) - -- **Co-assemblies**: Metagenomic co-assemblies are not supported. The pipeline currently expects each assembly to be derived from a single run. Tracked in [issue #61](https://github.com/nf-core/seqsubmit/issues/61), addressed in [PR #66](https://github.com/nf-core/seqsubmit/pull/66). - -- **Submission of an assembly without submitting the raw reads**: Assemblies that have no associated reads accession (`run_accession` column in the samplesheet) are not supported, since the pipeline relies on that lineage to build the required metadata. Tracked in [issue #29](https://github.com/nf-core/seqsubmit/issues/29). - -- **Single-contig assemblies**: Assemblies that consist of only one contig cannot be uploaded through this pipeline. ENA classifies these as "chromosomal assemblies", which follow a different submission procedure with different metadata requirements. If you have a single-contig assembly to submit, please contact [ENA support](https://www.ebi.ac.uk/ena/browser/support) for guidance. - -- **Coverage calculation from long reads**: `coverage` calculation via `coverm` has only been tested and validated with short reads (e.g. Illumina). It has not been tested with long reads (PacBio, Nanopore). Exercise caution when processing data generated from long reads, as issues may occur. - -#### `reads` mode (`READSUBMIT`) - -- **Reads in non-FASTQ formats**: Only reads provided as FASTQ (`.fastq.gz`) can be submitted. Other formats (e.g. BAM) are not supported as input. - ## Credits nf-core/seqsubmit was originally written by [Martin Beracochea](https://github.com/mberacochea), [Ekaterina Sakharova](https://github.com/KateSakharova), [Sofia Ochkalova](https://github.com/ochkalova), [Evangelos Karatzas](https://github.com/vagkaratzas) and [Tim Rozday](https://github.com/timrozday-mgnify). From 018d328668b0e10dc1ac2d9e354fef483a43ccbf Mon Sep 17 00:00:00 2001 From: Sofia Ochkalova Date: Fri, 17 Jul 2026 10:51:01 +0000 Subject: [PATCH 27/47] Add section for Third Party Assemblies (TPA) in usage.md --- docs/usage.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index 5a1fb8a..20d377a 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -10,6 +10,7 @@ - [Before you start](#before-you-start) - [Submission study](#submission-study) - [Data privacy](#data-privacy) +- [Third party assemblies (TPA)](#third-party-assemblies-tpa) - [`reads` mode](#reads-mode) - [`metagenomic_assemblies` mode](#metagenomic_assemblies-mode) - [`mags` and `bins` modes](#mags-and-bins-modes) @@ -132,6 +133,14 @@ You can also control the privacy of your submitted data: | Bins generated from private reads and assemblies. Bins should remain private until 1 July 2028. User **has access** via Webin account | private | private | `--is_private --release_date 2028-07-01` | SUCCESS | | MAGs generated from private reads and assemblies. MAGs should be public after submission. User **does not have access** to the reads and assemblies via Webin account | private | public | – | ERROR (submission can only reference accessible data) | +## Third party assemblies (TPA) + +A Third PArty (TPA) Assembly record is an assembly or reassembly built from primary sequence data that has already been submitted to an INSDC database (ENA, GenBank, or DDBJ), rather than newly generated sequence data. TPA records must be built entirely from publicly available accessions or public sequencing reads — they cannot incorporate proprietary or unpublished data, and any newly generated sequence they contain must first be released as a primary submission in its own right. + +If you use `metagenomic_assemblies`, `mags`, or `bins` mode to submit data assembled from public data you did not generate yourself, use `--upload_tpa` to flag the submission as a TPA. + +See [ENA's data policies](https://www.ebi.ac.uk/ena/browser/about/policies) for further guidance on when a TPA designation applies to your submission. + ## `reads` mode ### Prerequisites @@ -233,9 +242,9 @@ Provide either read files (`fastq_1`, optionally `fastq_2`) or a `coverage` valu In addition to the [common parameters](#running-the-pipeline): -| Parameter | Required | Description | -| -------------- | -------- | -------------------------------------------------------------------------- | -| `--upload_tpa` | No | Mark assemblies as third party assemblies when required. Default: `false`. | +| Parameter | Required | Description | +| -------------- | -------- | --------------------------------------------------------------------------------------------------------------- | +| `--upload_tpa` | No | Mark assemblies as [third party assemblies (TPA)](#third-party-assemblies-tpa) when required. Default: `false`. | Example `metagenomic_assemblies` mode upload to TEST server, run command with docker: @@ -350,7 +359,7 @@ In addition to the [common parameters](#running-the-pipeline): | Parameter | Required | Description | | -------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -| `--upload_tpa` | No | Mark assemblies as third party assemblies when required. Default: `false`. | +| `--upload_tpa` | No | Mark assemblies as [third party assemblies (TPA)](#third-party-assemblies-tpa) when required. Default: `false`. | | `--checkm2_db` | No | Path to a local CheckM2 database. If omitted, downloads the version set by `--checkm2_db_download_id`. Default: `14897628` (Zenodo accession). | | `--cat_db` | No | Path to a local CAT_pack database. If omitted, constructs the version set by `--cat_db_download_id`. Default: `nr`. | From 36700b43d30a4c9ec1967f5b52067c9a6af28439 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Tue, 21 Jul 2026 16:55:57 +0100 Subject: [PATCH 28/47] many fixes --- README.md | 9 +- assets/schema_input_assembly.json | 4 +- assets/schema_input_genome.json | 8 +- bin/submit_study.py | 1 - docs/CONTRIBUTING.md | 14 ++ {assets => docs/images}/seqsubmit_schema.svg | 0 docs/methods.md | 66 ++++---- docs/usage.md | 154 +----------------- main.nf | 6 +- nextflow.config | 1 - nextflow_schema.json | 11 +- ro-crate-metadata.json | 2 +- subworkflows/local/genome_evaluation/main.nf | 28 ++-- .../utils_nfcore_seqsubmit_pipeline/main.nf | 8 + workflows/assemblysubmit.nf | 29 ++-- workflows/genomesubmit.nf | 45 ++--- workflows/readsubmit.nf | 17 +- 17 files changed, 115 insertions(+), 288 deletions(-) rename {assets => docs/images}/seqsubmit_schema.svg (100%) diff --git a/README.md b/README.md index 41a1e7e..e3e201a 100644 --- a/README.md +++ b/README.md @@ -31,14 +31,13 @@ Currently, the pipeline supports four submission modes, each routed to a dedicat ![seqsubmit workflow diagram](docs/images/seqsubmit_schema.png) - **nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home). The pipeline currently supports the following submission modes, each routed to a dedicated workflow: -- `reads` — raw sequencing reads submission via the `READSUBMIT` workflow (pink) -- `metagenomic_assemblies` — assembly submission via the `ASSEMBLYSUBMIT` workflow (green) -- `mags` — metagenome-assembled genomes (MAGs) submission via the `GENOMESUBMIT` workflow (blue) -- `bins` — bins submission via the `GENOMESUBMIT` workflow (blue) +- `reads` — raw sequencing reads submission via the `READSUBMIT` workflow (pink) +- `metagenomic_assemblies` — assembly submission via the `ASSEMBLYSUBMIT` workflow (green) +- `mags` — metagenome-assembled genomes (MAGs) submission via the `GENOMESUBMIT` workflow (blue) +- `bins` — bins submission via the `GENOMESUBMIT` workflow (blue) diff --git a/assets/schema_input_assembly.json b/assets/schema_input_assembly.json index 2b5fcea..6123501 100644 --- a/assets/schema_input_assembly.json +++ b/assets/schema_input_assembly.json @@ -77,13 +77,13 @@ "type": "string", "pattern": "^\\S+$", "errorMessage": "Assembler must be provided and cannot contain spaces", - "description": "Name of the assembler software used to generate the assembly" + "description": "Name of the assembler software used to generate the assembly, e.g. MEGAHIT, SPAdes, metaSPAdes, Flye, etc" }, "assembler_version": { "anyOf": [{ "type": "string" }, { "type": "number" }], "pattern": "^\\S+$", "errorMessage": "Assembler version must be provided and cannot contain spaces", - "description": "Version of the assembler software used to generate the assembly" + "description": "Version of the assembler software used to generate the assembly, e.g 1.0.0" } }, "required": ["sample", "fasta", "run_accession", "assembler", "assembler_version"], diff --git a/assets/schema_input_genome.json b/assets/schema_input_genome.json index 65472dc..a603b2c 100644 --- a/assets/schema_input_genome.json +++ b/assets/schema_input_genome.json @@ -59,15 +59,15 @@ }, "assembly_software": { "type": "string", - "description": "Tool name and version that was used to assemble data" + "description": "Tool name and version that was used to assemble data, e.g. MEGAHIT_v1.0, SPAdes_v4.0.0, metaSPAdes_v3.15.0" }, "binning_software": { "type": "string", - "description": "Tool name and version that was used to bin data" + "description": "Tool name and version that was used to bin data, e.g. MetaBAT2, VAMB, MaxBin2, CONCOCT, SemiBin2, COMEBin, etc" }, "binning_parameters": { "type": "string", - "description": "Arguments used to bin data different from default" + "description": "Arguments used to bin data different from default, e.g. -min_contig_length 1000" }, "stats_generation_software": { "type": "string", @@ -117,7 +117,7 @@ }, "NCBI_lineage": { "type": "string", - "description": "full NCBI lineage - format: x;y;z. For example, the lineage for E. coli can be: 'Bacteria;Pseudomonadati;Pseudomonadota;Gammaproteobacteria;Enterobacterales;Enterobacteriaceae;Escherichia' or '2;1224;1236;91347;543;561;562'" + "description": "full NCBI lineage - format: x;y;z. For example, the lineage for E. coli can be: 'Bacteria;Pseudomonadati;Pseudomonadota;Gammaproteobacteria;Enterobacterales;Enterobacteriaceae;Escherichia' or '2;1224;1236;91347;543;561;562'. For more info check https://www.ncbi.nlm.nih.gov/datasets/docs/v2/data-processing/taxonomy-processing/taxonomy/" } }, "required": [ diff --git a/bin/submit_study.py b/bin/submit_study.py index 23f43fd..6c8b0d4 100755 --- a/bin/submit_study.py +++ b/bin/submit_study.py @@ -379,7 +379,6 @@ def _add_project_element( sp = ET.SubElement(project, "SUBMISSION_PROJECT") ET.SubElement(sp, "SEQUENCING_PROJECT") - # TODO: Check existing_study_type and new_study_type metadata fields, do we need those? study_type = study.get("existing_study_type") if study_type: attrs = ET.SubElement( diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 7552e65..2ff2980 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -184,6 +184,20 @@ If you update images or graphics, follow the nf-core [style guidelines](https:// To ensure consistency and maintainability of the nf-core/seqsubmit pipeline, contributors should follow these guidelines when implementing new features or modifying existing functionality. +### Code style + +The pipeline is organized into three separate workflows `(mode`s-) because each mode has distinct procedures and requirements. Future development should follow the same structure to maintain consistency and readability. + +If a new feature extends support for an **existing** data type (for example, _adding support for eukaryotic MAGs_), the corresponding logic should be integrated into the existing workflow rather than creating a new one. + +To improve readability, divide the main workflow into logical sections using comments that begin with `// ---------`, for example: + +``` +// --------- Upload data to ENA +``` + +Use standard `//` comments for shorter explanations within each section. + ### ENA Submission Requirements Submissions to [ENA](https://www.ebi.ac.uk/ena/browser/home) are governed by a well-defined data model and submission process. These include relationships between entities (e.g. studies, samples, experiments, runs, analyses), required submission steps, and accepted file types and formats. diff --git a/assets/seqsubmit_schema.svg b/docs/images/seqsubmit_schema.svg similarity index 100% rename from assets/seqsubmit_schema.svg rename to docs/images/seqsubmit_schema.svg diff --git a/docs/methods.md b/docs/methods.md index acbf12f..67e5488 100644 --- a/docs/methods.md +++ b/docs/methods.md @@ -2,6 +2,38 @@ This page provides a detailed overview of the methods and procedures that are executed throughout the nf-core/seqsubmit pipeline. +## `ASSEMBLYSUBMIT` + +### Overview + +The `ASSEMBLYSUBMIT` workflow: + +1. Reads the samplesheet and associated assembly FASTA files. +2. Validates assembly FASTA files. +3. Reuses provided or calculates missing `coverage` values. +4. Builds the metadata table used for manifest generation. +5. Generates assembly manifests and submits the assemblies to ENA. + +### Assembly FASTA validation + +Assembly FASTA files are validated with `fa-lint` before downstream processing. Each file is checked for FASTA format validity and contig count. A genome must contain at least two contigs to pass validation, which is an ENA requirement for contig-level submissions. + +Only assemblies with successful validation are forwarded to coverage estimation, metadata/manifest generation and submission. + +### Coverage calculation + +If the `coverage` column is already populated in the samplesheet, that value is used directly. + +If `coverage` is missing, the workflow calculates coverage with `coverm contig`. + +`coverm contig` outputs per-contig depth. The workflow then reads this file and calculates the arithmetic mean across all contigs. + +If the per-contig coverage values are $c_1, c_2, \ldots, c_n$, the workflow currently computes assembly coverage as an unweighted mean across contigs: + +$$ +\bar{c} = \frac{1}{n} \sum_{i=1}^{n} c_i +$$ + ## `GENOMESUBMIT` ### Overview @@ -93,7 +125,7 @@ If `NCBI_lineage` is already present in the input samplesheet, the value is reta Before classification, input FASTA files are normalized to a `.fasta` suffix by `RENAME_FASTA_FOR_CATPACK`. Classification is then run in bin mode (`CAT_pack bins`, followed by `CAT_pack add_names`). -Database input is taken from `--cat_db` when provided; otherwise the workflow uses `--cat_db_download_id` to download and prepare a CATPACK database. The resulting classification table is parsed, and the lineage field is written to `NCBI_lineage`. +Database input is taken from `--cat_db` when provided; otherwise the workflow uses `nr` database identifier to download and prepare a CATPACK NCBI database. See [CAT_pack documentation](https://github.com/MGXlab/CAT_pack#downloading-preconstructed-database-files). There are two options available: `nr` - NCBI non-redundant protein database and `gtdb` (Genome Taxonomy Database (GTDB) proteins). We use NCBI proteins because ENA supports only NCBI format of taxonomy for submission. The resulting classification table is parsed, and the lineage field is written to `NCBI_lineage`. ### Completeness and contamination assessment @@ -102,35 +134,3 @@ Completeness and contamination are evaluated together in a shared genome quality The workflow checks three samplesheet fields: `completeness`, `contamination`, and `stats_generation_software`. If all three are already present, those values are reused. If any of them is missing, the genome is analysed with `CheckM2 predict`. If `--checkm2_db` is supplied and exists, that database is used directly. Otherwise, the workflow downloads a CheckM2 database from Zenodo (using the configured database ID) and then runs prediction. For records that run `CheckM2`, completeness and contamination are extracted from the generated quality report (`quality_report.tsv`) and used `CheckM2` version is recorded as `stats_generation_software`. - -## `ASSEMBLYSUBMIT` - -### Overview - -The `ASSEMBLYSUBMIT` workflow: - -1. Reads the samplesheet and associated assembly FASTA files. -2. Validates assembly FASTA files. -3. Reuses provided or calculates missing `coverage` values. -4. Builds the metadata table used for manifest generation. -5. Generates assembly manifests and submits the assemblies to ENA. - -### Assembly FASTA validation - -Assembly FASTA files are validated with `fa-lint` before downstream processing. Each file is checked for FASTA format validity and contig count. A genome must contain at least two contigs to pass validation, which is an ENA requirement for contig-level submissions. - -Only assemblies with successful validation are forwarded to coverage estimation, metadata/manifest generation and submission. - -### Coverage calculation - -If the `coverage` column is already populated in the samplesheet, that value is used directly. - -If `coverage` is missing, the workflow calculates coverage with `coverm contig`. - -`coverm contig` outputs per-contig depth. The workflow then reads this file and calculates the arithmetic mean across all contigs. - -If the per-contig coverage values are $c_1, c_2, \ldots, c_n$, the workflow currently computes assembly coverage as an unweighted mean across contigs: - -$$ -\bar{c} = \frac{1}{n} \sum_{i=1}^{n} c_i -$$ diff --git a/docs/usage.md b/docs/usage.md index 17538e7..ea3a386 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -32,7 +32,7 @@ The pipeline supports the following data types, selected via the `--mode` parame - `mags` — metagenome-assembled genomes (MAGs) - `bins` — metagenomic bins -Each mode has its own samplesheet structure, prerequisites, and limitations — see the dedicated section for the mode you want to use below. +Each mode has its own samplesheet _structure_, _prerequisites_, and _limitations_ — see the dedicated section for the mode you want to use below. ## Before you start @@ -52,110 +52,7 @@ Before running the pipeline in any mode, make sure that: - Provide either a study accession or a study registration metadata file for the study the submission will be associated with. See the [Submission study](#submission-study) section below for details. -<<<<<<< HEAD -```bash ---input '[path to samplesheet.csv]' -``` - -### `mags` and `bins` modes (`GENOMESUBMIT`) - -Use this samplesheet structure for MAG and bin submission. The input format follows [assets/schema_input_genome.json](../assets/schema_input_genome.json). - -Example: - -```csv title="samplesheet_genomes.csv" -sample,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage -mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default,CheckM2 1.0.1,92.81,1.09,66.04,sediment metagenome,No,marine,cable bacteria,marine sediment,No,d__Bacteria;p__Proteobacteria;s__ -``` - -> [!IMPORTANT] -> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. - -| Column | Description | -| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | A unique identifier for this data entry. Must be globally unique within the input dataset. | -| `fasta` | Path to MAG/bin contigs in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. | -| `accession` | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | -| `fastq_1` | Path to the read file in FASTQ format used to generate the source metagenomic assembly. Required if `genome_coverage` is not provided. | -| `fastq_2` | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | -| `assembly_software` | Tool name and version that were used to generate the source metagenomic assembly. | -| `binning_software` | Binning tool, including version, that was used to generate the bins. | -| `binning_parameters` | Arguments that were used during binning. | -| `stats_generation_software` | Tool, including version, that was used to calculate completeness and contamination. | -| `completeness` | Genome completeness value. | -| `contamination` | Genome contamination value. | -| `genome_coverage` | Estimated average sequencing depth across the genome. If the value is missing, it is computed automatically during pipeline execution when reads are provided. | -| `metagenome` | Registered metagenome taxonomic identifier or name that matches an existing ENA taxonomy entry. For more details see https://ena-docs.readthedocs.io/en/latest/faq/taxonomy.html | -| `co-assembly` | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: Yes or No. | -| `broad_environment` | Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428) | -| `local_environment` | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". | -| `environmental_medium` | Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). | -| `RNA_presence` | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: Yes or No. | -| `NCBI_lineage` | NCBI taxonomy lineage of the genome. Can be composted of either numerical IDs or taxon names separated by ";". | - -> [!NOTE] -> More information about envioronment tags can be found at checklists [ERC000050](https://www.ebi.ac.uk/ena/browser/view/ERC000050) for bins and [ERC000047](https://www.ebi.ac.uk/ena/browser/view/ERC000047) for MAGs under the field names "broad-scale environmental context", "local environmental context", and "environmental medium". - -### `metagenomic_assemblies` mode (`ASSEMBLYSUBMIT`) - -Use this samplesheet structure for metagenomic assembly submission. The input format follows [assets/schema_input_assembly.json](../assets/schema_input_assembly.json). - -Provide either read files (`fastq_1`, optionally `fastq_2`) or a `coverage` value for each row. If `coverage` is missing and reads are provided, the workflow calculates average coverage automatically. - -Example: - -```csv title="samplesheet_assembly.csv" -sample,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version -assembly_001,data/assembly_001.fasta.gz,data/assembly_001_R1.fastq.gz,data/assembly_001_R2.fastq.gz,,ERR011322,SPAdes,3.15.5 -assembly_002,data/assembly_002.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 -``` - -> [!IMPORTANT] -> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. - -| Column | Description | -| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | A unique identifier for this data entry. Must be globally unique within the input dataset. | -| `fasta` | Path to assembly contigs in FASTA format compressed with `gzip`. | -| `fastq_1` | Path to the read file in FASTQ format used to generate the metagenomic assembly. Required if `coverage` is not provided. | -| `fastq_2` | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | -| `coverage` | Estimated sequencing depth of the assembly. If this value is missing, it is computed automatically during pipeline execution when reads are provided. | -| `run_accession` | ENA run accession for the reads used to generate the metagenomic assembly. Reads must already be submitted to ENA. | -| `assembler` | Name of the assembler software used to generate the assembly. | -| `assembler_version` | Version of the assembler software used to generate the assembly. | - -An example file is available at [assets/samplesheet_assembly.csv](../assets/samplesheet_assembly.csv). - -### `reads` mode (`READSUBMIT`) - -Use this samplesheet structure for raw sequencing reads submission. The input format follows [assets/schema_input_reads.json](../assets/schema_input_reads.json). - -Example: - -```csv title="samplesheet_reads.csv" -sample,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description -illumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLUMINA,Illumina HiSeq 2000,GENOMIC,RANDOM,WGS,500,HiSeq_library_001,Illumina sequencing of sample XYZ -pacbio_run_001,SAMEA7654321,data/pacbio_reads.fastq.gz,,PACBIO_SMRT,PacBio Sequel,GENOMIC,RANDOM,WGS,,PacBio_library_002,Long-read sequencing -``` - -> [!IMPORTANT] -> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. - -| Column | Type | Required | Description | -| ------------------- | --------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | str | Yes | Unique identifier of this particular data entry. Used as an experiment name. | -| `sample_accession` | str | Yes | ENA sample accession (starting with SAMEA) of the sample used to generate raw reads. | -| `fastq_1` | file path | Yes | Path to forward reads in FASTQ format (optionally gzipped). | -| `fastq_2` | file path | No | Path to reverse reads for paired-end data. Leave empty for single-end reads. | -| `platform` | str | Yes | Sequencing platform. Supported values: `ILLUMINA`, `PACBIO_SMRT`, `OXFORD_NANOPORE`, `ION_TORRENT`, `CAPILLARY`, `DNBSEQ`, `ELEMENT`, `GENAPSYS`, `GENEMIND`, `HELICOS`, `LS454`, `BGISEQ`, `ULTIMA`, `VELA_DIAGNOSTICS`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | -| `instrument` | str | Yes | Sequencer model, e.g. "Illumina HiSeq 2000", "PacBio Sequel", "MinION". | -| `library_source` | str | Yes | Library source type. Options: `GENOMIC`, `METAGENOMIC`, `TRANSCRIPTOMIC`, `METAGENOMIC SINGLE CELL`, `TRANSCRIPTOMIC SINGLE CELL`, `SYNTHETIC`, `VIRAL RNA`, `OTHER`. | -| `library_selection` | str | Yes | Library selection method. Options: `RANDOM`, `PCR`, `RANDOM PCR`, `RT-PCR`, `MF`, `cDNA`, `cDNA_randomPriming`, `cDNA_oligo_dT`, `PolyA`, `Inverse rRNA`, `ChIP`, `MNase`, `DNase`, `Hybrid Selection`, etc. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | -| `library_strategy` | str | Yes | Library strategy. Options: `WGS`, `WGA`, `WXS`, `RNA-Seq`, `miRNA-Seq`, `ncRNA-Seq`, `EST`, `Hi-C`, `ATAC-seq`, `WCS`, `RAD-Seq`, `CLONE`, `AMPLICON`, `POOLCLONE`, `etc`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | -| `insert_size` | number | No | Fragment/insert size for paired-end reads (e.g., 500 for 500 bp inserts). Leave empty if not applicable. | -| `library_name` | str | No | Descriptive library name (optional). | -| `description` | str | No | Free-text description of the experiment (optional). | - +- Depending on the chosen mode, samples, reads, or metagenomic assemblies must be pre-submitted to ENA to obtain the corresponding accessions, which you then reference in your submission. Refer to the relevant mode section below for details. ## Submission study @@ -449,7 +346,7 @@ In particular, the CAT_pack database is extremely large and may take a long time - provide the path to a local database with `--checkm2_db`, otherwise the pipeline downloads the version specified with `--checkm2_db_download_id` (by default Zenodo accession `14897628`). - CAT_pack: - - provide the path to a local database (containing `tax/` and `db/` folders or a `tar.gz` archive) with `--cat_db`, otherwise the pipeline constructs the version specified with `--cat_db_download_id` (by default `nr`). + - provide the path to a local database (containing `tax/` and `db/` folders or a `tar.gz` archive) with `--cat_db`, otherwise the pipeline constructs NCBI non-redundant protein database. See the [CAT_pack documentation](https://github.com/MGXlab/CAT_pack) and [CheckM2 documentation](https://github.com/chklovski/CheckM2) for more details on usage and creation of databases. @@ -464,7 +361,7 @@ In addition to the [common parameters](#running-the-pipeline): | -------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | | `--upload_tpa` | No | Mark assemblies as [third party assemblies (TPA)](#third-party-assemblies-tpa) when required. Default: `false`. | | `--checkm2_db` | No | Path to a local CheckM2 database. If omitted, downloads the version set by `--checkm2_db_download_id`. Default: `14897628` (Zenodo accession). | -| `--cat_db` | No | Path to a local CAT_pack database. If omitted, constructs the version set by `--cat_db_download_id`. Default: `nr`. | +| `--cat_db` | No | Path to a local CAT_pack database. If omitted, constructs the NCBI non-redundant protein database. | Example `mags` mode upload to TEST server, run command with docker: @@ -530,50 +427,7 @@ Parameters common to all modes: | `--is_private` | No | Use if you are referencing private data accessions in your submission. Default: `false`. | | `--release_date` | No | Use if you want to keep your data private after submission until a particular date. | -<<<<<<< HEAD -Example `mags` mode upload to TEST server, run command with docker: - -```bash -nextflow run nf-core/seqsubmit \ - -profile docker \ - --mode mags \ - --input assets/samplesheet_genomes.csv \ - --submission_study \ - --centre_name TEST_CENTER \ - --webincli_mode submit \ - --test_upload \ - --outdir results/validate_mags -``` - -Example `metagenomic_assemblies` mode upload to TEST server, run command with docker: - -```bash -nextflow run nf-core/seqsubmit \ - -profile docker \ - --mode metagenomic_assemblies \ - --input assets/samplesheet_assembly.csv \ - --submission_study \ - --centre_name TEST_CENTER \ - --webincli_mode submit \ - --test_upload \ - --outdir results/validate_assemblies -``` - -Example `reads` mode upload to TEST server, run command with docker: - -```bash -nextflow run nf-core/seqsubmit \ - -profile docker \ - --mode reads \ - --input samplesheet_reads.csv \ - --submission_study \ - --webincli_mode submit \ - --test_upload \ - --outdir results/validate_reads -``` -======= Each mode also has additional parameters and example commands — see its own "`` parameters and example" subsection above. ->>>>>>> 1.0.0 If you wish to repeatedly use the same parameters for multiple runs, rather than specifying each flag in the command, you can specify these in a params file. diff --git a/main.nf b/main.nf index f741919..2ba497e 100644 --- a/main.nf +++ b/main.nf @@ -55,7 +55,7 @@ workflow NFCORE_SEQSUBMIT { params.checkm2_db, params.checkm2_db_download_id, params.cat_db, - params.cat_db_download_id, + "nr", // NCBI non-redundant protein database identifier params.centre_name, params.upload_tpa, params.test_upload, @@ -123,7 +123,9 @@ workflow { params.mode, params.help, params.help_full, - params.show_hidden + params.show_hidden, + params.submission_study, + params.study_metadata ) // diff --git a/nextflow.config b/nextflow.config index 2cef81c..c4a1fba 100644 --- a/nextflow.config +++ b/nextflow.config @@ -31,7 +31,6 @@ params { // NCBI taxonomy cat_db = null - cat_db_download_id = 'nr' // MultiQC options multiqc_config = null diff --git a/nextflow_schema.json b/nextflow_schema.json index a8bf46c..d6323b9 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -71,17 +71,10 @@ "help_text": "Provide a path to pre-downloaded DB or DB id for automatic download", "properties": { "cat_db": { - "type": "file-path", + "format": "file-path", "description": "Path to local CAT_pack DB", "help": "Database should be pre-downloaded using CATpack commands. The folder with database should contain sub-folders 'db' with files .dmnd, .fastaid2LCAtaxid, .taxids_with_multiple_offspring, etc, as well as subfolder 'tax' that should contain taxonomy files like .dmp, .taxdump.tar.gz, .prot.accession2taxid.FULL.gz, etc", "fa_icon": "fas fa-users-cog" - }, - "cat_db_download_id": { - "type": "string", - "description": "CAT_pack database ID for download", - "help": "There are two options available: nr (default) NCBI non-redundant protein database and gtdb (Genome Taxonomy Database (GTDB) proteins). We use NCBI proteins because ENA supports only NCBI format of taxonomy for submission", - "fa_icon": "fas fa-users-cog", - "default": "nr" } } }, @@ -93,7 +86,7 @@ "help_text": "These options are used to run Checkm2 that will calculate completeness and contamination of genome if those were not provided as input", "properties": { "checkm2_db": { - "type": "file-path", + "format": "file-path", "description": "Path to pre-downloaded checkm2 database", "fa_icon": "fas fa-users-cog" }, diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index d420ccc..7b73754 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -23,7 +23,7 @@ "@type": "Dataset", "creativeWorkStatus": "InProgress", "datePublished": "2026-04-30T13:32:49+00:00", - "description": "

    \n \n \n \"nf-core/seqsubmit\"\n \n

    \n\n[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/seqsubmit)\n[![GitHub Actions CI Status](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/seqsubmit/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.4-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-4.0.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.0.2)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/seqsubmit)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqsubmit-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqsubmit)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home).\nCurrently, the pipeline supports four submission modes, each routed to a dedicated workflow and requiring its own input samplesheet structure:\n\n- `mags` for Metagenome Assembled Genomes (MAGs) submission with `GENOMESUBMIT` workflow\n- `bins` for bins submission with `GENOMESUBMIT` workflow\n- `metagenomic_assemblies` for assembly submission with `ASSEMBLYSUBMIT` workflow\n- `reads` for raw sequencing reads submission with `READSUBMIT` workflow\n\n![seqsubmit workflow diagram](assets/seqsubmit_schema.png)\n\n## Requirements\n\n- [Nextflow](https://www.nextflow.io/) `>=25.04.0`\n- Webin account registered at https://www.ebi.ac.uk/ena/submit/webin/login\n- Raw reads used to assemble contigs submitted to [INSDC](https://www.insdc.org/) and associated accessions available\n\nSetup your environment secrets before running the pipeline:\n\n`nextflow secrets set ENA_WEBIN \"Webin-XXX\"`\n\n`nextflow secrets set ENA_WEBIN_PASSWORD \"XXX\"`\n\nMake sure you update commands above with your authorised credentials.\n\n## Input samplesheets\n\nFor detailed descriptions of all samplesheet columns, see the [usage documentation](docs/usage.md#samplesheet-input).\n\n### `mags` and `bins` modes (`GENOMESUBMIT`)\n\nThe input must follow `assets/schema_input_genome.json`.\n\nRequired columns:\n\n- `sample`\n- `fasta` (must end with `.fa.gz`, `.fasta.gz`, or `.fna.gz`)\n- `accession`\n- `assembly_software`\n- `binning_software`\n- `binning_parameters`\n- `metagenome`\n- `environmental_medium`\n- `broad_environment`\n- `local_environment`\n- `co-assembly`\n\nAt least one of the following must be provided per row:\n\n- reads (`fastq_1`, optional `fastq_2` for paired-end)\n- `genome_coverage`\n\nAdditional supported columns:\n\n- `stats_generation_software`\n- `completeness`\n- `contamination`\n- `RNA_presence`\n- `NCBI_lineage`\n\nIf `genome_coverage`, `stats_generation_software`, `completeness`, `contamination`, `RNA_presence`, or `NCBI_lineage` are missing, the workflow can calculate or infer them when the required inputs are available.\n\nThose fields are metadata required for the [genome_uploader](https://github.com/EBI-Metagenomics/genome_uploader) package.\n\nExample `samplesheet_genomes.csv`:\n\n```csv\nsample,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage\nlachnospira_eligens,data/bin_lachnospira_eligens.fa.gz,SRR24458089,,,spades_v3.15.5,metabat2_v2.6,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,No,marine,cable_bacteria,marine_sediment,No,d__Bacteria;p__Proteobacteria;s__unclassified_Proteobacteria\n```\n\n> [!IMPORTANT]\n> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown.\n\n### `metagenomic_assemblies` mode (`ASSEMBLYSUBMIT`)\n\nThe input must follow `assets/schema_input_assembly.json`.\n\nRequired columns:\n\n- `sample`\n- `fasta` (must end with `.fa.gz`, `.fasta.gz`, or `.fna.gz`)\n- `run_accession`\n- `assembler`\n- `assembler_version`\n\nAt least one of the following must be provided per row:\n\n- reads (`fastq_1`, optional `fastq_2` for paired-end)\n- `coverage`\n\nIf `coverage` is missing and reads are provided, the workflow calculates average coverage with `coverm`.\n\nExample `samplesheet_assembly.csv`:\n\n```csv\nsample,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version\nassembly_1,data/contigs_1.fasta.gz,data/reads_1.fastq.gz,data/reads_2.fastq.gz,,ERR011322,SPAdes,3.15.5\nassembly_2,data/contigs_2.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9\n```\n\n> [!IMPORTANT]\n> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown.\n\n### `reads` mode (`READSUBMIT`)\n\nThe input must follow `assets/schema_input_reads.json`.\n\nRequired columns:\n\n- `sample`\n- `sample_accession`\n- `fastq_1`\n- `fastq_2`\n- `platform`\n- `instrument`\n- `library_source`\n- `library_selection`\n- `library_strategy`\n\nOptional columns:\n\n- `insert_size`\n- `library_name`\n- `description`\n\nExample `samplesheet_reads.csv`:\n\n```csv\nsample,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description\nillumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLUMINA,Illumina HiSeq 2000,GENOMIC,RANDOM,WGS,500,HiSeq_library_001,Illumina sequencing of sample XYZ\n```\n\n> [!IMPORTANT]\n> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown.\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/get_started/environment_setup/overview) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/get_started/run-your-first-pipeline) with `-profile test` before running the workflow on actual data.\n\n### Submission study\n\nAll data submitted through this pipeline must be associated with an ENA study (project). You can either pass an accession of your existing study via `--submission_study`or provide a metadata file via `--study_metadata` and the pipeline will register the study with ENA before submitting your data.\n\nSee the [usage documentation](docs/usage.md#submission-study) for more details.\n\n### Data privacy\n\nYou can reference private ENA data if you have access to it via your Webin account (it was submitted previously under your credentials). To use private data accessions in your submission metadata, specify the `--is_private` flag. The pipeline will then use your provided Webin credentials to fetch the required metadata.\n\nYou can also control the privacy of your submitted data:\n\n- If you provide an existing study via `--submission_study`, your submission will inherit the same privacy status as that study.\n- If no study is provided, the pipeline will register a new one for you. To keep this new study private, you must specify a release date using `--release_date YYYY-MM-DD` (up to 2 years from the current date).\n\n| Example | Source Data | Submission Visibility | Required Arguments | Result |\n| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | --------------------- | ------------------------------------------------------ | ----------------------------------------------------- |\n| Assemblies generated from public reads. Assemblies should be public immediately after submission | public | public | \u2013 | SUCCESS |\n| Assemblies generated from public reads. Assemblies should remain private for 1 year after submission | public | private | `--release_date YYYY-MM-DD` (+1 year) | SUCCESS |\n| Bins generated from private reads and assemblies. Bins should be public after submission. User **has access** to the reads and assemblies via Webin account | private | public | `--is_private` | SUCCESS |\n| Bins generated from private reads and assemblies. Bins should remain private for 2 years after submission. User **has access** via Webin account | private | private | `--is_private`, `--release_date YYYY-MM-DD` (+2 years) | SUCCESS |\n| MAGs generated from private reads and assemblies. MAGs should be public after submission. User **does not have access** to the reads and assemblies via Webin account | private | public | \u2013 | ERROR (submission can only reference accessible data) |\n\n### Database setup (`CheckM2` and `CAT_pack`)\n\nThe `mags`/`bins` workflow requires databases for completeness/contamination estimation and taxonomy assignment. See [Usage documentation](usage.md) for details.\n\n### Required parameters:\n\n| Parameter | Description |\n| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- |\n| `--mode` | Type of the data to be submitted. Options: `[mags, bins, metagenomic_assemblies, reads]` |\n| `--input` | Path to the samplesheet describing the data to be submitted |\n| `--outdir` | Path to the output directory for pipeline results |\n| `--submission_study` OR `--study_metadata` | ENA study accession (PRJ/ERP) to submit the data to OR metadata file in JSON/TSV/CSV format to register new study |\n| `--centre_name` | Name of the submitter's organisation |\n\n### Optional parameters:\n\n| Parameter | Description |\n| ----------------- | ------------------------------------------------------------------------------------------ |\n| `--upload_tpa` | Flag to control the type of assembly study (third party assembly or not). Default: false |\n| `--test_upload` | Upload to TEST ENA server instead of LIVE. Default: true |\n| `--webincli_mode` | Choose Webin-CLI mode: `submit` or `validate`. Default: `submit` |\n| `--private` | Use that flag if you are referring to private data in ENA |\n| `--release_date` | Use that flag if you want to keep your data private after submission until particular date |\n\nGeneral command template:\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile \\\n --mode \\\n --input \\\n --centre_name \\\n --submission_study \\\n --outdir \n```\n\nTest run (submission to the ENA TEST server) in `mags` mode:\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile docker \\\n --mode mags \\\n --input assets/samplesheet_genomes.csv \\\n --submission_study \\\n --centre_name TEST_CENTER \\\n --webincli_mode submit \\\n --test_upload true \\\n --outdir results/validate_mags\n```\n\nTest run (submission to the ENA TEST server) in `metagenomic_assemblies` mode:\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile docker \\\n --mode metagenomic_assemblies \\\n --input assets/samplesheet_assembly.csv \\\n --submission_study \\\n --centre_name TEST_CENTER \\\n --webincli_mode submit \\\n --test_upload true \\\n --outdir results/validate_assemblies\n```\n\nLive submission example:\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile docker \\\n --mode metagenomic_assemblies \\\n --input assets/samplesheet_assembly.csv \\\n --submission_study PRJEB98843 \\\n --test_upload false \\\n --webincli_mode submit \\\n --outdir results/live_assembly\n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/running/run-pipelines#using-parameter-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/seqsubmit/usage) and the [parameter documentation](https://nf-co.re/seqsubmit/parameters).\n\n## Pipeline output\n\nKey output locations in `--outdir`:\n\n- `mags/` or `bins/`: genome metadata, manifests, and per-sample submission support files\n- `metagenomic_assemblies/`: assembly metadata CSVs and per-sample coverage files\n- `multiqc/`: MultiQC summary report\n- `pipeline_info/`: execution reports, trace, DAG, and software versions\n\nFor full details, see the [output documentation](https://nf-co.re/seqsubmit/output).\n\n## Credits\n\nnf-core/seqsubmit was originally written by [Martin Beracochea](https://github.com/mberacochea), [Ekaterina Sakharova](https://github.com/KateSakharova), [Sofia Ochkalova](https://github.com/ochkalova), [Evangelos Karatzas](https://github.com/vagkaratzas) and [Tim Rozday](https://github.com/timrozday-mgnify).\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](docs/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#seqsubmit` channel](https://nfcore.slack.com/channels/seqsubmit) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\n\n\nIf you use this pipeline please make sure to cite all used software.\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/main/LICENSE).\n\n> **MGnify: the microbiome sequence data analysis resource in 2023**\n>\n> Richardson L, Allen B, Baldi G, Beracochea M, Bileschi ML, Burdett T, et al.\n>\n> Vol. 51, Nucleic Acids Research. Oxford University Press (OUP); 2022. p. D753\u20139. Available from: http://dx.doi.org/10.1093/nar/gkac1080\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", + "description": "

    \n \n \n \"nf-core/seqsubmit\"\n \n

    \n\n[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/seqsubmit)\n[![GitHub Actions CI Status](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/seqsubmit/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.4-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-4.0.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.0.2)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/seqsubmit)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqsubmit-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqsubmit)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home).\nCurrently, the pipeline supports four submission modes, each routed to a dedicated workflow and requiring its own input samplesheet structure:\n\n- `mags` for Metagenome Assembled Genomes (MAGs) submission with `GENOMESUBMIT` workflow\n- `bins` for bins submission with `GENOMESUBMIT` workflow\n- `metagenomic_assemblies` for assembly submission with `ASSEMBLYSUBMIT` workflow\n- `reads` for raw sequencing reads submission with `READSUBMIT` workflow\n\n![seqsubmit workflow diagram](docs/images/seqsubmit_schema.png)\n\n**nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home).\nThe pipeline currently supports the following submission modes, each routed to a dedicated workflow:\n\n- `reads` \u2014 raw sequencing reads submission via the `READSUBMIT` workflow (pink)\n- `metagenomic_assemblies` \u2014 assembly submission via the `ASSEMBLYSUBMIT` workflow (green)\n- `mags` \u2014 metagenome-assembled genomes (MAGs) submission via the `GENOMESUBMIT` workflow (blue)\n- `bins` \u2014 bins submission via the `GENOMESUBMIT` workflow (blue)\n\n\n\nEach workflow has its own samplesheet structure, prerequisites, and limitations \u2014 they are briefly described below. See the [usage documentation](https://nf-co.re/seqsubmit/usage) for more detailed explanations.\n\n## Requirements\n\n- [Nextflow](https://www.nextflow.io/) `>=25.04.0`\n- A Webin account registered at \n\n Set your Webin credentials as Nextflow secrets:\n\n ```bash\n nextflow secrets set ENA_WEBIN \"Webin-XXX\"\n nextflow secrets set ENA_WEBIN_PASSWORD \"XXX\"\n ```\n\n Make sure to replace the values above with your own credentials.\n\n- Provide either a study accession or a study registration metadata file for the study the submission will be associated with. See the [Submission study](docs/usage.md#submission-study) section of the usage documentation for details.\n\n- Depending on the chosen mode, samples, reads, or metagenomic assemblies must be pre-submitted to ENA to obtain the corresponding accessions, which you then reference in your submission. Refer to the relevant mode section in the [usage documentation](https://nf-co.re/seqsubmit/usage) for details.\n\n## Input samplesheets\n\n### `reads` mode\n\nExample:\n\n```csv\nsample,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description\nillumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLUMINA,Illumina HiSeq 2000,GENOMIC,RANDOM,WGS,500,HiSeq_library_001,Illumina sequencing of sample XYZ\n```\n\nSee the [`reads` mode section](docs/usage.md#samplesheet-input) of the usage documentation for more details.\n\n### `metagenomic_assemblies` mode\n\nExample:\n\n```csv\nsample,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version\nassembly_1,data/contigs_1.fasta.gz,data/reads_1.fastq.gz,data/reads_2.fastq.gz,,ERR011322,SPAdes,3.15.5\nassembly_2,data/contigs_2.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9\n```\n\nSee the [`metagenomic_assemblies` mode section](docs/usage.md#samplesheet-input-1) of the usage documentation for more details.\n\n### `mags` and `bins` modes\n\nExample:\n\n```csv\nsample,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage\nlachnospira_eligens,data/bin_lachnospira_eligens.fa.gz,SRR24458089,,,spades_v3.15.5,metabat2_v2.6,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,No,marine,cable_bacteria,marine_sediment,No,d__Bacteria;p__Proteobacteria;s__unclassified_Proteobacteria\n```\n\nSee the [`mags` and `bins` modes section](docs/usage.md#samplesheet-input-2) of the usage documentation for the full list of required and optional columns.\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/get_started/environment_setup/overview) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/get_started/run-your-first-pipeline) with `-profile test` before running the workflow on actual data.\n\n### Running the pipeline\n\nEach mode also has its own additional parameters and example commands \u2014 see the [usage documentation](https://nf-co.re/seqsubmit/usage) for details. General command template:\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile \\\n --mode \\\n --input \\\n --centre_name \\\n --submission_study \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/running/run-pipelines#using-parameter-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/seqsubmit/usage) and the [parameter documentation](https://nf-co.re/seqsubmit/parameters).\n\n## Pipeline output\n\nKey output locations in `--outdir`:\n\n- `reads/`: per-sample submission receipts and accessions\n- `metagenomic_assemblies/`: assembly metadata CSVs and per-sample coverage files\n- `mags/` or `bins/`: genome metadata, manifests, and per-sample submission support files\n- `multiqc/`: MultiQC summary report\n- `pipeline_info/`: execution reports, trace, DAG, and software versions\n\nFor full details, see the [output documentation](https://nf-co.re/seqsubmit/output).\n\n## Credits\n\nnf-core/seqsubmit was originally written by [Martin Beracochea](https://github.com/mberacochea), [Ekaterina Sakharova](https://github.com/KateSakharova), [Sofia Ochkalova](https://github.com/ochkalova), [Evangelos Karatzas](https://github.com/vagkaratzas) and [Tim Rozday](https://github.com/timrozday-mgnify).\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](docs/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#seqsubmit` channel](https://nfcore.slack.com/channels/seqsubmit) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\n\n\nIf you use this pipeline please make sure to cite all used software.\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/main/LICENSE).\n\n> **MGnify: the microbiome sequence data analysis resource in 2023**\n>\n> Richardson L, Allen B, Baldi G, Beracochea M, Bileschi ML, Burdett T, et al.\n>\n> Vol. 51, Nucleic Acids Research. Oxford University Press (OUP); 2022. p. D753\u20139. Available from: http://dx.doi.org/10.1093/nar/gkac1080\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", "hasPart": [ { "@id": "main.nf" diff --git a/subworkflows/local/genome_evaluation/main.nf b/subworkflows/local/genome_evaluation/main.nf index 4f4921f..4c477ee 100644 --- a/subworkflows/local/genome_evaluation/main.nf +++ b/subworkflows/local/genome_evaluation/main.nf @@ -20,11 +20,9 @@ include { CHECKM2_PREDICT } from '../../../modules/nf-core/checkm2/pred workflow GENOME_EVALUATION { take: - ch_fasta // channel: [ val(meta), path(fasta) ] - ch_checkm2_db // channel: [ val(meta), path(db) ] - pre-built db as directory - // provide channel.empty() to trigger automatic download via ch_checkm2_db_download_id - ch_checkm2_db_download_id // channel: [ val(meta), val(db_id) ] - db ID for CHECKM2_DATABASEDOWNLOAD (e.g. '1234567') - // only used if ch_checkm2_db is empty + ch_fasta // channel: [ val(meta), path(fasta) ] + ch_checkm2_db // val: path to CheckM2 database or null + ch_checkm2_db_download_id // val: CheckM2 database download ID main: @@ -33,18 +31,12 @@ workflow GENOME_EVALUATION { // // Download and prepare db from scratch if no pre-built db provided - // Only trigger if ch_fasta has items - ch_download_trigger = ch_checkm2_db - .count() - .filter { count -> count == 0 } // Only proceed if ch_checkm2_db is empty - .combine(ch_fasta.first()) - .combine(ch_checkm2_db_download_id) - .map { _count, _meta, _fasta, db_meta, db_id -> [db_meta, db_id] } - - CHECKM2_DATABASEDOWNLOAD(ch_download_trigger) - - // Combine db sources - one of these channels will be empty depending on inputs - ch_db = ch_checkm2_db.mix(CHECKM2_DATABASEDOWNLOAD.out.database).first() + if (ch_checkm2_db) { + ch_checkm2_db = channel.value([[id: 'checkm2_db'], file(params.checkm2_db, checkIfExists: true)]) + } else { + CHECKM2_DATABASEDOWNLOAD(ch_checkm2_db_download_id) + ch_checkm2_db = CHECKM2_DATABASEDOWNLOAD.out.database + } // // Genome evaluation @@ -52,7 +44,7 @@ workflow GENOME_EVALUATION { CHECKM2_PREDICT( ch_fasta, - ch_db, + ch_checkm2_db, ) emit: diff --git a/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf b/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf index f65014a..4ea8248 100644 --- a/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf @@ -35,6 +35,8 @@ workflow PIPELINE_INITIALISATION { help // boolean: Display help message and exit help_full // boolean: Show the full help message show_hidden // boolean: Show hidden parameters in the help message + submission_study // val: ENA study accession for all reads in this run (optional). + study_metadata // val: path to study metadata file for study creation (used if no submission_study provided) main: @@ -113,6 +115,12 @@ workflow PIPELINE_INITIALISATION { ch_samplesheet = channel .fromList(samplesheetToList(input, "${projectDir}/assets/schema_input_reads.json")) } + + // check submission study and metadata presence/absence for REGISTER STUDY + if (!submission_study && !study_metadata) { + error("Either --submission_study or --study_metadata must be provided") + } + emit: samplesheet = ch_samplesheet versions = ch_versions diff --git a/workflows/assemblysubmit.nf b/workflows/assemblysubmit.nf index d599b59..b209609 100644 --- a/workflows/assemblysubmit.nf +++ b/workflows/assemblysubmit.nf @@ -48,7 +48,7 @@ workflow ASSEMBLYSUBMIT { def ch_versions = channel.empty() def ch_multiqc_files = channel.empty() - // Create assembly channel with proper metadata structure + // --------- Create assembly channel with proper metadata structure assembly_fasta = ch_samplesheet .map { row -> def meta = [ @@ -62,6 +62,7 @@ workflow ASSEMBLYSUBMIT { [meta, file(row[1])] } + // --------- Create reads channel with proper metadata structure reads_fastq = ch_samplesheet .filter { row -> row[2] && row[2] != "" } // Check if fastq_1 exists and is not empty .map { row -> @@ -88,15 +89,15 @@ workflow ASSEMBLYSUBMIT { assembly_fasta ) + // --------- Assembly coverage calculation // For assemblies without coverage, calculate coverage with CoverM - FASTA_VALIDATION.out.valid_fastas + coverm_input = FASTA_VALIDATION.out.valid_fastas .filter { meta, _fasta -> meta.coverage == null } .join(reads_fastq) .multiMap { meta, fasta, fastq -> assembly: [ meta, fasta ] reads: [ meta, fastq ] } - .set { coverm_input } COVERM_CONTIG ( coverm_input.reads, @@ -119,7 +120,7 @@ workflow ASSEMBLYSUBMIT { } // Update metadata with calculated coverage - FASTA_VALIDATION.out.valid_fastas + assemblies_with_added_cov_ch = FASTA_VALIDATION.out.valid_fastas .filter { meta, _fasta -> meta.coverage == null } .join( average_coverage_ch ) .map { meta, fasta, avg_coverage -> @@ -127,7 +128,6 @@ workflow ASSEMBLYSUBMIT { updated_meta.coverage = avg_coverage [updated_meta, fasta] } - .set { assemblies_with_added_cov_ch } // Combine assemblies with updated metadata (for samples that had coverage calculated) // and assemblies that already had coverage @@ -135,20 +135,18 @@ workflow ASSEMBLYSUBMIT { .filter { meta, _fasta -> meta.coverage != null } .mix( assemblies_with_added_cov_ch ) - // Create CSV with assembly metadata for manifest generation + // --------- Create CSV with assembly metadata for manifest generation CREATE_ASSEMBLY_METADATA_CSV( assemblies_with_coverage ) - // Concatenate assembly metadata CSVs into single file to publish + // --------- Concatenate assembly metadata CSVs into single file to publish CONCAT_METADATA ( CREATE_ASSEMBLY_METADATA_CSV.out.csv.map { _meta, file -> file }.collect().map { files -> [ [id: "assemblies_metadata"], files ] }, 'true' // skip_header - we want to keep the header from the first file and skip it for the rest ) - if (!submission_study && !study_metadata) { - error("Either --submission_study or --study_metadata must be provided") - } + // --------- Register study if accession was not provided via --submission_study def study_accession_ch if (submission_study) { // Use provided study accession directly @@ -168,7 +166,7 @@ workflow ASSEMBLYSUBMIT { } } - // Generate assembly manifest files and submit them to ENA + // --------- Generate assembly manifest files and submit them to ENA GENERATE_ASSEMBLY_MANIFEST( assemblies_with_coverage.join(CREATE_ASSEMBLY_METADATA_CSV.out.csv), study_accession_ch.first(), @@ -177,6 +175,7 @@ workflow ASSEMBLYSUBMIT { is_private ) + // --------- Upload data to ENA SUBMIT ( assemblies_with_coverage.join(GENERATE_ASSEMBLY_MANIFEST.out.manifest), test_upload, @@ -190,9 +189,7 @@ workflow ASSEMBLYSUBMIT { 'true' // skip_header - we want to keep the header from the first file and skip it for the rest ) - // - // Collate and save software versions - // + // --------- Collate and save software versions def topic_versions = channel.topic("versions") .distinct() .branch { entry -> @@ -219,9 +216,7 @@ workflow ASSEMBLYSUBMIT { newLine: true ) - // - // MODULE: MultiQC - // + // --------- MODULE: MultiQC ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) def ch_summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") def ch_workflow_summary = channel.value(paramsSummaryMultiqc(ch_summary_params)) diff --git a/workflows/genomesubmit.nf b/workflows/genomesubmit.nf index 780a88e..d16de68 100644 --- a/workflows/genomesubmit.nf +++ b/workflows/genomesubmit.nf @@ -59,7 +59,7 @@ workflow GENOMESUBMIT { def ch_versions = channel.empty() def ch_multiqc_files = channel.empty() - // --------- Create genomes channel with proper metadata structure + // --------- Create genomes channel with proper metadata structure genome_fasta_and_reads = ch_samplesheet .map { row -> def meta = [ @@ -102,19 +102,17 @@ workflow GENOMESUBMIT { ) // --------- Genome coverage calculation - FASTA_VALIDATION.out.valid_fastas + branched_coverage_results = FASTA_VALIDATION.out.valid_fastas .branch { meta, _fasta -> genome_coverage_ref_input: meta.genome_coverage == null genome_coverage_present: true // Everything else goes here } - .set { branched_coverage_results } - branched_coverage_results.genome_coverage_ref_input.join(genome_reads) + coverm_input = branched_coverage_results.genome_coverage_ref_input.join(genome_reads) .multiMap { meta, fasta, fastq -> genome: [ meta, fasta ] raw_reads: [ meta, fastq ] } - .set { coverm_input } COVERM_GENOME ( coverm_input.raw_reads, @@ -138,12 +136,11 @@ workflow GENOMESUBMIT { .mix(branched_coverage_results.genome_coverage_present) // --------- For genomes without RNA_presence info, calculate rRNA and tRNA - fasta_updated_with_coverage + branched_rna_results = fasta_updated_with_coverage .branch { meta, _fasta -> rna_prediction_input: meta.RNA_presence == null rna_present: true // Everything else goes here } - .set { branched_rna_results } RNA_DETECTION ( branched_rna_results.rna_prediction_input, @@ -164,26 +161,16 @@ workflow GENOMESUBMIT { .mix(branched_rna_results.rna_present) // --------- Completeness and contamination calculation - fasta_updated_with_rna + branched_stats_results = fasta_updated_with_rna .branch { meta, _fasta -> genome_evaluation_input: meta.completeness == null || meta.contamination == null || meta.stats_generation_software == null evaluation_present: true // Everything else goes here } - .set { branched_stats_results } - - // build input structures for CheckM2 DB depending on what provided as input - def checkm2_db_input = checkm2_db - ? channel.of( [['id': 'CHECKM2_DB'], file(checkm2_db)] ) - : channel.empty() - - def checkm2_db_id_input = (!checkm2_db && checkm2_db_download_id) - ? channel.of( [['id': 'CHECKM2_DB_id'], checkm2_db_download_id] ) - : channel.empty() GENOME_EVALUATION ( branched_stats_results.genome_evaluation_input, - checkm2_db_input, - checkm2_db_id_input + checkm2_db, + checkm2_db_download_id ) // Create a value channel with the version string @@ -206,12 +193,11 @@ workflow GENOMESUBMIT { .mix(branched_stats_results.evaluation_present) // --------- Taxonomy - fasta_updated_with_stats + branched_taxonomy_results = fasta_updated_with_stats .branch { meta, _fasta -> genome_taxonomy_input: meta.NCBI_lineage == null taxonomy_present: true // Everything else goes here } - .set { branched_taxonomy_results } // Change extension for all files required taxonomy to .fasta because CATPACK requires suffix as input RENAME_FASTA_FOR_CATPACK ( @@ -258,10 +244,7 @@ workflow GENOMESUBMIT { 'true' // skip_header - we want to keep the header from the first file and skip it for the rest ) - // --------- Register study if accession not provided - if (!submission_study && !study_metadata) { - error("Either --submission_study or --study_metadata must be provided") - } + // --------- Register study if accession not provided via --submission_study def study_accession_ch if (submission_study) { study_accession_ch = channel.of(submission_study) @@ -312,7 +295,6 @@ workflow GENOMESUBMIT { } // --------- Upload data to ENA - SUBMIT ( ch_combined, test_upload, @@ -326,9 +308,7 @@ workflow GENOMESUBMIT { 'true' // skip_header - we want to keep the header from the first file and skip it for the rest ) - // - // Collate and save software versions - // + // --------- Collate and save software versions def topic_versions = channel.topic("versions") .distinct() .branch { entry -> @@ -355,10 +335,7 @@ workflow GENOMESUBMIT { newLine: true ) - - // - // MODULE: MultiQC - // + // --------- MODULE: MultiQC ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) def ch_summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") def ch_workflow_summary = channel.value(paramsSummaryMultiqc(ch_summary_params)) diff --git a/workflows/readsubmit.nf b/workflows/readsubmit.nf index 547b466..8b90399 100644 --- a/workflows/readsubmit.nf +++ b/workflows/readsubmit.nf @@ -43,7 +43,7 @@ workflow READSUBMIT { def ch_versions = channel.empty() def ch_multiqc_files = channel.empty() - // Create reads channel with proper metadata structure + // --------- Create reads channel with proper metadata structure reads_ch = ch_samplesheet .map { row -> def (meta_in, sample_accession, fastq_1, fastq_2, @@ -72,9 +72,7 @@ workflow READSUBMIT { } } - if (!submission_study && !study_metadata) { - error("Either --submission_study or --study_metadata must be provided") - } + // --------- Register study if accession was not provided via --submission_study def study_accession_ch if (submission_study) { // Use provided study accession directly @@ -94,7 +92,7 @@ workflow READSUBMIT { } } - // Generate reads manifest files + // --------- Generate reads manifest files CREATE_READS_MANIFEST( reads_ch, study_accession_ch.first() @@ -106,6 +104,7 @@ workflow READSUBMIT { [meta, fastq, manifest] } + // --------- Upload data to ENA SUBMIT ( submission_input, test_upload, @@ -119,9 +118,7 @@ workflow READSUBMIT { true // skip_header - we want to keep the header from the first file and skip it for the rest ) - // - // Collate and save software versions - // + // --------- Collate and save software versions def topic_versions = channel.topic("versions") .distinct() .branch { entry -> @@ -148,9 +145,7 @@ workflow READSUBMIT { newLine: true ) - // - // MODULE: MultiQC - // + // --------- MODULE: MultiQC ch_multiqc_files = ch_multiqc_files.mix(ch_collated_versions) def ch_summary_params = paramsSummaryMap(workflow, parameters_schema: "nextflow_schema.json") def ch_workflow_summary = channel.value(paramsSummaryMultiqc(ch_summary_params)) From 1a31a0f6ca60740c5231fb4db8d0d7ea959a67fe Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Tue, 21 Jul 2026 20:56:35 +0100 Subject: [PATCH 29/47] rename sample to id in samplesheet and add fields to meta directly from schema --- README.md | 14 ++------- assets/schema_input_assembly.json | 19 ++++++----- assets/schema_input_genome.json | 52 ++++++++++++++++++++----------- assets/schema_input_reads.json | 33 +++++++++++++------- docs/usage.md | 27 ++++++---------- workflows/assemblysubmit.nf | 31 +++++------------- workflows/genomesubmit.nf | 31 +++--------------- workflows/readsubmit.nf | 26 +++------------- 8 files changed, 97 insertions(+), 136 deletions(-) diff --git a/README.md b/README.md index e3e201a..f7b381c 100644 --- a/README.md +++ b/README.md @@ -21,14 +21,6 @@ ## Introduction -**nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home). -Currently, the pipeline supports four submission modes, each routed to a dedicated workflow and requiring its own input samplesheet structure: - -- `mags` for Metagenome Assembled Genomes (MAGs) submission with `GENOMESUBMIT` workflow -- `bins` for bins submission with `GENOMESUBMIT` workflow -- `metagenomic_assemblies` for assembly submission with `ASSEMBLYSUBMIT` workflow -- `reads` for raw sequencing reads submission with `READSUBMIT` workflow - ![seqsubmit workflow diagram](docs/images/seqsubmit_schema.png) **nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home). @@ -68,7 +60,7 @@ Each workflow has its own samplesheet structure, prerequisites, and limitations Example: ```csv -sample,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description +id,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description illumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLUMINA,Illumina HiSeq 2000,GENOMIC,RANDOM,WGS,500,HiSeq_library_001,Illumina sequencing of sample XYZ ``` @@ -79,7 +71,7 @@ See the [`reads` mode section](docs/usage.md#samplesheet-input) of the usage doc Example: ```csv -sample,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version +id,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version assembly_1,data/contigs_1.fasta.gz,data/reads_1.fastq.gz,data/reads_2.fastq.gz,,ERR011322,SPAdes,3.15.5 assembly_2,data/contigs_2.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 ``` @@ -91,7 +83,7 @@ See the [`metagenomic_assemblies` mode section](docs/usage.md#samplesheet-input- Example: ```csv -sample,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage +id,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage lachnospira_eligens,data/bin_lachnospira_eligens.fa.gz,SRR24458089,,,spades_v3.15.5,metabat2_v2.6,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,No,marine,cable_bacteria,marine_sediment,No,d__Bacteria;p__Proteobacteria;s__unclassified_Proteobacteria ``` diff --git a/assets/schema_input_assembly.json b/assets/schema_input_assembly.json index 6123501..78d1d60 100644 --- a/assets/schema_input_assembly.json +++ b/assets/schema_input_assembly.json @@ -7,10 +7,11 @@ "items": { "type": "object", "properties": { - "sample": { + "id": { "type": "string", "pattern": "^\\S+$", - "errorMessage": "Sample must be provided and cannot contain spaces", + "description": "Unique assembly identifier", + "errorMessage": "ID must be provided and cannot contain spaces", "meta": ["id"] }, "fasta": { @@ -65,28 +66,32 @@ } ], "errorMessage": "Coverage must be a positive number or empty", - "description": "Estimated value of assembly coverage" + "description": "Estimated value of assembly coverage", + "meta": ["coverage"] }, "run_accession": { "type": "string", "pattern": "^\\S+$", "errorMessage": "Accession must be provided and cannot contain spaces", - "description": "Accession of the run used to generate the assembly" + "description": "Accession of the run used to generate the assembly", + "meta": ["run_accession"] }, "assembler": { "type": "string", "pattern": "^\\S+$", "errorMessage": "Assembler must be provided and cannot contain spaces", - "description": "Name of the assembler software used to generate the assembly, e.g. MEGAHIT, SPAdes, metaSPAdes, Flye, etc" + "description": "Name of the assembler software used to generate the assembly, e.g. MEGAHIT, SPAdes, metaSPAdes, Flye, etc", + "meta": ["assembler"] }, "assembler_version": { "anyOf": [{ "type": "string" }, { "type": "number" }], "pattern": "^\\S+$", "errorMessage": "Assembler version must be provided and cannot contain spaces", - "description": "Version of the assembler software used to generate the assembly, e.g 1.0.0" + "description": "Version of the assembler software used to generate the assembly, e.g 1.0.0", + "meta": ["assembler_version"] } }, - "required": ["sample", "fasta", "run_accession", "assembler", "assembler_version"], + "required": ["id", "fasta", "run_accession", "assembler", "assembler_version"], "anyOf": [ { "properties": { diff --git a/assets/schema_input_genome.json b/assets/schema_input_genome.json index a603b2c..db21b28 100644 --- a/assets/schema_input_genome.json +++ b/assets/schema_input_genome.json @@ -7,10 +7,11 @@ "items": { "type": "object", "properties": { - "sample": { + "id": { "type": "string", "pattern": "^\\S+$", - "errorMessage": "Sample name must be provided and cannot contain spaces", + "description": "Unique mag/bin identifier", + "errorMessage": "ID must be provided and cannot contain spaces", "meta": ["id"] }, "fasta": { @@ -23,7 +24,8 @@ }, "accession": { "type": "string", - "description": "Run or assembly ENA accession" + "description": "Run or assembly ENA accession", + "meta": ["accession"] }, "fastq_1": { "anyOf": [ @@ -59,69 +61,83 @@ }, "assembly_software": { "type": "string", - "description": "Tool name and version that was used to assemble data, e.g. MEGAHIT_v1.0, SPAdes_v4.0.0, metaSPAdes_v3.15.0" + "description": "Tool name and version that was used to assemble data, e.g. MEGAHIT_v1.0, SPAdes_v4.0.0, metaSPAdes_v3.15.0", + "meta": ["assembly_software"] }, "binning_software": { "type": "string", - "description": "Tool name and version that was used to bin data, e.g. MetaBAT2, VAMB, MaxBin2, CONCOCT, SemiBin2, COMEBin, etc" + "description": "Tool name and version that was used to bin data, e.g. MetaBAT2, VAMB, MaxBin2, CONCOCT, SemiBin2, COMEBin, etc", + "meta": ["binning_software"] }, "binning_parameters": { "type": "string", - "description": "Arguments used to bin data different from default, e.g. -min_contig_length 1000" + "description": "Arguments used to bin data different from default, e.g. -min_contig_length 1000", + "meta": ["binning_parameters"] }, "stats_generation_software": { "type": "string", - "description": "Tool(s) used to estimate completeness and contamination" + "description": "Tool(s) used to estimate completeness and contamination", + "meta": ["stats_generation_software"] }, "completeness": { "type": "number", "description": "MAG/bin completeness score: the ratio of observed single-copy marker genes to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined", "exclusiveMinimum": 0, - "exclusiveMaximum": 100 + "exclusiveMaximum": 100, + "meta": ["completeness"] }, "contamination": { "type": "number", "description": "MAG/bin contamination score: the ratio of observed single-copy marker genes in ≥2 copies to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined", "exclusiveMinimum": 0, - "exclusiveMaximum": 100 + "exclusiveMaximum": 100, + "meta": ["contamination"] }, "genome_coverage": { "type": "number", - "description": "MAG/bin coverage value" + "description": "MAG/bin coverage value", + "meta": ["genome_coverage"] }, "metagenome": { "type": "string", - "description": "ENA accepted metagenome name. It needs to be listed in the taxonomy tree https://www.ebi.ac.uk/ena/browser/view/408169?show=tax-tree (you might need to press \"Tax tree - Show\" in the right most section of the page). Full list can also be found https://github.com/EBI-Metagenomics/genome_uploader/blob/main/genomeuploader/constants.py#L22" + "description": "ENA accepted metagenome name. It needs to be listed in the taxonomy tree https://www.ebi.ac.uk/ena/browser/view/408169?show=tax-tree (you might need to press \"Tax tree - Show\" in the right most section of the page). Full list can also be found https://github.com/EBI-Metagenomics/genome_uploader/blob/main/genomeuploader/constants.py#L22", + "meta": ["metagenome"] }, "co-assembly": { "type": "string", "description": "'Yes' if data was co-assembled, 'No' otherwise. Options: 'Yes' or 'No'", - "enum": ["Yes", "No"] + "enum": ["Yes", "No"], + "meta": ["co_assembly"] }, "broad_environment": { "type": "string", - "description": "Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS" + "description": "Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS", + "meta": ["broad_environment"] }, "local_environment": { "type": "string", - "description": "Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for \"broad-scale environmental context\". Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS" + "description": "Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for \"broad-scale environmental context\". Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS", + "meta": ["local_environment"] }, "environmental_medium": { "type": "string", - "description": "Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS" + "description": "Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS", + "meta": ["environmental_medium"] }, "RNA_presence": { "type": "string", "description": "Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: 'Yes' or 'No'.", - "enum": ["Yes", "No"] + "enum": ["Yes", "No"], + "meta": ["RNA_presence"] }, "NCBI_lineage": { "type": "string", - "description": "full NCBI lineage - format: x;y;z. For example, the lineage for E. coli can be: 'Bacteria;Pseudomonadati;Pseudomonadota;Gammaproteobacteria;Enterobacterales;Enterobacteriaceae;Escherichia' or '2;1224;1236;91347;543;561;562'. For more info check https://www.ncbi.nlm.nih.gov/datasets/docs/v2/data-processing/taxonomy-processing/taxonomy/" + "description": "full NCBI lineage - format: x;y;z. For example, the lineage for E. coli can be: 'Bacteria;Pseudomonadati;Pseudomonadota;Gammaproteobacteria;Enterobacterales;Enterobacteriaceae;Escherichia' or '2;1224;1236;91347;543;561;562'. For more info check https://www.ncbi.nlm.nih.gov/datasets/docs/v2/data-processing/taxonomy-processing/taxonomy/", + "meta": ["NCBI_lineage"] } }, "required": [ - "sample", + "id", "fasta", "accession", "assembly_software", diff --git a/assets/schema_input_reads.json b/assets/schema_input_reads.json index 25dfb31..5aa8887 100644 --- a/assets/schema_input_reads.json +++ b/assets/schema_input_reads.json @@ -7,10 +7,10 @@ "items": { "type": "object", "properties": { - "sample": { + "id": { "type": "string", "pattern": "^\\S+$", - "errorMessage": "Sample must be provided and cannot contain spaces", + "errorMessage": "ID must be provided and cannot contain spaces", "meta": ["id"], "description": "Unique experiment/run name" }, @@ -18,7 +18,8 @@ "type": "string", "pattern": "^\\S+$", "errorMessage": "Sample accession must be provided and cannot contain spaces", - "description": "ENA sample accession of the sample used to generate the reads" + "description": "ENA sample accession of the sample used to generate the reads", + "meta": ["sample_accession"] }, "fastq_1": { "type": "string", @@ -63,13 +64,15 @@ "ULTIMA", "VELA_DIAGNOSTICS" ], - "description": "Sequencing platform. Must be one of the ENA controlled vocabulary values listed in the enum." + "description": "Sequencing platform. Must be one of the ENA controlled vocabulary values listed in the enum.", + "meta": ["platform"] }, "instrument": { "type": "string", "pattern": "^[^\\n]+$", "errorMessage": "Instrument must be provided and cannot span multiple lines", - "description": "Sequencer model (e.g., 'Illumina HiSeq 2000', 'PacBio Sequel')" + "description": "Sequencer model (e.g., 'Illumina HiSeq 2000', 'PacBio Sequel')", + "meta": ["instrument"] }, "library_source": { "type": "string", @@ -84,7 +87,8 @@ "VIRAL RNA", "OTHER" ], - "description": "Library source. Must be one of the ENA controlled vocabulary values listed in the enum." + "description": "Library source. Must be one of the ENA controlled vocabulary values listed in the enum.", + "meta": ["library_source"] }, "library_selection": { "type": "string", @@ -121,7 +125,8 @@ "other", "unspecified" ], - "description": "Library selection. Must be one of the ENA controlled vocabulary values listed in the enum." + "description": "Library selection. Must be one of the ENA controlled vocabulary values listed in the enum.", + "meta": ["library_selection"] }, "library_strategy": { "type": "string", @@ -168,7 +173,8 @@ "Tethered Chromatin Conformation Capture", "OTHER" ], - "description": "Library strategy. Must be one of the ENA controlled vocabulary values listed in the enum." + "description": "Library strategy. Must be one of the ENA controlled vocabulary values listed in the enum.", + "meta": ["library_strategy"] }, "insert_size": { "anyOf": [ @@ -182,7 +188,8 @@ } ], "errorMessage": "Insert size must be a positive number or empty", - "description": "Fragment/insert size for paired-end reads (optional)" + "description": "Fragment/insert size for paired-end reads (optional)", + "meta": ["insert_size"] }, "library_name": { "anyOf": [ @@ -194,7 +201,8 @@ "maxLength": 0 } ], - "description": "Descriptive library name (optional)" + "description": "Descriptive library name (optional)", + "meta": ["library_name"] }, "description": { "anyOf": [ @@ -206,11 +214,12 @@ "maxLength": 0 } ], - "description": "Free-text description of the experiment (optional)" + "description": "Free-text description of the experiment (optional)", + "meta": ["description"] } }, "required": [ - "sample", + "id", "sample_accession", "fastq_1", "platform", diff --git a/docs/usage.md b/docs/usage.md index ea3a386..8b79848 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -156,17 +156,14 @@ You will need to create a samplesheet with information about the raw reads you w Example: ```csv title="samplesheet_reads.csv" -sample,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description +id,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description illumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLUMINA,Illumina HiSeq 2000,GENOMIC,RANDOM,WGS,500,HiSeq_library_001,Illumina sequencing of sample XYZ pacbio_run_001,SAMEA7654321,data/pacbio_reads.fastq.gz,,PACBIO_SMRT,PacBio Sequel,GENOMIC,RANDOM,WGS,,PacBio_library_002,Long-read sequencing ``` -> [!IMPORTANT] -> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. - | Column | Required | Description | -| ------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | Yes | Unique identifier of this particular data entry. Used as an experiment name. | +|---------------------| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | Yes | Unique identifier of this particular data entry. Used as an experiment name. | | `sample_accession` | Yes | ENA sample accession (starting with SAMEA) of the sample used to generate raw reads. | | `fastq_1` | Yes | Path to forward reads in FASTQ format (optionally gzipped). | | `fastq_2` | No | Path to reverse reads for paired-end data. Leave empty for single-end reads. | @@ -217,17 +214,14 @@ You will need to create a samplesheet with information about the metagenomic ass Example: ```csv title="samplesheet_assembly.csv" -sample,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version +id,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version assembly_001,data/assembly_001.fasta.gz,data/assembly_001_R1.fastq.gz,data/assembly_001_R2.fastq.gz,,ERR011322,SPAdes,3.15.5 assembly_002,data/assembly_002.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 ``` -> [!IMPORTANT] -> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. - | Column | Required | Description | -| ------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | +|---------------------| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | | `fasta` | Yes | Path to assembly contigs in FASTA format compressed with `gzip`. | | `fastq_1` | Conditional | Path to the read file in FASTQ format used to generate the metagenomic assembly. Required if `coverage` is not provided. | | `fastq_2` | No | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | @@ -299,16 +293,13 @@ You will need to create a samplesheet with information about the MAGs/bins you w Example: ```csv title="samplesheet_genomes.csv" -sample,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage +id,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default,CheckM2 1.0.1,92.81,1.09,66.04,sediment metagenome,No,marine,cable bacteria,marine sediment,No,d__Bacteria;p__Proteobacteria;s__ ``` -> [!IMPORTANT] -> **Samplesheet column requirements**: All columns shown in the example above must be present in your samplesheet, even if some values are empty. Columns must be in exactly the same order as shown. - | Column | Required | Description | -| --------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `sample` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | +|-----------------------------| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | | `fasta` | Yes | Path to MAG/bin contigs in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. | | `accession` | Yes | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | | `fastq_1` | Conditional | Path to the read file in FASTQ format used to generate the source metagenomic assembly. Required if `genome_coverage` is not provided. | diff --git a/workflows/assemblysubmit.nf b/workflows/assemblysubmit.nf index b209609..64b524e 100644 --- a/workflows/assemblysubmit.nf +++ b/workflows/assemblysubmit.nf @@ -50,37 +50,22 @@ workflow ASSEMBLYSUBMIT { // --------- Create assembly channel with proper metadata structure assembly_fasta = ch_samplesheet - .map { row -> - def meta = [ - id: row[0].id, - single_end: row[3] ? false : true, - coverage: row[4] ?: null, - run_accession: row[5], - assembler: row[6], - assembler_version: row[7] - ] - [meta, file(row[1])] + .map { meta, fasta, reads_1, reads_2 -> + def new_meta = meta + [single_end: reads_2 ? false : true] + [new_meta, fasta] } // --------- Create reads channel with proper metadata structure reads_fastq = ch_samplesheet .filter { row -> row[2] && row[2] != "" } // Check if fastq_1 exists and is not empty - .map { row -> - def meta = [ - id: row[0].id, - single_end: row[3] ? false : true, - coverage: row[4] ?: null, - run_accession: row[5], - assembler: row[6], - assembler_version: row[7] - ] - - if (row[3] && row[3] != "") { + .map { meta, fasta, reads_1, reads_2 -> + def new_meta = meta + [single_end: reads_2 ? false : true] + if (reads_2 && reads_2 != "") { // If paired end reads - [meta, [file(row[2]), file(row[3])]] + [new_meta, [file(reads_1), file(reads_2)]] } else { // If single end - [meta, file(row[2])] + [new_meta, file(reads_1)] } } diff --git a/workflows/genomesubmit.nf b/workflows/genomesubmit.nf index d16de68..098b037 100644 --- a/workflows/genomesubmit.nf +++ b/workflows/genomesubmit.nf @@ -61,35 +61,14 @@ workflow GENOMESUBMIT { // --------- Create genomes channel with proper metadata structure genome_fasta_and_reads = ch_samplesheet - .map { row -> - def meta = [ - id: row[0].id, - accession: row[2], - single_end: row[4] ? false : true, - assembly_software: row[5] ?: null, - binning_software: row[6] ?: null, - binning_parameters: row[7] ?: null, - stats_generation_software: row[8] ?: null, - completeness: row[9] ?: null, - contamination: row[10] ?: null, - genome_coverage: row[11] ?: null, - metagenome: row[12] ?: null, - co_assembly: row[13] ?: null, - broad_environment: row[14] ?: null, - local_environment: row[15] ?: null, - environmental_medium: row[16] ?: null, - RNA_presence: row[17] ?: null, - NCBI_lineage: row[18] ?: null - ] - def read1 = row[3] ? file(row[3]) : null - def read2 = row[4] ? file(row[4]) : null - - if (row[4] && row[4] != "") { + .map { meta, fasta, reads_1, reads_2 -> + def new_meta = meta + [single_end: reads_2 ? false : true] + if (reads_2 && reads_2 != "") { // If paired end reads - return [meta, file(row[1]), [read1, read2]] + return [new_meta, file(fasta), [reads_1, reads_2]] } else { // If single end - return [meta, file(row[1]), [read1]] + return [new_meta, file(fasta), [reads_1]] } } diff --git a/workflows/readsubmit.nf b/workflows/readsubmit.nf index 8b90399..614ae03 100644 --- a/workflows/readsubmit.nf +++ b/workflows/readsubmit.nf @@ -45,30 +45,14 @@ workflow READSUBMIT { // --------- Create reads channel with proper metadata structure reads_ch = ch_samplesheet - .map { row -> - def (meta_in, sample_accession, fastq_1, fastq_2, - platform, instrument, library_source, library_selection, library_strategy, - insert_size, library_name, description) = row - def meta = [ - id: meta_in.id, - sample_accession: sample_accession, - single_end: fastq_2 ? false : true, - platform: platform, - instrument: instrument, - library_source: library_source, - library_selection: library_selection, - library_strategy: library_strategy, - insert_size: insert_size ?: null, - library_name: library_name ?: null, - description: description ?: null - ] - - if (fastq_2 && fastq_2 != "") { + .map { meta, reads_1, reads_2 -> + def new_meta = meta + [single_end: reads_2 ? false : true] + if (reads_2 && reads_2 != "") { // If paired end reads - [meta, [file(fastq_1), file(fastq_2)]] + [new_meta, [file(reads_1), file(reads_2)]] } else { // If single end - [meta, file(fastq_1)] + [new_meta, file(reads_1)] } } From f1228e7a950f51161faae2707efdffb2d0ac3972 Mon Sep 17 00:00:00 2001 From: Martin Beracochea Date: Wed, 22 Jul 2026 09:36:13 +0100 Subject: [PATCH 30/47] Fix prettier issues with docs/usage.md --- docs/usage.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/usage.md b/docs/usage.md index 8b79848..4716cc8 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -162,7 +162,7 @@ pacbio_run_001,SAMEA7654321,data/pacbio_reads.fastq.gz,,PACBIO_SMRT,PacBio Seque ``` | Column | Required | Description | -|---------------------| -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `id` | Yes | Unique identifier of this particular data entry. Used as an experiment name. | | `sample_accession` | Yes | ENA sample accession (starting with SAMEA) of the sample used to generate raw reads. | | `fastq_1` | Yes | Path to forward reads in FASTQ format (optionally gzipped). | @@ -220,7 +220,7 @@ assembly_002,data/assembly_002.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 ``` | Column | Required | Description | -|---------------------| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| ------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | `id` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | | `fasta` | Yes | Path to assembly contigs in FASTA format compressed with `gzip`. | | `fastq_1` | Conditional | Path to the read file in FASTQ format used to generate the metagenomic assembly. Required if `coverage` is not provided. | @@ -298,7 +298,7 @@ mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default, ``` | Column | Required | Description | -|-----------------------------| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| --------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `id` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | | `fasta` | Yes | Path to MAG/bin contigs in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. | | `accession` | Yes | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | From 0a6e44b72b0419245813a9b3ff4f3f75f935fcc4 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Wed, 22 Jul 2026 11:12:39 +0100 Subject: [PATCH 31/47] tidy up .map after review --- assets/schema_input_genome.json | 2 +- assets/schema_input_reads.json | 2 +- workflows/assemblysubmit.nf | 6 +++--- workflows/genomesubmit.nf | 4 ++-- workflows/readsubmit.nf | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/assets/schema_input_genome.json b/assets/schema_input_genome.json index db21b28..1ae38f1 100644 --- a/assets/schema_input_genome.json +++ b/assets/schema_input_genome.json @@ -132,7 +132,7 @@ }, "NCBI_lineage": { "type": "string", - "description": "full NCBI lineage - format: x;y;z. For example, the lineage for E. coli can be: 'Bacteria;Pseudomonadati;Pseudomonadota;Gammaproteobacteria;Enterobacterales;Enterobacteriaceae;Escherichia' or '2;1224;1236;91347;543;561;562'. For more info check https://www.ncbi.nlm.nih.gov/datasets/docs/v2/data-processing/taxonomy-processing/taxonomy/", + "description": "Full NCBI lineage - format: x;y;z. For example, the lineage for E. coli can be: 'Bacteria;Pseudomonadati;Pseudomonadota;Gammaproteobacteria;Enterobacterales;Enterobacteriaceae;Escherichia' or '2;1224;1236;91347;543;561;562'. For more info check https://www.ncbi.nlm.nih.gov/datasets/docs/v2/data-processing/taxonomy-processing/taxonomy/", "meta": ["NCBI_lineage"] } }, diff --git a/assets/schema_input_reads.json b/assets/schema_input_reads.json index 5aa8887..d0c0df0 100644 --- a/assets/schema_input_reads.json +++ b/assets/schema_input_reads.json @@ -125,7 +125,7 @@ "other", "unspecified" ], - "description": "Library selection. Must be one of the ENA controlled vocabulary values listed in the enum.", + "description": "Library selection. Must be one of the allowed ENA controlled vocabulary values (e.g. PCR, ChIP-Seq, other, etc).", "meta": ["library_selection"] }, "library_strategy": { diff --git a/workflows/assemblysubmit.nf b/workflows/assemblysubmit.nf index 64b524e..f472653 100644 --- a/workflows/assemblysubmit.nf +++ b/workflows/assemblysubmit.nf @@ -51,7 +51,7 @@ workflow ASSEMBLYSUBMIT { // --------- Create assembly channel with proper metadata structure assembly_fasta = ch_samplesheet .map { meta, fasta, reads_1, reads_2 -> - def new_meta = meta + [single_end: reads_2 ? false : true] + def new_meta = meta + [single_end: reads_2 == null] [new_meta, fasta] } @@ -59,8 +59,8 @@ workflow ASSEMBLYSUBMIT { reads_fastq = ch_samplesheet .filter { row -> row[2] && row[2] != "" } // Check if fastq_1 exists and is not empty .map { meta, fasta, reads_1, reads_2 -> - def new_meta = meta + [single_end: reads_2 ? false : true] - if (reads_2 && reads_2 != "") { + def new_meta = meta + [single_end: reads_2 == null] + if ( !new_meta.single_end ) { // If paired end reads [new_meta, [file(reads_1), file(reads_2)]] } else { diff --git a/workflows/genomesubmit.nf b/workflows/genomesubmit.nf index 098b037..6aef14d 100644 --- a/workflows/genomesubmit.nf +++ b/workflows/genomesubmit.nf @@ -62,8 +62,8 @@ workflow GENOMESUBMIT { // --------- Create genomes channel with proper metadata structure genome_fasta_and_reads = ch_samplesheet .map { meta, fasta, reads_1, reads_2 -> - def new_meta = meta + [single_end: reads_2 ? false : true] - if (reads_2 && reads_2 != "") { + def new_meta = meta + [single_end: reads_2 == null] + if ( !new_meta.single_end ) { // If paired end reads return [new_meta, file(fasta), [reads_1, reads_2]] } else { diff --git a/workflows/readsubmit.nf b/workflows/readsubmit.nf index 614ae03..45c375e 100644 --- a/workflows/readsubmit.nf +++ b/workflows/readsubmit.nf @@ -46,8 +46,8 @@ workflow READSUBMIT { // --------- Create reads channel with proper metadata structure reads_ch = ch_samplesheet .map { meta, reads_1, reads_2 -> - def new_meta = meta + [single_end: reads_2 ? false : true] - if (reads_2 && reads_2 != "") { + def new_meta = meta + [single_end: reads_2 == null] + if ( !new_meta.single_end ) { // If paired end reads [new_meta, [file(reads_1), file(reads_2)]] } else { From 5b262bf2a18e1bdaa2aee88c4339dbf023146dbc Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Wed, 22 Jul 2026 12:44:33 +0100 Subject: [PATCH 32/47] add null values as defaults for conditional args --- assets/schema_input_assembly.json | 13 +++---------- assets/schema_input_genome.json | 6 ++++++ conf/containers_docker_arm64.config | 1 + modules/local/genome_upload/main.nf | 4 ++-- subworkflows/local/genome_evaluation/main.nf | 11 +++++++---- workflows/assemblysubmit.nf | 2 +- workflows/genomesubmit.nf | 8 ++++---- 7 files changed, 24 insertions(+), 21 deletions(-) diff --git a/assets/schema_input_assembly.json b/assets/schema_input_assembly.json index 78d1d60..5e9108f 100644 --- a/assets/schema_input_assembly.json +++ b/assets/schema_input_assembly.json @@ -55,16 +55,9 @@ "description": "Reverse reads FASTQ file if paired-end. Leave empty for single-end reads" }, "coverage": { - "anyOf": [ - { - "type": "number", - "minimum": 0 - }, - { - "type": "string", - "maxLength": 0 - } - ], + "type": "number", + "default": null, + "minimum": 0, "errorMessage": "Coverage must be a positive number or empty", "description": "Estimated value of assembly coverage", "meta": ["coverage"] diff --git a/assets/schema_input_genome.json b/assets/schema_input_genome.json index 1ae38f1..6678a63 100644 --- a/assets/schema_input_genome.json +++ b/assets/schema_input_genome.json @@ -76,11 +76,13 @@ }, "stats_generation_software": { "type": "string", + "default": null, "description": "Tool(s) used to estimate completeness and contamination", "meta": ["stats_generation_software"] }, "completeness": { "type": "number", + "default": null, "description": "MAG/bin completeness score: the ratio of observed single-copy marker genes to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined", "exclusiveMinimum": 0, "exclusiveMaximum": 100, @@ -88,6 +90,7 @@ }, "contamination": { "type": "number", + "default": null, "description": "MAG/bin contamination score: the ratio of observed single-copy marker genes in ≥2 copies to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined", "exclusiveMinimum": 0, "exclusiveMaximum": 100, @@ -95,6 +98,7 @@ }, "genome_coverage": { "type": "number", + "default": null, "description": "MAG/bin coverage value", "meta": ["genome_coverage"] }, @@ -126,12 +130,14 @@ }, "RNA_presence": { "type": "string", + "default": null, "description": "Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: 'Yes' or 'No'.", "enum": ["Yes", "No"], "meta": ["RNA_presence"] }, "NCBI_lineage": { "type": "string", + "default": null, "description": "Full NCBI lineage - format: x;y;z. For example, the lineage for E. coli can be: 'Bacteria;Pseudomonadati;Pseudomonadota;Gammaproteobacteria;Enterobacterales;Enterobacteriaceae;Escherichia' or '2;1224;1236;91347;543;561;562'. For more info check https://www.ncbi.nlm.nih.gov/datasets/docs/v2/data-processing/taxonomy-processing/taxonomy/", "meta": ["NCBI_lineage"] } diff --git a/conf/containers_docker_arm64.config b/conf/containers_docker_arm64.config index 369f743..11a7ab9 100644 --- a/conf/containers_docker_arm64.config +++ b/conf/containers_docker_arm64.config @@ -1 +1,2 @@ +process { withName: 'FALINT' { container = 'community.wave.seqera.io/library/fa-lint:1.2.0--9dec293ee366e2bd' } } process { withName: 'MULTIQC' { container = 'community.wave.seqera.io/library/multiqc:1.35--5c84a5000a226ab5' } } diff --git a/modules/local/genome_upload/main.nf b/modules/local/genome_upload/main.nf index 095d9ca..a0abb62 100644 --- a/modules/local/genome_upload/main.nf +++ b/modules/local/genome_upload/main.nf @@ -4,8 +4,8 @@ process GENOME_UPLOAD { conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/genome-uploader:3.0.1--pyhdfd78af_0': - 'quay.io/biocontainers/genome-uploader:3.0.1--pyhdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/genome-uploader:3.0.4--pyhdfd78af_0': + 'quay.io/biocontainers/genome-uploader:3.0.4--pyhdfd78af_0' }" input: path(mags) // required for validation diff --git a/subworkflows/local/genome_evaluation/main.nf b/subworkflows/local/genome_evaluation/main.nf index 4c477ee..e6862e1 100644 --- a/subworkflows/local/genome_evaluation/main.nf +++ b/subworkflows/local/genome_evaluation/main.nf @@ -29,13 +29,16 @@ workflow GENOME_EVALUATION { // // Database preparation // + ch_do_download = ch_fasta + .first() + .map { _meta_fasta -> ch_checkm2_db_download_id } // Download and prepare db from scratch if no pre-built db provided if (ch_checkm2_db) { - ch_checkm2_db = channel.value([[id: 'checkm2_db'], file(params.checkm2_db, checkIfExists: true)]) + ch_checkm2_db_ready = channel.value([[id: 'checkm2_db'], file(params.checkm2_db, checkIfExists: true)]) } else { - CHECKM2_DATABASEDOWNLOAD(ch_checkm2_db_download_id) - ch_checkm2_db = CHECKM2_DATABASEDOWNLOAD.out.database + CHECKM2_DATABASEDOWNLOAD(ch_do_download) + ch_checkm2_db_ready = CHECKM2_DATABASEDOWNLOAD.out.database } // @@ -44,7 +47,7 @@ workflow GENOME_EVALUATION { CHECKM2_PREDICT( ch_fasta, - ch_checkm2_db, + ch_checkm2_db_ready, ) emit: diff --git a/workflows/assemblysubmit.nf b/workflows/assemblysubmit.nf index f472653..401a32f 100644 --- a/workflows/assemblysubmit.nf +++ b/workflows/assemblysubmit.nf @@ -77,7 +77,7 @@ workflow ASSEMBLYSUBMIT { // --------- Assembly coverage calculation // For assemblies without coverage, calculate coverage with CoverM coverm_input = FASTA_VALIDATION.out.valid_fastas - .filter { meta, _fasta -> meta.coverage == null } + .filter { meta, _fasta -> !(meta.coverage) } .join(reads_fastq) .multiMap { meta, fasta, fastq -> assembly: [ meta, fasta ] diff --git a/workflows/genomesubmit.nf b/workflows/genomesubmit.nf index 6aef14d..be4cec9 100644 --- a/workflows/genomesubmit.nf +++ b/workflows/genomesubmit.nf @@ -83,7 +83,7 @@ workflow GENOMESUBMIT { // --------- Genome coverage calculation branched_coverage_results = FASTA_VALIDATION.out.valid_fastas .branch { meta, _fasta -> - genome_coverage_ref_input: meta.genome_coverage == null + genome_coverage_ref_input: !(meta.genome_coverage) genome_coverage_present: true // Everything else goes here } @@ -117,7 +117,7 @@ workflow GENOMESUBMIT { // --------- For genomes without RNA_presence info, calculate rRNA and tRNA branched_rna_results = fasta_updated_with_coverage .branch { meta, _fasta -> - rna_prediction_input: meta.RNA_presence == null + rna_prediction_input: !(meta.RNA_presence) rna_present: true // Everything else goes here } @@ -142,7 +142,7 @@ workflow GENOMESUBMIT { // --------- Completeness and contamination calculation branched_stats_results = fasta_updated_with_rna .branch { meta, _fasta -> - genome_evaluation_input: meta.completeness == null || meta.contamination == null || meta.stats_generation_software == null + genome_evaluation_input: !(meta.completeness) || !(meta.contamination) || !(meta.stats_generation_software) evaluation_present: true // Everything else goes here } @@ -174,7 +174,7 @@ workflow GENOMESUBMIT { // --------- Taxonomy branched_taxonomy_results = fasta_updated_with_stats .branch { meta, _fasta -> - genome_taxonomy_input: meta.NCBI_lineage == null + genome_taxonomy_input: !(meta.NCBI_lineage) taxonomy_present: true // Everything else goes here } From 54acdc989c1e1f67ac0bafae51f1b33afb7ec1fd Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Wed, 22 Jul 2026 12:58:00 +0100 Subject: [PATCH 33/47] update genome_uploader and fix regexp in multiqc --- assets/multiqc_config.yml | 6 +++--- tests/default.nf.test.snap | 2 +- tests/mag_complete_metadata.nf.test.snap | 2 +- tests/mag_no_coverage_paired_reads.nf.test.snap | 2 +- tests/mag_no_coverage_single_reads.nf.test.snap | 2 +- tests/mag_no_rna_presence.nf.test.snap | 2 +- tests/mag_no_study_complete_metadata.nf.test.snap | 2 +- tests/mag_no_taxonomy.nf.test.snap | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index eb16eaf..9337e91 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -28,11 +28,11 @@ sp: genome_metadata: fn_re: ".*genomes_metadata.tsv$" sample_registration: - fn_re: '.*registered\.*\.tsv$' + fn_re: ".*registered*.tsv$" submission_results_genomes: - fn_re: 'genomes_accessions\.tsv$' + fn_re: "genomes_accessions.tsv$" submission_results_assemblies: - fn_re: 'assemblies_accessions\.tsv$' + fn_re: "assemblies_accessions.tsv$" # Custom data configuration custom_data: diff --git a/tests/default.nf.test.snap b/tests/default.nf.test.snap index 9968b79..4aadca3 100644 --- a/tests/default.nf.test.snap +++ b/tests/default.nf.test.snap @@ -35,7 +35,7 @@ "bash": "5.2.37(1)-release" }, "CREATE_MANIFESTS": { - "genome_uploader": "3.0.1" + "genome_uploader": "3.0.4" }, "FALINT": { "falint": "1.2.0" diff --git a/tests/mag_complete_metadata.nf.test.snap b/tests/mag_complete_metadata.nf.test.snap index 7c7f539..5495759 100644 --- a/tests/mag_complete_metadata.nf.test.snap +++ b/tests/mag_complete_metadata.nf.test.snap @@ -17,7 +17,7 @@ "bash": "5.2.37(1)-release" }, "CREATE_MANIFESTS": { - "genome_uploader": "3.0.1" + "genome_uploader": "3.0.4" }, "FALINT": { "falint": "1.2.0" diff --git a/tests/mag_no_coverage_paired_reads.nf.test.snap b/tests/mag_no_coverage_paired_reads.nf.test.snap index 894e756..0725d60 100644 --- a/tests/mag_no_coverage_paired_reads.nf.test.snap +++ b/tests/mag_no_coverage_paired_reads.nf.test.snap @@ -20,7 +20,7 @@ "bash": "5.2.37(1)-release" }, "CREATE_MANIFESTS": { - "genome_uploader": "3.0.1" + "genome_uploader": "3.0.4" }, "FALINT": { "falint": "1.2.0" diff --git a/tests/mag_no_coverage_single_reads.nf.test.snap b/tests/mag_no_coverage_single_reads.nf.test.snap index 767748f..3a43261 100644 --- a/tests/mag_no_coverage_single_reads.nf.test.snap +++ b/tests/mag_no_coverage_single_reads.nf.test.snap @@ -20,7 +20,7 @@ "bash": "5.2.37(1)-release" }, "CREATE_MANIFESTS": { - "genome_uploader": "3.0.1" + "genome_uploader": "3.0.4" }, "FALINT": { "falint": "1.2.0" diff --git a/tests/mag_no_rna_presence.nf.test.snap b/tests/mag_no_rna_presence.nf.test.snap index 8a7d21c..5541956 100644 --- a/tests/mag_no_rna_presence.nf.test.snap +++ b/tests/mag_no_rna_presence.nf.test.snap @@ -23,7 +23,7 @@ "bash": "5.2.37(1)-release" }, "CREATE_MANIFESTS": { - "genome_uploader": "3.0.1" + "genome_uploader": "3.0.4" }, "FALINT": { "falint": "1.2.0" diff --git a/tests/mag_no_study_complete_metadata.nf.test.snap b/tests/mag_no_study_complete_metadata.nf.test.snap index 1aea1e8..b838f6b 100644 --- a/tests/mag_no_study_complete_metadata.nf.test.snap +++ b/tests/mag_no_study_complete_metadata.nf.test.snap @@ -17,7 +17,7 @@ "bash": "5.2.37(1)-release" }, "CREATE_MANIFESTS": { - "genome_uploader": "3.0.1" + "genome_uploader": "3.0.4" }, "FALINT": { "falint": "1.2.0" diff --git a/tests/mag_no_taxonomy.nf.test.snap b/tests/mag_no_taxonomy.nf.test.snap index 1563d4b..0aa4bc4 100644 --- a/tests/mag_no_taxonomy.nf.test.snap +++ b/tests/mag_no_taxonomy.nf.test.snap @@ -26,7 +26,7 @@ "bash": "5.2.37(1)-release" }, "CREATE_MANIFESTS": { - "genome_uploader": "3.0.1" + "genome_uploader": "3.0.4" }, "FALINT": { "falint": "1.2.0" From 648ca9e1d36594f771a16dd29b3c1f55aeb43f45 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Wed, 22 Jul 2026 15:12:41 +0100 Subject: [PATCH 34/47] test multiqc config old version from 1.0.0 branch --- assets/multiqc_config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 9337e91..5df001f 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -28,11 +28,11 @@ sp: genome_metadata: fn_re: ".*genomes_metadata.tsv$" sample_registration: - fn_re: ".*registered*.tsv$" + fn_re: '.*registered.*\.tsv$' submission_results_genomes: - fn_re: "genomes_accessions.tsv$" + fn_re: 'genomes_accessions\.tsv$' submission_results_assemblies: - fn_re: "assemblies_accessions.tsv$" + fn_re: 'assemblies_accessions\.tsv$' # Custom data configuration custom_data: From edd594ae1db5adb77baeb574c3c001e1a40a7e29 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Wed, 22 Jul 2026 17:47:47 +0100 Subject: [PATCH 35/47] change co-assembly and rna_presence to boolean --- README.md | 2 +- assets/schema_input_assembly.json | 13 ++- assets/schema_input_genome.json | 58 ++++++++++--- assets/schema_input_reads.json | 1 + bin/count_rna.py | 2 +- docs/methods.md | 6 +- docs/usage.md | 6 +- modules/local/count_rna/tests/main.nf.test | 2 +- .../local/count_rna/tests/main.nf.test.snap | 4 +- .../local/create_genome_metadata_tsv/main.nf | 4 +- .../tests/main.nf.test | 47 ++++++++++- .../tests/main.nf.test.snap | 84 ++++++++++++++++--- .../tests/main.nf.test | 11 +-- .../tests/main.nf.test.snap | 16 ++-- workflows/assemblysubmit.nf | 15 ++-- workflows/genomesubmit.nf | 17 ++-- workflows/readsubmit.nf | 6 +- 17 files changed, 212 insertions(+), 82 deletions(-) diff --git a/README.md b/README.md index f7b381c..f94503b 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ Example: ```csv id,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage -lachnospira_eligens,data/bin_lachnospira_eligens.fa.gz,SRR24458089,,,spades_v3.15.5,metabat2_v2.6,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,No,marine,cable_bacteria,marine_sediment,No,d__Bacteria;p__Proteobacteria;s__unclassified_Proteobacteria +lachnospira_eligens,data/bin_lachnospira_eligens.fa.gz,SRR24458089,,,spades_v3.15.5,metabat2_v2.6,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,false,marine,cable_bacteria,marine_sediment,false,d__Bacteria;p__Proteobacteria;s__unclassified_Proteobacteria ``` See the [`mags` and `bins` modes section](docs/usage.md#samplesheet-input-2) of the usage documentation for the full list of required and optional columns. diff --git a/assets/schema_input_assembly.json b/assets/schema_input_assembly.json index 5e9108f..c35a887 100644 --- a/assets/schema_input_assembly.json +++ b/assets/schema_input_assembly.json @@ -51,13 +51,22 @@ "maxLength": 0 } ], + "default": null, "errorMessage": "FASTQ file for reverse reads must have extension '.fq' or '.fastq' (optionally gzipped)", "description": "Reverse reads FASTQ file if paired-end. Leave empty for single-end reads" }, "coverage": { - "type": "number", + "anyOf": [ + { + "type": "number", + "minimum": 0 + }, + { + "type": "string", + "maxLength": 0 + } + ], "default": null, - "minimum": 0, "errorMessage": "Coverage must be a positive number or empty", "description": "Estimated value of assembly coverage", "meta": ["coverage"] diff --git a/assets/schema_input_genome.json b/assets/schema_input_genome.json index 6678a63..393211d 100644 --- a/assets/schema_input_genome.json +++ b/assets/schema_input_genome.json @@ -56,6 +56,7 @@ "maxLength": 0 } ], + "default": null, "errorMessage": "FASTQ file for reverse reads must have extension '.fq' or '.fastq' (optionally gzipped)", "description": "Reverse reads FASTQ file if paired-end. Leave empty for single-end reads" }, @@ -81,23 +82,48 @@ "meta": ["stats_generation_software"] }, "completeness": { - "type": "number", + "anyOf": [ + { + "type": "number", + "exclusiveMinimum": 0, + "exclusiveMaximum": 100 + }, + { + "type": "string", + "maxLength": 0 + } + ], "default": null, "description": "MAG/bin completeness score: the ratio of observed single-copy marker genes to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined", - "exclusiveMinimum": 0, - "exclusiveMaximum": 100, "meta": ["completeness"] }, "contamination": { - "type": "number", + "anyOf": [ + { + "type": "number", + "exclusiveMinimum": 0, + "exclusiveMaximum": 100 + }, + { + "type": "string", + "maxLength": 0 + } + ], "default": null, "description": "MAG/bin contamination score: the ratio of observed single-copy marker genes in ≥2 copies to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined", - "exclusiveMinimum": 0, - "exclusiveMaximum": 100, "meta": ["contamination"] }, "genome_coverage": { - "type": "number", + "anyOf": [ + { + "type": "number", + "minimum": 0 + }, + { + "type": "string", + "maxLength": 0 + } + ], "default": null, "description": "MAG/bin coverage value", "meta": ["genome_coverage"] @@ -108,9 +134,8 @@ "meta": ["metagenome"] }, "co-assembly": { - "type": "string", - "description": "'Yes' if data was co-assembled, 'No' otherwise. Options: 'Yes' or 'No'", - "enum": ["Yes", "No"], + "type": "boolean", + "description": "'true' if data was co-assembled, 'false' otherwise", "meta": ["co_assembly"] }, "broad_environment": { @@ -129,10 +154,17 @@ "meta": ["environmental_medium"] }, "RNA_presence": { - "type": "string", + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "string", + "maxLength": 0 + } + ], "default": null, - "description": "Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: 'Yes' or 'No'.", - "enum": ["Yes", "No"], + "description": "Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: true/false", "meta": ["RNA_presence"] }, "NCBI_lineage": { diff --git a/assets/schema_input_reads.json b/assets/schema_input_reads.json index d0c0df0..e39c89e 100644 --- a/assets/schema_input_reads.json +++ b/assets/schema_input_reads.json @@ -42,6 +42,7 @@ "maxLength": 0 } ], + "default": null, "errorMessage": "FASTQ file for reverse reads must have extension '.fq' or '.fastq' (optionally gzipped)", "description": "Reverse reads FASTQ file if paired-end. Leave empty for single-end reads" }, diff --git a/bin/count_rna.py b/bin/count_rna.py index a514d37..8f34011 100755 --- a/bin/count_rna.py +++ b/bin/count_rna.py @@ -151,7 +151,7 @@ def main(): logging.info(f"Found {rrna_count} rRNA subunit types in total") # rrna_count should be 3 to make sure all 3 rRNA genes are present - decision = "Yes" if trna_count >= args.trna_limit and rrna_count == 3 else "No" + decision = "True" if trna_count >= args.trna_limit and rrna_count == 3 else "False" logging.info(f"RNA presented: {decision}") with open(args.output, 'w') as file_out: diff --git a/docs/methods.md b/docs/methods.md index 67e5488..567e19a 100644 --- a/docs/methods.md +++ b/docs/methods.md @@ -108,10 +108,10 @@ The total number of predicted tRNAs is compared against `params.trna_limit`. The The final decision stored in `RNA_presence` is: -- `Yes` when at least 18 tRNAs are detected and all three required rRNA subunits pass the recovery threshold -- `No` otherwise +- `True` when at least 18 tRNAs are detected and all three required rRNA subunits pass the recovery threshold +- `False` otherwise -The final `Yes`/`No` decision is then merged back into the submission metadata. +The final `True`/`False` decision is then merged back into the submission metadata. ### Genome coverage calculation diff --git a/docs/usage.md b/docs/usage.md index 4716cc8..353a906 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -294,7 +294,7 @@ Example: ```csv title="samplesheet_genomes.csv" id,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage -mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default,CheckM2 1.0.1,92.81,1.09,66.04,sediment metagenome,No,marine,cable bacteria,marine sediment,No,d__Bacteria;p__Proteobacteria;s__ +mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default,CheckM2 1.0.1,92.81,1.09,66.04,sediment metagenome,false,marine,cable bacteria,marine sediment,false,d__Bacteria;p__Proteobacteria;s__ ``` | Column | Required | Description | @@ -312,11 +312,11 @@ mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default, | `contamination` | No | Genome contamination value. | | `genome_coverage` | Conditional | Estimated average sequencing depth across the genome. If the value is missing, it is computed automatically during pipeline execution when reads are provided. | | `metagenome` | Yes | Registered metagenome taxonomic identifier or name that matches an existing ENA taxonomy entry. For more details see https://ena-docs.readthedocs.io/en/latest/faq/taxonomy.html | -| `co-assembly` | Yes | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: Yes or No. | +| `co-assembly` | Yes | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: true or false. | | `broad_environment` | Yes | Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428) | | `local_environment` | Yes | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". | | `environmental_medium` | Yes | Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). | -| `RNA_presence` | No | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: Yes or No. | +| `RNA_presence` | No | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: true or false. | | `NCBI_lineage` | No | NCBI taxonomy lineage of the genome. Can be composted of either numerical IDs or official NCBI taxon names separated by ";". | > [!NOTE] diff --git a/modules/local/count_rna/tests/main.nf.test b/modules/local/count_rna/tests/main.nf.test index d621839..657d437 100644 --- a/modules/local/count_rna/tests/main.nf.test +++ b/modules/local/count_rna/tests/main.nf.test @@ -31,7 +31,7 @@ nextflow_process { { assert process.out.rna_decision.size() == 1 }, { def rnaDecisionContent = path(process.out.rna_decision[0][1]).text - assert rnaDecisionContent.contains("Yes") + assert rnaDecisionContent.contains("True") } ) } diff --git a/modules/local/count_rna/tests/main.nf.test.snap b/modules/local/count_rna/tests/main.nf.test.snap index 46ab55a..047809f 100644 --- a/modules/local/count_rna/tests/main.nf.test.snap +++ b/modules/local/count_rna/tests/main.nf.test.snap @@ -6,11 +6,11 @@ { "id": "test" }, - "test_rna_decision.tsv:md5,8162813732f3a353edb6fc3e37e950e1" + "test_rna_decision.tsv:md5,b760b5d61d0c140d55e97a2fd6c25471" ] ] ], - "timestamp": "2026-06-25T21:38:21.745168", + "timestamp": "2026-07-22T17:43:41.374272", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" diff --git a/modules/local/create_genome_metadata_tsv/main.nf b/modules/local/create_genome_metadata_tsv/main.nf index e78a7af..d3313f9 100644 --- a/modules/local/create_genome_metadata_tsv/main.nf +++ b/modules/local/create_genome_metadata_tsv/main.nf @@ -18,8 +18,8 @@ process CREATE_GENOME_METADATA_TSV { task.ext.when == null || task.ext.when script: - def co_assembly_value = meta.co_assembly == 'Yes' ? 'True' : 'False' - def rna_presence_value = meta.RNA_presence == 'Yes' ? 'True' : 'False' + def co_assembly_value = meta.co_assembly ? 'True' : 'False' + def rna_presence_value = meta.RNA_presence ? 'True' : 'False' def header = [ 'genome_name', 'genome_path', diff --git a/modules/local/create_genome_metadata_tsv/tests/main.nf.test b/modules/local/create_genome_metadata_tsv/tests/main.nf.test index eab3015..72516f5 100644 --- a/modules/local/create_genome_metadata_tsv/tests/main.nf.test +++ b/modules/local/create_genome_metadata_tsv/tests/main.nf.test @@ -24,11 +24,50 @@ nextflow_process { contamination: '1.2', genome_coverage: '42.7', metagenome: 'marine metagenome', - co_assembly: 'No', + co_assembly: false, broad_environment: 'marine biome', local_environment: 'coastal water', environmental_medium: 'seawater', - RNA_presence: 'Yes', + RNA_presence: true, + NCBI_lineage: 'Bacteria;Proteobacteria;Gammaproteobacteria' + ], + file('https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/genome/NC_045512.2/GCF_009858895.2_ASM985889v3_genomic.200409.fna.gz') + ] + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("test_create_genome_metadata_tsv_bool_reversed") { + + when { + process { + """ + input[0] = [ + [ + id: 'test_genome', + accession: 'SRR123456', + assembly_software: 'SPAdes_v3.15.5', + binning_software: 'MetaBAT2_v2.15', + binning_parameters: '--minContig 1500', + stats_generation_software: 'CheckM2_v1.0.0', + completeness: '98.4', + contamination: '1.2', + genome_coverage: '42.7', + metagenome: 'marine metagenome', + co_assembly: true, + broad_environment: 'marine biome', + local_environment: 'coastal water', + environmental_medium: 'seawater', + RNA_presence: false, NCBI_lineage: 'Bacteria;Proteobacteria;Gammaproteobacteria' ], file('https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/genome/NC_045512.2/GCF_009858895.2_ASM985889v3_genomic.200409.fna.gz') @@ -65,11 +104,11 @@ nextflow_process { contamination: '1.2', genome_coverage: '42.7', metagenome: 'marine metagenome', - co_assembly: 'No', + co_assembly: true, broad_environment: 'marine biome', local_environment: 'coastal water', environmental_medium: 'seawater', - RNA_presence: 'Yes', + RNA_presence: false, NCBI_lineage: 'Bacteria;Proteobacteria;Gammaproteobacteria' ], file('https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/genome/NC_045512.2/GCF_009858895.2_ASM985889v3_genomic.200409.fna.gz') diff --git a/modules/local/create_genome_metadata_tsv/tests/main.nf.test.snap b/modules/local/create_genome_metadata_tsv/tests/main.nf.test.snap index a073053..1de783c 100644 --- a/modules/local/create_genome_metadata_tsv/tests/main.nf.test.snap +++ b/modules/local/create_genome_metadata_tsv/tests/main.nf.test.snap @@ -1,4 +1,68 @@ { + "test_create_genome_metadata_tsv_bool_reversed": { + "content": [ + { + "0": [ + [ + { + "id": "test_genome", + "accession": "SRR123456", + "assembly_software": "SPAdes_v3.15.5", + "binning_software": "MetaBAT2_v2.15", + "binning_parameters": "--minContig 1500", + "stats_generation_software": "CheckM2_v1.0.0", + "completeness": "98.4", + "contamination": "1.2", + "genome_coverage": "42.7", + "metagenome": "marine metagenome", + "co_assembly": true, + "broad_environment": "marine biome", + "local_environment": "coastal water", + "environmental_medium": "seawater", + "RNA_presence": false, + "NCBI_lineage": "Bacteria;Proteobacteria;Gammaproteobacteria" + }, + "test_genome_genome_metadata.tsv:md5,0f955fb3bbf7da09ce9f449884693806" + ] + ], + "1": [ + [ + "CREATE_GENOME_METADATA_TSV", + "bash", + "5.2.37(1)-release" + ] + ], + "tsv": [ + [ + { + "id": "test_genome", + "accession": "SRR123456", + "assembly_software": "SPAdes_v3.15.5", + "binning_software": "MetaBAT2_v2.15", + "binning_parameters": "--minContig 1500", + "stats_generation_software": "CheckM2_v1.0.0", + "completeness": "98.4", + "contamination": "1.2", + "genome_coverage": "42.7", + "metagenome": "marine metagenome", + "co_assembly": true, + "broad_environment": "marine biome", + "local_environment": "coastal water", + "environmental_medium": "seawater", + "RNA_presence": false, + "NCBI_lineage": "Bacteria;Proteobacteria;Gammaproteobacteria" + }, + "test_genome_genome_metadata.tsv:md5,0f955fb3bbf7da09ce9f449884693806" + ] + ] + } + ], + "timestamp": "2026-07-23T14:00:57.58563", + "meta": { + "nf-test": "0.9.5", + "nextflow": "26.04.0" + } + }, "test_create_genome_metadata_tsv - stub": { "content": [ { @@ -15,11 +79,11 @@ "contamination": "1.2", "genome_coverage": "42.7", "metagenome": "marine metagenome", - "co_assembly": "No", + "co_assembly": true, "broad_environment": "marine biome", "local_environment": "coastal water", "environmental_medium": "seawater", - "RNA_presence": "Yes", + "RNA_presence": false, "NCBI_lineage": "Bacteria;Proteobacteria;Gammaproteobacteria" }, "test_genome_genome_metadata.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" @@ -45,11 +109,11 @@ "contamination": "1.2", "genome_coverage": "42.7", "metagenome": "marine metagenome", - "co_assembly": "No", + "co_assembly": true, "broad_environment": "marine biome", "local_environment": "coastal water", "environmental_medium": "seawater", - "RNA_presence": "Yes", + "RNA_presence": false, "NCBI_lineage": "Bacteria;Proteobacteria;Gammaproteobacteria" }, "test_genome_genome_metadata.tsv:md5,d41d8cd98f00b204e9800998ecf8427e" @@ -57,7 +121,7 @@ ] } ], - "timestamp": "2026-07-07T13:49:45.599115", + "timestamp": "2026-07-22T23:11:26.015229", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" @@ -79,11 +143,11 @@ "contamination": "1.2", "genome_coverage": "42.7", "metagenome": "marine metagenome", - "co_assembly": "No", + "co_assembly": false, "broad_environment": "marine biome", "local_environment": "coastal water", "environmental_medium": "seawater", - "RNA_presence": "Yes", + "RNA_presence": true, "NCBI_lineage": "Bacteria;Proteobacteria;Gammaproteobacteria" }, "test_genome_genome_metadata.tsv:md5,64562a85d19fe5893cad0e89e894058a" @@ -109,11 +173,11 @@ "contamination": "1.2", "genome_coverage": "42.7", "metagenome": "marine metagenome", - "co_assembly": "No", + "co_assembly": false, "broad_environment": "marine biome", "local_environment": "coastal water", "environmental_medium": "seawater", - "RNA_presence": "Yes", + "RNA_presence": true, "NCBI_lineage": "Bacteria;Proteobacteria;Gammaproteobacteria" }, "test_genome_genome_metadata.tsv:md5,64562a85d19fe5893cad0e89e894058a" @@ -121,7 +185,7 @@ ] } ], - "timestamp": "2026-07-07T13:49:37.674712", + "timestamp": "2026-07-22T23:11:19.939886", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" diff --git a/modules/local/generate_assembly_manifest/tests/main.nf.test b/modules/local/generate_assembly_manifest/tests/main.nf.test index 7e9c3bf..e16d278 100644 --- a/modules/local/generate_assembly_manifest/tests/main.nf.test +++ b/modules/local/generate_assembly_manifest/tests/main.nf.test @@ -12,17 +12,16 @@ nextflow_process { when { process { """ - input[0] = [ + input[0] = Channel.of([ [ id:'test' ], file(params.pipelines_testdata_base_path + "/test_data/assembly/contigs.fasta.gz", checkIfExists: true), file(params.pipelines_testdata_base_path + "/samplesheets/samplesheet_generatemanifest.csv", checkIfExists: true) - ] + ]) input[1] = "PRJ12345" input[2] = false input[3] = true input[4] = false """ - } } @@ -30,9 +29,6 @@ nextflow_process { assert process.success assertAll( // Only snapshot versions, not the manifest because it contains a timestamp - { assert snapshot( - path(process.out.versions[0]).yaml - ).match() }, { assert process.out.manifest.size() == 1 }, { assert process.out.manifest[0][1].toString().endsWith(".manifest") }, { @@ -76,8 +72,7 @@ nextflow_process { assert process.success assertAll( { assert snapshot( - process.out, - path(process.out.versions[0]).yaml + process.out ).match() } ) } diff --git a/modules/local/generate_assembly_manifest/tests/main.nf.test.snap b/modules/local/generate_assembly_manifest/tests/main.nf.test.snap index 7d4d1ef..5a6e766 100644 --- a/modules/local/generate_assembly_manifest/tests/main.nf.test.snap +++ b/modules/local/generate_assembly_manifest/tests/main.nf.test.snap @@ -11,7 +11,11 @@ ] ], "1": [ - "versions.yml:md5,5f33d074e4f7f7ddf4b3865973cb9157" + [ + "GENERATE_ASSEMBLY_MANIFEST", + "assembly_uploader", + "1.3.5" + ] ], "manifest": [ [ @@ -20,18 +24,10 @@ }, "test.manifest:md5,d41d8cd98f00b204e9800998ecf8427e" ] - ], - "versions": [ - "versions.yml:md5,5f33d074e4f7f7ddf4b3865973cb9157" ] - }, - { - "GENERATE_ASSEMBLY_MANIFEST": { - "assembly_uploader": "1.3.5" - } } ], - "timestamp": "2026-06-25T22:01:14.155809", + "timestamp": "2026-07-22T21:23:02.99938", "meta": { "nf-test": "0.9.5", "nextflow": "26.04.0" diff --git a/workflows/assemblysubmit.nf b/workflows/assemblysubmit.nf index 401a32f..90273ab 100644 --- a/workflows/assemblysubmit.nf +++ b/workflows/assemblysubmit.nf @@ -51,7 +51,7 @@ workflow ASSEMBLYSUBMIT { // --------- Create assembly channel with proper metadata structure assembly_fasta = ch_samplesheet .map { meta, fasta, reads_1, reads_2 -> - def new_meta = meta + [single_end: reads_2 == null] + def new_meta = meta + [single_end: !reads_2] [new_meta, fasta] } @@ -59,14 +59,11 @@ workflow ASSEMBLYSUBMIT { reads_fastq = ch_samplesheet .filter { row -> row[2] && row[2] != "" } // Check if fastq_1 exists and is not empty .map { meta, fasta, reads_1, reads_2 -> - def new_meta = meta + [single_end: reads_2 == null] - if ( !new_meta.single_end ) { - // If paired end reads - [new_meta, [file(reads_1), file(reads_2)]] - } else { - // If single end - [new_meta, file(reads_1)] - } + def new_meta = meta + [single_end: !reads_2] + def reads = new_meta.single_end + ? [reads_1] + : [reads_1, reads_2] + [new_meta, reads] } // --------- Check fasta files are properly formatted and filter out files with less than 2 contigs diff --git a/workflows/genomesubmit.nf b/workflows/genomesubmit.nf index be4cec9..2cc74b3 100644 --- a/workflows/genomesubmit.nf +++ b/workflows/genomesubmit.nf @@ -62,14 +62,11 @@ workflow GENOMESUBMIT { // --------- Create genomes channel with proper metadata structure genome_fasta_and_reads = ch_samplesheet .map { meta, fasta, reads_1, reads_2 -> - def new_meta = meta + [single_end: reads_2 == null] - if ( !new_meta.single_end ) { - // If paired end reads - return [new_meta, file(fasta), [reads_1, reads_2]] - } else { - // If single end - return [new_meta, file(fasta), [reads_1]] - } + def new_meta = meta + [single_end: !reads_2] + def reads = new_meta.single_end + ? [reads_1] + : [reads_1, reads_2] + [new_meta, fasta, reads] } genome_fasta = genome_fasta_and_reads.map{meta, fasta, _fq1 -> [meta, fasta]} @@ -117,7 +114,7 @@ workflow GENOMESUBMIT { // --------- For genomes without RNA_presence info, calculate rRNA and tRNA branched_rna_results = fasta_updated_with_coverage .branch { meta, _fasta -> - rna_prediction_input: !(meta.RNA_presence) + rna_prediction_input: meta.RNA_presence == null // it might be True/False rna_present: true // Everything else goes here } @@ -132,7 +129,7 @@ workflow GENOMESUBMIT { .map{ meta, rna_decision, fasta -> def lines = rna_decision.readLines() // support for empty decision files required for -stub mode - def decision = lines ? lines[0].split('\t')[1] : null + def decision = lines ? lines[0].split('\t')[1].toLowerCase() == 'true' : null def updated_meta = meta.clone() updated_meta.RNA_presence = decision return [updated_meta, fasta] diff --git a/workflows/readsubmit.nf b/workflows/readsubmit.nf index 45c375e..8bdff88 100644 --- a/workflows/readsubmit.nf +++ b/workflows/readsubmit.nf @@ -46,13 +46,13 @@ workflow READSUBMIT { // --------- Create reads channel with proper metadata structure reads_ch = ch_samplesheet .map { meta, reads_1, reads_2 -> - def new_meta = meta + [single_end: reads_2 == null] + def new_meta = meta + [single_end: !reads_2] if ( !new_meta.single_end ) { // If paired end reads - [new_meta, [file(reads_1), file(reads_2)]] + [new_meta, [reads_1, reads_2]] } else { // If single end - [new_meta, file(reads_1)] + [new_meta, reads_1] } } From d3d61ad663fd36b251c841b5b745b38439d1ffd5 Mon Sep 17 00:00:00 2001 From: nf-core-bot Date: Fri, 24 Jul 2026 12:36:31 +0000 Subject: [PATCH 36/47] Template update for nf-core/tools version 4.0.3 --- .github/PULL_REQUEST_TEMPLATE.md | 4 +- .github/actions/nf-test/action.yml | 2 +- .github/workflows/branch.yml | 60 +++++++++----- .github/workflows/linting.yml | 18 ++++ .github/workflows/linting_comment.yml | 28 ------- .github/workflows/nf-test.yml | 57 +++++++++++++ .github/workflows/pr-comment.yml | 82 +++++++++++++++++++ .github/workflows/release-announcements.yml | 2 +- .../workflows/template-version-comment.yml | 56 ++++++++----- .nf-core.yml | 8 +- CHANGELOG.md | 2 +- README.md | 4 +- assets/multiqc_config.yml | 4 +- assets/schema_input.json | 2 +- nextflow.config | 14 +++- nextflow_schema.json | 2 +- ro-crate-metadata.json | 38 +++++---- .../utils_nfcore_seqsubmit_pipeline/main.nf | 2 +- 18 files changed, 281 insertions(+), 104 deletions(-) delete mode 100644 .github/workflows/linting_comment.yml create mode 100644 .github/workflows/pr-comment.yml diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index c8ad298..d3e7af9 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -8,14 +8,14 @@ These are the most common things requested on pull requests (PRs). Remember that PRs should be made against the dev branch, unless you're preparing a pipeline release. -Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/seqsubmit/tree/master/docs/CONTRIBUTING.md) +Learn more about contributing: [CONTRIBUTING.md](https://github.com/nf-core/seqsubmit/tree/main/docs/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/seqsubmit/tree/master/docs/CONTRIBUTING.md) +- [ ] If you've added a new tool - have you followed the pipeline conventions in the [contribution docs](https://github.com/nf-core/seqsubmit/tree/main/docs/CONTRIBUTING.md) - [ ] If necessary, also make a PR on the nf-core/seqsubmit _branch_ on the [nf-core/test-datasets](https://github.com/nf-core/test-datasets) repository. - [ ] Make sure your code lints (`nf-core pipelines lint`). - [ ] Ensure the test suite passes (`nextflow run . -profile test,docker --outdir `). diff --git a/.github/actions/nf-test/action.yml b/.github/actions/nf-test/action.yml index ad686e8..945c56f 100644 --- a/.github/actions/nf-test/action.yml +++ b/.github/actions/nf-test/action.yml @@ -37,7 +37,7 @@ runs: - name: Setup apptainer if: contains(inputs.profile, 'singularity') - uses: eWaterCycle/setup-apptainer@3f706d898c9db585b1d741b4692e66755f3a1b40 # v2 + uses: eWaterCycle/setup-apptainer@4bb22c52d4f63406c49e94c804632975787312b3 # v2.0.0 - name: Set up Singularity if: contains(inputs.profile, 'singularity') diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index 7bbd3f2..9075dd6 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -2,11 +2,13 @@ name: nf-core branch protection # This workflow is triggered on PRs to `main`/`master` branch on the repository # It fails when someone tries to make a PR against the nf-core `main`/`master` branch instead of `dev` on: - pull_request_target: + pull_request: branches: - main - master +permissions: {} + jobs: test: runs-on: ubuntu-latest @@ -14,33 +16,47 @@ jobs: # PRs to the nf-core repo main/master branch are only ok if coming from the nf-core repo `dev` or any `patch` branches - name: Check PRs if: github.repository == 'nf-core/seqsubmit' + env: + HEAD_REPO: ${{ github.event.pull_request.head.repo.full_name }} run: | - { [[ ${{github.event.pull_request.head.repo.full_name }} == nf-core/seqsubmit ]] && [[ $GITHUB_HEAD_REF == "dev" ]]; } || [[ $GITHUB_HEAD_REF == "patch" ]] + { [[ "$HEAD_REPO" == nf-core/seqsubmit ]] && [[ $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 - - name: Post PR comment + # If the above check failed, build a comment to be posted by the shared poster workflow + - name: Build PR comment if: failure() - uses: mshick/add-pr-comment@8e4927817251f1ff60c001f04568532b38e0b4a0 # v3 - with: - message: | - ## This PR is against the `${{github.event.pull_request.base.ref}}` branch :x: + env: + PR_NUMBER: ${{ github.event.pull_request.number }} + BASE_REF: ${{ github.event.pull_request.base.ref }} + HEAD_REPO: ${{ github.event.pull_request.head.repo.full_name }} + PR_USER: ${{ github.event.pull_request.user.login }} + run: | + mkdir -p pr-comment + echo "$PR_NUMBER" > pr-comment/pr_number.txt + echo "branch" > pr-comment/header.txt + cat > pr-comment/comment.md < pr-comment/pr_number.txt + echo "lint" > pr-comment/header.txt + [ -f lint_results.md ] && cp lint_results.md pr-comment/comment.md || true + + - name: Upload PR comment artifact + if: ${{ always() }} + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + with: + name: pr-comment + path: pr-comment/ diff --git a/.github/workflows/linting_comment.yml b/.github/workflows/linting_comment.yml deleted file mode 100644 index 5b0c24f..0000000 --- a/.github/workflows/linting_comment.yml +++ /dev/null @@ -1,28 +0,0 @@ -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 - -on: - workflow_run: - workflows: ["nf-core linting"] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - name: Download lint results - uses: dawidd6/action-download-artifact@b6e2e70617bc3265edd6dab6c906732b2f1ae151 # v21 - with: - workflow: linting.yml - workflow_conclusion: completed - - - name: Get PR number - id: pr_number - run: echo "pr_number=$(cat linting-logs/PR_number.txt)" >> $GITHUB_OUTPUT - - - name: Post PR comment - uses: marocchino/sticky-pull-request-comment@70d2764d1a7d5d9560b100cbea0077fc8f633987 # v3 - with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - number: ${{ steps.pr_number.outputs.pr_number }} - path: linting-logs/lint_results.md diff --git a/.github/workflows/nf-test.yml b/.github/workflows/nf-test.yml index efd72d6..4de681a 100644 --- a/.github/workflows/nf-test.yml +++ b/.github/workflows/nf-test.yml @@ -116,6 +116,22 @@ jobs: fi fi + # continue-on-error keeps latest-everything from failing the job, so it never shows up in + # `needs.nf-test.result` downstream and CI stays green. Surface it via a PR comment instead; + # other NXF_VER failures already fail the job/CI directly, so no comment is needed for those. + - name: Prepare PR comment fragment + if: ${{ always() && steps.run_nf_test.outcome == 'failure' && matrix.NXF_VER == 'latest-everything' }} + run: | + mkdir -p pr-comment-fragment + echo "* ❌ \`${{ matrix.profile }}\` | \`${{ matrix.NXF_VER }}\` | Shard ${{ matrix.shard }}/${{ env.TOTAL_SHARDS }}" > pr-comment-fragment/fragment.md + + - name: Upload PR comment fragment + if: ${{ always() && steps.run_nf_test.outcome == 'failure' && matrix.NXF_VER == 'latest-everything' }} + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + with: + name: pr-comment-fragment-${{ strategy.job-index }} + path: pr-comment-fragment/ + confirm-pass: needs: [nf-test] if: always() @@ -142,3 +158,44 @@ jobs: echo "DEBUG: toJSON(needs) = ${{ toJSON(needs) }}" echo "DEBUG: toJSON(needs.*.result) = ${{ toJSON(needs.*.result) }}" echo "::endgroup::" + + - name: Download PR comment fragments + if: ${{ always() }} + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + continue-on-error: true + with: + pattern: pr-comment-fragment-* + path: pr-comment-fragments + merge-multiple: true + + # Build a comment for the shared pr-comment.yml poster to publish on the PR. + # Based on the fragments above (not needs.*.result) so non-blocking failures are still reported. + - name: Prepare PR comment + if: ${{ always() }} + env: + PR_NUMBER: ${{ github.event.pull_request.number }} + RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} + run: | + mkdir -p pr-comment + echo "$PR_NUMBER" > pr-comment/pr_number.txt + echo "nf-test" > pr-comment/header.txt + if [ -d pr-comment-fragments ] && [ -n "$(ls -A pr-comment-fragments)" ]; then + { + echo "## ❌ nf-test failed with latest Nextflow version" + echo "" + echo "> [!NOTE]" + echo "> Tests with Nextflow's latest version failed but it will not cause a CI workflow failure." + echo "> Please check if the failure is expected with newer (edge-)releases of Nextflow or if it needs fixing." + echo "" + cat pr-comment-fragments/*.md + echo "" + echo "See the [full run](${RUN_URL}) for details." + } > pr-comment/comment.md + fi + + - name: Upload PR comment artifact + if: ${{ always() }} + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + with: + name: pr-comment + path: pr-comment/ diff --git a/.github/workflows/pr-comment.yml b/.github/workflows/pr-comment.yml new file mode 100644 index 0000000..ab7b59d --- /dev/null +++ b/.github/workflows/pr-comment.yml @@ -0,0 +1,82 @@ +name: Post PR comment +# Shared, privileged comment poster. +# +# This is the single workflow that runs with a write token. It is triggered +# after any of the listed "producer" workflows complete on a pull request. +# Each producer runs untrusted PR code (if any) with a read-only token and +# uploads a `pr-comment` artifact describing the comment to post; this workflow +# only ever reads that plain-text artifact, so no PR code is executed here. +# +# Artifact contract (uploaded by producers under the name `pr-comment`): +# pr_number.txt - the pull request number +# header.txt - sticky-comment identifier (keeps comment types separate) +# comment.md - the Markdown body (omit the file to post nothing) + +on: + workflow_run: + workflows: + - "nf-core linting" + - "nf-core template version comment" + - "nf-core branch protection" + - "Run nf-test" + +permissions: + actions: read + contents: read + pull-requests: write + +jobs: + post-comment: + runs-on: ubuntu-latest + if: github.event.workflow_run.event == 'pull_request' + steps: + - name: Download PR comment artifact + uses: dawidd6/action-download-artifact@b6e2e70617bc3265edd6dab6c906732b2f1ae151 # v21 + with: + run_id: ${{ github.event.workflow_run.id }} + name: pr-comment + path: pr-comment + if_no_artifact_found: ignore + + - name: Read comment metadata + id: meta + run: | + echo "::group::Downloaded pr-comment contents" + ls -la pr-comment 2>/dev/null || echo "No pr-comment/ directory was downloaded." + echo "::endgroup::" + + if [ ! -d pr-comment ]; then + echo "No pr-comment artifact found; nothing to post." + exit 0 + fi + + if [ ! -f pr-comment/comment.md ]; then + echo "Artifact present but no comment.md; nothing to post." + exit 0 + fi + + pr_number=$(cat pr-comment/pr_number.txt) + header=$(cat pr-comment/header.txt) + echo "Found comment.md (header='$header', pr_number='$pr_number')." + + # Guard against anything unexpected ending up in the PR number. + case "$pr_number" in + ''|*[!0-9]*) + echo "Invalid PR number: '$pr_number'" + exit 1 + ;; + esac + + echo "pr_number=$pr_number" >> "$GITHUB_OUTPUT" + echo "header=$header" >> "$GITHUB_OUTPUT" + echo "post=true" >> "$GITHUB_OUTPUT" + echo "Will post comment to PR #${pr_number}." + + - name: Post PR comment + if: steps.meta.outputs.post == 'true' + uses: marocchino/sticky-pull-request-comment@5770ad5eb8f42dd2c4f34da00c94c5381e49af88 # v3.0.5 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + number: ${{ steps.meta.outputs.pr_number }} + header: ${{ steps.meta.outputs.header }} + path: pr-comment/comment.md diff --git a/.github/workflows/release-announcements.yml b/.github/workflows/release-announcements.yml index 78d5dbe..4974f44 100644 --- a/.github/workflows/release-announcements.yml +++ b/.github/workflows/release-announcements.yml @@ -18,7 +18,7 @@ jobs: id: get_description run: | echo "description=$(curl -s https://nf-co.re/pipelines.json | jq -r '.remote_workflows[] | select(.full_name == "${{ github.repository }}") | .description')" >> $GITHUB_OUTPUT - - uses: rzr/fediverse-action@563159eb8d45f70ab6aaba36ed55cd037e51f441 # master + - uses: rzr/fediverse-action@66c2cbb5b1997666b0e28d597631b6a4f09a2719 # v0.0.6 with: access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }} host: "mstdn.science" # custom host if not "mastodon.social" (default) diff --git a/.github/workflows/template-version-comment.yml b/.github/workflows/template-version-comment.yml index ea30827..ee102f7 100644 --- a/.github/workflows/template-version-comment.yml +++ b/.github/workflows/template-version-comment.yml @@ -2,10 +2,13 @@ name: nf-core template version comment # This workflow is triggered on PRs to check if the pipeline template version matches the latest nf-core version. # It posts a comment to the PR, even if it comes from a fork. -on: pull_request_target +on: + pull_request: + +permissions: {} jobs: - template_version: + check_template_version: runs-on: ubuntu-latest steps: - name: Check out pipeline code @@ -22,25 +25,36 @@ jobs: - name: Install nf-core run: | python -m pip install --upgrade pip - pip install nf-core==${{ steps.read_yml.outputs['nf_core_version'] }} + pip install nf-core + + - name: Build PR comment if template is outdated + # The fork-controlled version is passed via the environment and only ever + # used as quoted shell data (never interpolated into a command), so it + # cannot be used for script injection. + env: + PR_VERSION: ${{ steps.read_yml.outputs['nf_core_version'] }} + PR_NUMBER: ${{ github.event.pull_request.number }} + run: | + mkdir -p pr-comment + echo "$PR_NUMBER" > pr-comment/pr_number.txt + echo "template-version" > pr-comment/header.txt + + latest_version=$(nf-core --version | grep -oE '[0-9]+\.[0-9]+\.[0-9]+' | head -n1) - - name: Check nf-core outdated - id: nf_core_outdated - run: echo "OUTPUT=$(pip list --outdated | grep nf-core)" >> ${GITHUB_ENV} + if [ -n "$PR_VERSION" ] && [ -n "$latest_version" ] && [ "$PR_VERSION" != "$latest_version" ]; then + cat > pr-comment/comment.md < [!WARNING] + > Newer version of the nf-core template is available. + > + > Your pipeline is using an old version of the nf-core template: ${PR_VERSION}. + > Please update your pipeline to the latest version. + > + > For more documentation on how to update your pipeline, please see the [Synchronisation documentation](https://nf-co.re/docs/developing/template-syncs/overview). + EOF + fi - - name: Post nf-core template version comment - uses: mshick/add-pr-comment@8e4927817251f1ff60c001f04568532b38e0b4a0 # v3 - if: | - contains(env.OUTPUT, 'nf-core') + - name: Upload PR comment artifact + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: - repo-token: ${{ secrets.NF_CORE_BOT_AUTH_TOKEN }} - allow-repeats: false - message: | - > [!WARNING] - > Newer version of the nf-core template is available. - > - > Your pipeline is using an old version of the nf-core template: ${{ steps.read_yml.outputs['nf_core_version'] }}. - > Please update your pipeline to the latest version. - > - > For more documentation on how to update your pipeline, please see the [Synchronisation documentation](https://nf-co.re/docs/developing/template-syncs/overview). - # + name: pr-comment + path: pr-comment/ diff --git a/.nf-core.yml b/.nf-core.yml index fcd768a..9eff1ef 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -1,4 +1,5 @@ lint: + container_configs: false files_exist: - conf/igenomes.config - conf/igenomes_ignored.config @@ -9,10 +10,11 @@ lint: - assets/nf-core-seqsubmit_logo_light.png nextflow_config: - params.input -nf_core_version: 4.0.2 +nf_core_version: 4.0.3 repository_type: pipeline template: - author: Martin Beracochea, Ekaterina Sakharova, Sofiia Ochkalova, Evangelos Karatzas + author: Martin Beracochea, Ekaterina Sakharova, Sofia Ochkalova, Evangelos Karatzas, + Tim Rozday description: Submit sequences, assemblies, MAGs, etc., to public archives force: false is_nfcore: true @@ -23,4 +25,4 @@ template: - igenomes - fastqc - gpu - version: 1.0.0dev + version: 1.0.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 8859bd8..90900cd 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.0.0dev - [date] +## v1.0.0 - [date] Initial release of nf-core/seqsubmit, created with the [nf-core](https://nf-co.re/) template. diff --git a/README.md b/README.md index 0e9106d..59ccc3c 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ [![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com) [![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.4-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/) -[![nf-core template version](https://img.shields.io/badge/nf--core_template-4.0.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.0.2) +[![nf-core template version](https://img.shields.io/badge/nf--core_template-4.0.3-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.0.3) [![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/) @@ -78,7 +78,7 @@ For more details about the output files and reports, please refer to the ## Credits -nf-core/seqsubmit was originally written by Martin Beracochea, Ekaterina Sakharova, Sofiia Ochkalova, Evangelos Karatzas. +nf-core/seqsubmit was originally written by Martin Beracochea, Ekaterina Sakharova, Sofia Ochkalova, Evangelos Karatzas, Tim Rozday. We thank the following people for their extensive assistance in the development of this pipeline: diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 5b6dfbc..66a4f8c 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -1,7 +1,7 @@ report_comment: > - This report has been generated by the
    nf-core/seqsubmit + This report has been generated by the nf-core/seqsubmit analysis pipeline. For information about how to interpret these results, please see the - documentation. + documentation. report_section_order: "nf-core-seqsubmit-methods-description": order: -1000 diff --git a/assets/schema_input.json b/assets/schema_input.json index e5c86ba..4d8c527 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://raw.githubusercontent.com/nf-core/seqsubmit/master/assets/schema_input.json", + "$id": "https://raw.githubusercontent.com/nf-core/seqsubmit/main/assets/schema_input.json", "title": "nf-core/seqsubmit pipeline - params.input schema", "description": "Schema for the file provided with params.input", "type": "array", diff --git a/nextflow.config b/nextflow.config index adc4028..8ec9406 100644 --- a/nextflow.config +++ b/nextflow.config @@ -252,7 +252,7 @@ manifest { orcid: '' ], [ - name: ' Sofiia Ochkalova', + name: ' Sofia Ochkalova', affiliation: '', email: '', github: '', @@ -267,13 +267,21 @@ manifest { contribution: [], // List of contribution types ('author', 'maintainer' or 'contributor') orcid: '' ], + [ + name: ' Tim Rozday', + affiliation: '', + email: '', + github: '', + contribution: [], // List of contribution types ('author', 'maintainer' or 'contributor') + orcid: '' + ], ] homePage = 'https://github.com/nf-core/seqsubmit' description = """Submit sequences, assemblies, MAGs, etc., to public archives""" mainScript = 'main.nf' - defaultBranch = 'master' + defaultBranch = 'main' nextflowVersion = '!>=25.10.4' - version = '1.0.0dev' + version = '1.0.0' doi = '' } diff --git a/nextflow_schema.json b/nextflow_schema.json index 7a4b039..9785121 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://raw.githubusercontent.com/nf-core/seqsubmit/master/nextflow_schema.json", + "$id": "https://raw.githubusercontent.com/nf-core/seqsubmit/main/nextflow_schema.json", "title": "nf-core/seqsubmit pipeline parameters", "description": "Submit sequences, assemblies, MAGs, etc., to public archives", "type": "object", diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index ca98c1b..c13fe1d 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -21,9 +21,9 @@ { "@id": "./", "@type": "Dataset", - "creativeWorkStatus": "InProgress", - "datePublished": "2026-04-30T13:32:49+00:00", - "description": "

    \n \n \n \"nf-core/seqsubmit\"\n \n

    \n\n[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/seqsubmit)\n[![GitHub Actions CI Status](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/seqsubmit/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.4-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-4.0.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.0.2)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/seqsubmit)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqsubmit-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqsubmit)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/seqsubmit** is a bioinformatics pipeline that ...\n\n\n\n\n2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/get_started/environment_setup/overview) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/get_started/run-your-first-pipeline) with `-profile test` before running the workflow on actual data.\n\n\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/running/run-pipelines#using-parameter-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/seqsubmit/usage) and the [parameter documentation](https://nf-co.re/seqsubmit/parameters).\n\n## Pipeline output\n\nTo see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/seqsubmit/results) tab on the nf-core website pipeline page.\nFor more details about the output files and reports, please refer to the\n[output documentation](https://nf-co.re/seqsubmit/output).\n\n## Credits\n\nnf-core/seqsubmit was originally written by Martin Beracochea, Ekaterina Sakharova, Sofiia Ochkalova, Evangelos Karatzas.\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](docs/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#seqsubmit` channel](https://nfcore.slack.com/channels/seqsubmit) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", + "creativeWorkStatus": "Stable", + "datePublished": "2026-07-24T12:36:22+00:00", + "description": "

    \n \n \n \"nf-core/seqsubmit\"\n \n

    \n\n[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/seqsubmit)\n[![GitHub Actions CI Status](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/seqsubmit/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.4-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-4.0.3-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.0.3)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/seqsubmit)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqsubmit-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqsubmit)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/seqsubmit** is a bioinformatics pipeline that ...\n\n\n\n\n2. Present QC for raw reads ([`MultiQC`](http://multiqc.info/))\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/get_started/environment_setup/overview) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/get_started/run-your-first-pipeline) with `-profile test` before running the workflow on actual data.\n\n\n\nNow, you can run the pipeline using:\n\n\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile \\\n --input samplesheet.csv \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/running/run-pipelines#using-parameter-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/seqsubmit/usage) and the [parameter documentation](https://nf-co.re/seqsubmit/parameters).\n\n## Pipeline output\n\nTo see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/seqsubmit/results) tab on the nf-core website pipeline page.\nFor more details about the output files and reports, please refer to the\n[output documentation](https://nf-co.re/seqsubmit/output).\n\n## Credits\n\nnf-core/seqsubmit was originally written by Martin Beracochea, Ekaterina Sakharova, Sofia Ochkalova, Evangelos Karatzas, Tim Rozday.\n\nWe thank the following people for their extensive assistance in the development of this pipeline:\n\n\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](docs/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#seqsubmit` channel](https://nfcore.slack.com/channels/seqsubmit) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\n\n\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", "hasPart": [ { "@id": "main.nf" @@ -99,7 +99,7 @@ }, "mentions": [ { - "@id": "#6a35cf24-1f54-4f1b-8bd7-da24e4ef9c61" + "@id": "#b9a22430-cd92-4053-a257-9fd6f20776f9" } ], "name": "nf-core/seqsubmit" @@ -127,17 +127,20 @@ "@id": "https://orcid.org/0000-0003-3472-3736" }, { - "@id": "#002b989f-efa9-4c5b-bf4e-bbf8f2d58be1" + "@id": "#e5eaba7e-b8d4-40dd-a235-ea4a18314307" }, { - "@id": "#bf7a74fc-7f56-4751-bd51-0f3035468776" + "@id": "https://orcid.org/0000-0003-2814-6012" }, { "@id": "https://orcid.org/0000-0001-9132-8981" + }, + { + "@id": "#14ef52aa-83db-4988-82ab-828335934408" } ], "dateCreated": "", - "dateModified": "2026-04-30T13:32:49Z", + "dateModified": "2026-07-24T12:36:22Z", "dct:conformsTo": "https://bioschemas.org/profiles/ComputationalWorkflow/1.0-RELEASE/", "keywords": ["nf-core", "nextflow"], "license": ["MIT"], @@ -148,8 +151,8 @@ "sdPublisher": { "@id": "https://nf-co.re/" }, - "url": ["https://github.com/nf-core/seqsubmit", "https://nf-co.re/seqsubmit/dev/"], - "version": ["1.0.0dev"] + "url": ["https://github.com/nf-core/seqsubmit", "https://nf-co.re/seqsubmit/1.0.0/"], + "version": ["1.0.0"] }, { "@id": "https://w3id.org/workflowhub/workflow-ro-crate#nextflow", @@ -164,11 +167,11 @@ "version": "!>=25.10.4" }, { - "@id": "#6a35cf24-1f54-4f1b-8bd7-da24e4ef9c61", + "@id": "#b9a22430-cd92-4053-a257-9fd6f20776f9", "@type": "TestSuite", "instance": [ { - "@id": "#32731c67-24d2-422c-bacc-c9bf3b9753c3" + "@id": "#4b475711-84b9-4a69-9fa5-544aba88ac60" } ], "mainEntity": { @@ -177,7 +180,7 @@ "name": "Test suite for nf-core/seqsubmit" }, { - "@id": "#32731c67-24d2-422c-bacc-c9bf3b9753c3", + "@id": "#4b475711-84b9-4a69-9fa5-544aba88ac60", "@type": "TestInstance", "name": "GitHub Actions workflow for testing nf-core/seqsubmit", "resource": "repos/nf-core/seqsubmit/actions/workflows/nf-test.yml", @@ -311,19 +314,24 @@ "name": "Martin Beracochea" }, { - "@id": "#002b989f-efa9-4c5b-bf4e-bbf8f2d58be1", + "@id": "#e5eaba7e-b8d4-40dd-a235-ea4a18314307", "@type": "Person", "name": "Ekaterina Sakharova" }, { - "@id": "#bf7a74fc-7f56-4751-bd51-0f3035468776", + "@id": "https://orcid.org/0000-0003-2814-6012", "@type": "Person", - "name": "Sofiia Ochkalova" + "name": "Sofia Ochkalova" }, { "@id": "https://orcid.org/0000-0001-9132-8981", "@type": "Person", "name": "Evangelos Karatzas" + }, + { + "@id": "#14ef52aa-83db-4988-82ab-828335934408", + "@type": "Person", + "name": "Tim Rozday" } ] } diff --git a/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf b/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf index e5a8094..9a0553c 100644 --- a/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf +++ b/subworkflows/local/utils_nfcore_seqsubmit_pipeline/main.nf @@ -71,7 +71,7 @@ workflow PIPELINE_INITIALISATION { https://doi.org/10.1038/s41587-020-0439-x * Software dependencies - https://github.com/nf-core/seqsubmit/blob/master/CITATIONS.md + https://github.com/nf-core/seqsubmit/blob/main/CITATIONS.md """ if (monochrome_logs) { before_text = before_text.replaceAll(/\033\[[0-9;]*m/, '') From d0e42bef1af650ac54ccae6d23f7e1c9e6293058 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Mon, 27 Jul 2026 11:56:00 +0100 Subject: [PATCH 37/47] change limits for coverage, completeness and contamination --- assets/schema_input_assembly.json | 4 ++-- assets/schema_input_genome.json | 13 +++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/assets/schema_input_assembly.json b/assets/schema_input_assembly.json index c35a887..4a767ca 100644 --- a/assets/schema_input_assembly.json +++ b/assets/schema_input_assembly.json @@ -59,7 +59,7 @@ "anyOf": [ { "type": "number", - "minimum": 0 + "exclusiveMinimum": 0 }, { "type": "string", @@ -108,7 +108,7 @@ "properties": { "coverage": { "type": "number", - "minimum": 0 + "exclusiveMinimum": 0 } }, "required": ["coverage"] diff --git a/assets/schema_input_genome.json b/assets/schema_input_genome.json index 393211d..28c4d69 100644 --- a/assets/schema_input_genome.json +++ b/assets/schema_input_genome.json @@ -40,6 +40,7 @@ "maxLength": 0 } ], + "default": null, "errorMessage": "FASTQ file must have extension '.fq' or '.fastq' (optionally gzipped)", "description": "Forward reads if paired-end or single-end reads FASTQ file" }, @@ -85,8 +86,8 @@ "anyOf": [ { "type": "number", - "exclusiveMinimum": 0, - "exclusiveMaximum": 100 + "minimum": 0, + "maximum": 100 }, { "type": "string", @@ -101,8 +102,8 @@ "anyOf": [ { "type": "number", - "exclusiveMinimum": 0, - "exclusiveMaximum": 100 + "minimum": 0, + "maximum": 100 }, { "type": "string", @@ -117,7 +118,7 @@ "anyOf": [ { "type": "number", - "minimum": 0 + "exclusiveMinimum": 0 }, { "type": "string", @@ -201,7 +202,7 @@ "properties": { "genome_coverage": { "type": "number", - "minimum": 0 + "exclusiveMinimum": 0 } }, "required": ["genome_coverage"] From 774f69c954256cb88444f634def12f06937f6aa7 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova <49755902+KateSakharova@users.noreply.github.com> Date: Mon, 27 Jul 2026 15:07:47 +0100 Subject: [PATCH 38/47] Apply suggestion from @ochkalova Co-authored-by: Sofia Ochkalova <61541445+ochkalova@users.noreply.github.com> --- conf/test_mag_complete_metadata.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/test_mag_complete_metadata.conf b/conf/test_mag_complete_metadata.conf index e2d2489..428878a 100644 --- a/conf/test_mag_complete_metadata.conf +++ b/conf/test_mag_complete_metadata.conf @@ -20,7 +20,7 @@ process { params { config_profile_name = 'Test --mode mags complete_metadata profile' - config_profile_description = 'Single-case MAG test with complete metadata in samplesheet. No statistics or taxonomy calculations will be performed; the pipeline will only upload the data. Study for submission was already registered and provided via --submission_study.' + config_profile_description = 'Tests single MAG submission with all metadata provided in the samplesheet, so the pipeline skips statistics and taxonomy calculation and only performs the upload to ENA. Submits to a pre-existing ENA study passed via --submission_study.' // Input data input = params.pipelines_testdata_base_path + 'seqsubmit/samplesheets/mag_complete_metadata.csv' From 99970b6ddbbbbfe3449fce2ae51dbc180dd9349d Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova <49755902+KateSakharova@users.noreply.github.com> Date: Mon, 27 Jul 2026 15:08:52 +0100 Subject: [PATCH 39/47] Update subworkflows/local/genome_evaluation/main.nf Co-authored-by: Sofia Ochkalova <61541445+ochkalova@users.noreply.github.com> --- subworkflows/local/genome_evaluation/main.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/subworkflows/local/genome_evaluation/main.nf b/subworkflows/local/genome_evaluation/main.nf index 4c477ee..7d78b8d 100644 --- a/subworkflows/local/genome_evaluation/main.nf +++ b/subworkflows/local/genome_evaluation/main.nf @@ -21,8 +21,8 @@ workflow GENOME_EVALUATION { take: ch_fasta // channel: [ val(meta), path(fasta) ] - ch_checkm2_db // val: path to CheckM2 database or null - ch_checkm2_db_download_id // val: CheckM2 database download ID + ch_checkm2_db // val: path to local CheckM2 database or null to trigger automatic download + ch_checkm2_db_download_id // val: CheckM2 database Zenodo download ID main: From 1a322b6c55e04adfd481fd4a76009615f7ee28fa Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova <49755902+KateSakharova@users.noreply.github.com> Date: Mon, 27 Jul 2026 15:09:02 +0100 Subject: [PATCH 40/47] Update conf/test_assembly_complete_metadata.config Co-authored-by: Sofia Ochkalova <61541445+ochkalova@users.noreply.github.com> --- conf/test_assembly_complete_metadata.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/test_assembly_complete_metadata.config b/conf/test_assembly_complete_metadata.config index aa8c4d9..801cab7 100644 --- a/conf/test_assembly_complete_metadata.config +++ b/conf/test_assembly_complete_metadata.config @@ -20,7 +20,7 @@ process { params { config_profile_name = 'Test --mode metagenomic_assemblies complete_metadata profile' - config_profile_description = 'Single-case assembly test with complete metadata in samplesheet. No statistics calculations will be performed; the pipeline will only upload the data. Study for submission was already registered and provided via --submission_study.' + config_profile_description = 'Tests single assembly submission with all metadata provided in the samplesheet so the pipeline skips coverage calculation and only performs the upload to ENA. Submits to a pre-existing ENA study passed via --submission_study.' // Input data input = params.pipelines_testdata_base_path + 'seqsubmit/samplesheets/assembly_complete_metadata.csv' From 2a0364cca689580a66a939dec052b52a7e3fb6af Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Mon, 27 Jul 2026 15:38:11 +0100 Subject: [PATCH 41/47] remove nr from main workflow and add to taxonomy subwf --- main.nf | 1 - workflows/genomesubmit.nf | 8 ++++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/main.nf b/main.nf index 2ba497e..1c9223a 100644 --- a/main.nf +++ b/main.nf @@ -55,7 +55,6 @@ workflow NFCORE_SEQSUBMIT { params.checkm2_db, params.checkm2_db_download_id, params.cat_db, - "nr", // NCBI non-redundant protein database identifier params.centre_name, params.upload_tpa, params.test_upload, diff --git a/workflows/genomesubmit.nf b/workflows/genomesubmit.nf index 2cc74b3..37ce955 100644 --- a/workflows/genomesubmit.nf +++ b/workflows/genomesubmit.nf @@ -46,7 +46,6 @@ workflow GENOMESUBMIT { checkm2_db // val: path to CheckM2 database checkm2_db_download_id // val: CheckM2 database download ID cat_db // val: path to CAT database - cat_db_download_id // val: CAT database download ID centre_name // val: submission centre name upload_tpa // val: upload as TPA (Third Party Annotation) test_upload // val: true for test upload mode @@ -185,9 +184,10 @@ workflow GENOMESUBMIT { ? channel.of( [['id': 'CAT_DB'], file(cat_db)] ) : channel.empty() - def cat_db_id_input = (!cat_db && cat_db_download_id) - ? channel.of( [['id': 'CAT_DB_id'], cat_db_download_id] ) - : channel.empty() + cat_db_download_id = "nr" // NCBI non-redundant protein database identifier + def cat_db_id_input = cat_db + ? channel.empty() + : channel.of( [['id': 'CAT_DB_id'], cat_db_download_id] ) FASTA_CLASSIFY_CATPACK ( RENAME_FASTA_FOR_CATPACK.out.renamed_fasta, // ch_bins From 8af5f5053704ef3e737b002f17d61d2895263ea1 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova <49755902+KateSakharova@users.noreply.github.com> Date: Mon, 27 Jul 2026 15:39:08 +0100 Subject: [PATCH 42/47] Update docs and schemas for better descriptions Co-authored-by: Sofia Ochkalova <61541445+ochkalova@users.noreply.github.com> --- docs/CONTRIBUTING.md | 2 +- docs/methods.md | 2 +- docs/usage.md | 4 ++-- nextflow_schema.json | 18 +++++++++--------- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 2ff2980..7330210 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -186,7 +186,7 @@ To ensure consistency and maintainability of the nf-core/seqsubmit pipeline, con ### Code style -The pipeline is organized into three separate workflows `(mode`s-) because each mode has distinct procedures and requirements. Future development should follow the same structure to maintain consistency and readability. +The pipeline is organized into three separate workflows, one for each mode (mags, bins, metagenomic_assemblies, reads), because each data type has distinct submission procedures and metadata requirements. Future development should follow the same structure to maintain consistency and readability. If a new feature extends support for an **existing** data type (for example, _adding support for eukaryotic MAGs_), the corresponding logic should be integrated into the existing workflow rather than creating a new one. diff --git a/docs/methods.md b/docs/methods.md index 567e19a..1504fa1 100644 --- a/docs/methods.md +++ b/docs/methods.md @@ -125,7 +125,7 @@ If `NCBI_lineage` is already present in the input samplesheet, the value is reta Before classification, input FASTA files are normalized to a `.fasta` suffix by `RENAME_FASTA_FOR_CATPACK`. Classification is then run in bin mode (`CAT_pack bins`, followed by `CAT_pack add_names`). -Database input is taken from `--cat_db` when provided; otherwise the workflow uses `nr` database identifier to download and prepare a CATPACK NCBI database. See [CAT_pack documentation](https://github.com/MGXlab/CAT_pack#downloading-preconstructed-database-files). There are two options available: `nr` - NCBI non-redundant protein database and `gtdb` (Genome Taxonomy Database (GTDB) proteins). We use NCBI proteins because ENA supports only NCBI format of taxonomy for submission. The resulting classification table is parsed, and the lineage field is written to `NCBI_lineage`. +Database input is taken from `--cat_db` when provided; otherwise the workflow builds CAT_pack database from NCBI non-redundant protein database (`nr`). See [CAT_pack documentation](https://github.com/MGXlab/CAT_pack#downloading-preconstructed-database-files). There are two options available: `nr` - NCBI non-redundant protein database and `gtdb` (Genome Taxonomy Database (GTDB) proteins). We use NCBI proteins because ENA supports only NCBI format of taxonomy for submission. The resulting classification table is parsed, and the lineage field is written to `NCBI_lineage`. ### Completeness and contamination assessment diff --git a/docs/usage.md b/docs/usage.md index 353a906..ff4ec7c 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -337,7 +337,7 @@ In particular, the CAT_pack database is extremely large and may take a long time - provide the path to a local database with `--checkm2_db`, otherwise the pipeline downloads the version specified with `--checkm2_db_download_id` (by default Zenodo accession `14897628`). - CAT_pack: - - provide the path to a local database (containing `tax/` and `db/` folders or a `tar.gz` archive) with `--cat_db`, otherwise the pipeline constructs NCBI non-redundant protein database. + - provide the path to a local database (containing `tax/` and `db/` folders or a `tar.gz` archive) with `--cat_db`, otherwise the pipeline builds CAT_pack DB from NCBI non-redundant protein database (`nr`). See the [CAT_pack documentation](https://github.com/MGXlab/CAT_pack) and [CheckM2 documentation](https://github.com/chklovski/CheckM2) for more details on usage and creation of databases. @@ -352,7 +352,7 @@ In addition to the [common parameters](#running-the-pipeline): | -------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | | `--upload_tpa` | No | Mark assemblies as [third party assemblies (TPA)](#third-party-assemblies-tpa) when required. Default: `false`. | | `--checkm2_db` | No | Path to a local CheckM2 database. If omitted, downloads the version set by `--checkm2_db_download_id`. Default: `14897628` (Zenodo accession). | -| `--cat_db` | No | Path to a local CAT_pack database. If omitted, constructs the NCBI non-redundant protein database. | +| `--cat_db` | No | Path to a local CAT_pack database. If omitted, builds CAT_pack DB from NCBI non-redundant protein database (`nr`). | Example `mags` mode upload to TEST server, run command with docker: diff --git a/nextflow_schema.json b/nextflow_schema.json index d6323b9..e69e8d0 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -261,9 +261,9 @@ }, "upload_tpa": { "type": "boolean", - "description": "Flag to control the type of assembly study (third party assembly (TPA) or not). TPA description: https://www.ncbi.nlm.nih.gov/genbank/tpa/.", - "default": false, - "help": "Use this flag if the study is a third party assembly (TPA). Default: false" + "description": "Mark the assemblies as a Third PArty (TPA)", + "help": "Set to true if the assembly was built from public sequence data (TPA) rather than original primary data. See NCBI TPA guidance: https://www.ncbi.nlm.nih.gov/genbank/tpa/", + "default": false }, "mode": { "type": "string", @@ -280,15 +280,15 @@ }, "is_private": { "type": "boolean", - "description": "Use that flag if you are referring to private data in ENA", "default": false, - "help": "This flag is used during metadata fetch steps. Specify if you are referring to private data (project/reads/assembly). That flag does NOT regulate privacy of your submission data (check --release_date)" + "description": "Use that flag if you are referencing private data accessions in the samplesheet", + "help": "Set to true when the referenced project/reads/assembly are still private in ENA, so metadata is fetched via authenticated access. Does NOT affect the privacy of your own submission, use --release_date for that" }, "release_date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", - "description": "Use that flag if you want to keep your data private after submission", - "help": "This flag regulates when the created study for submission will become publically available and indexed on the ENA. If you want to keep your data private until a later date, you need to specify a DATE when it can become public (YYYY-MM-DD, max 2 years from now)" + "description": "Date (YYYY-MM-DD) until which the newly created study stays private in ENA.", + "help": "Sets the release date for the study created by the pipeline. Data stays private until this date, then is automatically released and indexed by ENA. Must be no more than 2 years from today. Omit to release the study publicly immediately." }, "submission_study": { "type": "string", @@ -299,8 +299,8 @@ "type": "string", "format": "file-path", "exists": true, - "description": "Path to study metadata file (JSON, CSV, or TSV) for registering a new ENA study. Required when submission_study is not provided.", - "help_text": "File containing study metadata fields (required: study_title and alias, optional: study_abstract, existing_study_type, etc.). Used by REGISTERSTUDY to create a new study in ENA when no existing submission_study accession is given. ENA documentation: https://ena-docs.readthedocs.io/en/latest/submit/study/programmatic.html", + "description": "Path to a file (JSON, CSV, or TSV) with metadata for registering a new ENA study. Required if --submission_study is not set.", + "help_text": "File containing study metadata fields (required: study_title, alias; optional: study_abstract, existing_study_type, etc.) used by the pipeline to register a new ENA study when no existing --submission_study accession is given. ENA docs: https://ena-docs.readthedocs.io/en/latest/submit/study/programmatic.html", "fa_icon": "fas fa-file-alt" }, "webincli_mode": { From b4a5d4852b580587d14260e2b6e9ff4af5495b8d Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Tue, 28 Jul 2026 13:57:45 +0100 Subject: [PATCH 43/47] aligned docs and schemas --- assets/schema_input_assembly.json | 15 +++-- assets/schema_input_genome.json | 28 ++++---- assets/schema_input_reads.json | 21 +++--- docs/usage.md | 108 +++++++++++++++--------------- nextflow_schema.json | 42 ++++++------ 5 files changed, 108 insertions(+), 106 deletions(-) diff --git a/assets/schema_input_assembly.json b/assets/schema_input_assembly.json index 4a767ca..308ccc1 100644 --- a/assets/schema_input_assembly.json +++ b/assets/schema_input_assembly.json @@ -10,7 +10,7 @@ "id": { "type": "string", "pattern": "^\\S+$", - "description": "Unique assembly identifier", + "description": "A unique identifier for this data entry. Must be globally unique within the input dataset", "errorMessage": "ID must be provided and cannot contain spaces", "meta": ["id"] }, @@ -19,7 +19,7 @@ "format": "file-path", "exists": true, "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.(fa|fasta|fna)\\.gz$", - "errorMessage": "FASTA file must be provided and have extension '.fa.gz', '.fasta.gz', '.fna.gz'", + "errorMessage": "Path to assembly contigs in FASTA format compressed with gzip", "description": "Metagenomic assembly FASTA file" }, "fastq_1": { @@ -35,8 +35,9 @@ "maxLength": 0 } ], + "default": null, "errorMessage": "FASTQ file must have extension '.fq' or '.fastq' (optionally gzipped)", - "description": "Forward reads if paired-end or single-end reads FASTQ file" + "description": "Path to single-end/paired-end forward reads in FASTQ format (optionally gzipped). Required if coverage is not provided" }, "fastq_2": { "anyOf": [ @@ -53,7 +54,7 @@ ], "default": null, "errorMessage": "FASTQ file for reverse reads must have extension '.fq' or '.fastq' (optionally gzipped)", - "description": "Reverse reads FASTQ file if paired-end. Leave empty for single-end reads" + "description": "Path to reverse reads in FASTQ format for paired-end data (optionally gzipped). Leave empty for single-end reads" }, "coverage": { "anyOf": [ @@ -68,14 +69,14 @@ ], "default": null, "errorMessage": "Coverage must be a positive number or empty", - "description": "Estimated value of assembly coverage", + "description": "Estimated sequencing depth of the assembly (optional). If this value is missing, it is computed automatically during pipeline execution when reads are provided", "meta": ["coverage"] }, "run_accession": { "type": "string", "pattern": "^\\S+$", "errorMessage": "Accession must be provided and cannot contain spaces", - "description": "Accession of the run used to generate the assembly", + "description": "ENA run accession for the reads used to generate the metagenomic assembly. Reads must already be submitted to ENA", "meta": ["run_accession"] }, "assembler": { @@ -89,7 +90,7 @@ "anyOf": [{ "type": "string" }, { "type": "number" }], "pattern": "^\\S+$", "errorMessage": "Assembler version must be provided and cannot contain spaces", - "description": "Version of the assembler software used to generate the assembly, e.g 1.0.0", + "description": "Version of the assembler software used to generate the assembly, e.g. 1.0.0", "meta": ["assembler_version"] } }, diff --git a/assets/schema_input_genome.json b/assets/schema_input_genome.json index 28c4d69..2187d86 100644 --- a/assets/schema_input_genome.json +++ b/assets/schema_input_genome.json @@ -10,7 +10,7 @@ "id": { "type": "string", "pattern": "^\\S+$", - "description": "Unique mag/bin identifier", + "description": "A unique identifier for this data entry. Must be globally unique within the input dataset", "errorMessage": "ID must be provided and cannot contain spaces", "meta": ["id"] }, @@ -19,12 +19,12 @@ "format": "file-path", "exists": true, "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.(fa|fasta|fna)\\.gz$", - "errorMessage": "FASTA file for sequences 1 must be provided, cannot contain spaces and must have extension '.fa.gz', '.fasta.gz', or '.fna.gz'", + "errorMessage": "Path to MAG/bin sequences in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. File should contain at least one sequence", "description": "MAG/bin sequence file" }, "accession": { "type": "string", - "description": "Run or assembly ENA accession", + "description": "ENA accession of the run or metagenomic assembly used to generate the MAG/bin", "meta": ["accession"] }, "fastq_1": { @@ -42,7 +42,7 @@ ], "default": null, "errorMessage": "FASTQ file must have extension '.fq' or '.fastq' (optionally gzipped)", - "description": "Forward reads if paired-end or single-end reads FASTQ file" + "description": "Path to single-end/paired-end forward reads (in FASTQ format, optionally gzipped) used to generate the source metagenomic assembly. Required if genome_coverage is not provided" }, "fastq_2": { "anyOf": [ @@ -59,7 +59,7 @@ ], "default": null, "errorMessage": "FASTQ file for reverse reads must have extension '.fq' or '.fastq' (optionally gzipped)", - "description": "Reverse reads FASTQ file if paired-end. Leave empty for single-end reads" + "description": "Path to reverse reads in FASTQ format for paired-end data (optionally gzipped) used to generate the source metagenomic assembly. Leave empty for single-end reads" }, "assembly_software": { "type": "string", @@ -68,18 +68,18 @@ }, "binning_software": { "type": "string", - "description": "Tool name and version that was used to bin data, e.g. MetaBAT2, VAMB, MaxBin2, CONCOCT, SemiBin2, COMEBin, etc", + "description": "Tool name and version that was used to bin data, e.g. MetaBAT2_v1.0, VAMB_2.0, MaxBin2_v1, CONCOCT_v3.0, SemiBin2_v1, COMEBin_v2.3.4, etc", "meta": ["binning_software"] }, "binning_parameters": { "type": "string", - "description": "Arguments used to bin data different from default, e.g. -min_contig_length 1000", + "description": "Arguments used to bin data different from default, e.g. -min_contig_length 1000, otherwise put 'default'", "meta": ["binning_parameters"] }, "stats_generation_software": { "type": "string", "default": null, - "description": "Tool(s) used to estimate completeness and contamination", + "description": "Tool, including version, that was used to calculate completeness and contamination, e.g. CheckM2_v1.0.0", "meta": ["stats_generation_software"] }, "completeness": { @@ -95,7 +95,7 @@ } ], "default": null, - "description": "MAG/bin completeness score: the ratio of observed single-copy marker genes to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined", + "description": "MAG/bin completeness score: the 0<= ratio <= 100 of observed single-copy marker genes to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined", "meta": ["completeness"] }, "contamination": { @@ -111,7 +111,7 @@ } ], "default": null, - "description": "MAG/bin contamination score: the ratio of observed single-copy marker genes in ≥2 copies to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined", + "description": "MAG/bin contamination score: the 0<= ratio <= 100 of observed single-copy marker genes in ≥2 copies to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined", "meta": ["contamination"] }, "genome_coverage": { @@ -126,17 +126,17 @@ } ], "default": null, - "description": "MAG/bin coverage value", + "description": "Estimated average sequencing depth (>0) across the genome. If the value is missing, it is computed automatically during pipeline execution when reads are provided", "meta": ["genome_coverage"] }, "metagenome": { "type": "string", - "description": "ENA accepted metagenome name. It needs to be listed in the taxonomy tree https://www.ebi.ac.uk/ena/browser/view/408169?show=tax-tree (you might need to press \"Tax tree - Show\" in the right most section of the page). Full list can also be found https://github.com/EBI-Metagenomics/genome_uploader/blob/main/genomeuploader/constants.py#L22", + "description": "Registered metagenome taxonomic identifier or name that matches an existing ENA taxonomy entry. It needs to be listed in the taxonomy tree https://www.ebi.ac.uk/ena/browser/view/408169?show=tax-tree (you might need to press \"Tax tree - Show\" in the right most section of the page). Full list can also be found https://github.com/EBI-Metagenomics/genome_uploader/blob/main/genomeuploader/constants.py#L22", "meta": ["metagenome"] }, "co-assembly": { "type": "boolean", - "description": "'true' if data was co-assembled, 'false' otherwise", + "description": "Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: 'true' or 'false'", "meta": ["co_assembly"] }, "broad_environment": { @@ -165,7 +165,7 @@ } ], "default": null, - "description": "Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: true/false", + "description": "Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: 'true' or 'false'", "meta": ["RNA_presence"] }, "NCBI_lineage": { diff --git a/assets/schema_input_reads.json b/assets/schema_input_reads.json index e39c89e..64931d3 100644 --- a/assets/schema_input_reads.json +++ b/assets/schema_input_reads.json @@ -12,13 +12,13 @@ "pattern": "^\\S+$", "errorMessage": "ID must be provided and cannot contain spaces", "meta": ["id"], - "description": "Unique experiment/run name" + "description": "Unique identifier of this particular data entry. Used as an experiment name" }, "sample_accession": { "type": "string", "pattern": "^\\S+$", "errorMessage": "Sample accession must be provided and cannot contain spaces", - "description": "ENA sample accession of the sample used to generate the reads", + "description": "ENA sample accession (starting with SAMEA) of the sample used to generate raw reads", "meta": ["sample_accession"] }, "fastq_1": { @@ -27,7 +27,7 @@ "exists": true, "pattern": "^\\S+\\.(fq|fastq)(\\.gz)?$", "errorMessage": "FASTQ file must have extension '.fq' or '.fastq' (optionally gzipped)", - "description": "Forward reads FASTQ file (single-end or paired-end)" + "description": "Path to single-end/paired-end forward reads in FASTQ format (optionally gzipped)" }, "fastq_2": { "anyOf": [ @@ -44,7 +44,7 @@ ], "default": null, "errorMessage": "FASTQ file for reverse reads must have extension '.fq' or '.fastq' (optionally gzipped)", - "description": "Reverse reads FASTQ file if paired-end. Leave empty for single-end reads" + "description": "Path to reverse reads in FASTQ format for paired-end data (optionally gzipped). Leave empty for single-end reads" }, "platform": { "type": "string", @@ -65,14 +65,14 @@ "ULTIMA", "VELA_DIAGNOSTICS" ], - "description": "Sequencing platform. Must be one of the ENA controlled vocabulary values listed in the enum.", + "description": "Sequencing platform. Must be one of the ENA controlled vocabulary values listed in https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation.", "meta": ["platform"] }, "instrument": { "type": "string", "pattern": "^[^\\n]+$", "errorMessage": "Instrument must be provided and cannot span multiple lines", - "description": "Sequencer model (e.g., 'Illumina HiSeq 2000', 'PacBio Sequel')", + "description": "Sequencer model (e.g., 'Illumina HiSeq 2000', 'PacBio Sequel'). Must be one of the allowed ENA controlled vocabulary values listed in https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#permitted-values-for-instrument", "meta": ["instrument"] }, "library_source": { @@ -88,7 +88,7 @@ "VIRAL RNA", "OTHER" ], - "description": "Library source. Must be one of the ENA controlled vocabulary values listed in the enum.", + "description": "Library source type. Must be one of the allowed ENA controlled vocabulary values listed in https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#permitted-values-for-library-source", "meta": ["library_source"] }, "library_selection": { @@ -126,7 +126,7 @@ "other", "unspecified" ], - "description": "Library selection. Must be one of the allowed ENA controlled vocabulary values (e.g. PCR, ChIP-Seq, other, etc).", + "description": "Library selection. Must be one of the allowed ENA controlled vocabulary values listed in https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#permitted-values-for-library-selection", "meta": ["library_selection"] }, "library_strategy": { @@ -174,7 +174,7 @@ "Tethered Chromatin Conformation Capture", "OTHER" ], - "description": "Library strategy. Must be one of the ENA controlled vocabulary values listed in the enum.", + "description": "Library strategy. Must be one of the ENA controlled vocabulary values listed in https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#permitted-values-for-library-strategy", "meta": ["library_strategy"] }, "insert_size": { @@ -188,8 +188,9 @@ "maxLength": 0 } ], + "default": null, "errorMessage": "Insert size must be a positive number or empty", - "description": "Fragment/insert size for paired-end reads (optional)", + "description": "Fragment/insert size for paired-end reads (e.g., 500 for 500 bp inserts). Skip if not applicable.", "meta": ["insert_size"] }, "library_name": { diff --git a/docs/usage.md b/docs/usage.md index ff4ec7c..a82cec4 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -161,20 +161,20 @@ illumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLU pacbio_run_001,SAMEA7654321,data/pacbio_reads.fastq.gz,,PACBIO_SMRT,PacBio Sequel,GENOMIC,RANDOM,WGS,,PacBio_library_002,Long-read sequencing ``` -| Column | Required | Description | -| ------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `id` | Yes | Unique identifier of this particular data entry. Used as an experiment name. | -| `sample_accession` | Yes | ENA sample accession (starting with SAMEA) of the sample used to generate raw reads. | -| `fastq_1` | Yes | Path to forward reads in FASTQ format (optionally gzipped). | -| `fastq_2` | No | Path to reverse reads for paired-end data. Leave empty for single-end reads. | -| `platform` | Yes | Sequencing platform. Supported values: `ILLUMINA`, `PACBIO_SMRT`, `OXFORD_NANOPORE`, `ION_TORRENT`, `CAPILLARY`, `DNBSEQ`, `ELEMENT`, `GENAPSYS`, `GENEMIND`, `HELICOS`, `LS454`, `BGISEQ`, `ULTIMA`, `VELA_DIAGNOSTICS`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | -| `instrument` | Yes | Sequencer model, e.g. "Illumina HiSeq 2000", "PacBio Sequel", "MinION". See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#permitted-values-for-instrument). | -| `library_source` | Yes | Library source type. Options: `GENOMIC`, `METAGENOMIC`, `TRANSCRIPTOMIC`, `METAGENOMIC SINGLE CELL`, `TRANSCRIPTOMIC SINGLE CELL`, `SYNTHETIC`, `VIRAL RNA`, `OTHER`. | -| `library_selection` | Yes | Library selection method. Options: `RANDOM`, `PCR`, `RANDOM PCR`, `RT-PCR`, `MF`, `cDNA`, `cDNA_randomPriming`, `cDNA_oligo_dT`, `PolyA`, `Inverse rRNA`, `ChIP`, `MNase`, `DNase`, `Hybrid Selection`, etc. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | -| `library_strategy` | Yes | Library strategy. Options: `WGS`, `WGA`, `WXS`, `RNA-Seq`, `miRNA-Seq`, `ncRNA-Seq`, `EST`, `Hi-C`, `ATAC-seq`, `WCS`, `RAD-Seq`, `CLONE`, `AMPLICON`, `POOLCLONE`, `etc`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation) for complete list. | -| `insert_size` | No | Fragment/insert size for paired-end reads (e.g., 500 for 500 bp inserts). Leave empty if not applicable. | -| `library_name` | No | Descriptive library name (optional). | -| `description` | No | Free-text description of the experiment (optional). | +| Column | Required | Description | +| ------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | Yes | Unique identifier of this particular data entry. Used as an experiment name. | +| `sample_accession` | Yes | ENA sample accession (starting with SAMEA) of the sample used to generate raw reads. | +| `fastq_1` | Yes | Path to single-end/paired-end forward reads in FASTQ format (optionally gzipped). | +| `fastq_2` | No | Path to reverse reads in FASTQ format for paired-end data (optionally gzipped). Leave empty for single-end reads. | +| `platform` | Yes | Sequencing platform. Must be one of the ENA controlled vocabulary values listed in [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation). Supported values: `ILLUMINA`, `PACBIO_SMRT`, `OXFORD_NANOPORE`, `ION_TORRENT`, `CAPILLARY`, `DNBSEQ`, `ELEMENT`, `GENAPSYS`, `GENEMIND`, `HELICOS`, `LS454`, `BGISEQ`, `ULTIMA`, `VELA_DIAGNOSTICS`. | +| `instrument` | Yes | Sequencer model, e.g. "Illumina HiSeq 2000", "PacBio Sequel", "MinION". See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#permitted-values-for-instrument). | +| `library_source` | Yes | Library source type. Options: `GENOMIC`, `METAGENOMIC`, `TRANSCRIPTOMIC`, `METAGENOMIC SINGLE CELL`, `TRANSCRIPTOMIC SINGLE CELL`, `SYNTHETIC`, `VIRAL RNA`, `OTHER`. ENA [documantation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#permitted-values-for-library-source). | +| `library_selection` | Yes | Library selection method. Options: `RANDOM`, `PCR`, `RANDOM PCR`, `RT-PCR`, `MF`, `cDNA`, `cDNA_randomPriming`, `cDNA_oligo_dT`, `PolyA`, `Inverse rRNA`, `ChIP`, `MNase`, `DNase`, `Hybrid Selection`, etc. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#permitted-values-for-library-selection) for complete list. | +| `library_strategy` | Yes | Library strategy. Options: `WGS`, `WGA`, `WXS`, `RNA-Seq`, `miRNA-Seq`, `ncRNA-Seq`, `EST`, `Hi-C`, `ATAC-seq`, `WCS`, `RAD-Seq`, `CLONE`, `AMPLICON`, `POOLCLONE`, `etc`. See [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#permitted-values-for-library-strategy) for complete list. | +| `insert_size` | No | Fragment/insert size for paired-end reads (e.g., 500 for 500 bp inserts). Leave empty if not applicable. | +| `library_name` | No | Descriptive library name (optional). | +| `description` | No | Free-text description of the experiment (optional). | ### `reads` parameters and example @@ -223,12 +223,12 @@ assembly_002,data/assembly_002.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9 | ------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | | `id` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | | `fasta` | Yes | Path to assembly contigs in FASTA format compressed with `gzip`. | -| `fastq_1` | Conditional | Path to the read file in FASTQ format used to generate the metagenomic assembly. Required if `coverage` is not provided. | +| `fastq_1` | Conditional | Path to single-end/paired-end forward reads in FASTQ format (optionally gzipped). Required if `coverage` is not provided. | | `fastq_2` | No | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | | `coverage` | Conditional | Estimated sequencing depth of the assembly. If this value is missing, it is computed automatically during pipeline execution when reads are provided. | | `run_accession` | Yes | ENA run accession for the reads used to generate the metagenomic assembly. Reads must already be submitted to ENA. | -| `assembler` | Yes | Name of the assembler software used to generate the assembly. | -| `assembler_version` | Yes | Version of the assembler software used to generate the assembly. | +| `assembler` | Yes | Name of the assembler software used to generate the assembly, e.g. MEGAHIT, SPAdes, metaSPAdes, Flye, etc. | +| `assembler_version` | Yes | Version of the assembler software used to generate the assembly, e.g. 1.0.0. | Provide either read files (`fastq_1`, optionally `fastq_2`) or a `coverage` value for each row. If `coverage` is missing and reads are provided, the workflow calculates average coverage with CoverM. See the [Methods documentation](docs/methods.md) for more information on how coverage is calculated. @@ -297,27 +297,27 @@ id,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_pa mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default,CheckM2 1.0.1,92.81,1.09,66.04,sediment metagenome,false,marine,cable bacteria,marine sediment,false,d__Bacteria;p__Proteobacteria;s__ ``` -| Column | Required | Description | -| --------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `id` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | -| `fasta` | Yes | Path to MAG/bin contigs in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. | -| `accession` | Yes | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | -| `fastq_1` | Conditional | Path to the read file in FASTQ format used to generate the source metagenomic assembly. Required if `genome_coverage` is not provided. | -| `fastq_2` | No | Path to the second read file in FASTQ format for paired-end data used to generate the source metagenomic assembly. Leave empty for single-end reads. | -| `assembly_software` | Yes | Tool name and version that were used to generate the source metagenomic assembly. | -| `binning_software` | Yes | Binning tool, including version, that was used to generate the bins. | -| `binning_parameters` | Yes | Arguments that were used during binning. | -| `stats_generation_software` | No | Tool, including version, that was used to calculate completeness and contamination. | -| `completeness` | No | Genome completeness value. | -| `contamination` | No | Genome contamination value. | -| `genome_coverage` | Conditional | Estimated average sequencing depth across the genome. If the value is missing, it is computed automatically during pipeline execution when reads are provided. | -| `metagenome` | Yes | Registered metagenome taxonomic identifier or name that matches an existing ENA taxonomy entry. For more details see https://ena-docs.readthedocs.io/en/latest/faq/taxonomy.html | -| `co-assembly` | Yes | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: true or false. | -| `broad_environment` | Yes | Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428) | -| `local_environment` | Yes | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". | -| `environmental_medium` | Yes | Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). | -| `RNA_presence` | No | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: true or false. | -| `NCBI_lineage` | No | NCBI taxonomy lineage of the genome. Can be composted of either numerical IDs or official NCBI taxon names separated by ";". | +| Column | Required | Description | +| --------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | +| `fasta` | Yes | Path to MAG/bin sequences in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. File should contain at least one sequence. | +| `accession` | Yes | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | +| `fastq_1` | Conditional | Path to single-end/paired-end forward reads in FASTQ format (optionally gzipped) used to generate the source metagenomic assembly. Required if `genome_coverage` is not provided. | +| `fastq_2` | No | Path to reverse reads in FASTQ format for paired-end data (optionally gzipped) used to generate the source metagenomic assembly. Leave empty for single-end reads. | +| `assembly_software` | Yes | Tool name and version that were used to generate the source metagenomic assembly, e.g. MEGAHIT_v1.0, SPAdes_v4.0.0, metaSPAdes_v3.15.0. | +| `binning_software` | Yes | Tool name and version that was used to bin data, e.g. MetaBAT2_v1.0, VAMB_2.0, MaxBin2_v1, CONCOCT_v3.0, SemiBin2_v1, COMEBin_v2.3.4, etc. | +| `binning_parameters` | Yes | Arguments used to bin data different from default, e.g. -min_contig_length 1000, otherwise put 'default'. | +| `stats_generation_software` | No | Tool, including version, that was used to calculate completeness and contamination, e.g. CheckM2_v1.0.0. | +| `completeness` | No | MAG/bin completeness score: the 0<= ratio <= 100 of observed single-copy marker genes to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined. | +| `contamination` | No | MAG/bin contamination score: the 0<= ratio <= 100 of observed single-copy marker genes in ≥2 copies to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined. | +| `genome_coverage` | Conditional | Estimated average sequencing depth (>0) across the genome. If the value is missing, it is computed automatically during pipeline execution when reads are provided. | +| `metagenome` | Yes | Registered metagenome taxonomic identifier or name that matches an existing ENA taxonomy entry. It needs to be listed in the taxonomy tree https://www.ebi.ac.uk/ena/browser/view/408169?show=tax-tree (you might need to press "Tax tree - Show" in the right most section of the page). Full list can also be found https://github.com/EBI-Metagenomics/genome_uploader/blob/main/genomeuploader/constants.py#L22. | +| `co-assembly` | Yes | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: true or false. | +| `broad_environment` | Yes | Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS. | +| `local_environment` | Yes | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS. | +| `environmental_medium` | Yes | Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS. | +| `RNA_presence` | No | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: true or false. | +| `NCBI_lineage` | No | Full NCBI lineage - format: x;y;z. For example, the lineage for E. coli can be: 'Bacteria;Pseudomonadati;Pseudomonadota;Gammaproteobacteria;Enterobacterales;Enterobacteriaceae;Escherichia' or '2;1224;1236;91347;543;561;562'. For more info check https://www.ncbi.nlm.nih.gov/datasets/docs/v2/data-processing/taxonomy-processing/taxonomy/. | > [!NOTE] > More information about environment tags can be found at checklists [ERC000050](https://www.ebi.ac.uk/ena/browser/view/ERC000050) for bins and [ERC000047](https://www.ebi.ac.uk/ena/browser/view/ERC000047) for MAGs under the field names "broad-scale environmental context", "local environmental context", and "environmental medium". @@ -348,11 +348,11 @@ Databases created/downloaded by the pipeline are published under: In addition to the [common parameters](#running-the-pipeline): -| Parameter | Required | Description | -| -------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -| `--upload_tpa` | No | Mark assemblies as [third party assemblies (TPA)](#third-party-assemblies-tpa) when required. Default: `false`. | -| `--checkm2_db` | No | Path to a local CheckM2 database. If omitted, downloads the version set by `--checkm2_db_download_id`. Default: `14897628` (Zenodo accession). | -| `--cat_db` | No | Path to a local CAT_pack database. If omitted, builds CAT_pack DB from NCBI non-redundant protein database (`nr`). | +| Parameter | Required | Description | +| -------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--upload_tpa` | No | Mark assemblies as [third party assemblies (TPA)](#third-party-assemblies-tpa) when required. Default: `false`. | +| `--checkm2_db` | No | Path to a pre-downloaded CheckM2 database. If omitted, downloads the version set by `--checkm2_db_download_id`. Default: `14897628` (Zenodo accession). | +| `--cat_db` | No | Path to a local CAT_pack database. If omitted, builds CAT_pack DB from NCBI non-redundant protein database (`nr`). | Example `mags` mode upload to TEST server, run command with docker: @@ -406,17 +406,17 @@ nextflow run nf-core/seqsubmit \ Parameters common to all modes: -| Parameter | Required | Description | -| ------------------------------------------ | ------------ | -------------------------------------------------------------------------------------------------------------------- | -| `--mode` | Yes | Type of the data to be submitted. Options: `mags`, `bins`, `metagenomic_assemblies`, `reads`. | -| `--input` | Yes | Path to the samplesheet describing the data to submit. | -| `--outdir` | Yes | Path to the output directory for pipeline results. | -| `--submission_study` OR `--study_metadata` | Yes (one of) | ENA study accession (PRJ/ERP) to submit the data to OR metadata file in JSON/TSV/CSV format to register a new study. | -| `--centre_name` | Yes | Name of the submitter's organisation. | -| `--test_upload` | No | Submit to the ENA TEST server instead of the LIVE server. Default: `true`. | -| `--webincli_mode` | No | Webin-CLI mode for ENA interaction: `submit` uploads data, `validate` performs validation only. Default: `submit`. | -| `--is_private` | No | Use if you are referencing private data accessions in your submission. Default: `false`. | -| `--release_date` | No | Use if you want to keep your data private after submission until a particular date. | +| Parameter | Required | Description | +| ------------------------------------------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--mode` | Yes | Type of the data to be submitted. Options: `mags`, `bins`, `metagenomic_assemblies`, `reads`. | +| `--input` | Yes | Path to samplesheet describing the data to be submitted (supported formats: csv, tsv, yaml, yml, json). Columns/fields depend on the pipeline mode. See [usage docs](https://nf-co.re/seqsubmit/usage#samplesheet-input). | +| `--outdir` | Yes | Path to the output directory for pipeline results. You have to use absolute paths to storage on Cloud infrastructure. | +| `--submission_study` OR `--study_metadata` | Yes (one of) | ENA study accession (PRJ/ERP) to submit the data to OR metadata file in JSON/TSV/CSV format to register a new study. | +| `--centre_name` | Yes | Name of the submitter's organisation (mandatory for broker accounts). | +| `--test_upload` | No | Submit to the ENA TEST server instead of the LIVE server. Use that flag for development purposes or for validation of your submissions. Submission would be done to TEST ENA server instead of LIVE server. TEST server holds data 24h and removes afterwords. LIVE server does not have option to modify your submission, you can only suppress data and re-upload. Default: `true`. | +| `--webincli_mode` | No | Webin-CLI mode for ENA interaction: `submit` uploads data, `validate` performs validation only. `validate` mode checks correctness of manifest files, data access and validity. `submit` mode does validation and push data to ENA server. Default: `submit`. | +| `--is_private` | No | Use if you are referencing private data accessions in your submission. Set to true when the referenced project/reads/assembly are still private in ENA, so metadata is fetched via authenticated access. Does NOT affect the privacy of your own submission, use --release_date for that. Default: `false`. | +| `--release_date` | No | Use if you want to keep your data private in ENA after submission until a particular date (format: YYYY-MM-DD). Data stays private until this date, then is automatically released and indexed by ENA. Must be no more than 2 years from today. Omit to release the study publicly immediately. | Each mode also has additional parameters and example commands — see its own "`` parameters and example" subsection above. diff --git a/nextflow_schema.json b/nextflow_schema.json index e69e8d0..70dce8f 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -18,8 +18,8 @@ "exists": true, "mimetype": "text/csv", "pattern": "^\\S+\\.(csv|tsv|yaml|yml|json)$", - "description": "Path to comma-separated file describing the data to be submitted. Format depends on the pipeline mode (mags/bins/metagenomic_assemblies/reads).", - "help_text": "You will need to create a design file with information about the samples in your experiment before running the pipeline. Use this parameter to specify its location. It has to be a comma-separated file with a set of columns depending on the type of data being submitted. See [usage docs](https://nf-co.re/seqsubmit/usage#samplesheet-input).", + "description": "Path to samplesheet describing the data to be submitted (supported formats: csv, tsv, yaml, yml, json). Columns/fields depend on the pipeline mode", + "help": "You will need to create a design file with information about the samples in your experiment before running the pipeline. Use this parameter to specify its location. It has to be a file in supported format with a set of columns depending on the type of data being submitted. See [usage docs](https://nf-co.re/seqsubmit/usage#samplesheet-input).", "fa_icon": "fas fa-file-csv" }, "outdir": { @@ -32,7 +32,7 @@ "type": "string", "description": "Email address for completion summary.", "fa_icon": "fas fa-envelope", - "help_text": "Set this parameter to your e-mail address to get a summary e-mail with details of the run sent to you when the workflow exits. If set in your user config file (`~/.nextflow/config`) then you don't need to specify this on the command line for every run.", + "help": "Set this parameter to your e-mail address to get a summary e-mail with details of the run sent to you when the workflow exits. If set in your user config file (`~/.nextflow/config`) then you don't need to specify this on the command line for every run.", "pattern": "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$" }, "multiqc_title": { @@ -47,7 +47,7 @@ "type": "object", "fa_icon": "fas fa-university", "description": "Parameters affecting a decision about presence/absence of tRNA and rRNA genes (RNA_presence) in a genome", - "help_text": "The value of RNA_presence is based on the number of rRNA and tRNA. If at least 18 tRNAs are detected and 16S, 23S, and 5S rRNA subunits pass the recovery threshold - RNA_presence is True, otherwise - False. The resulting value is a decisive factor affecting MISAG/MIMAG assembly quality classification of a genome.", + "help": "The value of RNA_presence is based on the number of rRNA and tRNA. If at least 18 tRNAs are detected and 16S, 23S, and 5S rRNA subunits pass the recovery threshold - RNA_presence is True, otherwise - False. The resulting value is a decisive factor affecting MISAG/MIMAG assembly quality classification of a genome.", "properties": { "rrna_limit": { "type": "number", @@ -68,7 +68,7 @@ "type": "object", "fa_icon": "fas fa-university", "description": "CAT_pack required data", - "help_text": "Provide a path to pre-downloaded DB or DB id for automatic download", + "help": "Provide a path to pre-downloaded DB or DB id for automatic download", "properties": { "cat_db": { "format": "file-path", @@ -83,16 +83,16 @@ "type": "object", "fa_icon": "fas fa-university", "description": "Parameters used to run Checkm2", - "help_text": "These options are used to run Checkm2 that will calculate completeness and contamination of genome if those were not provided as input", + "help": "These options are used to run Checkm2 that will calculate completeness and contamination of genome if those were not provided as input", "properties": { "checkm2_db": { "format": "file-path", - "description": "Path to pre-downloaded checkm2 database", + "description": "Path to pre-downloaded CheckM2 database. If omitted, downloads the version set by `--checkm2_db_download_id`", "fa_icon": "fas fa-users-cog" }, "checkm2_db_download_id": { "type": "integer", - "description": "Zenodo ID for checkm2 database download", + "description": "Zenodo ID for CheckM2 database download", "default": 14897628, "fa_icon": "fas fa-users-cog" } @@ -103,7 +103,7 @@ "type": "object", "fa_icon": "fas fa-university", "description": "Parameters used to describe centralised config profiles. These should not be edited.", - "help_text": "The centralised nf-core configuration profiles use a handful of pipeline parameters to describe themselves. This information is then printed to the Nextflow log when you run a pipeline. You should not need to change these values when you run a pipeline.", + "help": "The centralised nf-core configuration profiles use a handful of pipeline parameters to describe themselves. This information is then printed to the Nextflow log when you run a pipeline. You should not need to change these values when you run a pipeline.", "properties": { "custom_config_version": { "type": "string", @@ -117,7 +117,7 @@ "description": "Base directory for Institutional configs.", "default": "https://raw.githubusercontent.com/nf-core/configs/master", "hidden": true, - "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.", + "help": "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" }, "config_profile_name": { @@ -151,7 +151,7 @@ "type": "object", "fa_icon": "fas fa-file-import", "description": "Less common options for the pipeline, typically set in a config file.", - "help_text": "These options are common to all nf-core pipelines and allow you to customise some of the core preferences for how the pipeline runs.\n\nTypically these options would be set in a Nextflow config file loaded for all pipeline runs, such as `~/.nextflow/config`.", + "help": "These options are common to all nf-core pipelines and allow you to customise some of the core preferences for how the pipeline runs.\n\nTypically these options would be set in a Nextflow config file loaded for all pipeline runs, such as `~/.nextflow/config`.", "properties": { "version": { "type": "boolean", @@ -163,7 +163,7 @@ "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.", + "help": "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 @@ -173,7 +173,7 @@ "description": "Email address for completion summary, only when pipeline fails.", "fa_icon": "fas fa-exclamation-triangle", "pattern": "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$", - "help_text": "An email address to send a summary email to when the pipeline is completed - ONLY sent if the pipeline does not exit successfully.", + "help": "An email address to send a summary email to when the pipeline is completed - ONLY sent if the pipeline does not exit successfully.", "hidden": true }, "plaintext_email": { @@ -256,7 +256,7 @@ "properties": { "centre_name": { "type": "string", - "description": "The center name of the submitter (mandatory for broker accounts).", + "description": "Name of the submitter's organisation (mandatory for broker accounts).", "help": "ena-webin-cli argument -centerName: the center name of the submitter (mandatory for broker accounts)." }, "upload_tpa": { @@ -268,13 +268,13 @@ "mode": { "type": "string", "default": null, - "description": "Type of upload", - "help_text": "Different types of data require specific upload steps. That mode controls what upload workflow to run depending on type of data (mags/bins/metagenomic_assemblies/reads)", + "description": "Type of the data to be submitted", + "help": "Different types of data require specific upload steps. That mode controls what upload workflow to run depending on type of data (mags/bins/metagenomic_assemblies/reads)", "enum": ["mags", "bins", "metagenomic_assemblies", "reads"] }, "test_upload": { "type": "boolean", - "description": "Upload to TEST server instead of LIVE", + "description": "Upload to ENA TEST server instead of LIVE server", "default": true, "help": "Use that flag for development purposes or for validation of your submissions. Submission would be done to TEST ENA server instead of LIVE server. TEST server holds data 24h and removes afterwords. LIVE server does not have option to modify your submission, you can only suppress data and re-upload" }, @@ -293,22 +293,22 @@ "submission_study": { "type": "string", "description": "ENA study accession (PRJ/ERP) to submit the data to", - "help_text": "Current implementation of pipeline requires to pre-register ENA project (PRJ/ERP) where you want to upload data to. Documentation how to register study: https://ena-docs.readthedocs.io/en/latest/submit/study.html" + "help": "Current implementation of pipeline requires to pre-register ENA project (PRJ/ERP) where you want to upload data to. Documentation how to register study: https://ena-docs.readthedocs.io/en/latest/submit/study.html" }, "study_metadata": { "type": "string", "format": "file-path", "exists": true, "description": "Path to a file (JSON, CSV, or TSV) with metadata for registering a new ENA study. Required if --submission_study is not set.", - "help_text": "File containing study metadata fields (required: study_title, alias; optional: study_abstract, existing_study_type, etc.) used by the pipeline to register a new ENA study when no existing --submission_study accession is given. ENA docs: https://ena-docs.readthedocs.io/en/latest/submit/study/programmatic.html", + "help": "File containing study metadata fields (required: study_title, alias; optional: study_abstract, existing_study_type, etc.) used by the pipeline to register a new ENA study when no existing --submission_study accession is given. ENA docs: https://ena-docs.readthedocs.io/en/latest/submit/study/programmatic.html", "fa_icon": "fas fa-file-alt" }, "webincli_mode": { "type": "string", - "description": "Webin-CLI mode of operation", + "description": "Webin-CLI mode for ENA interaction: `submit` uploads data, `validate` performs validation only.", "default": "submit", "enum": ["submit", "validate"], - "help": "Controls ENA Webin-CLI mode. Use `submit` to upload data or `validate` to run validation only. Default: submit." + "help": "Controls ENA Webin-CLI mode. `validate` mode checks correctness of manifest files, data access and validity. `submit` mode does validation and push data to ENA server. Default: submit." } } } From 68a9c22553de42a2b77547e9e866b728263cd579 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Thu, 30 Jul 2026 14:07:00 +0100 Subject: [PATCH 44/47] docs polishing --- assets/schema_input_assembly.json | 4 ++-- assets/schema_input_genome.json | 10 ++++---- assets/schema_input_reads.json | 2 +- docs/usage.md | 8 +++---- nextflow_schema.json | 40 +++++++++++++++---------------- ro-crate-metadata.json | 2 +- 6 files changed, 33 insertions(+), 33 deletions(-) diff --git a/assets/schema_input_assembly.json b/assets/schema_input_assembly.json index 308ccc1..f6a8593 100644 --- a/assets/schema_input_assembly.json +++ b/assets/schema_input_assembly.json @@ -19,8 +19,8 @@ "format": "file-path", "exists": true, "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.(fa|fasta|fna)\\.gz$", - "errorMessage": "Path to assembly contigs in FASTA format compressed with gzip", - "description": "Metagenomic assembly FASTA file" + "errorMessage": "FASTA file must be provided and have extension '.fa.gz', '.fasta.gz', '.fna.gz'", + "description": "Path to assembly contigs in FASTA format compressed with gzip" }, "fastq_1": { "anyOf": [ diff --git a/assets/schema_input_genome.json b/assets/schema_input_genome.json index 2187d86..4a01222 100644 --- a/assets/schema_input_genome.json +++ b/assets/schema_input_genome.json @@ -19,12 +19,12 @@ "format": "file-path", "exists": true, "pattern": "^([\\S\\s]*\\/)?[^\\s\\/]+\\.(fa|fasta|fna)\\.gz$", - "errorMessage": "Path to MAG/bin sequences in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. File should contain at least one sequence", - "description": "MAG/bin sequence file" + "errorMessage": "Path to the FASTA file must be provided, cannot contain spaces and must have extension '.fa.gz', '.fasta.gz', or '.fna.gz'", + "description": "Path to MAG/bin sequences in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. File should contain at least one sequence" }, "accession": { "type": "string", - "description": "ENA accession of the run or metagenomic assembly used to generate the MAG/bin", + "description": "ENA accession of the run or metagenomic assembly used to generate the MAG/bin. Reads or assembly must already be submitted to ENA", "meta": ["accession"] }, "fastq_1": { @@ -73,7 +73,7 @@ }, "binning_parameters": { "type": "string", - "description": "Arguments used to bin data different from default, e.g. -min_contig_length 1000, otherwise put 'default'", + "description": "Arguments used to bin data different from default, e.g. -min_contig_length 1000, otherwise use 'default'", "meta": ["binning_parameters"] }, "stats_generation_software": { @@ -151,7 +151,7 @@ }, "environmental_medium": { "type": "string", - "description": "Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS", + "description": "Material surrounding and in contact with the sample, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS", "meta": ["environmental_medium"] }, "RNA_presence": { diff --git a/assets/schema_input_reads.json b/assets/schema_input_reads.json index 64931d3..c511c3c 100644 --- a/assets/schema_input_reads.json +++ b/assets/schema_input_reads.json @@ -18,7 +18,7 @@ "type": "string", "pattern": "^\\S+$", "errorMessage": "Sample accession must be provided and cannot contain spaces", - "description": "ENA sample accession (starting with SAMEA) of the sample used to generate raw reads", + "description": "ENA sample accession (starting with SAMEA) of the sample used to generate raw reads. Samples must already be submitted to ENA", "meta": ["sample_accession"] }, "fastq_1": { diff --git a/docs/usage.md b/docs/usage.md index a82cec4..c06657d 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -164,7 +164,7 @@ pacbio_run_001,SAMEA7654321,data/pacbio_reads.fastq.gz,,PACBIO_SMRT,PacBio Seque | Column | Required | Description | | ------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `id` | Yes | Unique identifier of this particular data entry. Used as an experiment name. | -| `sample_accession` | Yes | ENA sample accession (starting with SAMEA) of the sample used to generate raw reads. | +| `sample_accession` | Yes | ENA sample accession (starting with SAMEA) of the sample used to generate raw reads. Samples must already be submitted to ENA. | | `fastq_1` | Yes | Path to single-end/paired-end forward reads in FASTQ format (optionally gzipped). | | `fastq_2` | No | Path to reverse reads in FASTQ format for paired-end data (optionally gzipped). Leave empty for single-end reads. | | `platform` | Yes | Sequencing platform. Must be one of the ENA controlled vocabulary values listed in [ENA documentation](https://ena-docs.readthedocs.io/en/latest/submit/reads/webin-cli.html#metadata-validation). Supported values: `ILLUMINA`, `PACBIO_SMRT`, `OXFORD_NANOPORE`, `ION_TORRENT`, `CAPILLARY`, `DNBSEQ`, `ELEMENT`, `GENAPSYS`, `GENEMIND`, `HELICOS`, `LS454`, `BGISEQ`, `ULTIMA`, `VELA_DIAGNOSTICS`. | @@ -301,12 +301,12 @@ mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default, | --------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `id` | Yes | A unique identifier for this data entry. Must be globally unique within the input dataset. | | `fasta` | Yes | Path to MAG/bin sequences in FASTA format compressed with `gzip`. All names of the FASTA files must be unique to prevent pipeline errors. File should contain at least one sequence. | -| `accession` | Yes | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. | +| `accession` | Yes | ENA accession of the run or metagenomic assembly used to generate the MAG/bin. Reads or assembly must already be submitted to ENA. | | `fastq_1` | Conditional | Path to single-end/paired-end forward reads in FASTQ format (optionally gzipped) used to generate the source metagenomic assembly. Required if `genome_coverage` is not provided. | | `fastq_2` | No | Path to reverse reads in FASTQ format for paired-end data (optionally gzipped) used to generate the source metagenomic assembly. Leave empty for single-end reads. | | `assembly_software` | Yes | Tool name and version that were used to generate the source metagenomic assembly, e.g. MEGAHIT_v1.0, SPAdes_v4.0.0, metaSPAdes_v3.15.0. | | `binning_software` | Yes | Tool name and version that was used to bin data, e.g. MetaBAT2_v1.0, VAMB_2.0, MaxBin2_v1, CONCOCT_v3.0, SemiBin2_v1, COMEBin_v2.3.4, etc. | -| `binning_parameters` | Yes | Arguments used to bin data different from default, e.g. -min_contig_length 1000, otherwise put 'default'. | +| `binning_parameters` | Yes | Arguments used to bin data different from default, e.g. -min_contig_length 1000, otherwise use 'default'. | | `stats_generation_software` | No | Tool, including version, that was used to calculate completeness and contamination, e.g. CheckM2_v1.0.0. | | `completeness` | No | MAG/bin completeness score: the 0<= ratio <= 100 of observed single-copy marker genes to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined. | | `contamination` | No | MAG/bin contamination score: the 0<= ratio <= 100 of observed single-copy marker genes in ≥2 copies to total single-copy marker genes in chosen marker gene set (%). ENA docs: https://ena-docs.readthedocs.io/en/latest/faq/metagenomes.html#how-is-the-quality-of-a-metagenomic-assembly-defined. | @@ -315,7 +315,7 @@ mag_001,data/mag_001.fasta.gz,SRR24458089,,,SPAdes 3.15.5,MetaBAT2 2.15,default, | `co-assembly` | Yes | Whether a co-assembly strategy was used for the initial metagenomic assembly generation. Options: true or false. | | `broad_environment` | Yes | Broad ecological context of the sample, for example 'marine biome', 'desert biome'. It is recommended to use subclasses of EnvO 'biome' class (http://purl.obolibrary.org/obo/ENVO_00000428). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS. | | `local_environment` | Yes | Local environmental context of the sample, for example 'tropical dry broadleaf forest biome', 'marine abyssal zone biome'. It is recommended to use EnvO terms which are of smaller spatial grain than your entry for "broad-scale environmental context". Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS. | -| `environmental_medium` | Yes | Material displaced by the sample, or the material in which the sample was embedded before sampling, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS. | +| `environmental_medium` | Yes | Material surrounding and in contact with the sample, for example 'mucus', 'lake water'. It is recommended to use subclasses of EnvO 'environmental material' class (http://purl.obolibrary.org/obo/ENVO_00010483). Documentation: https://github.com/EnvironmentOntology/envo/wiki/Using-ENVO-with-MIxS. | | `RNA_presence` | No | Presence or absence of the 23S, 16S, and 5S rRNA genes and at least 18 tRNAs. This is used for MISAG/MIMAG assembly quality classification. Options: true or false. | | `NCBI_lineage` | No | Full NCBI lineage - format: x;y;z. For example, the lineage for E. coli can be: 'Bacteria;Pseudomonadati;Pseudomonadota;Gammaproteobacteria;Enterobacterales;Enterobacteriaceae;Escherichia' or '2;1224;1236;91347;543;561;562'. For more info check https://www.ncbi.nlm.nih.gov/datasets/docs/v2/data-processing/taxonomy-processing/taxonomy/. | diff --git a/nextflow_schema.json b/nextflow_schema.json index 70dce8f..bbd9f5d 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -19,7 +19,7 @@ "mimetype": "text/csv", "pattern": "^\\S+\\.(csv|tsv|yaml|yml|json)$", "description": "Path to samplesheet describing the data to be submitted (supported formats: csv, tsv, yaml, yml, json). Columns/fields depend on the pipeline mode", - "help": "You will need to create a design file with information about the samples in your experiment before running the pipeline. Use this parameter to specify its location. It has to be a file in supported format with a set of columns depending on the type of data being submitted. See [usage docs](https://nf-co.re/seqsubmit/usage#samplesheet-input).", + "help_text": "You will need to create a design file with information about the samples in your experiment before running the pipeline. Use this parameter to specify its location. It has to be a file in supported format with a set of columns depending on the type of data being submitted. See [usage docs](https://nf-co.re/seqsubmit/usage#samplesheet-input).", "fa_icon": "fas fa-file-csv" }, "outdir": { @@ -32,7 +32,7 @@ "type": "string", "description": "Email address for completion summary.", "fa_icon": "fas fa-envelope", - "help": "Set this parameter to your e-mail address to get a summary e-mail with details of the run sent to you when the workflow exits. If set in your user config file (`~/.nextflow/config`) then you don't need to specify this on the command line for every run.", + "help_text": "Set this parameter to your e-mail address to get a summary e-mail with details of the run sent to you when the workflow exits. If set in your user config file (`~/.nextflow/config`) then you don't need to specify this on the command line for every run.", "pattern": "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$" }, "multiqc_title": { @@ -47,7 +47,7 @@ "type": "object", "fa_icon": "fas fa-university", "description": "Parameters affecting a decision about presence/absence of tRNA and rRNA genes (RNA_presence) in a genome", - "help": "The value of RNA_presence is based on the number of rRNA and tRNA. If at least 18 tRNAs are detected and 16S, 23S, and 5S rRNA subunits pass the recovery threshold - RNA_presence is True, otherwise - False. The resulting value is a decisive factor affecting MISAG/MIMAG assembly quality classification of a genome.", + "help_text": "The value of RNA_presence is based on the number of rRNA and tRNA. If at least 18 tRNAs are detected and 16S, 23S, and 5S rRNA subunits pass the recovery threshold - RNA_presence is True, otherwise - False. The resulting value is a decisive factor affecting MISAG/MIMAG assembly quality classification of a genome.", "properties": { "rrna_limit": { "type": "number", @@ -68,12 +68,12 @@ "type": "object", "fa_icon": "fas fa-university", "description": "CAT_pack required data", - "help": "Provide a path to pre-downloaded DB or DB id for automatic download", + "help_text": "Provide a path to pre-downloaded DB or DB id for automatic download", "properties": { "cat_db": { "format": "file-path", "description": "Path to local CAT_pack DB", - "help": "Database should be pre-downloaded using CATpack commands. The folder with database should contain sub-folders 'db' with files .dmnd, .fastaid2LCAtaxid, .taxids_with_multiple_offspring, etc, as well as subfolder 'tax' that should contain taxonomy files like .dmp, .taxdump.tar.gz, .prot.accession2taxid.FULL.gz, etc", + "help_text": "Database should be pre-downloaded using CATpack commands. The folder with database should contain sub-folders 'db' with files .dmnd, .fastaid2LCAtaxid, .taxids_with_multiple_offspring, etc, as well as subfolder 'tax' that should contain taxonomy files like .dmp, .taxdump.tar.gz, .prot.accession2taxid.FULL.gz, etc", "fa_icon": "fas fa-users-cog" } } @@ -83,7 +83,7 @@ "type": "object", "fa_icon": "fas fa-university", "description": "Parameters used to run Checkm2", - "help": "These options are used to run Checkm2 that will calculate completeness and contamination of genome if those were not provided as input", + "help_text": "These options are used to run Checkm2 that will calculate completeness and contamination of genome if those were not provided as input", "properties": { "checkm2_db": { "format": "file-path", @@ -103,7 +103,7 @@ "type": "object", "fa_icon": "fas fa-university", "description": "Parameters used to describe centralised config profiles. These should not be edited.", - "help": "The centralised nf-core configuration profiles use a handful of pipeline parameters to describe themselves. This information is then printed to the Nextflow log when you run a pipeline. You should not need to change these values when you run a pipeline.", + "help_text": "The centralised nf-core configuration profiles use a handful of pipeline parameters to describe themselves. This information is then printed to the Nextflow log when you run a pipeline. You should not need to change these values when you run a pipeline.", "properties": { "custom_config_version": { "type": "string", @@ -117,7 +117,7 @@ "description": "Base directory for Institutional configs.", "default": "https://raw.githubusercontent.com/nf-core/configs/master", "hidden": true, - "help": "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.", + "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" }, "config_profile_name": { @@ -151,7 +151,7 @@ "type": "object", "fa_icon": "fas fa-file-import", "description": "Less common options for the pipeline, typically set in a config file.", - "help": "These options are common to all nf-core pipelines and allow you to customise some of the core preferences for how the pipeline runs.\n\nTypically these options would be set in a Nextflow config file loaded for all pipeline runs, such as `~/.nextflow/config`.", + "help_text": "These options are common to all nf-core pipelines and allow you to customise some of the core preferences for how the pipeline runs.\n\nTypically these options would be set in a Nextflow config file loaded for all pipeline runs, such as `~/.nextflow/config`.", "properties": { "version": { "type": "boolean", @@ -163,7 +163,7 @@ "type": "string", "default": "copy", "description": "Method used to save pipeline results to output directory.", - "help": "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.", + "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 @@ -173,7 +173,7 @@ "description": "Email address for completion summary, only when pipeline fails.", "fa_icon": "fas fa-exclamation-triangle", "pattern": "^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$", - "help": "An email address to send a summary email to when the pipeline is completed - ONLY sent if the pipeline does not exit successfully.", + "help_text": "An email address to send a summary email to when the pipeline is completed - ONLY sent if the pipeline does not exit successfully.", "hidden": true }, "plaintext_email": { @@ -257,50 +257,50 @@ "centre_name": { "type": "string", "description": "Name of the submitter's organisation (mandatory for broker accounts).", - "help": "ena-webin-cli argument -centerName: the center name of the submitter (mandatory for broker accounts)." + "help_text": "ena-webin-cli argument -centerName: the center name of the submitter (mandatory for broker accounts)." }, "upload_tpa": { "type": "boolean", "description": "Mark the assemblies as a Third PArty (TPA)", - "help": "Set to true if the assembly was built from public sequence data (TPA) rather than original primary data. See NCBI TPA guidance: https://www.ncbi.nlm.nih.gov/genbank/tpa/", + "help_text": "Set to true if the assembly was built from public sequence data (TPA) rather than original primary data. See NCBI TPA guidance: https://www.ncbi.nlm.nih.gov/genbank/tpa/", "default": false }, "mode": { "type": "string", "default": null, "description": "Type of the data to be submitted", - "help": "Different types of data require specific upload steps. That mode controls what upload workflow to run depending on type of data (mags/bins/metagenomic_assemblies/reads)", + "help_text": "Different types of data require specific upload steps. That mode controls what upload workflow to run depending on type of data (mags/bins/metagenomic_assemblies/reads)", "enum": ["mags", "bins", "metagenomic_assemblies", "reads"] }, "test_upload": { "type": "boolean", "description": "Upload to ENA TEST server instead of LIVE server", "default": true, - "help": "Use that flag for development purposes or for validation of your submissions. Submission would be done to TEST ENA server instead of LIVE server. TEST server holds data 24h and removes afterwords. LIVE server does not have option to modify your submission, you can only suppress data and re-upload" + "help_text": "Use that flag for development purposes or for validation of your submissions. Submission would be done to TEST ENA server instead of LIVE server. TEST server holds data 24h and removes afterwords. LIVE server does not have option to modify your submission, you can only suppress data and re-upload" }, "is_private": { "type": "boolean", "default": false, "description": "Use that flag if you are referencing private data accessions in the samplesheet", - "help": "Set to true when the referenced project/reads/assembly are still private in ENA, so metadata is fetched via authenticated access. Does NOT affect the privacy of your own submission, use --release_date for that" + "help_text": "Set to true when the referenced project/reads/assembly are still private in ENA, so metadata is fetched via authenticated access. Does NOT affect the privacy of your own submission, use --release_date for that" }, "release_date": { "type": "string", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "Date (YYYY-MM-DD) until which the newly created study stays private in ENA.", - "help": "Sets the release date for the study created by the pipeline. Data stays private until this date, then is automatically released and indexed by ENA. Must be no more than 2 years from today. Omit to release the study publicly immediately." + "help_text": "Sets the release date for the study created by the pipeline. Data stays private until this date, then is automatically released and indexed by ENA. Must be no more than 2 years from today. Omit to release the study publicly immediately." }, "submission_study": { "type": "string", "description": "ENA study accession (PRJ/ERP) to submit the data to", - "help": "Current implementation of pipeline requires to pre-register ENA project (PRJ/ERP) where you want to upload data to. Documentation how to register study: https://ena-docs.readthedocs.io/en/latest/submit/study.html" + "help_text": "Current implementation of pipeline requires to pre-register ENA project (PRJ/ERP) where you want to upload data to. Documentation how to register study: https://ena-docs.readthedocs.io/en/latest/submit/study.html" }, "study_metadata": { "type": "string", "format": "file-path", "exists": true, "description": "Path to a file (JSON, CSV, or TSV) with metadata for registering a new ENA study. Required if --submission_study is not set.", - "help": "File containing study metadata fields (required: study_title, alias; optional: study_abstract, existing_study_type, etc.) used by the pipeline to register a new ENA study when no existing --submission_study accession is given. ENA docs: https://ena-docs.readthedocs.io/en/latest/submit/study/programmatic.html", + "help_text": "File containing study metadata fields (required: study_title, alias; optional: study_abstract, existing_study_type, etc.) used by the pipeline to register a new ENA study when no existing --submission_study accession is given. ENA docs: https://ena-docs.readthedocs.io/en/latest/submit/study/programmatic.html", "fa_icon": "fas fa-file-alt" }, "webincli_mode": { @@ -308,7 +308,7 @@ "description": "Webin-CLI mode for ENA interaction: `submit` uploads data, `validate` performs validation only.", "default": "submit", "enum": ["submit", "validate"], - "help": "Controls ENA Webin-CLI mode. `validate` mode checks correctness of manifest files, data access and validity. `submit` mode does validation and push data to ENA server. Default: submit." + "help_text": "Controls ENA Webin-CLI mode. `validate` mode checks correctness of manifest files, data access and validity. `submit` mode does validation and push data to ENA server. Default: submit." } } } diff --git a/ro-crate-metadata.json b/ro-crate-metadata.json index 7b73754..5bf02a8 100644 --- a/ro-crate-metadata.json +++ b/ro-crate-metadata.json @@ -23,7 +23,7 @@ "@type": "Dataset", "creativeWorkStatus": "InProgress", "datePublished": "2026-04-30T13:32:49+00:00", - "description": "

    \n \n \n \"nf-core/seqsubmit\"\n \n

    \n\n[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/seqsubmit)\n[![GitHub Actions CI Status](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/seqsubmit/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.4-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-4.0.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.0.2)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/seqsubmit)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqsubmit-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqsubmit)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n**nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home).\nCurrently, the pipeline supports four submission modes, each routed to a dedicated workflow and requiring its own input samplesheet structure:\n\n- `mags` for Metagenome Assembled Genomes (MAGs) submission with `GENOMESUBMIT` workflow\n- `bins` for bins submission with `GENOMESUBMIT` workflow\n- `metagenomic_assemblies` for assembly submission with `ASSEMBLYSUBMIT` workflow\n- `reads` for raw sequencing reads submission with `READSUBMIT` workflow\n\n![seqsubmit workflow diagram](docs/images/seqsubmit_schema.png)\n\n**nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home).\nThe pipeline currently supports the following submission modes, each routed to a dedicated workflow:\n\n- `reads` \u2014 raw sequencing reads submission via the `READSUBMIT` workflow (pink)\n- `metagenomic_assemblies` \u2014 assembly submission via the `ASSEMBLYSUBMIT` workflow (green)\n- `mags` \u2014 metagenome-assembled genomes (MAGs) submission via the `GENOMESUBMIT` workflow (blue)\n- `bins` \u2014 bins submission via the `GENOMESUBMIT` workflow (blue)\n\n\n\nEach workflow has its own samplesheet structure, prerequisites, and limitations \u2014 they are briefly described below. See the [usage documentation](https://nf-co.re/seqsubmit/usage) for more detailed explanations.\n\n## Requirements\n\n- [Nextflow](https://www.nextflow.io/) `>=25.04.0`\n- A Webin account registered at \n\n Set your Webin credentials as Nextflow secrets:\n\n ```bash\n nextflow secrets set ENA_WEBIN \"Webin-XXX\"\n nextflow secrets set ENA_WEBIN_PASSWORD \"XXX\"\n ```\n\n Make sure to replace the values above with your own credentials.\n\n- Provide either a study accession or a study registration metadata file for the study the submission will be associated with. See the [Submission study](docs/usage.md#submission-study) section of the usage documentation for details.\n\n- Depending on the chosen mode, samples, reads, or metagenomic assemblies must be pre-submitted to ENA to obtain the corresponding accessions, which you then reference in your submission. Refer to the relevant mode section in the [usage documentation](https://nf-co.re/seqsubmit/usage) for details.\n\n## Input samplesheets\n\n### `reads` mode\n\nExample:\n\n```csv\nsample,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description\nillumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLUMINA,Illumina HiSeq 2000,GENOMIC,RANDOM,WGS,500,HiSeq_library_001,Illumina sequencing of sample XYZ\n```\n\nSee the [`reads` mode section](docs/usage.md#samplesheet-input) of the usage documentation for more details.\n\n### `metagenomic_assemblies` mode\n\nExample:\n\n```csv\nsample,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version\nassembly_1,data/contigs_1.fasta.gz,data/reads_1.fastq.gz,data/reads_2.fastq.gz,,ERR011322,SPAdes,3.15.5\nassembly_2,data/contigs_2.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9\n```\n\nSee the [`metagenomic_assemblies` mode section](docs/usage.md#samplesheet-input-1) of the usage documentation for more details.\n\n### `mags` and `bins` modes\n\nExample:\n\n```csv\nsample,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage\nlachnospira_eligens,data/bin_lachnospira_eligens.fa.gz,SRR24458089,,,spades_v3.15.5,metabat2_v2.6,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,No,marine,cable_bacteria,marine_sediment,No,d__Bacteria;p__Proteobacteria;s__unclassified_Proteobacteria\n```\n\nSee the [`mags` and `bins` modes section](docs/usage.md#samplesheet-input-2) of the usage documentation for the full list of required and optional columns.\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/get_started/environment_setup/overview) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/get_started/run-your-first-pipeline) with `-profile test` before running the workflow on actual data.\n\n### Running the pipeline\n\nEach mode also has its own additional parameters and example commands \u2014 see the [usage documentation](https://nf-co.re/seqsubmit/usage) for details. General command template:\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile \\\n --mode \\\n --input \\\n --centre_name \\\n --submission_study \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/running/run-pipelines#using-parameter-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/seqsubmit/usage) and the [parameter documentation](https://nf-co.re/seqsubmit/parameters).\n\n## Pipeline output\n\nKey output locations in `--outdir`:\n\n- `reads/`: per-sample submission receipts and accessions\n- `metagenomic_assemblies/`: assembly metadata CSVs and per-sample coverage files\n- `mags/` or `bins/`: genome metadata, manifests, and per-sample submission support files\n- `multiqc/`: MultiQC summary report\n- `pipeline_info/`: execution reports, trace, DAG, and software versions\n\nFor full details, see the [output documentation](https://nf-co.re/seqsubmit/output).\n\n## Credits\n\nnf-core/seqsubmit was originally written by [Martin Beracochea](https://github.com/mberacochea), [Ekaterina Sakharova](https://github.com/KateSakharova), [Sofia Ochkalova](https://github.com/ochkalova), [Evangelos Karatzas](https://github.com/vagkaratzas) and [Tim Rozday](https://github.com/timrozday-mgnify).\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](docs/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#seqsubmit` channel](https://nfcore.slack.com/channels/seqsubmit) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\n\n\nIf you use this pipeline please make sure to cite all used software.\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/main/LICENSE).\n\n> **MGnify: the microbiome sequence data analysis resource in 2023**\n>\n> Richardson L, Allen B, Baldi G, Beracochea M, Bileschi ML, Burdett T, et al.\n>\n> Vol. 51, Nucleic Acids Research. Oxford University Press (OUP); 2022. p. D753\u20139. Available from: http://dx.doi.org/10.1093/nar/gkac1080\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", + "description": "

    \n \n \n \"nf-core/seqsubmit\"\n \n

    \n\n[![Open in GitHub Codespaces](https://img.shields.io/badge/Open_In_GitHub_Codespaces-black?labelColor=grey&logo=github)](https://github.com/codespaces/new/nf-core/seqsubmit)\n[![GitHub Actions CI Status](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/nf-test.yml)\n[![GitHub Actions Linting Status](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml/badge.svg)](https://github.com/nf-core/seqsubmit/actions/workflows/linting.yml)[![AWS CI](https://img.shields.io/badge/CI%20tests-full%20size-FF9900?labelColor=000000&logo=Amazon%20AWS)](https://nf-co.re/seqsubmit/results)[![Cite with Zenodo](http://img.shields.io/badge/DOI-10.5281/zenodo.XXXXXXX-1073c8?labelColor=000000)](https://doi.org/10.5281/zenodo.XXXXXXX)\n[![nf-test](https://img.shields.io/badge/unit_tests-nf--test-337ab7.svg)](https://www.nf-test.com)\n\n[![Nextflow](https://img.shields.io/badge/version-%E2%89%A525.10.4-green?style=flat&logo=nextflow&logoColor=white&color=%230DC09D&link=https%3A%2F%2Fnextflow.io)](https://www.nextflow.io/)\n[![nf-core template version](https://img.shields.io/badge/nf--core_template-4.0.2-green?style=flat&logo=nfcore&logoColor=white&color=%2324B064&link=https%3A%2F%2Fnf-co.re)](https://github.com/nf-core/tools/releases/tag/4.0.2)\n[![run with conda](http://img.shields.io/badge/run%20with-conda-3EB049?labelColor=000000&logo=anaconda)](https://docs.conda.io/en/latest/)\n[![run with docker](https://img.shields.io/badge/run%20with-docker-0db7ed?labelColor=000000&logo=docker)](https://www.docker.com/)\n[![run with singularity](https://img.shields.io/badge/run%20with-singularity-1d355c.svg?labelColor=000000)](https://sylabs.io/docs/)\n[![Launch on Seqera Platform](https://img.shields.io/badge/Launch%20%F0%9F%9A%80-Seqera%20Platform-%234256e7)](https://cloud.seqera.io/launch?pipeline=https://github.com/nf-core/seqsubmit)\n\n[![Get help on Slack](http://img.shields.io/badge/slack-nf--core%20%23seqsubmit-4A154B?labelColor=000000&logo=slack)](https://nfcore.slack.com/channels/seqsubmit)[![Follow on Bluesky](https://img.shields.io/badge/bluesky-%40nf__core-1185fe?labelColor=000000&logo=bluesky)](https://bsky.app/profile/nf-co.re)[![Follow on Mastodon](https://img.shields.io/badge/mastodon-nf__core-6364ff?labelColor=FFFFFF&logo=mastodon)](https://mstdn.science/@nf_core)[![Watch on YouTube](http://img.shields.io/badge/youtube-nf--core-FF0000?labelColor=000000&logo=youtube)](https://www.youtube.com/c/nf-core)\n\n## Introduction\n\n![seqsubmit workflow diagram](docs/images/seqsubmit_schema.png)\n\n**nf-core/seqsubmit** is a Nextflow pipeline for submitting sequence data to [ENA](https://www.ebi.ac.uk/ena/browser/home).\nThe pipeline currently supports the following submission modes, each routed to a dedicated workflow:\n\n- `reads` \u2014 raw sequencing reads submission via the `READSUBMIT` workflow (pink)\n- `metagenomic_assemblies` \u2014 assembly submission via the `ASSEMBLYSUBMIT` workflow (green)\n- `mags` \u2014 metagenome-assembled genomes (MAGs) submission via the `GENOMESUBMIT` workflow (blue)\n- `bins` \u2014 bins submission via the `GENOMESUBMIT` workflow (blue)\n\n\n\nEach workflow has its own samplesheet structure, prerequisites, and limitations \u2014 they are briefly described below. See the [usage documentation](https://nf-co.re/seqsubmit/usage) for more detailed explanations.\n\n## Requirements\n\n- [Nextflow](https://www.nextflow.io/) `>=25.04.0`\n- A Webin account registered at \n\n Set your Webin credentials as Nextflow secrets:\n\n ```bash\n nextflow secrets set ENA_WEBIN \"Webin-XXX\"\n nextflow secrets set ENA_WEBIN_PASSWORD \"XXX\"\n ```\n\n Make sure to replace the values above with your own credentials.\n\n- Provide either a study accession or a study registration metadata file for the study the submission will be associated with. See the [Submission study](docs/usage.md#submission-study) section of the usage documentation for details.\n\n- Depending on the chosen mode, samples, reads, or metagenomic assemblies must be pre-submitted to ENA to obtain the corresponding accessions, which you then reference in your submission. Refer to the relevant mode section in the [usage documentation](https://nf-co.re/seqsubmit/usage) for details.\n\n## Input samplesheets\n\n### `reads` mode\n\nExample:\n\n```csv\nid,sample_accession,fastq_1,fastq_2,platform,instrument,library_source,library_selection,library_strategy,insert_size,library_name,description\nillumina_run_001,SAMEA1234567,data/reads_R1.fastq.gz,data/reads_R2.fastq.gz,ILLUMINA,Illumina HiSeq 2000,GENOMIC,RANDOM,WGS,500,HiSeq_library_001,Illumina sequencing of sample XYZ\n```\n\nSee the [`reads` mode section](docs/usage.md#samplesheet-input) of the usage documentation for more details.\n\n### `metagenomic_assemblies` mode\n\nExample:\n\n```csv\nid,fasta,fastq_1,fastq_2,coverage,run_accession,assembler,assembler_version\nassembly_1,data/contigs_1.fasta.gz,data/reads_1.fastq.gz,data/reads_2.fastq.gz,,ERR011322,SPAdes,3.15.5\nassembly_2,data/contigs_2.fasta.gz,,,42.7,ERR011323,MEGAHIT,1.2.9\n```\n\nSee the [`metagenomic_assemblies` mode section](docs/usage.md#samplesheet-input-1) of the usage documentation for more details.\n\n### `mags` and `bins` modes\n\nExample:\n\n```csv\nid,fasta,accession,fastq_1,fastq_2,assembly_software,binning_software,binning_parameters,stats_generation_software,completeness,contamination,genome_coverage,metagenome,co-assembly,broad_environment,local_environment,environmental_medium,RNA_presence,NCBI_lineage\nlachnospira_eligens,data/bin_lachnospira_eligens.fa.gz,SRR24458089,,,spades_v3.15.5,metabat2_v2.6,default,CheckM2_v1.0.1,61.0,0.21,32.07,sediment metagenome,false,marine,cable_bacteria,marine_sediment,false,d__Bacteria;p__Proteobacteria;s__unclassified_Proteobacteria\n```\n\nSee the [`mags` and `bins` modes section](docs/usage.md#samplesheet-input-2) of the usage documentation for the full list of required and optional columns.\n\n## Usage\n\n> [!NOTE]\n> If you are new to Nextflow and nf-core, please refer to [this page](https://nf-co.re/docs/get_started/environment_setup/overview) on how to set-up Nextflow. Make sure to [test your setup](https://nf-co.re/docs/get_started/run-your-first-pipeline) with `-profile test` before running the workflow on actual data.\n\n### Running the pipeline\n\nEach mode also has its own additional parameters and example commands \u2014 see the [usage documentation](https://nf-co.re/seqsubmit/usage) for details. General command template:\n\n```bash\nnextflow run nf-core/seqsubmit \\\n -profile \\\n --mode \\\n --input \\\n --centre_name \\\n --submission_study \\\n --outdir \n```\n\n> [!WARNING]\n> Please provide pipeline parameters via the CLI or Nextflow `-params-file` option. Custom config files including those provided by the `-c` Nextflow option can be used to provide any configuration _**except for parameters**_; see [docs](https://nf-co.re/docs/running/run-pipelines#using-parameter-files).\n\nFor more details and further functionality, please refer to the [usage documentation](https://nf-co.re/seqsubmit/usage) and the [parameter documentation](https://nf-co.re/seqsubmit/parameters).\n\n## Pipeline output\n\nKey output locations in `--outdir`:\n\n- `reads/`: per-sample submission receipts and accessions\n- `metagenomic_assemblies/`: assembly metadata CSVs and per-sample coverage files\n- `mags/` or `bins/`: genome metadata, manifests, and per-sample submission support files\n- `multiqc/`: MultiQC summary report\n- `pipeline_info/`: execution reports, trace, DAG, and software versions\n\nFor full details, see the [output documentation](https://nf-co.re/seqsubmit/output).\n\n## Credits\n\nnf-core/seqsubmit was originally written by [Martin Beracochea](https://github.com/mberacochea), [Ekaterina Sakharova](https://github.com/KateSakharova), [Sofia Ochkalova](https://github.com/ochkalova), [Evangelos Karatzas](https://github.com/vagkaratzas) and [Tim Rozday](https://github.com/timrozday-mgnify).\n\n## Contributions and Support\n\nIf you would like to contribute to this pipeline, please see the [contributing guidelines](docs/CONTRIBUTING.md).\n\nFor further information or help, don't hesitate to get in touch on the [Slack `#seqsubmit` channel](https://nfcore.slack.com/channels/seqsubmit) (you can join with [this invite](https://nf-co.re/join/slack)).\n\n## Citations\n\n\n\n\n\nIf you use this pipeline please make sure to cite all used software.\nThis pipeline uses code and infrastructure developed and maintained by the [nf-core](https://nf-co.re) community, reused here under the [MIT license](https://github.com/nf-core/tools/blob/main/LICENSE).\n\n> **MGnify: the microbiome sequence data analysis resource in 2023**\n>\n> Richardson L, Allen B, Baldi G, Beracochea M, Bileschi ML, Burdett T, et al.\n>\n> Vol. 51, Nucleic Acids Research. Oxford University Press (OUP); 2022. p. D753\u20139. Available from: http://dx.doi.org/10.1093/nar/gkac1080\n\nAn extensive list of references for the tools used by the pipeline can be found in the [`CITATIONS.md`](CITATIONS.md) file.\n\nYou can cite the `nf-core` publication as follows:\n\n> **The nf-core framework for community-curated bioinformatics pipelines.**\n>\n> Philip Ewels, Alexander Peltzer, Sven Fillinger, Harshil Patel, Johannes Alneberg, Andreas Wilm, Maxime Ulysse Garcia, Paolo Di Tommaso & Sven Nahnsen.\n>\n> _Nat Biotechnol._ 2020 Feb 13. doi: [10.1038/s41587-020-0439-x](https://dx.doi.org/10.1038/s41587-020-0439-x).\n", "hasPart": [ { "@id": "main.nf" From 19067fb21965caddafd1954a4998de77edb53d4e Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Thu, 30 Jul 2026 14:38:15 +0100 Subject: [PATCH 45/47] remove files_unchanged --- .nf-core.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.nf-core.yml b/.nf-core.yml index bf38907..fc8d70b 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -5,11 +5,6 @@ lint: - conf/igenomes_ignored.config nextflow_config: - params.input - files_unchanged: - - .github/PULL_REQUEST_TEMPLATE.md - - docs/images/nf-core-seqsubmit_logo_light.png - - docs/images/nf-core-seqsubmit_logo_dark.png - - assets/nf-core-seqsubmit_logo_light.png nf_core_version: 4.0.3 repository_type: pipeline template: From decd115d75ae4d17dbffd5a11772fac05a84a03b Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova Date: Thu, 30 Jul 2026 14:44:55 +0100 Subject: [PATCH 46/47] revert files_unchanged --- .nf-core.yml | 5 +++++ CHANGELOG.md | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.nf-core.yml b/.nf-core.yml index fc8d70b..bf38907 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -5,6 +5,11 @@ lint: - conf/igenomes_ignored.config nextflow_config: - params.input + files_unchanged: + - .github/PULL_REQUEST_TEMPLATE.md + - docs/images/nf-core-seqsubmit_logo_light.png + - docs/images/nf-core-seqsubmit_logo_dark.png + - assets/nf-core-seqsubmit_logo_light.png nf_core_version: 4.0.3 repository_type: pipeline template: diff --git a/CHANGELOG.md b/CHANGELOG.md index d12e871..a716c4a 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.0.0 - [date] +## v1.0.0 - 01/08/2026 Initial release of nf-core/seqsubmit, created with the [nf-core](https://nf-co.re/) template. From 670bdc646eaa09ae6f19361423a7f735705528a8 Mon Sep 17 00:00:00 2001 From: Ekaterina Sakharova <49755902+KateSakharova@users.noreply.github.com> Date: Thu, 30 Jul 2026 15:28:03 +0100 Subject: [PATCH 47/47] Revise resource settings guidance in usage documentation Updated resource settings reference for Nextflow configuration. --- docs/usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage.md b/docs/usage.md index c06657d..14c38e2 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -386,7 +386,7 @@ nextflow run nf-core/seqsubmit \ Some processes in this pipeline are resource intensive — in particular coverage calculation (CoverM), quality assessment (CheckM2), and taxonomic classification of MAGs/bins (BAT). For real-world data, these steps should be run on an HPC cluster or another compute environment with sufficient CPU, memory, and job scheduling capacity, rather than on a single local machine. -Depending on the resources available on your machine or cluster, you will likely need to adapt the Nextflow configuration to limit the maximum number of concurrently running jobs and other resource settings (e.g. `max_cpus`, `max_memory`, `max_time`, or `executor.queueSize` in a custom config), so that the pipeline does not try to claim more resources than are actually available. See the [nf-core configuration documentation](https://nf-co.re/docs/usage/getting_started/configuration) for guidance on writing a custom config for your infrastructure. +Depending on the resources available on your machine or cluster, you will likely need to adapt the Nextflow configuration to limit the maximum number of concurrently running jobs and other resource settings using [resourceLimits](https://nf-co.re/docs/developing/institutional-profiles/configuration#resource-limits) in a custom config, so that the pipeline does not try to claim more resources than are actually available. See the [nf-core configuration documentation](https://nf-co.re/docs/usage/getting_started/configuration) for guidance on writing a custom config for your infrastructure. When submitting a large number of records, be aware that ENA recommends limiting submissions to 5000 per day to avoid overfilling their processing queue. If you need to submit more than this, consider splitting your samplesheet and spreading the submission across several days.