Contents

1 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.

2 Installation

Install the package from Bioconductor with:

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

3 Load required packages

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

4 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"

5 TxDb summary

Display the transcript database:

TxDb.Athaliana.Ensembl.TAIR10
## TxDb object:
## # Db type: TxDb
## # Supporting package: GenomicFeatures
## # Data source: Ensembl Plants release 63
## # Organism: Arabidopsis thaliana
## # Taxonomy ID: 3702
## # Genome: TAIR10
## # Nb of transcripts: 54013
## # Db created by: txdbmaker package from Bioconductor
## # Creation time: 2026-10-31 03:40:01 +0500 (Sat, 31 Oct 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

6 Sequence information

The sequence information is available through seqinfo():

seqinfo(TxDb.Athaliana.Ensembl.TAIR10)
## Seqinfo object with 7 sequences (2 circular) from TAIR10 genome:
##   seqnames seqnames seqlengths isCircular genome
##   1               1   30427671      FALSE TAIR10
##   2               2   19698289      FALSE TAIR10
##   3               3   23459830      FALSE TAIR10
##   4               4   18585056      FALSE TAIR10
##   5               5   26975502      FALSE TAIR10
##   6              Mt     366924       TRUE TAIR10
##   7              Pt     154478       TRUE TAIR10

The available sequence levels can be obtained with:

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

7 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 TAIR10 genome

8 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 TAIR10 genome

9 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 TAIR10 genome

10 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 TAIR10 genome

11 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 TAIR10 genome

12 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 TAIR10 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 TAIR10 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 TAIR10 genome
## 
## ...
## <32830 more elements>

13 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 TAIR10 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 TAIR10 genome
## 
## ...
## <54011 more elements>

14 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

15 Session information

sessionInfo()
## R version 4.6.1 (2026-06-24)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.5 LTS
## 
## Matrix products: default
## BLAS:   /home/biocbuild/bbs-3.24-bioc/R/lib/libRblas.so 
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.0  LAPACK version 3.12.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_GB              LC_COLLATE=C              
##  [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: America/New_York
## 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.3    BiocFileCache_3.3.3   
## [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.62               
##  [4] bslib_0.12.0             httr2_1.3.0              vctrs_0.7.3             
##  [7] tools_4.6.1              bitops_1.1-0             parallel_4.6.1          
## [10] curl_8.1.0               tibble_3.3.1             RSQLite_3.53.3          
## [13] blob_1.3.0               pkgconfig_2.0.3          BiocBaseUtils_1.15.1    
## [16] cigarillo_1.3.1          lifecycle_1.0.5          compiler_4.6.1          
## [19] Rsamtools_2.29.0         Biostrings_2.81.9        codetools_0.2-20        
## [22] htmltools_0.5.9          sass_0.4.10              RCurl_1.98-1.20         
## [25] yaml_2.3.12              pillar_1.11.1            crayon_1.5.3            
## [28] jquerylib_0.1.4          BiocParallel_1.47.0      cachem_1.1.0            
## [31] tidyselect_1.2.1         digest_0.6.39            purrr_1.2.2             
## [34] dplyr_1.2.1              restfulr_0.0.17          bookdown_0.48           
## [37] BiocVersion_3.24.0       fastmap_1.2.0            cli_3.6.6               
## [40] magrittr_2.0.5           XML_3.99-0.25            withr_3.0.3             
## [43] filelock_1.0.3           rappdirs_0.3.4           bit64_4.8.6             
## [46] rmarkdown_2.32           XVector_0.53.0           httr_1.4.9              
## [49] bit_4.6.0                otel_0.3.0               png_0.1-9               
## [52] memoise_2.0.1            evaluate_1.0.5           knitr_1.52              
## [55] BiocIO_1.23.3            rtracklayer_1.73.0       rlang_1.3.0             
## [58] glue_1.8.1               DBI_1.3.0                BiocManager_1.30.27     
## [61] jsonlite_2.0.0           R6_2.6.1                 GenomicAlignments_1.49.2