rafalab / bumphunter

bumphunter
15 stars 14 forks source link

Make annotateTranscripts() and matchGenes() more flexible to handle other type of gene ids. #15

Closed lcolladotor closed 7 years ago

lcolladotor commented 7 years ago

Hi,

As you can see at https://support.bioconductor.org/p/93235/#93397, we have some users interested in using TxDb objects created with Gencode v25 data instead of the UCSC ones that exist in Bioconductor. As they are written right now, matchGenes() and annotateTranscripts() assume that the gene ids are ENTREZIDs. A couple changes make these functions more flexible. I'm posting the changes in a gist https://gist.github.com/lcolladotor/a614eadf1c85ee73c0a6be9c5b83754a instead of a pull request since you might prefer to use the ... argument or do other things. The main change is https://gist.github.com/lcolladotor/a614eadf1c85ee73c0a6be9c5b83754a#file-annotatetranscripts_fix-r-L94-L97 where I leave the code pretty general since I know that these functions can be used with multiple annotation packages.

A simple diff should reveal the changes I made, but if you have questions please let me know.

Best, Leonardo

Un-evaluated code

library('GenomicFeatures')
library('rtracklayer')
library('bumphunter')
library('org.Hs.eg.db')
library('devtools')

## Get the raw data
gr <- import('ftp://ftp.ensembl.org/pub/release-81/gtf/homo_sapiens/Homo_sapiens.GRCh38.81.gtf.gz')

## Subset and add the chromosome length info
gr_small <- keepSeqlevels(gr, c('Y', 'MT'), pruning.mode = 'tidy')
hg38_chrominfo <- fetchExtendedChromInfoFromUCSC("hg38")
new_info <- hg38_chrominfo$UCSC_seqlength[match(seqlevels(gr_small),
    mapSeqlevels(hg38_chrominfo$UCSC_seqlevel, 'Ensembl'))]

## Set the chromosome lengths, genome
seqlengths(gr_small) <- new_info
genome(gr_small) <- 'hg38'

## Create the TxDb object for gencode v25 (just chrs Y and MT)
txdb <- makeTxDbFromGRanges(gr_small)

## Run annotate transcripts
ann <- annotateTranscripts(txdb, annotationPackage = 'org.Hs.eg.db')

## annotateTranscripts() assumes that the ids are from ENTREZ
ann
ann$Entrez
ann$Gene
ann$Refseq

## Current code:
# https://github.com/Bioconductor-mirror/bumphunter/blob/515c9c45a6a1b1fa03d1936fb946d8fbea184710/R/matchGenes.R#L182-L202

## Use new code with default arguments
## Code at https://gist.github.com/lcolladotor/a614eadf1c85ee73c0a6be9c5b83754a
ann2 <- annotateTranscripts_fix(txdb, annotationPackage = 'org.Hs.eg.db')
ann2
## The only change is the name of the column with the gene ids.
identical(ann$Entrez, ann2$Geneid)
identical(ann$Gene, ann2$Gene)
identical(ann$Refseq, ann2$Refseq)

## Now specify the options to be used in the mapIds()
ann3 <- annotateTranscripts_fix(txdb, annotationPackage = 'org.Hs.eg.db', mappingInfo = list('column' = 'ENTREZID', 'keytype' = 'ENSEMBL', 'multiVals' = 'first'))

ann3
identical(ann$Entrez, ann3$Geneid)
## Gene symbols are there now
ann3$Gene
## Refseq section is complicated though
ann3$Refseq[1]

## Use the new version of matchGenes() that uses 'Geneid' instead of 'Entrez'
## Code at https://gist.github.com/lcolladotor/a614eadf1c85ee73c0a6be9c5b83754a
genes <- matchGenes_fix(ann3[1:6], ann3)
genes

## Reproducibility information
Sys.time()
options(width = 120)
session_info()

Evaluated code

