TxDb.Athaliana.Ensembl.TAIR10 provides transcript
annotation information for Arabidopsis thaliana TAIR10.
This vignette demonstrates how to retrieve the transcript database
from AnnotationHub and access genes, transcripts, exons,
coding sequences, promoter regions, and feature relationships.
Install the package from Bioconductor with:
The TxDb object is retrieved using its AnnotationHub record:
Check the class of the retrieved object:
## [1] "TxDb"
## attr(,"package")
## [1] "GenomicFeatures"
Display the transcript database:
## TxDb object:
## # Db type: TxDb
## # Supporting package: GenomicFeatures
## # Data source: Ensembl Plants
## # Organism: Arabidopsis thaliana
## # Taxonomy ID: 3702
## # Genome: NA
## # Nb of transcripts: 54013
## # Db created by: txdbmaker package from Bioconductor
## # Creation time: 2026-08-08 14:52:47 +0500 (Sat, 08 Aug 2026)
## # txdbmaker version at creation time: 1.9.0
## # RSQLite version at creation time: 3.53.3
## # DBSCHEMAVERSION: 1.2
A summary can also be obtained with:
## Length Class Mode
## 1 TxDb S4
The sequence information is available through
seqinfo():
## Seqinfo object with 7 sequences (2 circular) from an unspecified genome:
## seqnames seqnames seqlengths isCircular genome
## 1 1 30427671 FALSE <NA>
## 2 2 19698289 FALSE <NA>
## 3 3 23459830 FALSE <NA>
## 4 4 18585056 FALSE <NA>
## 5 5 26975502 FALSE <NA>
## 6 Mt 366924 TRUE <NA>
## 7 Pt 154478 TRUE <NA>
The available sequence levels can be obtained with:
## [1] "1" "2" "3" "4" "5" "Mt" "Pt"
Gene ranges can be extracted with genes():
## GRanges object with 32833 ranges and 1 metadata column:
## seqnames ranges strand | gene_id
## <Rle> <IRanges> <Rle> | <character>
## AT1G01010 1 3631-5899 + | AT1G01010
## AT1G01020 1 6788-9130 - | AT1G01020
## AT1G01030 1 11649-13714 - | AT1G01030
## AT1G01040 1 23121-31227 + | AT1G01040
## AT1G01046 1 28500-28706 + | AT1G01046
## ... ... ... ... . ...
## ATMG09730 Mt 181268-181347 + | ATMG09730
## ATMG09740 Mt 191954-192025 - | ATMG09740
## ATMG09950 Mt 333651-333725 - | ATMG09950
## ATMG09960 Mt 347266-347348 + | ATMG09960
## ATMG09980 Mt 359666-359739 - | ATMG09980
## -------
## seqinfo: 7 sequences (2 circular) from an unspecified genome
Transcript ranges can be extracted with
transcripts():
## GRanges object with 54013 ranges and 2 metadata columns:
## seqnames ranges strand | tx_id tx_name
## <Rle> <IRanges> <Rle> | <integer> <character>
## [1] 1 3631-5899 + | 1 AT1G01010.1
## [2] 1 11101-11372 + | 2 AT1G03987.1
## [3] 1 23121-31227 + | 3 AT1G01040.1
## [4] 1 23416-31120 + | 4 AT1G01040.2
## [5] 1 28500-28706 + | 5 at1g01046
## ... ... ... ... . ... ...
## [54009] Pt 135048-135848 - | 54009 ATCG01200.1
## [54010] Pt 136147-137637 - | 54010 ATCG01210.1
## [54011] Pt 137869-137940 - | 54011 ATCG01220.1
## [54012] Pt 144921-145154 - | 54012 ATCG01270.1
## [54013] Pt 145291-152175 - | 54013 ATCG01280.1
## -------
## seqinfo: 7 sequences (2 circular) from an unspecified genome
Exon ranges can be extracted with exons():
## GRanges object with 196887 ranges and 1 metadata column:
## seqnames ranges strand | exon_id
## <Rle> <IRanges> <Rle> | <integer>
## [1] 1 3631-3913 + | 1
## [2] 1 3996-4276 + | 2
## [3] 1 4486-4605 + | 3
## [4] 1 4706-5095 + | 4
## [5] 1 5174-5326 + | 5
## ... ... ... ... . ...
## [196883] Pt 135812-135848 - | 196883
## [196884] Pt 136147-137637 - | 196884
## [196885] Pt 137869-137940 - | 196885
## [196886] Pt 144921-145154 - | 196886
## [196887] Pt 145291-152175 - | 196887
## -------
## seqinfo: 7 sequences (2 circular) from an unspecified genome
Coding sequence ranges can be extracted with cds():
## GRanges object with 286067 ranges and 1 metadata column:
## seqnames ranges strand | cds_id
## <Rle> <IRanges> <Rle> | <integer>
## [1] 1 3760-3913 + | 1
## [2] 1 3996-4276 + | 2
## [3] 1 4486-4605 + | 3
## [4] 1 4706-5095 + | 4
## [5] 1 5174-5326 + | 5
## ... ... ... ... . ...
## [286063] Pt 122011-123192 - | 286063
## [286064] Pt 123296-123562 - | 286064
## [286065] Pt 123884-129244 - | 286065
## [286066] Pt 144921-145154 - | 286066
## [286067] Pt 145291-152175 - | 286067
## -------
## seqinfo: 7 sequences (2 circular) from an unspecified genome
Promoter regions can be generated using promoters():
promoter_annotations <- promoters(
TxDb.Athaliana.Ensembl.TAIR10,
upstream = 2000,
downstream = 200
)## Warning in valid.GenomicRanges.seqinfo(x, suggest.trim = TRUE): GRanges object contains 7 out-of-bound ranges located on sequences 2, 3, and
## 5. Note that ranges located on a sequence whose length is unknown (NA) or on
## a circular sequence are not considered out-of-bound (use seqlengths() and
## isCircular() to get the lengths and circularity flags of the underlying
## sequences). You can use trim() to trim these ranges. See
## ?`trim,GenomicRanges-method` for more information.
## GRanges object with 54013 ranges and 2 metadata columns:
## seqnames ranges strand | tx_id tx_name
## <Rle> <IRanges> <Rle> | <integer> <character>
## AT1G01010.1 1 1631-3830 + | 1 AT1G01010.1
## AT1G03987.1 1 9101-11300 + | 2 AT1G03987.1
## AT1G01040.1 1 21121-23320 + | 3 AT1G01040.1
## AT1G01040.2 1 21416-23615 + | 4 AT1G01040.2
## at1g01046 1 26500-28699 + | 5 at1g01046
## ... ... ... ... . ... ...
## ATCG01200.1 Pt 135649-137848 - | 54009 ATCG01200.1
## ATCG01210.1 Pt 137438-139637 - | 54010 ATCG01210.1
## ATCG01220.1 Pt 137741-139940 - | 54011 ATCG01220.1
## ATCG01270.1 Pt 144955-147154 - | 54012 ATCG01270.1
## ATCG01280.1 Pt 151976-154175 - | 54013 ATCG01280.1
## -------
## seqinfo: 7 sequences (2 circular) from an unspecified genome
Transcripts can be grouped by gene with
transcriptsBy():
transcripts_by_gene <- transcriptsBy(
TxDb.Athaliana.Ensembl.TAIR10,
by = "gene"
)
transcripts_by_gene## GRangesList object of length 32833:
## $AT1G01010
## GRanges object with 1 range and 2 metadata columns:
## seqnames ranges strand | tx_id tx_name
## <Rle> <IRanges> <Rle> | <integer> <character>
## [1] 1 3631-5899 + | 1 AT1G01010.1
## -------
## seqinfo: 7 sequences (2 circular) from an unspecified genome
##
## $AT1G01020
## GRanges object with 6 ranges and 2 metadata columns:
## seqnames ranges strand | tx_id tx_name
## <Rle> <IRanges> <Rle> | <integer> <character>
## [1] 1 6788-8737 - | 7164 AT1G01020.2
## [2] 1 6788-8737 - | 7165 AT1G01020.6
## [3] 1 6788-9130 - | 7166 AT1G01020.1
## [4] 1 6788-9130 - | 7167 AT1G01020.3
## [5] 1 6788-9130 - | 7168 AT1G01020.4
## [6] 1 6788-9130 - | 7169 AT1G01020.5
## -------
## seqinfo: 7 sequences (2 circular) from an unspecified genome
##
## $AT1G01030
## GRanges object with 2 ranges and 2 metadata columns:
## seqnames ranges strand | tx_id tx_name
## <Rle> <IRanges> <Rle> | <integer> <character>
## [1] 1 11649-13714 - | 7170 AT1G01030.1
## [2] 1 11649-13714 - | 7171 AT1G01030.2
## -------
## seqinfo: 7 sequences (2 circular) from an unspecified genome
##
## ...
## <32830 more elements>
Exons can be grouped by transcript with exonsBy():
## GRangesList object of length 54013:
## $`1`
## GRanges object with 6 ranges and 3 metadata columns:
## seqnames ranges strand | exon_id exon_name exon_rank
## <Rle> <IRanges> <Rle> | <integer> <character> <integer>
## [1] 1 3631-3913 + | 1 AT1G01010.1.exon1 1
## [2] 1 3996-4276 + | 2 AT1G01010.1.exon2 2
## [3] 1 4486-4605 + | 3 AT1G01010.1.exon3 3
## [4] 1 4706-5095 + | 4 AT1G01010.1.exon4 4
## [5] 1 5174-5326 + | 5 AT1G01010.1.exon5 5
## [6] 1 5439-5899 + | 6 AT1G01010.1.exon6 6
## -------
## seqinfo: 7 sequences (2 circular) from an unspecified genome
##
## $`2`
## GRanges object with 1 range and 3 metadata columns:
## seqnames ranges strand | exon_id exon_name exon_rank
## <Rle> <IRanges> <Rle> | <integer> <character> <integer>
## [1] 1 11101-11372 + | 7 AT1G03987.1.exon1 1
## -------
## seqinfo: 7 sequences (2 circular) from an unspecified genome
##
## ...
## <54011 more elements>
The chromosome assignments of genes can be inspected with:
## factor-Rle of length 6 with 1 run
## Lengths: 6
## Values : 1
## Levels(7): 1 2 3 4 5 Mt Pt
## R version 4.6.1 (2026-06-24)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 26.04.1 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.32.so; LAPACK version 3.12.0
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## time zone: Etc/UTC
## tzcode source: system (glibc)
##
## attached base packages:
## [1] stats4 stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] GenomicFeatures_1.65.0 AnnotationDbi_1.75.2 Biobase_2.73.2
## [4] GenomicRanges_1.65.4 Seqinfo_1.3.2 IRanges_2.47.5
## [7] S4Vectors_0.51.10 AnnotationHub_4.3.2 BiocFileCache_3.3.0
## [10] dbplyr_2.6.0 BiocGenerics_0.59.12 generics_0.1.4
## [13] BiocStyle_2.41.0
##
## loaded via a namespace (and not attached):
## [1] KEGGREST_1.53.6 rjson_0.2.23 xfun_0.61
## [4] bslib_0.12.0 httr2_1.3.0 lattice_0.23-1
## [7] vctrs_0.7.3 tools_4.6.1 bitops_1.1-0
## [10] parallel_4.6.1 curl_8.0.0 tibble_3.3.1
## [13] RSQLite_3.53.3 blob_1.3.0 pkgconfig_2.0.3
## [16] BiocBaseUtils_1.15.1 Matrix_1.7-6 cigarillo_1.3.1
## [19] lifecycle_1.0.5 compiler_4.6.1 Rsamtools_2.29.0
## [22] Biostrings_2.81.9 codetools_0.2-20 htmltools_0.5.9
## [25] sys_3.4.3 buildtools_1.0.0 sass_0.4.10
## [28] RCurl_1.98-1.20 yaml_2.3.12 pillar_1.11.1
## [31] crayon_1.5.3 jquerylib_0.1.4 BiocParallel_1.47.0
## [34] cachem_1.1.0 tidyselect_1.2.1 digest_0.6.39
## [37] purrr_1.2.2 dplyr_1.2.1 restfulr_0.0.17
## [40] BiocVersion_3.24.0 maketools_1.3.2 grid_4.6.1
## [43] fastmap_1.2.0 cli_3.6.6 magrittr_2.0.5
## [46] XML_3.99-0.25 withr_3.0.3 filelock_1.0.3
## [49] rappdirs_0.3.4 bit64_4.8.6 rmarkdown_2.32
## [52] XVector_0.53.0 httr_1.4.9 bit_4.6.0
## [55] otel_0.2.0 png_0.1-9 memoise_2.0.1
## [58] evaluate_1.0.5 knitr_1.52 BiocIO_1.23.3
## [61] rtracklayer_1.73.0 rlang_1.3.0 glue_1.8.1
## [64] DBI_1.3.0 BiocManager_1.30.27 jsonlite_2.0.0
## [67] R6_2.6.1 GenomicAlignments_1.49.2