Skip to main content

A Python library for creating publication-quality genome visualisations.

Project description

Lakeview logo

Lakeview

PyPI version pytest mypy

Lakeview is a Python 3 library for creating publication-quality IGV-style genomic visualizations. Lakeview is based on Matplotlib.

A quick example:

# Import Lakeview
import lakeview as lv

# Load aligned segments in a selected region from a BAM file
painter = lv.SequenceAlignment.from_file(
    "PacBio_HiFi.bam", region="chr14:105,660,000-105,780,000"
)
# Create an empty GenomeViewer with two tracks
gv = lv.GenomeViewer(tracks=2, figsize=(8, 5), height_ratios=(1, 4))
# Plot alignment pileup
painter.draw_pileup(
    gv.axes[0],             # Plot on the first track of the GenomeViewer
    show_mismatches=False,  # Do not highlight mismatched bases
)
# Plot aligned segments
painter.draw_alignment(
    gv.axes[1],             # Plot on the second track of the GenomeViewer
    show_mismatches=False,  # Do not highlight mismatched bases
    sort_by="length",       # Plot longer reads first
    link_by="name",         # Link primary and supplementary alignments of the same read
    max_rows=30,            # Only show the first 30 alignment rows
)
# Adjust x axis limits
gv.set_xlim(105_670_000, 105_777_000)
# Save the plot
gv.savefig("example.png")

example.png

Lakeview currently supports visualzing sequence alignment, pileup, and gene annotation tracks. Additional functionality will be added in the future.

Try Lakeview interactively with Binder:

Binder

Features

  • Improved clarity. Lakeview inherits the familiar and intuitive visual style of IGV, with a clear layout designed for publication and presentation.
  • Programmable plotting. Multiple files and genomic regions can be visualized automatically through a Pythonic interface inspired by Seaborn and Pandas.
  • Support for remote data. Genomic data are often stored in remote servers without display devices. With Lakeview, you can plot remotely and view the output figures locally. Lakeview works well with JupyterLab to streamline this workflow.
  • Transparency and reproducibility. Figures are plotted transparently and annotated explicitly. The input data and the plotting code contain all the information needed to reproduce the figure.
  • Customizable layouts. Lakeview supports many layouts implemented in IGV, while allowing the user to define custom rules for ordering, grouping, and coloring each segment. Advanced customization is possible via the Matplotlib API.
  • Interactive plotting. Lakeview ships with an interactive Jupyter Widget to help users locate their regions of interest.

Installation

pip install lakeview

Documentation

Lakeview documentation is available at https://jzhang-dev.github.io/lakeview/.

Contribute

Issues and pull requests are welcome via GitHub.

A ready-to-use development environment is available via Gitpod:

Contribute with Gitpod

License

Lakeview is licensed under the GPL-3.0 license.

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

lakeview-0.2.0.tar.gz (52.2 kB view details)

Uploaded Source

Built Distribution

lakeview-0.2.0-py3-none-any.whl (49.3 kB view details)

Uploaded Python 3

File details

Details for the file lakeview-0.2.0.tar.gz.

File metadata

  • Download URL: lakeview-0.2.0.tar.gz
  • Upload date:
  • Size: 52.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.4

File hashes

Hashes for lakeview-0.2.0.tar.gz
Algorithm Hash digest
SHA256 e201adee252ea3c859f1c9f4efa71ba557fe5c0f8d789ecda7cef8aaa99c60cd
MD5 7f3e5ecaf6c23d96e3a88d47cb27db21
BLAKE2b-256 12fb8e6097ac1633e996782dd6069661d6f0ad3c3e66fc63689701be06f23d91

See more details on using hashes here.

File details

Details for the file lakeview-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: lakeview-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 49.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.4

File hashes

Hashes for lakeview-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5137f68fdebf5fec8add5ddb54c7e1cfa7e9ca26e4857aeee0cbdc77145abb5e
MD5 8b27f069747f361fb234b5db629333ab
BLAKE2b-256 3e56e79dee560f6fdd7cf53db2bc7bb45bb047847330d947daa6737cfd8e289a

See more details on using hashes here.

Supported by

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