pairwiseANIviz


NamepairwiseANIviz JSON
Version 1.2 PyPI version JSON
download
home_pagehttps://github.com/RunJiaJi/pairwiseANIviz
SummaryPairwise ANI (Average Nucleotide Identity) visualization tool
upload_time2025-09-04 04:43:38
maintainerNone
docs_urlNone
authorRunjia Ji
requires_python>=3.7
licenseNone
keywords bioinformatics ani visualization clustering heatmap microbiology
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pairwiseANIviz

[![PyPI version](https://badge.fury.io/py/pairwiseANIviz.svg)](https://badge.fury.io/py/pairwiseANIviz)
[![Downloads](https://static.pepy.tech/badge/pairwiseaniviz)](https://pepy.tech/project/pairwiseaniviz)
[![Downloads](https://static.pepy.tech/badge/pairwiseaniviz/month)](https://pepy.tech/project/pairwiseaniviz)
[![Downloads](https://static.pepy.tech/badge/pairwiseaniviz/week)](https://pepy.tech/project/pairwiseaniviz)

Pairwise ANI (Average Nucleotide Identity) visulization tool. This tool is designed to help visualize the results of pairwise comparisons among multiple genomes.

First, [Scipy](https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html#scipy.cluster.hierarchy.linkage) is used to perform hierarchical/agglomerative clustering, followed by generating a clustermap using [Seaborn](https://seaborn.pydata.org/generated/seaborn.clustermap.html) that supports various [Matplotlib](https://matplotlib.org/stable/users/explain/colors/colormaps.html) colormaps.


#### Main features
* Support various __matplotlib colormaps__
* Taxonomic classification result can be included to __illustrate different taxa__
* Specific __outrange ANI values__ can be set (eg. 95% ANI values) 
* __Multi-format outputs (JPG, PNG, TIFF, SVG, PDF, EPS)__
* __Automatic header detection__ for FastANI output files
* __Flexible input format__ support for various header styles


## Example
#### 1. Using different [matplotlib colormaps](https://matplotlib.org/stable/users/explain/colors/colormaps.html)
<img src="/static/example_with_diffferent_cmap.svg" alt="Figure"/>

#### 2. With taxonomy indicated by different palettes
<img src="/static/example_with_different_palette.svg" alt="Figure"/>

#### 3. With ANI values illustrated
<img src="/static/example_with_annotation.svg" alt="Figure"/>

#### 4. With outrange ANI values (95%) colored red
<img src="/static/example_with_outrangeValue.svg" alt="Figure"/>


## Installation
 
<!-- AsperaSRAgetter has been distributed on [pypi](https://pypi.org/project/AsperaSRAgetter/). You can easily install AsperaSRAgetter through pip. AsperaSRAgetter depends on Aspera-CLI to retrive sequencing data from ENA. It is recommended to install Aspera-CLI [with Conda](https://anaconda.org/hcc/aspera-cli). -->

```shell
# Dependencies: Matplotlib, Seaborn, Scipy, Pandas
# Install pairwiseANIviz using pip
pip install pairwiseANIviz==1.2
```




## Usage


![overallUsage](./static/Overall_Usage.png) 

#### Options

```bash
usage: pairwiseANIviz [options] anifile

positional arguments:
  anifile               File containing pairwise ANI analysis result.

options:
  -h, --help            show this help message and exit
  -v, --version         Show pairwiseANIviz version number and exit.
  -o OUTDIR, --outdir OUTDIR
                        Directory to save the output figures (default 'pairwiseANIviz').
  --method {single,complete,average,weighted,centroid,median,ward}
                        Linkage method to use for calculating clusters (default 'average').
                         See https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html#scipy.cluster.hierarchy.linkage
  --metric {braycurtis,canberra,chebyshev,cityblock,correlation,cosine,dice,euclidean,hamming,jaccard,jensenshannon,kulczynski1,mahalanobis,matching,minkowski,rogerstanimoto,russellrao,seuclidean,sokalmichener,sokalsneath,sqeuclidean,yule}
                        The distance metric to use (default 'euclidean').
                         See https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.pdist.html#scipy.spatial.distance.pdist
  -cmap COLORMAP, --colormap COLORMAP
                        Matplotlib colormap used when drawing the heatmap of ANI values (default 'Blues').
                         See https://matplotlib.org/stable/users/explain/colors/colormaps.html
  --figWidth FIGWIDTH   Figure width (default '15').
  --figHeight FIGHEIGHT
                        Figure height (default '15').
  --linewidth LINEWIDTH
                        Line width of the main heatmap (default 0.5)
  --linecolor LINECOLOR
                        Line color of the main heatmap (default 'grey').
  --rowCluster          Draw the row cluster.
  --colCluster          Draw the column cluster.
  --annotation          Show ANI values on the plot.
  --outrangeValue OUTRANGEVALUE
                        Cells have ANI values over specific threshold set to red (eg. cells have ANI value >=0.95 set to red) (default 100).
  -c CLASSIFICATIONFILE, --classificationFile CLASSIFICATIONFILE
                        File containing classification result generated by GTDBTk(https://github.com/Ecogenomics/GTDBTk).
  -t {domain,phylum,class,order,family,genus,species}, --taxaLevel {domain,phylum,class,order,family,genus,species}
                        Taxa level illustrated on the plot.
                         Choose from "domain, phylum, class, order, family, genus, species".
                         Note that this parameter only works if classification result was input.
  --colorPalette COLORPALETTE
                        Color palette used to return a specified number of evenly spaced hues which are then used to illustrate different taxa (default 'hls').
                         Note that this parameter only works if classification result was input.

General usage
----------------
1. ANI result visulization **without classification info**:
   $ pairwiseANIviz ani_result.txt

2. ANI result visulization **with classification info**:
   $ pairwiseANIviz ani_result.txt --classificationFile classification_result.tsv

Runjia Ji, 2023

```

## Contact
If you have any questions using pairwiseANIviz, feel free to open an issue or contact me jirunjia@gmail.com.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/RunJiaJi/pairwiseANIviz",
    "name": "pairwiseANIviz",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "bioinformatics, ANI, visualization, clustering, heatmap, microbiology",
    "author": "Runjia Ji",
    "author_email": "jirunjia@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/86/81/3887153ed42ce8de2c5fc48ad04542e5f414a5db50ae605818532c40fe13/pairwiseaniviz-1.2.tar.gz",
    "platform": null,
    "description": "# pairwiseANIviz\n\n[![PyPI version](https://badge.fury.io/py/pairwiseANIviz.svg)](https://badge.fury.io/py/pairwiseANIviz)\n[![Downloads](https://static.pepy.tech/badge/pairwiseaniviz)](https://pepy.tech/project/pairwiseaniviz)\n[![Downloads](https://static.pepy.tech/badge/pairwiseaniviz/month)](https://pepy.tech/project/pairwiseaniviz)\n[![Downloads](https://static.pepy.tech/badge/pairwiseaniviz/week)](https://pepy.tech/project/pairwiseaniviz)\n\nPairwise ANI (Average Nucleotide Identity) visulization tool. This tool is designed to help visualize the results of pairwise comparisons among multiple genomes.\n\nFirst, [Scipy](https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html#scipy.cluster.hierarchy.linkage) is used to perform hierarchical/agglomerative clustering, followed by generating a clustermap using [Seaborn](https://seaborn.pydata.org/generated/seaborn.clustermap.html) that supports various [Matplotlib](https://matplotlib.org/stable/users/explain/colors/colormaps.html) colormaps.\n\n\n#### Main features\n* Support various __matplotlib colormaps__\n* Taxonomic classification result can be included to __illustrate different taxa__\n* Specific __outrange ANI values__ can be set (eg. 95% ANI values) \n* __Multi-format outputs (JPG, PNG, TIFF, SVG, PDF, EPS)__\n* __Automatic header detection__ for FastANI output files\n* __Flexible input format__ support for various header styles\n\n\n## Example\n#### 1. Using different [matplotlib colormaps](https://matplotlib.org/stable/users/explain/colors/colormaps.html)\n<img src=\"/static/example_with_diffferent_cmap.svg\" alt=\"Figure\"/>\n\n#### 2. With taxonomy indicated by different palettes\n<img src=\"/static/example_with_different_palette.svg\" alt=\"Figure\"/>\n\n#### 3. With ANI values illustrated\n<img src=\"/static/example_with_annotation.svg\" alt=\"Figure\"/>\n\n#### 4. With outrange ANI values (95%) colored red\n<img src=\"/static/example_with_outrangeValue.svg\" alt=\"Figure\"/>\n\n\n## Installation\n \n<!-- AsperaSRAgetter has been distributed on [pypi](https://pypi.org/project/AsperaSRAgetter/). You can easily install AsperaSRAgetter through pip. AsperaSRAgetter depends on Aspera-CLI to retrive sequencing data from ENA. It is recommended to install Aspera-CLI [with Conda](https://anaconda.org/hcc/aspera-cli). -->\n\n```shell\n# Dependencies: Matplotlib, Seaborn, Scipy, Pandas\n# Install pairwiseANIviz using pip\npip install pairwiseANIviz==1.2\n```\n\n\n\n\n## Usage\n\n\n![overallUsage](./static/Overall_Usage.png) \n\n#### Options\n\n```bash\nusage: pairwiseANIviz [options] anifile\n\npositional arguments:\n  anifile               File containing pairwise ANI analysis result.\n\noptions:\n  -h, --help            show this help message and exit\n  -v, --version         Show pairwiseANIviz version number and exit.\n  -o OUTDIR, --outdir OUTDIR\n                        Directory to save the output figures (default 'pairwiseANIviz').\n  --method {single,complete,average,weighted,centroid,median,ward}\n                        Linkage method to use for calculating clusters (default 'average').\n                         See https://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.linkage.html#scipy.cluster.hierarchy.linkage\n  --metric {braycurtis,canberra,chebyshev,cityblock,correlation,cosine,dice,euclidean,hamming,jaccard,jensenshannon,kulczynski1,mahalanobis,matching,minkowski,rogerstanimoto,russellrao,seuclidean,sokalmichener,sokalsneath,sqeuclidean,yule}\n                        The distance metric to use (default 'euclidean').\n                         See https://docs.scipy.org/doc/scipy/reference/generated/scipy.spatial.distance.pdist.html#scipy.spatial.distance.pdist\n  -cmap COLORMAP, --colormap COLORMAP\n                        Matplotlib colormap used when drawing the heatmap of ANI values (default 'Blues').\n                         See https://matplotlib.org/stable/users/explain/colors/colormaps.html\n  --figWidth FIGWIDTH   Figure width (default '15').\n  --figHeight FIGHEIGHT\n                        Figure height (default '15').\n  --linewidth LINEWIDTH\n                        Line width of the main heatmap (default 0.5)\n  --linecolor LINECOLOR\n                        Line color of the main heatmap (default 'grey').\n  --rowCluster          Draw the row cluster.\n  --colCluster          Draw the column cluster.\n  --annotation          Show ANI values on the plot.\n  --outrangeValue OUTRANGEVALUE\n                        Cells have ANI values over specific threshold set to red (eg. cells have ANI value >=0.95 set to red) (default 100).\n  -c CLASSIFICATIONFILE, --classificationFile CLASSIFICATIONFILE\n                        File containing classification result generated by GTDBTk(https://github.com/Ecogenomics/GTDBTk).\n  -t {domain,phylum,class,order,family,genus,species}, --taxaLevel {domain,phylum,class,order,family,genus,species}\n                        Taxa level illustrated on the plot.\n                         Choose from \"domain, phylum, class, order, family, genus, species\".\n                         Note that this parameter only works if classification result was input.\n  --colorPalette COLORPALETTE\n                        Color palette used to return a specified number of evenly spaced hues which are then used to illustrate different taxa (default 'hls').\n                         Note that this parameter only works if classification result was input.\n\nGeneral usage\n----------------\n1. ANI result visulization **without classification info**:\n   $ pairwiseANIviz ani_result.txt\n\n2. ANI result visulization **with classification info**:\n   $ pairwiseANIviz ani_result.txt --classificationFile classification_result.tsv\n\nRunjia Ji, 2023\n\n```\n\n## Contact\nIf you have any questions using pairwiseANIviz, feel free to open an issue or contact me jirunjia@gmail.com.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Pairwise ANI (Average Nucleotide Identity) visualization tool",
    "version": "1.2",
    "project_urls": {
        "Bug Reports": "https://github.com/RunJiaJi/pairwiseANIviz/issues",
        "Documentation": "https://github.com/RunJiaJi/pairwiseANIviz#readme",
        "Homepage": "https://github.com/RunJiaJi/pairwiseANIviz",
        "Source": "https://github.com/RunJiaJi/pairwiseANIviz"
    },
    "split_keywords": [
        "bioinformatics",
        " ani",
        " visualization",
        " clustering",
        " heatmap",
        " microbiology"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cf5b0afeb4189695cf3ab0efe8c70858f13e6f220c538c7a84faee6752d3fef3",
                "md5": "940901e272fef2da088ba645d5e1ba76",
                "sha256": "aa21644c3c76641b08b5e45ffbdfaa92ddbdc6e12e6baebb0e258ce5a092e585"
            },
            "downloads": -1,
            "filename": "pairwiseANIviz-1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "940901e272fef2da088ba645d5e1ba76",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 9385,
            "upload_time": "2025-09-04T04:43:37",
            "upload_time_iso_8601": "2025-09-04T04:43:37.306934Z",
            "url": "https://files.pythonhosted.org/packages/cf/5b/0afeb4189695cf3ab0efe8c70858f13e6f220c538c7a84faee6752d3fef3/pairwiseANIviz-1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "86813887153ed42ce8de2c5fc48ad04542e5f414a5db50ae605818532c40fe13",
                "md5": "12066278de2840b47da9d0e96594969f",
                "sha256": "b28b5f2f5fb829513a4a8c2c668f61fbfaade04458a1bb149b2728d3671de76e"
            },
            "downloads": -1,
            "filename": "pairwiseaniviz-1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "12066278de2840b47da9d0e96594969f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 9203,
            "upload_time": "2025-09-04T04:43:38",
            "upload_time_iso_8601": "2025-09-04T04:43:38.572897Z",
            "url": "https://files.pythonhosted.org/packages/86/81/3887153ed42ce8de2c5fc48ad04542e5f414a5db50ae605818532c40fe13/pairwiseaniviz-1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-04 04:43:38",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "RunJiaJi",
    "github_project": "pairwiseANIviz",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pairwiseaniviz"
}
        
Elapsed time: 0.47578s