> library('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, cbind, colMeans, colnames, colSums, 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
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('rtracklayer')
> library('bumphunter')
Loading required package: foreach
foreach: simple, scalable parallel programming from Revolution Analytics
Use Revolution R for scalability, fault tolerance and more.
http://www.revolutionanalytics.com
Loading required package: iterators
Loading required package: locfit
locfit 1.5-9.1   2013-03-22
> library('org.Hs.eg.db')
> library('devtools')
> 
> ## Get the raw data
> gr <- import('ftp://ftp.ensembl.org/pub/release-81/gtf/homo_sapiens/Homo_sapiens.GRCh38.81.gtf.gz')
trying URL 'ftp://ftp.ensembl.org/pub/release-81/gtf/homo_sapiens/Homo_sapiens.GRCh38.81.gtf.gz'
ftp data connection made, file length 49757610 bytes
==================================================
downloaded 47.5 MB

> 
> ## Subset and add the chromosome length info
> gr_small <- keepSeqlevels(gr, c('Y', 'MT'), pruning.mode = 'tidy')
> hg38_chrominfo <- fetchExtendedChromInfoFromUCSC("hg38")
> new_info <- hg38_chrominfo$UCSC_seqlength[match(seqlevels(gr_small),
+     mapSeqlevels(hg38_chrominfo$UCSC_seqlevel, 'Ensembl'))]
> 
> ## Set the chromosome lengths, genome
> seqlengths(gr_small) <- new_info
> genome(gr_small) <- 'hg38'
> 
> ## Create the TxDb object for gencode v25 (just chrs Y and MT)
> txdb <- makeTxDbFromGRanges(gr_small)
> 
> ## Run annotate transcripts
> ann <- annotateTranscripts(txdb, annotationPackage = 'org.Hs.eg.db')
Getting TSS and TSE.
Getting CSS and CSE.
Getting exons.
Annotating genes.
> 
> ## annotateTranscripts() assumes that the ids are from ENTREZ
> ann
GRanges object with 801 ranges and 8 metadata columns:
                  seqnames               ranges strand |       CSS       CSE              Tx          Entrez  Gene Refseq    Nexons
                     <Rle>            <IRanges>  <Rle> | <integer> <integer>     <character>           <Rle> <Rle>  <Rle> <integer>
  ENST00000469599        Y [19703865, 19716695]      - |      <NA>      <NA> ENST00000469599 ENSG00000012817  <NA>   <NA>        12
  ENST00000317961        Y [19705415, 19744923]      - |  19705995  19744534 ENST00000317961 ENSG00000012817  <NA>   <NA>        27
  ENST00000541639        Y [19705417, 19744939]      - |  19705995  19744534 ENST00000541639 ENSG00000012817  <NA>   <NA>        28
  ENST00000382806        Y [19705420, 19744761]      - |  19705995  19744534 ENST00000382806 ENSG00000012817  <NA>   <NA>        26
  ENST00000492117        Y [19705425, 19722467]      - |      <NA>      <NA> ENST00000492117 ENSG00000012817  <NA>   <NA>        15
              ...      ...                  ...    ... .       ...       ...             ...             ...   ...    ...       ...
  ENST00000623558        Y [ 8695281,  8743495]      + |   8695281   8743495 ENST00000623558 ENSG00000279664  <NA>   <NA>         6
  ENST00000623198        Y [25463994, 25473714]      + |  25464006  25473624 ENST00000623198 ENSG00000280301  <NA>   <NA>         4
  ENST00000631331        Y [23936727, 23941622]      - |      <NA>      <NA> ENST00000631331 ENSG00000280961  <NA>   <NA>         3
  ENST00000629237        Y [20756164, 20781032]      + |  20756164  20781032 ENST00000629237 ENSG00000280969  <NA>   <NA>         7
  ENST00000631215        Y [15935949, 15936020]      + |      <NA>      <NA> ENST00000631215 ENSG00000281069  <NA>   <NA>         1
                                                                               Exons
                                                                       <IRangesList>
  ENST00000469599 [19703865, 19706345] [19706441, 19706863] [19707147, 19707746] ...
  ENST00000317961 [19705415, 19706345] [19706441, 19706640] [19706794, 19706863] ...
  ENST00000541639 [19705417, 19706345] [19706441, 19706640] [19706794, 19706863] ...
  ENST00000382806 [19705420, 19706345] [19706441, 19706640] [19706794, 19706863] ...
  ENST00000492117 [19705425, 19706345] [19706441, 19706863] [19707147, 19707746] ...
              ...                                                                ...
  ENST00000623558       [8695281, 8695326] [8698938, 8698990] [8698993, 8699032] ...
  ENST00000623198 [25463994, 25464038] [25464040, 25464090] [25465512, 25465661] ...
  ENST00000631331     [23936727, 23936831] [23939186, 23939320] [23941519, 23941622]
  ENST00000629237 [20756164, 20756166] [20756778, 20756855] [20759868, 20760048] ...
  ENST00000631215                                               [15935949, 15936020]
  -------
  seqinfo: 2 sequences from hg38 genome
> ann$Entrez
character-Rle of length 801 with 581 runs
  Lengths:                10                 9                 7 ...                 1                 1                 1
  Values : "ENSG00000012817" "ENSG00000067048" "ENSG00000067646" ... "ENSG00000280961" "ENSG00000280969" "ENSG00000281069"
> ann$Gene
character-Rle of length 801 with 1 run
  Lengths:  801
  Values : "NA"
> ann$Refseq
character-Rle of length 801 with 1 run
  Lengths:  801
  Values : "NA"

## Run code for annotateTranscripts_fix()
## Code at https://gist.github.com/lcolladotor/a614eadf1c85ee73c0a6be9c5b83754a

> ## Current code:
> # https://github.com/Bioconductor-mirror/bumphunter/blob/515c9c45a6a1b1fa03d1936fb946d8fbea184710/R/matchGenes.R#L182-L202
> 
> ## Use new code with default arguments
> ## Code at https://gist.github.com/lcolladotor/a614eadf1c85ee73c0a6be9c5b83754a
> ann2 <- annotateTranscripts_fix(txdb, annotationPackage = 'org.Hs.eg.db')
Getting TSS and TSE.
Getting CSS and CSE.
Getting exons.
Annotating genes.
> ann2
GRanges object with 801 ranges and 8 metadata columns:
                  seqnames               ranges strand |       CSS       CSE              Tx          Geneid  Gene Refseq    Nexons
                     <Rle>            <IRanges>  <Rle> | <integer> <integer>     <character>           <Rle> <Rle>  <Rle> <integer>
  ENST00000469599        Y [19703865, 19716695]      - |      <NA>      <NA> ENST00000469599 ENSG00000012817  <NA>   <NA>        12
  ENST00000317961        Y [19705415, 19744923]      - |  19705995  19744534 ENST00000317961 ENSG00000012817  <NA>   <NA>        27
  ENST00000541639        Y [19705417, 19744939]      - |  19705995  19744534 ENST00000541639 ENSG00000012817  <NA>   <NA>        28
  ENST00000382806        Y [19705420, 19744761]      - |  19705995  19744534 ENST00000382806 ENSG00000012817  <NA>   <NA>        26
  ENST00000492117        Y [19705425, 19722467]      - |      <NA>      <NA> ENST00000492117 ENSG00000012817  <NA>   <NA>        15
              ...      ...                  ...    ... .       ...       ...             ...             ...   ...    ...       ...
  ENST00000623558        Y [ 8695281,  8743495]      + |   8695281   8743495 ENST00000623558 ENSG00000279664  <NA>   <NA>         6
  ENST00000623198        Y [25463994, 25473714]      + |  25464006  25473624 ENST00000623198 ENSG00000280301  <NA>   <NA>         4
  ENST00000631331        Y [23936727, 23941622]      - |      <NA>      <NA> ENST00000631331 ENSG00000280961  <NA>   <NA>         3
  ENST00000629237        Y [20756164, 20781032]      + |  20756164  20781032 ENST00000629237 ENSG00000280969  <NA>   <NA>         7
  ENST00000631215        Y [15935949, 15936020]      + |      <NA>      <NA> ENST00000631215 ENSG00000281069  <NA>   <NA>         1
                                                                               Exons
                                                                       <IRangesList>
  ENST00000469599 [19703865, 19706345] [19706441, 19706863] [19707147, 19707746] ...
  ENST00000317961 [19705415, 19706345] [19706441, 19706640] [19706794, 19706863] ...
  ENST00000541639 [19705417, 19706345] [19706441, 19706640] [19706794, 19706863] ...
  ENST00000382806 [19705420, 19706345] [19706441, 19706640] [19706794, 19706863] ...
  ENST00000492117 [19705425, 19706345] [19706441, 19706863] [19707147, 19707746] ...
              ...                                                                ...
  ENST00000623558       [8695281, 8695326] [8698938, 8698990] [8698993, 8699032] ...
  ENST00000623198 [25463994, 25464038] [25464040, 25464090] [25465512, 25465661] ...
  ENST00000631331     [23936727, 23936831] [23939186, 23939320] [23941519, 23941622]
  ENST00000629237 [20756164, 20756166] [20756778, 20756855] [20759868, 20760048] ...
  ENST00000631215                                               [15935949, 15936020]
  -------
  seqinfo: 2 sequences from hg38 genome
> ## The only change is the name of the column with the gene ids.
> identical(ann$Entrez, ann2$Geneid)
[1] TRUE
> identical(ann$Gene, ann2$Gene)
[1] TRUE
> identical(ann$Refseq, ann2$Refseq)
[1] TRUE
> 
> ## Now specify the options to be used in the mapIds()
> ann3 <- annotateTranscripts_fix(txdb, annotationPackage = 'org.Hs.eg.db', mappingInfo = list('column' = 'ENTREZID', 'keytype' = 'ENSEMBL', 'multiVals' = 'first'))
Getting TSS and TSE.
Getting CSS and CSE.
Getting exons.
Annotating genes.
'select()' returned 1:many mapping between keys and columns
> 
> ann3
GRanges object with 801 ranges and 8 metadata columns:
                  seqnames               ranges strand |       CSS       CSE              Tx          Geneid   Gene
                     <Rle>            <IRanges>  <Rle> | <integer> <integer>     <character>           <Rle>  <Rle>
  ENST00000469599        Y [19703865, 19716695]      - |      <NA>      <NA> ENST00000469599 ENSG00000012817  KDM5D
  ENST00000317961        Y [19705415, 19744923]      - |  19705995  19744534 ENST00000317961 ENSG00000012817  KDM5D
  ENST00000541639        Y [19705417, 19744939]      - |  19705995  19744534 ENST00000541639 ENSG00000012817  KDM5D
  ENST00000382806        Y [19705420, 19744761]      - |  19705995  19744534 ENST00000382806 ENSG00000012817  KDM5D
  ENST00000492117        Y [19705425, 19722467]      - |      <NA>      <NA> ENST00000492117 ENSG00000012817  KDM5D
              ...      ...                  ...    ... .       ...       ...             ...             ...    ...
  ENST00000623558        Y [ 8695281,  8743495]      + |   8695281   8743495 ENST00000623558 ENSG00000279664   <NA>
  ENST00000623198        Y [25463994, 25473714]      + |  25464006  25473624 ENST00000623198 ENSG00000280301   <NA>
  ENST00000631331        Y [23936727, 23941622]      - |      <NA>      <NA> ENST00000631331 ENSG00000280961  TTTY3
  ENST00000629237        Y [20756164, 20781032]      + |  20756164  20781032 ENST00000629237 ENSG00000280969 RPS4Y2
  ENST00000631215        Y [15935949, 15936020]      + |      <NA>      <NA> ENST00000631215 ENSG00000281069   <NA>
                                                                                                                                                                                                                                                      Refseq
                                                                                                                                                                                                                                                       <Rle>
  ENST00000469599 NM_001146705 NM_001146706 NM_004653 NP_001140177 NP_001140178 NP_004644 XM_005262560 XM_005262561 XM_011531468 XP_005262617 XP_005262618 XP_011529770 XR_001756009 XR_001756010 XR_001756011 XR_001756012 XR_001756013 XR_244571 XR_430568
  ENST00000317961 NM_001146705 NM_001146706 NM_004653 NP_001140177 NP_001140178 NP_004644 XM_005262560 XM_005262561 XM_011531468 XP_005262617 XP_005262618 XP_011529770 XR_001756009 XR_001756010 XR_001756011 XR_001756012 XR_001756013 XR_244571 XR_430568
  ENST00000541639 NM_001146705 NM_001146706 NM_004653 NP_001140177 NP_001140178 NP_004644 XM_005262560 XM_005262561 XM_011531468 XP_005262617 XP_005262618 XP_011529770 XR_001756009 XR_001756010 XR_001756011 XR_001756012 XR_001756013 XR_244571 XR_430568
  ENST00000382806 NM_001146705 NM_001146706 NM_004653 NP_001140177 NP_001140178 NP_004644 XM_005262560 XM_005262561 XM_011531468 XP_005262617 XP_005262618 XP_011529770 XR_001756009 XR_001756010 XR_001756011 XR_001756012 XR_001756013 XR_244571 XR_430568
  ENST00000492117 NM_001146705 NM_001146706 NM_004653 NP_001140177 NP_001140178 NP_004644 XM_005262560 XM_005262561 XM_011531468 XP_005262617 XP_005262618 XP_011529770 XR_001756009 XR_001756010 XR_001756011 XR_001756012 XR_001756013 XR_244571 XR_430568
              ...                                                                                                                                                                                                                                        ...
  ENST00000623558                                                                                                                                                                                                                                       <NA>
  ENST00000623198                                                                                                                                                                                                                                       <NA>
  ENST00000631331                                                                                                                                                                                                                                  NR_001524
  ENST00000629237                                                                                                                                                                                                                  NM_001039567 NP_001034656
  ENST00000631215                                                                                                                                                                                                                                       <NA>
                     Nexons                                                              Exons
                  <integer>                                                      <IRangesList>
  ENST00000469599        12 [19703865, 19706345] [19706441, 19706863] [19707147, 19707746] ...
  ENST00000317961        27 [19705415, 19706345] [19706441, 19706640] [19706794, 19706863] ...
  ENST00000541639        28 [19705417, 19706345] [19706441, 19706640] [19706794, 19706863] ...
  ENST00000382806        26 [19705420, 19706345] [19706441, 19706640] [19706794, 19706863] ...
  ENST00000492117        15 [19705425, 19706345] [19706441, 19706863] [19707147, 19707746] ...
              ...       ...                                                                ...
  ENST00000623558         6       [8695281, 8695326] [8698938, 8698990] [8698993, 8699032] ...
  ENST00000623198         4 [25463994, 25464038] [25464040, 25464090] [25465512, 25465661] ...
  ENST00000631331         3     [23936727, 23936831] [23939186, 23939320] [23941519, 23941622]
  ENST00000629237         7 [20756164, 20756166] [20756778, 20756855] [20759868, 20760048] ...
  ENST00000631215         1                                               [15935949, 15936020]
  -------
  seqinfo: 2 sequences from hg38 genome
> identical(ann$Entrez, ann3$Geneid)
[1] TRUE
> ## Gene symbols are there now
> ann3$Gene
character-Rle of length 801 with 164 runs
  Lengths:             10              9              7              3 ...             46              1              1              1
  Values :        "KDM5D"        "DDX3Y"          "ZFY"        "TBL1Y" ...           "NA"        "TTTY3"       "RPS4Y2"           "NA"
> ## Refseq section is complicated though
> ann3$Refseq[1]
character-Rle of length 1 with 1 run
  Lengths:                                                                                                                          ...
  Values : "NM_001146705 NM_001146706 NM_004653 NP_001140177 NP_001140178 NP_004644 XM_005262560 XM_005262561 XM_011531468 XP_005262...
> 
> ## Use the new version of matchGenes() that uses 'Geneid' instead of 'Entrez'
> ## Code at https://gist.github.com/lcolladotor/a614eadf1c85ee73c0a6be9c5b83754a
> genes <- matchGenes_fix(ann3[1:6], ann3)
> genes
   name
1 KDM5D
2 KDM5D
3 KDM5D
4 KDM5D
5 KDM5D
6 KDM5D
                                                                                                                                                                                                                                  annotation
1 NM_001146705 NM_001146706 NM_004653 NP_001140177 NP_001140178 NP_004644 XM_005262560 XM_005262561 XM_011531468 XP_005262617 XP_005262618 XP_011529770 XR_001756009 XR_001756010 XR_001756011 XR_001756012 XR_001756013 XR_244571 XR_430568
2 NM_001146705 NM_001146706 NM_004653 NP_001140177 NP_001140178 NP_004644 XM_005262560 XM_005262561 XM_011531468 XP_005262617 XP_005262618 XP_011529770 XR_001756009 XR_001756010 XR_001756011 XR_001756012 XR_001756013 XR_244571 XR_430568
3 NM_001146705 NM_001146706 NM_004653 NP_001140177 NP_001140178 NP_004644 XM_005262560 XM_005262561 XM_011531468 XP_005262617 XP_005262618 XP_011529770 XR_001756009 XR_001756010 XR_001756011 XR_001756012 XR_001756013 XR_244571 XR_430568
4 NM_001146705 NM_001146706 NM_004653 NP_001140177 NP_001140178 NP_004644 XM_005262560 XM_005262561 XM_011531468 XP_005262617 XP_005262618 XP_011529770 XR_001756009 XR_001756010 XR_001756011 XR_001756012 XR_001756013 XR_244571 XR_430568
5 NM_001146705 NM_001146706 NM_004653 NP_001140177 NP_001140178 NP_004644 XM_005262560 XM_005262561 XM_011531468 XP_005262617 XP_005262618 XP_011529770 XR_001756009 XR_001756010 XR_001756011 XR_001756012 XR_001756013 XR_244571 XR_430568
6 NM_001146705 NM_001146706 NM_004653 NP_001140177 NP_001140178 NP_004644 XM_005262560 XM_005262561 XM_011531468 XP_005262617 XP_005262618 XP_011529770 XR_001756009 XR_001756010 XR_001756011 XR_001756012 XR_001756013 XR_244571 XR_430568
  description      region distance      subregion insideDistance exonnumber nexons            UTR strand geneL codingL          Geneid
1      covers      covers        0 covers exon(s)             NA         NA      3           <NA>      -  1212      NA ENSG00000012817
2      covers      covers        0 covers exon(s)             NA         NA     11           <NA>      - 23439   23262 ENSG00000012817
3      covers      covers        0 covers exon(s)             NA         NA     11           <NA>      - 23439   23262 ENSG00000012817
4      covers      covers        0 covers exon(s)             NA         NA     11           <NA>      - 23439   23262 ENSG00000012817
5 overlaps 3' overlaps 3'    22244 covers exon(s)              0         11     11 overlaps 3'UTR      - 23439   23262 ENSG00000012817
6      covers      covers        0 covers exon(s)             NA         NA     11           <NA>      - 23439   23262 ENSG00000012817
  subjectHits
1           9
2          10
3          10
4          10
5          10
6          10
> 
> ## Reproducibility information
> Sys.time()
[1] "2017-03-09 16:35:06 EST"
> options(width = 120)
> session_info()
Session info -----------------------------------------------------------------------------------------------------------
 setting  value                                             
 version  R Under development (unstable) (2016-10-26 r71594)
 system   x86_64, darwin13.4.0                              
 ui       AQUA                                              
 language (EN)                                              
 collate  en_US.UTF-8                                       
 tz       America/New_York                                  
 date     2017-03-09                                        

Packages ---------------------------------------------------------------------------------------------------------------
 package              * version  date       source         
 AnnotationDbi        * 1.37.3   2017-02-09 Bioconductor   
 Biobase              * 2.35.1   2017-02-23 Bioconductor   
 BiocGenerics         * 0.21.3   2017-01-12 Bioconductor   
 BiocParallel           1.9.5    2017-01-24 Bioconductor   
 biomaRt                2.31.4   2017-01-13 Bioconductor   
 Biostrings             2.43.4   2017-02-02 Bioconductor   
 bitops                 1.0-6    2013-08-17 CRAN (R 3.4.0) 
 bumphunter           * 1.15.0   2016-10-23 Bioconductor   
 codetools              0.2-15   2016-10-05 CRAN (R 3.4.0) 
 DBI                    0.6      2017-03-09 CRAN (R 3.4.0) 
 DelayedArray           0.1.7    2017-02-17 Bioconductor   
 devtools             * 1.12.0   2016-12-05 CRAN (R 3.4.0) 
 digest                 0.6.12   2017-01-27 CRAN (R 3.4.0) 
 doRNG                  1.6      2014-03-07 CRAN (R 3.4.0) 
 foreach              * 1.4.3    2015-10-13 CRAN (R 3.4.0) 
 GenomeInfoDb         * 1.11.9   2017-02-08 Bioconductor   
 GenomeInfoDbData       0.99.0   2017-02-14 Bioconductor   
 GenomicAlignments      1.11.9   2017-02-02 Bioconductor   
 GenomicFeatures      * 1.27.9   2017-02-23 Bioconductor   
 GenomicRanges        * 1.27.23  2017-02-25 Bioconductor   
 IRanges              * 2.9.18   2017-02-02 Bioconductor   
 iterators            * 1.0.8    2015-10-13 CRAN (R 3.4.0) 
 lattice                0.20-34  2016-09-06 CRAN (R 3.4.0) 
 locfit               * 1.5-9.1  2013-04-20 CRAN (R 3.4.0) 
 magrittr               1.5      2014-11-22 CRAN (R 3.4.0) 
 Matrix                 1.2-8    2017-01-20 CRAN (R 3.4.0) 
 matrixStats            0.51.0   2016-10-09 CRAN (R 3.4.0) 
 memoise                1.0.0    2016-01-29 CRAN (R 3.4.0) 
 org.Hs.eg.db         * 3.4.0    2016-11-15 Bioconductor   
 pkgmaker               0.22     2014-05-14 CRAN (R 3.4.0) 
 Rcpp                   0.12.9   2017-01-14 CRAN (R 3.4.0) 
 RCurl                  1.95-4.8 2016-03-01 CRAN (R 3.4.0) 
 registry               0.3      2015-07-08 CRAN (R 3.4.0) 
 rngtools               1.2.4    2014-03-06 CRAN (R 3.4.0) 
 Rsamtools              1.27.12  2017-01-24 Bioconductor   
 RSQLite                1.1-2    2017-01-08 CRAN (R 3.4.0) 
 rtracklayer          * 1.35.6   2017-03-01 Bioconductor   
 S4Vectors            * 0.13.15  2017-02-14 cran (@0.13.15)
 stringi                1.1.2    2016-10-01 CRAN (R 3.4.0) 
 stringr                1.2.0    2017-02-18 CRAN (R 3.4.0) 
 SummarizedExperiment   1.5.7    2017-02-23 Bioconductor   
 withr                  1.0.2    2016-06-20 CRAN (R 3.4.0) 
 XML                    3.98-1.5 2016-11-10 CRAN (R 3.4.0) 
 xtable                 1.8-2    2016-02-05 CRAN (R 3.4.0) 
 XVector                0.15.2   2017-02-02 Bioconductor   
 zlibbioc               1.21.0   2016-10-23 Bioconductor 
lcolladotor commented 7 years ago

Have you had a chance to look at this?