Libraries

library(TxDb.Hsapiens.UCSC.hg38.knownGene)
## Loading required package: GenomicFeatures
## Loading required package: BiocGenerics
## Loading required package: parallel
## 
## Attaching package: 'BiocGenerics'
## The following objects are masked from 'package:parallel':
## 
##     clusterApply, clusterApplyLB, clusterCall, clusterEvalQ,
##     clusterExport, clusterMap, parApply, parCapply, parLapply,
##     parLapplyLB, parRapply, parSapply, parSapplyLB
## The following objects are masked from 'package:stats':
## 
##     IQR, mad, sd, var, xtabs
## The following objects are masked from 'package:base':
## 
##     anyDuplicated, append, as.data.frame, basename, cbind,
##     colMeans, colnames, colSums, dirname, do.call, duplicated,
##     eval, evalq, Filter, Find, get, grep, grepl, intersect,
##     is.unsorted, lapply, lengths, Map, mapply, match, mget, order,
##     paste, pmax, pmax.int, pmin, pmin.int, Position, rank, rbind,
##     Reduce, rowMeans, rownames, rowSums, sapply, setdiff, sort,
##     table, tapply, union, unique, unsplit, which, which.max,
##     which.min
## Loading required package: S4Vectors
## Loading required package: stats4
## 
## Attaching package: 'S4Vectors'
## The following object is masked from 'package:base':
## 
##     expand.grid
## Loading required package: IRanges
## 
## Attaching package: 'IRanges'
## The following object is masked from 'package:grDevices':
## 
##     windows
## Loading required package: GenomeInfoDb
## Loading required package: GenomicRanges
## Loading required package: AnnotationDbi
## Loading required package: Biobase
## Welcome to Bioconductor
## 
##     Vignettes contain introductory material; view with
##     'browseVignettes()'. To cite Bioconductor, see
##     'citation("Biobase")', and for packages 'citation("pkgname")'.
library(GenomicFeatures)
library(AnnotationDbi)

Homo sapiens hg38 transcript database

txdb <- TxDb.Hsapiens.UCSC.hg38.knownGene
txdb
## TxDb object:
## # Db type: TxDb
## # Supporting package: GenomicFeatures
## # Data source: UCSC
## # Genome: hg38
## # Organism: Homo sapiens
## # Taxonomy ID: 9606
## # UCSC Table: knownGene
## # UCSC Track: GENCODE v24
## # Resource URL: http://genome.ucsc.edu/
## # Type of Gene ID: Entrez Gene ID
## # Full dataset: yes
## # miRBase build ID: NA
## # transcript_nrow: 197782
## # exon_nrow: 581036
## # cds_nrow: 293052
## # Db created by: GenomicFeatures package from Bioconductor
## # Creation time: 2016-09-29 13:02:09 +0000 (Thu, 29 Sep 2016)
## # GenomicFeatures version at creation time: 1.25.18
## # RSQLite version at creation time: 1.0.0
## # DBSCHEMAVERSION: 1.1
columns(txdb)
##  [1] "CDSCHROM"   "CDSEND"     "CDSID"      "CDSNAME"    "CDSSTART"  
##  [6] "CDSSTRAND"  "EXONCHROM"  "EXONEND"    "EXONID"     "EXONNAME"  
## [11] "EXONRANK"   "EXONSTART"  "EXONSTRAND" "GENEID"     "TXCHROM"   
## [16] "TXEND"      "TXID"       "TXNAME"     "TXSTART"    "TXSTRAND"  
## [21] "TXTYPE"
keytypes(txdb)
## [1] "CDSID"    "CDSNAME"  "EXONID"   "EXONNAME" "GENEID"   "TXID"    
## [7] "TXNAME"
genes(txdb) # GRanges object with 24,183 ranges
## GRanges object with 24183 ranges and 1 metadata column:
##             seqnames              ranges strand |     gene_id
##                <Rle>           <IRanges>  <Rle> | <character>
##           1    chr19   58345178-58362751      - |           1
##          10     chr8   18391245-18401218      + |          10
##         100    chr20   44619522-44651742      - |         100
##        1000    chr18   27950966-28177446      - |        1000
##   100009613    chr11   70072434-70075433      - |   100009613
##         ...      ...                 ...    ... .         ...
##        9991     chr9 112217716-112333667      - |        9991
##        9992    chr21   34364024-34371389      + |        9992
##        9993    chr22   19036282-19122454      - |        9993
##        9994     chr6   89829894-89874436      + |        9994
##        9997    chr22   50523568-50526439      - |        9997
##   -------
##   seqinfo: 455 sequences (1 circular) from hg38 genome
exons(txdb) # GRanges object with 581,036 ranges
## GRanges object with 581036 ranges and 1 metadata column:
##                    seqnames        ranges strand |   exon_id
##                       <Rle>     <IRanges>  <Rle> | <integer>
##        [1]             chr1   29554-30039      + |         1
##        [2]             chr1   30267-30667      + |         2
##        [3]             chr1   30366-30503      + |         3
##        [4]             chr1   30564-30667      + |         4
##        [5]             chr1   30976-31097      + |         5
##        ...              ...           ...    ... .       ...
##   [581032] chrUn_KI270750v1 148668-148843      + |    581032
##   [581033] chrUn_KI270752v1       144-268      + |    581033
##   [581034] chrUn_KI270752v1   21813-21944      + |    581034
##   [581035] chrUn_KI270752v1     3497-3623      - |    581035
##   [581036] chrUn_KI270752v1    9943-10067      - |    581036
##   -------
##   seqinfo: 455 sequences (1 circular) from hg38 genome
transcripts(txdb) #GRanges object with 197,782 ranges
## GRanges object with 197782 ranges and 2 metadata columns:
##                    seqnames        ranges strand |     tx_id     tx_name
##                       <Rle>     <IRanges>  <Rle> | <integer> <character>
##        [1]             chr1   29554-31097      + |         1  uc057aty.1
##        [2]             chr1   30267-31109      + |         2  uc057atz.1
##        [3]             chr1   30366-30503      + |         3  uc031tlb.1
##        [4]             chr1   69091-70008      + |         4  uc001aal.1
##        [5]             chr1 160446-161525      + |         5  uc057aum.1
##        ...              ...           ...    ... .       ...         ...
##   [197778] chrUn_KI270750v1 148668-148843      + |    197778  uc064xrp.1
##   [197779] chrUn_KI270752v1       144-268      + |    197779  uc064xrq.1
##   [197780] chrUn_KI270752v1   21813-21944      + |    197780  uc064xrt.1
##   [197781] chrUn_KI270752v1     3497-3623      - |    197781  uc064xrr.1
##   [197782] chrUn_KI270752v1    9943-10067      - |    197782  uc064xrs.1
##   -------
##   seqinfo: 455 sequences (1 circular) from hg38 genome

