Skip to main content

NOSE — Novel Species Identification Pipeline (Computational Biology Lab, IIT Madras)

Project description

NOSE

NOvel SpEcies Identification Pipeline

A Modular Snakemake Toolkit for Novelty Identification and Characterization

MIT License Snakemake HPC Ready Conda Novel-Genome-Id

Documentation Site  ·  Wiki  ·  Setup Guide  ·  Report an Issue


NOSE is a scalable bioinformatics pipeline designed to identify and characterize novel microbial species. By integrating quality assessment, phylogenomics, and functional mapping into a unified Snakemake workflow, NOSE ensures research is reproducible, automated, and ready for HPC environments.


Table of Contents


Overview

NOSE takes a directory of genome FASTA files and returns — with full scientific evidence — whether each genome belongs to an already-described species or represents a candidate novel organism. Each module is an independent Snakemake workflow with its own conda environments, config file, and output directory.

FASTA Files  →  M1: Quality Check  →  M2: Novelty Screen  →  Novel / Known
                                                                    ↓
                                                     · M3: Phylogenetic Tree Workflow
                                                     · M4: Metagenome Mapping
                                                     · M5: Functional Characterization
                                                     · M6: Metabolic Modeling

Pipeline Structure

Module Name Trigger Key Output
M1 Genome Summary & Classification All input genomes genome_summary.csv
M2 Overall Genome-Relatedness (OGRI) M1 output compiled_results.csv · potential_novel.csv
M3 Phylogenetic ML Tree ANI < 95% (novel) ML tree + iTOL annotation
M4 Metagenome Mapping ANI < 95% (novel) final_report.csv
M5 Functional Characterization ANI < 95% (novel) 7 CSV outputs
M6 Metabolic Modeling ANI < 95% (novel) SBML models + model_summary.csv

NOSE Pipeline Overview

How to read the figure: FASTA files enter at the top. M1 and M2 run on all genomes. The ANI < 95% gate separates known species (right branch) from novel candidates (green path). All four characterization modules (M3–M6) run only on novel candidates.


Installation

Follow the guide below to install Anaconda and configure a dedicated Snakemake environment. This ensures a stable, reproducible workspace with all required bioinformatics channels pre-configured.

📖 Anaconda and Snakemake Setup & Installation

Quick setup:

# 1. Install conda and activate
source ~/anaconda3/bin/activate && conda init

# 2. Add bioinformatics channels
conda config --add channels conda-forge
conda config --add channels bioconda
conda config --set channel_priority strict

# 3. Create the Snakemake environment
conda create -n snakemake snakemake -y
conda activate snakemake

# 4. Clone the full NOSE repository
git clone https://github.com/RamanLab/NOSE.git
cd NOSE

# 5. Enter any module, edit config.yaml, then run
cd Module1
# Edit config.yaml with your paths, then:
bash Nose_Module1.sh

Modules

Module 1: Genome Summary & Classification

📁 Module 1  |  Script: Nose_Module1.sh

Automated Snakemake workflow for assembly quality assessment and full taxonomic classification. A single is_euk flag in config.yaml selects the prokaryotic or eukaryotic path. Genomes passing the HQ filter are written to genome_summary.csv for downstream use.

Tools:

Path Tools
Prokaryotic QUAST · CheckM2 · GTDB-Tk
Eukaryotic QUAST · EukCC · CAT

Quality thresholds: Completeness ≥ 95% · Contamination ≤ 5% · Classified to genus level minimum

Outputs:

  • genome_summary.csv — genomes passing QC thresholds → input for Module 2
  • unqualified_genome_summary.csv — genomes that did not meet thresholds

Module 2: Overall Genome-Relatedness (OGRI)

📁 Module 2  |  Script: Nose_Module2.sh

Computes three complementary genomic distance metrics against all RefSeq type strains in the genome's genus, downloaded automatically via the NCBI Datasets API. Supports both WGS and 16S-only input modes. Genomes with ANI < 95% are flagged as candidate novel species.

⚠️ An NCBI API key must be set in config.yaml. Without it, reference genome downloads will be rate-limited. 🔗 How to get an NCBI API key: NCBI API Integration Guide

Tools: FastANI · AAI (aai.rb) · POCP (pocp.sh) · Barrnap · BLASTn · NCBI Datasets API

Three OGRI metrics:

Metric Boundary Significance
ANI < 95% = novel Primary species-level boundary (IJSEM standard)
AAI Broader evolutionary distances at proteome level
POCP < 50% = new genus Genus-level delineation

Outputs:

  • compiled_results.csv — all genomes with ANI / AAI / POCP / 16S identity
  • potential_novel.csv — ANI < 95% candidates, staged for M3–M6

Module 1 and Module 2 detailed workflow


