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.