Metadata-Version: 2.4
Name: nose-pipeline
Version: 1.0.1
Summary: NOSE — Novel Species Identification Pipeline (Computational Systems Biology Lab @ IIT Madras)
Author: Computational Systems Biology Lab, IIT Madras
License-Expression: MIT
Project-URL: Homepage, https://ramanlab.github.io/NOSE/
Project-URL: Repository, https://github.com/RamanLab/NOSE
Project-URL: Issues, https://github.com/RamanLab/NOSE/issues
Project-URL: Documentation, https://ramanlab.github.io/NOSE/
Keywords: bioinformatics,novel species,genomics,pipeline,metagenomics,taxonomy,phylogenomics,snakemake
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyyaml>=6.0
Requires-Dist: click>=8.0
Provides-Extra: science
Requires-Dist: biopython>=1.80; extra == "science"
Provides-Extra: dev
Requires-Dist: pytest>=7; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Dynamic: license-file

# NOSE — Novel Species Identification Pipeline

**Computational Systems Biology Lab @ IIT Madras**

[![License: MIT](https://img.shields.io/badge/License-MIT-green?style=flat-square)](https://github.com/RamanLab/NOSE/blob/main/LICENSE)
[![Snakemake ≥8](https://img.shields.io/badge/Snakemake-≥8-purple?style=flat-square)](https://snakemake.readthedocs.io)
[![Python ≥3.9](https://img.shields.io/badge/Python-≥3.9-blue?style=flat-square)](https://www.python.org)
[![PyPI](https://img.shields.io/pypi/v/nose-pipeline?style=flat-square)](https://pypi.org/project/nose-pipeline/)

A modular Snakemake toolkit for identifying and characterizing novel microbial species from genome assemblies.

📖 **[Full Documentation](https://ramanlab.github.io/NOSE/)**  &nbsp;·&nbsp;
🐛 **[Report an Issue](https://github.com/RamanLab/NOSE/issues)**  &nbsp;·&nbsp;
📦 **[Pipeline Code](https://github.com/RamanLab/NOSE)**

---

## What is NOSE?

NOSE takes a directory of genome FASTA files and returns — with full scientific evidence — whether each genome belongs to an already-described species or is a candidate novel organism.

```
FASTA Files → M1: QC & Taxonomy → M2: Novelty Screen → Novel / Known
                                                              ↓
                                          M3: Phylogenetic Tree
                                          M4: Metagenome Mapping
                                          M5: Functional Annotation
                                          M6: Metabolic Modeling
```

| Module | What it does | Key output |
|--------|-------------|------------|
| M1 | Assembly QC + taxonomy (QUAST, CheckM2, GTDB-Tk) | `genome_summary.csv` |
| M2 | ANI / AAI / POCP against RefSeq type strains | `potential_novel.csv` |
| M3 | ML phylogenetic trees (GToTree + IQ-TREE) | Newick + iTOL files |
| M4 | Metagenome abundance mapping (sylph) | `final_report.csv` |
| M5 | Functional annotation (Prokka, antiSMASH, ABRICATE) | `functional_summary.csv` |
| M6 | Metabolic model reconstruction (CarveMe, MEMOTE) | SBML + `model_summary.csv` |

---

## Installation

### 1. Install the CLI package

```bash
pip install nose-pipeline
```

### 2. Clone the pipeline

```bash
git clone https://github.com/RamanLab/NOSE.git
cd NOSE
```

### 3. Set up conda + Snakemake

```bash
nose-setup
```

Installs Miniconda3 if needed, creates a `snakemake` conda environment with Snakemake ≥ 8.

### 4. Download databases

```bash
nose-db
```

Downloads CheckM2, GTDB-Tk, EukCC, and CAT databases as needed.

### 5. Launch the web UI

```bash
nose-ui
```

Opens `http://localhost:5050` — fill in paths, click **Run Module**.

---

## CLI Commands

| Command | Description |
|---------|-------------|
| `nose-ui` | Start the web UI (default port 5050) |
| `nose-setup` | Install conda environment |
| `nose-db` | Download databases |
| `nose-info` | Show version, env status, paths |

```bash
nose-info        # check everything is set up correctly
nose-ui --port 8080 --no-browser   # custom port, skip browser open
nose-setup --env-name myenv        # custom env name
nose-db --skip-gtdbtk              # skip the 66 GB GTDB-Tk download
```

---

## System Requirements

- **OS**: Linux, macOS, or Windows (WSL2)
- **Python**: ≥ 3.9
- **Conda**: Miniconda3 or Anaconda (auto-installed by `nose-setup` if missing)
- **RAM**: ≥ 16 GB recommended (GTDB-Tk loads ~66 GB DB)
- **Disk**: ≥ 100 GB for all databases

---

## Developed by

**Computational Systems Biology Lab @ IIT Madras**
- 🌐 [ramanlab.github.io/NOSE](https://ramanlab.github.io/NOSE/)
- 📁 [github.com/RamanLab/NOSE](https://github.com/RamanLab/NOSE)

---

## License

MIT License — see [LICENSE](https://github.com/RamanLab/NOSE/blob/main/LICENSE)
