-
Notifications
You must be signed in to change notification settings - Fork 0
/
documentation.qmd
101 lines (78 loc) · 12.4 KB
/
documentation.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
---
title: "Documentation"
editor: visual
---
To run the pipeline, a command line statement is ex
## Input format
### Primary CSV file
The primary input to the pipeline is a CSV (comma comma-separated value). Columns can be in any order and unneeded columns can be left out or left blank. Only a single column containing paths to raw sequence data or SRA (Sequence Read Archive) accessions is required and each sample can have values in different columns. Any columns not recognized by `pathogensurveillance` will be ignored, allowing users to adapt existing sample metadata table by adding new columns. Below is a description of each column used by `pathogensurveillance`:
- **sample_id**: The unique identifier for each sample. This will be used in file names to distinguish samples in the output. Each sample ID must correspond to a single source of sequence data (e.g. the `path` and `ncbi_accession` columns), although the same sequence data can be used by different IDs. Any values supplied that correspond to different sources of sequence data or contain characters that cannot appear in file names (/:\*?"\<\>\| .) will be modified automatically. If not supplied, it will be inferred from the `path`, `ncbi_accession`, or `name` columns.
- **name**: A human-readable label for the sample that is used in plots and tables. If not supplied, it will be inferred from `sample_id`.
- **path**: Path to input sequence data, typically gzipped FASTQ files. When paired end sequencing is used, this is used for the forward read's data and `path_2` is used for the reverse reads. This can be a local file path or a URL to an online location. The `sequence_type` column must have a value.
- **path_2**: Path to the FASTQ files for the reverse read when paired-end sequencing is used. This can be a local file path or a URL to an online location. The `sequence_type` column must have a value.
- **ncbi_accession**: An SRA accession ID for reads to be downloaded and used as samples. Values in the `sequence_type` column will be looked up if not supplied.
- **ncbi_query**: A valid NCBI search query to search the SRA for reads to download and use as samples. This will result in an unknown number of samples being analyzed. The total number downloaded is limited by the `ncbi_query_max` column. Values in the `sample_id`, `name`, and `description` columns will be append to that supplied by the user. Values in the `sequence_type` column will be looked up and does not need to be supplied by the user.
- **ncbi_query_max**: The maximum number or percentage of samples downloaded for the corresponding query in the `ncbi_query` column. Adding a `%` to the end of a number indicates a percentage of the total number of results instead of a count. A random of subset of results will be downloaded if `ncbi_query_max` is less than "100%" or the total number of results.
- **sequence_type**: The type of sequencing used to produce reads for the `reads_1` and `reads_2` columns. Valid values include anything containing the words "illumina", "nanopore", or "pacbio". Will be looked up automatically for `ncbi_accession` and `ncbi_query` inputs but must be supplied by the user for `path` inputs.
- **report_group_ids**: How to group samples into reports. For every unique value in this column a report will be generated. Samples can be assigned to multiple reports by separating group IDs by ";". For example `all;subset` will put the sample in both `all` and `subset` report groups. Samples will be added to a default group if this is not supplied.
- **color_by**: The names of other columns that contain values used to color samples in plots and figures in the report. Multiple column names can be separated by ";". Specified columns can contain either categorical factors or specific colors, specified as a hex code. By default, samples will be one color and references another.
- **ploidy**: The ploidy of the sample. Should be a number. Defaults to "1".
- **enabled**: Either "TRUE" or "FALSE", indicating whether the sample should be included in the analysis or not. Defaults to "TRUE".
- **ref_group_ids**: One or more reference group IDs separated by ";". These are used to supply specific references to specific samples. These IDs correspond to IDs listed in the `ref_group_ids` or `ref_id` columns of the reference metadata CSV.
### Specifying custom references
Additionally, users can supply a reference metadata CSV that can be used to assign custom references to particular samples. This is an optional step References are assigned to samples if they share a reference group ID in the `ref_group_ids` columns that can appear in both input CSVs. The reference metadata CSV can have the following columns:
- **ref_group_ids**: One or more reference group IDs separated by ";". These are used to group references and supply an ID that can be used in the `ref_group_ids` column of the sample metadata CSV to assign references to particular samples.
- **ref_id**: The unique identifier for each user-defined reference genome. This will be used in file names to distinguish samples in the output. Each reference ID must correspond to a single source of reference data (The `ref_path`, `ref_ncbi_accession`, and `ref_ncbi_query` columns), although the same reference data can be used by multiple IDs. Any values that correspond to different sources of reference data or contain characters that cannot appear in file names (/:\*?"\<\>\| .) will be modified automatically. If not supplied, it will be inferred from the `path`, `ref_name` columns or supplied automatically when `ref_ncbi_accession` or `ref_ncbi_query` are used.
- **ref_name**: A human-readable label for user-defined reference genomes that is used in plots and tables. If not supplied, it will be inferred from `ref_id`. It will be supplied automatically when the `ref_ncbi_query` column is used.
- **ref_description**: A longer human-readable label for user-defined reference genomes that is used in plots and tables. If not supplied, it will be inferred from `ref_name`. It will be supplied automatically when the `ref_ncbi_query` column is used.
- **ref_path**: Path to user-defined reference genomes for each sample. This can be a local file path or a URL to an online location.
- **ref_ncbi_accession**: RefSeq accession ID for a user-defined reference genome. These will be automatically downloaded and used as input.
- **ref_ncbi_query**: A valid NCBI search query to search the assembly database for genomes to download and use as references. This will result in an unknown number of references being downloaded. The total number downloaded is limited by the `ref_ncbi_query_max` column. Values in the `ref_id`, `ref_name`, and `ref_description` columns will be append to that supplied by the user.
- **ref_ncbi_query_max**: The maximum number or percentage of references downloaded for the corresponding query in the `ref_ncbi_query` column. Adding a `%` to the end of a number indicates a percentage of the total number of results instead of a count. A random of subset of results will be downloaded if `ncbi_query_max` is less than "100%" or the total number of results.
- **ref_primary_usage**: Controls how the reference is used in the analysis in cases where a single "best" reference is required, such as for variant calling. Can be one of "optional" (can be used if selected by the analysis), "required" (will always be used), "exclusive" (only those marked "exclusive" will be used), or "excluded" (will not be used).
- **ref_contextual_usage**: Controls how the reference is used in the analysis in cases where multiple references are required to provide context for the samples, such as for phylogeny. Can be one of "optional" (can be used if selected by the analysis), "required" (will always be used), "exclusive" (only those marked "exclusive" will be used), or "excluded" (will not be used).
- **ref_color_by**: The names of other columns that contain values used to color references in plots and figures in the report. Multiple column names can be separated by ";". Specified columns can contain either categorical factors or specific colors, specified as a hex code. By default, samples will be one color and references another.
- **ref_enabled**: Either "TRUE" or "FALSE", indicating whether the reference should be included in the analysis or not. Defaults to "TRUE".
## Command-line options
**Required:**
- **--input:** Path to comma-separated file containing information about the samples in the experiment.
- **--output:** The output directory where the results will be saved. You have to use absolute paths to storage on Cloud infrastructure.
- **--bakta_db:** The path to the Bakta database folder. This or `\-\-download_bakta_db` must be included.
- **--download_bakta_db:** Download the database required for running Bakta. Note that this will download gigabytes of information, so if you plan on running the pipeline repeatedly it would be better to download the database manually and specify the path with `\-\-bakta_db`.
**Nextflow Options:**
- **-profile:** Instructs the pipeline to use the named tool for software management. `docker`, `singularity`, `podman`, `shifter`, `charliecloud` and `conda`. For example, `-profile test,docker`
- **-resume:** Restarts an incomplete run by using cached intermediate files.
**Optional:**
- **--email:** Set this parameter to your e-mail address to get a summary e-mail with details of the run sent to you when the workflow exits. If set in your user config file (\`\~/.nextflow/config\`) then you don't need to specify this on the command line for every run.
- **--multiqc_title:** MultiQC report title. Printed as page header, used for filename if not otherwise specified.
**Performance Parameters:**
- **--max_cpus:** Maximum number of CPUs that can be requested for any single job. Default: `16`
- **--max_memory:** Maximum amount of memory that can be requested for any single job. Default: `128.GB`
- **--max_time:** Maximum amount of time that can be requested for any single job. Default: `240.h`
**Analysis Parameters:**
- **--sketch_max_depth:** Depth reads are subsampled to for the initial sketch-based identification. Default: `3`
- **--variant_max_depth:** Depth reads are subsampled to for the variant-based parts of the analysis. Default: `15`
- **--assembly_max_depth:** Depth reads are subsampled to for genome assembly. This will be multiplied by the predicted ploidy of each sample. Default: `30`
- **--refseq_download_num:** The maximum number of RefSeq sequences to select and download for each sample at each taxonomic level (species, genus, and family). The total number will vary based on the diversity of samples. Default: `10`
- **--min_core_genes:** The minimum number of genes needed to conduct a core gene phylogeny. Samples and references will be removed (as allowed by the `min_core_samps` and `min_core_refs` options) until this minimum is met. Default: `10`
- **--min_core_samps:** The minimum proportion of samples needed to conduct a core gene phylogeny. Samples will be removed until the `min_core_genes` option is satisfied or this minimum is met. Default: `0.8`
- **--min_core_refs:** The minimum proportion of references needed to conduct a core gene phylogeny. References will be removed until the `min_core_genes` option is satisfied or this minimum is met. Default: `0.5`
- **--max_core_genes:** The maximum number of genes used to conduct a core gene phylogeny. Default: `100`
- **--min_ref_ani:** The minimum ANI between a sample and potential reference for that reference to be used for variant calling with that sample. To force all the samples in a report group to use the same reference, set this value very low. Default: `0.9`
- **--copymode:** Storage management setting to determine which files will be copied from the cache into the output directory.
- `high` - All files are copied into output directory.
- `medium` - Reports are copied. Large sequencing files are not copied, but they are accessible through symlinks to their location in the cache (default).
- `low` - No files are copied into output directory, but files are accessible through symlinks to their location in the cache.
## Benchmarks {#benchmarks}
**xanthomonas.csv**
(with all reads + Bakta database already downloaded):
- 29 samples
- Run duration: 2h 16m 7s
- Storage:
- local reads folder: 11 GB
- cache: 75 GB
- output directory: 19 MB
- hardware specs:
- OS: Pop!\_OS 22.04LTS
- Processor: 5.7 GHz Ryzen 9 7950X (16 cores - 32 threads)
- RAM: 128 GB DDR5 3600MHz (4x32)