A sliced TxDb dataframe

keys <- keys(txdb, keytype="GENEID")
cols <- c("TXID", "TXSTART")
selected <- select(txdb, keys=keys, columns=cols, keytype="GENEID")
## 'select()' returned 1:many mapping between keys and columns
selected[1:5,]
##   GENEID   TXID  TXSTART
## 1      1 166436 58345178
## 2      1 166437 58346850
## 3      1 166438 58346854
## 4      1 166439 58346858
## 5      1 166440 58346860

Transcripts in CHRNA4 gene

hschrna4_txs <- transcriptsBy(txdb, by = "gene")[["1137"]]
hschrna4_txs # GRanges object with 7 ranges
## GRanges object with 7 ranges and 2 metadata columns:
##       seqnames            ranges strand |     tx_id     tx_name
##          <Rle>         <IRanges>  <Rle> | <integer> <character>
##   [1]    chr20 63343223-63361343      - |    170358  uc002yes.4
##   [2]    chr20 63343310-63361396      - |    170359  uc010gke.2
##   [3]    chr20 63344069-63377993      - |    170360  uc061ymb.1
##   [4]    chr20 63346594-63359699      - |    170362  uc061ymd.1
##   [5]    chr20 63346594-63361304      - |    170363  uc061yme.1
##   [6]    chr20 63346594-63361304      - |    170364  uc061ymf.1
##   [7]    chr20 63350908-63361190      - |    170366  uc061ymh.1
##   -------
##   seqinfo: 455 sequences (1 circular) from hg38 genome

Exons in CHRNA4 gene/transcrpt(s)

