From f7db587c2cacc500feaffc8d795bdf3c70a25d03 Mon Sep 17 00:00:00 2001 From: Jihan Yehia Date: Mon, 10 Nov 2025 19:45:16 -0800 Subject: [PATCH 1/2] Added Nextflow license to Metagenomics 3rd-party licenses --- .../Metagenomics_3rd_Party_Software.md | 1 + .../Nextflow_LICENSE.pdf | Bin 0 -> 41180 bytes 2 files changed, 1 insertion(+) create mode 100644 3rd_Party_Licenses/Metagenomics_3rd_Party_Software_Licenses/Nextflow_LICENSE.pdf diff --git a/3rd_Party_Licenses/Metagenomics_3rd_Party_Software.md b/3rd_Party_Licenses/Metagenomics_3rd_Party_Software.md index 88378014..d0195887 100644 --- a/3rd_Party_Licenses/Metagenomics_3rd_Party_Software.md +++ b/3rd_Party_Licenses/Metagenomics_3rd_Party_Software.md @@ -22,3 +22,4 @@ |Snakemake|[The MIT License (MIT) Copyright (c) 2012-2019 Johannes Köster](Metagenomics_3rd_Party_Software_Licenses/License_Snakemake_6.7.0_documentation.pdf)|[https://snakemake.readthedocs.io/en/stable/project_info/license.html](https://snakemake.readthedocs.io/en/stable/project_info/license.html)|Copyright (c) 2012-2019 Johannes Köster Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:| |genelab-utils|[GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007](Metagenomics_3rd_Party_Software_Licenses/genelab-utils_LICENSE.pdf)|[https://github.com/AstrobioMike/GeneLab-utils/blob/main/LICENSE](https://github.com/AstrobioMike/GeneLab-utils/blob/main/LICENSE)|Copyright (C) 2007 Free Software Foundation, Inc Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.| |R|[GNU GENERAL PUBLIC LICENSE Version 2, June 1991, and Version 3, 29 June 2007](Metagenomics_3rd_Party_Software_Licenses/R_GPL-2_and_GPL-3_LICENSES.pdf)|[https://www.r-project.org/Licenses/](https://www.r-project.org/Licenses/)|Version 2: Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.; Version 3: Copyright (C) 2007 Free Software Foundation, Inc. http://fsf.org/ Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.| +|Nextflow|[Apache License Version 2.0, January 2004](Metagenomics_3rd_Party_Software_Licenses/Nextflow_LICENSE.pdf)|[https://github.com/nextflow-io/nextflow/blob/master/COPYING](https://github.com/nextflow-io/nextflow/blob/master/COPYING)| Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.| \ No newline at end of file diff --git a/3rd_Party_Licenses/Metagenomics_3rd_Party_Software_Licenses/Nextflow_LICENSE.pdf b/3rd_Party_Licenses/Metagenomics_3rd_Party_Software_Licenses/Nextflow_LICENSE.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f4af319abab3906e40efb2d1f11b26dc295cfb37 GIT binary patch literal 41180 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 Jf|eq|{{SrwhL->U literal 0 HcmV?d00001 From 05bb937bcda1d8e64826640f269c84383d85e4e7 Mon Sep 17 00:00:00 2001 From: Jihan Yehia Date: Fri, 21 Nov 2025 14:13:37 -0800 Subject: [PATCH 2/2] NF_EstHostReads documentation --- .../GL-DPPD-7109-A.md | 169 +++++++++++++ .../Estimate_host_reads_in_raw_data/README.md | 9 +- .../NF_MGEstHostReads/CHANGELOG.md | 29 +++ .../NF_MGEstHostReads/README.md | 236 ++++++++++++++++++ .../Workflow_Documentation/README.md | 13 +- 5 files changed, 446 insertions(+), 10 deletions(-) create mode 100644 Metagenomics/Estimate_host_reads_in_raw_data/Pipeline_GL-DPPD-7109_Versions/GL-DPPD-7109-A.md create mode 100644 Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/NF_MGEstHostReads/CHANGELOG.md create mode 100644 Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/NF_MGEstHostReads/README.md diff --git a/Metagenomics/Estimate_host_reads_in_raw_data/Pipeline_GL-DPPD-7109_Versions/GL-DPPD-7109-A.md b/Metagenomics/Estimate_host_reads_in_raw_data/Pipeline_GL-DPPD-7109_Versions/GL-DPPD-7109-A.md new file mode 100644 index 00000000..8838d7bb --- /dev/null +++ b/Metagenomics/Estimate_host_reads_in_raw_data/Pipeline_GL-DPPD-7109_Versions/GL-DPPD-7109-A.md @@ -0,0 +1,169 @@ +# GeneLab tracking of host reads in metagenomic datasets + +> **In order to provide an estimate of host DNA in metagenomic datasets that are sequenced from host-derived samples, datasets are screened against an appropriate reference genome using [kraken2](https://github.com/DerrickWood/kraken2/wiki). Reads are not removed from the dataset, but the percentage of detected host reads is reported.** + +--- + +**Date:** November X, 2025 +**Revision:** A +**Document Number:** GL-DPPD-7109 + +**Submitted by:** +Jihan Yehia (GeneLab Data Processing Team) + +**Approved by:** +Samrawit Gebre (OSDR Project Manager) +Danielle Lopez (OSDR Deputy Project Manager) +Jonathan Galazka (OSDR Project Scientist) +Amanda Saravia-Butler (GeneLab Science Lead) +Barbara Novak (GeneLab Data Processing Lead) + +## Updates from previous revision +* Updated kraken2 from version 2.1.1 to 2.1.6 +* In [Step 1](#1-build-kraken2-database), used kraken2's `k2` wrapper script for `download-taxonomy` because the script supports HTTPS download as mentioned [here](https://github.com/DerrickWood/kraken2/blob/master/docs/MANUAL.markdown#introducing-k2) + +--- + +# Table of contents + +- [**Software used**](#software-used) +- [**General processing overview with example commands**](#general-processing-overview-with-example-commands) + - [**1. Build kraken2 database**](#1-build-kraken2-database-of-host-genome) + - [**2. Identify host-classified reads**](#2-identify-host-classified-reads) + - [Example if paired-end reads](#example-if-paired-end-reads) + - [Example if single-end reads](#example-if-single-end-reads) + - [**3. Generate a summary report**](#3-generate-a-summary-report) + +--- + +# Software used + +|Program|Version|Relevant Links| +|:------|:-----:|------:| +|kraken2|2.1.6|[https://github.com/DerrickWood/kraken2/wiki](https://github.com/DerrickWood/kraken2/wiki)| + +--- + +# General processing overview with example commands + +## 1. Build kraken2 database of host genome +This depends on the appropriate host genome. This example is done with the mouse genome ([GRCm39 | GCF_000001635.27](https://www.ncbi.nlm.nih.gov/assembly/GCF_000001635.27)). +> **Note:** It is recommended to use NCBI with kraken2 because sequences not downloaded from NCBI may require explicit assignment of taxonomy information before they can be used to build the database, as mentioned [here](https://github.com/DerrickWood/kraken2/blob/master/docs/MANUAL.markdown). + +```bash +# downloading and decompressing reference genome +wget -q https://ftp.ncbi.nlm.nih.gov/genomes/all/GCF/000/001/635/GCF_000001635.27_GRCm39/GCF_000001635.27_GRCm39_genomic.fna.gz +gunzip GCF_000001635.27_GRCm39_genomic.fna.gz + + +# building kraken2 database +k2 download-taxonomy --db kraken2-mouse-db/ +kraken2-build --add-to-library GCF_000001635.27_GRCm39_genomic.fna --no-masking --db kraken2-mouse-db/ +kraken2-build --build --db kraken2-mouse-db/ --threads 30 --no-masking +kraken2-build --clean --db kraken2-mouse-db/ +``` + +**Parameter Definitions:** + +* `download-taxonomy` - downloads taxonomic mapping information via [k2 wrapper script](https://github.com/DerrickWood/kraken2/blob/master/docs/MANUAL.markdown#introducing-k2) +* `--add-to-library` - adds the fasta file to the library of sequences being included +* `--db` - specifies the directory we are putting the database in +* `--threads` - specifies the number of threads to use +* `--no-masking` - prevents [masking](https://github.com/DerrickWood/kraken2/wiki/Manual#masking-of-low-complexity-sequences) of low-complexity sequences +* `--build` - specifies to construct kraken2-formatted database +* `--clean` - specifies to remove unnecessarily intermediate files + +**Input data:** + +* None + +**Output data:** + +* kraken2 database files (hash.k2d, opts.k2d, and taxo.k2d) +* reference genome used (*.fna) + +--- + +## 2. Identify host-classified reads + +### Example if paired-end reads + +```bash +kraken2 --db kraken2-mouse-db --gzip-compressed --threads 4 --use-names --paired \ + --output sample-1-kraken2-output.txt --report sample-1-kraken2-report.tsv Sample-1_R1.fastq.gz Sample-1_R2.fastq.gz +``` + +**Parameter Definitions:** + +* `--db` - specifies the directory holding the kraken2 database files created in step 1 +* `--gzip-compressed` - specifies the input fastq files are gzip-compressed +* `--threads` - specifies the number of threads to use +* `--use-names` - specifies adding taxa names in addition to taxids +* `--paired` - specifies input reads are paired-end +* `--output` - specifies the name of the kraken2 read-based output file (one line per read) +* `--report` - specifies the name of the kraken2 report output file (one line per taxa, with number of reads assigned to it) +* last two positional arguments are the input read files + +**Input data:** + +* Sample-1_R1.fastq.gz (gzipped forward-reads fastq file) +* Sample-1_R2.fastq.gz (gzipped reverse-reads fastq file) + +**Output data:** + +* sample-1-kraken2-output.txt (kraken2 read-based output file (one line per read)) +* sample-1-kraken2-report.tsv (kraken2 report output file (one line per taxa, with number of reads assigned to it)) + +### Example if single-end reads + +```bash +kraken2 --db kraken2-mouse-db --gzip-compressed --threads 4 --use-names \ + --output sample-1-kraken2-output.txt --report sample-1-kraken2-report.tsv Sample-1.fastq.gz +``` + +**Parameter Definitions:** + +* `--db` - specifies the directory holding the kraken2 database files created in step 1 +* `--gzip-compressed` - specifies the input fastq files are gzip-compressed +* `--threads` - specifies the number of threads to use +* `--use-names` - specifies adding taxa names in addition to taxids +* `--output` - specifies the name of the kraken2 read-based output file (one line per read) +* `--report` - specifies the name of the kraken2 report output file (one line per taxa, with number of reads assigned to it) +* last positional argument is the input read file + +**Input data:** + +* Sample-1.fastq.gz (gzipped reads fastq file) + +**Output data:** + +* sample-1-kraken2-output.txt (kraken2 read-based output file (one line per read)) +* sample-1-kraken2-report.tsv (kraken2 report output file (one line per taxa, with number of reads assigned to it)) + +--- + +## 3. Generate a summary report +Utilizes a Unix-like command-line. + +```bash +total_fragments=$(wc -l sample-1-kraken2-output.txt | sed 's/^ *//' | cut -f 1 -d " ") + +fragments_classified=$(grep -w -c "^C" sample-1-kraken2-output.txt) + +perc_host=$(printf "%.2f\n" $(echo "scale=4; ${fragments_classified} / ${total_fragments} * 100" | bc -l)) + +cat <( printf "Sample_ID\tTotal_fragments\tTotal_host_fragments\tPercent_host\n" ) \ + <( printf "Sample-1\t${total_fragments}\t${fragments_classified}\t${perc_host}\n" ) > Host-read-count-summary.tsv +``` + +**Input data:** + +* sample-1-kraken2-output.txt (kraken2 read-based output file (one line per read)) +* sample-1-kraken2-report.tsv (kraken2 report output file (one line per taxa, with number of reads assigned to it)) + +**Output data:** + +* Host-read-count-summary.tsv (a tab-separated file with 4 columns: "Sample\_ID", "Total\_fragments", "Total\_host\_fragments", "Percent\_host") +*Note: The percent host reads estimated for each sample is provided in the assay table on the [Open Science Data Repository (OSDR)](https://osdr.nasa.gov/bio/repo/).* + +--- diff --git a/Metagenomics/Estimate_host_reads_in_raw_data/README.md b/Metagenomics/Estimate_host_reads_in_raw_data/README.md index de5cc6d5..380cdf3c 100644 --- a/Metagenomics/Estimate_host_reads_in_raw_data/README.md +++ b/Metagenomics/Estimate_host_reads_in_raw_data/README.md @@ -1,6 +1,6 @@ -# GeneLab pipeline for estimating host reads in Illumina metagenomics sequencing data +# GeneLab pipeline for estimating host reads in metagenomics sequencing data -> **The document [`GL-DPPD-7109.md`](Pipeline_GL-DPPD-7109_Versions/GL-DPPD-7109.md) holds an overview and example commands for how GeneLab identifies and provides an estimate of host DNA in Illumina metagenomics sequencing datasets that are sequenced from host-derived samples. See the [Repository Links](#repository-links) descriptions below for more information. The percentage of detected host reads and a GeneLab host read estimation summary are provided for each GLDS dataset in the [Open Science Data Repository (OSDR)](https://osdr.nasa.gov/bio/repo/).** +> **The document [`GL-DPPD-7109-A.md`](Pipeline_GL-DPPD-7109_Versions/GL-DPPD-7109-A.md) holds an overview and example commands for how GeneLab identifies and provides an estimate of host DNA in metagenomics sequencing datasets that are sequenced from host-derived samples. See the [Repository Links](#repository-links) descriptions below for more information. The percentage of detected host reads and a GeneLab host read estimation summary are provided for each GLDS dataset in the [Open Science Data Repository (OSDR)](https://osdr.nasa.gov/bio/repo/).** > > Note: The exact host read identification commands and MGEstHostReads version used for specific GLDS datasets can be found in the *_processing_info.tar file under "Study Files" for each respective GLDS dataset in the [Open Science Data Repository (OSDR)](https://osdr.nasa.gov/bio/repo/). @@ -10,7 +10,7 @@ * [**Pipeline_GL-DPPD-7109_Versions**](Pipeline_GL-DPPD-7109_Versions) - - Contains the current and previous GeneLab pipeline for identifying host reads in Illumina metagenomics sequencing data (MGEstHostReads) versions documentation + - Contains the current and previous GeneLab pipeline for identifying host reads in metagenomics sequencing data (MGEstHostReads) versions documentation * [**Workflow_Documentation**](Workflow_Documentation) @@ -19,4 +19,5 @@ --- **Developed and maintained by:** -Michael D. Lee (Mike.Lee@nasa.gov) +Michael D. Lee (Mike.Lee@nasa.gov) +Jihan Yehia (jihan.yehia@nasa.gov) diff --git a/Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/NF_MGEstHostReads/CHANGELOG.md b/Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/NF_MGEstHostReads/CHANGELOG.md new file mode 100644 index 00000000..366166b0 --- /dev/null +++ b/Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/NF_MGEstHostReads/CHANGELOG.md @@ -0,0 +1,29 @@ +# Workflow change log + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + +## [1.0.0](https://github.com/nasa/GeneLab_Data_Processing/tree/master/Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/NF_MGEstHostReads) + +### Changed +- Update to the latest pipeline version [GL-DPPD-7109-A](../../Pipeline_GL-DPPD-7107_Versions/GL-DPPD-7109-A.md) +of the GeneLab Estimate-Host-Reads consensus processing pipeline. +- Pipeline implementation as a Nextflow workflow [NF_MGEstHostReads](./) rather than Snakemake as in +previous workflow versions. + +### Added +- Pull dataset from OSDR option using dp_tools +- Build kraken2 database from scratch using host organism's information pulled from [hosts.csv](workflow_code/assets/hosts.csv) +- Create protocol.txt as an output file describing workflow methods + +### Removed +- kraken2-mouse-db/ no longer needed as part of the workflow files (can now be explicitly set or built from scratch in case it doesn't exist) + +
+ +--- + +> ***Note:** Change log of the Snakemake workflow (SW_MGEstHostReads) that is associated with the previous version of the GeneLab Estimate-Host-Reads Pipeline [GL-DPPD-7109](../../Pipeline_GL-DPPD-7107_Versions/GL-DPPD-7107.md) can be found [here](../SW_MGEstHostReads/CHANGELOG.md)* \ No newline at end of file diff --git a/Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/NF_MGEstHostReads/README.md b/Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/NF_MGEstHostReads/README.md new file mode 100644 index 00000000..01780789 --- /dev/null +++ b/Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/NF_MGEstHostReads/README.md @@ -0,0 +1,236 @@ +# NF_MGEstHostReads Workflow Information and Usage Instructions + + +## General workflow info +The current GeneLab Host Estimation pipeline for metagenomics sequencing (MGEstHostReads), [GL-DPPD-7109-A.md](../../Pipeline_GL-DPPD-7109_Versions/GL-DPPD-7109-A.md), is implemented as a [Nextflow](https://www.nextflow.io/docs/stable/index.html) DSL2 workflow and utilizes [Singularity](https://docs.sylabs.io/guides/3.10/user-guide/introduction.html) containers or [conda](https://docs.conda.io/en/latest/) environments to install/run all tools. This workflow (NF_MGEstHostReads) is run using the command line interface (CLI) of any unix-based system. While knowledge of creating or modifying Nextflow workflows is not required to run the workflow as-is, the [Nextflow documentation](https://www.nextflow.io/docs/stable/index.html) is a useful resource for users who wish to modify and/or extend the workflow. + +
+ +## Utilizing the Workflow + +1. [Install Nextflow, Singularity, and Conda](#1-install-nextflow-singularity-and-conda) + 1a. [Install Nextflow and Conda](#1a-install-nextflow-and-conda) + 1b. [Install Singularity](#1b-install-singularity) + +2. [Download the Workflow Files](#2-download-the-workflow-files) + +3. [Fetch Singularity Images](#3-fetch-singularity-images) + +4. [Run the Workflow](#4-run-the-workflow) + 4a. [Approach 1: Start with OSD and GLDS accession as input](#4a-approach-1-start-with-an-osd-and-glds-accession-as-input) + 4b. [Approach 2: Start with a sample ID list as input](#4b-approach-2-start-with-a-sample-ID-list-as-input) + 4c. [Modify parameters and compute resources in the Nextflow config file](#4c-modify-parameters-and-compute-resources-in-the-nextflow-config-file) + +5. [Workflow Outputs](#5-workflow-outputs) + 5a. [Main outputs](#5a-main-outputs) + 5b. [Resource logs](#5b-resource-logs) + +
+ +--- + +### 1. Install Nextflow, Singularity, and Conda + +#### 1a. Install Nextflow and Conda + +Nextflow can be installed either through the [Anaconda bioconda channel](https://anaconda.org/bioconda/nextflow) or as documented on the [Nextflow documentation page](https://www.nextflow.io/docs/latest/getstarted.html). + +> Note: If you wish to install conda, we recommend installing a Miniforge version appropriate for your system, as documented on the [conda-forge website](https://conda-forge.org/download/), where you can find basic binaries for most systems. More detailed miniforge documentation is available in the [miniforge github repository](https://github.com/conda-forge/miniforge). +> +> Once conda is installed on your system, you can install the latest version of Nextflow by running the following commands: +> +> ```bash +> conda install -c bioconda nextflow +> nextflow self-update +> ``` +> You may also install [mamba](https://mamba.readthedocs.io/en/latest/index.html) first which is a faster implementation of conda and can be used as a drop-in replacement: +> ```bash +> conda install -c conda-forge mamba +> ``` + +
+ +#### 1b. Install Singularity + +Singularity is a container platform that allows usage of containerized software. This enables the GeneLab workflow to retrieve and use all software required for processing without the need to install the software directly on the user's system. + +We recommend installing Singularity on a system wide level as per the associated [documentation](https://docs.sylabs.io/guides/3.10/admin-guide/admin_quickstart.html). + +> Note: Singularity is also available through the [Anaconda conda-forge channel](https://anaconda.org/conda-forge/singularity). + +> Note: Alternatively, Docker can be used in place of Singularity. To get started with Docker, see the [Docker CE installation documentation](https://docs.docker.com/engine/install/). + +
+ +--- + +### 2. Download the Workflow Files + +All files required for utilizing the NF_MGEstHostReads GeneLab workflow for estimating host reads in metagenomics sequencing data are in the [workflow_code](workflow_code) directory. To get a copy of the latest *NF_MGEstHostReads* version on to your system, the code can be downloaded as a zip file from the release page then unzipped after downloading by running the following commands: + +```bash +wget +unzip NF_MGEstHostReads_1.0.0.zip && cd NF_MGEstHostReads_1.0.0 +``` + +
+ +--- + +### 3. Fetch Singularity Images + +Although Nextflow can fetch Singularity images from a url, doing so may cause issues as detailed [here](https://github.com/nextflow-io/nextflow/issues/1210). + +To avoid such issues, the required Singularity images can be manually fetched as follows before running the workflow: + +```bash +mkdir -p singularity +cd singularity + +# Pull required containers +singularity pull kraken2_2.1.6.img docker://quay.io/biocontainers/kraken2:2.1.6--pl5321h077b44d_0 +singularity pull dp_tools.img docker://quay.io/nasa_genelab/dp_tools:1.3.8 + +cd .. +``` + +Once complete, a `singularity` folder containing the Singularity images will be created. Run the following command to export this folder as a Nextflow configuration environment variable to ensure Nextflow can locate the fetched images: + +```bash +export NXF_SINGULARITY_CACHEDIR=$(pwd)/singularity +``` + +
+ +--- + +### 4. Run the Workflow + +> ***Note:** All the commands in this step assume that the workflow will be run from within the `NF_MGEstHostReads_1.0.0` directory that was downloaded in [step 2](#2-download-the-workflow-files) above. They may also be run from a different location by providing the full path to the main.nf workflow file in the `NF_MGEstHostReads_1.0.0` directory.* + + +This workflow can be run in two different ways as shown in the two approaches below. The user can choose to provide both the OSD and GeneLab accession numbers of an [OSDR](https://osdr.nasa.gov/bio/repo/) dataset of interest, as illustrated in [Approach 1](#4a-approach-1-start-with-an-osd-and-glds-accession-as-input). Another option, depicted in [Approach 2](#4b-approach-2-start-with-a-sample-ID-list-as-input), is providing the path to a text file containing a single-column list of unique sample identifiers, an example of which is shown [here](workflow_code/unique-sample-IDs.txt), along with the path to input data (raw reads of samples). + +Both approaches also require providing the root directory for where kraken2 reference databases are (or will be) stored. The workflow assumes databases follow the naming convention `kraken2--db`. If a database for a specified host is not found in the provided root directory, the workflow automatically builds one from scratch and saves it in the same directory using that name convention. + +In cases where the workflow is to build kraken2 database from scratch, it is important to ensure that the host organism's details are present in hosts.csv table [here](workflow_code/assets/hosts.csv). If not, they should be appended to the table in the following format: `name,species,refseq_ID,genome_build,FASTA_URL`. + +Alternatively, a pre-built database can be manually downloaded and unpacked into the root directory, provided it follows the same naming convention. An example of which is available in the [reference database info page](https://github.com/nasa/GeneLab_Data_Processing/blob/master/Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/SW_MGEstHostReads/reference-database-info.md), which describes how the mouse database was generated for a previous version of this workflow and how to obtain it for reuse. + +> Note: Nextflow commands use both single hyphen arguments (e.g. -profile) that denote general Nextflow arguments and double hyphen arguments (e.g. --osd) that denote workflow specific parameters. Take care to use the proper number of hyphens for each argument. + +
+ +#### 4a. Approach 1: Start with OSD and GLDS accession as input + +```bash +nextflow run main.nf \ + -resume \ + -profile singularity \ + --ref_dbs_Dir \ + --osd OSD-465 \ + --glds GLDS-465 +``` + +
+ +#### 4b. Approach 2: Start with a sample ID list as input + +```bash +nextflow run main.nf \ + -resume \ + -profile singularity \ + --ref_dbs_Dir \ + --sample_id_list unique_sample_ids.txt \ + --reads_dir +``` + +
+ + +**Required Parameters For All Approaches:** + +* `main.nf` - Instructs Nextflow to run the NF_MGEstHostReads workflow. If running in a directory other than `NF_MGEstHostReads_1.0.0`, replace with the full path to the NF_MGEstHostReads main.nf workflow file. +* `-resume` - Resumes workflow execution using previously cached results +* `-profile` – Specifies the configuration profile(s) to load (multiple options can be provided as a comma-separated list) + * Software environment profile options (choose one): + * `singularity` - instructs Nextflow to use Singularity container environments + * `docker` - instructs Nextflow to use Docker container environments + * `conda` - instructs Nextflow to use conda environments via the conda package manager + * `mamba` - instructs Nextflow to use conda environments via the mamba package manager + * Other option (can be combined with the software environment option above using a comma, e.g. `-profile slurm,singularity`): + * `slurm` - instructs Nextflow to use the [Slurm cluster management and job scheduling system](https://slurm.schedmd.com/overview.html) to schedule and run the jobs on a Slurm HPC cluster +* `--ref_dbs_Dir` - Specifies the path to the directory where kraken2 databases are or will be stored + + +**Additional Required Parameters For Approach 1:** + +* `--osd` - The OSD accession number specifying the [OSDR](https://osdr.nasa.gov/bio/repo/) dataset to process, e.g. OSD-465 (type: string, default: null) +* `--glds` - The GLDS accession number specifying the [OSDR](https://osdr.nasa.gov/bio/repo/) dataset to process, e.g. GLDS-465 (type: string, default: null) + > *Note: Not all datasets have the same OSD and GLDS number, so make sure the correct OSD and GLDS number are specified* + + +**Additional Required Parameters For Approach 2:** + +* `--sample_id_list` - path to a single-column file with unique sample identifiers (type: string, default: null) + > *Note: An example of this file is provided in the [workflow_code](workflow_code) directory [here](workflow_code/unique-sample-IDs.txt).* +* `--reads_dir` - path to raw reads directory (type: string, default: null) + + +**Optional Parameters For All Approaches** +> *Note: See `nextflow run -h` and [Nextflow's CLI run command documentation](https://nextflow.io/docs/latest/cli.html#run) for more options and details on how to run Nextflow.* + + +* `--single_suffix` - raw reads suffix that follows the unique part of sample names (type: string, default: "_raw.fastq.gz") +* `--R1_suffix` - raw forward reads suffix that follows the unique part of sample names (type: string, default: "_R1_raw.fastq.gz") +* `--R2_suffix` - raw reverse reads suffix that follows the unique part of sample names (type: string, default: "_R2_raw.fastq.gz") +* `--host` - host organism, should match the entry provided under `name` column in [hosts.csv](workflow_code/assets/hosts.csv) (type: string, default: "mouse") + + + +**Optional Parameters For Approach 1:** + +* `--runsheet_path` - specifies the path to a local runsheet; if not provided, a runsheet is automatically generated using OSDR metadata (type: string, default: null) +* `--isa_archive_path` - specifies the path to a local ISA archive; if not provided, ISA.zip is automatically generated using OSDR metadata (type: string, default: null) + + +**Optional Parameters For Approach 2:** + +* `--is_single` - whether data is single-end (type: boolean, default: false) + +
+ +#### 4c. Modify parameters and compute resources in the Nextflow config file + +Additionally, all parameters and workflow resources can be directly specified in the [nextflow.config](./workflow_code/nextflow.config) file. For detailed instructions on how to modify and set parameters in the config file, please see the [documentation here](https://www.nextflow.io/docs/latest/config.html). + +Once you've downloaded the workflow template, you can modify the parameters in the `params` scope and cpus/memory requirements in the `process` scope in your downloaded version of the [nextflow.config](workflow_code/nextflow.config) file as needed in order to match your dataset and system setup. Additionally, if necessary, you can modify each variable in the [nextflow.config](workflow_code/nextflow.config) file to be consistent with the study you want to process and the computer you're using for processing. + +
+ +--- + +### 5. Workflow Outputs + +#### 5a. Main Outputs + +The outputs from this pipeline are documented in the [GL-DPPD-7109-A](https://github.com/nasa/GeneLab_Data_Processing/blob/master/Metagenomics/Estimate_host_reads_in_raw_data/Pipeline_GL-DPPD-7109_Versions/GL-DPPD-7109-A.md) processing protocol. + + +The workflow also outputs the following: + - processing_info/protocol.txt (a text file describing the methods used by the workflow) + +#### 5b. Resource Logs + +Standard Nextflow resource usage logs are also produced as follows: + +**Nextflow Resource Usage Logs** + - processing_info/execution_report_{timestamp}.html (an html report that includes metrics about the workflow execution including computational resources and exact workflow process commands) + - processing_info/execution_timeline_{timestamp}.html (an html timeline for all processes executed in the workflow) + - processing_info/execution_trace_{timestamp}.txt (an execution tracing file that contains information about each process executed in the workflow, including: submission time, start time, completion time, cpu and memory used, machine-readable output) + +> Further details about these logs can also found within [this Nextflow documentation page](https://www.nextflow.io/docs/latest/tracing.html#execution-report). + +
+ +--- \ No newline at end of file diff --git a/Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/README.md b/Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/README.md index 193e482a..f09829d0 100644 --- a/Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/README.md +++ b/Metagenomics/Estimate_host_reads_in_raw_data/Workflow_Documentation/README.md @@ -1,13 +1,14 @@ -# GeneLab Workflow Information for Estimating Host Reads in Illumina Metagenomics Seq Data +# GeneLab Workflow Information for Estimating Host Reads in Metagenomics Seq Data -> **GeneLab has wrapped each step of the estimating host DNA in Illumina metagenomics sequencing data pipeline (MGEstHostReads) into a workflow. The table below lists (and links to) each MGEstHostReads pipeline version and the corresponding workflow subdirectory, the current MGEstHostReads pipeline/workflow implementation is indicated. The workflow subdirectory contains information about the workflow along with instructions for installation and usage. Exact workflow run info and MGEstHostReads version used to process specific datasets that have been released are provided with their processed data in the [Open Science Data Repository (OSDR)](https://osdr.nasa.gov/bio/repo/).** +> **GeneLab has wrapped each step of the estimating host DNA in metagenomics sequencing data pipeline (MGEstHostReads) into a workflow. The table below lists (and links to) each MGEstHostReads pipeline version and the corresponding workflow subdirectory, the current MGEstHostReads pipeline/workflow implementation is indicated. The workflow subdirectory contains information about the workflow along with instructions for installation and usage. Exact workflow run info and MGEstHostReads version used to process specific datasets that have been released are provided with their processed data in the [Open Science Data Repository (OSDR)](https://osdr.nasa.gov/bio/repo/).** ## MGEstHostReads Pipeline Version and Corresponding Workflow -|Pipeline Version|Current Workflow Version (for respective pipeline version)| -|:---------------|:---------------------------------------------------------| -|*[GL-DPPD-7109.md](../Pipeline_GL-DPPD-7109_Versions/GL-DPPD-7109.md)|[1.0.0](SW_MGEstHostReads)| +|Pipeline Version|Current Workflow Version (for respective pipeline version)|Nextflow Version| +|:---------------|:---------------------------------------------------------|:---------------| +|*[GL-DPPD-7109-A.md](../Pipeline_GL-DPPD-7109_Versions/GL-DPPD-7109-A.md)|[NF_MGEstHostReads_1.0.0](NF_MGEstHostReads)|25.04.6| +|[GL-DPPD-7109.md](../Pipeline_GL-DPPD-7109_Versions/GL-DPPD-7109.md)|[SW_MGEstHostReads_1.0.0](SW_MGEstHostReads)|N/A (Snakemake v7.26.0)| *Current GeneLab Pipeline/Workflow Implementation -> See the [workflow change log](SW_MGEstHostReads/CHANGELOG.md) to access previous workflow versions and view all changes associated with each version update. +> See the [workflow change log](NF_MGEstHostReads/CHANGELOG.md) to access previous workflow versions and view all changes associated with each version update.