Skip to main content

Package to mimic the functionality of KaryoploteR, but in Python.

Project description

DOI

karyopyploter

PyPI - Version PyPI - Python Version


Table of Contents

Acknowledgements

This project was based on the work by @Adoni5 and his repository pyryotype. It was made to provide similar functionality to what is being offered by KaryoploteR package, but in a more pythonic style, using Matplotlib as the basis, and giving the user full liberty to plot anything they want.

Installation

    pip install karyopyploter

Example usage

from karyopyploter import GENOME, plot_ideogram, make_ideogram_grid, annotate_ideogram, zoom
from matplotlib import pyplot as plt
from itertools import chain
from pathlib import Path

OUT_DIR = Path(__file__).parent.parent / "example_outputs" / "readme_example"
OUT_DIR.mkdir(parents=True, exist_ok=True)
genome = GENOME.CHM13

fig, axes = plt.subplots(
    ncols=1,
    nrows=22,
    figsize=(11, 11),
    facecolor="white",
)
for ax, contig_name in zip(axes, [f"chr{i}" for i in chain(range(1, 23), "XY")]):
    chromosome = contig_name
    plot_ideogram(ax, target=chromosome, genome=genome, label=contig_name)
fig.savefig(OUT_DIR / "ideogram1.png", dpi=300)
# similar to:
fig = plt.figure(figsize=(11, 11), facecolor="white")
fig, _, ideogram_axes = make_ideogram_grid(target=[f"chr{contig_name}" for contig_name in chain(range(1, 23), "XY")], num_subplots=0, genome=genome, fig=fig)
fig.savefig(OUT_DIR / "ideogram2.png", dpi=300)

Will output: Example ideogram 2

# and with a subplots grid
fig, ax, ideogram_axes = make_ideogram_grid(subplot_width=15,ideogram_factor=0.2, target=[f"chr{contig_name}" for contig_name in chain(range(1, 23), "XY")], num_subplots=1, genome=genome)
fig.savefig(OUT_DIR / "ideogram3.png", dpi=300)

Will output: Example ideogram 3

# and with some regions annotated
regions = {'chr1':[(1000000,2000000, "red")], 'chr2':[(3000000, 4000000, 'blue')], 'chr3':[(5000000,6000000, (0,1,0)), (7000000,8000000, (1,0,0))]}
for chr in regions:
    annotate_ideogram(ideogram_axes[chr], regions=regions[chr], genome=genome)
fig.savefig(OUT_DIR / "ideogram4.png", dpi=300)

Will output: Example ideogram 4

# maybe we want to zoom in on specific regions
zoom_regions = {'chr1':(500000,2500000), 'chr10':(3000000, 4000000)}
for chr in zoom_regions:
    zoom(ideogram_axes[chr], start=zoom_regions[chr][0], stop=zoom_regions[chr][1])
fig.savefig(OUT_DIR / "ideogram5.png", dpi=300)

Will output: Example ideogram 5

TODOs

  • Add the ability to have axis ticks in human format
  • Provide more detailed documentation, as some features are not described (e.g. the make_genome_grid function)

License

karyopyploter is distributed under the terms of the BSD-3-Clause license. Feel free to use in both academic and commercial applications, and please consider to cite the software in your work.

Cytoband data

  • HG38
  • HG19
  • CHM13

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

karyopyploter-0.1.4.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

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

karyopyploter-0.1.4-py3-none-any.whl (35.6 kB view details)

Uploaded Python 3

File details

Details for the file karyopyploter-0.1.4.tar.gz.

File metadata

  • Download URL: karyopyploter-0.1.4.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for karyopyploter-0.1.4.tar.gz
Algorithm Hash digest
SHA256 7bda48fc2b6aededb49c73fb331de4f76cf04fc6be0193290b71f98e0cc1635d
MD5 5ed5e0e519ca0ddc504f651c856b8738
BLAKE2b-256 40f340ec8359a207755e695e0e00bef663584ab1c960b5c4859bbf11734d877e

See more details on using hashes here.

File details

Details for the file karyopyploter-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: karyopyploter-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 35.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.17

File hashes

Hashes for karyopyploter-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 13301d27b10b4fe9e4495cd277cf73572682ce5037569cb33eb114394a33661a
MD5 bb16aa9342e06e026d1b0ebab1b77d56
BLAKE2b-256 2c32894d14e0e6fa8aa9bf8b733c5a1563729b7cb3f124e96e04a7308e892dfa

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