hschrna4_exbytx <- exonsBy(txdb, "tx", use.names=TRUE)[hschrna4_txs$tx_name]
hschrna4_exbytx
## GRangesList object of length 7:
## $uc002yes.4 
## 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]    chr20 63361090-63361343      - |    503108        <NA>         1
##   [2]    chr20 63359548-63359699      - |    503104        <NA>         2
##   [3]    chr20 63356371-63356415      - |    503102        <NA>         3
##   [4]    chr20 63355975-63356084      - |    503100        <NA>         4
##   [5]    chr20 63349653-63351027      - |    503095        <NA>         5
##   [6]    chr20 63343223-63346863      - |    503089        <NA>         6
## 
## $uc010gke.2 
## GRanges object with 7 ranges and 3 metadata columns:
##       seqnames            ranges strand | exon_id exon_name exon_rank
##   [1]    chr20 63361090-63361396      - |  503109      <NA>         1
##   [2]    chr20 63359548-63359699      - |  503104      <NA>         2
##   [3]    chr20 63356371-63356415      - |  503102      <NA>         3
##   [4]    chr20 63355975-63356084      - |  503100      <NA>         4
##   [5]    chr20 63355496-63355595      - |  503097      <NA>         5
##   [6]    chr20 63349653-63351027      - |  503095      <NA>         6
##   [7]    chr20 63343310-63346863      - |  503090      <NA>         7
## 
## $uc061ymb.1 
## GRanges object with 5 ranges and 3 metadata columns:
##       seqnames            ranges strand | exon_id exon_name exon_rank
##   [1]    chr20 63377755-63377993      - |  503117      <NA>         1
##   [2]    chr20 63375253-63375392      - |  503115      <NA>         2
##   [3]    chr20 63373881-63374532      - |  503113      <NA>         3
##   [4]    chr20 63349653-63351027      - |  503095      <NA>         4
##   [5]    chr20 63344069-63346863      - |  503091      <NA>         5
## 
## ...
## <4 more elements>
## -------
## seqinfo: 455 sequences (1 circular) from hg38 genome
elementNROWS(hschrna4_exbytx) #lists number of exons per transcripts/gene
## uc002yes.4 uc010gke.2 uc061ymb.1 uc061ymd.1 uc061yme.1 uc061ymf.1 
##          6          7          5          6          6          6 
## uc061ymh.1 
##          5
barplot(elementNROWS(hschrna4_exbytx))

Introns in CHRNA4 gene/transcript(s)

hschrna4_inbytx <- intronsByTranscript(txdb, use.names=TRUE)[hschrna4_txs$tx_name]
hschrna4_inbytx
## GRangesList object of length 7:
## $uc002yes.4 
## GRanges object with 5 ranges and 0 metadata columns:
##       seqnames            ranges strand
##          <Rle>         <IRanges>  <Rle>
##   [1]    chr20 63346864-63349652      -
##   [2]    chr20 63351028-63355974      -
##   [3]    chr20 63356085-63356370      -
##   [4]    chr20 63356416-63359547      -
##   [5]    chr20 63359700-63361089      -
## 
## $uc010gke.2 
## GRanges object with 6 ranges and 0 metadata columns:
##       seqnames            ranges strand
##   [1]    chr20 63346864-63349652      -
##   [2]    chr20 63351028-63355495      -
##   [3]    chr20 63355596-63355974      -
##   [4]    chr20 63356085-63356370      -
##   [5]    chr20 63356416-63359547      -
##   [6]    chr20 63359700-63361089      -
## 
## $uc061ymb.1 
## GRanges object with 4 ranges and 0 metadata columns:
##       seqnames            ranges strand
##   [1]    chr20 63346864-63349652      -
##   [2]    chr20 63351028-63373880      -
##   [3]    chr20 63374533-63375252      -
##   [4]    chr20 63375393-63377754      -
## 
## ...
## <4 more elements>
## -------
## seqinfo: 455 sequences (1 circular) from hg38 genome
elementNROWS(hschrna4_inbytx)
## uc002yes.4 uc010gke.2 uc061ymb.1 uc061ymd.1 uc061yme.1 uc061ymf.1 
##          5          6          4          5          5          5 
## uc061ymh.1 
##          4
barplot(elementNROWS(hschrna4_exbytx))

Extract exon and intron sequences of transcript/gene(s)

