utils, XML, RCurl, AnnotationDbi, progress, stringr, httr

annotate, BiocStyle, knitr, rmarkdown, testthat

In recent years a wealth of biological data has become available
        in public data repositories. Easy access to these valuable data 
        resources and firm integration with data analysis is needed for
        comprehensive bioinformatics data analysis.  biomaRt provides an
        interface to a growing collection of databases implementing the
        BioMart software suite (http://www.biomart.org). The package enables
        retrieval of large amounts of data in a uniform way without the need to
        know the underlying database schemas or write complex SQL queries. 
        The most prominent examples of BioMart databases are Ensembl, which
        provides biomaRt users direct access to a diverse set of data and enables
        a wide range of powerful online queries from gene annotation to 
        database mining.

Steffen Durinck [aut],
  Wolfgang Huber [aut],
  Sean Davis [ctb],
  Francois Pepin [ctb],
  Vince S Buffalo [ctb],
  Mike Smith [ctb, cre]

True boolean datatype (no NAs), 
  coercion from and to logicals, integers and integer subscripts; 
  fast boolean operators and fast summary statistics. 
  With 'bit' vectors you can store true binary booleans {FALSE,TRUE} at the 
  expense of 1 bit only, on a 32 bit architecture this means factor 32 less 
  RAM and ~ factor 32 more speed on boolean operations. Due to overhead of 
  R calls, actual speed gain depends on the size of the vector: expect gains 
  for vectors of size > 10000 elements. Even for one-time boolean operations 
  it can pay-off to convert to bit, the pay-off is obvious, when such 
  components are used more than once. 
  Reading from and writing to bit is approximately as fast as accessing 
  standard logicals - mostly due to R's time for memory allocation. The package 
  allows to work with pre-allocated memory for return values by calling .Call() 
  directly: when evaluating the speed of C-access with pre-allocated vector 
  memory, coping from bit to logical requires only 70% of the time for copying 
  from logical to logical; and copying from logical to bit comes at a 
  performance penalty of 150%. the package now contains further classes for 
  representing logical selections: 'bitwhich' for very skewed selections and 
  'ri' for selecting ranges of values for chunked processing. All three index 
  classes can be used for subsetting 'ff' objects (ff-2.1-0 and higher).