Skip to main content

the Python Gene Order Plotter

Project description

geneorder

This package was born out of my continuous efforts to write streamlined code to plot Hox gene clusters. It seems like this is a task I will be performing many times, and there don’t seem to be too many tools out there, so I wrote my own. This is my matplotlib-based answer, and I hope that it is useful to you, too.

Input

Generally, the package expects you to have, at least, knowledge of the gene IDs that you want to visualize, and knowledge of their coordinates in the genome. This can be manually encoded or come in table form - crucially, it can be read from a GFF3 file.

Usage

Installation

Install latest from the GitHub repository:

$ pip install git+https://github.com/galicae/geneorder.git

or from pypi

$ pip install geneorder

Documentation

Documentation can be found hosted on this GitHub repository’s pages. Additionally you can find package manager specific guidelines on pypi.

How to use

The most basic geneorder use case is when you have a list of genes that are co-linear and would like to plot them in their chromosomal context. The least information that is needed for that is

  • the chromosome name
  • the gene IDs/names
  • the starts/ends of all genes
  • the strand and orientation of the genes
import pandas as pd

from geneorder.core import plot_synteny_schematic
gene_dict = {
    "gene_name": [
        "Hox1",
        "Hox2",
        "Hox3",
        "Hox4",
        "Hox5",
        "Hox6",
        "Hox7",
        "Hox8",
        "Hox10",
    ],
    "gene_id": [
        "PB.8615",
        "g9718",
        "PB.8616",
        "g9720",
        "g9721",
        "PB.8617",
        "g9723",
        "g9724",
        "g9725",
    ],
    "start": [
        1927066,
        1998922,
        2058396,
        2195412,
        2351936,
        2373415,
        2565196,
        2916314,
        2986021,
    ],
    "end": [
        1936157,
        2024148,
        2065953,
        2206712,
        2354374,
        2375678,
        2594468,
        2926445,
        2996225,
    ],
}

minimal = pd.DataFrame(gene_dict)
minimal["seqid"] = "pseudochrom_56"
minimal["strand"] = "-"
minimal
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </style>
gene_name gene_id start end seqid strand
0 Hox1 PB.8615 1927066 1936157 pseudochrom_56 -
1 Hox2 g9718 1998922 2024148 pseudochrom_56 -
2 Hox3 PB.8616 2058396 2065953 pseudochrom_56 -
3 Hox4 g9720 2195412 2206712 pseudochrom_56 -
4 Hox5 g9721 2351936 2354374 pseudochrom_56 -
5 Hox6 PB.8617 2373415 2375678 pseudochrom_56 -
6 Hox7 g9723 2565196 2594468 pseudochrom_56 -
7 Hox8 g9724 2916314 2926445 pseudochrom_56 -
8 Hox10 g9725 2986021 2996225 pseudochrom_56 -
plot_synteny_schematic(minimal)

The plot can be customized, e.g. by including color:

minimal["color"] = [
    "red",
    "orange",
    "gold",
    "lightgreen",
    "forestgreen",
    "royalblue",
    "darkblue",
    "darkmagenta",
    "magenta",
]

plot_synteny_schematic(minimal)

We can also edit the dataframe to indicate missing genes:

from geneorder import util
minimal = util.insert_gap(
    minimal,
    "Hox8",
    "Hox10",
    "gene_name",
    no_gaps=1,
    purge_columns=["gene_id", "color"],
)
plot_synteny_schematic(minimal)

For more details, please refer to the documentation.

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

geneorder-0.0.4.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

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

geneorder-0.0.4-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file geneorder-0.0.4.tar.gz.

File metadata

  • Download URL: geneorder-0.0.4.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for geneorder-0.0.4.tar.gz
Algorithm Hash digest
SHA256 3d4f3abd967ff91912c1e7a7cebda95ede3d07a9bbf75925e941b887e7bc8146
MD5 a3f26c8bcfc1cf3e84acc6a84c79edd1
BLAKE2b-256 67c88de02ec0bdabe30e0a13a838f010e698c00c5014880d07537fcb7ae00e30

See more details on using hashes here.

File details

Details for the file geneorder-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: geneorder-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for geneorder-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5c5f314dd25b2c1848040b21194b3f30c58dfc22c0f19c1d2df802ca7c983749
MD5 adeba1539f02ea80d886f40192e45f91
BLAKE2b-256 2c9240592b96b63447bbdd8af83e125d0a099d6cb85ef8f77341e3c9c4849b27

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