PANORAMA: A robust pangenome-based method for predicting and comparing biological systems across species#

Actions License Bioconda Source GitHub issues Docs Downloads

PANORAMA is a software suite used to analyze and compare partitioned pangenomes graph provided. It benefits from methods for the reconstruction and analysis of pangenome graphs, thanks to the PPanGGOLiN software suite. It is designed to perform pangenome comparison at high-throughtup level.


Quick Installation#

PANORAMA is easily installed with conda and pip. Follow the next step to install panorama.

# 1. Clone the Repository
git clone https://github.com/labgem/PANORAMA.git
cd PANORAMA

# 2. Create and Configure the Conda Environment
conda create -n panorama
conda config --add channels bioconda
conda config --add channels conda-forge
conda activate panorama
conda env update --file panorama.yml

PANORAMA overview#

Input files#

PANORAMA can process multiple pangenomes at a time. The common input file of most of the commands is a TSV file with two columns. In the following we will name this file pangenomes.tsv

Name

Path

Pangenome1

path/to/pangenome1

PangenomeX

path/to/pangenomeX

Note

We recommend using an absolute path in this file to avoid errors. You can use the path from your current directory or the path from the input file as a relative path to find pangenomes

Biological systems detection#

PANORAMA allows detecting systems in pangenomes by using models. A model is an exhaustive and specific representation of a system. PANORAMA models are flexible to describe any models provided by the user. PANORAMA provides a command to perform the complete detection workflow as follows:

panorama pansystems \
-p pangenomes.tsv \
--hmm /PATH/TO/HMM/LIST/FILE/hmm_list.tsv \
 -m /PATH/TO/MODELS/LIST/FILE/models_list.tsv \
 -s system_model_source_name \
-o PATH/TO/OUPUT/DIRECTORY \
--projection \
--association all \
--partition

Pangenome comparison#

PANORAMA allows comparing pangenomes based on pangenome structure previously detected.

Pangenome comparison based on spots#

Basic conserved spots comparison:

panorama compare_spots \
--pangenomes pangenomes.tsv \
--output conserved_spots_results \
--gfrr_metrics min_gfrr \
--gfrr_cutoff 0.8 0.8 \
--threads 8

Pangenome comparison based on systems#

Basic systems comparison with heatmap generation:

panorama compare_systems \
--pangenomes pangenomes.tsv \
--models defense_systems.tsv \
--sources defense_finder \
--output systems_comparison_results \
--heatmap \
--threads 8

Utilities#

info Command — Extract and Visualize Pangenome Information#

The info subcommand extracts summary information from PPanGGOLiN .h5 pangenome files and generates interactive HTML reports. These reports support quick content comparison of each pangenome.

Info command line usage#

panorama info -i <pangenome_list.tsv> -o <output_directory> [--status] [--content]

Alignment & clustering of gene families#

To perform the comparison of pangenomes, gene families are aligned and cluster. PANORAMA provides commands to perform the alignment and clustering of gene families before the comparison of pangenomes.

Comprehensive all-against-all alignment:

panorama align \
--pangenomes pangenomes.tsv \
--output alignment_results \
--all_against_all \
--align_identity 0.5 \
--align_coverage 0.8 \
--align_cov_mode 0 \
--threads 8 \
--keep_tmp

Fast clustering with linclust:

panorama cluster \
--pangenomes pangenomes.tsv \
--output clustering_results \
--method linclust \
--cluster_identity 0.8 \
--cluster_coverage 0.8 \
--threads 8

💬 Feedback & Contribution#

Give us feedback
PANORAMA is still in early development.

Have suggestions, ideas, or bug reports?
👉 Open an issue on GitHub

Important

We cannot correct bugs if we do not know about them and will try to help you the best we can


Developer Guide:

API Reference:

TODO: Add the citation to MyST