Metadata-Version: 2.1
Name: pyranges_plot
Version: 0.0.24
Summary: 'Genomic intervals data visualization package for dataframe objects generated with PyRanges.'
Home-page: https://github.com/emunozdc/pyranges_plot.git
Author: Ester Muñoz del Campo, Marco Mariotti
Author-email: ester.munoz01@estudiant.upf.edu, marco.mariotti@ub.edu
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pyranges1>=1.0.0
Requires-Dist: intervaltree>=3.1.0
Requires-Dist: kaleido>=0.2.1
Provides-Extra: plt
Requires-Dist: matplotlib>=3.7.2; extra == "plt"
Requires-Dist: mplcursors>=0.5.2; extra == "plt"
Provides-Extra: plotly
Requires-Dist: plotly>=5.9.0; extra == "plotly"
Requires-Dist: dash>=2.14.0; extra == "plotly"
Requires-Dist: dash_bootstrap_components>=1.5.0; extra == "plotly"
Provides-Extra: docs
Requires-Dist: sphinx>=7.3.7; extra == "docs"
Requires-Dist: sphinx_rtd_theme>=2.0.0; extra == "docs"
Requires-Dist: sphinx-autoapi>=3.1.1; extra == "docs"
Requires-Dist: sphinxcontrib-napoleon>=0.7; extra == "docs"
Provides-Extra: all
Requires-Dist: matplotlib>=3.7.2; extra == "all"
Requires-Dist: mplcursors>=0.5.2; extra == "all"
Requires-Dist: plotly>=5.9.0; extra == "all"
Requires-Dist: dash>=2.14.0; extra == "all"
Requires-Dist: dash_bootstrap_components>=1.5.0; extra == "all"

# pyranges_plot
Gene visualization package for dataframe objects generated with [PyRanges](https://pyranges.readthedocs.io/en/latest/index.html).




## Overview
The goal is getting a plot displaying a series of genes, transcripts, or any kind
of ranges contained in a PyRanges object. It displays the genes' intron-exon structure 
in its corresponding chromosome, enabling easy visualization of your PyRanges data. The 
Pyranges version compatible with Pyranges Plot is >= 1.0.0.

To obtain the plot there are some features to be defined by the user, one is the 
**engine** since it can be based on Matplotlib or Plotly, the other is the name 
of the **gene ID** column in your data. The rest of features can either be left 
as default or be customized. In example, the plot shows the first 25 genes of the 
dataframe by default, but this can be modified. It is worth noting that the order 
of the genes will be conserved when performing the subset.

In the case of coloring, Pyranges Plot offers a wide versatility. The data feature 
(column) according to which the genes will be colored is by default the gene ID, but 
this "color column" can be selected manually. Color specifications can be left as the 
default colormap (``plotly.colors.qualitative.Alphabet``) or be provided as dictionaries, 
lists or color objects from either Matplotlib or Plotly regardless of the chosen engine. 
When a colormap or list of colors is specified, the colors assigned to the genes will 
iterate over the provided ones following the color column pattern. In the case of 
concrete color instructions such as dictionary, the genes will be colored according 
to it while the non-specified ones will be colored in black.

<p align="center">
    <img src="https://github.com/emunozdc/pyranges_plot/raw/main/images/general_ex.png">
</p>




## Installation
PyRanges-Plot can be installed using pip. To install all dependencies in order to be able to 
use all the functionalities of the package and both engines the `[all]` option must be 
specified:

```
pip install pyranges-plot[all]
```

If the user wishes to use only one of the engines, the installation af all dependencies 
can be avoided by using the engine-specific installation option:
```
# For matplotlib
pip install pyranges-plot[plt]

# For plotly
pip install pyranges-plot[plotly]
```

Note that the minimal installation by `pip install pyranges-plot` is not able to produce plots 
since the plot dependencies are not installed.


## Documentation
Pyranges Plot documentation and tutorial can be found at [readthedocs](https://pyranges-plot.readthedocs.io/en/latest/).


## Coming soon
* Bases will be displayed along coordinates.