Module 3: Phylogenetic Tree Workflow

📁 Module 3  |  Script: Nose_Module3.sh

Validates taxonomic novelty via genus-specific Maximum Likelihood (ML) trees built from concatenated Single-Copy Genes (SCGs). GToTree identifies SCGs using HMMs; IQ-TREE infers the ML tree with 1000 ultrafast bootstrap replicates; tree_annotation.py generates iTOL-ready annotation files.

⚠️ Requires manual addition of Outroup (GCF ID) and HMM columns to genome_summary_mod.csv before running.

Tools: GToTree · IQ-TREE · iTOL · tree_annotation.py

IQ-TREE command:

iqtree \
  -s Aligned_SCGs.faa \   # concatenated SCG alignment
  -spp Partitions.txt \   # per-gene partition model
  -m MFP \                # ModelFinder Plus
  -bb 1000 \              # ultrafast bootstraps
  -nt 4 \                 # CPU threads
  -pre {genus}_iqtree_out

Outputs: Per-genus ML tree files + iTOL annotation CSV files

Module 3 Phylogenetic Tree Workflow


Module 4: Metagenome Mapping Workflow

📁 Module 4  |  Script: Nose_Module4.sh

Quantifies isolate prevalence and relative abundance across metagenomic datasets using sylph k-mer containment estimation. No BAM files or read alignment required. Species-level threshold (c=100) with minimum 5 k-mers enforced to suppress false positives.

Tools: sylph · pandas · merge_results.py

Containment thresholds:

Threshold (c) Resolution
100 Species-level (default)
95 Genus-level
90 Family-level

Output: final_report.csv — Sample_ID · Genome · Containment · ANI · Reads_Queried · Reads_Matching


Module 5: Functional Characterization

📁 Module 5  |  Script: Nose_Module5.sh

Multi-modal pipeline integrating structural annotation, COG functional classification, biosynthetic gene cluster detection, resistance and virulence screening, and mobile element identification.

Tools: Prokka · COGclassifier · antiSMASH · ABRICATE · geNomad

Workflow steps:

Step Tool Output
Gene annotation Prokka .gff · .faa · .ffn · .gbk
Functional classification COGclassifier merged_classifier_count.csv
BGC detection antiSMASH AntiSMASH_results.csv
Resistance & virulence ABRICATE (CARD · VFDB · BacMet · NCBI) Per-database tabular reports
Phage & plasmid detection geNomad virus_summary.csv · plasmid_summary.csv

💡 geNomad tells you whether resistance or virulence genes reside on mobile elements — meaning they can spread horizontally to other organisms.


Module 6: Metabolic Modeling Workflow

📁 Module 6  |  Script: Nose_Module6.sh

Genome-scale metabolic reconstruction using CarveMe (top-down approach). Each GEM is validated with COBRApy unconstrained growth tests and benchmarked with MEMOTE for stoichiometric consistency. Models are exported in SBML/FBC format compatible with COBRA Toolbox, cobrapy, and OptFlux.

Tools: CarveMe · COBRApy · MEMOTE · generate_model_stats.py · compile_model_summary.py

⚠️ Always use the --prodigal flag with CarveMe. Default gene prediction produces incomplete GEM reconstruction for certain isolates.

Output: model_summary.csv — sample · n_reactions · n_metabolites · n_genes · growth · memote_score

Modules 4, 5 and 6 Characterization Suite


Authors

Developed at Computational Biology Lab, IIT Madras

Role Name
Principal Investigator Prof. Karthik Raman
Pipeline Authors Prithvi · Harippriya · Enos · Pratyay Sengupta

License

This project is licensed under the MIT License — see the LICENSE file for details.


© 2026 NOSE Project Team · Computational Biology Lab · IIT Madras · Built for Novel Species Identification

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nose_pipeline-1.0.0.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nose_pipeline-1.0.0-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file nose_pipeline-1.0.0.tar.gz.

File metadata

  • Download URL: nose_pipeline-1.0.0.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for nose_pipeline-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0c6b95b4d8a3f242566f80726921c4b256cb581437d347823f4c4ef387d6f7d7
MD5 d42c2fd1fe8047af826c8b78ff4b3a8f
BLAKE2b-256 85bc38838be11e0bbe1517001f69ee54781150bb85a6f05738c6f7d8d4063e48

See more details on using hashes here.

File details

Details for the file nose_pipeline-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: nose_pipeline-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for nose_pipeline-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e6d092d84ceba9cf194bf3a03709a2e615e77e7e8a111e44e66132ecc5666fc0
MD5 f2c15706077ab8813ffc5833ec7b1210
BLAKE2b-256 c09b90e58836aee08fa1c87f771ab0f8c39a2123d3bbc9303b58502756754880

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page