Skip to main content

A tool for visualizing Newick format phylogenetic trees

Project description

Newick Tree Visualizer

PyPI version PyPI Downloads License: MIT

A tool for creating interactive visualizations of phylogenetic trees in Newick format.

โญ Support the Project

If you find this project helpful, please consider giving it a star on GitHub! It helps make the project more visible and encourages further development.

Star on GitHub

โœจ Features

  • ๐ŸŒณ Interactive visualization of phylogenetic trees
  • ๐ŸŽจ Configurable node and branch styling
  • ๐ŸŽฏ Custom grouping and coloring of nodes
  • ๐Ÿ“ Multiple layout directions (right, left, up, down)
  • ๐Ÿ”„ Draggable nodes for manual layout adjustments
  • ๐Ÿ’พ Multiple export formats (HTML, PNG, JPG, PDF)
  • โšก๏ธ Support for large-scale trees
  • ๐ŸŽฏ Optional confidence values display

๐Ÿ“ฆ Installation

System Dependencies

Google Chrome is required:

# macOS
brew install --cask google-chrome

# Ubuntu
sudo apt-get update
sudo apt-get install google-chrome-stable

# CentOS
sudo yum install google-chrome-stable

Python Package

pip install newick-visualizer

๐Ÿš€ Quick Start

Basic Usage

newick-viz input.nwk groups.json -o output.html

Example with Options

newick-viz input.nwk groups.json \
    -o output.jpg \
    --padding 21 \
    --points 8 \
    --distance-threshold 1.5 \
    --min-branch-length 35 \
    --default-length 60 \
    --max-branch-length 80 \
    --opacity 0.6 \
    --font-size 13 \
    --font-weight bold \
    --link-width 3.0 \
    --link-color '#f7cc4f' \
    --render-delay 2000

Export Formats

Supports multiple output formats:

# Interactive HTML
newick-viz input.nwk groups.json -o tree.html

# Static Images
newick-viz input.nwk groups.json -o tree.jpg
newick-viz input.nwk groups.json -o tree.png

# PDF Document
newick-viz input.nwk groups.json -o tree.pdf

๐ŸŽฎ Interactive Features

๐Ÿ–ฑ๏ธ Node Dragging

  • Click and drag any node to manually adjust its position
  • Connected lines and group backgrounds will update automatically
  • Visual feedback during dragging (node highlight and size change)
  • Changes persist in the visualization

โ†ฉ๏ธ Undo Function

  • Undo button available in the top-left corner
  • Reverts the last node movement
  • Multiple levels of undo supported
  • Visual feedback when undo is available/unavailable
  • Keyboard shortcut support (โŒƒ/โŒ˜ + Z)

โœจ Hover Effects

  • Nodes enlarge slightly on hover
  • Labels become more prominent
  • Smooth transitions for all visual changes

๐Ÿ› ๏ธ Configuration Options

Basic Options

  • -o, --output: Output file path [default: tree_visualization.html]
  • --render-delay: Rendering delay in milliseconds [default: 2000]

Visual Style

  • --padding: Padding around nodes in pixels [default: 35]
  • --opacity: Opacity of group backgrounds (0-1) [default: 0.3]
  • --points: Number of points around each node [range: 6-24] [default: 12]
  • --distance-threshold: Distance threshold for group backgrounds [default: 1.2]

Font Settings

  • --font-size: Font size in pixels [default: 12]
  • --font-family: Font family [default: "Arial, sans-serif"]
  • --font-weight: Font weight [default: "normal"]

Branch Settings

  • --min-branch-length: Minimum branch length [default: 30]
  • --max-branch-length: Maximum branch length [default: 70]
  • --default-length: Default length when no confidence value [default: 40]

Connection Line Style

  • --link-color: Color of connecting lines [default: "#999999"]
  • --link-width: Width of connecting lines [default: 1.5]

Other Settings

  • --show-confidence: Show confidence values [flag]

๐Ÿ“ Input File Formats

Newick File

Uses standard Newick format, for example:

((A:0.1,B:0.2)0.95:0.3,C:0.4);

Groups Configuration File (JSON)

{
  "layout": {
    "direction": "right",
    "groupOrder": ["Group1", "Group2"]
  },
  "groups": {
    "Group1": {
      "color": "#ffcdd2",
      "members": ["A", "B"],
      "order": ["B", "A"]
    },
    "Group2": {
      "color": "#c8e6c9",
      "members": ["C"],
      "order": ["C"]
    }
  }
}

๐Ÿ”ง Development Installation

git clone https://github.com/Bengerthelorf/newick-visualizer.git
cd newick-visualizer
pip install -e .

Project Structure

.
โ”œโ”€โ”€ _version.py
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ MANIFEST.in
โ”œโ”€โ”€ newick_visualizer/
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ”œโ”€โ”€ core/
โ”‚   โ”‚   โ”œโ”€โ”€ tree_generator.py
โ”‚   โ”‚   โ”œโ”€โ”€ template_manager.py
โ”‚   โ”‚   โ””โ”€โ”€ utils.py
โ”‚   โ””โ”€โ”€ templates/
โ”‚       โ”œโ”€โ”€ base.html
โ”‚       โ”œโ”€โ”€ scripts/
โ”‚       โ”‚   โ”œโ”€โ”€ tree.js
โ”‚       โ”‚   โ”œโ”€โ”€ layout.js
โ”‚       โ”‚   โ”œโ”€โ”€ groups.js
โ”‚       โ”‚   โ””โ”€โ”€ main.js
โ”‚       โ””โ”€โ”€ styles/
โ”‚           โ””โ”€โ”€ main.css
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ setup.py

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

If you have any suggestions or feedback, please submit them on our GitHub Issues page.

๐Ÿ“„ License

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

๐Ÿ™ Acknowledgments

  • D3.js - Visualization library
  • Selenium - Automated export generation

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

newick_visualizer-1.1.1.tar.gz (28.9 kB view details)

Uploaded Source

Built Distribution

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

newick_visualizer-1.1.1-py3-none-any.whl (34.6 kB view details)

Uploaded Python 3

File details

Details for the file newick_visualizer-1.1.1.tar.gz.

File metadata

  • Download URL: newick_visualizer-1.1.1.tar.gz
  • Upload date:
  • Size: 28.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.8

File hashes

Hashes for newick_visualizer-1.1.1.tar.gz
Algorithm Hash digest
SHA256 86ddae190c31f94d688c1ff8d946a48c7e3e84f39f94d31ade5034a5b1b067a1
MD5 e3321afa6ee3d193abcd8d2a8fb561ff
BLAKE2b-256 85d3e97d025eaf2bd4b140deade3b8c6e288ef5b5286169009cfab446f29980e

See more details on using hashes here.

File details

Details for the file newick_visualizer-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for newick_visualizer-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 999884a44ba8917c1ae5b817092d7ff0d841423bd72e4f88fc7ecdb023146fa6
MD5 e2d2662489745b2ec6eec41f8aef3326
BLAKE2b-256 c2e09b3c4db73bc9a4fce7d3e61f2d87271edad54e6d50db51bafb59dcebe93b

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