TxDb.Athaliana.Ensembl.TAIR10

Introduction

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.

Installation

Install the package from Bioconductor with:

BiocManager::install("TxDb.Athaliana.Ensembl.TAIR10")

Load required packages

library(AnnotationHub)
library(GenomicFeatures)
library(GenomicRanges)

Retrieve the TxDb object from AnnotationHub

The TxDb object is retrieved using its AnnotationHub record:

ah <- AnnotationHub::AnnotationHub()
TxDb.Athaliana.Ensembl.TAIR10 <- ah[["AH122287"]]

Check the class of the retrieved object:

class(TxDb.Athaliana.Ensembl.TAIR10)
## [1] "TxDb"
## attr(,"package")
## [1] "GenomicFeatures"

TxDb summary

Display the transcript database:

TxDb.Athaliana.Ensembl.TAIR10
## 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:

summary(TxDb.Athaliana.Ensembl.TAIR10)
## Length  Class   Mode 
##      1   TxDb     S4

Sequence information

The sequence information is available through seqinfo():

seqinfo(TxDb.Athaliana.Ensembl.TAIR10)
## 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:

seqlevels(TxDb.Athaliana.Ensembl.TAIR10)
## [1] "1"  "2"  "3"  "4"  "5"  "Mt" "Pt"

Gene annotations

Gene ranges can be extracted with genes():

gene_annotations <- genes(TxDb.Athaliana.Ensembl.TAIR10)
gene_annotations
## 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 annotations

Transcript ranges can be extracted with transcripts():

transcript_annotations <- transcripts(TxDb.Athaliana.Ensembl.TAIR10)
transcript_annotations
## 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 annotations

Exon ranges can be extracted with exons():

exon_annotations <- exons(TxDb.Athaliana.Ensembl.TAIR10)
exon_annotations
## 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 sequences

Coding sequence ranges can be extracted with cds():

cds_annotations <- cds(TxDb.Athaliana.Ensembl.TAIR10)
cds_annotations
## 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

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.
promoter_annotations
## 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 grouped by gene

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 grouped by transcript

Exons can be grouped by transcript with exonsBy():

exons_by_transcript <- exonsBy(
    TxDb.Athaliana.Ensembl.TAIR10,
    by = "tx"
)
exons_by_transcript
## 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>

Gene ranges

The chromosome assignments of genes can be inspected with:

head(seqnames(gene_annotations))
## factor-Rle of length 6 with 1 run
##   Lengths: 6
##   Values : 1
## Levels(7): 1 2 3 4 5 Mt Pt

Session information

sessionInfo()
## 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