A Python library for creating publication-quality genome visualisations.
Project description
Lakeview
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")
Lakeview currently supports visualzing sequence alignment, pileup, and gene annotation tracks. Additional functionality will be added in the future.
Try Lakeview interactively with 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:
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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | e201adee252ea3c859f1c9f4efa71ba557fe5c0f8d789ecda7cef8aaa99c60cd |
|
MD5 | 7f3e5ecaf6c23d96e3a88d47cb27db21 |
|
BLAKE2b-256 | 12fb8e6097ac1633e996782dd6069661d6f0ad3c3e66fc63689701be06f23d91 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5137f68fdebf5fec8add5ddb54c7e1cfa7e9ca26e4857aeee0cbdc77145abb5e |
|
MD5 | 8b27f069747f361fb234b5db629333ab |
|
BLAKE2b-256 | 3e56e79dee560f6fdd7cf53db2bc7bb45bb047847330d947daa6737cfd8e289a |