PyPI-Server Unit tests

TxDb

This package provides a Python interface to access and manipulate genome annotations, implemented in the Bioconductor GenomicFeatures package. It allows users to interact with TxDb SQLite databases to extract genomic features such as transcripts, exons, CDS, and promoters as GenomicRanges objects. It also includes a registry system to easily download and cache standard TxDb annotation files.

Install

To get started, install the package from PyPI

pip install txdb

Usage

Using TxDbRegistry

The TxDbRegistry provides easy access to hosted TxDb databases in AnnotationHub.

from txdb import TxDbRegistry

# Initialize registry
registry = TxDbRegistry()

# List available databases
print(registry.list_txdb())

# Load a specific database (downloads and caches it automatically)
# Example: hg38 knownGene
txdb = registry.load_db("TxDb.Hsapiens.UCSC.hg38.knownGene")

# Access features
transcripts = txdb.transcripts()
print(transcripts)
## OUTPUT
GenomicRanges with 412044 ranges and 3 metadata columns
                    seqnames          ranges          strand   _tx_id           tx_name tx_type
                    <str>       <IRanges> <ndarray[int8]>   <list>            <list>  <list>
    [0]                chr1   11121 - 14413               + |      1 ENST00000832824.1    None
    [1]                chr1   11125 - 14405               + |      2 ENST00000832825.1    None
    [2]                chr1   11410 - 14413               + |      3 ENST00000832826.1    None
                        ...             ...             ... |    ...               ...     ...
[412041] chrX_MU273397v1_alt 314193 - 316302               - | 412042 ENST00000710030.1    None
[412042] chrX_MU273397v1_alt 314813 - 315236               - | 412043 ENST00000710216.1    None
[412043] chrX_MU273397v1_alt 324527 - 324923               - | 412044 ENST00000710031.1    None
------
seqinfo(711 sequences): chr1 chr2 chr3 ... chrX_MU273395v1_alt chrX_MU273396v1_alt chrX_MU273397v1_alt

Using a Local TxDb File

If you have a local SQLite file (e.g., generated from R), you can load it directly.

from txdb import TxDb

txdb = TxDb("path/to/custom_txdb.sqlite")

# Extract exons
exons = txdb.exons()

# Extract promoters (2kb upstream)
promoters = txdb.promoters(upstream=2000, downstream=200)

# Filter for a specific chromosome
chr1_tx = txdb.transcripts(filter={"tx_chrom": "chr1"})

Check out the documentation for all supported extractors from TxDB files.

Note

This project has been set up using BiocSetup and PyScaffold.