From 75e3056ef160725b8530ebf2a228a97ae426e356 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Wed, 7 Aug 2024 15:11:39 -0500 Subject: [PATCH 01/35] Upgrading isoquant --- conf/modules.config | 2 +- modules/local/isoquant.nf | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index e5bbe08..664af3f 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -669,7 +669,7 @@ process { [ "--complete_genedb", params.stranded == "forward" ? "--stranded forward" : params.stranded == "reverse" ? "--stranded reverse" : "--stranded none", - params.retain_introns ? "--gene_quantification all " : "--gene_quantification with_inconsistent ", + params.retain_introns ? "--gene_quantification all " : "--gene_quantification unique_inconsistent ", params.retain_introns ? "--transcript_quantification all " : "--transcript_quantification unique_only ", "--splice_correction_strategy default_ont ", "--model_construction_strategy sensitive_ont " diff --git a/modules/local/isoquant.nf b/modules/local/isoquant.nf index 2de8a6e..34bfdc1 100644 --- a/modules/local/isoquant.nf +++ b/modules/local/isoquant.nf @@ -3,10 +3,10 @@ process ISOQUANT { label 'process_high' label 'process_high_memory' - conda "bioconda::isoquant=3.3.1" + conda "bioconda::isoquant=3.5.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/isoquant:3.3.1--hdfd78af_0' : - 'biocontainers/isoquant:3.3.1--hdfd78af_0' }" + 'https://depot.galaxyproject.org/singularity/isoquant:3.5.0--hdfd78af_0' : + 'biocontainers/isoquant:3.5.0--hdfd78af_0' }" input: tuple val(meta), path(bam), path(bai) @@ -41,7 +41,7 @@ process ISOQUANT { cat <<-END_VERSIONS > versions.yml "${task.process}": - isoquant: \$(isoquant.py -v 2>&1) + isoquant: \$(isoquant.py -v | sed 's#IsoQuant ##') END_VERSIONS """ } else { @@ -62,7 +62,7 @@ process ISOQUANT { cat <<-END_VERSIONS > versions.yml "${task.process}": - isoquant: \$(isoquant.py -v 2>&1) + isoquant: \$(isoquant.py -v | sed 's#IsoQuant ##') END_VERSIONS """ From 26696f33483e050b25d898724ecd88284875c3a4 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Thu, 8 Aug 2024 10:14:25 -0500 Subject: [PATCH 02/35] Removing high_memory label from isoquant --- modules/local/isoquant.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/local/isoquant.nf b/modules/local/isoquant.nf index 34bfdc1..650b1c4 100644 --- a/modules/local/isoquant.nf +++ b/modules/local/isoquant.nf @@ -1,7 +1,6 @@ process ISOQUANT { tag "$meta.id" label 'process_high' - label 'process_high_memory' conda "bioconda::isoquant=3.5.0" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? From 45c1672355cb7bb4144304d87f3f8af67eb32975 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Mon, 12 Aug 2024 10:41:42 -0500 Subject: [PATCH 03/35] Removing check_samplesheet.py --- bin/check_samplesheet.py | 250 --------------------------------------- 1 file changed, 250 deletions(-) delete mode 100755 bin/check_samplesheet.py diff --git a/bin/check_samplesheet.py b/bin/check_samplesheet.py deleted file mode 100755 index 7cb50c0..0000000 --- a/bin/check_samplesheet.py +++ /dev/null @@ -1,250 +0,0 @@ -#!/usr/bin/env python - - -"""Provide a command line tool to validate and transform tabular samplesheets.""" - - -import argparse -import csv -import logging -import sys -from collections import Counter -from pathlib import Path - -logger = logging.getLogger() - - -class RowChecker: - """ - Define a service that can validate and transform each given row. - - Attributes: - modified (list): A list of dicts, where each dict corresponds to a previously - validated and transformed row. The order of rows is maintained. - - """ - - VALID_FORMATS = ( - ".fq.gz", - ".fastq.gz", - ) - - def __init__( - self, - sample_col="sample", - first_col="fastq", - second_col="cell_count", - single_col="single_end", - **kwargs, - ): - """ - Initialize the row checker with the expected column names. - - Args: - sample_col (str): The name of the column that contains the sample name - (default "sample"). - first_col (str): The name of the column that contains the first (or only) - FASTQ file path (default "fastq"). - second_col (str): The name of the column that contains the expected cell - count for the sample (default "cell_count"). - single_col (str): The name of the new column that will be inserted and - records whether the sample contains single- or paired-end sequencing - reads (default "single_end"). - - """ - super().__init__(**kwargs) - self._sample_col = sample_col - self._first_col = first_col - self._second_col = second_col - self._single_col = single_col - self._seen = set() - self.modified = [] - - def validate_and_transform(self, row): - """ - Perform all validations on the given row and insert the read pairing status. - - Args: - row (dict): A mapping from column headers (keys) to elements of that row - (values). - - """ - self._validate_sample(row) - self._validate_first(row) - self._validate_second(row) - self._set_single_end(row) - self._seen.add((row[self._sample_col], row[self._first_col])) - self.modified.append(row) - - def _validate_sample(self, row): - """Assert that the sample name exists and convert spaces to underscores.""" - if len(row[self._sample_col]) <= 0: - raise AssertionError("Sample input is required.") - # Sanitize samples slightly. - row[self._sample_col] = row[self._sample_col].replace(" ", "_") - - def _validate_first(self, row): - """Assert that the first FASTQ entry is non-empty and has the right format.""" - if len(row[self._first_col]) <= 0: - raise AssertionError("The FASTQ file is required.") - self._validate_fastq_format(row[self._first_col]) - - def _validate_second(self, row): - """Assert that the cell count entry exists.""" - if len(row[self._second_col]) <= 0: - raise AssertionError("The cell count is required.") - - def _set_single_end(self, row): - """Assert that read pairs have the same file extension. Report pair status.""" - row[self._single_col] = True - - def _validate_fastq_format(self, filename): - """Assert that a given filename has one of the expected FASTQ extensions.""" - if not any(filename.endswith(extension) for extension in self.VALID_FORMATS): - raise AssertionError( - f"The FASTQ file has an unrecognized extension: {filename}\n" - f"It should be one of: {', '.join(self.VALID_FORMATS)}" - ) - - def validate_unique_samples(self): - """ - Assert that the combination of sample name and FASTQ filename is unique. - - In addition to the validation, also rename all samples to have a suffix of _T{n}, where n is the - number of times the same sample exist, but with different FASTQ files, e.g., multiple runs per experiment. - - """ - if len(self._seen) != len(self.modified): - raise AssertionError("The pair of sample name and FASTQ must be unique.") - seen = Counter() - for row in self.modified: - sample = row[self._sample_col] - seen[sample] += 1 - row[self._sample_col] = f"{sample}_T{seen[sample]}" - - -def read_head(handle, num_lines=10): - """Read the specified number of lines from the current position in the file.""" - lines = [] - for idx, line in enumerate(handle): - if idx == num_lines: - break - lines.append(line) - return "".join(lines) - - -def sniff_format(handle): - """ - Detect the tabular format. - - Args: - handle (text file): A handle to a `text file`_ object. The read position is - expected to be at the beginning (index 0). - - Returns: - csv.Dialect: The detected tabular format. - - .. _text file: - https://docs.python.org/3/glossary.html#term-text-file - - """ - peek = read_head(handle) - handle.seek(0) - sniffer = csv.Sniffer() - dialect = sniffer.sniff(peek) - return dialect - - -def check_samplesheet(file_in, file_out): - """ - Check that the tabular samplesheet has the structure expected by nf-core pipelines. - - Validate the general shape of the table, expected columns, and each row. Also add - an additional column which records whether one or two FASTQ reads were found. - - Args: - file_in (pathlib.Path): The given tabular samplesheet. The format can be either - CSV, TSV, or any other format automatically recognized by ``csv.Sniffer``. - file_out (pathlib.Path): Where the validated and transformed samplesheet should - be created; always in CSV format. - - Example: - This function checks that the samplesheet follows the following structure, - see also the `viral recon samplesheet`_:: - - sample,fastq,cell_count - SAMPLE_SE,SAMPLE_SE_RUN1_1.fastq.gz,1000 - - .. _viral recon samplesheet: - https://raw.githubusercontent.com/nf-core/test-datasets/viralrecon/samplesheet/samplesheet_test_illumina_amplicon.csv - - """ - required_columns = {"sample", "fastq", "cell_count"} - # See https://docs.python.org/3.9/library/csv.html#id3 to read up on `newline=""`. - with file_in.open(newline="") as in_handle: - reader = csv.DictReader(in_handle, dialect=sniff_format(in_handle)) - # Validate the existence of the expected header columns. - if not required_columns.issubset(reader.fieldnames): - req_cols = ", ".join(required_columns) - logger.critical(f"The sample sheet **must** contain these column headers: {req_cols}.") - sys.exit(1) - # Validate each row. - checker = RowChecker() - for i, row in enumerate(reader): - try: - checker.validate_and_transform(row) - except AssertionError as error: - logger.critical(f"{str(error)} On line {i + 2}.") - sys.exit(1) - checker.validate_unique_samples() - header = list(reader.fieldnames) - header.insert(1, "single_end") - # See https://docs.python.org/3.9/library/csv.html#id3 to read up on `newline=""`. - with file_out.open(mode="w", newline="") as out_handle: - writer = csv.DictWriter(out_handle, header, delimiter=",") - writer.writeheader() - for row in checker.modified: - writer.writerow(row) - - -def parse_args(argv=None): - """Define and immediately parse command line arguments.""" - parser = argparse.ArgumentParser( - description="Validate and transform a tabular samplesheet.", - epilog="Example: python check_samplesheet.py samplesheet.csv samplesheet.valid.csv", - ) - parser.add_argument( - "file_in", - metavar="FILE_IN", - type=Path, - help="Tabular input samplesheet in CSV or TSV format.", - ) - parser.add_argument( - "file_out", - metavar="FILE_OUT", - type=Path, - help="Transformed output samplesheet in CSV format.", - ) - parser.add_argument( - "-l", - "--log-level", - help="The desired log level (default WARNING).", - choices=("CRITICAL", "ERROR", "WARNING", "INFO", "DEBUG"), - default="WARNING", - ) - return parser.parse_args(argv) - - -def main(argv=None): - """Coordinate argument parsing and program execution.""" - args = parse_args(argv) - logging.basicConfig(level=args.log_level, format="[%(levelname)s] %(message)s") - if not args.file_in.is_file(): - logger.error(f"The given input file {args.file_in} was not found!") - sys.exit(2) - args.file_out.parent.mkdir(parents=True, exist_ok=True) - check_samplesheet(args.file_in, args.file_out) - - -if __name__ == "__main__": - sys.exit(main()) From bc0bc9fb011dab32cd478756dafc0be44a9d50f2 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Mon, 12 Aug 2024 11:31:15 -0500 Subject: [PATCH 04/35] Removing unnecessary exclusions in ci --- .github/workflows/ci.yml | 1 - .nf-core.yml | 6 ------ .prettierignore | 1 - 3 files changed, 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3670946..349e712 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,7 +4,6 @@ on: push: branches: - dev - - template_update pull_request: release: types: [published] diff --git a/.nf-core.yml b/.nf-core.yml index 9480b62..16838f3 100644 --- a/.nf-core.yml +++ b/.nf-core.yml @@ -1,18 +1,12 @@ repository_type: pipeline nf_core_version: "2.14.1" -pipeline_todos: false - lint: template_strings: False # "Jinja string found in" bin/create_regex.py and bin/seurat_qc.R files_unchanged: - - CODE_OF_CONDUCT.md - - .github/CONTRIBUTING.md - .github/workflows/linting.yml - lib/NfcoreTemplate.groovy - docs/images/nf-core-scnanoseq_logo_dark.png pipeline_todos: - README.md - main.nf - multiqc_config: - - report_comment diff --git a/.prettierignore b/.prettierignore index b32659e..437d763 100644 --- a/.prettierignore +++ b/.prettierignore @@ -10,4 +10,3 @@ testing/ testing* *.pyc bin/ -docs/output.md From d6fe57edfd37f4bdc94971736f33c9579125d225 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Mon, 12 Aug 2024 11:31:32 -0500 Subject: [PATCH 05/35] Fixing input validation --- assets/schema_input.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/schema_input.json b/assets/schema_input.json index 3ac4ad6..7a755bc 100644 --- a/assets/schema_input.json +++ b/assets/schema_input.json @@ -21,7 +21,7 @@ "errorMessage": "FastQ file for reads 1 must be provided, cannot contain spaces and must have extension '.fq.gz' or '.fastq.gz'" }, "cell_count": { - "type": "string" + "type": "integer" } }, "required": ["sample", "fastq", "cell_count"] From 4b392a4418a12d450456359bb97ae4f204a965e8 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Mon, 12 Aug 2024 11:31:49 -0500 Subject: [PATCH 06/35] Improving documentation --- README.md | 33 ++++++++++++++++++--------------- docs/output.md | 11 +++++++---- docs/usage.md | 10 +++++----- 3 files changed, 30 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 0ec4c7e..a74fc5a 100644 --- a/README.md +++ b/README.md @@ -30,8 +30,8 @@ On release, automated continuous integration tests run the pipeline on a full-si ![scnanoseq diagram](assets/scnanoseq_diagram.png) 1. Raw read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/), [`NanoPlot`](https://github.com/wdecoster/NanoPlot), [`NanoComp`](https://github.com/wdecoster/nanocomp) and [`ToulligQC`](https://github.com/GenomiqueENS/toulligQC)) -2. Unzip and split FastQ ([`gunzip`](https://linux.die.net/man/1/gunzip)) - 1. Optional: Split fastq for faster processing ([`split`](https://linux.die.net/man/1/split)) +2. Unzip and split FASTQ ([`gunzip`](https://linux.die.net/man/1/gunzip)) + 1. Optional: Split FASTQ for faster processing ([`split`](https://linux.die.net/man/1/split)) 3. Trim and filter reads. ([`Nanofilt`](https://github.com/wdecoster/nanofilt)) 4. Post trim QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/), [`NanoPlot`](https://github.com/wdecoster/NanoPlot) and [`ToulligQC`](https://github.com/GenomiqueENS/toulligQC)) 5. Barcode detection using a custom whitelist or 10X whitelist. [`BLAZE`](https://github.com/shimlab/BLAZE) @@ -43,7 +43,7 @@ On release, automated continuous integration tests run the pipeline on a full-si 9. Alignment ([`minimap2`](https://github.com/lh3/minimap2)) 10. Post-alignment filtering of mapped reads and gathering mapping QC ([`SAMtools`](http://www.htslib.org/doc/samtools.html)) 11. Post-alignment QC in unfiltered BAM files ([`NanoComp`](https://github.com/wdecoster/nanocomp), [`RSeQC`](https://rseqc.sourceforge.net/)) -12. Barcode tagging with read quality, BC, BC quality, UMI, and UMI quality (custom script `./bin/tag_barcodes.py`) +12. Barcode (BC) tagging with read quality, BC quality, UMI quality (custom script `./bin/tag_barcodes.py`) 13. UMI-based deduplication [`UMI-tools`](https://github.com/CGATOxford/UMI-tools) 14. Gene and transcript level matrices generation. [`IsoQuant`](https://github.com/ablab/IsoQuant) 15. Preliminary matrix QC ([`Seurat`](https://github.com/satijalab/seurat)) @@ -56,9 +56,7 @@ On release, automated continuous integration tests run the pipeline on a full-si First, prepare a samplesheet with your input data that looks as follows: -`samplesheet.csv`: - -```csv +```csv title="samplesheet.csv" sample,fastq,cell_count CONTROL_REP1,AEG588A1_S1.fastq.gz,5000 CONTROL_REP1,AEG588A1_S2.fastq.gz,5000 @@ -86,24 +84,29 @@ For more details and further functionality, please refer to the [usage documenta ## Pipeline output +This pipeline produces feature barcode matrices at both the gene and transcript level and can be configured to retain introns within the counts themselves. These feature-barcode matrices are able to be ingested directly by most packages used for downstream analyses such as `Seurat`. Additionally, the pipeline produces a number of quality control metrics to ensure that the samples processed meet expected metrics for single-cell/nuclei data. + To see the results of an example test run with a full size dataset refer to the [results](https://nf-co.re/scnanoseq/results) tab on the nf-core website pipeline page. -For more details about the output files and reports, please refer to the +For more details about the full set of output files and reports, please refer to the [output documentation](https://nf-co.re/scnanoseq/output). -This pipeline produces feature barcode matrices at both the gene and transcript level and can retain introns within the counts themselves. These files are able to be ingested directly by most packages used for downstream analyses such as `Seurat`. In addition the pipeline produces a number of quality control metrics to ensure that the samples processed meet expected metrics for single-cell/nuclei data. - ## Troubleshooting -If you experience any issues, please make sure to submit an issue above. However, some resolutions for common issues will be noted below: +If you experience any issues, please make sure to reach out on the [#scnanoseq slack channel](https://nfcore.slack.com/archives/C03TUE2K6NS) or [open an issue on our GitHub repository](https://github.com/nf-core/scnanoseq/issues/new/choose). However, some resolutions for common issues will be noted below: -- Due to the nature of the data this pipeline analyzes, some tools can experience increased runtimes. For some of the custom tools made for this pipeline (`preextract_fastq.py` and `correct_barcodes.py`), we have leveraged the splitting that is done via the `split_amount` param to decrease their overall runtimes. The `split_amount` parameter will split the input fastqs into a number of fastq files that each have a number of lines based on the value used for this parameter. As a result, it is important not to set this parameter to be too low as it would cause the creation of a large number of files the pipeline will be processed. While this value can be highly dependent on the data, a good starting point for an analysis would be to set this value to `500000`. If you find that `PREEXTRACT_FASTQ` and `CORRECT_BARCODES` are still taking long amounts of time to run, it would be worth reducing this parameter to `200000` or `100000`, but keeping the value on the order of hundred of thousands or tens of thousands should help with with keeping the total number of processes minimal. -- One issue that has been observed is a recurrent node failure on slurm clusters that does seem to be related to submission of nextflow jobs. This issue is not related to this pipeline itself, but rather to nextflow itself. Our reserach computing are currently working on a resolution. But we have two methods that appear to help overcome should this issue arise: - 1. The first is to create a custom config that increases the memory request for the job that failed. This may take a couple attempts to find the correct requests, but we have noted that there does appear to be a memory issue occassionally with this errors. - 2. The second resolution is to request an interactive session with a decent amount of time and memory and cpus in order to run the pipeline on the single node. Note that this will take time as there will be minimal parallelization, but this does seem to resolve the issue. -- We acknowledge that analyzing PromethION is a common use case for this pipeline. Currently, the pipeline has been developed with defaults to analyze GridION and average sized PromethION data. For cases, where jobs have failed due for larger PromethION datasets, the defaults have been overwritten by a custom configuation file (provided by the `-c` Nextflow option) where resources were increased (substantially in some cases). Below are some of the overrides we have used, while these amounts may not work on every dataset, these will hopefully at least note which processes will need to have their resources increased: +- Due to the nature of the data this pipeline analyzes, some tools can experience increased runtimes. For some of the custom tools made for this pipeline (`preextract_fastq.py` and `correct_barcodes.py`), we have leveraged the splitting that is done via the `split_amount` parameter to decrease their overall runtimes. The `split_amount` parameter will split the input FASTQs into a number of FASTQ files that each have a number of lines based on the value used for this parameter. As a result, it is important not to set this parameter to be too low as it would cause the creation of a large number of files the pipeline will be processed. While this value can be highly dependent on the data, a good starting point for an analysis would be to set this value to `500000`. If you find that `PREEXTRACT_FASTQ` and `CORRECT_BARCODES` are still taking long amounts of time to run, it would be worth reducing this parameter to `200000` or `100000`, but keeping the value on the order of hundred of thousands or tens of thousands should help with with keeping the total number of processes minimal. An example of setting this parameter to be equal to 500000 is shown below: +```yml title="params.yml" +split_amount: 500000 ``` +- We have seen a recurrent node failure on slurm clusters that does seem to be related to submission of nextflow jobs. This issue is not related to this pipeline per se, but rather to nextflow itself. We are currently working on a resolution. But we have two methods that appear to help overcome should this issue arise: + 1. Provide a custom config that increases the memory request for the job that failed. This may take a couple attempts to find the correct requests, but we have noted that there does appear to be a memory issue occasionally with these errors. + 2. Request an interactive session with a decent amount of time and memory and CPUs in order to run the pipeline on the single node. Note that this will take time as there will be minimal parallelization, but this does seem to resolve the issue. +- We acknowledge that analyzing PromethION is a common use case for this pipeline. Currently, the pipeline has been developed with defaults to analyze GridION and average sized PromethION data. For cases, where jobs have failed due for larger PromethION datasets, the defaults have been overwritten by a custom configuation file (provided by the `-c` Nextflow option) where resources were increased (substantially in some cases). Below are some of the overrides we have used, while these amounts may not work on every dataset, these will hopefully at least note which processes will need to have their resources increased: + +```groovy title="custom.config" + process { withName: '.*:.*FASTQC.*' diff --git a/docs/output.md b/docs/output.md index 7bf21c6..f0ada9e 100644 --- a/docs/output.md +++ b/docs/output.md @@ -58,14 +58,16 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d - `blaze/` - `blaze/*.bc_count.txt` : This is a file containing each barcode and the counts of how many reads support it. - `blaze/*.knee_plot.png` : The knee plot detailing the ranking of each barcode. - - `blaze/*.putative_bc.csv` : This file contains the naively detected barcode for each read. - - `blaze/*.whitelist.csv` : This is the detected "true" barcodes for the dataset. + - `blaze/*.putative_bc.csv` : This file contains the naively detected barcode for each read. + - `blaze/*.whitelist.csv` : This is a list of the "true" barcodes detected for a sample. The length of the file should roughly match the expected amount of cells that is expected for the sample. ![BLAZE - knee plot](images/blaze.png) -[BLAZE](https://github.com/shimlab/BLAZE) enables the accurate identification of barcodes and UMIs from Nanopore reads. +[BLAZE](https://github.com/shimlab/BLAZE) enables the accurate identification of barcodes and UMIs from Nanopore reads. The files produced by BLAZE can be used to assess the quality of the barcode calling and the data. + +The knee plot (an example is listed above) that is provided by BLAZE shows all barcodes detected in a sample, ranked from highest to lowest read count. The "cliff-and-knee" shape (similar to the image above) is indicative of good quality. Deviations from this shape can be indicative of concerns with the data, such as low barcode counts. The `*.bc_count.txt` file can be used to accompany this figure to show every barcode and its abundance in the dataset ## Alignment ### Minimap2 @@ -137,7 +139,7 @@ UMI tag = "UR" UMI quality tag = "UY" ``` -Please see "Barcode Correction" below for metadata added post-correction. +Please see [Barcode Correction](#barcode-correction) below for metadata added post-correction. ### Barcode Correction
@@ -196,6 +198,7 @@ Barcode correction is a custom script that uses the whitelist generated by BLAZE
![MultiQC - seurat](images/seurat.png) +_High level statistics are provided in the MultiQC report, as show in this image. These provide an overview of the quality of the data in order to assess if the results are suitable for tertiary analysis._ [Seurat](https://satijalab.org/seurat/) is an R package designed for QC, analysis, and exploration of single-cell RNA-seq data. diff --git a/docs/usage.md b/docs/usage.md index 0146bf0..60b004c 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -16,7 +16,7 @@ You will need to create a samplesheet with information about the samples you wou The `sample` identifiers have to be the same when you have re-sequenced the same sample more than once e.g. to increase sequencing depth. The pipeline will concatenate the raw reads before performing any downstream analysis. Below is an example for the same sample sequenced across replicates 1 and 4 (`REP1` and `REP4` respectively): -```console +```csv title="samplesheet.csv" sample,fastq,cell_count CONTROL_REP1,AEG588A1_S1.fastq.gz,5000 CONTROL_REP1,AEG588A1_S2.fastq.gz,5000 @@ -33,7 +33,7 @@ CONTROL_REP4,AEG588A4_S3.fastq.gz,5000 The example `samplesheet.csv` below contains a single FASTQ file per biological replicate with sample specific cell counts. -```console +```csv title="samplesheet.csv" sample,fastq,cell_count CONTROL_REP1,AEG588A1_S1.fastq.gz,5000 CONTROL_REP2,AEG588A2_S1.fastq.gz,6000 @@ -88,9 +88,9 @@ The above pipeline run specified with a params file in yaml format: nextflow run nf-core/scnanoseq -profile -params-file params.yaml ``` -with `params.yaml` containing: +with -```yaml +```yaml title="params.yaml" input: "./samplesheet.csv" outdir: "./results/" genome: "/path/to/genome.fa" @@ -182,7 +182,7 @@ Specify the path to a specific config file (this is a core Nextflow command). Se Whilst the default requirements set within the pipeline will hopefully work for most people with GridION and average size PromethION data, you may find that you want to customise the compute resources that the pipeline requests. Each step in the pipeline has a default set of requirements for number of CPUs, memory and time. For most of the steps in the pipeline, if the job exits with any of the error codes specified [here](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L18) it will automatically be resubmitted with higher requests (2 x original, then 3 x original). If it still fails after the third attempt then the pipeline execution is stopped. -To change the resource requests, please see the [max resources](https://nf-co.re/docs/usage/configuration#max-resources) and [tuning workflow resources](https://nf-co.re/docs/usage/configuration#tuning-workflow-resources) section of the nf-core website. We have also provided a pipeline specific example of a custom configuration file in the Introduction page or the pipeline's GitHub `README` page. +To change the resource requests, please see the [max resources](https://nf-co.re/docs/usage/configuration#max-resources) and [tuning workflow resources](https://nf-co.re/docs/usage/configuration#tuning-workflow-resources) section of the nf-core website. We have also provided a pipeline specific example of a custom configuration file in the [Introduction page](/scnanoseq/latest/#troubleshooting). ### Custom Containers From ebf7af2508f6aab0d22e919ed7b631591088f34e Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Mon, 12 Aug 2024 11:32:01 -0500 Subject: [PATCH 07/35] Removing commented line --- main.nf | 1 - 1 file changed, 1 deletion(-) diff --git a/main.nf b/main.nf index 648ec36..814ee12 100644 --- a/main.nf +++ b/main.nf @@ -100,7 +100,6 @@ workflow { NFCORE_SCNANOSEQ.out.multiqc_report ) - //NFCORE_SCNANOSEQ() } /* From 0e1e4e23982619554a1f16f0403892eb4d5b92c0 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Mon, 12 Aug 2024 11:32:38 -0500 Subject: [PATCH 08/35] Fixing comment --- conf/test_full.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/test_full.config b/conf/test_full.config index b714c41..0ed950c 100644 --- a/conf/test_full.config +++ b/conf/test_full.config @@ -1,6 +1,6 @@ /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Nextflow config file for running minimal tests + Nextflow config file for running full-size tests ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Defines input files and everything required to run a fast and simple pipeline test. From fa4d24cdfb1f7b8274ba4f07d719a14d57d0a289 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Mon, 12 Aug 2024 11:33:03 -0500 Subject: [PATCH 09/35] Changing to long-format parameters for readability --- modules/local/correct_barcodes.nf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/local/correct_barcodes.nf b/modules/local/correct_barcodes.nf index 6ed2756..55596e2 100644 --- a/modules/local/correct_barcodes.nf +++ b/modules/local/correct_barcodes.nf @@ -13,7 +13,7 @@ process CORRECT_BARCODES { output: tuple val(meta), path("*.corrected_bc_umi.tsv"), emit: corrected_bc_info - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -25,10 +25,10 @@ process CORRECT_BARCODES { """ correct_barcodes.py \\ ${args} \\ - -i ${bc_info} \\ - -o ${prefix}.corrected_bc_umi.tsv \\ - -w ${whitelist} \\ - -b ${bc_count_file} \\ + --infile ${bc_info} \\ + --outfile ${prefix}.corrected_bc_umi.tsv \\ + --whitelist ${whitelist} \\ + --barcode_count ${bc_count_file} \\ --skip_header cat <<-END_VERSIONS > versions.yml From 97c431c18c520096f114f287832d103e3887a37f Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Mon, 12 Aug 2024 11:58:13 -0500 Subject: [PATCH 10/35] Removing useMamba default for conda profile --- nextflow.config | 4 ---- 1 file changed, 4 deletions(-) diff --git a/nextflow.config b/nextflow.config index 6f36aa4..40a8b20 100644 --- a/nextflow.config +++ b/nextflow.config @@ -315,7 +315,3 @@ def check_max(obj, type) { } } } - -conda { - useMamba = true -} From f87f8dcb15e0a65b943cdfae7b7f0f21d874ad06 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Mon, 12 Aug 2024 12:10:28 -0500 Subject: [PATCH 11/35] Fixing formatting --- workflows/scnanoseq.nf | 40 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/workflows/scnanoseq.nf b/workflows/scnanoseq.nf index c918a72..fc2326b 100644 --- a/workflows/scnanoseq.nf +++ b/workflows/scnanoseq.nf @@ -4,15 +4,7 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -// This is if the user passes in direct regex -def cell_barcode_pattern = "" -// This is for if the user wants to do more human readable regex -def cell_barcode_lengths = "" -def umi_lengths = "" -def blaze_whitelist = "" - -// TODO: Move this to a config file if (params.barcode_format.equals("10X_3v3")) { blaze_whitelist = file("$baseDir/assets/whitelist/3M-february-2018.zip") } @@ -51,8 +43,8 @@ include { NANOFILT } from "../mo include { NANOCOMP as NANOCOMP_FASTQ } from "../modules/local/nanocomp" include { NANOCOMP as NANOCOMP_BAM } from "../modules/local/nanocomp" include { SPLIT_FILE } from "../modules/local/split_file" -include { SPLIT_FILE as SPLIT_FILE_BC_FASTQ } from "../modules/local/split_file" -include { SPLIT_FILE as SPLIT_FILE_BC_CSV } from "../modules/local/split_file" +include { SPLIT_FILE as SPLIT_FILE_BC_FASTQ } from "../modules/local/split_file" +include { SPLIT_FILE as SPLIT_FILE_BC_CSV } from "../modules/local/split_file" include { PIGZ as ZIP_TRIM } from "../modules/local/pigz" include { BLAZE } from "../modules/local/blaze" include { PREEXTRACT_FASTQ } from "../modules/local/preextract_fastq.nf" @@ -92,8 +84,8 @@ include { UMITOOLS_DEDUP } from '../modules/nf-core/umito include { SAMTOOLS_VIEW as SAMTOOLS_VIEW_BAM } from "../modules/nf-core/samtools/view/main" include { SAMTOOLS_VIEW as SAMTOOLS_VIEW_FILTER } from "../modules/nf-core/samtools/view/main" include { CAT_CAT } from "../modules/nf-core/cat/cat/main" -include { CAT_CAT as CAT_CAT_PREEXTRACT } from "../modules/nf-core/cat/cat/main" -include { CAT_CAT as CAT_CAT_BARCODE } from "../modules/nf-core/cat/cat/main" +include { CAT_CAT as CAT_CAT_PREEXTRACT } from "../modules/nf-core/cat/cat/main" +include { CAT_CAT as CAT_CAT_BARCODE } from "../modules/nf-core/cat/cat/main" include { CAT_FASTQ } from '../modules/nf-core/cat/fastq/main' include { RSEQC_READDISTRIBUTION } from '../modules/nf-core/rseqc/readdistribution/main' include { BAMTOOLS_SPLIT } from '../modules/nf-core/bamtools/split/main' @@ -103,18 +95,18 @@ include { paramsSummaryMap } from 'plugin/nf-validation' /* * SUBWORKFLOW: Consisting entirely of nf-core/modules */ -include { QCFASTQ_NANOPLOT_FASTQC as FASTQC_NANOPLOT_PRE_TRIM } from '../subworkflows/nf-core/qcfastq_nanoplot_fastqc' -include { QCFASTQ_NANOPLOT_FASTQC as FASTQC_NANOPLOT_POST_TRIM } from '../subworkflows/nf-core/qcfastq_nanoplot_fastqc' -include { QCFASTQ_NANOPLOT_FASTQC as FASTQC_NANOPLOT_POST_EXTRACT } from '../subworkflows/nf-core/qcfastq_nanoplot_fastqc' -include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_MINIMAP } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" -include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_FILTERED } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" -include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_TAGGED } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" +include { QCFASTQ_NANOPLOT_FASTQC as FASTQC_NANOPLOT_PRE_TRIM } from '../subworkflows/nf-core/qcfastq_nanoplot_fastqc' +include { QCFASTQ_NANOPLOT_FASTQC as FASTQC_NANOPLOT_POST_TRIM } from '../subworkflows/nf-core/qcfastq_nanoplot_fastqc' +include { QCFASTQ_NANOPLOT_FASTQC as FASTQC_NANOPLOT_POST_EXTRACT } from '../subworkflows/nf-core/qcfastq_nanoplot_fastqc' +include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_MINIMAP } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" +include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_FILTERED } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" +include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_TAGGED } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_CORRECTED } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" -include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_SPLIT } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" -include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_DEDUP } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" -include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' -include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' -include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_scnanoseq_pipeline' +include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_SPLIT } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" +include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_DEDUP } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" +include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' +include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_scnanoseq_pipeline' /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -711,7 +703,7 @@ workflow SCNANOSEQ { emit: multiqc_report = ch_multiqc_report.toList() - versions = ch_versions + versions = ch_versions } From 9a149c6dff387d969057ff34d92e8d8086b79b39 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Wed, 14 Aug 2024 12:31:18 -0500 Subject: [PATCH 12/35] Removing local versions of minimap align and index in favor of the nf-core modules --- conf/modules.config | 21 - modules.json | 10 + modules/local/minimap2_align.nf | 39 -- modules/local/minimap2_index.nf | 40 -- .../nf-core/minimap2/align/environment.yml | 11 + modules/nf-core/minimap2/align/main.nf | 78 +++ modules/nf-core/minimap2/align/meta.yml | 84 ++++ .../nf-core/minimap2/align/tests/main.nf.test | 441 ++++++++++++++++ .../minimap2/align/tests/main.nf.test.snap | 476 ++++++++++++++++++ modules/nf-core/minimap2/align/tests/tags.yml | 2 + .../nf-core/minimap2/index/environment.yml | 7 + modules/nf-core/minimap2/index/main.nf | 44 ++ modules/nf-core/minimap2/index/meta.yml | 43 ++ .../nf-core/minimap2/index/tests/main.nf.test | 32 ++ .../minimap2/index/tests/main.nf.test.snap | 68 +++ modules/nf-core/minimap2/index/tests/tags.yml | 2 + workflows/scnanoseq.nf | 74 +-- 17 files changed, 1325 insertions(+), 147 deletions(-) delete mode 100644 modules/local/minimap2_align.nf delete mode 100644 modules/local/minimap2_index.nf create mode 100644 modules/nf-core/minimap2/align/environment.yml create mode 100644 modules/nf-core/minimap2/align/main.nf create mode 100644 modules/nf-core/minimap2/align/meta.yml create mode 100644 modules/nf-core/minimap2/align/tests/main.nf.test create mode 100644 modules/nf-core/minimap2/align/tests/main.nf.test.snap create mode 100644 modules/nf-core/minimap2/align/tests/tags.yml create mode 100644 modules/nf-core/minimap2/index/environment.yml create mode 100644 modules/nf-core/minimap2/index/main.nf create mode 100644 modules/nf-core/minimap2/index/meta.yml create mode 100644 modules/nf-core/minimap2/index/tests/main.nf.test create mode 100644 modules/nf-core/minimap2/index/tests/main.nf.test.snap create mode 100644 modules/nf-core/minimap2/index/tests/tags.yml diff --git a/conf/modules.config b/conf/modules.config index 664af3f..ed5d0f7 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -258,17 +258,6 @@ process { } } -// PAFTOOLS -process { - withName: '.*:PAFTOOLS' { - publishDir = [ - path: { "${params.outdir}/references/paftools" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } -} - // MINIMAP2_INDEX if (!params.skip_save_minimap2_index) { process { @@ -468,16 +457,6 @@ process { // BAM PROCESSING // //////////////////// -// SAMTOOLS_VIEW_BAM -process { - withName:'.*:SAMTOOLS_VIEW_BAM' { - ext.args = "-h --output-fmt bam" - publishDir = [ - enabled: false - ] - } -} - // SAMTOOLS_VIEW_FILTER process { withName:'.*:SAMTOOLS_VIEW_FILTER' { diff --git a/modules.json b/modules.json index 6f0b053..4c059b2 100644 --- a/modules.json +++ b/modules.json @@ -35,6 +35,16 @@ "git_sha": "3a5fef109d113b4997c9822198664ca5f2716208", "installed_by": ["modules"] }, + "minimap2/align": { + "branch": "master", + "git_sha": "a33ef9475558c6b8da08c5f522ddaca1ec810306", + "installed_by": ["modules"] + }, + "minimap2/index": { + "branch": "master", + "git_sha": "72e277acfd9e61a9f1368eafb4a9e83f5bcaa9f5", + "installed_by": ["modules"] + }, "multiqc": { "branch": "master", "git_sha": "b7ebe95761cd389603f9cc0e0dc384c0f663815a", diff --git a/modules/local/minimap2_align.nf b/modules/local/minimap2_align.nf deleted file mode 100644 index 11f6936..0000000 --- a/modules/local/minimap2_align.nf +++ /dev/null @@ -1,39 +0,0 @@ -process MINIMAP2_ALIGN { - tag "$meta.id" - label 'process_medium' - - conda "bioconda::minimap2=2.24" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/minimap2:2.24--h5bf99c6_0': - 'biocontainers/minimap2:2.24--h5bf99c6_0' }" - - input: - tuple val(meta), path(fastq) - path bed - path reference - - output: - tuple val(meta), path("*.sam"), emit: sam - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}" - def junctions = "--junc-bed ${bed}" - """ - minimap2 \\ - $args \\ - $junctions \\ - -t $task.cpus \\ - $reference \\ - $fastq > ${meta.id}.sam - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - minimap2: \$(minimap2 --version 2>&1) - END_VERSIONS - """ -} diff --git a/modules/local/minimap2_index.nf b/modules/local/minimap2_index.nf deleted file mode 100644 index 9d3e7bc..0000000 --- a/modules/local/minimap2_index.nf +++ /dev/null @@ -1,40 +0,0 @@ -process MINIMAP2_INDEX { - tag "$fasta" - label 'process_medium' - - conda "bioconda::minimap2=2.24" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/minimap2:2.24--h5bf99c6_0': - 'biocontainers/minimap2:2.24--h5bf99c6_0' }" - - input: - path fasta - path bed - - output: - path "*.mmi" , emit: index - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - // TODO: see if there is a better way of including additional - // input (e.g.: bed / junctions), so we can use the module in nf-core rather than local - - script: - def args = task.ext.args ?: '' - def junctions = "--junc-bed ${bed}" - """ - minimap2 \\ - $args \\ - $junctions \\ - -t $task.cpus \\ - -d ${fasta}.mmi \\ - $fasta - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - minimap2: \$(minimap2 --version 2>&1) - END_VERSIONS - """ -} diff --git a/modules/nf-core/minimap2/align/environment.yml b/modules/nf-core/minimap2/align/environment.yml new file mode 100644 index 0000000..41e8fe9 --- /dev/null +++ b/modules/nf-core/minimap2/align/environment.yml @@ -0,0 +1,11 @@ +name: minimap2_align + +channels: + - conda-forge + - bioconda + - defaults + +dependencies: + - bioconda::htslib=1.20 + - bioconda::minimap2=2.28 + - bioconda::samtools=1.20 diff --git a/modules/nf-core/minimap2/align/main.nf b/modules/nf-core/minimap2/align/main.nf new file mode 100644 index 0000000..d82dc14 --- /dev/null +++ b/modules/nf-core/minimap2/align/main.nf @@ -0,0 +1,78 @@ +process MINIMAP2_ALIGN { + tag "$meta.id" + label 'process_high' + + // Note: the versions here need to match the versions used in the mulled container below and minimap2/index + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/mulled-v2-66534bcbb7031a148b13e2ad42583020b9cd25c4:3161f532a5ea6f1dec9be5667c9efc2afdac6104-0' : + 'biocontainers/mulled-v2-66534bcbb7031a148b13e2ad42583020b9cd25c4:3161f532a5ea6f1dec9be5667c9efc2afdac6104-0' }" + + input: + tuple val(meta), path(reads) + tuple val(meta2), path(reference) + val bam_format + val bam_index_extension + val cigar_paf_format + val cigar_bam + + output: + tuple val(meta), path("*.paf") , optional: true, emit: paf + tuple val(meta), path("*.bam") , optional: true, emit: bam + tuple val(meta), path("*.bam.${bam_index_extension}"), optional: true, emit: index + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def args2 = task.ext.args2 ?: '' + def args3 = task.ext.args3 ?: '' + def args4 = task.ext.args4 ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + def bam_index = bam_index_extension ? "${prefix}.bam##idx##${prefix}.bam.${bam_index_extension} --write-index" : "${prefix}.bam" + def bam_output = bam_format ? "-a | samtools sort -@ ${task.cpus-1} -o ${bam_index} ${args2}" : "-o ${prefix}.paf" + def cigar_paf = cigar_paf_format && !bam_format ? "-c" : '' + def set_cigar_bam = cigar_bam && bam_format ? "-L" : '' + def bam_input = "${reads.extension}".matches('sam|bam|cram') + def samtools_reset_fastq = bam_input ? "samtools reset --threads ${task.cpus-1} $args3 $reads | samtools fastq --threads ${task.cpus-1} $args4 |" : '' + def query = bam_input ? "-" : reads + def target = reference ?: (bam_input ? error("BAM input requires reference") : reads) + + """ + $samtools_reset_fastq \\ + minimap2 \\ + $args \\ + -t $task.cpus \\ + $target \\ + $query \\ + $cigar_paf \\ + $set_cigar_bam \\ + $bam_output + + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + minimap2: \$(minimap2 --version 2>&1) + samtools: \$(echo \$(samtools --version 2>&1) | sed 's/^.*samtools //; s/Using.*\$//') + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + def output_file = bam_format ? "${prefix}.bam" : "${prefix}.paf" + def bam_index = bam_index_extension ? "touch ${prefix}.bam.${bam_index_extension}" : "" + def bam_input = "${reads.extension}".matches('sam|bam|cram') + def target = reference ?: (bam_input ? error("BAM input requires reference") : reads) + + """ + touch $output_file + ${bam_index} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + minimap2: \$(minimap2 --version 2>&1) + END_VERSIONS + """ +} diff --git a/modules/nf-core/minimap2/align/meta.yml b/modules/nf-core/minimap2/align/meta.yml new file mode 100644 index 0000000..8996f88 --- /dev/null +++ b/modules/nf-core/minimap2/align/meta.yml @@ -0,0 +1,84 @@ +name: minimap2_align +description: A versatile pairwise aligner for genomic and spliced nucleotide sequences +keywords: + - align + - fasta + - fastq + - genome + - paf + - reference +tools: + - minimap2: + description: | + A versatile pairwise aligner for genomic and spliced nucleotide sequences. + homepage: https://github.com/lh3/minimap2 + documentation: https://github.com/lh3/minimap2#uguide + licence: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - reads: + type: file + description: | + List of input FASTA or FASTQ files of size 1 and 2 for single-end + and paired-end data, respectively. + - meta2: + type: map + description: | + Groovy Map containing reference information + e.g. [ id:'test_ref'] + - reference: + type: file + description: | + Reference database in FASTA format. + - bam_format: + type: boolean + description: Specify that output should be in BAM format + - bam_index_extension: + type: string + description: BAM alignment index extension (e.g. "bai") + - cigar_paf_format: + type: boolean + description: Specify that output CIGAR should be in PAF format + - cigar_bam: + type: boolean + description: | + Write CIGAR with >65535 ops at the CG tag. This is recommended when + doing XYZ (https://github.com/lh3/minimap2#working-with-65535-cigar-operations) +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - paf: + type: file + description: Alignment in PAF format + pattern: "*.paf" + - bam: + type: file + description: Alignment in BAM format + pattern: "*.bam" + - index: + type: file + description: BAM alignment index + pattern: "*.bam.*" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@heuermh" + - "@sofstam" + - "@sateeshperi" + - "@jfy133" + - "@fellen31" +maintainers: + - "@heuermh" + - "@sofstam" + - "@sateeshperi" + - "@jfy133" + - "@fellen31" diff --git a/modules/nf-core/minimap2/align/tests/main.nf.test b/modules/nf-core/minimap2/align/tests/main.nf.test new file mode 100644 index 0000000..4072c17 --- /dev/null +++ b/modules/nf-core/minimap2/align/tests/main.nf.test @@ -0,0 +1,441 @@ +nextflow_process { + + name "Test Process MINIMAP2_ALIGN" + script "../main.nf" + process "MINIMAP2_ALIGN" + + tag "modules" + tag "modules_nfcore" + tag "minimap2" + tag "minimap2/align" + + test("sarscov2 - fastq, fasta, true, [], false, false") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) + ] + input[1] = [ + [ id:'test_ref' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = true + input[3] = [] + input[4] = false + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + bam(process.out.bam[0][1]).getHeader(), + bam(process.out.bam[0][1]).getReadsMD5(), + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - fastq, fasta, true, 'bai', false, false") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) + ] + input[1] = [ + [ id:'test_ref' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = true + input[3] = 'bai' + input[4] = false + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + bam(process.out.bam[0][1]).getHeader(), + bam(process.out.bam[0][1]).getReadsMD5(), + file(process.out.index[0][1]).name, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - [fastq1, fastq2], fasta, true, false, false") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:false ], // meta map + [ + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_2.fastq.gz', checkIfExists: true) + ] + ] + input[1] = [ + [ id:'test_ref' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = true + input[3] = [] + input[4] = false + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + bam(process.out.bam[0][1]).getHeader(), + bam(process.out.bam[0][1]).getReadsMD5(), + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - fastq, [], true, false, false") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true), + ] + input[1] = [ + [ id:'test_ref' ], // meta map + [] + ] + input[2] = true + input[3] = [] + input[4] = false + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + bam(process.out.bam[0][1]).getHeader(), + bam(process.out.bam[0][1]).getReadsMD5(), + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - bam, fasta, true, [], false, false") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test3.single_end.markduplicates.sorted.bam', checkIfExists: true) + ] + input[1] = [ + [ id:'test_ref' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = true + input[3] = [] + input[4] = false + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + bam(process.out.bam[0][1]).getHeader(), + bam(process.out.bam[0][1]).getReadsMD5(), + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - bam, fasta, true, 'bai', false, false") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test3.single_end.markduplicates.sorted.bam', checkIfExists: true) + ] + input[1] = [ + [ id:'test_ref' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = true + input[3] = 'bai' + input[4] = false + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot( + bam(process.out.bam[0][1]).getHeader(), + bam(process.out.bam[0][1]).getReadsMD5(), + file(process.out.index[0][1]).name, + process.out.versions + ).match() } + ) + } + + } + + test("sarscov2 - bam, [], true, false, false") { + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test3.single_end.markduplicates.sorted.bam', checkIfExists: true) + ] + input[1] = [ + [ id:'test_ref' ], // meta map + [] + ] + input[2] = true + input[3] = [] + input[4] = false + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.failed } + ) + } + + } + + test("sarscov2 - fastq, fasta, true, [], false, false - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) + ] + input[1] = [ + [ id:'test_ref' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = true + input[3] = [] + input[4] = false + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - fastq, fasta, true, 'bai', false, false - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) + ] + input[1] = [ + [ id:'test_ref' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = true + input[3] = 'bai' + input[4] = false + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - fastq, fasta, false, [], false, false - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) + ] + input[1] = [ + [ id:'test_ref' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = false + input[3] = [] + input[4] = false + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - bam, fasta, true, [], false, false - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test3.single_end.markduplicates.sorted.bam', checkIfExists: true) + ] + input[1] = [ + [ id:'test_ref' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = true + input[3] = [] + input[4] = false + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - bam, fasta, true, 'bai', false, false - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test3.single_end.markduplicates.sorted.bam', checkIfExists: true) + ] + input[1] = [ + [ id:'test_ref' ], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + input[2] = true + input[3] = 'bai' + input[4] = false + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + + } + + test("sarscov2 - bam, [], true, false, false - stub") { + + options "-stub" + + when { + process { + """ + input[0] = [ + [ id:'test', single_end:true ], // meta map + file(params.modules_testdata_base_path + 'genomics/homo_sapiens/illumina/bam/test3.single_end.markduplicates.sorted.bam', checkIfExists: true) + ] + input[1] = [ + [ id:'test_ref' ], // meta map + [] + ] + input[2] = true + input[3] = [] + input[4] = false + input[5] = false + """ + } + } + + then { + assertAll( + { assert process.failed } + ) + } + + } + +} \ No newline at end of file diff --git a/modules/nf-core/minimap2/align/tests/main.nf.test.snap b/modules/nf-core/minimap2/align/tests/main.nf.test.snap new file mode 100644 index 0000000..12264a8 --- /dev/null +++ b/modules/nf-core/minimap2/align/tests/main.nf.test.snap @@ -0,0 +1,476 @@ +{ + "sarscov2 - bam, fasta, true, 'bai', false, false": { + "content": [ + [ + "@HD\tVN:1.6\tSO:coordinate", + "@SQ\tSN:MT192765.1\tLN:29829", + "@PG\tID:minimap2\tPN:minimap2\tVN:2.28-r1209\tCL:minimap2 -t 2 -a genome.fasta -", + "@PG\tID:samtools\tPN:samtools\tPP:minimap2\tVN:1.20\tCL:samtools sort -@ 1 -o test.bam##idx##test.bam.bai --write-index" + ], + "5d426b9a5f5b2c54f1d7f1e4c238ae94", + "test.bam.bai", + [ + "versions.yml:md5,3548eeba9066efbf8d78ea99f8d813fd" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-07-25T09:03:00.827260362" + }, + "sarscov2 - bam, fasta, true, 'bai', false, false - stub": { + "content": [ + { + "0": [ + + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam.bai:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,98b8f5f36aa54b82210094f0b0d11938" + ], + "bam": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "index": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam.bai:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "paf": [ + + ], + "versions": [ + "versions.yml:md5,98b8f5f36aa54b82210094f0b0d11938" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-07-23T11:21:37.92353539" + }, + "sarscov2 - fastq, fasta, true, 'bai', false, false - stub": { + "content": [ + { + "0": [ + + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam.bai:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "3": [ + "versions.yml:md5,98b8f5f36aa54b82210094f0b0d11938" + ], + "bam": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "index": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam.bai:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "paf": [ + + ], + "versions": [ + "versions.yml:md5,98b8f5f36aa54b82210094f0b0d11938" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-03T11:29:44.669021368" + }, + "sarscov2 - fastq, fasta, false, [], false, false - stub": { + "content": [ + { + "0": [ + [ + { + "id": "test", + "single_end": true + }, + "test.paf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "1": [ + + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,98b8f5f36aa54b82210094f0b0d11938" + ], + "bam": [ + + ], + "index": [ + + ], + "paf": [ + [ + { + "id": "test", + "single_end": true + }, + "test.paf:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "versions": [ + "versions.yml:md5,98b8f5f36aa54b82210094f0b0d11938" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-03T11:15:52.738781039" + }, + "sarscov2 - fastq, fasta, true, [], false, false - stub": { + "content": [ + { + "0": [ + + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,98b8f5f36aa54b82210094f0b0d11938" + ], + "bam": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "index": [ + + ], + "paf": [ + + ], + "versions": [ + "versions.yml:md5,98b8f5f36aa54b82210094f0b0d11938" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-06-03T11:15:23.033808223" + }, + "sarscov2 - [fastq1, fastq2], fasta, true, false, false": { + "content": [ + [ + "@HD\tVN:1.6\tSO:coordinate", + "@SQ\tSN:MT192765.1\tLN:29829", + "@PG\tID:minimap2\tPN:minimap2\tVN:2.28-r1209\tCL:minimap2 -t 2 -a genome.fasta test_1.fastq.gz test_2.fastq.gz", + "@PG\tID:samtools\tPN:samtools\tPP:minimap2\tVN:1.20\tCL:samtools sort -@ 1 -o test.bam" + ], + "1bc392244f228bf52cf0b5a8f6a654c9", + [ + "versions.yml:md5,3548eeba9066efbf8d78ea99f8d813fd" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-07-23T11:18:18.964586894" + }, + "sarscov2 - fastq, fasta, true, [], false, false": { + "content": [ + [ + "@HD\tVN:1.6\tSO:coordinate", + "@SQ\tSN:MT192765.1\tLN:29829", + "@PG\tID:minimap2\tPN:minimap2\tVN:2.28-r1209\tCL:minimap2 -t 2 -a genome.fasta test_1.fastq.gz", + "@PG\tID:samtools\tPN:samtools\tPP:minimap2\tVN:1.20\tCL:samtools sort -@ 1 -o test.bam" + ], + "f194745c0ccfcb2a9c0aee094a08750", + [ + "versions.yml:md5,3548eeba9066efbf8d78ea99f8d813fd" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-07-23T11:17:48.667488325" + }, + "sarscov2 - fastq, fasta, true, 'bai', false, false": { + "content": [ + [ + "@HD\tVN:1.6\tSO:coordinate", + "@SQ\tSN:MT192765.1\tLN:29829", + "@PG\tID:minimap2\tPN:minimap2\tVN:2.28-r1209\tCL:minimap2 -t 2 -a genome.fasta test_1.fastq.gz", + "@PG\tID:samtools\tPN:samtools\tPP:minimap2\tVN:1.20\tCL:samtools sort -@ 1 -o test.bam##idx##test.bam.bai --write-index" + ], + "f194745c0ccfcb2a9c0aee094a08750", + "test.bam.bai", + [ + "versions.yml:md5,3548eeba9066efbf8d78ea99f8d813fd" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-07-23T11:18:02.517416733" + }, + "sarscov2 - bam, fasta, true, [], false, false": { + "content": [ + [ + "@HD\tVN:1.6\tSO:coordinate", + "@SQ\tSN:MT192765.1\tLN:29829", + "@PG\tID:minimap2\tPN:minimap2\tVN:2.28-r1209\tCL:minimap2 -t 2 -a genome.fasta -", + "@PG\tID:samtools\tPN:samtools\tPP:minimap2\tVN:1.20\tCL:samtools sort -@ 1 -o test.bam" + ], + "5d426b9a5f5b2c54f1d7f1e4c238ae94", + [ + "versions.yml:md5,3548eeba9066efbf8d78ea99f8d813fd" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-07-25T09:02:49.64829488" + }, + "sarscov2 - bam, fasta, true, [], false, false - stub": { + "content": [ + { + "0": [ + + ], + "1": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "2": [ + + ], + "3": [ + "versions.yml:md5,98b8f5f36aa54b82210094f0b0d11938" + ], + "bam": [ + [ + { + "id": "test", + "single_end": true + }, + "test.bam:md5,d41d8cd98f00b204e9800998ecf8427e" + ] + ], + "index": [ + + ], + "paf": [ + + ], + "versions": [ + "versions.yml:md5,98b8f5f36aa54b82210094f0b0d11938" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-07-23T11:21:22.162291795" + }, + "sarscov2 - fastq, [], true, false, false": { + "content": [ + [ + "@HD\tVN:1.6\tSO:coordinate", + "@SQ\tSN:ERR5069949.2151832\tLN:150", + "@SQ\tSN:ERR5069949.576388\tLN:77", + "@SQ\tSN:ERR5069949.501486\tLN:146", + "@SQ\tSN:ERR5069949.1331889\tLN:132", + "@SQ\tSN:ERR5069949.2161340\tLN:80", + "@SQ\tSN:ERR5069949.973930\tLN:79", + "@SQ\tSN:ERR5069949.2417063\tLN:150", + "@SQ\tSN:ERR5069949.376959\tLN:151", + "@SQ\tSN:ERR5069949.1088785\tLN:149", + "@SQ\tSN:ERR5069949.1066259\tLN:147", + "@SQ\tSN:ERR5069949.2832676\tLN:139", + "@SQ\tSN:ERR5069949.2953930\tLN:151", + "@SQ\tSN:ERR5069949.324865\tLN:151", + "@SQ\tSN:ERR5069949.2185111\tLN:150", + "@SQ\tSN:ERR5069949.937422\tLN:151", + "@SQ\tSN:ERR5069949.2431709\tLN:150", + "@SQ\tSN:ERR5069949.1246538\tLN:148", + "@SQ\tSN:ERR5069949.1189252\tLN:98", + "@SQ\tSN:ERR5069949.2216307\tLN:147", + "@SQ\tSN:ERR5069949.3273002\tLN:148", + "@SQ\tSN:ERR5069949.3277445\tLN:151", + "@SQ\tSN:ERR5069949.3022231\tLN:147", + "@SQ\tSN:ERR5069949.184542\tLN:151", + "@SQ\tSN:ERR5069949.540529\tLN:149", + "@SQ\tSN:ERR5069949.686090\tLN:150", + "@SQ\tSN:ERR5069949.2787556\tLN:106", + "@SQ\tSN:ERR5069949.2650879\tLN:150", + "@SQ\tSN:ERR5069949.2064910\tLN:149", + "@SQ\tSN:ERR5069949.2328704\tLN:150", + "@SQ\tSN:ERR5069949.1067032\tLN:150", + "@SQ\tSN:ERR5069949.3338256\tLN:151", + "@SQ\tSN:ERR5069949.1412839\tLN:147", + "@SQ\tSN:ERR5069949.1538968\tLN:150", + "@SQ\tSN:ERR5069949.147998\tLN:94", + "@SQ\tSN:ERR5069949.366975\tLN:106", + "@SQ\tSN:ERR5069949.1372331\tLN:151", + "@SQ\tSN:ERR5069949.1709367\tLN:129", + "@SQ\tSN:ERR5069949.2388984\tLN:150", + "@SQ\tSN:ERR5069949.1132353\tLN:150", + "@SQ\tSN:ERR5069949.1151736\tLN:151", + "@SQ\tSN:ERR5069949.479807\tLN:150", + "@SQ\tSN:ERR5069949.2176303\tLN:151", + "@SQ\tSN:ERR5069949.2772897\tLN:151", + "@SQ\tSN:ERR5069949.1020777\tLN:122", + "@SQ\tSN:ERR5069949.465452\tLN:151", + "@SQ\tSN:ERR5069949.1704586\tLN:149", + "@SQ\tSN:ERR5069949.1258508\tLN:151", + "@SQ\tSN:ERR5069949.986441\tLN:119", + "@SQ\tSN:ERR5069949.2674295\tLN:148", + "@SQ\tSN:ERR5069949.885966\tLN:79", + "@SQ\tSN:ERR5069949.2342766\tLN:151", + "@SQ\tSN:ERR5069949.3122970\tLN:127", + "@SQ\tSN:ERR5069949.3279513\tLN:72", + "@SQ\tSN:ERR5069949.309410\tLN:151", + "@SQ\tSN:ERR5069949.532979\tLN:149", + "@SQ\tSN:ERR5069949.2888794\tLN:151", + "@SQ\tSN:ERR5069949.2205229\tLN:150", + "@SQ\tSN:ERR5069949.786562\tLN:151", + "@SQ\tSN:ERR5069949.919671\tLN:151", + "@SQ\tSN:ERR5069949.1328186\tLN:151", + "@SQ\tSN:ERR5069949.870926\tLN:149", + "@SQ\tSN:ERR5069949.2257580\tLN:151", + "@SQ\tSN:ERR5069949.3249622\tLN:77", + "@SQ\tSN:ERR5069949.611123\tLN:125", + "@SQ\tSN:ERR5069949.651338\tLN:142", + "@SQ\tSN:ERR5069949.169513\tLN:92", + "@SQ\tSN:ERR5069949.155944\tLN:150", + "@SQ\tSN:ERR5069949.2033605\tLN:150", + "@SQ\tSN:ERR5069949.2730382\tLN:142", + "@SQ\tSN:ERR5069949.2125592\tLN:150", + "@SQ\tSN:ERR5069949.1062611\tLN:151", + "@SQ\tSN:ERR5069949.1778133\tLN:151", + "@SQ\tSN:ERR5069949.3057020\tLN:95", + "@SQ\tSN:ERR5069949.2972968\tLN:141", + "@SQ\tSN:ERR5069949.2734474\tLN:149", + "@SQ\tSN:ERR5069949.856527\tLN:151", + "@SQ\tSN:ERR5069949.2098070\tLN:151", + "@SQ\tSN:ERR5069949.1552198\tLN:150", + "@SQ\tSN:ERR5069949.2385514\tLN:150", + "@SQ\tSN:ERR5069949.2270078\tLN:151", + "@SQ\tSN:ERR5069949.114870\tLN:150", + "@SQ\tSN:ERR5069949.2668880\tLN:147", + "@SQ\tSN:ERR5069949.257821\tLN:139", + "@SQ\tSN:ERR5069949.2243023\tLN:150", + "@SQ\tSN:ERR5069949.2605155\tLN:146", + "@SQ\tSN:ERR5069949.1340552\tLN:151", + "@SQ\tSN:ERR5069949.1561137\tLN:150", + "@SQ\tSN:ERR5069949.2361683\tLN:149", + "@SQ\tSN:ERR5069949.2521353\tLN:150", + "@SQ\tSN:ERR5069949.1261808\tLN:149", + "@SQ\tSN:ERR5069949.2734873\tLN:98", + "@SQ\tSN:ERR5069949.3017828\tLN:107", + "@SQ\tSN:ERR5069949.573706\tLN:150", + "@SQ\tSN:ERR5069949.1980512\tLN:151", + "@SQ\tSN:ERR5069949.1014693\tLN:150", + "@SQ\tSN:ERR5069949.3184655\tLN:150", + "@SQ\tSN:ERR5069949.29668\tLN:89", + "@SQ\tSN:ERR5069949.3258358\tLN:151", + "@SQ\tSN:ERR5069949.1476386\tLN:151", + "@SQ\tSN:ERR5069949.2415814\tLN:150", + "@PG\tID:minimap2\tPN:minimap2\tVN:2.28-r1209\tCL:minimap2 -t 2 -a test_1.fastq.gz test_1.fastq.gz", + "@PG\tID:samtools\tPN:samtools\tPP:minimap2\tVN:1.20\tCL:samtools sort -@ 1 -o test.bam" + ], + "16c1c651f8ec67383bcdee3c55aed94f", + [ + "versions.yml:md5,3548eeba9066efbf8d78ea99f8d813fd" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.2" + }, + "timestamp": "2024-07-23T11:18:34.246998277" + } +} \ No newline at end of file diff --git a/modules/nf-core/minimap2/align/tests/tags.yml b/modules/nf-core/minimap2/align/tests/tags.yml new file mode 100644 index 0000000..39dba37 --- /dev/null +++ b/modules/nf-core/minimap2/align/tests/tags.yml @@ -0,0 +1,2 @@ +minimap2/align: + - "modules/nf-core/minimap2/align/**" diff --git a/modules/nf-core/minimap2/index/environment.yml b/modules/nf-core/minimap2/index/environment.yml new file mode 100644 index 0000000..8a912a1 --- /dev/null +++ b/modules/nf-core/minimap2/index/environment.yml @@ -0,0 +1,7 @@ +name: minimap2_index +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda::minimap2=2.28 diff --git a/modules/nf-core/minimap2/index/main.nf b/modules/nf-core/minimap2/index/main.nf new file mode 100644 index 0000000..3832021 --- /dev/null +++ b/modules/nf-core/minimap2/index/main.nf @@ -0,0 +1,44 @@ +process MINIMAP2_INDEX { + label 'process_low' + + // Note: the versions here need to match the versions used in minimap2/align + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/minimap2:2.28--he4a0461_0' : + 'biocontainers/minimap2:2.28--he4a0461_0' }" + + input: + tuple val(meta), path(fasta) + + output: + tuple val(meta), path("*.mmi"), emit: index + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + """ + minimap2 \\ + -t $task.cpus \\ + -d ${fasta.baseName}.mmi \\ + $args \\ + $fasta + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + minimap2: \$(minimap2 --version 2>&1) + END_VERSIONS + """ + + stub: + """ + touch ${fasta.baseName}.mmi + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + minimap2: \$(minimap2 --version 2>&1) + END_VERSIONS + """ +} diff --git a/modules/nf-core/minimap2/index/meta.yml b/modules/nf-core/minimap2/index/meta.yml new file mode 100644 index 0000000..1d29e3f --- /dev/null +++ b/modules/nf-core/minimap2/index/meta.yml @@ -0,0 +1,43 @@ +name: minimap2_index +description: Provides fasta index required by minimap2 alignment. +keywords: + - index + - fasta + - reference +tools: + - minimap2: + description: | + A versatile pairwise aligner for genomic and spliced nucleotide sequences. + homepage: https://github.com/lh3/minimap2 + documentation: https://github.com/lh3/minimap2#uguide + licence: ["MIT"] +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - fasta: + type: file + description: | + Reference database in FASTA format. +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. [ id:'test', single_end:false ] + - index: + type: file + description: Minimap2 fasta index. + pattern: "*.mmi" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" +authors: + - "@yuukiiwa" + - "@drpatelh" +maintainers: + - "@yuukiiwa" + - "@drpatelh" diff --git a/modules/nf-core/minimap2/index/tests/main.nf.test b/modules/nf-core/minimap2/index/tests/main.nf.test new file mode 100644 index 0000000..97840ff --- /dev/null +++ b/modules/nf-core/minimap2/index/tests/main.nf.test @@ -0,0 +1,32 @@ +nextflow_process { + + name "Test Process MINIMAP2_INDEX" + script "../main.nf" + process "MINIMAP2_INDEX" + + tag "modules" + tag "modules_nfcore" + tag "minimap2" + tag "minimap2/index" + + test("minimap2 index") { + + when { + process { + """ + input[0] = [ + [ id:'test' ], + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + + then { + assert process.success + assert snapshot(process.out).match() + } + + } + +} \ No newline at end of file diff --git a/modules/nf-core/minimap2/index/tests/main.nf.test.snap b/modules/nf-core/minimap2/index/tests/main.nf.test.snap new file mode 100644 index 0000000..0b09882 --- /dev/null +++ b/modules/nf-core/minimap2/index/tests/main.nf.test.snap @@ -0,0 +1,68 @@ +{ + "Should run without failures": { + "content": [ + { + "0": [ + [ + { + "id": "test_ref" + }, + "genome.mmi:md5,72e450f12dc691e763c697463bdb1571" + ] + ], + "1": [ + "versions.yml:md5,0fced0ee8015e7f50b82566e3db8f7b0" + ], + "index": [ + [ + { + "id": "test_ref" + }, + "genome.mmi:md5,72e450f12dc691e763c697463bdb1571" + ] + ], + "versions": [ + "versions.yml:md5,0fced0ee8015e7f50b82566e3db8f7b0" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-03-18T11:46:30.000058092" + }, + "minimap2 index": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "genome.mmi:md5,72e450f12dc691e763c697463bdb1571" + ] + ], + "1": [ + "versions.yml:md5,2f8340380c6741e9261a284262a90bde" + ], + "index": [ + [ + { + "id": "test" + }, + "genome.mmi:md5,72e450f12dc691e763c697463bdb1571" + ] + ], + "versions": [ + "versions.yml:md5,2f8340380c6741e9261a284262a90bde" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "23.10.1" + }, + "timestamp": "2024-04-05T10:58:29.828187662" + } +} \ No newline at end of file diff --git a/modules/nf-core/minimap2/index/tests/tags.yml b/modules/nf-core/minimap2/index/tests/tags.yml new file mode 100644 index 0000000..e5ef8e1 --- /dev/null +++ b/modules/nf-core/minimap2/index/tests/tags.yml @@ -0,0 +1,2 @@ +minimap2/index: + - modules/nf-core/minimap2/index/** diff --git a/workflows/scnanoseq.nf b/workflows/scnanoseq.nf index fc2326b..aa2ec93 100644 --- a/workflows/scnanoseq.nf +++ b/workflows/scnanoseq.nf @@ -49,9 +49,6 @@ include { PIGZ as ZIP_TRIM } from "../mo include { BLAZE } from "../modules/local/blaze" include { PREEXTRACT_FASTQ } from "../modules/local/preextract_fastq.nf" include { READ_COUNTS } from "../modules/local/read_counts.nf" -include { PAFTOOLS } from "../modules/local/paftools" -include { MINIMAP2_INDEX } from "../modules/local/minimap2_index" -include { MINIMAP2_ALIGN } from "../modules/local/minimap2_align" include { TAG_BARCODES } from "../modules/local/tag_barcodes" include { CORRECT_BARCODES } from "../modules/local/correct_barcodes" include { ISOQUANT } from "../modules/local/isoquant" @@ -77,36 +74,37 @@ include { PREPARE_REFERENCE_FILES } from "../subworkflows/local/prepare_referenc // MODULE: Installed directly from nf-core/modules // include { GUNZIP } from "../modules/nf-core/gunzip/main" -include { MULTIQC as MULTIQC_RAWQC } from '../modules/nf-core/multiqc/main' -include { MULTIQC as MULTIQC_FINALQC } from '../modules/nf-core/multiqc/main' -include { CUSTOM_DUMPSOFTWAREVERSIONS } from '../modules/nf-core/custom/dumpsoftwareversions/main' -include { UMITOOLS_DEDUP } from '../modules/nf-core/umitools/dedup/main' -include { SAMTOOLS_VIEW as SAMTOOLS_VIEW_BAM } from "../modules/nf-core/samtools/view/main" +include { MULTIQC as MULTIQC_RAWQC } from "../modules/nf-core/multiqc/main" +include { MULTIQC as MULTIQC_FINALQC } from "../modules/nf-core/multiqc/main" +include { CUSTOM_DUMPSOFTWAREVERSIONS } from "../modules/nf-core/custom/dumpsoftwareversions/main" +include { UMITOOLS_DEDUP } from "../modules/nf-core/umitools/dedup/main" include { SAMTOOLS_VIEW as SAMTOOLS_VIEW_FILTER } from "../modules/nf-core/samtools/view/main" include { CAT_CAT } from "../modules/nf-core/cat/cat/main" include { CAT_CAT as CAT_CAT_PREEXTRACT } from "../modules/nf-core/cat/cat/main" include { CAT_CAT as CAT_CAT_BARCODE } from "../modules/nf-core/cat/cat/main" -include { CAT_FASTQ } from '../modules/nf-core/cat/fastq/main' -include { RSEQC_READDISTRIBUTION } from '../modules/nf-core/rseqc/readdistribution/main' -include { BAMTOOLS_SPLIT } from '../modules/nf-core/bamtools/split/main' -include { SAMTOOLS_MERGE } from '../modules/nf-core/samtools/merge/main' -include { paramsSummaryMap } from 'plugin/nf-validation' +include { CAT_FASTQ } from "../modules/nf-core/cat/fastq/main" +include { MINIMAP2_INDEX } from "../modules/nf-core/minimap2/index/main" +include { MINIMAP2_ALIGN } from "../modules/nf-core/minimap2/align/main" +include { RSEQC_READDISTRIBUTION } from "../modules/nf-core/rseqc/readdistribution/main" +include { BAMTOOLS_SPLIT } from "../modules/nf-core/bamtools/split/main" +include { SAMTOOLS_MERGE } from "../modules/nf-core/samtools/merge/main" +include { paramsSummaryMap } from "plugin/nf-validation" /* * SUBWORKFLOW: Consisting entirely of nf-core/modules */ -include { QCFASTQ_NANOPLOT_FASTQC as FASTQC_NANOPLOT_PRE_TRIM } from '../subworkflows/nf-core/qcfastq_nanoplot_fastqc' -include { QCFASTQ_NANOPLOT_FASTQC as FASTQC_NANOPLOT_POST_TRIM } from '../subworkflows/nf-core/qcfastq_nanoplot_fastqc' -include { QCFASTQ_NANOPLOT_FASTQC as FASTQC_NANOPLOT_POST_EXTRACT } from '../subworkflows/nf-core/qcfastq_nanoplot_fastqc' +include { QCFASTQ_NANOPLOT_FASTQC as FASTQC_NANOPLOT_PRE_TRIM } from "../subworkflows/nf-core/qcfastq_nanoplot_fastqc" +include { QCFASTQ_NANOPLOT_FASTQC as FASTQC_NANOPLOT_POST_TRIM } from "../subworkflows/nf-core/qcfastq_nanoplot_fastqc" +include { QCFASTQ_NANOPLOT_FASTQC as FASTQC_NANOPLOT_POST_EXTRACT } from "../subworkflows/nf-core/qcfastq_nanoplot_fastqc" include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_MINIMAP } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_FILTERED } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_TAGGED } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_CORRECTED } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_SPLIT } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" include { BAM_SORT_STATS_SAMTOOLS as BAM_SORT_STATS_SAMTOOLS_DEDUP } from "../subworkflows/nf-core/bam_sort_stats_samtools/main" -include { paramsSummaryMultiqc } from '../subworkflows/nf-core/utils_nfcore_pipeline' -include { softwareVersionsToYAML } from '../subworkflows/nf-core/utils_nfcore_pipeline' -include { methodsDescriptionText } from '../subworkflows/local/utils_nfcore_scnanoseq_pipeline' +include { paramsSummaryMultiqc } from "../subworkflows/nf-core/utils_nfcore_pipeline" +include { softwareVersionsToYAML } from "../subworkflows/nf-core/utils_nfcore_pipeline" +include { methodsDescriptionText } from "../subworkflows/local/utils_nfcore_scnanoseq_pipeline" /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -195,19 +193,10 @@ workflow SCNANOSEQ { ch_versions = ch_versions.mix( PREPARE_REFERENCE_FILES.out.versions ) - // - // MODULE: Generate junction file - paftools - // - - PAFTOOLS ( gtf.map { meta, gtf -> [gtf]} ) - ch_bed = PAFTOOLS.out.bed - ch_versions = ch_versions.mix(PAFTOOLS.out.versions) - // // MODULE: Generate bed file from input gtf for rseqc // - //TODO: This uses params.gtf instead of gtf in PAFTOOLS // come back to this once intron work is finished (likely input will be fine) ch_pred = Channel.empty() ch_rseqc_bed = Channel.empty() @@ -392,10 +381,11 @@ workflow SCNANOSEQ { // // MINIMAP2_INDEX // + ch_minimap_ref = fasta if (!params.skip_save_minimap2_index) { - MINIMAP2_INDEX ( fasta.map { meta, fasta -> [fasta]}, ch_bed) - ch_minimap_index = MINIMAP2_INDEX.out.index + MINIMAP2_INDEX ( fasta ) + ch_minimap_ref = MINIMAP2_INDEX.out.index ch_versions = ch_versions.mix(MINIMAP2_INDEX.out.versions) } @@ -403,25 +393,15 @@ workflow SCNANOSEQ { // MINIMAP2_ALIGN // - if (!params.skip_save_minimap2_index) { - ch_reference = ch_minimap_index.toList() - } else { - ch_reference = Channel.fromPath(fasta, checkIfExists: true).toList() - } - MINIMAP2_ALIGN ( ch_extracted_fastq, ch_bed, ch_reference ) + MINIMAP2_ALIGN ( ch_extracted_fastq, + ch_minimap_ref, + true, + "bai", + "", + "") ch_versions = ch_versions.mix(MINIMAP2_ALIGN.out.versions) - MINIMAP2_ALIGN.out.sam - .combine( ch_dummy_file ) - .set { ch_minimap_sam } - - // - // MODULE: Samtools view - // - SAMTOOLS_VIEW_BAM ( ch_minimap_sam, [[],[]], [] ) - - ch_minimap_bam = SAMTOOLS_VIEW_BAM.out.bam - ch_versions = ch_versions.mix(SAMTOOLS_VIEW_BAM.out.versions) + ch_minimap_bam = MINIMAP2_ALIGN.out.bam // acquire only mapped reads from bam for downstream processing // NOTE: some QCs steps are performed on the full BAM From e51e864542e633558d4b0aac7fb77c65ee759ef5 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Wed, 14 Aug 2024 12:32:21 -0500 Subject: [PATCH 13/35] Removing local paftools module --- modules/local/paftools.nf | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 modules/local/paftools.nf diff --git a/modules/local/paftools.nf b/modules/local/paftools.nf deleted file mode 100644 index 9555ac3..0000000 --- a/modules/local/paftools.nf +++ /dev/null @@ -1,35 +0,0 @@ -process PAFTOOLS { - tag "$gtf" - label 'process_low' - - conda "bioconda::minimap2=2.24" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/minimap2:2.24--h5bf99c6_0': - 'biocontainers/minimap2:2.24--h5bf99c6_0' }" - - input: - path gtf - - output: - path "*.bed" , emit: bed - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - - """ - paftools.js gff2bed \\ - $args \\ - $gtf > ${gtf.baseName}.bed - - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - minimap2: \$(minimap2 --version 2>&1) - END_VERSIONS - """ -} - From 22c10cc60d48f6fd067230a6c27b996cb31350f4 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Wed, 14 Aug 2024 13:06:49 -0500 Subject: [PATCH 14/35] Adding version output to read_counts process --- modules/local/read_counts.nf | 8 +++++++- workflows/scnanoseq.nf | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/local/read_counts.nf b/modules/local/read_counts.nf index b3fdd36..78e3f15 100644 --- a/modules/local/read_counts.nf +++ b/modules/local/read_counts.nf @@ -13,7 +13,8 @@ process READ_COUNTS { path correct_tsv output: - path "read_counts.csv" , emit: read_counts + path "read_counts.csv" , emit: read_counts + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when @@ -26,5 +27,10 @@ process READ_COUNTS { $args \\ --input ./ \\ --output read_counts.csv + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + perl: \$(perl --version | head -n2 | tail -n1 | sed -n 's/.*(v\\([^)]*\\)).*/\\1/p') + END_VERSIONS """ } diff --git a/workflows/scnanoseq.nf b/workflows/scnanoseq.nf index aa2ec93..6149022 100644 --- a/workflows/scnanoseq.nf +++ b/workflows/scnanoseq.nf @@ -375,6 +375,7 @@ workflow SCNANOSEQ { ch_corrected_bc_info.collect{it[1]}) ch_read_counts = READ_COUNTS.out.read_counts + ch_versions = ch_versions.mix(READ_COUNTS.out.versions) } } From a084083bd65a59862240e31805aa75ec608ad8b5 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Wed, 14 Aug 2024 14:48:47 -0500 Subject: [PATCH 15/35] Removing local nanocomp module in favor of nf-core module --- modules.json | 5 + modules/local/nanocomp.nf | 38 ------- modules/nf-core/nanocomp/environment.yml | 7 ++ modules/nf-core/nanocomp/main.nf | 137 +++++++++++++++++++++++ modules/nf-core/nanocomp/meta.yml | 106 ++++++++++++++++++ workflows/scnanoseq.nf | 38 ++++--- 6 files changed, 278 insertions(+), 53 deletions(-) delete mode 100644 modules/local/nanocomp.nf create mode 100644 modules/nf-core/nanocomp/environment.yml create mode 100755 modules/nf-core/nanocomp/main.nf create mode 100755 modules/nf-core/nanocomp/meta.yml diff --git a/modules.json b/modules.json index 4c059b2..7fe09a6 100644 --- a/modules.json +++ b/modules.json @@ -50,6 +50,11 @@ "git_sha": "b7ebe95761cd389603f9cc0e0dc384c0f663815a", "installed_by": ["modules"] }, + "nanocomp": { + "branch": "master", + "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", + "installed_by": ["modules"] + }, "nanoplot": { "branch": "master", "git_sha": "a31407dfaf0cb0d04768d5cb439fc6f4523a6981", diff --git a/modules/local/nanocomp.nf b/modules/local/nanocomp.nf deleted file mode 100644 index 48de180..0000000 --- a/modules/local/nanocomp.nf +++ /dev/null @@ -1,38 +0,0 @@ -process NANOCOMP { - label 'process_high' - - conda "bioconda::nanocomp=1.20.0" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/nanocomp:1.20.0--pyhdfd78af_0': - 'biocontainers/nanocomp:1.20.0--pyhdfd78af_0' }" - - input: - path(ont_files) - path(idx_files) - - output: - path "*.html" , emit: html - path "*.txt" , emit: txt - path "*.log" , emit: log - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - def input_files = ("$ont_files".contains(".fastq.gz") || "$ont_files".contains(".fq.gz")) ? "--fastq ${ont_files}" : - ("$ont_files".contains(".bam")) ? "--bam ${ont_files}" : '' - - """ - NanoComp \\ - $args \\ - -t $task.cpus \\ - $input_files - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - nanocomp: \$(echo \$(NanoComp --version 2>&1) | sed 's/^.*NanoComp //; s/ .*\$//') - END_VERSIONS - """ -} diff --git a/modules/nf-core/nanocomp/environment.yml b/modules/nf-core/nanocomp/environment.yml new file mode 100644 index 0000000..dc92191 --- /dev/null +++ b/modules/nf-core/nanocomp/environment.yml @@ -0,0 +1,7 @@ +name: nanocomp +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - bioconda:nanocomp=1.21.0 diff --git a/modules/nf-core/nanocomp/main.nf b/modules/nf-core/nanocomp/main.nf new file mode 100755 index 0000000..09d9832 --- /dev/null +++ b/modules/nf-core/nanocomp/main.nf @@ -0,0 +1,137 @@ +process NANOCOMP { + label 'process_medium' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/nanocomp:1.21.0--pyhdfd78af_0': + 'biocontainers/nanocomp:1.21.0--pyhdfd78af_0' }" + + input: + tuple val(meta), path(filelist) + + output: + tuple val(meta), path("*NanoComp-report.html"), emit: report_html + tuple val(meta), path("*NanoComp_lengths_violin.html"), emit: lengths_violin_html + tuple val(meta), path("*NanoComp_log_length_violin.html"), emit: log_length_violin_html + tuple val(meta), path("*NanoComp_N50.html"), emit: n50_html + tuple val(meta), path("*NanoComp_number_of_reads.html"), emit: number_of_reads_html + tuple val(meta), path("*NanoComp_OverlayHistogram.html"), emit: overlay_histogram_html + tuple val(meta), path("*NanoComp_OverlayHistogram_Normalized.html"), emit: overlay_histogram_normalized_html + tuple val(meta), path("*NanoComp_OverlayLogHistogram.html"), emit: overlay_log_histogram_html + tuple val(meta), path("*NanoComp_OverlayLogHistogram_Normalized.html"), emit: overlay_log_histogram_normalized_html + tuple val(meta), path("*NanoComp_total_throughput.html"), emit: total_throughput_html + tuple val(meta), path("*NanoComp_quals_violin.html"), emit: quals_violin_html, optional: true + tuple val(meta), path("*NanoComp_OverlayHistogram_Identity.html"), emit: overlay_histogram_identity_html, optional: true + tuple val(meta), path("*NanoComp_OverlayHistogram_PhredScore.html"), emit: overlay_histogram_phredscore_html, optional: true + tuple val(meta), path("*NanoComp_percentIdentity_violin.html"), emit: percent_identity_violin_html, optional: true + tuple val(meta), path("*NanoComp_ActivePoresOverTime.html"), emit: active_pores_over_time_html, optional: true + tuple val(meta), path("*NanoComp_CumulativeYieldPlot_Gigabases.html"), emit: cumulative_yield_plot_gigabases_html, optional: true + tuple val(meta), path("*NanoComp_sequencing_speed_over_time.html"), emit: sequencing_speed_over_time_html, optional: true + tuple val(meta), path("*NanoStats.txt"), emit: stats_txt + path "versions.yml", emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + def prefix = task.ext.prefix ?: "${meta.id}" + if (prefix == ""){ + prefixflag = "" + } else { + prefixflag = "--prefix " + prefix + } + + //determine input file type + filetypes = [] + for (file in filelist){ + tokenized_filename = file.getName().tokenize('.') + if (tokenized_filename.size() < 2){ + throw new java.lang.IndexOutOfBoundsException("Every input file to nanocomp has to have a file ending.") + } + + first_namepart = true + extension_found = false + + for (namepart in tokenized_filename){ + if (namepart == ""){ + continue + } + + // prevent the file name to be seen as extension + if (first_namepart == true){ + first_namepart = false + continue + } + + if (["fq","fastq"].contains(namepart)){ + filetypes.add("fastq") + extension_found = true + break + } else if (["fasta", "fna", "ffn", "faa", "frn", "fa"].contains(namepart)) { + filetypes.add("fasta") + extension_found = true + break + } else if (namepart == "bam") { + filetypes.add("bam") + extension_found = true + break + } else if (namepart == "txt") { + filetypes.add("summary") + extension_found = true + break + } + } + + if (extension_found == false){ + throw new java.lang.IllegalArgumentException("There was no suitable filetype found for " + file.getName() + + ". NanoComp only accepts fasta (fasta, fna, ffn, faa, frn, fa), fastq (fastq, fq), bam and Nanopore sequencing summary (txt).") + } + } + + filetypes.unique() + if (filetypes.size() < 1){ + throw new java.lang.IllegalArgumentException("There was no suitable filetype found in NanoComp input. Please use fasta, fastq, bam or Nanopore sequencing summary.") + } + if (filetypes.size() > 1){ + throw new java.lang.IllegalArgumentException("You gave different filetypes to NanoComp. Please use only *one* of fasta, fastq, bam or Nanopore sequencing summary.") + } + filetype = filetypes[0] + + """ + NanoComp \\ + --$filetype $filelist \\ + --threads $task.cpus \\ + $prefixflag \\ + $args + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + nanocomp: \$(echo \$(NanoComp --version 2>&1) | sed 's/^.*NanoComp //; s/Using.*\$//' )) + END_VERSIONS + """ + + stub: + def prefix = task.ext.prefix ?: "${meta.id}" + """ + touch versions.yml + touch "${prefix}"NanoComp_lengths_violin.html + touch "${prefix}"NanoComp_log_length_violin.html + touch "${prefix}"NanoComp_N50.html + touch "${prefix}"NanoComp_number_of_reads.html + touch "${prefix}"NanoComp_OverlayHistogram.html + touch "${prefix}"NanoComp_OverlayHistogram_Normalized.html + touch "${prefix}"NanoComp_OverlayLogHistogram.html + touch "${prefix}"NanoComp_OverlayLogHistogram_Normalized.html + touch "${prefix}"NanoComp-report.html + touch "${prefix}"NanoComp_total_throughput.html + touch "${prefix}"NanoComp_quals_violin.html + touch "${prefix}"NanoComp_OverlayHistogram_Identity.html + touch "${prefix}"NanoComp_OverlayHistogram_PhredScore.html + touch "${prefix}"NanoComp_percentIdentity_violin.html + touch "${prefix}"NanoComp_ActivePoresOverTime.html + touch "${prefix}"NanoComp_CumulativeYieldPlot_Gigabases.html + touch "${prefix}"NanoComp_sequencing_speed_over_time.html + touch "${prefix}"NanoStats.txt + """ +} diff --git a/modules/nf-core/nanocomp/meta.yml b/modules/nf-core/nanocomp/meta.yml new file mode 100755 index 0000000..366c88e --- /dev/null +++ b/modules/nf-core/nanocomp/meta.yml @@ -0,0 +1,106 @@ +name: "nanocomp" +description: Compare multiple runs of long read sequencing data and alignments +keywords: + - bam + - fasta + - fastq + - qc + - nanopore +tools: + - "nanocomp": + description: "Compare multiple runs of long read sequencing data and alignments" + homepage: "https://github.com/wdecoster/nanocomp" + documentation: "https://github.com/wdecoster/nanocomp" + licence: "MIT License" +input: + - meta: + type: map + description: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + - filelist: + type: file + description: List of all the files you want to compare, they have to be all the same filetype (either fastq, fasta, bam or Nanopore sequencing summary) + pattern: "*.{fastq,fq,fna,ffn,faa,frn,fa,fasta,txt,bam}" +output: + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + - meta: + type: map + description: Groovy Map containing sample information e.g. [ id:'test', single_end:false ] + - report_html: + type: file + description: Summary of all collected statistics + pattern: "*NanoComp-report.html" + - lengths_violin_html: + type: file + description: Violin plot of the sequence lengths + pattern: "*NanoComp_lengths_violin.html" + - log_length_violin_html: + type: file + description: Violin plot of the sequence lengths, log function applied + pattern: "*NanoComp_log_length_violin.html" + - n50_html: + type: file + description: Bar plot of N50 sequence length per sample + pattern: "*NanoComp_N50.html" + - number_of_reads_html: + type: file + description: Bar plot of number of reads per sample + pattern: "*NanoComp_number_of_reads.html" + - overlay_histogram_html: + type: file + description: Histogram of all read lengths per sample + pattern: "*NanoComp_OverlayHistogram.html" + - overlay_histogram_normalized_html: + type: file + description: Normalized histogram of all read lengths per sample + pattern: "*NanoComp_OverlayHistogram_Normalized.html" + - overlay_log_histogram_html: + type: file + description: Histogram of all read lengths per sample, log function applied + pattern: "*NanoComp_OverlayLogHistogram.html" + - overlay_log_histogram_normalized_html: + type: file + description: Normalized histogram of all read lengths per sample, log function applied + pattern: "*NanoComp_OverlayLogHistogram_Normalized.html" + - total_throughput_html: + type: file + description: Barplot comparing throughput in bases + pattern: "*NanoComp_total_throughput.html" + - quals_violin_html: + type: file + description: Violin plot of base qualities, only for bam, fastq and sequencing summary input + pattern: "*NanoComp_quals_violin.html" + - overlay_histogram_identity_html: + type: file + description: Histogram of perfect reference identity, only for bam input + pattern: "*NanoComp_OverlayHistogram_Identity.html" + - overlay_histogram_phredscore_html: + type: file + description: Histogram of phred scores, only for bam input + pattern: "*NanoComp_OverlayHistogram_PhredScore.html" + - percent_identity_violin_html: + type: file + description: Violin plot comparing perfect reference identity, only for bam input + pattern: "*NanoComp_percentIdentity_violin.html" + - active_pores_over_time_html: + type: file + description: Scatter plot of active pores over time, only for sequencing summary input + pattern: "*NanoComp_ActivePoresOverTime.html" + - cumulative_yield_plot_gigabases_html: + type: file + description: Scatter plot of cumulative yield, only for sequencing summary input + pattern: "*NanoComp_CumulativeYieldPlot_Gigabases.html" + - sequencing_speed_over_time_html: + type: file + description: Scatter plot of sequencing speed over time, only for sequencing summary input + pattern: "*NanoComp_sequencing_speed_over_time.html" + - stats_txt: + type: file + description: txt file with basic statistics + pattern: "*NanoStats.txt" +authors: + - "@paulwolk" +maintainers: + - "@paulwolk" diff --git a/workflows/scnanoseq.nf b/workflows/scnanoseq.nf index 6149022..65ee622 100644 --- a/workflows/scnanoseq.nf +++ b/workflows/scnanoseq.nf @@ -40,8 +40,6 @@ ch_dummy_file = Channel.fromPath("$projectDir/assets/dummy_file.txt", checkIfExi // include { NANOFILT } from "../modules/local/nanofilt" -include { NANOCOMP as NANOCOMP_FASTQ } from "../modules/local/nanocomp" -include { NANOCOMP as NANOCOMP_BAM } from "../modules/local/nanocomp" include { SPLIT_FILE } from "../modules/local/split_file" include { SPLIT_FILE as SPLIT_FILE_BC_FASTQ } from "../modules/local/split_file" include { SPLIT_FILE as SPLIT_FILE_BC_CSV } from "../modules/local/split_file" @@ -74,6 +72,8 @@ include { PREPARE_REFERENCE_FILES } from "../subworkflows/local/prepare_referenc // MODULE: Installed directly from nf-core/modules // include { GUNZIP } from "../modules/nf-core/gunzip/main" +include { NANOCOMP as NANOCOMP_FASTQ } from "../modules/nf-core/nanocomp/main" +include { NANOCOMP as NANOCOMP_BAM } from "../modules/nf-core/nanocomp/main" include { MULTIQC as MULTIQC_RAWQC } from "../modules/nf-core/multiqc/main" include { MULTIQC as MULTIQC_FINALQC } from "../modules/nf-core/multiqc/main" include { CUSTOM_DUMPSOFTWAREVERSIONS } from "../modules/nf-core/custom/dumpsoftwareversions/main" @@ -120,6 +120,7 @@ workflow SCNANOSEQ { main: ch_versions = Channel.empty() + ch_multiqc_report = Channel.empty() // // SUBWORKFLOW: Read in samplesheet, validate and stage input files @@ -168,10 +169,16 @@ workflow SCNANOSEQ { ch_nanocomp_fastq_txt = Channel.empty() if (!params.skip_qc && !params.skip_fastq_nanocomp) { - NANOCOMP_FASTQ ( ch_cat_fastq.collect{it[1]}, - ch_dummy_file ) - ch_nanocomp_fastq_html = NANOCOMP_FASTQ.out.html - ch_nanocomp_fastq_txt = NANOCOMP_FASTQ.out.txt + NANOCOMP_FASTQ ( + ch_cat_fastq + .collect{it[1]} + .map{ + [ [ 'id': 'nanocomp_fastq.' ] , it ] + } + ) + + ch_nanocomp_fastq_html = NANOCOMP_FASTQ.out.report_html + ch_nanocomp_fastq_txt = NANOCOMP_FASTQ.out.stats_txt ch_versions = ch_versions.mix( NANOCOMP_FASTQ.out.versions ) @@ -290,8 +297,6 @@ workflow SCNANOSEQ { ch_whitelist_bc_count = BLAZE.out.bc_count ch_versions = ch_versions.mix(BLAZE.out.versions) - ch_multiqc_report = Channel.empty() - ch_split_bc_fastqs = ch_trimmed_reads_combined ch_split_bc = ch_putative_bc if (params.split_amount > 0) { @@ -452,11 +457,17 @@ workflow SCNANOSEQ { if (!params.skip_qc && !params.skip_bam_nanocomp) { - NANOCOMP_BAM ( ch_minimap_sorted_bam.collect{it[1]}, - ch_minimap_sorted_bai.collect{it[1]}) + NANOCOMP_BAM ( + ch_minimap_sorted_bam + .collect{it[1]} + .map{ + [ [ 'id': 'nanocomp_bam.' ] , it ] + } - ch_nanocomp_bam_html = NANOCOMP_BAM.out.html - ch_nanocomp_bam_txt = NANOCOMP_BAM.out.txt + ) + + ch_nanocomp_bam_html = NANOCOMP_BAM.out.report_html + ch_nanocomp_bam_txt = NANOCOMP_BAM.out.stats_txt ch_versions = ch_versions.mix( NANOCOMP_BAM.out.versions ) } @@ -615,9 +626,6 @@ workflow SCNANOSEQ { ch_versions.unique().collectFile(name: 'collated_versions.yml') ) - ch_multiqc_report = Channel.empty() - ch_versions = Channel.empty() - if (!params.skip_qc && !params.skip_multiqc){ // From f3afd56a70ab408cdb6f9716cb042e71e7d16592 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Wed, 14 Aug 2024 14:49:12 -0500 Subject: [PATCH 16/35] Updating seurat image --- docs/images/seurat.png | Bin 88851 -> 92378 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/seurat.png b/docs/images/seurat.png index e547b9e9993bf0a7c1f17fc45805b4d341ab301e..2ca6ec210f7a16609d1f7c488ee3ddd6f8089e29 100644 GIT binary patch literal 92378 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 HY0&=y(*7m# literal 88851 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


^E)>X){XXU!c`}n;&iFuho=6WPf^~ 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 Date: Wed, 14 Aug 2024 14:58:37 -0500 Subject: [PATCH 17/35] Updating BLAZE citation --- CITATIONS.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CITATIONS.md b/CITATIONS.md index 3e3c488..e5802f9 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -10,9 +10,9 @@ ## Pipeline tools -- [BLAZE](https://www.biorxiv.org/content/10.1101/2022.08.16.504056v1) +- [BLAZE](https://pubmed.ncbi.nlm.nih.gov/37024980/) - > You Y, Prawer Y D, De Paoli-Iseppi R, Hunt C P, Parish C L, Shim H, Clark M B. Identification of cell barcodes from long-read single-cell RNA-seq with BLAZE. bioRxiv 2022 Aug .08.16.504056; doi: 10.1101/2022.08.16.504056. + > You Y, Prawer YDJ, De Paoli-Iseppi R, Hunt CPJ, Parish CL, Shim H, Clark MB. Identification of cell barcodes from long-read single-cell RNA-seq with BLAZE. Genome Biol. 2023 Apr 6;24(1):66. doi: 10.1186/s13059-023-02907-y. PMID: 37024980; PMCID: PMC10077662. - [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) From 8cbecfac3661cd031ea058f6f78b542a44dda5aa Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Wed, 14 Aug 2024 15:59:17 -0500 Subject: [PATCH 18/35] Removing local pigz module and nf-core gunzip in favor for the nf-core pigz compress and uncompress modules --- conf/modules.config | 8 +- modules.json | 125 +++++++++++++----- modules/local/pigz.nf | 37 ------ modules/nf-core/gunzip/environment.yml | 7 - modules/nf-core/gunzip/main.nf | 48 ------- modules/nf-core/gunzip/meta.yml | 39 ------ modules/nf-core/gunzip/tests/main.nf.test | 36 ----- .../nf-core/gunzip/tests/main.nf.test.snap | 31 ----- modules/nf-core/gunzip/tests/tags.yml | 2 - modules/nf-core/pigz/compress/environment.yml | 9 ++ modules/nf-core/pigz/compress/main.nf | 45 +++++++ modules/nf-core/pigz/compress/meta.yml | 47 +++++++ .../nf-core/pigz/compress/tests/main.nf.test | 53 ++++++++ .../pigz/compress/tests/main.nf.test.snap | 48 +++++++ modules/nf-core/pigz/compress/tests/tags.yml | 2 + modules/nf-core/pigz/uncompress/main.nf | 48 +++++++ modules/nf-core/pigz/uncompress/meta.yml | 42 ++++++ .../pigz/uncompress/tests/main.nf.test | 33 +++++ .../pigz/uncompress/tests/main.nf.test.snap | 35 +++++ .../nf-core/pigz/uncompress/tests/tags.yml | 2 + workflows/scnanoseq.nf | 16 +-- 21 files changed, 469 insertions(+), 244 deletions(-) delete mode 100644 modules/local/pigz.nf delete mode 100644 modules/nf-core/gunzip/environment.yml delete mode 100644 modules/nf-core/gunzip/main.nf delete mode 100644 modules/nf-core/gunzip/meta.yml delete mode 100644 modules/nf-core/gunzip/tests/main.nf.test delete mode 100644 modules/nf-core/gunzip/tests/main.nf.test.snap delete mode 100644 modules/nf-core/gunzip/tests/tags.yml create mode 100644 modules/nf-core/pigz/compress/environment.yml create mode 100644 modules/nf-core/pigz/compress/main.nf create mode 100644 modules/nf-core/pigz/compress/meta.yml create mode 100644 modules/nf-core/pigz/compress/tests/main.nf.test create mode 100644 modules/nf-core/pigz/compress/tests/main.nf.test.snap create mode 100644 modules/nf-core/pigz/compress/tests/tags.yml create mode 100644 modules/nf-core/pigz/uncompress/main.nf create mode 100644 modules/nf-core/pigz/uncompress/meta.yml create mode 100644 modules/nf-core/pigz/uncompress/tests/main.nf.test create mode 100644 modules/nf-core/pigz/uncompress/tests/main.nf.test.snap create mode 100644 modules/nf-core/pigz/uncompress/tests/tags.yml diff --git a/conf/modules.config b/conf/modules.config index ed5d0f7..cc0dd3f 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -309,9 +309,9 @@ process { } } -// GUNZIP +// PIGZ_UNCOMPRESS process { - withName: '.*:GUNZIP.*' { + withName: '.*:PIGZ_UNCOMPRESS.*' { publishDir = [ enabled: false ] @@ -337,7 +337,7 @@ if (params.split_amount > 0) { process { withName: '.*:CAT_CAT_PREEXTRACT' { - ext.prefix = { "${meta.id}.putative_bc_umi.tsv" } + ext.prefix = { "${meta.id}_filtered.fastq" } publishDir = [ enabled: false ] @@ -354,7 +354,7 @@ if (params.split_amount > 0) { } process { - withName: '.*:ZIP_TRIM' { + withName: '.*:PIGZ_COMPRESS' { publishDir = [ path: { "${params.outdir}/${meta.id}/fastq/extracted" }, mode: params.publish_dir_mode, diff --git a/modules.json b/modules.json index 7fe09a6..9955926 100644 --- a/modules.json +++ b/modules.json @@ -8,114 +8,165 @@ "bamtools/split": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "cat/cat": { "branch": "master", "git_sha": "9437e6053dccf4aafa022bfd6e7e9de67e625af8", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "cat/fastq": { "branch": "master", "git_sha": "0997b47c93c06b49aa7b3fefda87e728312cf2ca", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "custom/dumpsoftwareversions": { "branch": "master", "git_sha": "de45447d060b8c8b98575bc637a4a575fd0638e1", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "fastqc": { "branch": "master", "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c", - "installed_by": ["modules"] - }, - "gunzip": { - "branch": "master", - "git_sha": "3a5fef109d113b4997c9822198664ca5f2716208", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "minimap2/align": { "branch": "master", "git_sha": "a33ef9475558c6b8da08c5f522ddaca1ec810306", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "minimap2/index": { "branch": "master", "git_sha": "72e277acfd9e61a9f1368eafb4a9e83f5bcaa9f5", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "multiqc": { "branch": "master", "git_sha": "b7ebe95761cd389603f9cc0e0dc384c0f663815a", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "nanocomp": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "nanoplot": { "branch": "master", "git_sha": "a31407dfaf0cb0d04768d5cb439fc6f4523a6981", - "installed_by": ["modules"], + "installed_by": [ + "modules" + ], "patch": "modules/nf-core/nanoplot/nanoplot.diff" }, + "pigz/compress": { + "branch": "master", + "git_sha": "c00055a0b13d622b4f1f51a8e5be31deaf99ded7", + "installed_by": [ + "modules" + ] + }, + "pigz/uncompress": { + "branch": "master", + "git_sha": "c00055a0b13d622b4f1f51a8e5be31deaf99ded7", + "installed_by": [ + "modules" + ] + }, "rseqc/readdistribution": { "branch": "master", "git_sha": "6c7d8f1d6247655e4bc4d97f37b68b2461f645f6", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/faidx": { "branch": "master", "git_sha": "aeb02a39d4c463598bfdcb2d964dbb7acbcf1298", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/flagstat": { "branch": "master", "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", - "installed_by": ["bam_stats_samtools"] + "installed_by": [ + "bam_stats_samtools" + ] }, "samtools/idxstats": { "branch": "master", "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", - "installed_by": ["bam_stats_samtools"] + "installed_by": [ + "bam_stats_samtools" + ] }, "samtools/index": { "branch": "master", "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", - "installed_by": ["bam_sort_stats_samtools"] + "installed_by": [ + "bam_sort_stats_samtools" + ] }, "samtools/merge": { "branch": "master", "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "samtools/sort": { "branch": "master", "git_sha": "4352dbdb09ec40db71e9b172b97a01dcf5622c26", - "installed_by": ["bam_sort_stats_samtools"] + "installed_by": [ + "bam_sort_stats_samtools" + ] }, "samtools/stats": { "branch": "master", "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", - "installed_by": ["bam_stats_samtools"] + "installed_by": [ + "bam_stats_samtools" + ] }, "samtools/view": { "branch": "master", "git_sha": "0bd7d2333a88483aa0476acea172e9f5f6dd83bb", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] }, "toulligqc": { "branch": "master", "git_sha": "061a322293b3487e53f044304710e54cbf657717", - "installed_by": ["modules"], + "installed_by": [ + "modules" + ], "patch": "modules/nf-core/toulligqc/toulligqc.diff" }, "umitools/dedup": { "branch": "master", "git_sha": "3bd4f34e3093c2a16e6a8eefc22242b9b94641db", - "installed_by": ["modules"] + "installed_by": [ + "modules" + ] } } }, @@ -124,30 +175,40 @@ "bam_sort_stats_samtools": { "branch": "master", "git_sha": "4352dbdb09ec40db71e9b172b97a01dcf5622c26", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "bam_stats_samtools": { "branch": "master", "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", - "installed_by": ["bam_sort_stats_samtools"] + "installed_by": [ + "bam_sort_stats_samtools" + ] }, "utils_nextflow_pipeline": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "utils_nfcore_pipeline": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] }, "utils_nfvalidation_plugin": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": ["subworkflows"] + "installed_by": [ + "subworkflows" + ] } } } } } -} +} \ No newline at end of file diff --git a/modules/local/pigz.nf b/modules/local/pigz.nf deleted file mode 100644 index fc4c534..0000000 --- a/modules/local/pigz.nf +++ /dev/null @@ -1,37 +0,0 @@ -process PIGZ { - tag "$meta.id" - label 'process_low' - - conda "conda-forge::pigz=2.3.4" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/pigz:2.3.4': - 'biocontainers/pigz:2.3.4' }" - - input: - tuple val(meta), path(unzipped_file) - val addl_prefix - - output: - tuple val(meta), path("*.gz"), emit: archive - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - def prefix = task.ext.prefix ?: "${meta.id}_${addl_prefix}" - """ - cat ${unzipped_file} > ${prefix}.fastq - pigz \\ - $args \\ - -f \\ - -p $task.cpus \\ - ${prefix}.fastq - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - pigz: \$(echo \$(pigz -V 2>&1) | sed 's/pigz //g' ) - END_VERSIONS - """ -} diff --git a/modules/nf-core/gunzip/environment.yml b/modules/nf-core/gunzip/environment.yml deleted file mode 100644 index 25910b3..0000000 --- a/modules/nf-core/gunzip/environment.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: gunzip -channels: - - conda-forge - - bioconda - - defaults -dependencies: - - conda-forge::sed=4.7 diff --git a/modules/nf-core/gunzip/main.nf b/modules/nf-core/gunzip/main.nf deleted file mode 100644 index 468a6f2..0000000 --- a/modules/nf-core/gunzip/main.nf +++ /dev/null @@ -1,48 +0,0 @@ -process GUNZIP { - tag "$archive" - label 'process_single' - - conda "${moduleDir}/environment.yml" - container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? - 'https://depot.galaxyproject.org/singularity/ubuntu:20.04' : - 'nf-core/ubuntu:20.04' }" - - input: - tuple val(meta), path(archive) - - output: - tuple val(meta), path("$gunzip"), emit: gunzip - path "versions.yml" , emit: versions - - when: - task.ext.when == null || task.ext.when - - script: - def args = task.ext.args ?: '' - gunzip = archive.toString() - '.gz' - """ - # Not calling gunzip itself because it creates files - # with the original group ownership rather than the - # default one for that user / the work directory - gzip \\ - -cd \\ - $args \\ - $archive \\ - > $gunzip - - cat <<-END_VERSIONS > versions.yml - "${task.process}": - gunzip: \$(echo \$(gunzip --version 2>&1) | sed 's/^.*(gzip) //; s/ Copyright.*\$//') - END_VERSIONS - """ - - stub: - gunzip = archive.toString() - '.gz' - """ - touch $gunzip - cat <<-END_VERSIONS > versions.yml - "${task.process}": - gunzip: \$(echo \$(gunzip --version 2>&1) | sed 's/^.*(gzip) //; s/ Copyright.*\$//') - END_VERSIONS - """ -} diff --git a/modules/nf-core/gunzip/meta.yml b/modules/nf-core/gunzip/meta.yml deleted file mode 100644 index 231034f..0000000 --- a/modules/nf-core/gunzip/meta.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: gunzip -description: Compresses and decompresses files. -keywords: - - gunzip - - compression - - decompression -tools: - - gunzip: - description: | - gzip is a file format and a software application used for file compression and decompression. - documentation: https://www.gnu.org/software/gzip/manual/gzip.html - licence: ["GPL-3.0-or-later"] -input: - - meta: - type: map - description: | - Optional groovy Map containing meta information - e.g. [ id:'test', single_end:false ] - - archive: - type: file - description: File to be compressed/uncompressed - pattern: "*.*" -output: - - gunzip: - type: file - description: Compressed/uncompressed file - pattern: "*.*" - - versions: - type: file - description: File containing software versions - pattern: "versions.yml" -authors: - - "@joseespinosa" - - "@drpatelh" - - "@jfy133" -maintainers: - - "@joseespinosa" - - "@drpatelh" - - "@jfy133" diff --git a/modules/nf-core/gunzip/tests/main.nf.test b/modules/nf-core/gunzip/tests/main.nf.test deleted file mode 100644 index 6406008..0000000 --- a/modules/nf-core/gunzip/tests/main.nf.test +++ /dev/null @@ -1,36 +0,0 @@ -nextflow_process { - - name "Test Process GUNZIP" - script "../main.nf" - process "GUNZIP" - tag "gunzip" - tag "modules_nfcore" - tag "modules" - - test("Should run without failures") { - - when { - params { - outdir = "$outputDir" - } - process { - """ - input[0] = Channel.of([ - [], - file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) - ] - ) - """ - } - } - - then { - assertAll( - { assert process.success }, - { assert snapshot(process.out).match() } - ) - } - - } - -} diff --git a/modules/nf-core/gunzip/tests/main.nf.test.snap b/modules/nf-core/gunzip/tests/main.nf.test.snap deleted file mode 100644 index 720fd9f..0000000 --- a/modules/nf-core/gunzip/tests/main.nf.test.snap +++ /dev/null @@ -1,31 +0,0 @@ -{ - "Should run without failures": { - "content": [ - { - "0": [ - [ - [ - - ], - "test_1.fastq:md5,4161df271f9bfcd25d5845a1e220dbec" - ] - ], - "1": [ - "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" - ], - "gunzip": [ - [ - [ - - ], - "test_1.fastq:md5,4161df271f9bfcd25d5845a1e220dbec" - ] - ], - "versions": [ - "versions.yml:md5,54376d32aca20e937a4ec26dac228e84" - ] - } - ], - "timestamp": "2023-10-17T15:35:37.690477896" - } -} \ No newline at end of file diff --git a/modules/nf-core/gunzip/tests/tags.yml b/modules/nf-core/gunzip/tests/tags.yml deleted file mode 100644 index fd3f691..0000000 --- a/modules/nf-core/gunzip/tests/tags.yml +++ /dev/null @@ -1,2 +0,0 @@ -gunzip: - - modules/nf-core/gunzip/** diff --git a/modules/nf-core/pigz/compress/environment.yml b/modules/nf-core/pigz/compress/environment.yml new file mode 100644 index 0000000..7551d18 --- /dev/null +++ b/modules/nf-core/pigz/compress/environment.yml @@ -0,0 +1,9 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/environment-schema.json +name: "pigz_compress" +channels: + - conda-forge + - bioconda + - defaults +dependencies: + - "pigz=2.8" diff --git a/modules/nf-core/pigz/compress/main.nf b/modules/nf-core/pigz/compress/main.nf new file mode 100644 index 0000000..152e700 --- /dev/null +++ b/modules/nf-core/pigz/compress/main.nf @@ -0,0 +1,45 @@ +process PIGZ_COMPRESS { + tag "$meta.id" + label 'process_low' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/pigz:2.8': + 'biocontainers/pigz:2.8' }" + + input: + tuple val(meta), path(raw_file) + + output: + tuple val(meta), path("$archive"), emit: archive + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + archive = raw_file.toString() + ".gz" + """ + # Note: needs --stdout for pigz to avoid the following issue: + # pigz: skipping: ${raw_file} is a symbolic link + pigz --processes $task.cpus --stdout --force ${args} ${raw_file} > ${archive} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pigz:\$(echo \$(pigz --version 2>&1) | sed 's/^.*pigz\\w*//' ) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + archive = raw_file.toString() + ".gz" + """ + touch ${archive} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pigz:\$(echo \$(pigz --version 2>&1) | sed 's/^.*pigz\\w*//' ) + END_VERSIONS + """ +} diff --git a/modules/nf-core/pigz/compress/meta.yml b/modules/nf-core/pigz/compress/meta.yml new file mode 100644 index 0000000..42efd73 --- /dev/null +++ b/modules/nf-core/pigz/compress/meta.yml @@ -0,0 +1,47 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/meta-schema.json +name: "pigz_compress" +description: Compresses files with pigz. +keywords: + - compress + - gzip + - parallelized +tools: + - "pigz": + description: "Parallel implementation of the gzip algorithm." + homepage: "https://zlib.net/pigz/" + documentation: "https://zlib.net/pigz/pigz.pdf" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + + - raw_file: + type: file + description: File to be compressed + pattern: "*.*" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'sample1', single_end:false ]` + + - archive: + type: file + description: The compressed file + pattern: "*.gz" + + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@leoisl" +maintainers: + - "@leoisl" diff --git a/modules/nf-core/pigz/compress/tests/main.nf.test b/modules/nf-core/pigz/compress/tests/main.nf.test new file mode 100644 index 0000000..b3cb25e --- /dev/null +++ b/modules/nf-core/pigz/compress/tests/main.nf.test @@ -0,0 +1,53 @@ +nextflow_process { + name "Test Process PIGZ_COMPRESS" + script "../main.nf" + process "PIGZ_COMPRESS" + + tag "modules" + tag "modules_nfcore" + tag "pigz" + tag "pigz/compress" + + test("sarscov2 - genome - fasta") { + when { + process { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + then { + assertAll( + { assert process.success }, + { assert snapshot(process.out).match() } + ) + } + } + + test("sarscov2 - genome - fasta - stub") { + options "-stub-run" + when { + process { + """ + input[0] = [ + [ id:'test'], // meta map + file(params.modules_testdata_base_path + 'genomics/sarscov2/genome/genome.fasta', checkIfExists: true) + ] + """ + } + } + then { + assertAll( + { assert process.success }, + { assert snapshot( + file(process.out.archive[0][1]).name, + process.out.versions + ).match() + } + ) + } + } +} diff --git a/modules/nf-core/pigz/compress/tests/main.nf.test.snap b/modules/nf-core/pigz/compress/tests/main.nf.test.snap new file mode 100644 index 0000000..4d8df9f --- /dev/null +++ b/modules/nf-core/pigz/compress/tests/main.nf.test.snap @@ -0,0 +1,48 @@ +{ + "sarscov2 - genome - fasta": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "genome.fasta.gz:md5,6e9fe4042a72f2345f644f239272b7e6" + ] + ], + "1": [ + "versions.yml:md5,ca30e9e1ffa1394ba7eefdac8cf3a3ad" + ], + "archive": [ + [ + { + "id": "test" + }, + "genome.fasta.gz:md5,6e9fe4042a72f2345f644f239272b7e6" + ] + ], + "versions": [ + "versions.yml:md5,ca30e9e1ffa1394ba7eefdac8cf3a3ad" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.3" + }, + "timestamp": "2023-12-11T22:39:53.350546" + }, + "sarscov2 - genome - fasta - stub": { + "content": [ + "genome.fasta.gz", + [ + "versions.yml:md5,ca30e9e1ffa1394ba7eefdac8cf3a3ad" + ] + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.04.3" + }, + "timestamp": "2024-07-30T12:18:32.339508" + } +} \ No newline at end of file diff --git a/modules/nf-core/pigz/compress/tests/tags.yml b/modules/nf-core/pigz/compress/tests/tags.yml new file mode 100644 index 0000000..42c46bf --- /dev/null +++ b/modules/nf-core/pigz/compress/tests/tags.yml @@ -0,0 +1,2 @@ +pigz/compress: + - "modules/nf-core/pigz/compress/**" diff --git a/modules/nf-core/pigz/uncompress/main.nf b/modules/nf-core/pigz/uncompress/main.nf new file mode 100644 index 0000000..11e43df --- /dev/null +++ b/modules/nf-core/pigz/uncompress/main.nf @@ -0,0 +1,48 @@ +process PIGZ_UNCOMPRESS { + label 'process_low' + //stageInMode 'copy' // this directive can be set in case the original input should be kept + + conda "conda-forge::pigz" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + 'https://depot.galaxyproject.org/singularity/pigz:2.8': + 'biocontainers/pigz:2.8' }" + + input: + tuple val(meta), path(zip) + + output: + tuple val(meta), path("${uncompressed_filename}") , emit: file + path "versions.yml" , emit: versions + + when: + task.ext.when == null || task.ext.when + + script: + def args = task.ext.args ?: '' + uncompressed_filename = zip.toString() - '.gz' + // calling pigz -f to make it follow symlinks + """ + unpigz \\ + -p $task.cpus \\ + -fk \\ + $args \\ + ${zip} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pigz: \$(echo \$(pigz --version 2>&1) | sed 's/^.*pigz\\w*//' )) + END_VERSIONS + """ + + stub: + def args = task.ext.args ?: '' + uncompressed_filename = zip.toString() - '.gz' + """ + touch ${zip.dropRight(3)} + + cat <<-END_VERSIONS > versions.yml + "${task.process}": + pigz: \$(echo \$(pigz --version 2>&1) | sed 's/^.*pigz\w*//' )) + END_VERSIONS + """ +} diff --git a/modules/nf-core/pigz/uncompress/meta.yml b/modules/nf-core/pigz/uncompress/meta.yml new file mode 100644 index 0000000..c2d16cd --- /dev/null +++ b/modules/nf-core/pigz/uncompress/meta.yml @@ -0,0 +1,42 @@ +--- +# yaml-language-server: $schema=https://raw.githubusercontent.com/nf-core/modules/master/modules/yaml-schema.json +name: "pigz_uncompress" +description: write your description here +keywords: + - uncompress + - gzip + - parallelized +tools: + - "pigz": + description: "Parallel implementation of the gzip algorithm." + homepage: "https://zlib.net/pigz/" + documentation: "https://zlib.net/pigz/pigz.pdf" + +input: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test']` + - zip: + type: file + description: Gzipped file + pattern: "*.{gzip}" + +output: + - meta: + type: map + description: | + Groovy Map containing sample information + e.g. `[ id:'test']` + - file: + type: file + description: File to compress + pattern: "*" + - versions: + type: file + description: File containing software versions + pattern: "versions.yml" + +authors: + - "@lrauschning" diff --git a/modules/nf-core/pigz/uncompress/tests/main.nf.test b/modules/nf-core/pigz/uncompress/tests/main.nf.test new file mode 100644 index 0000000..62ab27e --- /dev/null +++ b/modules/nf-core/pigz/uncompress/tests/main.nf.test @@ -0,0 +1,33 @@ +nextflow_process { + + name "Test Process PIGZ_UNCOMPRESS" + script "modules/nf-core/pigz/uncompress/main.nf" + process "PIGZ_UNCOMPRESS" + tag "modules" + tag "modules_nfcore" + tag "pigz" + tag "pigz/uncompress" + + test("Should run without failures") { + + when { + params { + outdir = "$outputDir" + } + process { + """ + input[0] = [ [ id:'test'], + file(params.modules_testdata_base_path + 'genomics/sarscov2/illumina/fastq/test_1.fastq.gz', checkIfExists: true) + ] + """ + } + } + + then { + assert process.success + assert snapshot(process.out).match() + } + + } + +} \ No newline at end of file diff --git a/modules/nf-core/pigz/uncompress/tests/main.nf.test.snap b/modules/nf-core/pigz/uncompress/tests/main.nf.test.snap new file mode 100644 index 0000000..126dd7d --- /dev/null +++ b/modules/nf-core/pigz/uncompress/tests/main.nf.test.snap @@ -0,0 +1,35 @@ +{ + "Should run without failures": { + "content": [ + { + "0": [ + [ + { + "id": "test" + }, + "test_1.fastq:md5,4161df271f9bfcd25d5845a1e220dbec" + ] + ], + "1": [ + "versions.yml:md5,a2d5ce72baa8b303f25afb9cf094f683" + ], + "file": [ + [ + { + "id": "test" + }, + "test_1.fastq:md5,4161df271f9bfcd25d5845a1e220dbec" + ] + ], + "versions": [ + "versions.yml:md5,a2d5ce72baa8b303f25afb9cf094f683" + ] + } + ], + "meta": { + "nf-test": "0.8.4", + "nextflow": "24.03.0" + }, + "timestamp": "2024-05-15T16:43:21.55056643" + } +} \ No newline at end of file diff --git a/modules/nf-core/pigz/uncompress/tests/tags.yml b/modules/nf-core/pigz/uncompress/tests/tags.yml new file mode 100644 index 0000000..6719a90 --- /dev/null +++ b/modules/nf-core/pigz/uncompress/tests/tags.yml @@ -0,0 +1,2 @@ +pigz/uncompress: + - modules/nf-core/pigz/uncompress/** diff --git a/workflows/scnanoseq.nf b/workflows/scnanoseq.nf index 65ee622..8ab0731 100644 --- a/workflows/scnanoseq.nf +++ b/workflows/scnanoseq.nf @@ -43,7 +43,6 @@ include { NANOFILT } from "../mo include { SPLIT_FILE } from "../modules/local/split_file" include { SPLIT_FILE as SPLIT_FILE_BC_FASTQ } from "../modules/local/split_file" include { SPLIT_FILE as SPLIT_FILE_BC_CSV } from "../modules/local/split_file" -include { PIGZ as ZIP_TRIM } from "../modules/local/pigz" include { BLAZE } from "../modules/local/blaze" include { PREEXTRACT_FASTQ } from "../modules/local/preextract_fastq.nf" include { READ_COUNTS } from "../modules/local/read_counts.nf" @@ -71,7 +70,8 @@ include { PREPARE_REFERENCE_FILES } from "../subworkflows/local/prepare_referenc // // MODULE: Installed directly from nf-core/modules // -include { GUNZIP } from "../modules/nf-core/gunzip/main" +include { PIGZ_UNCOMPRESS } from "../modules/nf-core/pigz/uncompress/main" +include { PIGZ_COMPRESS } from "../modules/nf-core/pigz/compress/main" include { NANOCOMP as NANOCOMP_FASTQ } from "../modules/nf-core/nanocomp/main" include { NANOCOMP as NANOCOMP_BAM } from "../modules/nf-core/nanocomp/main" include { MULTIQC as MULTIQC_RAWQC } from "../modules/nf-core/multiqc/main" @@ -220,9 +220,9 @@ workflow SCNANOSEQ { // // MODULE: Unzip fastq // - GUNZIP( ch_cat_fastq ) - ch_unzipped_fastqs = GUNZIP.out.gunzip - ch_versions = ch_versions.mix( GUNZIP.out.versions ) + PIGZ_UNCOMPRESS( ch_cat_fastq ) + ch_unzipped_fastqs = PIGZ_UNCOMPRESS.out.file + ch_versions = ch_versions.mix( PIGZ_UNCOMPRESS.out.versions ) // @@ -353,9 +353,9 @@ workflow SCNANOSEQ { // // MODULE: Zip the reads // - ZIP_TRIM (ch_cat_preextract_fastq, "filtered" ) - ch_extracted_fastq = ZIP_TRIM.out.archive - ch_versions = ch_versions.mix(ZIP_TRIM.out.versions) + PIGZ_COMPRESS (ch_cat_preextract_fastq ) + ch_extracted_fastq = PIGZ_COMPRESS.out.archive + ch_versions = ch_versions.mix(PIGZ_COMPRESS.out.versions) } // From 0ac8ce0791d00543121835709a756430ccb4293d Mon Sep 17 00:00:00 2001 From: Austyn Trull <50919016+atrull314@users.noreply.github.com> Date: Thu, 15 Aug 2024 11:08:57 -0500 Subject: [PATCH 19/35] Adding read_counts image --- docs/images/read_counts.png | Bin 0 -> 49146 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/read_counts.png diff --git a/docs/images/read_counts.png b/docs/images/read_counts.png new file mode 100644 index 0000000000000000000000000000000000000000..73c77a7166b617776a1fda97e4df510c8a7642b2 GIT binary patch literal 49146 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 literal 0 HcmV?d00001 From 4e945d9d1081c4b166658aa3e736308d4db5a51f Mon Sep 17 00:00:00 2001 From: Austyn Trull <50919016+atrull314@users.noreply.github.com> Date: Thu, 15 Aug 2024 11:17:52 -0500 Subject: [PATCH 20/35] Adding read_counts to output.md --- docs/output.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/output.md b/docs/output.md index f0ada9e..c359c16 100644 --- a/docs/output.md +++ b/docs/output.md @@ -32,6 +32,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d - [Nanoplot](#nanoplot) - Long Read FASTQ QC - [ToulligQC](#toulligqc) - Long Read FASTQ QC - [RSeQC](#rseqc) - Various RNA-seq QC metrics + - [Read Counts](#read-counts) - Read Counts QC - [MultiQC](#multiqc) - Aggregate report describing results and QC from the whole pipeline - [Pipeline information](#pipeline-information) - Report metrics generated during the workflow execution @@ -318,6 +319,21 @@ The FastQC plots displayed in the MultiQC report shows _untrimmed_ reads. They m [RSeQC](https://rseqc.sourceforge.net/) package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data +### Read Counts + +
+Output files + +- `batch_qcs/` + - `read_counts/` + - `read_counts.csv`: This file contains the read counts for each sample at various points in the pipeline. Each row is a different sample, and the columns are the amount of reads the sample contained at that point in the pipeline. + +
+ +![Read Counts](images/read_counts.png) + +This is a custom script written using BASH scripting. Its purpose is to report the amount of reads that are filtered out at steps in the pipeline that will result in filtered reads, such as barcode detection, barcode correction, alignment, etc. + ### MultiQC
From 501e0ea93b43e530f9a23cf277bdbf3b2078c8c0 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Thu, 15 Aug 2024 18:04:27 -0500 Subject: [PATCH 21/35] Replacing gunzip with pigz --- subworkflows/local/prepare_reference_files.nf | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/subworkflows/local/prepare_reference_files.nf b/subworkflows/local/prepare_reference_files.nf index 191d2ce..d4ff9c9 100644 --- a/subworkflows/local/prepare_reference_files.nf +++ b/subworkflows/local/prepare_reference_files.nf @@ -2,9 +2,9 @@ // Creates gtfs to that add introns as features // -include { GUNZIP as GUNZIP_FASTA } from '../../modules/nf-core/gunzip/main' -include { GUNZIP as GUNZIP_GTF } from '../../modules/nf-core/gunzip/main' -include { SAMTOOLS_FAIDX } from '../../modules/nf-core/samtools/faidx/main' +include { PIGZ_UNCOMPRESS as UNZIP_FASTA } from '../../modules/nf-core/pigz/uncompress/main' +include { PIGZ_UNCOMPRESS as UNZIP_GTF } from '../../modules/nf-core/pigz/uncompress/main' +include { SAMTOOLS_FAIDX } from '../../modules/nf-core/samtools/faidx/main' workflow PREPARE_REFERENCE_FILES { take: @@ -21,20 +21,20 @@ workflow PREPARE_REFERENCE_FILES { // ch_prepared_fasta = Channel.empty() if (fasta.endsWith('.gz')){ - GUNZIP_FASTA( [ [:], fasta ]) + UNZIP_FASTA( [ [:], fasta ]) - ch_prepared_fasta = GUNZIP_FASTA.out.gunzip - ch_versions = ch_versions.mix(GUNZIP_FASTA.out.versions) + ch_prepared_fasta = UNZIP_FASTA.out.gunzip + ch_versions = ch_versions.mix(UNZIP_FASTA.out.versions) } else { ch_prepared_fasta = [ [:], fasta ] } ch_prepared_gtf = Channel.empty() if (gtf.endsWith('.gz')){ - GUNZIP_GTF( [ [:], gtf ]) + UNZIP_GTF( [ [:], gtf ]) - ch_prepared_gtf = GUNZIP_GTF.out.gunzip - ch_versions = ch_versions.mix(GUNZIP_GTF.out.versions) + ch_prepared_gtf = UNZIP_GTF.out.gunzip + ch_versions = ch_versions.mix(UNZIP_GTF.out.versions) } else { ch_prepared_gtf = [ [:], gtf] } From ca2c2b60e641d69dcd7608afebc61dbb956057c3 Mon Sep 17 00:00:00 2001 From: Lara Ianov Date: Fri, 16 Aug 2024 10:34:53 -0500 Subject: [PATCH 22/35] syntax clean-up and removal of outdated comments --- conf/modules.config | 14 ----------- modules/local/split_file.nf | 3 +-- nextflow.config | 10 ++++---- .../nf-core/qcfastq_nanoplot_fastqc.nf | 3 ++- workflows/scnanoseq.nf | 23 ++++++++----------- 5 files changed, 17 insertions(+), 36 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index cc0dd3f..77c644e 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -62,7 +62,6 @@ if (!params.skip_qc && !params.skip_fastqc) { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] } - } } @@ -94,7 +93,6 @@ if (!params.skip_qc && !params.skip_nanoplot) { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] } - } } @@ -154,7 +152,6 @@ if (!params.skip_qc && !params.skip_toulligqc) { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] } - } } @@ -224,9 +221,7 @@ if (!params.skip_qc) { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] } - } - } // READ COUNTS @@ -240,9 +235,7 @@ if (!params.skip_qc) { saveAs: { filename -> filename.equals('versions.yml') ? null : filename } ] } - } - } ///////////////////// @@ -362,7 +355,6 @@ if (params.split_amount > 0) { ] } } - } // FASTQ TRIMMING @@ -385,7 +377,6 @@ if (!params.skip_trimming) { ] } } - } // NANOFILT @@ -397,8 +388,6 @@ if (!params.skip_trimming) { ] } } - - } } @@ -641,7 +630,6 @@ process { // ISOQUANT // ////////////// -// NOTE: with_inconsistent will include introns within the counts, where as unique_only will only include exons process { withName: '.*:ISOQUANT' { ext.args = { @@ -687,8 +675,6 @@ if (!params.skip_qc && !params.skip_seurat) { } } - //***TODO***: don't forget filtered outputs [here or in main workflow, need to check] - // so outputs will need to be changed process { withName: '.*:COMBINE_SEURAT_STATS_GENE' { ext.args = "-o gene.corrected.tsv -f gene" diff --git a/modules/local/split_file.nf b/modules/local/split_file.nf index fe7ede3..0caac3c 100644 --- a/modules/local/split_file.nf +++ b/modules/local/split_file.nf @@ -13,9 +13,8 @@ process SPLIT_FILE { val split_amount output: - // TODO: Make this more generalizable. Gunzip probably a good example tuple val(meta), path("*$file_ext"), emit: split_files - path "versions.yml" , emit: versions + path "versions.yml" , emit: versions when: task.ext.when == null || task.ext.when diff --git a/nextflow.config b/nextflow.config index 40a8b20..c527168 100644 --- a/nextflow.config +++ b/nextflow.config @@ -55,10 +55,10 @@ params { skip_multiqc = false // MultiQC options - multiqc_config = null - multiqc_title = null - multiqc_logo = null - max_multiqc_email_size = '25.MB' + multiqc_config = null + multiqc_title = null + multiqc_logo = null + max_multiqc_email_size = '25.MB' multiqc_methods_description = null // Boilerplate options @@ -276,7 +276,7 @@ manifest { description = """Single-cell/nuclei pipeline for data derived from Oxford Nanopore""" mainScript = 'main.nf' nextflowVersion = '!>=23.04.0' - version = '0.1.0dev' + version = '0.1.0dev' doi = '' } diff --git a/subworkflows/nf-core/qcfastq_nanoplot_fastqc.nf b/subworkflows/nf-core/qcfastq_nanoplot_fastqc.nf index dd644de..41ecaf0 100644 --- a/subworkflows/nf-core/qcfastq_nanoplot_fastqc.nf +++ b/subworkflows/nf-core/qcfastq_nanoplot_fastqc.nf @@ -1,6 +1,7 @@ /* * FastQ QC with NanoPlot, ToulligQC and fastqc - * subworkflow from nf-core/nanoseq + * subworkflow from nf-core/nanoseq with minor modifications + * (e.g: addition of ToulligQC) * author: @yuukiiwa */ diff --git a/workflows/scnanoseq.nf b/workflows/scnanoseq.nf index 8ab0731..655addc 100644 --- a/workflows/scnanoseq.nf +++ b/workflows/scnanoseq.nf @@ -23,11 +23,11 @@ if (params.whitelist) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) -ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath( params.multiqc_config, checkIfExists: true ) : Channel.empty() -ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath( params.multiqc_logo, checkIfExists: true ) : Channel.empty() -ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) -ch_dummy_file = Channel.fromPath("$projectDir/assets/dummy_file.txt", checkIfExists: true) +ch_multiqc_custom_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) +ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath( params.multiqc_config, checkIfExists: true ) : Channel.empty() +ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath( params.multiqc_logo, checkIfExists: true ) : Channel.empty() +ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) +ch_dummy_file = Channel.fromPath("$projectDir/assets/dummy_file.txt", checkIfExists: true) /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -191,7 +191,7 @@ workflow SCNANOSEQ { PREPARE_REFERENCE_FILES ( "", "", params.fasta, - params.gtf) + params.gtf ) fasta = PREPARE_REFERENCE_FILES.out.prepped_fasta fai = PREPARE_REFERENCE_FILES.out.prepped_fai @@ -228,7 +228,6 @@ workflow SCNANOSEQ { // // MODULE: Trim and filter reads // - //ch_zipped_reads = Channel.empty() ch_fastqc_multiqc_postrim = Channel.empty() ch_trimmed_reads_combined = Channel.empty() @@ -282,7 +281,6 @@ workflow SCNANOSEQ { ch_versions = ch_versions.mix(FASTQC_NANOPLOT_POST_TRIM.out.fastqc_version.first().ifEmpty(null)) } } else { - //ch_zipped_reads = ch_cat_fastq ch_trimmed_reads_combined = ch_unzipped_fastqs } @@ -290,7 +288,7 @@ workflow SCNANOSEQ { // MODULE: Generate whitelist // - BLAZE ( ch_trimmed_reads_combined, blaze_whitelist) + BLAZE ( ch_trimmed_reads_combined, blaze_whitelist ) ch_putative_bc = BLAZE.out.putative_bc ch_gt_whitelist = BLAZE.out.whitelist @@ -318,7 +316,7 @@ workflow SCNANOSEQ { // MODULE: Extract barcodes // - PREEXTRACT_FASTQ( ch_split_bc_fastqs.join(ch_split_bc), params.barcode_format) + PREEXTRACT_FASTQ( ch_split_bc_fastqs.join(ch_split_bc), params.barcode_format ) ch_barcode_info = PREEXTRACT_FASTQ.out.barcode_info ch_preextract_fastq = PREEXTRACT_FASTQ.out.extracted_fastq @@ -404,7 +402,7 @@ workflow SCNANOSEQ { true, "bai", "", - "") + "" ) ch_versions = ch_versions.mix(MINIMAP2_ALIGN.out.versions) ch_minimap_bam = MINIMAP2_ALIGN.out.bam @@ -498,7 +496,6 @@ workflow SCNANOSEQ { ch_tagged_sorted_idxstats = BAM_SORT_STATS_SAMTOOLS_TAGGED.out.idxstats ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS_TAGGED.out.versions) - // TODO: Rename the dedup_bam channel to be more descriptive ch_dedup_sorted_bam = ch_tagged_sorted_bam ch_dedup_sorted_bam_bai = ch_tagged_sorted_bai ch_dedup_sorted_flagstat = ch_tagged_sorted_flagstat @@ -674,8 +671,6 @@ workflow SCNANOSEQ { ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_dedup_sorted_flagstat.collect{it[1]}.ifEmpty([])) ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_dedup_sorted_idxstats.collect{it[1]}.ifEmpty([])) - // see issue #12 (too many files when split by chr) - //ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_dedup_log.collect{it[1]}.ifEmpty([])) ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_read_counts.collect().ifEmpty([])) ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_gene_stats_combined.collect().ifEmpty([])) ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_transcript_stats_combined.collect().ifEmpty([])) From 9945b86e12ac84a4898580e4663c282ce4769889 Mon Sep 17 00:00:00 2001 From: Lara Ianov Date: Fri, 16 Aug 2024 10:36:24 -0500 Subject: [PATCH 23/35] reducing process_high_mem back to nf-core default --- conf/base.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/base.config b/conf/base.config index ba3d12f..546de6b 100644 --- a/conf/base.config +++ b/conf/base.config @@ -48,7 +48,7 @@ process { time = { check_max( 60.h * task.attempt, 'time' ) } } withLabel:process_high_memory { - memory = { check_max( 250.GB * task.attempt, 'memory' ) } + memory = { check_max( 200.GB * task.attempt, 'memory' ) } } withLabel:error_ignore { errorStrategy = 'ignore' From 580ed5e9691f777f2dc1248f3a5ba047a0505958 Mon Sep 17 00:00:00 2001 From: Lara Ianov Date: Fri, 16 Aug 2024 10:38:39 -0500 Subject: [PATCH 24/35] patch: nf-core module minimap index, nanocomp to promethion sensitive default --- modules.json | 6 ++++-- modules/nf-core/minimap2/index/main.nf | 2 +- modules/nf-core/minimap2/index/minimap2-index.diff | 12 ++++++++++++ modules/nf-core/nanocomp/main.nf | 1 + modules/nf-core/nanocomp/nanocomp.diff | 12 ++++++++++++ 5 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 modules/nf-core/minimap2/index/minimap2-index.diff create mode 100644 modules/nf-core/nanocomp/nanocomp.diff diff --git a/modules.json b/modules.json index 9955926..308b101 100644 --- a/modules.json +++ b/modules.json @@ -52,7 +52,8 @@ "git_sha": "72e277acfd9e61a9f1368eafb4a9e83f5bcaa9f5", "installed_by": [ "modules" - ] + ], + "patch": "modules/nf-core/minimap2/index/minimap2-index.diff" }, "multiqc": { "branch": "master", @@ -66,7 +67,8 @@ "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", "installed_by": [ "modules" - ] + ], + "patch": "modules/nf-core/nanocomp/nanocomp.diff" }, "nanoplot": { "branch": "master", diff --git a/modules/nf-core/minimap2/index/main.nf b/modules/nf-core/minimap2/index/main.nf index 3832021..618b905 100644 --- a/modules/nf-core/minimap2/index/main.nf +++ b/modules/nf-core/minimap2/index/main.nf @@ -1,5 +1,5 @@ process MINIMAP2_INDEX { - label 'process_low' + label 'process_medium' // Note: the versions here need to match the versions used in minimap2/align conda "${moduleDir}/environment.yml" diff --git a/modules/nf-core/minimap2/index/minimap2-index.diff b/modules/nf-core/minimap2/index/minimap2-index.diff new file mode 100644 index 0000000..7960910 --- /dev/null +++ b/modules/nf-core/minimap2/index/minimap2-index.diff @@ -0,0 +1,12 @@ +Changes in module 'nf-core/minimap2/index' +--- modules/nf-core/minimap2/index/main.nf ++++ modules/nf-core/minimap2/index/main.nf +@@ -1,5 +1,5 @@ + process MINIMAP2_INDEX { +- label 'process_low' ++ label 'process_medium' + + // Note: the versions here need to match the versions used in minimap2/align + conda "${moduleDir}/environment.yml" + +************************************************************ diff --git a/modules/nf-core/nanocomp/main.nf b/modules/nf-core/nanocomp/main.nf index 09d9832..c2f5bcd 100755 --- a/modules/nf-core/nanocomp/main.nf +++ b/modules/nf-core/nanocomp/main.nf @@ -1,5 +1,6 @@ process NANOCOMP { label 'process_medium' + label 'process_high_memory' conda "${moduleDir}/environment.yml" container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? diff --git a/modules/nf-core/nanocomp/nanocomp.diff b/modules/nf-core/nanocomp/nanocomp.diff new file mode 100644 index 0000000..422cb25 --- /dev/null +++ b/modules/nf-core/nanocomp/nanocomp.diff @@ -0,0 +1,12 @@ +Changes in module 'nf-core/nanocomp' +--- modules/nf-core/nanocomp/main.nf ++++ modules/nf-core/nanocomp/main.nf +@@ -1,5 +1,6 @@ + process NANOCOMP { + label 'process_medium' ++ label 'process_high_memory' + + conda "${moduleDir}/environment.yml" + container "${ workflow.containerEngine == 'singularity' && !task.ext.singularity_pull_docker_container ? + +************************************************************ From 070144fb1b7c4c1e894027e90a300f24d5010527 Mon Sep 17 00:00:00 2001 From: Lara Ianov Date: Fri, 16 Aug 2024 10:49:40 -0500 Subject: [PATCH 25/35] fix ch_multiqc_config variable --- workflows/scnanoseq.nf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflows/scnanoseq.nf b/workflows/scnanoseq.nf index 655addc..cd53533 100644 --- a/workflows/scnanoseq.nf +++ b/workflows/scnanoseq.nf @@ -23,7 +23,7 @@ if (params.whitelist) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ -ch_multiqc_custom_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) +ch_multiqc_config = Channel.fromPath("$projectDir/assets/multiqc_config.yml", checkIfExists: true) ch_multiqc_custom_config = params.multiqc_config ? Channel.fromPath( params.multiqc_config, checkIfExists: true ) : Channel.empty() ch_multiqc_logo = params.multiqc_logo ? Channel.fromPath( params.multiqc_logo, checkIfExists: true ) : Channel.empty() ch_multiqc_custom_methods_description = params.multiqc_methods_description ? file(params.multiqc_methods_description, checkIfExists: true) : file("$projectDir/assets/methods_description_template.yml", checkIfExists: true) From 6c722f019ed4e59085e66dbd0d2c8d7fce6454d0 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Fri, 16 Aug 2024 12:26:07 -0500 Subject: [PATCH 26/35] Fixing output channel name when unzipping ref files --- subworkflows/local/prepare_reference_files.nf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/subworkflows/local/prepare_reference_files.nf b/subworkflows/local/prepare_reference_files.nf index d4ff9c9..66c0df5 100644 --- a/subworkflows/local/prepare_reference_files.nf +++ b/subworkflows/local/prepare_reference_files.nf @@ -23,7 +23,7 @@ workflow PREPARE_REFERENCE_FILES { if (fasta.endsWith('.gz')){ UNZIP_FASTA( [ [:], fasta ]) - ch_prepared_fasta = UNZIP_FASTA.out.gunzip + ch_prepared_fasta = UNZIP_FASTA.out.file ch_versions = ch_versions.mix(UNZIP_FASTA.out.versions) } else { ch_prepared_fasta = [ [:], fasta ] @@ -33,7 +33,7 @@ workflow PREPARE_REFERENCE_FILES { if (gtf.endsWith('.gz')){ UNZIP_GTF( [ [:], gtf ]) - ch_prepared_gtf = UNZIP_GTF.out.gunzip + ch_prepared_gtf = UNZIP_GTF.out.file ch_versions = ch_versions.mix(UNZIP_GTF.out.versions) } else { ch_prepared_gtf = [ [:], gtf] From 3c9ccc5411b55bfad6152262cb85f1f98f5fbd1d Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Fri, 16 Aug 2024 13:27:01 -0500 Subject: [PATCH 27/35] Fixing issue with pigz uncompress --- modules.json | 3 ++- modules/nf-core/pigz/uncompress/main.nf | 2 +- .../nf-core/pigz/uncompress/pigz-uncompress.diff | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 modules/nf-core/pigz/uncompress/pigz-uncompress.diff diff --git a/modules.json b/modules.json index 308b101..8d17463 100644 --- a/modules.json +++ b/modules.json @@ -90,7 +90,8 @@ "git_sha": "c00055a0b13d622b4f1f51a8e5be31deaf99ded7", "installed_by": [ "modules" - ] + ], + "patch": "modules/nf-core/pigz/uncompress/pigz-uncompress.diff" }, "rseqc/readdistribution": { "branch": "master", diff --git a/modules/nf-core/pigz/uncompress/main.nf b/modules/nf-core/pigz/uncompress/main.nf index 11e43df..c7528f8 100644 --- a/modules/nf-core/pigz/uncompress/main.nf +++ b/modules/nf-core/pigz/uncompress/main.nf @@ -42,7 +42,7 @@ process PIGZ_UNCOMPRESS { cat <<-END_VERSIONS > versions.yml "${task.process}": - pigz: \$(echo \$(pigz --version 2>&1) | sed 's/^.*pigz\w*//' )) + pigz: \$(echo \$(pigz --version 2>&1) | sed 's/^.*pigz\\w*//' )) END_VERSIONS """ } diff --git a/modules/nf-core/pigz/uncompress/pigz-uncompress.diff b/modules/nf-core/pigz/uncompress/pigz-uncompress.diff new file mode 100644 index 0000000..6736fca --- /dev/null +++ b/modules/nf-core/pigz/uncompress/pigz-uncompress.diff @@ -0,0 +1,14 @@ +Changes in module 'nf-core/pigz/uncompress' +--- modules/nf-core/pigz/uncompress/main.nf ++++ modules/nf-core/pigz/uncompress/main.nf +@@ -42,7 +42,7 @@ + + cat <<-END_VERSIONS > versions.yml + "${task.process}": +- pigz: \$(echo \$(pigz --version 2>&1) | sed 's/^.*pigz\w*//' )) ++ pigz: \$(echo \$(pigz --version 2>&1) | sed 's/^.*pigz\\w*//' )) + END_VERSIONS + """ + } + +************************************************************ From 9fb6aa3cc7413bc49b82c4f1613ad6c097bbcacc Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Mon, 19 Aug 2024 12:07:55 -0500 Subject: [PATCH 28/35] Linting --- assets/multiqc_config.yml | 4 ++-- modules/local/read_counts.nf | 2 +- workflows/scnanoseq.nf | 21 +++++++++++---------- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 690a26e..11df6cd 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/scnanoseq + This report has been generated by the nf-core/scnanoseq analysis pipeline. For information about how to interpret these results, please see the - documentation. + documentation. report_section_order: "nf-core-scnanoseq-methods-description": diff --git a/modules/local/read_counts.nf b/modules/local/read_counts.nf index 78e3f15..bebca0b 100644 --- a/modules/local/read_counts.nf +++ b/modules/local/read_counts.nf @@ -27,7 +27,7 @@ process READ_COUNTS { $args \\ --input ./ \\ --output read_counts.csv - + cat <<-END_VERSIONS > versions.yml "${task.process}": perl: \$(perl --version | head -n2 | tail -n1 | sed -n 's/.*(v\\([^)]*\\)).*/\\1/p') diff --git a/workflows/scnanoseq.nf b/workflows/scnanoseq.nf index cd53533..af4f8d5 100644 --- a/workflows/scnanoseq.nf +++ b/workflows/scnanoseq.nf @@ -169,9 +169,9 @@ workflow SCNANOSEQ { ch_nanocomp_fastq_txt = Channel.empty() if (!params.skip_qc && !params.skip_fastq_nanocomp) { - NANOCOMP_FASTQ ( + NANOCOMP_FASTQ ( ch_cat_fastq - .collect{it[1]} + .collect{it[1]} .map{ [ [ 'id': 'nanocomp_fastq.' ] , it ] } @@ -397,12 +397,13 @@ workflow SCNANOSEQ { // MINIMAP2_ALIGN // - MINIMAP2_ALIGN ( ch_extracted_fastq, - ch_minimap_ref, - true, - "bai", - "", - "" ) + MINIMAP2_ALIGN ( + ch_extracted_fastq, + ch_minimap_ref, + true, + "bai", + "", + "" ) ch_versions = ch_versions.mix(MINIMAP2_ALIGN.out.versions) ch_minimap_bam = MINIMAP2_ALIGN.out.bam @@ -455,9 +456,9 @@ workflow SCNANOSEQ { if (!params.skip_qc && !params.skip_bam_nanocomp) { - NANOCOMP_BAM ( + NANOCOMP_BAM ( ch_minimap_sorted_bam - .collect{it[1]} + .collect{it[1]} .map{ [ [ 'id': 'nanocomp_bam.' ] , it ] } From 07f2700b1d50e0763ccc18de4dd8ca62f0306269 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Mon, 19 Aug 2024 16:02:50 -0500 Subject: [PATCH 29/35] Enabling min_q_score and min_length on Nanofilt --- conf/modules.config | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/conf/modules.config b/conf/modules.config index 77c644e..5cbcb33 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -383,6 +383,12 @@ if (!params.skip_trimming) { if ( !params.skip_trimming ){ process { withName:'.*:NANOFILT' { + ext.args = { + [ + params.min_length ? "--length ${params.min_length}" : "", + params.min_q_score ? "--quality ${params.min_q_score}" : "" + ].join(' ').trim() + } publishDir = [ enabled: false ] From c3ff71a8ea10a40ff28d498b97849627fdf5c128 Mon Sep 17 00:00:00 2001 From: Lara Ianov Date: Tue, 20 Aug 2024 11:58:52 -0500 Subject: [PATCH 30/35] changes to docs --- README.md | 20 ++++++++++++++------ docs/output.md | 12 ++++++------ docs/usage.md | 4 ++-- nextflow_schema.json | 5 +++-- 4 files changed, 25 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index a74fc5a..aa91c96 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ ## Introduction -**nf-core/scnanoseq** is a bioinformatics best-practice analysis pipeline for 10X Genomics single-cell/nuclei RNA-seq for data derived from Oxford Nanopore Q20+ chemistry ([R10.4 flow cells (>Q20)](https://nanoporetech.com/about-us/news/oxford-nanopore-announces-technology-updates-nanopore-community-meeting)). Due to the expectation of >Q20 quality, the input data for the pipeline is not dependent on Illumina paired data. Please note `scnanoseq` can also process Oxford data with older chemistry, but we encourage usage of the Q20+ chemistry. +**nf-core/scnanoseq** is a bioinformatics best-practice analysis pipeline for 10X Genomics single-cell/nuclei RNA-seq for data derived from Oxford Nanopore Q20+ chemistry ([R10.4 flow cells (>Q20)](https://nanoporetech.com/about-us/news/oxford-nanopore-announces-technology-updates-nanopore-community-meeting)). Due to the expectation of >Q20 quality, the input data for the pipeline is not dependent on Illumina paired data. **Please note `scnanoseq` can also process Oxford data with older chemistry, but we encourage usage of the Q20+ chemistry when possible**. The pipeline is built using [Nextflow](https://www.nextflow.io), a workflow tool to run tasks across multiple compute infrastructures in a very portable manner. It uses Docker/Singularity containers making installation trivial and results highly reproducible. The [Nextflow DSL2](https://www.nextflow.io/docs/latest/dsl2.html) implementation of this pipeline uses one container per process which makes it much easier to maintain and update software dependencies. Where possible, these processes have been submitted to and installed from [nf-core/modules](https://github.com/nf-core/modules) in order to make them available to all nf-core pipelines, and to everyone within the Nextflow community! @@ -30,7 +30,7 @@ On release, automated continuous integration tests run the pipeline on a full-si ![scnanoseq diagram](assets/scnanoseq_diagram.png) 1. Raw read QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/), [`NanoPlot`](https://github.com/wdecoster/NanoPlot), [`NanoComp`](https://github.com/wdecoster/nanocomp) and [`ToulligQC`](https://github.com/GenomiqueENS/toulligQC)) -2. Unzip and split FASTQ ([`gunzip`](https://linux.die.net/man/1/gunzip)) +2. Unzip and split FASTQ ([`pigz`](https://github.com/madler/pigz)) 1. Optional: Split FASTQ for faster processing ([`split`](https://linux.die.net/man/1/split)) 3. Trim and filter reads. ([`Nanofilt`](https://github.com/wdecoster/nanofilt)) 4. Post trim QC ([`FastQC`](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/), [`NanoPlot`](https://github.com/wdecoster/NanoPlot) and [`ToulligQC`](https://github.com/GenomiqueENS/toulligQC)) @@ -100,10 +100,10 @@ If you experience any issues, please make sure to reach out on the [#scnanoseq s split_amount: 500000 ``` -- We have seen a recurrent node failure on slurm clusters that does seem to be related to submission of nextflow jobs. This issue is not related to this pipeline per se, but rather to nextflow itself. We are currently working on a resolution. But we have two methods that appear to help overcome should this issue arise: +- We have seen a recurrent node failure on slurm clusters that does seem to be related to submission of Nextflow jobs. This issue is not related to this pipeline per se, but rather to Nextflow itself. We are currently working on a resolution. But we have two methods that appear to help overcome should this issue arise: 1. Provide a custom config that increases the memory request for the job that failed. This may take a couple attempts to find the correct requests, but we have noted that there does appear to be a memory issue occasionally with these errors. 2. Request an interactive session with a decent amount of time and memory and CPUs in order to run the pipeline on the single node. Note that this will take time as there will be minimal parallelization, but this does seem to resolve the issue. -- We acknowledge that analyzing PromethION is a common use case for this pipeline. Currently, the pipeline has been developed with defaults to analyze GridION and average sized PromethION data. For cases, where jobs have failed due for larger PromethION datasets, the defaults have been overwritten by a custom configuation file (provided by the `-c` Nextflow option) where resources were increased (substantially in some cases). Below are some of the overrides we have used, while these amounts may not work on every dataset, these will hopefully at least note which processes will need to have their resources increased: +- We acknowledge that analyzing PromethION is a common use case for this pipeline. Currently, the pipeline has been developed with defaults to analyze GridION and average sized PromethION data. For cases, where jobs have fail due for larger PromethION datasets, the defaults can be overwritten by a custom configuation file (provided by the `-c` Nextflow option) where resources are increased (substantially in some cases). Below are some of the overrides we have used, and while these amounts may not work on every dataset, these will hopefully at least note which processes will need to have their resources increased: ```groovy title="custom.config" @@ -129,6 +129,14 @@ process } } +process +{ + withName: '.*:TAG_BARCODES' + { + memory = '60.GB' + } +} + process { withName: '.*:SAMTOOLS_SORT' @@ -149,8 +157,8 @@ process { withName: '.*:ISOQUANT' { - cpus = 40 - time = '135.h' + cpus = 30 + memory = '85.GB' } } ``` diff --git a/docs/output.md b/docs/output.md index c359c16..26eebda 100644 --- a/docs/output.md +++ b/docs/output.md @@ -48,7 +48,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d
-[Nanofilt](https://github.com/wdecoster/nanocomp) is a tool used for filtering and trimming of long read sequencing data. +[Nanofilt](https://github.com/wdecoster/nanofilt) is a tool used for filtering and trimming of long read sequencing data. ## Barcode Calling ### BLAZE @@ -68,7 +68,7 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d [BLAZE](https://github.com/shimlab/BLAZE) enables the accurate identification of barcodes and UMIs from Nanopore reads. The files produced by BLAZE can be used to assess the quality of the barcode calling and the data. -The knee plot (an example is listed above) that is provided by BLAZE shows all barcodes detected in a sample, ranked from highest to lowest read count. The "cliff-and-knee" shape (similar to the image above) is indicative of good quality. Deviations from this shape can be indicative of concerns with the data, such as low barcode counts. The `*.bc_count.txt` file can be used to accompany this figure to show every barcode and its abundance in the dataset +The knee plot (an example is listed above) that is provided by BLAZE shows all barcodes detected in a sample, ranked from highest to lowest read count. The "cliff-and-knee" shape (similar to the image above) is indicative of good quality. Deviations from this shape can be indicative of concerns with the data, such as low barcode counts. The `*.bc_count.txt` file can be used to accompany this figure to show every barcode and its abundance in the dataset. ## Alignment ### Minimap2 @@ -83,7 +83,7 @@ The knee plot (an example is listed above) that is provided by BLAZE shows all b - `*.sorted.bam.bai` : The bam index for the mapped and sorted bam. -[Minimap2](https://github.com/lh3/minimap2) is a versatile sequence alignment program that aligns DNA or mRNA sequences against a large reference database. Minimap2 is optimized for large, noisy reads making it a staple for alignment of nanopore reads +[Minimap2](https://github.com/lh3/minimap2) is a versatile sequence alignment program that aligns DNA or mRNA sequences against a large reference database. Minimap2 is optimized for large, noisy reads making it a staple for alignment of nanopore reads. ## Alignment Post-processing ### Samtools @@ -182,7 +182,7 @@ Barcode correction is a custom script that uses the whitelist generated by BLAZE -[IsoQuant](https://github.com/ablab/IsoQuant) is a tool for the genome-based analysis of long RNA reads, such as PacBio or Oxford Nanopores. IsoQuant allows to reconstruct and quantify transcript models with high precision and decent recall. If the reference annotation is given, IsoQuant also assigns reads to the annotated isoforms based on their intron and exon structure. IsoQuant further performs annotated gene, isoform, exon and intron quantification +[IsoQuant](https://github.com/ablab/IsoQuant) is a tool for the genome-based analysis of long RNA reads, such as PacBio or Oxford Nanopores. IsoQuant allows to reconstruct and quantify transcript models with high precision and decent recall. If the reference annotation is given, IsoQuant also assigns reads to the annotated isoforms based on their intron and exon structure. IsoQuant further performs annotated gene, isoform, exon and intron quantification. The outputs of IsoQuant can be important for downstream analysis with tools specialized in single-cell/nuclei analysis (e.g.: `Seurat`). ### Seurat
@@ -317,7 +317,7 @@ The FastQC plots displayed in the MultiQC report shows _untrimmed_ reads. They m ![RSeQC](images/rseqc.png) -[RSeQC](https://rseqc.sourceforge.net/) package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data +[RSeQC](https://rseqc.sourceforge.net/) package provides a number of useful modules that can comprehensively evaluate high throughput sequence data especially RNA-seq data. ### Read Counts @@ -332,7 +332,7 @@ The FastQC plots displayed in the MultiQC report shows _untrimmed_ reads. They m ![Read Counts](images/read_counts.png) -This is a custom script written using BASH scripting. Its purpose is to report the amount of reads that are filtered out at steps in the pipeline that will result in filtered reads, such as barcode detection, barcode correction, alignment, etc. +This is a custom script written using BASH scripting. Its purpose is to report the amount of reads that are filtered out at steps in the pipeline that will result in filtered reads, such as barcode detection, barcode correction, alignment, etc. Elevated levels of filtering can be indicative of quality concerns. ### MultiQC diff --git a/docs/usage.md b/docs/usage.md index 60b004c..1ac26a3 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -93,7 +93,7 @@ with ```yaml title="params.yaml" input: "./samplesheet.csv" outdir: "./results/" -genome: "/path/to/genome.fa" +fasta: "/path/to/genome.fa" gtf: "/path/to/genome.gtf" barcode_format: "10X_3v3" <...> @@ -182,7 +182,7 @@ Specify the path to a specific config file (this is a core Nextflow command). Se Whilst the default requirements set within the pipeline will hopefully work for most people with GridION and average size PromethION data, you may find that you want to customise the compute resources that the pipeline requests. Each step in the pipeline has a default set of requirements for number of CPUs, memory and time. For most of the steps in the pipeline, if the job exits with any of the error codes specified [here](https://github.com/nf-core/rnaseq/blob/4c27ef5610c87db00c3c5a3eed10b1d161abf575/conf/base.config#L18) it will automatically be resubmitted with higher requests (2 x original, then 3 x original). If it still fails after the third attempt then the pipeline execution is stopped. -To change the resource requests, please see the [max resources](https://nf-co.re/docs/usage/configuration#max-resources) and [tuning workflow resources](https://nf-co.re/docs/usage/configuration#tuning-workflow-resources) section of the nf-core website. We have also provided a pipeline specific example of a custom configuration file in the [Introduction page](/scnanoseq/latest/#troubleshooting). +To change the resource requests, please see the [max resources](https://nf-co.re/docs/usage/configuration#max-resources) and [tuning workflow resources](https://nf-co.re/docs/usage/configuration#tuning-workflow-resources) section of the nf-core website. We have also provided a pipeline specific example of a custom configuration file in the [Introduction page](https://nf-co.re/scnanoseq/latest/#troubleshooting). ### Custom Containers diff --git a/nextflow_schema.json b/nextflow_schema.json index f9489a5..ac9c38b 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -84,7 +84,8 @@ "description": "Do not load the iGenomes reference config.", "fa_icon": "fas fa-ban", "hidden": true, - "help_text": "Do not load `igenomes.config` when running the pipeline. You may choose this option if you observe clashes between custom parameters and those supplied in `igenomes.config`." + "help_text": "Do not load `igenomes.config` when running the pipeline. You may choose this option if you observe clashes between custom parameters and those supplied in `igenomes.config`.", + "default": true } }, "required": ["fasta", "gtf"] @@ -98,7 +99,7 @@ "properties": { "split_amount": { "type": "integer", - "description": "The amount of lines to split the fastq into (Default: 0)", + "description": "The amount of lines to split the fastq into for faster processing (Default: 0)", "default": 0, "fa_icon": "fas fa-cut" } From 576214ed388e9cc2db51ecd2f84b94a00682cfc5 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Wed, 21 Aug 2024 12:42:41 -0500 Subject: [PATCH 31/35] Params cleanup --- conf/modules.config | 123 +++++++++++++++++++++-------------------- nextflow.config | 1 - nextflow_schema.json | 5 -- workflows/scnanoseq.nf | 9 ++- 4 files changed, 68 insertions(+), 70 deletions(-) diff --git a/conf/modules.config b/conf/modules.config index 5cbcb33..3092140 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -190,28 +190,21 @@ if (!params.skip_qc){ } } - process { - withName:'.*:BAM_SORT_STATS_SAMTOOLS_DEDUP:BAM_STATS_SAMTOOLS:.*' { - ext.prefix = { "${meta.id}.dedup.sorted" } - publishDir = [ - path: { "${params.outdir}/${meta.id}/bam/dedup" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] - } - } - - process { - withName:'.*:BAM_SORT_STATS_SAMTOOLS_SPLIT:BAM_STATS_SAMTOOLS:.*' { - ext.prefix = { "${meta.id}.sorted" } - publishDir = [ - enabled: false - ] + if (!params.skip_dedup){ + process { + withName:'.*:BAM_SORT_STATS_SAMTOOLS_DEDUP:BAM_STATS_SAMTOOLS:.*' { + ext.prefix = { "${meta.id}.dedup.sorted" } + publishDir = [ + path: { "${params.outdir}/${meta.id}/bam/dedup" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } } } } -if (!params.skip_qc) { +if (!params.skip_qc && !params.skip_rseqc) { process { withName:'.*:RSEQC_READDISTRIBUTION' { @@ -225,7 +218,7 @@ if (!params.skip_qc) { } // READ COUNTS -if (!params.skip_qc) { +if (!params.skip_qc && !params.skip_fastqc) { process { withName:'.*:READ_COUNTS' { @@ -505,23 +498,25 @@ process { } } -process { - withName:'.*:BAM_SORT_STATS_SAMTOOLS_DEDUP:SAMTOOLS_SORT' { - ext.prefix = { "${meta.id}.dedup.sorted" } - publishDir = [ - path: { "${params.outdir}/${meta.id}/bam/dedup" }, - mode: params.publish_dir_mode, - saveAs: { filename -> filename.equals('versions.yml') ? null : filename } - ] +if (!params.skip_dedup){ + process { + withName:'.*:BAM_SORT_STATS_SAMTOOLS_DEDUP:SAMTOOLS_SORT' { + ext.prefix = { "${meta.id}.dedup.sorted" } + publishDir = [ + path: { "${params.outdir}/${meta.id}/bam/dedup" }, + mode: params.publish_dir_mode, + saveAs: { filename -> filename.equals('versions.yml') ? null : filename } + ] + } } -} -process { - withName:'.*:BAM_SORT_STATS_SAMTOOLS_SPLIT:.*' { - ext.prefix = { "${meta.id}.sorted" } - publishDir = [ - enabled: false - ] + process { + withName:'.*:BAM_SORT_STATS_SAMTOOLS_SPLIT:.*' { + ext.prefix = { "${meta.id}.sorted" } + publishDir = [ + enabled: false + ] + } } } @@ -568,11 +563,13 @@ process { } } -process { - withName:'.*:SAMTOOLS_MERGE'{ - publishDir = [ - enabled: false - ] +if (!params.skip_dedup){ + process { + withName:'.*:SAMTOOLS_MERGE'{ + publishDir = [ + enabled: false + ] + } } } @@ -605,30 +602,32 @@ process { // UMI DEDUPLICATION // /////////////////////// -process { - withName: '.*:BAMTOOLS_SPLIT' { - ext.args = { - [ - "-reference" - ].join(' ').trim() +if (!params.skip_dedup){ + process { + withName: '.*:BAMTOOLS_SPLIT' { + ext.args = { + [ + "-reference" + ].join(' ').trim() + } + publishDir = [ + enabled: false + ] } - publishDir = [ - enabled: false - ] } -} - -process { - withName: '.*:UMITOOLS_DEDUP' { - ext.args = { - [ - '--per-cell' - ].join(' ').trim() + + process { + withName: '.*:UMITOOLS_DEDUP' { + ext.args = { + [ + '--per-cell' + ].join(' ').trim() + } + ext.prefix = { "${meta.id}.dedup" } + publishDir = [ + enabled: false + ] } - ext.prefix = { "${meta.id}.dedup" } - publishDir = [ - enabled: false - ] } } @@ -704,9 +703,10 @@ if (!params.skip_qc && !params.skip_seurat) { // MULTIQC // ///////////// -if (!params.skip_qc) { +if (!params.skip_qc && !params.skip_multiqc) { process { withName: '.*:MULTIQC_FINALQC' { + ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } publishDir = [ path: { "${params.outdir}/batch_qcs/multiqc/final_qc" }, mode: params.publish_dir_mode, @@ -717,6 +717,7 @@ if (!params.skip_qc) { process { withName: '.*:MULTIQC_RAWQC' { + ext.args = { params.multiqc_title ? "--title \"$params.multiqc_title\"" : '' } publishDir = [ path: { "${params.outdir}/batch_qcs/multiqc/raw_qc" }, mode: params.publish_dir_mode, diff --git a/nextflow.config b/nextflow.config index c527168..e852df4 100644 --- a/nextflow.config +++ b/nextflow.config @@ -38,7 +38,6 @@ params { kmer_size = 14 // Analysis options - analyze_uncorrected_bam = false retain_introns = true // Process Skipping options diff --git a/nextflow_schema.json b/nextflow_schema.json index ac9c38b..d1b7534 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -185,11 +185,6 @@ "default": "", "fa_icon": "fas fa-search", "properties": { - "analyze_uncorrected_bam": { - "type": "boolean", - "description": "Run downstream steps on the bam that contains reads that could not be corrected. Do not use this if no whitelist is provided.", - "fa_icon": "fas fa-search" - }, "retain_introns": { "type": "boolean", "default": true, diff --git a/workflows/scnanoseq.nf b/workflows/scnanoseq.nf index af4f8d5..c5fb4b4 100644 --- a/workflows/scnanoseq.nf +++ b/workflows/scnanoseq.nf @@ -498,8 +498,9 @@ workflow SCNANOSEQ { ch_versions = ch_versions.mix(BAM_SORT_STATS_SAMTOOLS_TAGGED.out.versions) ch_dedup_sorted_bam = ch_tagged_sorted_bam - ch_dedup_sorted_bam_bai = ch_tagged_sorted_bai + ch_dedup_sorted_bai = ch_tagged_sorted_bai ch_dedup_sorted_flagstat = ch_tagged_sorted_flagstat + ch_dedup_sorted_idxstats = Channel.empty() ch_dedup_log = Channel.empty() if (!params.skip_dedup) { @@ -669,8 +670,10 @@ workflow SCNANOSEQ { ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_tagged_sorted_flagstat.collect{it[1]}.ifEmpty([])) ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_tagged_sorted_idxstats.collect{it[1]}.ifEmpty([])) - ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_dedup_sorted_flagstat.collect{it[1]}.ifEmpty([])) - ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_dedup_sorted_idxstats.collect{it[1]}.ifEmpty([])) + if (!params.skip_dedup) { + ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_dedup_sorted_flagstat.collect{it[1]}.ifEmpty([])) + ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_dedup_sorted_idxstats.collect{it[1]}.ifEmpty([])) + } ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_read_counts.collect().ifEmpty([])) ch_multiqc_finalqc_files = ch_multiqc_finalqc_files.mix(ch_gene_stats_combined.collect().ifEmpty([])) From 23a76485ab65088408a0a75d4e12f2de3b484640 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Thu, 22 Aug 2024 11:33:36 -0500 Subject: [PATCH 32/35] Linting --- CITATIONS.md | 2 +- assets/multiqc_config.yml | 4 +- conf/modules.config | 2 +- docs/output.md | 61 +++++++++----------- docs/usage.md | 2 +- modules.json | 114 ++++++++++---------------------------- workflows/scnanoseq.nf | 2 +- 7 files changed, 61 insertions(+), 126 deletions(-) diff --git a/CITATIONS.md b/CITATIONS.md index e5802f9..3e9f38a 100644 --- a/CITATIONS.md +++ b/CITATIONS.md @@ -12,7 +12,7 @@ - [BLAZE](https://pubmed.ncbi.nlm.nih.gov/37024980/) - > You Y, Prawer YDJ, De Paoli-Iseppi R, Hunt CPJ, Parish CL, Shim H, Clark MB. Identification of cell barcodes from long-read single-cell RNA-seq with BLAZE. Genome Biol. 2023 Apr 6;24(1):66. doi: 10.1186/s13059-023-02907-y. PMID: 37024980; PMCID: PMC10077662. + > You Y, Prawer YDJ, De Paoli-Iseppi R, Hunt CPJ, Parish CL, Shim H, Clark MB. Identification of cell barcodes from long-read single-cell RNA-seq with BLAZE. Genome Biol. 2023 Apr 6;24(1):66. doi: 10.1186/s13059-023-02907-y. PMID: 37024980; PMCID: PMC10077662. - [FastQC](https://www.bioinformatics.babraham.ac.uk/projects/fastqc/) diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index 11df6cd..d791390 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -1,7 +1,5 @@ report_comment: > - This report has been generated by the nf-core/scnanoseq - analysis pipeline. For information about how to interpret these results, please see the - documentation. + This report has been generated by the nf-core/scnanoseq analysis pipeline. For information about how to interpret these results, please see the documentation. report_section_order: "nf-core-scnanoseq-methods-description": diff --git a/conf/modules.config b/conf/modules.config index 3092140..cc4fc8c 100644 --- a/conf/modules.config +++ b/conf/modules.config @@ -615,7 +615,7 @@ if (!params.skip_dedup){ ] } } - + process { withName: '.*:UMITOOLS_DEDUP' { ext.args = { diff --git a/docs/output.md b/docs/output.md index 26eebda..24bc378 100644 --- a/docs/output.md +++ b/docs/output.md @@ -37,7 +37,9 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d - [Pipeline information](#pipeline-information) - Report metrics generated during the workflow execution ## Preprocessing + ### Nanofilt +
Output files @@ -51,7 +53,9 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d [Nanofilt](https://github.com/wdecoster/nanofilt) is a tool used for filtering and trimming of long read sequencing data. ## Barcode Calling + ### BLAZE +
Output files @@ -59,8 +63,8 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d - `blaze/` - `blaze/*.bc_count.txt` : This is a file containing each barcode and the counts of how many reads support it. - `blaze/*.knee_plot.png` : The knee plot detailing the ranking of each barcode. - - `blaze/*.putative_bc.csv` : This file contains the naively detected barcode for each read. - - `blaze/*.whitelist.csv` : This is a list of the "true" barcodes detected for a sample. The length of the file should roughly match the expected amount of cells that is expected for the sample. + - `blaze/*.putative_bc.csv` : This file contains the naively detected barcode for each read. + - `blaze/*.whitelist.csv` : This is a list of the "true" barcodes detected for a sample. The length of the file should roughly match the expected amount of cells that is expected for the sample.
@@ -71,22 +75,22 @@ The pipeline is built using [Nextflow](https://www.nextflow.io/) and processes d The knee plot (an example is listed above) that is provided by BLAZE shows all barcodes detected in a sample, ranked from highest to lowest read count. The "cliff-and-knee" shape (similar to the image above) is indicative of good quality. Deviations from this shape can be indicative of concerns with the data, such as low barcode counts. The `*.bc_count.txt` file can be used to accompany this figure to show every barcode and its abundance in the dataset. ## Alignment + ### Minimap2
Output files - `/` - - `bam/` - - `original/` - - `*.sorted.bam` : The mapped and sorted bam. - - `*.sorted.bam.bai` : The bam index for the mapped and sorted bam. -
+ - `bam/` - `original/` - `*.sorted.bam` : The mapped and sorted bam. - `*.sorted.bam.bai` : The bam index for the mapped and sorted bam. +
[Minimap2](https://github.com/lh3/minimap2) is a versatile sequence alignment program that aligns DNA or mRNA sequences against a large reference database. Minimap2 is optimized for large, noisy reads making it a staple for alignment of nanopore reads. ## Alignment Post-processing + ### Samtools +
Output files @@ -95,25 +99,8 @@ The knee plot (an example is listed above) that is provided by BLAZE shows all b - `mapped_only/` - `*.sorted.bam` : The bam contaning only reads that were able to be mapped. - `*.sorted.bam.bai` : The bam index for the bam containing only reads that were able to be mapped. - - `qc/` - - `samtools/` - - `minimap/` - - `*.minimap.flagstat` : The flagstat file for the bam obtained from minimap. - - `*.minimap.idxstats` : The idxstats file for the bam obtained from minimap. - - `*.minimap.stats` : The stats file for the bam obtained from minimap. - - `mapped_only/` - - `*.mapped_only.flagstat` : The flagstat file for the bam containing only mapped reads. - - `*.mapped_only.idxstats` : The idxstats file for the bam containing only mapped reads. - - `*.mapped_only.stats` : The stats file for the bam containing only mapped reads. - - `corrected/` - - `*.corrected.flagstat` : The flagstat file for the bam containing corrected barcodes. - - `*.corrected.idxstats` : The idxstat file for the bam containing corrected barcodes. - - `*.corrected.stats` : The stat file for the bam containing corrected barcodes. - - `dedup/` - - `*.dedup.flagstat` : The flagstat file for the bam containing deduplicated umis. - - `*.dedup.idxstats` : The idxstats file for the bam containing deduplicated umis. - - `*.dedup.stats` : The stats file for the bam containing deduplicated umis. -
+ - `qc/` - `samtools/` - `minimap/` - `*.minimap.flagstat` : The flagstat file for the bam obtained from minimap. - `*.minimap.idxstats` : The idxstats file for the bam obtained from minimap. - `*.minimap.stats` : The stats file for the bam obtained from minimap. - `mapped_only/` - `*.mapped_only.flagstat` : The flagstat file for the bam containing only mapped reads. - `*.mapped_only.idxstats` : The idxstats file for the bam containing only mapped reads. - `*.mapped_only.stats` : The stats file for the bam containing only mapped reads. - `corrected/` - `*.corrected.flagstat` : The flagstat file for the bam containing corrected barcodes. - `*.corrected.idxstats` : The idxstat file for the bam containing corrected barcodes. - `*.corrected.stats` : The stat file for the bam containing corrected barcodes. - `dedup/` - `*.dedup.flagstat` : The flagstat file for the bam containing deduplicated umis. - `*.dedup.idxstats` : The idxstats file for the bam containing deduplicated umis. - `*.dedup.stats` : The stats file for the bam containing deduplicated umis. +
![MultiQC - samtools idxstats](images/samtools_idxstats.png) ![MultiQC - samtools stats](images/samtools_stats.png) @@ -121,6 +108,7 @@ The knee plot (an example is listed above) that is provided by BLAZE shows all b [Samtools](https://www.htslib.org/) is a suite of programs for reading, writing, editing, indexing, and viewing files that are in SAM, BAM, or CRAM format ### Barcode Tagging +
Output files @@ -143,6 +131,7 @@ UMI quality tag = "UY" Please see [Barcode Correction](#barcode-correction) below for metadata added post-correction. ### Barcode Correction +
Output files @@ -157,6 +146,7 @@ Please see [Barcode Correction](#barcode-correction) below for metadata added po Barcode correction is a custom script that uses the whitelist generated by BLAZE in order to correct barcodes that are not on the whitelist into a whitelisted barcode. During this step, an additional BAM tag is added, `CB`, to indicate a barcode sequence that is error-corected. ### UMI Deduplication +
Output files @@ -171,7 +161,9 @@ Barcode correction is a custom script that uses the whitelist generated by BLAZE [UMI-Tools](https://umi-tools.readthedocs.io/en/latest/reference/dedup.html) deduplicate reads based on the mapping co-ordinate and the UMI attached to the read. The identification of duplicate reads is performed in an error-aware manner by building networks of related UMIs ## Feature-Barcode Quantification + ### IsoQuant +
Output files @@ -185,18 +177,13 @@ Barcode correction is a custom script that uses the whitelist generated by BLAZE [IsoQuant](https://github.com/ablab/IsoQuant) is a tool for the genome-based analysis of long RNA reads, such as PacBio or Oxford Nanopores. IsoQuant allows to reconstruct and quantify transcript models with high precision and decent recall. If the reference annotation is given, IsoQuant also assigns reads to the annotated isoforms based on their intron and exon structure. IsoQuant further performs annotated gene, isoform, exon and intron quantification. The outputs of IsoQuant can be important for downstream analysis with tools specialized in single-cell/nuclei analysis (e.g.: `Seurat`). ### Seurat +
Output files - `/` - - `qc/` - - `gene/` - - `*.csv`: A file containing statistics about the cell-read distribution for genes. - - `*.png`: A series of qc images to determine the quality of the gene quantification. - - `transcript/` - - `*.csv`: A file containing statistics about the cell-read distribution for transcript. - - `*.png`: A series of qc images to determine the quality of the transcript quantification. -
+ - `qc/` - `gene/` - `*.csv`: A file containing statistics about the cell-read distribution for genes. - `*.png`: A series of qc images to determine the quality of the gene quantification. - `transcript/` - `*.csv`: A file containing statistics about the cell-read distribution for transcript. - `*.png`: A series of qc images to determine the quality of the transcript quantification. +
![MultiQC - seurat](images/seurat.png) _High level statistics are provided in the MultiQC report, as show in this image. These provide an overview of the quality of the data in order to assess if the results are suitable for tertiary analysis._ @@ -204,7 +191,9 @@ _High level statistics are provided in the MultiQC report, as show in this image [Seurat](https://satijalab.org/seurat/) is an R package designed for QC, analysis, and exploration of single-cell RNA-seq data. ## Other steps + ### UCSC +
Output files @@ -217,7 +206,9 @@ _High level statistics are provided in the MultiQC report, as show in this image [`ucsc-gtftogenepred` and `ucsc-genepredtobed`](https://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/) are stand-alone applications developed by UCSC which, together, converts a GTF file the BED file format. ## Quality Control + ### FastQC +
Output files @@ -263,6 +254,7 @@ The FastQC plots displayed in the MultiQC report shows _untrimmed_ reads. They m [Nanocomp](https://github.com/wdecoster/nanocomp) compares multiple runs of long read sequencing data and alignments. It creates violin plots or box plots of length, quality and percent identity and creates dynamic, overlaying read length histograms and a cumulative yield plot ### Nanoplot +
Output files @@ -284,6 +276,7 @@ The FastQC plots displayed in the MultiQC report shows _untrimmed_ reads. They m [Nanoplot](https://github.com/wdecoster/NanoPlot) is a plotting tool for long read sequencing data and alignments. ### ToulligQC +
Output files diff --git a/docs/usage.md b/docs/usage.md index 1ac26a3..3ad83da 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -88,7 +88,7 @@ The above pipeline run specified with a params file in yaml format: nextflow run nf-core/scnanoseq -profile -params-file params.yaml ``` -with +with ```yaml title="params.yaml" input: "./samplesheet.csv" diff --git a/modules.json b/modules.json index 8d17463..b3ecaa7 100644 --- a/modules.json +++ b/modules.json @@ -8,168 +8,122 @@ "bamtools/split": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "cat/cat": { "branch": "master", "git_sha": "9437e6053dccf4aafa022bfd6e7e9de67e625af8", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "cat/fastq": { "branch": "master", "git_sha": "0997b47c93c06b49aa7b3fefda87e728312cf2ca", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "custom/dumpsoftwareversions": { "branch": "master", "git_sha": "de45447d060b8c8b98575bc637a4a575fd0638e1", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "fastqc": { "branch": "master", "git_sha": "f4ae1d942bd50c5c0b9bd2de1393ce38315ba57c", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "minimap2/align": { "branch": "master", "git_sha": "a33ef9475558c6b8da08c5f522ddaca1ec810306", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "minimap2/index": { "branch": "master", "git_sha": "72e277acfd9e61a9f1368eafb4a9e83f5bcaa9f5", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/minimap2/index/minimap2-index.diff" }, "multiqc": { "branch": "master", "git_sha": "b7ebe95761cd389603f9cc0e0dc384c0f663815a", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "nanocomp": { "branch": "master", "git_sha": "3f5420aa22e00bd030a2556dfdffc9e164ec0ec5", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/nanocomp/nanocomp.diff" }, "nanoplot": { "branch": "master", "git_sha": "a31407dfaf0cb0d04768d5cb439fc6f4523a6981", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/nanoplot/nanoplot.diff" }, "pigz/compress": { "branch": "master", "git_sha": "c00055a0b13d622b4f1f51a8e5be31deaf99ded7", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "pigz/uncompress": { "branch": "master", "git_sha": "c00055a0b13d622b4f1f51a8e5be31deaf99ded7", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/pigz/uncompress/pigz-uncompress.diff" }, "rseqc/readdistribution": { "branch": "master", "git_sha": "6c7d8f1d6247655e4bc4d97f37b68b2461f645f6", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "samtools/faidx": { "branch": "master", "git_sha": "aeb02a39d4c463598bfdcb2d964dbb7acbcf1298", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "samtools/flagstat": { "branch": "master", "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", - "installed_by": [ - "bam_stats_samtools" - ] + "installed_by": ["bam_stats_samtools"] }, "samtools/idxstats": { "branch": "master", "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", - "installed_by": [ - "bam_stats_samtools" - ] + "installed_by": ["bam_stats_samtools"] }, "samtools/index": { "branch": "master", "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", - "installed_by": [ - "bam_sort_stats_samtools" - ] + "installed_by": ["bam_sort_stats_samtools"] }, "samtools/merge": { "branch": "master", "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "samtools/sort": { "branch": "master", "git_sha": "4352dbdb09ec40db71e9b172b97a01dcf5622c26", - "installed_by": [ - "bam_sort_stats_samtools" - ] + "installed_by": ["bam_sort_stats_samtools"] }, "samtools/stats": { "branch": "master", "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", - "installed_by": [ - "bam_stats_samtools" - ] + "installed_by": ["bam_stats_samtools"] }, "samtools/view": { "branch": "master", "git_sha": "0bd7d2333a88483aa0476acea172e9f5f6dd83bb", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] }, "toulligqc": { "branch": "master", "git_sha": "061a322293b3487e53f044304710e54cbf657717", - "installed_by": [ - "modules" - ], + "installed_by": ["modules"], "patch": "modules/nf-core/toulligqc/toulligqc.diff" }, "umitools/dedup": { "branch": "master", "git_sha": "3bd4f34e3093c2a16e6a8eefc22242b9b94641db", - "installed_by": [ - "modules" - ] + "installed_by": ["modules"] } } }, @@ -178,40 +132,30 @@ "bam_sort_stats_samtools": { "branch": "master", "git_sha": "4352dbdb09ec40db71e9b172b97a01dcf5622c26", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "bam_stats_samtools": { "branch": "master", "git_sha": "f4596fe0bdc096cf53ec4497e83defdb3a94ff62", - "installed_by": [ - "bam_sort_stats_samtools" - ] + "installed_by": ["bam_sort_stats_samtools"] }, "utils_nextflow_pipeline": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfcore_pipeline": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] }, "utils_nfvalidation_plugin": { "branch": "master", "git_sha": "5caf7640a9ef1d18d765d55339be751bb0969dfa", - "installed_by": [ - "subworkflows" - ] + "installed_by": ["subworkflows"] } } } } } -} \ No newline at end of file +} diff --git a/workflows/scnanoseq.nf b/workflows/scnanoseq.nf index c5fb4b4..871b578 100644 --- a/workflows/scnanoseq.nf +++ b/workflows/scnanoseq.nf @@ -500,7 +500,7 @@ workflow SCNANOSEQ { ch_dedup_sorted_bam = ch_tagged_sorted_bam ch_dedup_sorted_bai = ch_tagged_sorted_bai ch_dedup_sorted_flagstat = ch_tagged_sorted_flagstat - ch_dedup_sorted_idxstats = Channel.empty() + ch_dedup_sorted_idxstats = Channel.empty() ch_dedup_log = Channel.empty() if (!params.skip_dedup) { From a28bd0b39a1c6cdeaf179bab86baaf2be90c3419 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Thu, 22 Aug 2024 15:48:14 -0500 Subject: [PATCH 33/35] Changing default value of min_length --- nextflow.config | 2 +- nextflow_schema.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/nextflow.config b/nextflow.config index e852df4..c70c6f5 100644 --- a/nextflow.config +++ b/nextflow.config @@ -22,7 +22,7 @@ params { split_amount = 0 // Read Trimming Options - min_length = 500 + min_length = 1 min_q_score = 10 skip_trimming = false diff --git a/nextflow_schema.json b/nextflow_schema.json index d1b7534..6133333 100644 --- a/nextflow_schema.json +++ b/nextflow_schema.json @@ -113,7 +113,7 @@ "properties": { "min_length": { "type": "integer", - "default": 500, + "default": 1, "description": "Choose minimum read length.", "fa_icon": "fas fa-cut" }, From 86b0556b1f636f0ae1c500609164cb9be24176bf Mon Sep 17 00:00:00 2001 From: Lara Ianov Date: Fri, 23 Aug 2024 12:42:04 -0500 Subject: [PATCH 34/35] updated read counts and seurat images with trimming enabled --- docs/images/read_counts.png | Bin 49146 -> 121376 bytes docs/images/seurat.png | Bin 92378 -> 87368 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/read_counts.png b/docs/images/read_counts.png index 73c77a7166b617776a1fda97e4df510c8a7642b2..a2fd4b01b38012a022cb87ead886853bd0c1e426 100644 GIT binary patch literal 121376 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 diff --git a/docs/images/seurat.png b/docs/images/seurat.png index 2ca6ec210f7a16609d1f7c488ee3ddd6f8089e29..34ce451da396ec08874ed5ef6ad7d7e9e1930c53 100644 GIT binary patch literal 87368 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 literal 92378 zcmeFZWmH>Tv@Q%SMT(cA#VIbqHMkXr3Jxj7i#tI}@!}NMQmifR7A#mxutI_2gcK<5 zZg=yZbM86gyS!t3f4)E8xQt{F_RijG?YZWf^2}!vsjaDu|B&h-8X6kD$}@%MXlNMi zXlUqr*qFePXfj$ZG_;4sw(|1YD)RF5+OAGkw)U22XwM>(Q?ax^PLcKPoD_zKq!6uz z%ojAEJ(nXi5sy%PCWp-&CZk=&8O7Q7IU?d6Jsuc%zcVEBzJ#gve8%Qqm@qjz(hw;tzMW7Hf4=D3K+T&Pfev!DZht+{4xHXl%>jJx4 zk#ckSX4U1=2{8~q@QYUtll>Jn5uX8}Sk1+n+ItHwbprfMGjy-!VinC~425A{))@)2 zuqOLl`l;#Ykwr>P;?pV%sH?t?zyRVnCd+Iu5!;~bag~T$*woV3W`&T##6z2O>Eyn| z2%3)dK3~SYgAw zMDK_?FsYm2cHNm*1dE3xy9Um{P>rtfAX68Jw3HT7+XA5!F@`(m3Z#%ce4x-Hi{4LmhzrP z5aKZ4)IOR`CxO}@z@h9AoS6|3|(2iugMxOi?h<>laOFHpB<~3&;x&V@1 z^r0#C0g_9Ua45W?W7(P8kHRqw)G>*asC*oN6PJgkN}wpe_L)l?FG++0FZrFSY@|+! zPUsi@m)zfo$HUeY=Hyg#n7(M)aAmwN%I6*_|BL1>m=QcASE1yjr1y#NbLLN)zeazh z4%yD1ghl`CPBS;=h+pUC3X~E21LC6tOXgPSQnBBmrs&>9~aHOtZ#LnMisefxo=F_tdjJt%pZR!S!lW5 z6AOoh8f&#Z3sAjg(@JPavi{+=Jo#O(Uj(s`6j&&u&HM5-2iNoOFW6p)mOIOvDI|Qd zDfnCVUDvow|Ess^Ud~e5BgG#|?CR_gt3QJVw`$a98EFqTVu5J5L%TfJTj~^@M zE@>dOg|&}g@aSNE(f`Jmtf-MsrW2>#@-?5MpW~Q=j|1_NUjlUVOU}L(mN>ky)A9Wrt1I#% zx1#N(f806q5i$O^uo6t=d~H-(ue^r-n7V+RTj+|^AkQElw*z+|cftfuS(G8uw4j65 zmf+U&t(xgB@y9e?G(nnQhs3hU-ATni=E#DIy+)KhggoxMGdBx0&o!fbdVPNSY#e1A z=KLi&qC96mFFfBm&&L$UWWeOar^2J9dW1(A_BBibUjkp6g7QfZm4o10J}Q1)AuGyN zN)ZZaVTMfaG>i0K8MDGY8T{&F8eW;lX`NOCR$r}>twaXQ+?3sd&KwWso6?$w+(O;# zR_ANz4S2a-xv99$xolH9Q#QDbxF80U`po(cHS4wKR$H&L%~}`E6Jn}0J`MV03TKMc zTh&v~sLsrIT1ZH@2zi!yR%{J!L63bmcOM2(y%L)< z*QP{94@PqiQCNdkg@%f=rJF>X|1?s&ogv2ILUTv)8zW#86b8LmJ!)BNs+xN{Td?hZ z^7N#2`#GTrVZCx$pMaLXR{1LWuxt^#KnyhPtRFG0w&^jt5!?`U!m)E8#YPvHE0^mC zv0SiOc(_m;;1l52j@hmgh;>7Hy?UP)T^4=j-gZ^3KDDl-o!|(&^Q+g&MC@$*Ul{)y zR2o!@HgaPS;NVTs?u-87eMvF>2otVvHq(_8@+90k^hTUcLfS82`Er$5n3$7EoQXXl ziiuFMEpGnD$!r#&WJWhj2>~u)O;`^^^!D|G$mTdc&8SjA{x(I z-{I96``~^gLF9u-FLEl7asBQ(sI7SctMBPP=U4?R~Wv}5N{DtIm#B*hg`S%YyH)`M2uGbQ-nXP%O zkx*7qYNVeI6b!tOvove2G><$^v{ds^T={%2K@h=gr#$gR^qC+1lYY~*xeR&55S`R+ zh5g_H(4=Go{|Ra|t*|eZotuPb!_cwbZ*0F4+z!jt`=sZrTU+tVq{-28fn()c#`wtk zpYbib!^uAtl=>U($BW`i&4(WCWeui~>g&0%-}nw^hG%vM7lFGsd3iEzGRDqM`5V3K zbU&pZ25in-G}ulSIfc%`?Gz^zEfpccZo-g@A1lTCxh(Ys_G>(zT=O-gEw37nwuR#y zu+)-N_f^ju!tI@S3RB5a+GeV}`^Nb%s@Jo-vlFvN_ZRmkOfXyOx6hv^7`haXmQ;UL zt$F)mJbZ3;PUOUU+qQJ#8_&0Em|o>cKun;9TbYi-l+j#g^O(>VAH%DvF$V>He5Hnc9C(Z4~4c z_khMudPsEM8@{VBuG0SlZuJEUJ+M)G8&xaRR(JAp@$0ehWc|l>!)rq?!xQ&q%4C5a z>qzT^Va+Urgovl9d%&N2H*$d&OUKIOD4zN4w1uDk?0-j-5doI2qoKy93VSM3F9wV2+B2``pL!(atR1Xv_>i4# z>PQ#gEYnQ|`cZxl)C@2c{vx0+Z6V?A^V_L$wdXzgeUKukPx;~X%k!G`dpD8ALMKUL z_q11WWDX6{-V?`EV^M}-e~gDdf20V#_j^cF*s69XNi$cFYrm&j51QCqs}~$NT^n{& zz7sg~n!iNyboCOX#(KXXarEJRAad2U)K{_6&_Lq=K4YVyhuflI0H4r-Hx=+kL%W|C zhK2?FegwP~KHdATvl#84?*G?k^u60J%D#|SQ2~CxFn6`IbabTOL}1*ULIaXsfYCR^k7#DEAi(FO8-0Qi5V4;D5gVf1LU65&y@P`u}|;A3vYa|Ge~noce!W`pV7HRo=+~7}H(qznA7e zFaDn=|MNmH==Rb7hbaC-&i@<*1TFOt4Eo=TCiU>^l}r^HnhctXg6vCg^v&!CFkQv- zJ}lWDC3Mm%qs?tiu9wCw5)*Z}xE_OblMh-Z$ueJ6wV3ctz~%5TB(!C2{8o1k#CK+2 zIL)2hYhOKRI+5hF9?IGoNEbMe7#^@axe#^ZCniF_`;~@57Z^Pf z!hy|5fA7v02^Vmh#C~EO{%_Ym4fu)|@ecdWmwF|}(*TW1gA!blf0f z`6&KWsMD&9NB!=pE66OR_W#S!5giz6GE0*fnRU&)cgu$8_QCJp`P9I{|F0kX?+7+V zzH*#rS2&>;lTx(vn5IP8#za}>#_uX~Ce1=oH*7YLE1GS?U4rev(D>xIM9zr#BpWWRMSQ1a3R&e>AQa`gz)^{c6^+WlNWBvzzE|5EiX-R~Y_5 zs`&WJ7fogL)8Ez+IV1Z^z+BuwZKrP{m3QV_TSd%lyBb5)K&`(_{PubZH71SSVm5x} zE8Cjj-YInwP*8?syVS*I&4&<>_Q}TNu!hK-I{}0I%B&)}$seifQ}eicgiUXIDscEf z+wC_2UZ@z6ln+0q?JDNvE;+V-y}wIX@30jx-jcOzN*?_pqlL8Ww6z#Pmy_oN$J9}6 z*XMR8qiUctWW4m%;fuAy;%v_hqt`(XW*MWno=+ErPGhT=LOXe@vYhPMYr7Thb^&c9vk_0btU4P6`CbvK{q zE{|~!JQx(=h6}xsxBJucMJIpui4zPdb@u1uHxLq#k6SPn;c>K_R>wD{(tR0(n$*xc zXZ@(FeFP}B>BoHFjXxGs`dxySnPJfWxH|bgfeBF_qB4_ym;)_IwEw}J$~BY99I*SK z-FLgGk1!n%W$4mFI!9$!ij?%9uCpWGcGZ$PE09>ta#Nj&6p7&(d?ZVBze#*+R`UlHFX8NC;rZ(QpohZxGbaIk|&nAEl*bmhyEkA%0*>%oxv6(vre%sjf2{d~dS2^$SMg#OE16DG4byK+ znoPXr#yvKFCumrD0>Wv$*lrnilK;N7(BAHQzE(VkFETp%@rMtJ*x1qywmt7t) zz9$q35f}!$Mg7Y4m@wFmmnUGyd2IG>$~t$B;oO3fR%`%E7})ULukmXB5DtGs#Yzl? z9!M}0g?{cOhxjE>^ri8c_rv|K&sGbay;DP7DhcC+z-@`qDl6$IE|tUTU2lwR=t{aN zml!Hqz%L{46d7K9psyd$b%4?!i}EwmH*!=krGG>V{gbd=)-Yc^mJ~poh>1`2=Y~M? zP`hEPekSEO6jxn84m;f{3-#xtmZu)Xzm9y0=u#<;)})snEIeQi+azjlyE>i$2Ak;t zkcBwu?O4fU{Zy7l#?8Gxp{uK%K&QRBXXTUop$p2i&~BQ5Q>59bDk7rtk|AXX(DcGB z!#f?HjsHC%eBT0dX<+Utg;Xwf!T7?vZwTMt@0$HUB{wXKMe|GU6pmm!X6eGks^AJK zRidIbwS|+*8D#8+vg%}6VI%-MxsBmRnU^U&7lTa?oIJxvPb|X~1T^A}fHn=#xO5Y9C-!R#URMG(?-wDBu~oX|CB}*HAxP?PUN|ksla=53 z%7h?#UVEZ00W7`;S{%{P6rvg7S!en7`M-fiPOWuD-pJ4^+f!BM&-#D&Lebt&5=~0< zJboeC4J*#^>Bsd+sRwq@1Yz06cuDGvO@7R!l>*BF2O~k4Uk2&kIir2+!4hB;xk;j4 zM~9Q=7_?sS@%F%Mlmv%J8P#!zd!_krzUl$8JZ zZ%64=su^7qk5|JnG~F%;?uI1zqK4&an)|4V+RPXk(b#T1uEW`Ks+Tg2M^aq4omrb; zfATWA8L+o!s~KvMd-bp(@r}m(IH_p?vzctK`L)*H_R??$T5}b6TIkP;J57%{&aXdb zilY;TcHAd%ftO4I$q_FH(rYJ8eZ??>OUj$SJ6CB_M#)|8m za{r6tfKzi(`>`F0lQ@TC>zNOi6PzF-a*f76uz^sIQ5Du?g&Y-@^zJgi_HQ4KX@S(p zq6YxyDGa*&EpFRo1l%%s!Dpjv^?2Ub33n-QZ}fepiFB5nyl9<&0n_j^EP2ks6cbMa zkbU|)C2Cym+ISRaVIDb?Y1FXv4UA@DDYe?WpS?IKjR;Ma#EiRETN}5*&fqS;^vMJJ zPYKq8(I6st$Y1YHuExdp>B_u^(KtVd;c$ioY@R%F(vL%0fN$hpTAyulvvu|HWaLTv z^o!9sTbS2^XRUd67LNLHEti1Mj9JwJyN?_TEj7?W_h#LOlbIbB{7<-z8c55@K_UVn zEKdx-!|d~D{B}E$Z*3_nM7kBi`uFvmKwncK0Zr~aWNcn4IpNvj9{VIa;X!BLtTXro z`N>wWTe=^qCDDu;LN2%@zUtl?W~ySmr8?ICU^#nF?iCPOT+zKJgdF=KL&-098?}E` zn-hh^N?)Ijjx-WVopyMhLBbx-yN_vD&e->aNlyD*D$2~5#zA0h!c!I>yT7Epl+4o4 zj+~^F>+{pe_1ll6EBev>x6Gk#MR92zalXB)}#eibOHnY)1D22~b2WHf#sZoLTz<8Mz|AWiCJ<4#T&G*m12Q%rZ<8**Bw^}( z(P8j`Menem6}E@25;6an{kN}0svZnamTio0WbH)Qn0OT0szmY~6z~*_ z2!hKgKLfKgJyU2;6huAVwCw5>6*o?s;Y+=wm%*^h3l?~+53lrlK%|u~8;qHZk?b7U znzE5iUL~T(ymooEnoARy$5&8E*=uo}N1D#Wg;!yDS3DlHmn$>AL{7`IH+e}RJW;5Y z`jSJPO_QRVzGhhJVgSVWIMj3fYjJZAIRreL)I9KKEm@y=Npphy!CAFAn;##D!cBIM z`Fpxm#@9c5y}M#8S58Ue5+I_>)9Rurz~#PbCIeiO+BH*180|}l-=3nOb9=VgXO@?I z3<0exSL?s4@^icAVIxaur#~!rhXpuD&EU=tHuKasNEeBcvZL1tw-VT$UB6I zMII%d7y>F6vs*gkB}n1iQ^k!Fimfk8 zfu%XMopDj!_-@rrrj*S*{5Zp8Y#_yp@eACT*2gWlqM%kSy8TMmfSFz2*64XU+m^b1 z2QH|VvjR4Hb$zjeWNF7cxwYZ;7jn4VFYC+iewe*D8I7gM^Nk9KXAd6b%-fQ(S)oZ| z)NZ*PwyaIZ23DtSs);B26W!hs(TlgV^F|SDR(P!7&C0G>uLXbW%*!h5$9a9@faBX* zNi!#)vsy{F<_Wb7atnj7Kjof;1h)F_c48smuWCk{+*Yf*X#Ed=R_DFnv=ChYvLSu4 zSW=cZg!lwjyna_llMZ#ePLc<2fXvA&53M&G>-=PAXV+7pt7IF9gpQ$hGxhU6cGd@P zw;EBg^;0*du0NQs^U?BlyOoKyfe5_X**hRKOvJ#(Y(9KuEJfwT_f#0`9Fp2C!W)a) zStk8i)8Efg&EvX8+}wr^cj_mF7WPZY&4djg1L>J1R;ES{fe!{oml@}I?aRK8)QxFL zw+gDqVjurDC%jo!$n=V=klpWj2FoCNl}0UH-+D6NQX9#TjNoZ0y|uEcGsn|*pm3Sq z$upv4qNR1S0fF9ljRQ2MLG@ED!xoQ?l{CcWxE@3UO!{7bI7f1>DARHMWLSKo)Ur#N z7)PTLdb!s}f{GBC5CFaQ2SQ1S-{~d+XUp4RPaJnAMc#Brkjc@>Q;972x#4aTG5*Mm z0<|^P##|N|)0Z+xh00su)NYiwi0g-t;bsg7gvVn#jgowDN4nGxP`|m2A|$R)Q4Sx? z2?VZpHRV6WjLFLM*Wo}5@7LXlEbz_~fBA6`RnjxYdH9<{^&QTZIfxFU5Eld+(RxnX z8yu1J)Q_S0Hf1x@-syZ%Z#LTxEnLJK$@-JSz$v`8 zccq`bcK3v$AjVe=;nYixP0M5r$gn3X@I|`_uUVIHwMTxU6of^YPHj_1>*Jh4-4q%XZu9=7w!>S^;85a}Ju z?o^&J`xv1KXCM~0_%XxDZJe-mG=RJRy5k+XX_~5p$e9Yo6CbKD)O`%^cx0I+oiO%E zjd~7!HG|Kz#hDpJV<)fO{#gMEF8ck&3QNmcQ6`N1btA~Q$k>HjWtn4#noP?$U@4AQ zU-at3U7$`aL69d39A!9kZPL}0o*%^!cv&@|u%xaqOm`0l!ou|yPlYK5KrOsMbYUd? zTs+4GsvqJIOZqIWtTcW{gb5sEtckH@?oZY(7lR3@50dtnRYxg`NeH~Dh>Pqd%N+ql z_r&{w8zU%i^SHfRY|eeGNrg3A5bya2wWfr{3Mdf3?J zHlFGGSe$p7Mml-25V-RU%Pmd=h^I)C3wcdh2CW-8=osID;8c@i5!J*wdWgGo0Ig5k zOL`lS_d{%VrF;LV@eho3{!Koyw+^ItIi%Y>C};)1%f^kb#ar%*kpYp)+{bx#`Ig>T zk^5gp0rJX6?HLG&^_@lq7{i7h0L}12O1|6~;{dT+1^~M0xt(on-uaxsLHwumdnG~6 zq;>x`N4MKK@&sm^+!dh!k=3Ul08WkTu~Esmlgr2mtg$6?g~u! zt6%>%$3bRbj!l;yo_Bf8TR~&q3RsqI5N|0ZY|K+sg!dOH6)$5ddB zEBljE|0ZavXMmvZBRSsw+Z_L2D8sL(0r&u-5gG^yIJ4AHp#eaoI43~Shf?~YDPO$G z%Jn}^zXgv<#C5T*R6b4koeC69n4AMK-CU(v*IV&5E$OR2Qdfs#8A~IbgG{>s_|XUe zBejP2*f^8Y4Y?`?bc#47`)(m7z@q=9^B{kj6;J5;NSgUP4>yhodPK>jWq&5J3U{yYykk!_VJ8U#kxMtA#0G~ z0dhFa&};2$agJ-N&(XKF0^s>;XMjw@?t?s*NL&YVs`1h_02z_1b^!C*q6P2@IkT~Q zTh$02$Hk5y+ZJ4hID~N)&-x@5onNK4F^13al=a*{iQtqq-SC@=)?-%yi>tZ~lpgl! z48Mzbb#u8Yjf+bKxR;bb7V2BH1u!xowSE94T090qwQ2_g&fA1`TuLiK1Wb#JvVK)} z&zG3s2n-=ht%o@Q$eG*C*>K>r>m$|=wLM4LLgaH~8-1!3`Lxs=lGcW&w-E2q_S|iv z4c!J3iX#uO8LD1OKdzuBxvsTtW)w^}1mMM`Ph-e0mc(;XwE*13O@7Suhor7u6PphM z%((>!6QeNoL~j+*Ml>j+8}!^dnLAsGLsZ-l0QF*h0kqLh^|E$Ma{~ZjUy5v$*65NB z-})+DQ|R)y*m2pwM_+{KuA^-)jSKi7BDUhAD8qqUU{oR z?v!zJKH1)Ui;+nJPJg?qkJb$c8)^VpIb7m!MBZr7jy*)s_0O}LtY`aw9(MI0fFvlo zWi`ilX^^xG0sxN$T9I$dCQw}mWJvAdgV5E9YV4P)pHh6jjJjEdR#;!9dF0gkJA~d} zx&Q)#MF1S&_nI)UZc5fQ{6XXS+br@&c^$2ekvOs4b}yrcpW{<}JZ(S@8G@#-@hNye z**J&Z0=Yq9Bwq|JGpsUfXQKs%{@&Q6{mzV0rt|;h55$m;;WVDR?e6ul;_GaIvV!!U z)3&U)z@QjysfrV7joJi&SYolT>rdu=eJefyIpHi_0}%c+11M>?2_T;~xA4EcnRqq8 zLW}_r+08)-HNq&BDOMCt7o|*;EnCwWjMW0@-`oz9Mo3o-wfy&%q6*K>X`*3-}Ov0wG&V`_-0Hq1m(ED3Lil zhESU9SLUIq_nmYGUU!@W7|9CC+Lz48dz9D|z^JHgaU@Mfk9*EKcwPlk<SHC?*h1SNGf(~ii@Tq088%@C^G)2xlKIU zTlbt6P+mzoTBXfZZ}@X1Ag@>1;WmSIOPb5Sqg2Avg2SVIgM9DT?Dv6AI0FqfFJ*s9 zD>!pjWJw=B=XmZZ+V)-2^v`ufVv3KG^Ns*l{6*{r^G#)`Z)8LBFB0cJan%V{-niPr z4iVHjWm&AH!C#oZ_f-xQ7TzZ9hevtK5DKldFrfAUui&ZdxaSDKGwxf{b#6d1)v)t4 zK}46OdY!Fb@8MSV7-G`@Ne0 zhQ+bP6p*9!>k3N!O%kFj#dxlx*A>ef@C)oJ~h?w$$dibh|`i`Bb^OhHxte1dO~TnY^$c^GoMCN zC6^F~HJGci7~CyNoV3jwLXs;9f^WP|H`@Ysb-7cxcB-=^tQH5~an^3L*nzk=IW?!$ z4u9ATVLME8Y`vUIS|`0?e1IjH@U)s&+RE zR57ovCSr;FR#LuCJDRi%IFj+i3dlcJjVdUkr$TfYELc^TV%R?{`HokPH3PF3@MSx6 zf7~5`#L{44_jEZG;#WMcz!Mc0&eq2th#nTNC~pZ^_!E4ku*}<1M1VdaeoEbhA;QbT zH1NuUF5r7SL!lCW->6J3kR#B1?!yxpSVX<%q2};_F|njuJi4j;tP{j$fp1Uy7#jkB zw)I9prZ~401=^NWP}fIUL|}c?6#p7GnR^)*=IjK05$0O*yO5jnRB|5z@xS!L z=mEkOB~A-%rkCamYsIgbX}w1CSXT%b4%KlhDv-{{|hPGy5nW6`^HBXYQB`v|b; zA7)IZV>j@b7(k#C^N#O(;!vBgvpcF%CE^qT#TIgBGy^h!w=>^hCAJeo@AmTQevb4_ zuB&6UV8XD2A&H9i)Y}vv^v588lwCq`XOHnDyf6x~4=S5CYxGRzG4Y!NYDSrjz?(|| ze1dT%YtnT!C>cpl?fDt*HY~Q9)i#jv{bu3jdeY6x`=OGg!r4<}{guQ~Melt=*$p7Y z=P5z_Ca2o-*qNWpcI{`M4^HrTzaJ{HMeDnX++80i$!CKIr$+Y-N)GwG)i=hnoEyvX z8h@pC)OU**I|42P`jE+S+Vu!x_B-0lKmgUWS`|ayxYln*(SCzsK zrnHN&FtI+J9n@K04M%+~3a8J%cZ4Yigq;dz<;9Q@cg>0u)IMRVt&)tB7g|Li`fe*h zHF-mSLP_4Ud$6Z?IGv((N|)rmR%_L=PFh`XXqa1({|}SESjZECbJh$%4d>0YIu8+Q zzQ$5D>sEATyC6#qg&;rmY`gF|Z;N`+M>T7yM+R&hc_ zMtg<({cPr%J>2X{tHKr(F5X$AZ&^>n@(Rb93@q&I%RrZU=I*u&hRd-zh( z1i}X#b3oy?Ek8GzcK&+CC4w9Ln}RBmUa1SC^FuhpXC-^VM>dD%;AiP-A(a%#0yO60 zQ4~(EHKJc<<0v}8_LLUB7NdurpxvXKRLqYQ(E;K}URgwRI2qXcbnJDfcjaFF2jpjJ zE%RtiY+DAd><9vy>j5%2KnMu9)~5oyf8NDJ3+}XVt85r z>Hp1DGqBVs47T|0%h{fE<%~_SOsRuLn=RpW+{Hj-Y2U_Ab)lO>e8P5tZAY=3Ao2s* zy^Fk3HBdJvFV4h#v>c?wp_HM5m80p*{oM1zJn9c!idW#N4C)&BAW3(}9*B9{NapJ7 z^cs#Pj4tG>;ayL1BD5>v01QJ5ia1ODOJ|vUK?u@-x9|6J=3sT{@``s*fH2^BsYZ@X zmQn7+<$tdfp&c(0&qFaAa6V;)`+8UPkR9M}l!|{iST@kdVi+i%8xvglDqU6+tZnqG zk*u2#gS@|H?!Xg#f*lQIagHEVG7)uYE zQA|nZzM5zfNgOc!R2jFg&f5Cr)pH0jfJ(emYv$hJX}@%Zw3Dj%>PxZ9+j!pFn#bay@MlQ76;14x98CirNo`GiKaec3cjLm;vrGNSqTL zR$E44LQFMGwN8{HU5jO%=^zZT4mH!){HDCWE*UHT31>s7J~Tyl`x(}j-gHqV08dSl z^mg*E=3Oba^ukAaQPTrNQ&7{X*=%RUXZe=~t=TC#unYQ9lo(`QpnEhaDX@Mx;A4)* z%FlF9@RrZC3ikUXrggh@n{!&A$e5+L6-dlhGfi(`$@kURB6Kyxz+t-7{os9as$4_{ z*vRrW*B>FnzWiGKGM#EZIz5v=+k^I{JEqNU<{o_kQdK@7_5o>Gq)15TK@b6bb~9Ig zjg^vlP&h3iE}qL%L}`^gg#sO(6ZyP7u*F2uu^%=r?_0}JARAd=2E66Lk+Cj(tAk`_ zd!CE3q))N~@Z!h?z-8ER?}8{ouw}b&gYYWu)Beu;8N`pG+Dqdld{oawM(?*=rI-~= zeh-a?Z~l0nS1w5&O=U*eXVAVai&w*4)K)MoJ6CXmEbhwn3c4AI*iUg!^hy%jM-PfX zzI6`~m3G48cG{x8Oq9Z)R-mQQb!Ada4A&uwF<7F&{53y+ThE-En{l{FMNSE2M zKS53BHMhi0FEq?EVtE)}n$jpzL#;fBkRN8p zpnHW|#pPjiG@cxcL?<29y1O!VEU%a}I3n6*b;m{|v{3=Oyo3j7O3Dnd;OI2VQ?3WPqo7mTpmBxC8<7uyhv-&p>2XLXA;Oy3!z}?^+sL{6Yz}eIJxy95REj#-|F~;A+zYE7^bZL= z@=I8KFKsj14*SQG$vw6dDV2uu$x4lg6&sJgQJj8ia6%wQ=0K=`KdL|}Lbzi%N=lol zC(OmQl`n|k^s40^^v;VvHdc7t`K4jdrv110a&)ukCMQvBz3`S;KV?d4&Sww5d4Ui& z%VoNY1Fj8k7{S*uxbWlUQPbxkE(iOejquf%zcJaLlXac$!>z|NlM5uk#s3r|k5U4Z9*UbAqSRn70>% zf`0#ul+pi$k_k@8GpW*jFa-{rs>PiWX$^?(gu`GgS4LLcZ8I<&i#4tb`n2vN-+gzZNc13SKCh z6)}Vv4Qbz#3L~2CW5yGAKR@OTyjM$7y-`tl%vLa&JOaW&(NK?%TMhgDd;r*6Jve_K zoiOaP)oMf+%0xBbMZ+kif^i2^fv%cFu8Fy!6gkU2o#z>$HZH56$8=DFTFQ z!s@-%?)~z*vWYln6^<6~2&$c%cDVFSpF^kgNv$!*D2s}CdryeBY|cngfusCvgk%7h zeO)`$GWhthZN!W>@@%v}n-4E^eYeqjYCGt3o;6_9c9}~mcRa|GdoMsDZVP1CM-B}G zVxVl14UrA+AuR*E9krB?-T>6h&NHK1z!kPOfSdcuNjGtOH_PxAat*Q~2Cxl|L}$Cw z{rJyaeMY`iD67W7Fvchcrx?h5`CfgFS*mdN@Cr%Qfzi1`b{NiNN0m1|UlQYwfv6}u zp*U*scIt5L;Gcgjavs2BDBcHK>-|;ig~<&ZS%hI}ust@M-v2#{>|CbFOOO^{ymXzj z*P5~JLW#C76EkL;Jc*GP|D8OrU_SXgq%|}q5XuxWN#nRDjKQ3RCruD{swlNM7tSda zNMRY*u!G%riKOh}eSuLuQhoZf6Q7$?b07CuaI^HMa%{X5c+SCOl}Vf~0h!gCvT5$p^-3G1q0I9TtP`JhRF?@hu))M2l$JiRw=zsk)ouLG4OeyE5S)6?iR7|dE0`3u8Zl`U7tnC zoIugyHP5EI_S0X9gb$l6ffB>XyiBuY{qkI-dp)p+b!tj4YwLpnDIWCK&kd&>e;$4y zp*3GuKYso*jcLTl2y@tT-O;?)ZQ#_ol@61xvT{S~qO4ZqQD5-)&M!FA7QYbDyp`Y& zUAirflj*uUKgoVPYO5YXv_|YjH(0{92A&8@O~7{_O^x;lL<-~3E+z?d(@jH#L+`s( z4!O|}znET9ZB_H-F-Hp1qX%(ns&i24apAv!{D{(Dv6uk z;_d6Qi^EkIM-gQ*)PZLRh+qB_ttT8FD|yH*H|B%($D$fNvJ`Pz@)3~`+YrWQQoug9TZ~KBbcMMlBA}5HQG6cLm?q z9blF3k{)E1jN3u!mWrhlQbrwH6PIHcEMXy7^#6e!FLr?IW6gW z5mf`|okl+5<$}gty(OWF^!W@uyzeU+6iu1HBY%UV{24%G`5*X~{0v+&^x>C}1dX57 zc&u=h#atIwX`QXWgk`-F?OF?&VzRdyApK~xZg_T&ZvH zp_}yRPli@OnHo5%uE&4yO5rU3@?>jflK1KLD1!wBt=nii5vJaRE!a?*UP@F`4<>Dw z4I&!VDdN*G>GGFrOKTu>aywXOqnesEqSk6cBB~X+wsPu+sO2S_ig~+Be_!x!P#2^# z><^?{gvD!}vklL7bq^Z{RSGi%f%6AG4*z=4-F3+kVe#w7FH1km@ok-`nSd^ogV8j| z6dduS;K2%uqie2CTcT*U%PZHmQold>biV|Q7pze$OixXO(S=-a7zTY3_RSj!eHR&F1^H*N`k!0pR^B)mB06Et%q=x6xowN zCfpdx!>h}MVD)Yc@%%=XAipt3kwe``KnNb)m3LrV*cQW zGHa@A9J^Ip=$evxVe1bysp*wJOrY0|!xsO=zV81Y#MyD`6V-O?Jf-I zKrv&Wd z-hVLS%&*CEVC|UgEX9SJNSRNI<$)R5MJsnuj+vGFfXEJ8ZU*91{M-HkdF* zB|7f$?l|wt_$T5F3){`5N`Pt?wWB{X$^U~X1abk_sijY8D=Wo>0XeLcPplGbw+)mU+g!M!3!UnU? zxk9^7Uwm|(4emNjFZFvb;(CBG=@&h#-@IguHD})#df|O}rZkbO{YT|Ns4^o+M3k<*AP8jj+>viTIF-=$2l;--r?G{`nHnYis)>$rL6&DBnK56BmboRLp!<-SH`*6a(*yf?UoE$~mcWcy!1>t)teRg}$% zC9|c(PSd+ZqDgt^^hOm@tmV z%fwKqiUj`f>uI>Kh|xUXCLt=KEBxr0(2*$xWExsJs{?vYC@}D3z7|ADkiMd!WV)+7 z)wlaSJfHGK;%*-Ex~)LlWeWfgosYu~U%Jx$k(3`DO0JhIM~&sUc!F0~&*WPN!i^UD z4u0h@cwSvrgEnXpoKXXuWGT3r51Gm&vtK#6I$0EE?nf&#=RdQ_?Fu3c2szLTn=JZ= z@MR+il<&n+?IPz-RrXMChiA|>C|E;n%N$^ls~V!Df`p{ey;%6q?GC$bk=&#-IP-F> z{wDkc!%qmQ>ay}9km;dp@3F%rgx7+TCE040zQ2h|Q#8Mq>e8Yc#c7udzzeXYMiz?k zH{+Fr!{H5NiWG#H(RQfjL@J{Q&p$?^PpiATjs$kp3|CW6In9ztS=XL|4vbI4tXpI3 zDq&3ccqi}8jA`KqR#muNRReyH2h^;gk9I1Qr@kKFYUh%Bbq@Lbdd%k&k5Ms0^Cy-G zBI|hVN|&nNlmWf#$DEgQKm1^9U3TJL2KFx3PH}KdgPk_gv3;CCAHs#WOP`?I=4s|h zedbCa+?%yfL~&B_aMN)^P7CK_5i+I*AfIbhgj#~PiU95XO0{pfoEpBmbJRt}8DOqN zvTatF36aeYta6+R`w((i2fR8hCD%-REQOPOW*kiZAMqhLm+ghhFr+;4n69f!72vDsv@(d|iDT3kBfEatwI){U{K+cFu2%D<7=}&{)w&T~5KE4lPCpU>1*dy) zlnu(v>Za;`WKA};D;$nz^y9z@4wiXNll@qELQ>b(0Eh+kZezg$yPv}UAmjM=G)USF zQA<=V1hnvhgC073{rLhRIDE)o=)hKpQ3GX{g~#;T6bB;1d@L-$|K1NBm=Tdu?Oiuv% zWOJT;cr(yXacY+fbR3!7@(}^`6rWBCEObl59Hem{ku@b!#TU%k zZoDPUN&}ROfnPfSeZ+Cn#A^^wKx+Gz2|X7~DE0TF)NRikPz5acjPM4?!6plB{&T=| zl6_`-pEzyCiY{S`EGNB436$Y6oZqHM>>V8ZBG(MtQpt#n#y#DVY|D(#ji-jmR+OPST2&TavZ5u|d#3 zbPk~BiY{asK-xi^jmNjekpJUVYj!X28}=)feP9fre~n_v3s}IG+rFpP)1|0wKv;3N zJzc6*s5!UAAgpGf*{!VB!Oyf~gZ=UKgt423S09a6Qu$TV3r!bEpF=j2CFp9l-aZG1 zLskU&5I}hz9Txx}_j6XbgJ8Sw|7leL8uk{2f4>eMz3!t6oSg%z@c-8E7$HLoP*y6c z%=>(_s3m^f)>dyx9}U1Vw%oRM4VtugdI0wfmp|k)*DP(A_d)2s2rQvVFo>zt-D*lh zaS3+wtbBzx9v@9Y76`-f!Z(mxNtWXU(wuED|18kP`IF=voqVM;u{JJ$)-31uMnFLy zxaSsi7ptD3EwdNUF46?lil*N;-nL298V|}bl@}7b=(;(GE8Rse`@|fS!2+Wbb^hcF z(4y3;7+)4>tPh2p+>&)q){$snU%5E8dIm<`+0At89QIJ7TXMz$&($(0&;?+4Jxvo~ z8IuOOc+6CAa)94CFyU zsTL`wDW`ACxfA;4_$PoGo)6LmoSHSxfCLP#Zy8C~7YjG%cC4|ay84}EjY}WqFK}eP zZvste9$s@EsSp#7@mE(C=k;+50JjDBUj;p+0VH&kzX2-Ax)UW%7-;Qff24JOI%@e)0dbTRo_6Y7~m;4 z0QIewV3l52TQcgFOrWkW6LG!)xiOsX zs_X+SN#mwpVKzH%1b;ZS>$CKD63jV^j~cVLG#Zvnd;a#b6eGtyIYLe#=Te(Go9fm6 z1+?15DfWR4gt-pBl&;l^?eupFJ-Vni=AV#wQ9ZYTJBU%0QTTU;4sNHhg z1q}2xvam-iC_%qxT+;rGI80~gpaEzr1cY!fN;FoBe>9{~#A<*7QUvt>B|RQ+lCOR9 zWf|a`qvWLa(0juP#p4$Mzy+yqeJ!vZn;5>bISEKhmA!q=DOgb_s$r>0S90mG8 zv2O(@zej#gE}Veoa@Ne7j)92bkT?Cj;G?D?*#ih}_byl0OjJ{Enn?fV=O~{2u2uWi z6gLCvejX7AX{-NE?PO)&)$Flh zmHEHOd&{V(-*)|55tUBqZjcViAtWUv6hRc}lum~RfuR}c21!9Wqy!X(?odhTMq=pZ zx#qX`z4!fp{@(AOwVt(nBWu>gx32R#kK=QkM1F*s$zy%d3YxM|V6i@%0gs_S;K+;Z ziX|T2?E>pdKZ=~)shzgx?7(iweEY8~fTypN1^@7`8ej*P1K&uCP*ALM5COI!Y;#e$ z^K4#bk{>S8L`-P?6w(YHt*UKgD-VYF<&|NkC{Fjf$x$}FkLcQ4=IXE5FmU00?%)lI z)x50AHZ=~Ply+Y3c6@G4@fZQ|&V(*vO8v~|KXQc~h zKjl*sX^AsDbYzTF=~rQrCRmt5um zLz~-oVVjteIKImr@ETs_`A~^13=VwAp8uTrfo|n{f8#c?tx&U2Qm`Bf7Vm&1|LKEo zFRKR;-D2Kj1uDsP0EqgnJ?YO*p4p2#cW9d$_E8+Hdx78;X0AA5M?9}Di zGDf+|5xjJs>kM5-49=YvvWzPmD5K5EU^s%gRPct>rPUZ%0Z9jWNwIv5lk?2mA2rSM zL9iC;x)~#&LoL9m(?>x@m6Q4)r1tM?GA-&7VXak?;a@On4<&r@=^TZ%(eyDd!ms)H zo9xVXSgZ3I68B(O3e;_kWh{E7YbxP!cKybk?faJ~s0oFhBN3tvq^9zs?R6;1-3yD~ zxQT*`w_%y+HTM-PZmBEh6^AAXHZ-B5-va2tU39W!2ObQ+7^q|K$rpKMN~;OTYJu|X ziVh)@;+W~thce8@>XI!`ocA_4qU;?|=%xUIobbwdk(yvwD?Ue)L#g&&4Rq9M*4n5z-U(Hx zQcQ))*rC5A`nC$rR_tkqqcl2AT6wrxN8EHsrh1|+YdOATH>j?%Mw`@0Suf44Org<^ zhO^GiL%|qb`UVzij6;xD+5Ac*a(wu}v2}A-=9nRoK8WEkxz%5+xr&P#mP~>-R0=Vz zH@5B9{rO2FYt-VvEESZXSNf)E%YL8&PdXlNtk`Y2NL*E5nmd^=g_COSSNem4F^Nz1 zB}1W|7Z$(&LXj#5!?68HFBd|YBTd<*Yf`MrH-*X;fh%%I`!@6&^z*`oWhdX$RY`2= zhej8NoPV>)4>zKIX!5sS$d|nbCdsK!8EFmgnV=hjM3a^s%S=gXY2Yrd#jrSV=f9u) z)N__mGXVDpLPl%c9->4g4BeY2T})!(Xkl$ncAPNoil({x(DQPF>d{+m>-8*5orNRd z!#QyeA9aZBemRv=`JGRx8Z40I!Q{Fc_zwpIE6nNcVstR623~d2Jx>NsUR&KwUIRB) z?}Y$2RP2O@35%0z)E_uaX!tU}qEu-`8`d@44gIMUfsvdpVaFZ>`>uLh&tGZQS4rQQ zzog?Kb9BoM^4U=~;4W(2N~HM{2+TIrtZA<0yxX0%1|HS3jI3RNF9d#h2~OX;cnY~$ zHOET3OU6|CmSk?=%kpLPL+5Q5#L?ipFv$sCO5(+z`Z5O~QD5Ct1-W+eppN0#Ma+{= z+#%L*$q90S-ij7THRjwwTV+<*;y|X?j@V7G`fGf@o||D(1L%U|mzqle8^$Lh8WxPG z@gFaHE8rkUA{k1cpO7I*2B#}Z?fn4J9(#X2r}8qMrtt3+UgJM(l{TL~E}TB?Ce$M} z(a_gJ`b>m)WGNs}i99ah69t0Bu7xuQubol;5hUFJU|?04gCKLEuf__?uKc7SS@arw zH;y;b#Iu6D4;Be&RRFCSOeN}Q)FTloUp4pV`yKp4#KB7d{4O;okxC0}n2^uTPT}KC0n4mbx+_JwmK3&&{GyG9hjpmk9m`M2`gy zxe%{o#8$`!zHWXlKKFh^nAFhi{@YF0F9YL^u>pULzypqL$bYCO-=J-GhTUGVmjhTv zIo0A3i6lKi{SNYkic+0kJ>GTS-L|EWB^QA zRoV!mA1Z6~HyTv#7jW_ElDc@3@V9?OZDkDugS)=k0FbLT^%Rvtk%Y@(u3l7Q99r?E z=O{(=I^AUu=@hFZToc2~3Oh(3oCiD8cc{8^@hnbwQNhy1e<8y{?m0KtB7uo^BFIRv zjP`zn6yoGM^Bz$kO9(SeXQEaA3eHPCC|oDDn+^t9jJY`trpEzUhC25iiWOM63`r2# zLOGd%YR2(QvXJAyqA@?zKNc9n-94LZ2_BQ*SeoSKP5+!0ES}D~Dao z2fIrB#*D{u_>wiulwW`&^#M+K`ov;Gb=y@!CMQJLngXAd^>QdxhGqfAdy5uiF67%( z)Yl86^OXq-!=5nqw!0KDeC(JOO|+3?7nEZc!cIbXAZ(>&DbSeZPED8$%J{kcD5BrW ziEdBqdDn7ZZ-e9>)Q63Rl=tOWI>v`{Wn)3AQ z5ln+HfL?bBUdYd~mh(;0w(PsBs_?6elOd8Tt|s5VB0rR>A9*qjorox^x++9rr67et z-&Zsx?7q`Po?DZDa`i?Cov$N?4Iug_5?s~3OmF(|j7EwO`-%SKUl2pgwHZV8tUF92 z$|)GBoql`Bt%2Z;*P#60Ju~+3?%^X1sRF%z{PG5{%NxeG`7`yU*fg01ahrejyGba$ zv8W-}1iuKm^&$d&A?VtA4Xf_pNX=BKg>U8qufFqj)1_r0*GiOgr&IQ6PenKAznniO zBpWwtqc(_$e+1KGoDE(xj^^zZFz)Gcq>G8s1*~zy&59|yTE7P5Kdjnv9~l;PryC&o z@_*X|gU+at39Dw3F`QUX=FNZP-KJ3>*Y;}Ev%l^)fFn$k3G`ndq5W9+Pbiojio>c+ z6H)nVgl?YvD zU3Jk+%{KM(Yauqj(RvZKN8-i*cFw+^D#~2#)y9}AOdY+5Ftl4DO2GPCGxDEi?-Mq9 zBxgp{@&Da$`>(%5u7N8vYK@|B`9EEndBh)169yH%{#vDgKX$sHrB?bvhGbX_|NAC< z%diJF%MGYBo~Pm)dG=t*b4FoIIZBm4Ia!f!(V_qVCpqNi@2 zDKMpd%Q*%R##a<76GbgHTFF(M{vB+xmZ&^eVqV8`tw7lP-Os~GipnJ;*No?y0XS^2cfhsTC1 z0NJ2+1K>Rn40Y@RP@IFIK(ILMnpf0oNP~#6Dm&u7UXU-g+;X|EifUin|1`{M!NYK$ z`+tv?%oBQzY6?lu8dR@|ir+-O*hajR#~0P@&BV-lWT>M#pH0|ti^w$%eOsWxRB-4gOWuW&k-w?Vgh2^Dnp4nzU{B6?FygW58F z1v~EYpMxSTnd`;nEzTelr0z9n+RlK$sU00XbCP#}1{rr11Iug#m6UfqJg{*YylD|f zOH&}n8tBXE8t{=7aEdrmVK{=6pT^v1@y`k>C@3vUDb$+I@6svaY5`UeEwTJT4$BD( zKJ<#m`TAG)jVLhrQxaymj=$pVTr+FVbi>;K3pw{c>^~}vi1#>XtqD+;zd<|{rG4sr zqKCWm-uFA)W!UBAlNM%FgG{MW;AcolPacAkRn=1Zcw zruKN@Ju|`q3s9ZdgG1^L7SGaYqd?rIf&-8a@f8*MBIp6E_kHSsMAf+1wjw>M(4jlV z*vs-gFH)GA>}+Aqm5Vqc|Ds@v`+&y+;8SMwZ*#?fLI?~Debae5XY0gbo7G+Cq>`RSVRF8Ua_b+ z10+N6`0m$TsXD;fG@`64zK7(8sQ3V&3qzWIZ1>s>NY^fX1iKUXpCnS5`ojW-)mxn1u78SDL1 zYaa~_pFhZsYX2B?*S~^}*4W%M3bfk-(P|c##x!-HGF^rZMV5qTgc?Q--iYeynR|lV zvBk(2du4w;ZFCxX7a603wUt?KG?<);5M)6Y!&;v9Rn|Ccu)!$514eC?CV!Y~)3|i!Od*H2ah>rU zz(4Cj)jD!h*{enZT9$QY0VC!Oj0{(OQUgfrV zVL!D?{{prEV$SyxspN;@&|y6A=y+qSi=PVvfe7-!c(5n8(s_gg{o})FuzR-8;@P(Y zOz<_i_%a|KW8v7fGkh4?wsRo2M8%0Xxk*WK^;})*%#4n07AG%a@J+cvbJIJyZ@yP5 zw2s%zewPUB_e)PiX7$ti#E-1axgeQaUf^u1rm=sG7g6P;eUNysov!!6+WViVa6h=J zX}fwa!-BCAMGj()DXV##DFe`$r#WF^1)ZI*bOjuzCx7}KcH-k-^c+KRy)fw!x*K+z`0}QUc;RU~&iDg^&T6rX<6vbZmN=Kjpr8HCQxZv7IT z;SL9Iw|2k^F%W)NTZY%y%d>J;GXA058<&9e)-t*7>iXp+S+3?Hl}V=m&U;&V{PCM7 z4PF3O^nQkV!O-343Ge{kCeZPKX|7h5oWEb_aM#e%83O3?GqI!l@QW@nipJ}tZb#bSCojno?FemcDHVmI z`cYWBJ%L6+<;QgRmpTZXjP;quhs0MRARh;pu8n_h(izY`v)?OV#r?X|Sj;Qe-uh@? z%|rtEa?&*Ge;~bfO`p{#=L&WRKZKR>~`N*hB>bk$cA%1p3G#d$aW-w@d zCrEQe5soW1$bMMy%|;8Gqnz-VUgSL?nk8Ol$Pf~5g;G2DIT?O8O|>pSLda*;&dge9 z#FsT7$RM&jDElx{UUZq(Omq}TLF=6BlE)JWL*dLo6#eGv7`LB(iP_ir;JKO>ECM3; zvF9rsw5Vlv6?(+TVFPjj*%QW%g>#+v18<+uoBxiyNDd)@C3gqbulvX}58N5=mCO;A z<#j{HS0f(%qfZ(wp3LwQ`p5~6lId#cuSK>m;{!!+`tWRrRdiBnpYON%dqJ9xYqn%u za|q2CnZNyTIu;0V?mLJQ$7{t`E#|HN1g+K7eXdwkN2q9$eLtqh;9Ly|Y*OmP-?~L$ z>}342vsw=Os&_cI#bnMoG(vO9qo_0Qq{n$?2|Rg4xB!}Hth*ka&7m@+L-$jTAnHr+ z>ANLWCJVfg{Q{McCiTtR#4Gc-B3_)YG07Gg=n4;tPWC?L*)#c#ZhqjS`JuZULt#fr zTv)G|N!5-x=*=u@(*9^5-@P`Q!~MSQ5~aK-JYNJNHI+9d!7%x8cnBRY;u;C}n<)C< z4&(4Gv>Fb_Xp9>xiLuojJ2`1MS%4KTWawb32XX@%HXOU!-(4~`0iY*2bE%3g26@X!0vP-1Ge6vE zBa5<0OT*md`l_RC4%0=dDuqN-;ySL@wANcUv=U_38=sCPJjb9yhvKJTfuMTI za3|$R)V54RE?7oP(I}62>|d+T9uF$$tm(amQbagqIV1V=GIA-^wGSe67-R8*WpJDP z90m3Q6LaYkt_)?^x>nd&wjx2-p9tG{L>@#b2%}FiUHungKh2enX$Hx+knL|I^V`3B z5OF);=jaRN$tNmGBX+B;dP3gML^ruNmE|Fj0BB()^{Zb#1h9xCidhvJT()-J&G&f= zn=^FBId=l62?eM-Q{8-jnfW)^{O=@SiOr)WSqRpW<*<>KTJpgkCJaXEbQmTl=v)Dy*Ty{l|1a*B}zA2Y%Uvo?q^>=zeXK1P@<`0*2rz#yp$Nnt1y5#;b`}hCWxg%ST-9|5PzZQHg>d9T|jIMG$K7KW&`XbJ=){}KTfnk#Gnm$9~xZ%vh*-JF7n12*4l zS*{pKwTz9L#MTts?zBZx@d-(g(L5Fu&mlK?`-%d)yenGu;!F5@m7s&y4Q7%xeCnq1 zlQ}N$$uQrFnI}cN*-#)Ti@cRNWp!sglX+%eY914Q{^R=?UGe22_Zrb*Db&#==R+(#h*N#qidE!mS{riOIxr1`? zYaIk<3Uc9Iu~nT164wuzyFN%|@{+$-nR4-G7{aj0yYIj}3MX%mU@W6s@^<{F|6JGE zezR$KKeNkPUlvcF_r%`T@o|NmH)07}_+@vn8{}JqM&Wc^@1ysUZMhVgJ`lFBPqc0r z$Y9dMI!B4wNejsH!oD6(a;BI2vhO_!MUJ{0p;rpI47Jxa~RWYuiPJvJEpQT zGB^xL{Gl!k3Jtn#>ZuREc*3SNjMEpKKdEOljf?VrN1PILSlvuMxjhwv;gn4>V*7*) zpyRHWBgaAu_Q51Nd)xej9T9TWL5@0ABc=-tZ}qNkbl!6FYddl|sCyKL-m=J)_6QmK zkh`EN$1emS))ck=9;3DT!pwMGzk%@ydj}%*AnvA2IU^n-*pfd8w)afu| zi0ne!s6mg9QP*CYb|&Jgmiiafk1?mNmZ^i+mq(WaoMY}~c{W3hc$AP!q$0s%B8K

sxFdw#q>XHv+}?Ib9{pnpuk0&oosg=`BWj~)G1%9!`ZiO1 zjo0$J@@_U%ns5PhxbX*^jjwOhb%lpEP?wdme!UXnBJFhXSPqKUE(fqsT4!TP@I?K? zMkl-Lu;~Oz39EZT^InGJS454^=SpT$Xz<9(`~~ITDiT487Rj@32lGw;r^EG`$^V_` zw#d|b(ZnEdA=OGni8&EuI@V-w2QyE}WsVrMr%`v|pSLX3sEg9>IY(|selS7r2WjqF zq~?SJFi`|Yww0Ga32}9H^r0KY&J#a$r^s4I$uB6$x4#FvFj{7rkbXAfi5DYt@f=cLk32=1mu-y@zA(0$52 z$daFJFs*4vK`QUdcgg4=DaE@;7EA!Ap}Z=rd!U2g|VUj$c{JX6Z?`}3aU4&+Md z7y}!CCae!#1ovQ+)yDQ1VR?b~yi>DtroBaiR-TG@5KvlwV(M&qrhSWj2eb%|R%)J5 zF!4O397VV-F(ivT;Dh+h3ZO0VEWrlpi5RGzo~D2L5^0lt$9_D%j)gL9wUf^6e!;d#oYiQ6aCN`Mf-o>K0e}B{fs% zF|5_~JVaAEB+>0!^aim+S(&a|P(7I9Mnm1@_WZgC&VC}qP7o+oR=8ju)=G%P;vX=e zUhW83S3~s7K47ewCS&k0&>COU`{i=0HP|b&F_FO+>d54b^nS$4k;&ggF01+4G+l(; zjq}9K%42AWuY~&mvd}>?M(4P@|ED|=`v{M=WKXsqQ7kD8bc&~56}F^$p3EQes5Rw_hscxZIgB- znli9rhAuA|YeJAF77dW&X;}jLGj% zV8dY|?$#8bCXDRoFzFw7oC{|#w7_wC?06d^$~%Y}rfej{PS{1h54%skC8S1Z419&j z)!4blm@gkZbs0a9c<%>I{rGJ3)C`XhGGP^I>Waah>`Ka^hT~TeeH-Ld*klO!dQ7V} zA}6vn$L7t}DG?&C5cTR?GW6>!rEK|OHj8k@YOu`r(XB?dB8HmoIi{HzB<^iD(C99c z!MW{ki3jbObhEcHI8>zwVn<(UwU}rSM$q9iiE{|grr>G*DN}wat{?wYpEoSRCeIX> zpHQi3ZRssQyfl_AyC?W%YPNB@9L{%cxxzf9|B8htNVNs}IHl9p>IH}99WqgA5}LEn zy@WbiwqTVw@3xGDLnily9@&NkDfth}EgwrXEncqrRw@%xRE1;6&@K|nLbQ+jmD^vs z@7P3}O4Ib$K$L)DS#psKVZQ2rqd-||U|iDZ;RxF>nb66_C6sWOFipO2}NOzWH|NYi0)3t>&)xhw^3`;h1 z?()a6C)6LMEb#<`yxUDSRm;YD3CfOU3^Dq3blVr{+>ECVM7Jr6hQiY7(#XwWYbt~h z4Vq+(c`5v#NVh3B1qF9FdMgL`J0DHy)9SflbRn`j>5rI?s614fb&Ck$E9OwH4QB2d zn-X=!nLKWJxg;|Ablv|E*)*lm4r!Kn$wxyzW+{AaJtvOj%f*lU<)8m04*8+WWqNA3 zhRTXACD_hibNnNX3Ct4WV@u6#MLawt7qrMEemJo1FoI`F*LW8Xw{pc=7}S&F#B6AE zfVayprBrv47q>!mMlK$_sGhY?Up)4DbYDO}KqNJR+<;0*h|r55!h{LYrWSg_G(~TL zWEHj5eU56XLEe zZVcsF#tmRB)eoT|%VM*W4D%VS&09jK3(y!*HvY0!f2FZW|GG(^?Vxv9Q+-o&#CUPQ z`I&(pwSsR-BzYwk4S5hme&W}28L(2EF+7V%Jm zwh<_KmjGZlVzq&$3xT$fcwb}WBDw0BvcW_{+gx7LlPOYK)4l~CyXh+5hVkm1?Gn>T z-DRon2&S1KMCLx?HEW;O=B7~b+F68vx+?Z`b+79$r=zCmQ%I<}_hCR1|Bp2CzEEWk z6MTcOKX^lj$a(Rg*+KVtj@Xd%B-(j{r7L2$=pYgvEqOmDJ%&vEZe!lCyEI)^?k5uD zbrd9HZ{aAiLfJ-hvWv8e%m34+q$i>mwz%i`ahoW#at?KPk~e&KVe!d7k(qI z{@=P%=Y6yzD^-g(mLu*0SET1m%G)1GP7ywb2uFcz+$R_Q?ulRSPby7E3Y#PnvZ_`u zc#>nvXGIHJm--a)aeH`-Jj^sqq)*dMY-s$<9~3%4#Sj^CrT6}M6WrJuhhctfZ55NW zGpSZhiSdE(qPl2Q7b9-B3gvHW>mt{$xNt0Z^+HZ9w?W-Dl6Rc^a}Cnhp8ERjBXNUB z-qnM0oY$x}c^@n(&n-N5@U@V`BIHZ`elJM=Sgr7$s60Af@#Jh+^~@NDNxbs**dpb* z&Ob={ahsW1)^XJ5F^fHknDOX7n-tlW!U068cHK#NBWmgGq35X2?`{{;2K>*Geu?Ym zPQv?_?$Ii~;B@FfqMGn}dF5VGsE2;yL{z3&32B@%HXmmbs7iDVB$_MDAwHZyK?+gPz?RIdw{Wq)ZJiYQQC_@5%^ z6;bzFHp^`ris$=@6>yTeg*KlarJEa_DF?k&Tsy`o&4CIXl5eR_0npS1gCsK{))cFx z^6tq?E#-xp(gt+$!Cpt{)fa6`x9ZgGAEsaky}yOXPPS3|<%wROg_Msl)T}YUVr>#+ zAQHT}k7h8L)|2n4vHE z^|Tw);BqnQbCh2cFKu}~*HFG_)2}o+e=1sJgf#fT)LTm<=B28)2m`W{tImnOzaCwU zDpcxU_0faZv*wA~ihd7refn>2Tl-jMd-;4NaK>`8>ly!lQqgPpQA+(w7`xd2tQClBQVlbCD1U2J z*)aZ@?}Ijxk$cY?tf%$LFRj(D^PC*i-@5)gI2M46@;_g&W9ka8*(xUeCO$MgiAyD{ zhW3(k^$`V@%S2bfWoVeyZ;Zkj^03;oV(=y{X5dZ2|MDgSLzOw(=kDL&)o55F!0{zIBPo_pQ@8r_20;%VHQpq}nDsaVWxKloPzy1?8Ze#P zcT!lY%_Mz6q9#P42%R(_5u-9IlSpccE`a(;1|}~#>Tb9>_oLMOF)4sGNc8Gy1wQIW zC3=bg+3eyVE*c;;%fIRpb@_rzQ;?Y;%5DY-hDK>y=Qe9Qz;uL~e)eWb$LvPK-*PXM zkm(ZZNJqcyABq0$5B6{0xMyA)dm6KLi9k5;0fq#Yg!p8HM`CHkFqYBu*-CD*DKi_Nk!BcBY)w{wvU~f} z5DP^S><)Q=8DAE&^rfj4$ayoN_Nx7DAk^_}L3CY|QIkx*0tf3=peMkkN?5~FqbX2` z41i`Vs6}QR15tQ_07C7LMBRi5_6acXv6;N|+{ph8H1YKMA>q-$xSTfny2 zP*stat&t^lJ#_(s7Cs|vyYU|P$r@|3B9x714m%sdoZ`%`@~ruH&D;r!9_{_{u(6p8iA|%3tZ~F8|dv8)4*pD_ovb%!LS%$MKkyCX{jCPr2#nM zzLxQB3V81-Fd@VoP+m%yw0a@VXyxCo8&Qh>^>{to8}Dln zf7#ZoZceu~njet?ek8J@*pz|4WkmGD?(v_=F@g|PMELoif^fOUs@VM%fRN#tD1N?* z`05Lc_3ps){6HKBtry6Xc6QUX+%-~@S?!)g9wtJ5%C$qOH9W}k%mArRO|A!x!ZXAAxozi-KJ-lwaW1gI04ltt|%;^37Ul!|>%4YA0bCfOUfdLh8 z3S8t*2H%B*&~^V2uXzd%G=HxSZSb1<9(~i}PnC_pY(%QE3x@4!t@~9;Ytz=_^X=n< z@brPSkbC5`IQixni>M%T)FBj$FjNSezC1hF4kA{^$gG?>n6bnlVp58(0g~V(Dc4IQ zfQtEb$|VMMv6!&*1OLEbqBca0HB?B%9^L|x$2Po)rghTSGBf!dC!x`ekrJEW8R|$_H_Nrwu?oO3_&1Ftkk?-K6poY0DObEQ9KX= zJh9~unnk&7>$pCYi~5#>2g7ps!DBPP=#f1d5~?zEUoL;$Nnx7}(rk>fdvq{Xr6)J0T$uVyaaKH*mULmq?h3msc4ZzRyJ_!%GEczgPR@G(7`jZ|2 zbORk_7eemeS(5|~rl^Y{DuRY~PX5f573rbM6M2@-6qUQw*25+yzh*O0k?poV%s|bQ#yc1|j!Uv0aOZw!bJ-JOYu0Ae0&EBJx+#`o2F?V6 zTbbaeY{kPDE{YCx9z3%Qv*Z`wZZ5uk-vUb&{3ZUd zL3(nljcQ1EkyUawk3zMJPJ@P=hz|DC1&8u3MnTmwIsx>}r7VW3`SJ*`CgYC>IiCS? z8sFp5LeE_Hmerxl%@{eGUo$ZC$bJf)Fl5Ez?~ zZs`$gF-@6`XmT2(zp4Ht?|4{x6<8)^`!2IULdefB&%CuVoi?Qnt{LoI9L7T3keoD@ zYsoKbgS(l}Qibha>7S|`o-e-4!Z3)gBE8)c8c z?6`bFrK@E1`u3tbmr{Sg>MRO5AsiwbLRb7W0Q?JNO#@9l-ouaY-{m#htoxA*Tnzo1 zY?u;e$b`>jU1b}iaXj$voMM$_?|}SCnK_=v@`6GxBm7))Hcp7ANbs3-Ub?bw$Xb1T zIdz)&EI4QO%iOcsDVTRWbcJ}G9jr$m>!p;buZ=VC4;G<6$W-lB;~ME}eo?HG-4c;R zaP$xz?z%P@&ts>d?!VP{|G+y=99D-*@VMbq;jUVil;n(GjcK&h`MRTI>`%jn#Es1H zW&WNf_sdgcc5{N-9?}agKF;4oO^l~F9p*`T^d>Vnr?yg35&CLDIWmM8?{-a$)jQLT zUebNVefBAh8l)9sgh8D~JYyjB5$BJi!rZvJ;o4=V`->*V?4xdFl%kJL!*rFOeBLmlw+h9GvO{>xKb`Gn??xDIF`q6 zHPu-Pe&6ZXo00$8=G^a;k<=+FMd_Y{ZLfG_C(U?oR42sak)jl-xf)B>y*2;aciP-m zXY+A7pN|CFeACSt4_;#O9kF8n%|p7ocHMWfjVvc#$^IL*H_eA4?z9rT zUcuds<879a#9%S=yEr|(1k>GKPEC92u{nD$i4i*NJ@RAFh|hD-+aLL!pMK19K_W{Y zgXx{H$e{P#4z}gYp6T`V7^br_Q(*B5v<#5WgF+Re9NEhcotMtxTE9zHaCrEQPd zCkBOX5L)OZrr)B~WWTy*FlEbiTZk~`*mK3lDWk&|k7ITou>SLm;uBw2_lE|2Z+psz zexW7`NFsWs0)mfD!Ch#IOR$^vyGxn#Eqxt(qWiNXCm08Y=(C0VteFRmx?sdWC}%!l z`MO8nl)%Z|HrGQrjg%8@Vvw!0{$<6W^?4-ZBdG3?c@++gYU#2`y;3Lmo!3I`8wm(@ zK5KHbUWfX*rdaE{vS&-bII81TrI~7LCVobdQ z&kZs;mr?2V_8(_4JP%$2@#Wk0zEPKFVV?JhVS|L3Pgf`XS=5j!4^{+03s~ zZk;80akVDQ8hR=dGM>ptUDBBP;_vf|C-OCw_HK*Mh`W`FckS`QcOu5+A?J z3#(7cLbg@rltLfv5Y@^Qptb5C$ z7d#6;yVOh(y%5VWPb*hF-ZH0JvCIh(jN;oT_7zO{*%Mvr)`O{OVH_`p!7n7mSN;wr zU0JR+o;s+9Q_hwtCXP8uG5*2wLlu@&*H+uim=NjjZVkeQH|rKY+RR6eMZR%Ak1*0W zBsca$&DYN$~Dc+H&vQrgq3i z%Ov=Oc-CSDUgHyPs$gdtSFUNf6sRQFdGIp6D!5koEHmP?Xi=lh!F{eYh<^qBmaQx%Itj!i~eM2zP}=4rmXh84NQ0ANJX-{B8t38RQMDQVy%1U zAKM0_c5lv(uG)Gh$VAe=3Nh7dF=Tg1j5JlL2gtR;oV+7Xp@HHh!@B9WOc)$uUF6)N zbqXPZxt3Unw7^+U^kIPThR~wHTpHe~3Y1exyVriJAFj0-=RtoLoN*DI&8w9=5;88w z14|;pb=_fu;n$xAldIyRDawt$nIh}}Gt&}3C<}6x*DNNezS8NCf_yUT)iQNfe~7{3 ztohREX860p@?y(=-H^hG>X$zr0V4Cr?%cikrA{Om2@_JXPc;`Zr*;-Nbfb9Z_neG! zO9)0{4|{qj(_N^*WB&!5L(*2J=aASi%ap;a`ixUP=7@{b{au!_e`Nu5{s7cw5;=46 zjSvR(*I7M^k28+x#T(Kv@g(f9iXVF&%qJ5}l-(Y3mDihvWOQZP@ifgFdvYCds&J+% zH<88f`MF_y#!A%dP9&{8EcU|fqitSE@S`^2DA}MjwTKIDz-zRLC z^k@9wquC<$8bUAt=2COOpr@DdXW~^-`YktobdpU045OLcNVAXLE`6@0$o50ePwy~B z10qA>u`7JJz>pX0GY&-bp60TLnnirbthE|6GtKNosmez$siZ84LsFrK=~;%zZ_i%u z-IpxVh-V3e@m=Jz9*`}*`BaZ3A>01Fjz>q0w2wLJjH5+YhTeT{ET9vov_yTYX>MDl z^2k}G(BkV(jm?V5Oo>U48Xgg}!7Q)u&83A)&q7vc+noZvxJIgc42Vzq4zsGzABPHu z!9VxbXe=Je#dD@G|6((5<>~iJ*IcmuFC_{>B{3;uAZCXDz zJ9}Lq6rW$qbtYj@zZ~ez?p3&^{58~I<*<+Cq3_5RyuLMf0k(n=b$_50L}334%RTEy zI*b$lHrnHy4+<-jQTK>eKNsAbY+qCT?xJdCKMq@s;%nl&OrGV8D}4=JZ%-%s}TWAn&+gk6p!?8GAPNHktJ9f)K?sZY)6;1Lnb3R?5T zOUrFoBrlp~_#Qr+U7z=>xlJocrhjV0LR0QIEO6Q(xPzD_$_@F-gKG)#X1De3X7mUd zB22E=sJfBTA3i|irN-P^Bp$Lbs9-F%~%MPbPL%{`mx`E_Jh z>h42*nMc#bkI0OwdIV;TL5jI_22O4E}&Bfl6fg)X0?hiTagVi;)C8s;f z&MvO{s!SUq(({g-vzTFlCF9t^&WY2Z@6pANr2q`I;Mf`l***Qe);`whUKSE>@oiCI zTpfpg&n|*Bm5#|JLhfnrH&up^7QRhQeZx#_5ttKw@AK8s1^@hq#XfXb7Oeh8@U=T0 zqPdiOC$f9Zf|Ad1w%iW(BX35k`s*%u4M<&CO(21@*7MU>B2)aaeJ;u1Ivr?Ev!h)= zMqZy+Zwx_Qsrp8eR-wt-=IC)rOJPGUe`a$q{GlcD#%l)JVQZn+pVE)dJnLt*hI(zc zTt`He;2HJQ+sQ0LVOW&Qk~}(bA{Jgd?JnznJLs2s`7H}_-D0UpOa_+95IOL~Ui3}5 z9y>NF6f{rpg0t={4H0hp;8Zn^}&RXn3dq(sw`wTHXv_j?D`&%wY^qr1NX1PzuSk%vGg?p1!D8`d7 z{9$*Z=vQqYpUUFM&C|Q&S0$@msw7U1ydDTDoyGppJtk=LOOQ3qMGNyNY@}f>IjOs2 zp#7@)OhX~e_(lDcfS73F1O}tz1HQv>c`p_t%~!}?)}3M|9LWR&^7AteHHz~m4kQUG zu+L6*6z)m^J=JSb7RSh5*lyOAgVsLPw;O>Kd|%$tJ>$%WJNQ{?>}k+NWYDQXJ}Ke* zOzWMD!fA*>kSnuM(LTpXf6r=qN}Fa3qg2>x0TjKb!HpN>}EF zR-}l2t-~|UHK)3HPJxh}fDclf=;Y2SWb`#_ZBQK7xTKqzyM11=@o`4`Ay^Ne+1trw zSWMh_#T31-uXP=B!?5%0p2zQ>aN?_@E#==SmZ=QouJol?eesz&%Y+8Mh<0uJlGhJD zaL~!@qKFiBeelbHREMeA@$iwgIP@ zY4>Ah&^sQ3dh#u!^o<#*Wx@Y?l-3yXiIX=;29Ckru__$sw0T^85z5kqlv_D?O?G?m z?-IE3TJ9&c^W9~LxPGb^IZk0``>o4^GZYLHK>mia4J39hM|El8}Pt>=!eqJ5b|hDDO9$h{L&A0iO_D;N*-kiL^gu|FIX z@}Jq_{Hz@!qi~s1k(;B^3eyZY^A;SDBNSO(_~;yprUosSIrSacd!-I?CBu3}{!kP= zW}$kN8ZMfEw|kcJ-AJ5SYg>}wj~r9F7-f@y#t>Do6i;SKWDns6h1|!s2v{eT z9MQVlJ9w&E*OM(^_tcU z>Nq1gttxjrqUt8+AEj_)ImdLLa1QdeF}a+bHIe#qm0=GF%XyQFQ``OVNY?k`_^vEs z9u)BwqN`u+dg&rLm)ewt?-O);#W9CLJmqqKQt}=OMk@b zc!a>v)(ft&=aKY@WhH~h-dMUaw<`N^D<_&Syx$0qr#5(5)#w96Xu(77G(7PxSmci` z(!9yxW$V-t23h+RELWhqom?jD+4O9P=TF(covF7;`Gbl>gJb+R(b|vwBZV{WC~=w` zw6Q?PD-VO*AwICCX(VrfVlaL6_2ke}T;dQF$#CSLw6arGcPwB3Wf zE_bz!N1gqLhUzn%eA6tDzx<&tWdptY2VP_+@3i?lQODba43h_6T@P+sdR?|Vri^OF z*K#>o1Yx+q5*1&Q8pqXgzrv;os(Hts<;lixcm7Qv0E@G{*9X_dm0v%ka>#5RN<{Ci zm2K8SfR1i&H4|bj`pj7FGAHCtE@6B>yK6On5E-S`?DzkNy|<2v^4q@_WS?ob+$Zb29tR9YHTK)Qw+LWWQ}lo}f88oJ@VW}mZv&wlp)dDdC)``5eH zvzCiBv%q`qx$Y~!pL$W7-v1dgl^GQ!N4t|n{7qV!`W3^0S4Ym== z20TA_Mt{m)|%)${aD79@4s{8 zTj9%cH+F@0^|uvvn0?wPmB<5^{@N9=zz6Xz!|5veT|N}Mk^-W~IZIxm{j^prC*)RaCqmK68G5@S!V%oT4!e3R z)9v|hWH~O)tZw_s`dI7)_qaM)dQU$RYbZn2Uq^gl3r)KrB`fR_6RhB|owty-b-W65 zR{5dn`#l%e#Lz=@oPs5;ph(rj*MWoL%iYCmnx)<9H7YMsO898kL@na4|D;*zmCtJX zFeU9;_WtTw&C+z#h;+ULE0WdQge5Y!G!m-hPTl%hNsZr2rUH~6cv+M{W_Zn{(Lio1ODXpegM zg~wbZxsG#_vX#=81y&JOD@vNBpAtlIkS0&4*ZY`AQSSbc9B0(N%u#PV)PAA@wIlqv zPpryEF_%+GB+#zwz$#_;+EjZ#sY+5}9EmOm|Bv$sy`{L&A2ysJf+WSfu4ZrX`LPK@ z>B7t&K7PEjZ))Hi9TXVB9>Ufrir0|)Vg0L5{Q{SM6&qdy1H8x+^OaTTOV{I%bnk`Y$;)(3^g1|u@@DdvNfgmyA3T$2v4q&G_V>Qz+5)H{57XIWX%#( z{G}7QH&;4sXVbQ`9a{ z#aq4_c0S}jCp&<*rHF={-}~jOw%WC}Qde!ri^*$bS3)Um?^VJ}*-w11oU_y^+Za34 z&Sd0W@q>wY-Mjt1#k0j5ZJB3j?$}|r;RzH z5*Mpi3yR^nlulrfo zv3p_mfl4q3UTVhL884`2iUeT+jQq2&YSOKY1#lui?1USse{dMLK1ID^zRERzh|i?R zviG_m+$2TK=ru#meA1C>(&V7qCtvzESd7x%A1EDL_t!r0PWt+dF_TPzoCT-f_aaOR zVzLkH2(Cj_>XdxVzpgSz5)dj(8b7;QrE%%+YO|Pkc$1f|jHyi;IRCr3kUb`)@9mRs z!P5nJ{X3S?fm(BwM$PqosSf9NN_-&$ep;{6wRKL4cknoXteJcurJ+>E6~hasxLhJ(+5EUiJ1mKNOFAVhh-hb#}ofX8T#w3`ZVwX zVc*tK-}zHK_frM>WwY4T$sf-$RH#6UbcqFOEHtqn*{Ea4(3@bpj(s+J|DnP$L{S!} zw1u(k3z2SxuR`6^*VPffx@1L36^PiBFttKCm2{+?i2{ch-o5yl`(v-rHF-V%Piz~j zH-L`A`- zuU5}FJ35$MvUJGP}Rrd#n3Rfht$1Fv` zZg5-KDHn!SdJFhZ3A=Tu+B|Q^vA)ZK2jEhEiCiX*|BzrYE6oB!oR|cs09G+Jw|-?S zy^=FctiBE{tUl<6*03kG7^Ip`?5ByK_>6qfmzMIn^DdvQ?ys-UNHm%=G4xq!6F}cJ`21rnBl>p53GP?Gl~M{mg1&K>O$c^87KTKBvLoV_xP7Jn zDT9nhe@v)ur*sUbYjeQiAjR42)aXW$qu9K{>FQa*;kjmP@CEzxul5@?qyC|tHS*-s zzBc)d;I4J66)vFeKNXCMw>nZ~-&*Toj(B1`j-Z2YOZwOj%(j@HeL*7mMvWX&1;#}C zpmK-6q`?MQeBiIUk6V!gne@8UiQ?jE)7e%f@Zox3j|A!2n@}ppGPFsl*14ubB;9!c zZXBx`j8@Eh4A>!%bS(nT(HJne{YasFC7WePRNFYZ36o66-`Fq7E4{PL;}pvSF-yQENOh=K zWpV$pm^7wZ?5@9htd#Vi+Q4Vpb{l@6I);vKMuPIE9pK-X+%M7wbBLwdH8Z=m;n<1a zY7#g=H;bHxT@kSc3vZ<9NsJG4(v_u1s1hP4HUom)1oJhs-!9i*5o$KWUS@g@koBZm z{0u~P#xx+OvF-@Nt~6-I6jpRFU$d&`%#&mE5y?}(=jBIpV1Vbjj-z?0h^ zbfZc%)$I@j&KuM__}lvfXS+0X7B>vwK}gW#mL#mIRgn+tzr&{74M3p$RE}iz1B}I> zmat{{vE$edt~rw zVAglk_J(x>S=wC9n&IC%Qdpaj4jgl`OS&pqz`FB2y(Lnbw$iII0QQJ$(=4DvIP`P| zISdF|`NS~fl-06-*WtQ+O2I^BL3?ULWjUA4=xZdwUtoQ_A1 z?b}@YMlG3}VV}TbeWVvkNaqO5K@>zE1Pu^~Y(RqZSBLYEfcjSqz@-te5|(9TSbBFK zf;iPe!@AdFSHStZ95{z`q1}M!`JKyhW5p*Rxe&xsUpf^gr*|{a7^DL5pGYKFN&W2s zgv>xq>K+q2a0r}K#y>DCZG6L`tJ14{F%Ad;n_ymxiFCrl`bMGn8j!9+UBH}Dl1;P= zoH;0Lr~#c#d9L&hj3n_EhRqW}>HW9YZSLdpTXf)2flLUMRQ_H-*r9|k11Fx!fj11% zAe8-+A7Dno2IZ)3npFbEP2gFX8Nxm<-JN$xxfYlqjRQ+K(htGpG|^n1{5C^vs)BRD zvnM)aLxqCB<=z-`cq2v%^?PBCL!$ep7qH)>ugXlwdtxsx?V@4h;v;OvJR8oJX?if% zoziS9hbi4yorN!)#r}w5`xiZt4>Zm{^4h@prplu=^jd_eeWRw3l?|NdRwciR8qIX` zxWE!z87px*79+GpVOL=k_hwIQEIGiZY!pOIu3=i8C56A1EvsVs-n(M zQTB@G?7<2FGFeYClVdE-YX{vAt;8G<-ZwYr(ZmD#f z5H*u=8B@2F0y`{5Ovy1X;JhR1nLSh5bjprxlImDrfOf7iqjL5GXnNEfeH)F)T7GU2 zD`gI)vD0G;3h{{An)>MMPr&6KUhRP74-0KeCv1#^)d-s$0Wno;f=uGUh?NcGPW5=-6d$911>mZ!5xOs_!37s;ehMcp&U)(^OR@n z{Sx-4HJU}w5)Oi}JG60J?OU<7gUw>+)HVtap$A2FM;TC5$OX(by!XTlx;ar|%Jx+E zq`CBFInGlACsn7;uL1*9+CzO*WLv2qDQDOly-}AwoN2>8^P#qWg!)&oKq7TQ3T{|? zHk_PG#t+8lxo!b!rkLCbpJ~e*Ps%jMRJuqL;ioIVcWkiPNWik+@NQWiVWWrHg&SD1 z?18UgR8gC?l}NEIRJnxN&zafu7DQMh`CUIeD@A5667XkjU!xLuk@noAxt?a~#JW&3 zFNVf-MRHF1Vt4(%3DV+%w$kqq`I31KcgK4xt!~6L^45;#aDlQ|lEdJ#2<;PGu<@n5 z-IH#_ZAEBo#AHEh+HH|b45_8?7qmF_FuM|V!%bs6*5u-!>iAj8+8LX=e(5GK@v~%W zimQj`@WR7nyluy#Si1-DK!5ZgE}vlI9gl}cS;%@KaW8=p>x|@E-#Uq7h4tH<=Jt_YU@qO`DQJ-k(h(ly65@o1Mf_l zL=S#{qt$L^EMpvyRLwy_lh?A(eU(+5y%8TLXvc=cp&yJqWh$mEbIr z6~LjzpC`8}>6cev68QyNx&2kEfEX%Ru?5Bl9_?5UO-I!YUZU^v7}(#}iyCsG7^By< z^#w-W89O#}T}({}Y+tA!30-~IL%>aRjJy-Xc8{502mA(D)H7;V)3jbFqEucl#bmVy z8UynZO9$GCjfi&&`^^55GAtOftY!NFxpz9E{l^c*iYhscs|KJQOLO`!(-q6TtOW3} zqQp%|N5jQN-`Br%K4RVWbUQXpy%;7m`}tO4eK0%0&|PK?;0co8~E3VSuziZV<2p%6|-tEjb~l7w4+%MAB@v|sWOW-cq08f%o?EjrOp z#Q5dkL-?V$(5!t1>>x^M#j&lF`z~R1`Dp(ys6%+C0nHUrB}L*>L!S9=hO=ZT~;@=aBI%hIl1dKl72xU!hzu~v~$cTkp3Po}-1gegOB zhk@tRMzHSd4VQNJFM8xL#JbQLnL2iOG}CRdXfAou?pu8+T2WkkHcaGuDm&Vqv1~Px zcT|1&O{5fRBO?e)U29R5YGzay#rUj^+uqF~?EB7o{yiyYl^!{1)$z9Ub-fsUbHQK^ zOiDNuVgRXq*mOL<@-SPfA0jXMK6#x(*!9C3xYq}vBGiB_pvgi$L3${rpL#-fc;>iT z$z3wly2OL+5!Q1vu6XDu{NHU zOp(D9G&B)6sx1VEn(^S#;bHkx?fz zmWy#MlVho`$~a*UlP$u6(&`{h(JHSqe;E5aX8DQFNsBCeplbCsDQF$duMXVlpb=QY zMU0eccsfeXl$a3dYTh2;aqd#cn=lKdv-Ozq&|&i-(R&xWhjABrX5q0~` zf@i-M-g$c@s*4H=Q^I8_b{Z&?OxCeq^U%~GZbr3T&7IK|wa45v=kMon`)VyMN;t@_ zz^MKe({`kUB*sK&seD8GJ}k;Z=in|Mf_*LR(%pFtK3Mm{W$G$YO`>X$OM?8%6@CA# zL#%Sywv)BI zKe#x5&>(6cSSOLN_X(RhHY0+fz;rLd-Mb`32Pc*{N@2YqY9XYWeUEz`)Q)6DakFsNEd$w)(5BZ9fSd%awk8kex`dtBN-wT`U}<|1TH z?K^QJI&MZomNdU5|7?ChfgmNiqBsrb4igOJ4&!-n2kKd^ku8mCwTr&>OqeMeFa0+{ zEHG<~nO`TlUntJe#DOCflRv80;7#M+8fxrbqmsk7^SVO?d;ii~(RcHrQ5$3D#uhW) z<1uI3H_LAau8%t@k%h)K#67xxe=pb!?zX(AHeF*gqfD^u>GG4?g5cH?ejFI$Mf3y9 z-^540x)qMKjd^--MkW+Qw)!S;Na?b9c-G7w$r$TOO{+C2)5h+Q z&ATGms00Z*Ej>kOWIf~NXf`uO!f8wg1<`whM}dhV)p)rSP*J{5vmUR$ajmBeWDwnA zGNGVcTAp`^_4METY0HX)&n+FE4=iuy5{l#WQ#r+*?}XAJa5*3YrxHWJV*#c2WY{s& zo!@iT^vr9ie@@6kyb0t=#lN(VXuvLV$Dp#W)$oiwMwT`~Qfm(TQH-AnJK<*0HBOX1 z-4>1NqrMz0&or9T4||jNcNWUCRo966-2&G7u#L8xFBB9OaA-p1D@2(cfSgnFIEyzloV-qCOB$Nb#zp{^i?{ezW3Cgm|g6Zi&&V%Gra zT?If|C%~X{>6~4aT?iL48oK?~P$DJ-g~b%yX;<3FAC_Rn&>JB=cw4I&)(9Rw{eJG6iouq-&!&fN_FD#R`OVORoBh(6$kNCX*xT4GV&k*(ad``K43C?3bxHlTU5XmI_a$&kg zSoDjQrl{BW=AL390X1`x6%iXHhF!a1`4wl1bjnU*K5%HHU!0?04+~8SU7cwTICqHM z2&M=D6$`(SFDg_byWg4KwuCI}xPE6O`TVGJ6x6=%jyzhv!-%t|%yV_!ShJ@fq;s?_ zoMeIYMqhv1X_x^u6%iiMtx^`ea=e|}gsd{OOLud5T0R|UU5dD^-8s_DdCdzVWRCB( z?5CZ{GWiYIJF4i24scE9irn%XY%k5Cx5*Mc<`gbdHu=i|?05f6EhBr+1{8{JXUAlT8X@KttO!`cysVzaMAEEZwqee zY+s-J^_Tf({=WbHuQ%jv?DQ}{kO-QN{$z^9NrL}4>i2dqm&~YTBJ_ByY;HBNjQK5< z!!~@*SCS9Y$*&fIle^PhVUD-4Wj39{oN05NqOYt#0IapxAD#?g!gvcqF zt5qCGRIH?q85P3x8oduHGQ@l)K*W>o)1pWgN-|lZrZMs+;-;KC-B-M$Rr&{aKePBs zhAD;zm+l6XvfZ?LdyN+UBbdv)v&>c4pSXKg8QCS*bqAM7R}3?Md1N}vJ^R%0F-w$v z*hq*URW8%e=JMQevA#;HPJC#hY}O}it&$4kXLFGYnn#}qKK8vH&*X)jp7K4yF-g;L zn|0l9;2MWX)Fo;;35$bJB~CPVJ7!AOYy;xk6G~vX((}f!Q1dB<=6mpArs$xfWblZ?zozmxEK-$XUGz^pEguv zmce{R{FK!{VWq4yo@e0JA25*XM7sC@ODev#BK-LecvQ<*0F&7LdNrc=Z$Q>xZ?$g# zysGeez3TlxNXyG?!JX>!rMdkjr~h{-=GT)a^P{$JN;Ln~vHV}bt)ja?0k4h!GF|ph zru%#l&<1z2*5m&K2o*wG^shP|Bx$Oo3-cvSRmJ|{3j+X-El@7{?q^Zs_ILwc`==fQ zcn!9dz^h(}h1+&gXHoDlq8|G7@_zi2tP0hk)Dw z4n^tiKYd9rS>U&CY^2Kkw+Vd!s-#y0e}LWr{wr+xFRyna0Bi=YPg9KgL-Ra|2YcP{FW-o*+EJ+y8+8~Y zd1%r!dHfypKgGlr5VA%$LeFW;f_ydJ-3q`TCcg(nSjlon-Yh5@*&?eyA-wckLS5o&EFu3oW0^0{K>d zu)^>kBJG+H3&>ntr>4h0r|FDZU`>YwZ68+~wO^!)M9_3Wt#&nmg$Y!^0qj@tu3SftiF1@22 zhV=nBg6j}@=>;s<9Y9?g4Is$tfc2t_Ind{Fo3^k~(m`agM^iiE3YCp0zCy%KfW4t( z>c~vb!@6B!WXZTYgJHdc#SD$z(WH9~r(xNE?Z{V~Wk8nL9C1HNh-r5H@vNb8l!pJs zesWnfH@S&dIZ&H9d@j>xz+ikQc0IV5NKL{vPU3=XqiWdE2YD%<23ad}d2wMWO&8Ge z;!;q|-md0~Xk;!+HH08z{Zc~tVj{zDUebWuDMka!kxpdG(T7fbW$aSk&6G9U1YMs9 zk1%OI-;JaJp(*z*hO6y#MD_=yHKCGK^+2bL-d4_01YgaC20>ltCBcRWZ{e*Us6?St z){yb{HCwNMZoCgD#)Ofej)b@Z(8{p)!J1VYq1{YVqY?1T-|1?7FHc)HX&$q{7K z;o=1R6LUJ-twy72K$~9v%<2kAxAB}kfuegJV-n~Z?+iWmKR+&$Xf-<8np&{gf6F-O zwmQVzwg6=5RRsYz9#ZT2(gQvrTd_VmcBLKaxBd++A@kIZoo zO_uSo8oBW=_;=ffrLE?|L$CTjZo_@P`45|)iA^H;3z|b5XpmgCCVt`!*e0x*E?$C! z3GocEQ%=i<{z{LN6J<@KSy6~13EiW}dV?blu4*H92aC6~be2ame$8TIN8bdg?helQ zouwc6z@6amuUd7_#xiWLMs8?_nc$K?#9MScf1^MK=>#72erV7^<6*Zbg^^2?3Ijj!N zY;mT>RSYMD?U8*lNrU$?u9QZ6trCq~CVch|h*aL)E6WiSluaoaiI^w909ggN4o) zl5Vq7g8TBAuUP<&sq>f&9af3@5K)3OkL1h=Z~(gPa?m^4q1+c%BrM8hz`>vc9lMAK zC9F~5AHPQn1E>xRSnXpn*q-jMX4lmH6F|EBsi{^CRI&w*0RWwEyIEVY)Flq`NCrGp_#Hl0+mG{l_5;NFg=7}f z|1E@6J1;xh9B@T%_+KCrIsaOrA#v7d#B|xgSMAE;)W?Kky3L#?e4iFaZ|+$%U+L#M zz-lBeb^kwONCL(_!xJ#%FoF2~?3)DuoR0%gGqhr)@k<`4jPe&XWIHtWj%4FScpJT} zyaJ{R)VrIY-YmfUx=X$Y%t&_+lRtdmk0-~FxZp;t+1E; zOAlYVmYcl|ogj~60T?T;znzCE*KPwl@4>gc6q5AD(VPDccoaow0WpM+_Wp#P8raq=_FS7w+A{_y$Qyczrkl>k0gM2IpmjIyrn8jSkIfgpN|Jw)<>?l;CpNNV1z68^BD4@GJnt zzPf{eh~POM?09Mth9aO{mlPBQIl8T7$p9cqWHz>YZAejad>Zz0qg3LmY;{JpT=Dq` zE+d69+d%nkIyebb3@wG5pc<(xnew^YN`8nOV&-37ri9rwTp+GiMuT*3ews^+UMO7q z$?2&|&Uq|5uag!*Cevcym85CkT@0(r5ZJH!Vd86J@YvQmFWpN&dllnLyRbvzRrO?y za8+Dy`lC_(t+CdJbsNM;__rm>BRY`I!iKx5zFWab=>h-B(>nbA9!cP?a!X@jVjG+# zj&j&hCU4EO9?yPjqt2{8S_?_mCdX_)<+*-bMTb4;8Pl7=mp5S3x=-b@G`@td;~9*C z_eB<4AVKn{5gYsxP2Z3=-P%ZDp#K{f$RNG`rYg~S0ePyU#oA~b!n+B;j9YT46TceI zLWDY+uC_Q*1^tVDMR+C4uGjk${|ZbG_Lt4_M0X^><%w5G6D(KX07-!PQdbv*8ET&X zb$pKSoWS+#1xhX*e)MApv9b zsC9|PHLu%1#T zgAL)Hr1HJ%AXP?b_6PrQ>p7@M;Z9qCdD2FZ#W)D$Xy~F=_83a77dT-<7pr?VOMm5ju!z>V}qolgZ%>sW9y~eSDADjABhx9up>`Zo@ z-gA@eT5S0%Tqefw+l?2Vr=)?t4BP?JzEnrkg6rN}dhP?+SmOgPq2o7Snpmq5QrRaI z-iZ%rZiB19#$Mx!ET30Or+6K0dLT)YjBV8L{3oAns_A{-zm9F(GxPa`V{b7=Ls&7W zrO&|~mWL(o(6jlgNcNEr3oJ@QLb=A_WVhKNJ-E(tw7AOAUh1sXDmBu^*lBUBDe4{P z4lW}v5u0$}=PRnu+>ZO*ux+z+hn<`d{>S`;qr&T25xpD@HiD-6Ctqt-=awsL&mPS$ z|C)R2aHu8`tU-8LB(ItCSDpAXi~rn3oHamwxG@o+eef~`JKXCE>tks zL+iieK86OKeqtA{k|A#ug%O+`z)=MLjv}VBOcq|kz4T!2EvIf-OBg_XKpX;M^Z+E77bxNR#Ifb|SC8!D&BDd+L3=V8 zvc^ChIEBB0+E0r4@ETg^yRf;zn*zL^phPj)=GCjq#gU20b}UaoX_~Iq@EvB?^KqqR#!~Ww%gwXHq@O0Hw3UhX-={SN;^ud5@gi{PGWPz ziA0L_R(A--Ps;ly6*8l6xg5=rGXYH88G?7a~TBR#bsK={>7it|s|8^8&j*Br0%$W?Wb%ME}g7e{Rh9-mAahSh* z<9f_OLbW5wID_azOgm6=t&gH&6}AgdkFH;$?IEBdyq`Yo%d*0_T<7lvptFiB`W}gX zN5xB_THoRf#%436b%zLwe#MR~gVjgZSk$*XHH5HRuWSI>>5kCUwC4iAo}&d^&GCGc ze?eN6qUu_<0Bj6NEe5ga2k5V+lZ=XXyC%EA7_neyST%Z<&w+jJ9@ zNt2MJGey!Sxnle%fvs8|6AGArw0@IfGdP6uV5GKB^Dbw+zqX^AY<+SzS=m4Cu2NIk zf#fIXNp`}tAn4ONy8;W=TydwT`<`%#*u^!dWCAwnrXjJ=#?ViGRDVUD z>2IBD;{Q*In96wiNokGIfX@QSBnhkF$$%O(9*=^XKGFCy9R26R!k8$%mT|ewAL|Bx1n%Lql z^;fHz@A>dqYYmjClJ1R{pEPzf9aPX9&EVR<9c#;M=G3DW7oU84`)LX*-a@fRX25Qf z%Grz8f}N?kP)ZkWZl~n`HMScMr@Q4E1-qKk&aIMhtx<7r5gnT_E=bc_t%+6HtfF4cVk4iCI?SR}3F>2h%T7fU@sCz`Ete&H>5 zrQT#Kl4p2jtAwd&#SZisP^|wfwoozeH>!8&^{}Vq81}EpRwKl3MwlbwPiB1c$mXo> zsO?8Ka_$ZX*~m=5ob04CsLd<=Gf2hpiYJ*4U*m%0$0u8u{9~_jQDi$cCVmY3PMeu? zvWj#uUWmI+GrWh1o!;3cC)&!Na{NU$Q@I@GJ1wNsfA%M@U;a!ds-F%xOW-ySS`6oL zsysEgQ}yUMmU}Dc$sYg-B*Vnhc5t1PFEf?CKE_J474>xugj=*Gb;lardz` z#Q$V>XA}=9{rg7;YHgnLU6?hx8j)cO=1%3R*c!e4o7Z|+q05xh){lAriTU*GVEix4 zr>z9fY6JL%L5^ubw$bcryAtk1jZ>yJ#qU$+2f>mQ45EP6RxMfd0M|yFIzlzew)$Z6 zc$lk#{MJz=k5d#Lmi5GIa&(ymhvtEEOcvc2GEqW5$L13C+JAw4_Hdq;B{o!5Z(8iV z;d!t-=;IA7TOTcQ==t=kFFNH9Ln5KAk2gsg=q;v0=yh zEf$gUET+~zS;-H!SD?n#j0(Rz>d&+j4e+|IygpKl+gQ~R+RHkn$019v zhHYQ9BR5wZSu;J*jpn3Lb&57Q!i(imONuqoH6`v1r_a{?hOhKy&T!!!=qgO1L8;@) z9p8$pI5S;RX;wAS1DRBDw|Y0B)89|<3CrRxeV%1Nw0LDq4~SOIXU5>k7u)4jTtdt; zIkM|w_D2L*A&aW4nGSDh>xLbhHlk3?2N^Wd>5uOs0h+KO3g5Fao6@;s{ZB7|3BoUz zE&7{--zGMyO?0(s1WgB$(52F9bHvysX8{xAZ*KCZ>=ya-w8pew0{H90?~tR9Q~R)++t3r!-yxWh>363xR(9yhW;Gy4SdA<^ace4<)#TqjfG z+PQau$HW=2E>=Tp?EkpOaxt_e-}z?H^9l+Vm6WT(XP?d1%E*tH7r)s9^rd?!!YmloR^Q%>^tFL z?0AYmS2tbNijAY0D4T1(w52QIAn5s*6Nk=iWbS%ycio0sQ`!Fs^I^X?!(3CHf@4R! zWlgcod05F)CkhqN`ALj8DU*SAGw?Ey@thM#f^B^NCvm@1%3Q@zHgsB#>1CxQ63 z$%#up8}n!RH@p1lsP+`1#t*km?7LqC{3EJd8%;HPLIK`h)qhD=D`jxd*(01;# zYrn(XyHi#WmwN{zp|B`P>v*2xrgXBWt;@I8* z(KNwZLAqMkl*wR4#i=|N&_-}-k-TOZ#<*9v*qT-JS!w4-^ph{fm6I`F8^QeWn&DmF z9!Ju`XQX_F$?A%=K@$XEJUUIUzVp%So_8gr9U71VJ&O@(yc+?LZX+hpLo7xgS9=q! zZ!nfELDWG;U)_kJ%{ba~cEg0Jz04ONJkR0l%sYji=T#o7#OgFK*ORpsMs+gmPbAHX zu45K@PmAXN66E~H3)Ls{NpSOBX20_aSHA&jH|D?ovcl_Ds?{5keLY;v6stc)982l&y=%?pH zV*h?S|9lefYS2x;`T2S4AHFsC^(yV(H#?y38-R|ndpN{y_NQhgZgwU7uW$O_Ti`b* z8Y}X#N#Op&a|OSy$NJNK?Ixl-U1ODE@}D|g8`sp0Ki${=JnldAr~i4}|Ir!$XLSE* z6#dWW{*Srme9*z3n<- zX&CxcXz^DV^nWczPYy9hP6b|!W0??D02Bhawl){*zF!>DR1>oT`U1Da?9nJwbiEjo z^mG&O80{CL1s=M$vZ|(8qb=73Rl5^89V&bIyHAsW2X!c#nuu*u;QrO1ro;#+5MiKv z@df9Z<7j^}4+3pkJU^2qc>`${N>ib#U%{B|X&Td9nU4^cnWRYxt(`UatVa zMn5xP&)Wh;-J)+GJ&=67pSi6kOkAgdM&@u6=Mw1pe z2of!A`qG5l2W82}fh-(fhQ#rDc^UG*0p_20X z+Ehc0b7R>^v4PS#&b@u+f9@6j+C!9mfqd6HN1JBjt0m+&g5+E0SV}0+Cr&yK_L_MC zWYN%O>SNP9@Ch#u!6mH=_y&6ttYx5{*rkm(eEde$Ta=n@qF=BPmuY`^6)- z%Rw0V7ziMsy_(6_U|JY1Gm}Q=liOsQ8AF0EzPMU9{Ks4XxI|=uY3-$kjQb#udkk$b?cQ#&0ytUw8VpS8#O8hAR5_$W2%Tp$rRAYn(6e#4jcdwFZiTNa0Wniw3yO#iBNeX zz;%)Gb_AV@{`V{Up$p)*99pKCr-~1MO3r8r3cjMYOHt{MsBRHZTPuI<7d0X`_B0c< zuLuG9$xa=TW=lC?!4V*MY<)2w$L9YnBZ-mQgDh@Qz-fBY9cXjk#Q@O!(}0;1$Y($9 zCMf|9uq$@z<>@+?w6$6O3wCK&skB1C9T3IF_yO#y6P``d)0_9kh-^_D zo&XReh`xhPrXl6g%UeV&_ECO-1K{8eoZd?x&xr-K15B49=-Vw92JZ84UnAe0c6Xrv z4CT}4cu#LONXc3fdl@hrh}9};+(gh{N}?t@nEXbJ%Am=&&N&LmkVI`>l@K9Va)TmF zB;21=DT|UHz4du62ISLo4sqkJ7HdZhT~sFQlzl;{x08Wm-DkA7?nt3d>8G6+%;vO= z_UzpWG>oq*7+U>lw}`gVbHu4MN`Uv$qA&IU-Y*%5%F!;)(i;&V^6=BS_#2+zlR8HA z{qkVucz8Z4BuhP4E_(K}3+Nl|{Vm=s)Z0L<4XO6MF|FcB#e5gv6UMNc=G;MvmN}E- z1RXDSOg`5DQaNl%d_oQZOfq=YB#Pg>Hq+GkFIv6B4ZJSKE?m z&w$bCJcql@Yi#~zHazJwQbl0Oa&M`3ulbbpKaZh-uVqaW2z-?9z5U)|aNs*O4x%Aw zox(`S7((WB9I=TW7IAA4JEhCyUXR661q(|nOB*9J+AK`_@%;MF0t*oA;H=w8ZkE&9 z3e?eNVHgziw{s|#7;ksuIa_|82SViTnKFs_o8~xl&~VAV zLqc_{ZGTCrL!Ei?2-WUKJ!abCjv`#ZkKMWtUDk%}MZ9+}x$W%AB<8tMH%dGD39zvO z?Obb_=4U~w2e~^UH^MF?EBGI@s7$*EpjNd&^Rhx0Kb$K5_6C0borKY~;h||%X%vTH zjeu%3mt>aWOMw$97{NgHO^6EgJW-*}BE8DiSGs*6g5+XO5Bs5cN!h95`$SHqfT$Dl zo7+AiyTQ>=g#6g^g)rcblY4`xgQQ*m!;6Ezt4dhCZ?Pq5hR8$w;N|$#@MiDB4N5^C zCvB}`bN`Z?xMXdVEKN2;0<+o(z_1~T0JKOU*`(sRUQP|R}=%QyCmsGfqLfw=0 zlTZShwY=Lw$+#v(_r$_Td+4B_Bj|#Z*)<+)B+su0;XVw*HNl*l^t7lu4hh=<>zBd2 zul{|4B=-YJESfv;_T(#^?fY$|`QL~MMa1zqT(zAV541%o=F`9hEyLCTS&Y2;4O^bNT^N)JlzaP1?M2U4B=E+HH~UYq51FFj;&nM zT<4|tdp~&kCsZ-Kvj>~RIfQyGptM2-Sb1+ZAb}AD&9oeaACiGlFGqc8?jlLRH8J?} ze8h1F6=Ck4e?r?yg_xYin3YS*X*_6(i*)|sD_S`;X8G^`)Qz!= z_;)x?Z^?%8z38DpQ!6e?|H0|vM{~Nq4M&){!8IyAMG5fEAMAp?GgPRB1?*7@NKgSmzn6gGU9d_ zLGBZg3@t7=N(y^zPYxKrbbH{_%0}Pii?~vQ&BpbyBFT(GSxtqNI!FndfqGg%JdbqR z1y7;v(Yrm~Dz2otyn=ZRL-&H1^>wB7ans`mE)zVH@4Zms7yFt_obZir_-1&4@3{fG z{U0+Pn-ivX>Tv>Iyjp%AzYObAbi_xW9GTI@dNh}~Q}&@~Dh#mfUa?Jo74Y7-M(577 z1_X19e#>#XCbMByfs!e=X?b(~a3wbudXa3IA)uNVJQw~5P@)o`kBLWD+Ai8@c9V}W zu1_offDBlYk-`l3BfR$*9_+%t$yglU52A5-!yL(Fm@CC}wmg4R5K!o9Q6aA$0ad4z z)9(lOOCPD3IFFw=Kf6fms0@6W*36e6)Z}?TsF}hHB=d|kcsT8OO$s)*m1^n8um5LR zwF|iZS>1oVB`K4ZV@`6l1M7Mm74vHRu9NCN_)b`ZUC|7t=&gg($)20CaqP0X7K)PB zGR%pfIT*N}K3J#(s}|XW@uUQy*#5f{Un~CyqC=1l?)gvwP2NcFP-f)TI^;=?OUlkj zr={^rY^}i`S1DBZc0-@S>Dck8F2E$TaHVIu#l4g~uM!DDt)(E}bm_!cX{|J*J@+5W zjlR@(*9d)urzv|aasq5+As4Byg?>fi5__;cY-n3x&Zzm65e+s{O#WYi^F({*b@)k6 znitc({?Jq(>C=F}UH`op)W3)}Ly`=uYJp}PfxJeU10`3xy1c-}Z*O(6yF5P;QcLc8 zr%3(;Qj9V-r*Vp~Z1jP@Vlb$(CMsc#Yu?kAjPm*cVVi(CP%Ys}>KO`K*lT_U?7@;5Qc01+{5E)Avf{m z!MmCSIX?5w53BaBF7JfWgob61GeijPbtoIVtEatudp2ltJW%6g0?5dIo{o0~91Ynh z(PlY2^Vdqy3m*vlpd?dvL*@aboahFw!N!*3#-Wo(mjB4n_|#NjV8qlECs|O~Q+9T;{Hr}G!_K-? zzeDlmX_v^elI1#&&Yldae)k)~}<_+%xz%q0G8Y#;lTGmLI3p!Fz3rT=Ix%o3NoqY7F49pD`jQ z*xbwnJw!u;r>8>-4aCDkkdyhJKV)1V=6#r_sm5~Y7+_;hVC4R2pgGWNrr9i=D{WM*L5MW8@IjhTnT1Jsox~j zR;wB>PJ0gMm#U6m*P}Lxr|Lsb5^|wcF2N1a%v?WbejMP6ZRg1#nfd9cpwX_5jYPTx zWaqwu_3cLU1(2EmM?D8pBe%z~{F`{*XgN$~XuWvaFTE5+j9a}LR{cS&q7Jr*`2RvD z?c4%Et0op^Q+HFn@gO7T=}1(Xdq-TJhUD3#sTVP-YICXT{PItU*7zQ0OH2-E;S|@+ z#4kF}W+KQa(_c^E?~fys5#b3@UC`~1NrK_Vhao7~81odf{L=uZE$G4C(lg5lrBzB2 zAowtT6GJIH3}hWh>cY)t5oeM5Ns`>{%*=~UVGGiJ=q1bo(6vn&lXahZev*y`Z#<+2 z2Z8&AvIQmML&CQ2Y0Q9d&5I+%%7bUgXP12Twz>Lq@?|?}Cz5$2SD63TFTYirYt#uj zS#UHpQ!O$Ba1LoDJe{1yIZ?N_Qe>Zr^m~|!T7FG9%xrr2Ov2D#Dez-mGBt?_pVZ9& z)65(0Lyfy*EB>5ySEFi507}mcP&h`EtIpF&XRn~3tN3TbG5%$ryOY>mv4pg6-klr~CJ~RbBiM8kZa|R{D zZ?)UByb3$VS4}=F3hZ;_9ouCe_ji49)-HmE{rNqx*ON(!kQpKTGAgBPTJy+5_Ic7% zjLXWl```_aZY>?w(6L)&3P&n zi|9x4D>jLthXd(v4`_4&Z&ae?NVVMXOY3)#vMvdZrmB#!`_VQ{bBR(E3GgMw5k3gV zJ)CIy;7d_rSmWfFO~kJI_uCHI3=iB~i8V3b*ggBq(l)cJ#FQAW05>#Im+?V@qK+!l z;Kc`F_2zCcf+tc%;PaDg|K;=Q@45%Z_UzUD1!Ex`KrQ8;f>|z40K7sK3r5nvkKx~f zILI0n2-e1dDy{!KZR|iirSv}H{^wu%Mg{*Cx-^8T)lZ7>f3MOaMe@HnQuG1BQ!hT0 z7S{-Vhjta`c<(kL3D5fe21$w{;47%+y#STD1j=jpHwU_Y2F$trj(|@uUaYn%J=a+1k8eBdehofT1MEPTiqp+s z^U?tAr~6WPl6|+CDl@^w&&d(M^mGD7l7VGSr`JWyYXoa~K7V_v-DvC1LTi2T^&qI` zKmm~=d&17?crQU72Yp7yyLxUYm(cVVNl2e0TtR3>-Q4rKm2k>AP!O=6f7$%e@2~?^ zx$^Az26#)(fg8@HJO@N>8(_<(dFBBg(2O$c+vMHv2|S?hY^#7k8u+{p`e>+9s@%hh ztxECVgyx5IP5j*7{iI{wV=z^leOdqG73}mp3#$9ZY0DHp=W(TPMqv$kDAARTj|9N6 zW*&wCfEsZP%tBMw*vkrb&e=|MX%Q>)#l8o}XVfeKM1mCJ^oL;w$H1V+Bg|ppTQheGK zV3OLYuy0F`N!ogTE?VeX_OY%8lq$Q0W=un5&byr#L6PRwh~!0gB}=nUFHFtHH__MZ zY^wALE6j%0p|mLV!;0}zL-La?dnP5^zrs)^NfFL3giq>fT1!HwP{o`I?WA)^7oY{T-}81v+!@HHp~Q3jsYS4^KlxsyN@@V=g05YKqZ5UbzXjUP zu3ld6l+*)t9%O_U#TnK$EnAk)zV?AWH}ck!V}3qUZQs=>Rut75n3lqo^6Ut3GJXFM z6#QRx<17B5*oXk@3cj$Q4=}?nu1F_4a>nWXk=PUiG;2SFJ$JN z%MrxHTbQ0*z5_UJc76xJI&`=uRpD{4*m(BkzM9g} z3sX=aiPRL`NY0x$=DOxO=}t%V1Y$+O`9#?Yf`uJiZAz!0Q_u`{GW!CGx-0QMi$&;# z>7483EgIlc`JJZvReKf9BzjXzAPRVQjNGSm96;&21~d~2AYA~-tk5kWc{k_;YexGC z)4Y5cif`~-ww2oVutPA>d02FdECoq>3nVEl*nBdmIt{A+0ff|oU4GKOVNF+C4Q47x zNb3Bq4pBM`Va75@rBLxrR1>@Zy>$O<(UsrGvF)}F#&F6n(3YL$cmM<_LthV_*E_HE zhG{~HQSFaCfv*zzd@vqF%_$@gP8#}Bjh3fzJ@K#=n2FLGCC@X)OAxf0$@#-bepT(M zD2Vt2zd;3}m`o^#-Dk$)*aH+>!+5K$>5SBVfhM5|(;u)MIx*L>9Mk5Z`+p3uw z_xY}})krr#?$6ib>Jrti>FDbB*rp{^p&8i1_Rb76FsDh+doWXp219)(Dz-^&eV~h` z)o!5Ph{~Uh`<}4%d4leyojc=0ps>43amHCm{fT&Jp3k{yLn*t$rM!E!!QLnL^FIF2 zYFn*C0%v)ZT%;JwD4DPA8kWrI$YNT`1deTUty$#-s3HfvznCtW~V1KJcOx-tzbX`2-qSkkmRQmu0iwrOE`sb$+6vK9WSj!)_ zc?w^sSiI#K=?k87Aq68?={@>Pz}N6nG5duPEJ|Ws3b1Tlzrv){dgm*Qn!~rs1K7Au z9Zz#1YV>w%aG@MtZk{iSH3Qy4qvD$u0*@}>YF&#rF83QC#A~7JR z)Fc_+k7hr@<{$tnQMhQTu1*1v2vbu>7bIpEuqNTEP%#nAzo$b5;7Y4Zu#Be`IZP{7CQ;TB6eV$90XNtP zuB2#4jS}68gfR=~>1cW{9nQ(Q+S0{<9*m$JJLS)T`&yFFgGiM$S)E9ggPPEF^>x_m zP9{q*4YBNcGJk?B4ABrWZ##3Q)l9T^-6Um+f(8wNHa)>aVE|UmgGA&2#UFid8wemP zM_U24$to=QbcmeWO7D6qI<_T+b$qf3tdNi@!b0vF5h%Q4orqMI%=j`v8_(znDdYGG ztp13i$KXJRr2Do>_MPHYNsx0fcBuWFZVqsu=AFbIM=6yvq(V~nE!u@DtxMm3rHx$* z>&H%goufP6jgIIEWDCw`xdx&Mx#wxkR}xjKM^GmKX^Na`l*PbjAd>cXh`oGcYc0) zGZ|ueHGNr?LsPR`tJoh5?;tVkQ|c=tmX9Qg-k%~hOzQf+KF0CX8P8v-^e$MaXGYFM zow{f#oJ^TOGC{3%`@vewgK*xrHw6nb1%`1|-imGg#K>inA~M&dnhEdFRB+bdoW~EI zpel1R8TQ3dhis5L;0HszXe_^b8e)*5$)t!8z>e?&v#pocmB1ppF~91CL&Yp4%i;vHry5(I)S2v+M7y@OeB%t zn*axO)2HnX!$-2)B13P+7{|)MR_8V^x2NS1zdiI?e&~pcs#kE@kZ{v{dwrW`8)ry9 zW28EgQdKlt9W<(Ub&4rcnZbuI#^d11_6-YchHYDtJ)|4D8Vz~gEYGHqyHtOk72cHS z$x^X_(G4FQ{7eO|!l3@8nM)8YOB*y+3*EO2hZw#9qbRc<&EO{-O&DGoQ>RS|wE{oM zSHT%&2;GcvSPi;Yhp`TkduI%*3-nz_69a4m#Wr*~M9P5^hS4v#!GQhZM>j=LCNkv~ zeQQZ|z8m9b(Ua&FIW0@{t0?EdOS#7LPZ?Fi$1R;4pT4~2B&23}&bFLw7cy#VXPTfT zKz0Y~8B%6(vfIh8<_!u)Gu!ZmNlKfo)q9v3kUV6L{f2Bv*G)H@YUt8`cnt(Tu?@~@ zcF7)EHwNn zd#P5t{l1z5!D5$q-X?>p<`|w&U6L_iJtdB$AU%%QV-Av}T(>z5(Z0h!X*T-VA< z5|ALW$%c65GV1QT#ETb>Me!)CUwN*BYxj3+aZR=Z=^{d7>Z?;<)Bd~_=K*`z-8IoN z4WB!@XNg`BlN^H9&UMTfxK}JD5De2>`FXROKrQv0w$$$?rpg1J$g((%%GA!Pd1RQ^ zjGe_i-E-)eymMsHiU|(YQ;%0qlwvg@t!-2A3Fy+N4PTdQ_gSFA9VyHLDIq#m1vkB-UuIu`wZN7Th8XKs(&IU0Q8~Sh(6xM^my*N*Bg<)AQJS$Bq{WO4ksS%X$MaV>jh#2Y?tFsfP}z;I zw*S{iYJ}}lv=vcl_?69;M@}(!vI+TRNhEHxNMEpT@o?bZA)RV%N>^-MZ*4dUt?z(^ z0jH4m5ysFFe)*44ay}HZmytSRD5_2mpf$|c#1g}EhLp)S!Tpv5n4&t|@SE$zrcdyy zc^`*k1xc6%{|p`d9m;bo-t_EMDs#Y$F@zy@BMx((0l$x)1u0#v z!LHy&qfXL@t7#+jI3 zvmJF8jx!_|0I~C~p4JnH2P?pN(emw4as-3FETnz9xIer_xOi}v!Q!q?)#$e%%K>qRvXDW3TV9bH~qh< z6mWV-75GRXgr*{om)Y3rIb5XGxIN>SH|Iq>A9cJM4>D;$Fr87Cqt&F}b;hw-TUrlw)UQomQRNB_%5+{|Q zLsD1J(;ZgwCGpkrl9PJbNOkj4-!00mn~S;0{H5g0bK{fU+P)N6c;y`)_PwSHWqOEo zD;NO%TCDtxYVz@6%%1IBXIKO({c1Pq!OY8_77TtAmPAK+H&yNu>MgiET=rDUF`{+N z?+neVBZ{~RISZTiP`dj`B>@D7?IX1k2Ub-R$nz;& z+3ZEo9%8lo4wBQ9TbG~{qY{Ml;|y>d)ySzZTgd&I$GA+Dvnon+D=1$RHuih9N6#Td zh>g>_QJ$Het*R>jd6CcA%m8nr<2)LaA6gPjp2|U9(Q%nNmX_mXCQv>#r@($lmMXOz zSd?gyip6t~fezfP#pA{`Elk5GjvQX%MHM0FOOSqq|%;(JD+_dVnwE`?QYE)_vtv} zAi_iM$+x%HcI3BnE&5+e>)#!DoH^&}m3&$q8bDoo3sdLU(X6{8MK?1u97RC#RoZ9CZa#CPp7keJmuifRY7k z?depZymM4fR0To#?3zpy+OT?wILB=f;NVQ}+bdiCW(RjX(yNZQDl)j>tB7XK?04Kc zeZR<(x5uo0+XCAZ5Z|Y&Y^;np)Tv=~d_y?u|h38l*K zsN`pGLK_P4)tOX`pb!KIMIdKv!{}|0JK0AJxWKu3;+q`xI9BQ>a=e z9!3yCQ9FGHTeeH+Cs7c&#~Ym_q-dmYvi%WX&8#S7^FygD1}RBQB|Z&cp@*1S_hlHN zy=HFjv~6lMc8a{qAMMmG@O24CBYDBLhK5S>gf9c4oiW4GjRYS=$Ji#tzBcfjXQ$UZ zLM67d|GQwFqd;haX0D9P_J(9hQIy0{#5h>le{OVT@Ifydr{JuUvIhw&bAEel7*@{| z!1K~0@vxZSMU-2*T9b$zE8eO+d+m7%C9D26d?Ee-UM16hH4UBAop3_6lObMhC;^l? ztmkHPhdM6R-qYP=e>~UmXbXoUyl=^2GA5-($6QS`Y01-IZ2kOUyA-gxa^vD$LN5n= zG+4qkl3Y5oQ%>bynf1$k$)}c68s~n`IZ6J@j>n&k!9bTDo=qMihZZrM^B`(wP@{QM zd?CX$mBSTnQlkHPUo!p9)=!S{?OP0=sUN`)G)U*`b`9vNPwFIl?eabrzA?j6K?{AT zHg^)|YjgJbGHQ?a?n~=$Vrl)(3k^EC)bUiqf!(u0g;xb#?uisXg4g#qu>b}l%GJCAB&+KQH#xwZut zSwE3QaEBHQBH$mX{A>HTOW(f0cZC@~L_f+oO6e=rf%9Oq-3eQXU6LHr3sP?s@yJm| z+9k?8FnwAE*SUi~M^q@BWE*Mdgf9OQpL)}JsD8A|DWtwVkDlEt8{3=h#Je+enGtfT z?KX88$v7T_lhw^eZsL$r!p8eDV0u%&jb48gG0tk7ik!rPh0C@xKYEu7y(1=( z9W(8nk*M<;EB5bN54)9~Bukcdwk9b%4IhmxI-iF1Bv&h~Fj>pzk>~Ecy5fey(u|7j-g!OQwzGQe}J6c@mZWTfNNU*QVYvwvX}aNY{YR zUlL86igNVi*ovp#)Or++rzpN+{-GL%DCBls8*lj|PaMH#iDA#IDp7WJg;qNB&CT~) zmdcIP#(+Lkc;~_PCojc|E1qhT(CGQ9b4J&C90~i=*4qc9xfgx3`Mh85=*(F{y&i_& z{9xuu0MzQZ=HgSad4Rvkx68qvnKg}O>!}@q`@4$Ft3%#f4E^4CsVXx0wkRjujAX@g z)6c5+2v;$qC1WV$Tei(HK!#B+Z0H@?#Z{qV-0jj;529Z417I%bB)%PE$}t|f0p5( z&DS!5ZvEvgX=SVr9L=N>g?L6Vq+eOkgug)-qq~OpPTdP>$j{1Wv_|)@5urTp;zrnX z+b(o}E8k<+&l!zUeRGU-m0#1J^4MdfS?(dzNBmVsrxAwi#FsBrEimDw{eGpII(ruV z%24X=exyC7-~~|(Du1}cosz1u^!xn%rT7x}?m^dJmkRx_tXEp}#U|BlW)Rg_)H&eQL#vzRkQbiPh-SYuqr;x#}04nVI`ri|2GH zQH+|q{5XM{#wMA_s6@k$m$! z2Fu(o+{-94Pt9eNyNzLMOR?x`qPbTgaKHS;#hM{Agp_x$@Ue2Jj2~V5E4E>ZBmpXf zS{uk%A|?@bT5vxPi<0?p!14>^^3S|cxx&}X^C~V_cD?m4g5=H2R4qhP>r%SMsBQ}y z^2y94ajwFq-Y1=YkST90z}F|EUG=CjsUOjFs?&4Y^46pMhLsy!V1v zJslMQe|(?zkbQI>*IOocby_oRFJ~8HbuPF(9D;p?r9$?12=v97WPW(S;?jPf~ zeTimEvv|p@TVX8SvxHpg;1c00+5IS<+yUT{HVz@99>jETWom1?lZ{Vy^*G|6LZ98J zPGuDvA^!nqdo>7ad>|_O`!kVom6tg=?B%LFJKkasqX#{yJp-+y7yI#Kr?$yq5>D z=zl@ibMWx4bTr#JpnpxR|M%jcUPbV3*V2Nt|B8VBc*k0ruyA2DB`*Kx0k1KF0Ur&@ zu>Toj|M_+ASpiBvMOcNQ`yapX=f!zP_;^=SmsWX1|M}Sd4CYBfgpYfS3!un3C3U^c zNcq4z=Ck9{BCM-uLhXUN-$R{O>GI)N=>A)o_T2VUD%mED?YCE3x#ytDntBQ|7?~$} zqV{QcNI&TMHD5Yjh0-uwK;%t`zHEFIN&H&8^wu%9TouhRQ23Y{m(*99ndX&%J-yc7N9#OUBp9@r`xK7npg`?*r&ia96((;k&8S)YB)k0NkNj zWu*o%p8d;!JuBp5)4f$sO@LE=uP_o1FapfPANlgAS>C&)WfXM?S&?uShcH_n#9Q4O z<5()uae%VdFE0|!>1HoBVC{XP@s{}P(0upBWTIE43aD^egv3&>Z-A-+mW9v}ckQSg zOn+U|{FmVOBr?*qJLZeE{ss9OV1QzQWB=pYgm~_^hAEuuVP&l6eBpi3U7wY9Zj(KK zK!2?!PLnaerrn72&0)yx>4c_WHbqT*Ar;#R44KAyFl36!-C(NF6hAHB`W946D9i6A z;mXOSculAQMX^75x(}KRDNB4qO4VY_;;uH0IMI7me#qf`(vWm*&TKYWVluY})G8Ba zw>|`vjS$%So583rA2NR0ap|d~&pDQ}6lf*M zz%G;}{Eo#Sk3Yy!58A7mde<9;^shn9?kBKh!bCg++H;0kbi1eDK-zGaP#6A&wFX+K z>XAvHbQ7AY9t$u86|gQe!ps0UypFT7g@5Xs3IA*pOv`8uCX0AV2|69#0=9rv-A1ZG zxK#J8?g?ntGkJ$o4y-FbbFTrEZwba&kU5kD`u2_e?~DNG+y@h(q3~Dk0wp`rW8*IR zjTI1Ob)a=&p6-;^a~U4AfZhHC)+JRBhDEwy^oC@fJHHL9sYX|u=CwHS*M#e!1956t z`ra3Yo9`Dyb6;PCa4Z6`Lk%I*b~u>&)C(XnUSa+fV*uY1pj7+m7I8<4?=-}&Za|$s ztSPQ0{`A+6c^rwu_JXC}2IXR54aD1DfOYXQq3eu3rS6Be-B$`uauXQqLB=}yy0zlq z_t~CJNw$khtSOxqFoQ!f0JyV#i>8m#uJUP=^L^sEx~g{?WC;d6!>l+NkW4kn=^&Sj zplMK{Ugaf@$Z{YrcQy#wI^bLRGo$b|n}QbdPAaW>DkqWJ`# zujZ=mM^fND7DNsDbIj;Daa;k95x~{+AIrlwp*BEs@Et|@UH6Vd+(m6Ypm9`Lj!#1^ zu;0B*P87KPoNN+6n?~%;sk-Xz1)65&Bu<71TR(d0P z5PTL>DDPyNOk^8qZ>ifZi2j~=^MT3Xonm|)XshId_G)jH+TanuNCT4B+waZ+<~I)t z-I+Y4ZX~2QpharmbSFY#2h0irrTVhU z);aIf?Z=NNzaj6v=GRde0W2S$L=&iq1fZ7aVELJACBq{zb$ZTd@i*>zr!1p74|VdK z!$Y6cX!S6_cSHS#EYcee0858Hs#b?(6naqO)PX>!8vuE#w2K<_>qj%G2X|Ffq>hxk zY2!vJCcd1ljdJE)=0+R$ONdjAmSJvcp1ZP%yx(8}&&lU7QsWt+S<9rFcONV7_JJZP z`n5n)>etGe=y#7LbW?8RN?*waxqou3NLN3OfRVoQS84{}XWK2wA7uoggzba;i}R5D zAts3|9t0X(^*I7%M5eot3=>^#ggge!d%lnin?P?+0FzILiRbncYbI->B*VmZXIwg- z58vM|-G@13=AatcGqkr41!fbm{DMB>^NN5oa_ML8vYfl^Y$;K)R+x}hA80(pnu>OGy*U^WE?eWU;x#i2_>YhjEp_bR=%XcTa_o36!e9^10g09dFpo)j7D^{4~L`LM7Vhy0yTKkGd7Ccrg ze<&~B0Se^{(@E)EnMoF-em9{so4M-Bhs+Z(+VF8|w)nef`*A{XJ?}9Ogn+xM>6?dH z);?5cL&}*TOD(1!$};hdb!Tpa_FXQR^>Fc;024tzhdNBe#Y zCeRjHshY-Jx0z`l&O30WC;|PECj)b0Qz+v+ewfpL0LblTfMyf$QfwfKX9SnTt58}! z|Ke5eb6P*{@AOjSFi?~95Y{>=PhK_kwhl30aY>C5+?sd@LOe1eCgTwaWEZZR(t*+? ziP-Tt#&RXT2!||@rf!N5B?$rTiLw|1UW^)|@lQpxCR$JSX6B-hVxCfdfP z`F2X~9*~y=NP^X(s~~ckcwnV&{w3x2^b4ORC$&fet?=lB$mnw=llY4E z?@8rN9TEEb)E6yvgSyh!1atIq0dmqN%9M)tM@P6WSxw)VzV}x`vZ?#lXGjQ=jt{`> z;2QibjifQsbvsZctLg?#^FWnKL>T6+T)=j}d7Cv!Z` zp?AZSu0hyxsbVe998zb&H(1A4`8Pw-MW-(85MthIF7H#|g-7U?cqmJLud?Iqo0*bZ zE`?CGURdD)JRiwYr`L-n$wD;3{NvA}@B`!<>}zgaxosUh8hz)j4b@*eXj-i| z^ox!K7MBZf1j%Aytq*KR^R({M`(W+&`4Z!&dIS7rKxLWfejnz=w`pJ(8b2-RRsnWJ zEJ(cz=#rRzX?0pVRP#?li-=RZp(18@?Nm`-!ij=)qr&5gd;#WheN=JC&TiX~t6$9r z!4(m48cUrEiB7QQyn(NzROv~4^@lgsVNnL9cU+vfzG;GKMUECYF;&YwzfjyPh0#82 z8m98CCaQ9yM{f)sR(+MX-yHguof!Q4Scf~=M!VME_Ue;Ogh$sWH5Vhs^H%~Rh z5Qe4lLsqju=4$Rm;<~FST6&NXd(l1NCHsOOUm?i#=i|6b`ITOT$bS6dMmDUn@){Mb zQ#x)fW4ee$8@n-hud9g_dSjmSNIJD_cIjkRQWh>OAv7~rYlMLE9I#nnZK*t^-MOfB z3e%!@TzHU?$L)OJFJUakB1WH_a;>CSbY-h_uZEOprP3&GDCQiTI3g2let=}2{isTQ zwjFmy?)BkM5!a&q@m$`SlPy0)cf_I;2MRTfnrq74XWGZtsN)^o$qiA2VSzy(4UZ)9 z$oeet{0cSQ+Ie`WH+s`HaILcI`s?`1$_>+p zCiECjE%_;KcC(Ery^|_1%&jHcqU#B!7bLG zJ+AY>l!JC4rQK2A13_0$y2|IxXVfkj`CN2fBI0pJGbB=wBiws#Df}awQw|o+RNx`ARQt}rb0{C5}s9eThL%SZ_}{8b<+ma!B@i^MHSk5 z?@Ow=f3A$)A7e9NoHbIh7wv6K{V10TzD)9lw>!EvejcMdNC>rz#fNmuATdJNWJzQY zK8=3sZq_y%I(k4f%brj&QB;)CT9%9_bd4mpL^1e?(%~r+_gM7tYFyitAHe?JV1J>> zzkN`5q&O=p(6f4NZ|oD>#(uH*n~cPk&Mj%x9d~sYIRwAgYM0L@yvL$>&q3ey1up6> z*8Na5eafsZW`|m4O)tqc^)#k!bmYi}#LxAV+5(>OfUB7(jeDS#f#S!%)0ViUeQTgg zbG%t&C&uQmc(VU%Dt$0m)B>4o+(f2s?84l0C7LN^d5qw;?t^u4MoZ66VO==hAuK80 z9U`ezK|FJ4@8}y|Jg=Tt%wrP|SL9-@knGN;^l(#=7nQ0HUn2+bR+hV1T*v2Cu^=mi zX<%-Uv~|m_St+FZfZPj}={WsOOD#_Qk6R&*xhxZgwzx61 zef;)-#FfnjYc$Ttp)>!WM3|Gh!_&vpxaCM!xwq97G~%jbD91z{p`0Q2X?I4d=b2jU+A44 z*j*eIDE}1R&ry~PU^|CA8tb#@k6NFKZ8;yl@NyvKhtGF3o67YbD!}M|*4XLw3eqZz z@GhCbU+O8%FpZ)_-BojKS-e9`t}><#i`glw;YsgqZPgh!HGD55ln<35ydQPd+s2da zW{}gK#0I}S$JP}>V2N&}L}^(byx?q4kHJ`(GesEO4f{RiU)#tG)?yBDMSW9)c!9XbUQUYQna zftD18tjm7#^g0r4C?0nKl`8s7xuu*kdjK z_C9{dZ4(gPub$nfrbV2ycLnvqK|>Z^wN35p=^P|IHC6E1E7X+s~)I0h_x^ zVQFCjPep|7!ky&l&3eSyE6N`%^H$M^#wXC^YDJJ<>pg_4Nia!t4RVho<~SIFX2?}- zntrB1IE5Lzaw5Iha@k82D5Jz}Uf^V@1@2ZDi*LODu+uvT8UHG}+QlCf<=S$YAf#Io z_R(VpEpJWkecqr<;A6$v{`SkwM7{4&^QOfe%wPze1^ot6dBlcZUEOGI%|05Y!kk4W zFU@rU-<_SX-5KM)!D7*lx7Sr^VLThL<9DB4UlVANw7g0zeoP9dn+lSM~S4+QEe%+jGG7-7JZ^gMyJ)Aj)xzf^vJ8B zvDA~j=Uc#0_e6V&qXd^m;?vG{)`|6QjMp5xFVS8nYl?Zsu`W9sE_c#u@4JP`WGze2 zH8}dHvf#QJu?#~md1o$D6|Qll8F{bN=RP@-p0>85D&B}Sc1t4Kir!-T8-e}EQVxFF zr)gna#yyp`2!!a>WfieI{co=}sLC2z+$?(@M^T<-g&`8L`(N>?ndYIafiv)4FpvN#BHwp+Z~4M{KqF+ftEH^`+csKAXv080I|iJ0y42cal+w zow|#yxI&YevAB|<9j-v>{)l(8*CNzY2k_ew&$vE*j|)y+5(o=Jt*nWFlSf-GCgW$j z2)ia@QTO@Ck#`ov!!wbTq_u(d2h^4SNs&1J!>Df=`gpEQQ7?@LU;|Y z!f)gKc$U7+^L)yj#jjO?e-Ca^1tUxr5fep>b%`M3`>0{*`mW8HOs|&nfLS4@^2GWt z;a<|B82(}!UT0H+?hGzGlLRw7Dz^%@XuEa2XEuG$1ySp+Ib;Yl56Znpa$c;;p`V3} zl{#jtuCH4k|8~iFoIIl&R>~C-!q~5jcV!l6ro&{M0vB?vq9}fIMW)-S&5Tbgm-+Y* z88D}|H6=`nj=xo!F&u^RwT!ksMQV>aN{ymJ5KWX=VmCfr!IDCIJXh`5^}6pR2^<^i zoD0QON@nD<7R%250nzoe%7M+#-&)Rpt?8834KiTvCn)30OL}cm2@JE#wke(eE~@GI ze!DJ*?|fTrt`$)d zeb2Dm34bxj*?6IK;{g}VmojREArm|jGGD2Xv2Y%i9zV`I!+?(?=dU-2PaJ3|qezdC zW$Rsv1C*~bwm%);$Mito^7WmIX&A(uA<#HWz4@!F^2u`%l$Hc}uWV(^a%m~6(hmgL0 zY&91CjC}^6J*NZrL|N!z(gi>)6}IiFar8)8wKEKk%vC6^c)tU7lsv zqj!<-+%5-55m65Gzg;M&r`1==9AYOq4cj_d<)jFs_^E;Rm@a&M@{qjF*Wvw?1_V%d zkLb)6UT|8|>UQr^&$YP6t4wIkkxnK@DY#bCqY8M^XfyuR1j2^P<{n3n6oET_X~9oZ z>FJ6?)eSZ3A>J#$LkS~TQA53Et-G^2!%Zi3ZH2=?J|ngwimr1Bv7s30#XY;@s-(>*U`b z&jop;H%{?EW_0LHZ}ATlimnJ+{OUQ-@GDW`$>5Tn%SYU|INCvLvTOl!_6y<4S@*}5 ze%(gOiv|TI1D*ZKBogHE?3|(gaJSz*N)Lz6rmtUACMb1xHBd(rHk0M&(EJGL%5ZH($%e7!3)5nBv5YC5{coadx6p z3my-Zt)~j|G$Ys`d{H-lrH^rR;by6Jtc0q96q_z!D!028({pEV>=)zr;@4jK^6-@| zm5W-27`jY^8fwn~c@isj<|)PWp+qMDxu)|d&L~* z4_A4sOT+IVv|?@EJmu-6GZ@Z$tIKL3GO*)F_ehy=owJQ8XYbfiWqS|QCwt~ta4`4(Co)G#hU7bASj6qzGdxJmehjnRy0X%4suJ4seslkbPGW}U|=(? zUZpkG-7#sQh-S7l{_)lR034DahQg-vL~99aaF5?G$1(cX?D~@o>#x`}J}y3GZ`~M+ z;u)Y;6{_oBkDbzA8FW|`nj%Bxbq8euA@$<{3QYGoG7GpS#Ih^AWTj`+=0UM{q(3s7 z$oJ^CN9>lm&-l4w@3_y?NO10Ij-P1IzA4_@h~=}h>)%7ATcwMFx`oln9IR9N54|(A zhx9S;XTpyEqFmXR)DNZC=$iyq9n$$S+KMK@DYW@-@uXgQiIL7wa>M zb}GI0KUb8#tCV4l4!cT?zZfbRElsDiQC>KoxbgDa%(mG4so{InrPG}zT(=&UOTubF zj=8y=o1lzmQfua~)Td0t%cHj{;OW2Wcyg>YY)Im37}47h;ic&}WR=0HRh-Oo5rcZj zO{161^P_~3S79aLDnK(s^WsTaJ=Q8!?ZEf2^ZogV-WB-jZ(&g^sWc5!I%H&8PstzZ zZ8f|KlRES!ER>5}mp{9P# zfEK!!LW*@6qXC|gDASAb;c+CZNR7|QRo}3C#zz7IFArVawtb;S`D;N)^q^reLax`W zxQO$WBl|@%--f(&d&jT-nx3~cCAX;`I8#h@Gy+0scX_NxOIXVS@+3-gPo0fNlt?+H z`W&O1F;S_Wc{Iix|(hE+)IQQ{f7Qhu;M}*;S#S|8O;o``t9+DLY%3h`?msNgiFaEC^u>^ zv>m3`I^PN*u?NK=tSsNw|5i4hWl1T1%6fa{N;3Q_!oKJz(fXR`I!Sv=667`Kg{Ddz z1TQP~jOw1$S1GKu%%@u_zt>du9_xzz-{_e<+vV>~-bGcCKFjt(^CNCTS+i$eb0tA( z5G}5*(BI8c>9y=tsH>H$N*!0{jB0+GdD`lN^uBo;a(ZEBLFd5u9d>e_Do(E_s}S)8?tF8Er5lAC#vMx{}YU&>}9=vB6G+J;Z}7V=c~ zVDD8|XUZM!7elH?F=}^yU*4EpJ=PmhRP(>ubvu*OQ%XWafYQ|zv8wYDTI-Y~n{MvS zbBk{0 zvgqF7y})J5LWz-N8in_s1tGoC#TqFBa%`V+gcO0OEQ*M_ z2X}6)`X|)??<9br;;?p0S${z;r4)*P<}(xr%aj!-;uXpNBgsGp?I|T-U`#!Fy7JE| z76RljiHeK@ExG?b7#QW|Lo8rmJZJoH_|KPQVj+CA&q@R+`uFoEeyslsb>u_1%yfm3 zYB=*?W#Z`9|AlDN2xD3_rsa+E{NuN25d=MR^cmu3`GJn6S=8wUR+o z<3=l={iLd(Z#VJ5LE&ygAFWmZ$^Z5w4dvUhz!Q!6yd!pg`q4!E1f2OqRTD2qb~MYM z-U9mmpOc^E`TiT#=x?tl519ds3Yny-2J#Q13Q7$IPb*b>e4yl?SR~JY)LGjz(|pds ze`3AZvcvR8*qJ~6|1%Ix4SgCu^Uzyh2bJ_BHPg?ymvmt5pzU7cTOXjGShd}s+kY_l z?s0?~D(T-cAkq8qLXHkQXmrv4Uh-S%C608_wblZR!BMbu$uh`w-Y036yi1tqe+EIy z6hm0MCo`!r@|;usOu1mcw`u13me)+~GJ0vp7!3{RjU*IBTQ`Dc<=kGAR7*b-gL)CE zojyK_CQ^hQv|5b-qvm?RX)1wP+cHb%*cE5IXxb@OJp zAo3dstbO$ReJ<1k=rYGw>3kM)P1Zn+Q+a{nchBc(V|#!X*Kh&ON$lHX<<%wA5bU3s z_7&C4X@)KY^_M+>rSTlpkaLeuy4gen+E16=jSLL4c@i3 zUGzqu&tYoLv?^xn{-5g3Ix4EK|M!9*LxV^t(kUHE!_c5eDJh)_3@r^qgER;NN~(ZC z*U+7U(miyFFm&hL^L_5U>-Rj*_xtZ%>+%O{&0;ZUpMB2R`|SOGe_rosuix{5?$;>Y z@a-u?#?*;JrJFEkZI`e*)TLN*xXID;(aSG9h?TzcNto+T8lS-il2^MBKK{mwx4oz% zeWught5zDvhK*e=15)+@x z6u2QGxdDtIu$^N?hu|VB4JZ;5YT~Ge=K#mhRy_?cZb$&IOq@LcSB@O>TKxQeT4i=G zs^NMzG3R_xiMFzrr*^vW`pRd6&j3e!@pqej$2(nutF7(x03-PB$`NqrOr*R1vQeUS z4dE`I7HC0%NHIKnqN=_Oaf2)=KN!eo&SJg*+1ZnT%%tT5U=6`Yu<`Ezw2ZgE_}T~( zPe$>Iz9bi)DEw}?qwMuY#^xCz#S_5STD_?_FEwk(a>ZA z@=HI^AOyHaChyr5nB^DMen*w{@*II`ZHgJq+rY;{1H`~X7|^||09m?6gWeD^VUBNL z{ocymLI5NXUOZ9g7=>tH?YK8IFGOs3Y(llH)`iUEz}kI(7jTZ zdR^sbypxrr4)tXtF{z_ zic2EHW$)V~ry9^!)Tpk>Bi0#EuVW3upN)6+Tk(0Z7NbJr0HL^D%zg9K^=ZGq%giDK z&a0PBH5093*$G;JL1TpC2DSNE0*&)^4I2R8?Y3b_qAvl(26pMA+Y?d5H(7*-c; zBa+&r_gVfCZoi}|T=tn5+SwUpiinl%-K}=ajRe z?fUAt$sJsoP()b|NB#sUsOqiwm}BTM97D zxgzx=-&BlH}uG~bl@223Uf1%Oe~LeoUzy1W3KfWpd9K6>65?w9G#irq|lSHSN!*5Kpe1KcqL zE1TeCDuB^Mv_Qn1;f9djj6Hx=V{n#i18NI*!@&^4+O2QY z&hr|xF)^rRitFRgih9L|LRB_j(q<|2EF)wmRqdNDE-boN)ScL!1f4FOk6VG& zc{Qv#zBv4jJNr-D3^9)R}QXVk)q-64_tkHV76Mg1cT?j zDOUM%;FJ!WVgNH`AKx$+%i&0$5oJY{vDerU^z8MqpCJ5FF&>ou^PO#o<)&O>sx*kB?t_7Gvf>DgGdOo&VXn!`T^oMZ9C zcdF6&B=-q3oVFemfVNkGd0xWQA9x+7aM{vH-ueJYMF=W~-9>LzhU3$G;2enQw4gL} zl9{0R5Pc2;b#d2CIXQADdlrEi%nBB0l}1Em;U#_cfOszvVTJgRS~*fOQFLP2R0q4D zYeHu8-qJ(brzdy~Gg~YP?aC zvUqsT|GA*o_u8Q$!wnIEdcApUArB|l9Eu^~Lv9E7wUOS8?ZDagr$Xqf0yfSS$3gI} zzKI^3A$lp=yxi&{Xfh_rA@HsIfBCA7edl7JJmpgpkK`@ri-=Q9l61%x2? zopvx73Zdi&kq_4^&ujzdU8>@sXUx-|p7S)eFWy=RB|2Sa%bFq_pEb2Bu1i)G1_`!R z5ry^j+@EkdFuh{bsCk)P`^Bdhk7)eApaEKCq}@Xb<xC352>Y=X#1l1+H@ zU#iGNi+&s}G!Q-q_SM#x{2v1q$b(iAIFGmbybK&PJF2c|H|U|~Soqw1vJ5mZ-FCc< zNX{aNJl<72pil`LGAz=c((BXvnd^g2X%l^({#>yZAaL!`*yA8dt_)zTu|&ekRh4h% z5IV$L=zT=vwu!zEZcXMzXj3Np#w#ypJp`A$X5p@{Fud>rHHlAWYXEoloyC(_T&HsT!n}KTjb!O-*P+9og}g#D*3o z&LkJqOvT_NMLzgETA@?Os;w*GmYf8c zTH_1ghr`D*dE?KzP819sS7!UOt#CrSc}Wr=fj#KE!bUguV1)P9)AY5*z0J>vzC0vS z-NL`b$FZ?~KoR+(UwfQ~m01PKvy%KS&%F71S{bUw_~|8s#=SsqrY5TPM9jyx@$+U# zG-0m6BhnMB5Qf|M`TYg-U03wE8dMYa!hzXU(5#nU#{||TSCSo6;svb0LAas@M8`wb+lcQ4FrlI|$;vQ3o))NVJP z2T?)W3UO1;?rxr@e_^~#yP9DkX~t$8E4X}t0b63q#7^!>d> z4Lg@4u5?i0dQLCkU$wz=7AI*Ua%|UDcvU&|H0rM1(>pkQSQ|Be#1IZLfjjP`=UFa2 zV}UpJJ+AV_>Qlg~QiCkeG0fNETJ-Ssxx<8q`{cWnskf50SL~3npIowhMf?sfT+QgT z2>6{a`^5^Gg4cK3CXD-1tB0O&V(0&P=J2DGdXLb~sPDGL$8hd7E_3CO=H0t) zuu~@Fh^1iRbbi(Lh>pBRWmA5;TkfNWy5tC1B18sarY76My^1{9i2weJxJ-Q9PG>@r z4z7!i#idWYe->9MEch8H{6C||g&sNZF3!EOili2vffqB%2-TKAE?SVqcYtB=vU=P* z&FW8I?xO0d@|iQ>F5(9cK}OOjBH!uO`^7VxCXf?P)kooSXC`tQ)yuuTqA#M4D^XsQ z;D!_dCo=5Qn*Y`3f%1+7Zf{stRF&Fds7a>fJHoeE8%&S~-M10Ki&^$A_nGlP_Je4W z2SQwcpWZ+H{i1=Gt$g}k$)t4}_H(y_PZL5B=50bUl!zl4+R{awgmxjx?%F(dy}VOi z9Ty_XL`GIsn2|h2RR34@P-064OUk*j%B0|U(d`%$YPr-TGtmIP-5?Q*p*vkP_sOp5 z`FDezga{Y0EIkLByk$(6J>=x7_j&ksqZxDxD7G4t{P^dCr%z}bwkghcGREz<+thK_ z{NA0J=IKu%-}o=K5U(-N3sUr1#Dgom!;7i+0)^P$LabY-O@yWxl621c8?nur-EH{6 znihh(s&5gv`yLQtqYT;`w%eZ&oPrgFz|7laO5`Zo@4V!6Sz$pUn|;QH#Y%=X;7BaF zGl2PCBKXkn_v{Y-YG$PhZ*7IN)+I>c@p|R?NIk`?b<*r64&2H}yr1$w&g7wW3(-ts zVOyy*{Nvn!yQm8JLZ*ir*q(O-yDHMB5X<#Xxzi^LES7)#S2?GvxTm|sZ-aMYF5y-V za$bkh|NB-vpY_?XTynINoRfnnBktNT;b=!>9~UzM1qTD{OHV&gia=giI!%|~ani=o zTV*YM#|#$>H#msUrnTqM%O_@>Emv+oew)54JT0f}LPTvAL`dPCirR0(B(YBa+!@K* zZUGjdJ*;<2Z_7J}oS6460mdKAkirzbj#A7$@;*P6Jf(g&x$L%0GGzaL98^!F*(2Q# z>YdYIBr<20S%hzOOQPPXalE%*!WN0z^&f+e#fIM8^T+cq5^;)WUkhQt=c&!{J2}cf z8eO9c7s=e38@JA|Ct8xY6#+Jbt{IyV->p&%#@x4J+{PV4`Q2b5cE3&NC^~82hN1f` z`q8Emt&1U{w>stF1tC|IDn?u>34o}_I~=3H)XMM_?)*NKkwUQ~)?HLoG={^XMr!NK+*I(}Kl z=FB%KUGl_^15>{nK@NYG#+_Db%8#?VvRxx<8psc|H+ceF(&9c~0T#K|BrPV3CF`r1 z30@xSWkU97hvEf?Gzf;<3kRG&&(^%d47oRE`GzbxNf@aP^r88${%(qz;^CC=lXNooss1w^LE)bnAA{JUdD=PWv($mvGSlOI zU^q%)I+lO;CC^AqtB?x%j(9}sxv~=RQc&u6)AiAPWB6t6qF~}Hip-KL z+26eS@zNJviooLxPvsA=N9jB0g_Sx59`YVT63_Ig!tZXg$eOyy&1Y225-Gicm1_Rl zw=Zs55i{`re2A};m^Hb8Lq}T{Q`Cm&R;cBM4L=pN*UMJGF+awLD&_j~Y5$Y!P~Je+ zVDO28&KoPoD!qVRHAXNdpwJV(fvV`BT24}C?ImsaM8>#@%k+~5*f&SW2Jq2ZsUa%=B3GdWxZTK z8KZgMV1)gb(r(o-IAl+2iY<-3j>wX^c+$z<4#G{Mh>!Ful z4pZRMH*$2}R`xRoxjLgP-lPrFkX4kE$hHrffZlPS*qde8{?Z-11MdjrGLiSaG0!C^ zBUrfM18iJ=icZMa!x3W-;tfemVDEy{8I6nd@OLx$7#c;cquz;JALf&2^gxF~YQ*I4 zdj)0V=KF;fzK=K8`;0DqTA*1EJ89)zGkHY07zGO^TYl$gXB8@7&-e~gvpHVSdeM8~ zs^m(=XL~ERC`qMeHw8~_+b;Zuo7vf2>+iygQCc4j-<*6mI{nSb5HBBKADeroa`yV{ zXqoCM6*x~3ur(RdERQu1ccR_>a3;)MhiF$p`FA5@qgH;1^stQSADcYx$G!UaaffiwLpW1(eXpQdW^UGM)F)fp}<6u31rZ>|m5F^+)1h>bF;%{7wE~(hoUso_^8E>LW>Y4i( z{hqGuoO)kH+sn2Hz1d&H^5wO#Hd>4seXCg;B0U3y2?GxT@*t8|e;}3#CfYMc6C;5d zXaB6hyr4kK3OZh#RsSd}Xrhm#*-`lOAN36@bV07wyDAsXf6_N7LV>OjTTr^%B)@ z50fYuG@uYmCzCw;xWnKY*?+6i{f0QVX5QEG22S+#bpKGcI zut1&jC>EZ~zYhJ7;41Dm5lV@sH4gKd=V8d8o$}M?b%3->ii`Rt=^VhAwIsfwpHJe{& znMcVhTcqlsg!!*<0u3Xqve$!LRbc0|oR8w_{rl8{ZMzK$CH6}ZMLD2L(FBgI7uy{l zfwIU7H28P9OYqmjL^Lw_8yw^sS%8$85}m@Um8CFZIw{=Jz;nQD)(UtmcH;)M{bP9< zE$ip1k4BkyFTlBs)w!gg@Q^+Dw{$rjSEo4s|#XG z8dUi^?!1G~e!T*fi!Tho64w4>D246F>l}r~mRr;l08MED=03|0uDdh;Q#0!DsQt!+ z+17a1($BGGsFC{24dVH(QW#MwJd05D^WTo4L{(B|miWbq6jGfIwA@5pA&ZITD(%H9 zcV}!j9CTjCIcCC_jeYX`=XPxS)Qn)g8OP<5tEu8gpU|r}JV^ankDdFZLds-z@vX^4 z6&{Ck+LAaolL8+?m^;$OgZc%4U6eKmJ_5MDI`c3C-}Sp8P_?w(Zkv$+;==gLcVd z)p704ONqWKk518}i}L>P?USpoOK}yT%(qcd1Z?TbW()jv^@S-c&S$&;Kzoatp*2_6 zaApkY+jXzjF&Un|l1%O>;4u`J_~y4hB!@{ud(ZA?DnA0u;a|G6JnO&?(j;pd?AZ`; z&gi!_1P==d;D zwc4oMOh_a4aCse2Uh(GSrfJ+pG&>}`vq?M}e2$6Mt3jnK42VguzbH0IfqxYOuxgOJ zu>n-6a)3czHOG3;i}iF_mq)Ae=wHH+eN}L56+^I8l|hk6SMATHH{28UxaXTo$D6$v zbQ8V(2URtzr&aYD_Z%Ac{1NQ}oT?XF`K=zhnHH|@AI2%zeJOjt&^401DK;V&VQmjC zb3TqqnZoEwzx&rd<1WNk^2AR3&%o!+uS>BNnVejXRWq;CjJy|e-A^B-P?nnAzFeU+ znW_{vdVarnN^M4{I^_&rLw&{41P4{Bd|MPZpVkE4_W=bsAi>E&u+u7n4nM zC$@K z#J85a`uAI*IoWF-A*=PS-09U{5yE|$2TN3hK-Gd_eSZS)&^+9n6a-q)_A1a)P6mNi z#0~O#EzIzTJ$-;`wh3xQtC(U%T4{ZEWYS#wM5Ex8Xm~uJ*54$31WFJ~rhI`Ai9Hm2 zjIPH+1Mv}kVjB}9&(&!f=j^LyHqqt%Ex|ZAWf9GYS#P`G=pX`WQ5Q@43OMI$EfQG4 z3&0y_;`DU=$*=S#Yt;5lF(@S#2_YUl0;#7HU=W0Xq}3Xr)_4dx%}e_n3@Sw}r#WJn ziO+((Ub;m?vrzJ&j;Wi(5+r+`V1GV@F9PctT{NE%VD}_%^M5NxWevF?iU*wwHNlZz zVD2&N^#uh=T7>{Jc>>e|QzJzz;WV0!c%PQmk$KX{d+0YIVyif;*dDQUKjy^gWl zfsjaY#@ct(`2gSr#%**iAgA}10*y)$xP`}n0C*GdBgQeEgTvzCcejH9&&+EDlmkV3)3v4I_wSk_6%NZ_(ly%bvxA{Mb!>d@Q?prr#ga5&8- zcp0f`BZf-A5-`qHcpF9l79u2m20WH*FgAddG`gw(BL|n0dq;dV)nXImPe72`iOzE% zNeu`T3ZVzy;N)QF&|a=}`a9p~p4KZvS7hM6d*ew?nfHfU-8Ho_7&p-g_SF8Y z(%AJHn`A`{m(InJo@&c02+KCZn%Qo`8c)~Cfo476#^Jci?A2PGQd) zon>m^Q1&k7KL3z6S7ia=Zg^aPqAWW}0dA%pGoRH#^w;1k&B}{(eQ&-8 zJv~WunsYvi?eLImx_fU+U35X~{2)>NWbMa@csi^@}&p*12 z*0aYvk8rrMN-kV}h#BCS|HS1+XrdFv7s^uynqNR#_PUAXJUsf4tzrZV2L5qwB$jtu z$J)V=3x(~sJ;7C};4G?UBzbTmH)iB9Q z)5uCHs$lW8EQa*JPA?-^J~LOr?+K1z=qy9}aF}_QmxJ?k3;%9hb^Vpb7)*Z#I8lPN z=Kx)=!u#w}pT>_3HausuTzu}koT)lg9%Q+4{62HG;AXaiur0z5}tzhIhI`lr> zjfIX=qhF|t9&6)*CvYalfg-;;^G(ObtGq+etvg8g7ZeN;d;NkY?mj;UiE$lj5?Ol( zvUa}RFc&Mn=vjxFHNX!azSbWQM&4v~H%~$k^m-pL3f{V)yM|DU?&*20%WU>W~L}9J$kFLs|qUS=8%Y zkLAH8z!RpOYt)QSH2Ek^^X_MJa)lCdI_;9Y2-5-ik5WS;kPh8%k4%H^Jk*Yqc=}MG z~$aBrslFWw<9FCz)k-CZZTLfQRn-umLMJ*+clq}m&aQx zvy|*ZPUW$1(|%eWc9Tw#VNI6~?pv)Y;27e#1%ic>1v05vm8ElP zN$)d?fArd zb_Vf?`Fn0PkYV<|FEK7gD*cavYtGjkF>_%mbDPxRPsf8Y!z6E$s zaPgh~x#am)COPQ+gPo50B*}QpI2+{8e0wIv=vP_tI|*yj-VT-hJ1MQ$?$&M8y3mQ+ zdB4&r6*GKoDY{|!$FpwFJ;m@tjQDDp?8;}uesnIkoBe7#e#wTv7P??55(BXN(8H028+&R0-g zPIvzW1xk1CuO?#lPxS`9P0lOyb^Gw*B+ooO7kGI)qj~$x@{!?_8F4jV$7hmfDLtxC z4kj!{^EB}d*7kVp13rQEu7isELpz-j!`78J-Lt=VFq=xujC^)Dw=X=W$5~f0#f7IF zP@fMjs&(3%$X{^{RCuVA)qf8sF2grmdEz)?lk)xMi>FM%-;MK)VzbFxSOngF{h|kn;G9_?Qz%|DKo?Qn}9nlx5I?XB-)nQz58*YZ7X?C-`@@w z7sz?rrE4_NI2^Wd!EZB^BmGOT>=TvH$P4ta3T8 zMiv+~sy%lXn+Ft%WHaI3N@HrDiRG~HaotOKeMNkx{J zOTCfK*1v?MqI12C2?ld=Z&?2Nbfur&jC9lv^U=so>?F@8Q@clI{3~+WW0cmw&EIqP zbggyM&N2G1@g6sHxja17->;q~`6Df+y^~H{%U>6{EsVH#mQFlOI`=wobh{~^_650O z#zT&12{TJWXX&G+G)2Nb#f_@U%8okP#K~W}wytY^F>=Gt6J*!!`JG} z1{i`{dz5J39M;&bc;R{6LozMMUEo|QPWtuR{E7VeMBe{^9K=o{#_|MD2lqi=jCqxk9x+x$0OTPad$ zbN2b4?**4E!=B~PYrKfXT;WpEp=cwuvAmmrD^C*Ut%0QqVbpvc87**6VdDoQ6Fv&q zL?c=_%c{BsJ|!f`m%bKgr7BWla(cT(t4t$+Q2D%dM~()!gtYooZbA8pQikL7RmKM$ zEJsL*=5ZteFWN~rYCNCm*ZP3)(o*@cii(P15!YOIn2H>E{_z7sM`pQLQ|7zg6@Q5J zM|;1_;VQp9RLq))|JW4{2t(4%(PFl~1B^SKZG^(F#Xkpd$zVoeHB#-NqnkP}&F3Hm zjQ~os+lgxfz0i+tUQp6DhN?q%({@^lGR%;5j^Tv*e#N}LrF$*4gE|Q7!-mY$OAE6< zd$XOCO~WVtYV%Q1iqrIAbsJN6CepBI`vt1IBkSP{Zv5Gmmkp>u-XOhisEJ0V zi{)fwSsj1lJx9hCn)}}d6|(;%@qb>b`4L=5tOJ+Y(YSc*d{M8cAD^666%y0$7#$TO z?qm3>q3O}ZKAmGnu}R^Hn{UJF;erJAoo>o*amrt59uo^n9d&Wn3lU0X-c@x=gsGVZ z=ay7n=3N_N+ZQ5^#Rf3=$@}}3@B&Yyf;aII(|##nSIby1_M)c0Y?z|L$&O0 z`(O+=)ew%Hzf<|~Yl6bqz*`m-%)>l%j=8!>o_ZFoZZ1SB)cr?=xnx;1Br<2pkRZ$A zgeK;OR?o>N#}|hKby{|T3_i#z$GH8vGewfHI_cZ;)PP7w&>Fv>utXGLnU*_GIt*D& z@KO}IM<>uT1fiG(OA)jE)nB{TH%HGqEa-PSG}P`vaZSz8FHpL?Q|red%Cz%m)$USP z*E$vr?w#8wi=F~lNz&}YxcBy2BIjQ=B$o}OcJ0TCOASH3Ca5Z^V5r0jx2gAj(5Cc2 z5W~ei2j-oA6nHHpjQO-qvFUaxISu_5Y@OI=bN7BY+7)@%vEJBAlB=%a?QROiRcFVr zMbAkmwD1?^^m*9e%XD(JpML`Qx%Ou3IQsKj!maybV5zyP7}#R?e9O+A1$WJ6NB5U- zU}2x<8kZ4A)b%9??{xcdg)isx_|}7>7JHZ!VS_W-rzYbTFaEj@o=vo%p6~e|fRj|P& zAu+l@p=y@uX3x*-+2dkj=-I-e)A3N&-pgtp{2Ur*%Umw`bd5FYmSXbbE5=^mIcU1X z*|O7VbZ_gN$=q$83|||=56x36g8M4?BkN<2@z^z3z>rhB4S#oBthn}VxTyP&4Nns% zSM3q9wClMVRM2;26MxF5UmUv1vli2rAzXBAvH5w>T@vcRc0`Ho&0L}`lv%x0rX8m< z<7$Q}I)Z64LdBsRru)MBbZ-Ua;bWPh)oZgplv^q-TA2xPN;uV)v~&i+C8eF?(RT$G zUt{uMeWXKJ9!KD8LPBhb2MY)!yqfmd!zy8>@527 zmTZMabwanySk*J{-xMOyWmYctKKv6eMZg!$i|x|=$Gn?m^4SA+dFeOAHxAS->THbD z&N8eTTPS@3#v4b}fw$jckE`Y7 z+2O8Q90A7fzN3x9l?va$M;ja%`Q9qKhS`lR7&ru*T1i#2WepieS(~S$$)it1PvXz$ z+I^748xIC3u{$$`3KkspTTU-&w!<01iEOHW_W5r|?-S8htX*$R9TMLwSrZ@>cMrq# z(=zSa+A^Al9qfpF`6xxzQasgZ7fF9_zt+{^c^&*reA_K8`Nz5FiD1k%+j8NW1om02 z^sMM6n-`1@Uc#v%6(H@_kn90Z7cMq7iOKVVPb+t>U#gn6rclR8a2&Y6bRC!LtMgMH z>qZS@Fa*C*6w-CeH{u~w@dfrY^Y{o;QaP#z-s1?zpFENkFRgNwZlByRjSd zGr!|v`xAFO86Hd%f_F?J9qy-(5hTOwiOrOUP1Us-m?ov4#pWj1!U9O%Eb)_OGf1}& z{G4j0%paHP6EjM7xqYs>!$D}r(pFp-$VL!OL^HMSl|aip=|9?^@~|O4>tJ#Qc3Z_)K4-_Znjv_UDJEP@Gi$j;s1Fo~Y0(rF{-lO=w{KeuM<>}}L59_Pu3*McM z+x2)Jx&zBzJ@`C(EKr+FE|n?&pwDxIn_R3657vyrFqWzxtZ)b_Zc?9 zCR>Gzx+aJx5z-{KBCZ^Yzib6ZJ!&bw@(u9Y#Pj`tnJMD?Vah=z&=(`vjzGcx1Pr7^JYX#B^o?7QIKK76#z!eh@4 z!2FM2xg>li+L3MZYJc-LyoYkl^SXjssONw8t#`n;K5?d+#{KUjN(Wj)s4i^7zWZ_f z_Yv`uWWl#SAPN@$_+PC7Q!D{E*VNmG&mf!onqyB&*|tLd^F01KEo}VMQ*FMl zGY|gms7m0dUa_G*pZ?~k8YKZO#X&MCwZA)232>r4u3Xb(f7hfSYyvnrfvv}Xbn9Oq zS4ctMW?C#{{$1bR;WFLHH`S>7yGzC%2b!~YAOBeX@7iMudI&psD&uduK-vq70RC=G zubS=e+JlWxb-_V3vh`ng2)JQ-m_TzRx>_YQ|KsjKe`MDKebzURoz(xXJ$MwL@BY8Jlsiy0i>&L)fK9m@;ODV|ntYM0 HY0&=y(*7m# From 94f03f6fc8b47b55024f3e4998ea9f996dfbf7f6 Mon Sep 17 00:00:00 2001 From: Austyn Trull Date: Fri, 23 Aug 2024 13:27:42 -0500 Subject: [PATCH 35/35] Setting version to 1.0.0 --- assets/multiqc_config.yml | 2 +- nextflow.config | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/multiqc_config.yml b/assets/multiqc_config.yml index d791390..7109425 100644 --- a/assets/multiqc_config.yml +++ b/assets/multiqc_config.yml @@ -1,5 +1,5 @@ report_comment: > - This report has been generated by the nf-core/scnanoseq analysis pipeline. For information about how to interpret these results, please see the documentation. + This report has been generated by the nf-core/scnanoseq analysis pipeline. For information about how to interpret these results, please see the documentation. report_section_order: "nf-core-scnanoseq-methods-description": diff --git a/nextflow.config b/nextflow.config index c70c6f5..0fa07f7 100644 --- a/nextflow.config +++ b/nextflow.config @@ -275,7 +275,7 @@ manifest { description = """Single-cell/nuclei pipeline for data derived from Oxford Nanopore""" mainScript = 'main.nf' nextflowVersion = '!>=23.04.0' - version = '0.1.0dev' + version = '1.0.0' doi = '' }