library(BSgenome.Hsapiens.UCSC.hg38)
## Loading required package: BSgenome
## Loading required package: Biostrings
## Loading required package: XVector
## 
## Attaching package: 'Biostrings'
## The following object is masked from 'package:base':
## 
##     strsplit
## Loading required package: rtracklayer
BSgenome.Hsapiens.UCSC.hg38
## Human genome:
## # organism: Homo sapiens (Human)
## # provider: UCSC
## # provider version: hg38
## # release date: Dec. 2013
## # release name: Genome Reference Consortium GRCh38
## # 455 sequences:
## #   chr1                    chr2                    chr3                   
## #   chr4                    chr5                    chr6                   
## #   chr7                    chr8                    chr9                   
## #   chr10                   chr11                   chr12                  
## #   chr13                   chr14                   chr15                  
## #   ...                     ...                     ...                    
## #   chrUn_KI270744v1        chrUn_KI270745v1        chrUn_KI270746v1       
## #   chrUn_KI270747v1        chrUn_KI270748v1        chrUn_KI270749v1       
## #   chrUn_KI270750v1        chrUn_KI270751v1        chrUn_KI270752v1       
## #   chrUn_KI270753v1        chrUn_KI270754v1        chrUn_KI270755v1       
## #   chrUn_KI270756v1        chrUn_KI270757v1                               
## # (use 'seqnames()' to see all the sequence names, use the '$' or '[['
## # operator to access a given sequence)
Hsapiens <- BSgenome.Hsapiens.UCSC.hg38
hschrna4_ex_seqs <- getSeq(Hsapiens, hschrna4_exbytx) ## extract exon sequences of CHRNA4 transcripts
hschrna4_ex_seqs
## DNAStringSetList of length 7
## [["uc002yes.4"]] AGCCCGGCGCTCCCTGCCGCGCCGCCGCCGCACCGCGCCCCACAGGAGAAGACGA...
## [["uc010gke.2"]] TCCCAGCCGGCTGAGGCGGGCAGGGCCGGGCGGGGCCGCGCCACGGAGCCCACAG...
## [["uc061ymb.1"]] GGCCCAGGGTTTGAAGCAGGTGAAAGTCTGAGCTACTTCTGCAAGTGCAGCCTTT...
## [["uc061ymd.1"]] CCAGCAGCCATGTGGAGACCCGGGCCCACGCCGAGGAGCGGCTCCTGAAGAAACT...
## [["uc061yme.1"]] CCACAGGAGAAGACGAACCGGGCCCGGCGGCCGAAGCGGCCCGCGAGGCGCGGGA...
## [["uc061ymf.1"]] CCACAGGAGAAGACGAACCGGGCCCGGCGGCCGAAGCGGCCCGCGAGGCGCGGGA...
## [["uc061ymh.1"]] CTAGAGCCCGCGAGGTGCGTGCGCCATGGAGCTAGGGGGCCCCGGAGCGCCGCGG...
hschrna4_ex_seqs[["uc002yes.4"]] # extract exon sequences of one CHRNA4 transcript
##   A DNAStringSet instance of length 6
##     width seq
## [1]   254 AGCCCGGCGCTCCCTGCCGCGCCGCCGCCGC...CTGCTGCTTCTGGGGACCGGCCTCCTGCGCG
## [2]   152 CCAGCAGCCATGTGGAGACCCGGGCCCACGC...CGGCCTGTCCATCGCTCAGCTCATTGACGTG
## [3]    45 GATGAGAAGAACCAGATGATGACCACGAACGTATGGGTGAAGCAG
## [4]   110 GAGTGGCACGACTACAAGCTGCGCTGGGACC...TCTGGCGGCCGGACATCGTCCTCTACAACAA
## [5]  1375 TGCTGACGGGGACTTCGCGGTCACCCACCTG...CCACCTGAAGGCCGAAGACACAGACTTCTCG
## [6]  3641 GTGAAGGAGGACTGGAAGTACGTGGCCATGG...AGACTTCAATGAATAAAACGCACCGTCACCA
hschrna4_in_seqs <- getSeq(Hsapiens, hschrna4_inbytx) # intron sequences of CHRNA4 gene/transcripts
hschrna4_in_seqs
## DNAStringSetList of length 7
## [["uc002yes.4"]] GTAAGTCCCGCCCATGGCTGTGTTGGGCGCCTCTGACCCAGACGGAACCGGCGGA...
## [["uc010gke.2"]] GTAAGTCCCGCCCATGGCTGTGTTGGGCGCCTCTGACCCAGACGGAACCGGCGGA...
## [["uc061ymb.1"]] GTAAGTCCCGCCCATGGCTGTGTTGGGCGCCTCTGACCCAGACGGAACCGGCGGA...
## [["uc061ymd.1"]] GTAAGTCCCGCCCATGGCTGTGTTGGGCGCCTCTGACCCAGACGGAACCGGCGGA...
## [["uc061yme.1"]] GTAAGTCCCGCCCATGGCTGTGTTGGGCGCCTCTGACCCAGACGGAACCGGCGGA...
## [["uc061ymf.1"]] GTAAGTCCCGCCCATGGCTGTGTTGGGCGCCTCTGACCCAGACGGAACCGGCGGA...
## [["uc061ymh.1"]] GTGAGTCCTCTACAGGGCCTTGGTGGGCAGGAGTGGCCAGGGCCTGCCCCTGCCC...
hschrna4_in_seqs[["uc002yes.4"]] # extract intron sequences of one isoform of CHRNA4 gene
##   A DNAStringSet instance of length 5
##     width seq
## [1]  2789 GTAAGTCCCGCCCATGGCTGTGTTGGGCGCC...CGTGCTGGAGTGACGGCGTCTGTGCTTGCAG
## [2]  4947 GTGAGTCCTCTACAACAAGTGAGTCCTCTAC...GTCTCACACCCTTCGCTCTCTTCCTGCCCAG
## [3]   286 GTGAGTGGGAGGGCACTGCCCTGCCCCACCC...CTGCAGCCTCCCCCCGCCCCACCTCATCCAG
## [4]  3132 GTAGGTGAGGGCGTGGCCATCGTGCACTGTG...CACTGGCCCCCTTCCTCTCTCGGTGCCCTAG
## [5]  1390 GTAAGTTACGGGGCGCGGGATGGGCCCCCTT...ACCTGAGCCACTGGCCTGCCTCTCCCCGCAG