basejump 0.9.13 (2019-03-17)

Minor changes

  • Updated dependencies, specificially brio and goalie.
  • Miscellaneous documentation improvements.

basejump 0.9.12 (2019-03-11)

Major changes

  • makeGRangesFromGFF: Reworked internal code, making it more modular. Added initial support for RefSeq GFF3 files. Also improved sanitization and special handling of files from FlyBase and WormBase.

Minor changes

  • plotHeatmap family: Bug fix needed for internal call on annotationCol, which should be wrapped with any to return boolean. This errors (as it should) on R 3.6, but I missed it on R 3.5.
  • Consolidating GRanges return code defined in .makeGRanges, which is run for both GFF file and ensembldb import. We’ve improved the Rle encoding steps here to work with complex GFF3 files (e.g. GENCODE).

basejump 0.9.11 (2019-02-25)

Minor changes

  • Updated transformer package reexports to include new data.table coercion methods.
  • Added additional useful compression function reexports from brio package.

basejump 0.9.10 (2019-02-17)

Minor changes

  • Working on making the current basejump code base completely backward compatible with bcbioBase v0.4.1 and bcbioRNASeq v0.2.8 release series.
  • Now reexporting goalie::bapply and additional useful pipes from magrittr package.
  • Keeping the now deprecated plotGene generic reexported, while encouring users to update their code to use plotCounts instead.
  • interestingGroups: Simplified internal assert checks, removing matchesInterestingGroups, which can become circular.

basejump 0.9.9 (2019-02-11)

Minor changes

  • Code fixes to provide backward compatibility support for R 3.4. Tested using R 3.4.1 with Bioconductor 3.6 release.
  • Needed to add unname to some assert checks for expected logical(1) return, which only happens in R 3.4 but not R 3.5.
  • uniteInterestingGroups: Improved internal assert checks and name handling.

basejump 0.9.8 (2019-02-08)

Minor changes

  • Deprecating plotGene in favor of plotCounts. This change will be reflected in future updates of packages that depend on basejump, including the bcbio R packages.
  • Split out subpackage reexports into separate files.
  • Reexporting assert from goalie package.

basejump 0.9.7 (2019-01-23)

Minor changes

  • decode and encode are properly reexported from brio.
  • Updated Travis CI and AppVeyor CI configurations.

basejump 0.9.6 (2019-01-22)

Minor changes

  • Note that S4Transformer package import has been renamed to transformer.
  • Needed to add decode call internally for some plotting functions, to ensure that run-length encoded (Rle) rowData gets handled correctly.
  • Bug fix for internal interestingGroups handling in plot functions.

Offloaded to brio

  • decode, encode. These are useful for data sanitization. Still re-exported here in basejump.

Offloaded to goalie

  • printString. This is a low-level function that is useful for setting the cause attribute in error messages. Still reexported here in basejump.


  • sanitizeRowData has been deprecated in favor of atomize.
  • sanitizeAnnotable deprecation has been updated to point to atomize.

basejump 0.9.5 (2019-01-22)

Minor changes

  • Updated basejump subpackage dependencies.
  • Needed to add decode call internally for some plotting functions, to ensure that run-length encoded (Rle) rowData gets handled correctly.
  • Bug fix for internal interestingGroups handling in plot functions.

Offloaded to brio

  • decode, encode. These are useful for data sanitization. Still re-exported here in basejump.

Offloaded to goalie

  • printString. This is a low-level function that is useful for setting the cause attribute in error messages. Still reexported here in basejump.


  • sanitizeRowData has been deprecated in favor of atomize.
  • sanitizeAnnotable deprecation has been updated to point to atomize.

basejump 0.9.4 (2019-01-12)

Minor changes

  • Consolidated reexports from basejump sub-packages into reexports.R file.
  • Miscellaneous documentation updates, improving link appearance for functions exported in other packages.

basejump 0.9.3 (2019-01-08)

Minor changes

  • Reorganized imports in DESCRIPTION file to make them more human readable. Note that basejump sub-packages are imported first, then Bioconductor packages, followed by [CRAN][] packages, and required default packages.
  • Split out NAMESPACE imports into a separate imports.R file.

basejump 0.9.2 (2019-01-07)

This release defines the initial point where basejump becomes even more modular, offloading some functions to new brio, syntactic, and S4Transformer packages.

Note that all offloaded functions will continue to be reexported in basejump. If you notice a function that is missing and not correctly re-exported, please file an issue.

Note that S4Transformer has since been renamed to transformer.

Offloaded to S4Transformer

  • as coercion methods moved to S4Transformer package. This methods define our useful interconversions between Bioconductor and tidyverse data classes, including DataFrame and tbl_df (tibble).
  • coerceS4ToList / flatFiles.

Offloaded to bb8

  • cleanSystemLibrary. This doesn’t scale well to all installations and is really only intended for personal use, so bb8 package is more appropriate.
  • Documentation functions, including parseRd, RdTags, saveRdExamples, and tabular are outside the scope of basejump.

Offloaded to brio

  • basenameSansExt.
  • dots.
  • export.
  • import.
  • initDir.
  • loadData.
  • localOrRemoteFile.
  • pasteURL.
  • realpath.
  • sanitizeColData.
  • sanitizeRowData.
  • sanitizeSampleData.
  • saveData.
  • transmit.
  • writeCounts.

Offloaded to goalie

  • matchArgsToDoCall.
  • MethodDefinition.
  • standardizeCall.

Minor changes

  • Added nullOK support to goalie assert checks, where applicable.

basejump 0.9.1 (2018-12-22)

This release defines the initial point where basejump begins to import bioverbs.

Major changes

  • Now importing generics using our bioverbs S4 generic package. All generics previously defined in basejump will continue to be reexported, to maintain backward compatibility for reverse dependencies (revdeps).

Minor changes

  • aggregateCellsToSamples: Split out S4 method to a separate file. Previously was defined in aggregate-methods.R.
  • Reorganized collapse family of functions. Refer to changes in collapse-methods.R, which is now split out to collaseToString-methods.R.
  • Split out the markdown family of functions back out into separate files.
  • matchesGene2Symbol, matchesInterestingGroups: Reworked internal code and moved to separate files. No longer relies upon makeTestFunction from [checkmate][] package.


  • Switched documentation titles to sentence case from title case. It’s generally more readable.

basejump 0.9.0 (2018-12-12)

I bumped the release series from v0.8 to v0.9 because this represents a significant change to the internal codebase, where I have now switched to using my new goalie assert check engine from assertive.

New functions

  • decode: Decode S4 run-length encoding (Rle).
  • encode: Apply S4 run-length encoding (Rle).
  • geneNames: Convenience function that returns gene names (symbols) mapped to the stable, but not human-friendly gene identifiers.
  • matchesGene2Symbol, matchesInterestingGroups: New functions designed to match corresponding Gene2Symbol objects or interestingGroups.
  • pasteURL: Convenience function that generates URL strings.
  • sanitizeColData: rework of previous sanitizeSampleData approach.

Major changes

  • Now using goalie package instead of assertive for internal assert checks. The new goalie::assert function is more flexible in many cases. Similarly, goalie::validate is now being used in place of assertthat::validate_that.
  • plotHeatmap now calculates the z-score normalization internally, rather than relying upon the codebase inside [pheatmap][].
  • export: Improved SummarizedExperiment method to also write Gene2Symbol and Ensembl2Entrez mappings to disk, when defined. The human-friendly output formal has been renamed from human to humanize, to reflect an action (verb). This corresponds better to our humanize generic function. Also reworked some internal code that handles output of colData and rowData to disk.
  • makeGRangesFromEnsembl: Switched to using S4 run-length encoding (Rle) in our metadata column (mcols) return. This functionality matches the conventions used by GenomicRanges in the GRanges return, and reduces the memory footprint of very large annotation objects.

Minor changes

  • Note that some internal instances of has_length aren’t quite strict enough. Switch to using length(x) > 0L or improved hasLength assert check defined in the goalie package.
  • geneSynonyms: Switched to using new pasteURL function internally instead of using paste with / separator.
  • HGNC2Ensembl generator: switch to using pasteURL internally.
  • loadData, and other related load family functions: simplified internal code using our new goalie asserts.


  • Removed assertFormalGene2symbol from deprecations.


  • Improved documentation style throughout the package, switching from the usage of scalar types like string to character(1), and boolean to logical(1). This better matches the actual data structure in R. Some other packages like [checkmate][] also use this convention, which I think is more readable than my previous approach.

basejump 0.8.8-alpha (2018-12-03)

New functions

  • deg: Utility function to quickly obtain differentially expressed gene (DEG) identifiers as a character vector.

Major changes

  • plotHeatmap: Now defining row scaling internally, rather than relying on the functionality defined in pheatmap.

basejump 0.8.7-alpha (2018-12-01)

New functions

  • humanize. New generic that enables easy conversion to human-friendly column and/or row names. Useful for CSV file export in particular.

Minor changes

  • export: Added humanize argument support.
  • Improved grep pattern matching inside makeNames functions (e.g. .sanitizeAcronyms).
  • sampleData: Improved blacklist pattern matching against Seurat objects for SingleCellExperiment method.

basejump 0.8.6-alpha (2018-11-30)

Minor changes

  • Now importing hasUniqueCols from goalie. Switched from previous approach using areSamplesUnique.
  • Documentation improvement for genomeBuild, used in makeGRanges functions.
  • Miscellaneous documentation improvements to pass build checks.

basejump 0.8.5-alpha (2018-11-29)

New functions

  • relevelRowRanges, relevelColData.


  • markdownPlotlist. Renamed to markdownPlots.

Minor changes

  • autopadZeros: Improved internal code to keep track of names for character method. Also added method support for SummarizedExperiment, which works on the column names (e.g. sample names) only by default.
  • Ensembl2Entrez: Simplify validity check to require integer in entrezID column. Also reworked and improved internal code that supports run-length encoding (Rle) using decode.
  • export: Improved documentation for name argument.
  • makeGRangesFromEnsembl: Improved messages to user.
  • plotCountsPerBiotype: Improved error messages for when the biotype isn’t defined.
  • plotPCA: Add support for unique sample detection with areSamplesUnique, similar to the approach used in the bcbioRNASeq quality control R Markdown.
  • sampleNames: Simplified sampleName extraction, using [[ internally.
  • Miscellaneous documentation fixes.
  • Updated unit test for sanitizeRowData.

basejump 0.8.4-alpha (2018-11-28)

New functions

  • autopadZeros. Useful for padding zeros inside of a character vector.
  • basenameSansExt. Quickly get the basename without the file extension for desired file path(s). Surprisingly, this isn’t defined in the tools package so I wrote my own.
  • cleanSystemLibrary. I ran into some shared library configuration issues on the Azure infrastructure, so this utility function is useful for checking wheter an R installation has a clean library.
  • plotGenderMarkers: Migrated the SummarizedExperiment method from bcbioRNASeq package.

Minor changes

  • Split out call functions defined in calls.R into separate R files. Refer to dots, for example.
  • Split out environment.R into separate R files. See detectHPC for example.
  • Miscellaneous documentation improvements.

basejump 0.8.3-alpha (2018-11-25)

Minor changes

  • Improved usage of assertthat::validate_that in S4 class validity checks. Removed former approach using internal .valid function.
  • Temporarily soft deprecated some functions that will be formally deprecated in a future release. See deprecated.R file.
  • interestingGroups doesn’t attempt validity check using validObject by default, which can be enabled instead using check = TRUE.
  • sampleData: Tightened up internal assert checks.
  • PANTHER: Minor tweaks to internal variable names inside .splitTerms.
  • transmit: Improved messages. Temporarily disabled working example, since it consistently fails on Travis CI.

basejump 0.8.2-alpha (2018-11-19)

Major changes

Migrating some additional base code that can be dispatched on either SummarizedExperiment or SingleCellExperiment from the bcbio R packages. We’re going to split out some of the single-cell RNA-seq functionality into separate packages, since a lot of my work moving forward deals with the 10X Genomics Cell Ranger platform, rather than the bcbio-supported inDrops platform.

In particular:

  • barcodeRanksPerSample.
  • filterCells.
  • plotBarcodeRanks.
  • plotCellCounts.
  • plotGenesPerCell.
  • plotMitoRatio.
  • plotMitoVsCoding.
  • plotNovelty.
  • plotReadsPerCell.
  • plotUMIsPerCell.
  • plotUMIsVsGenes.

Minor changes

  • Migrated some plotHeatmap and plotPCA code from bcbio R packages.
  • Added new formalsList global variable, which stashes getOption defaults used in some functions, namely the save/load functions and some plotting functions.
  • Switched to using formalsList along with formals declaration internally to make the parameters more consistent across functions.
  • Miscellaneous fixes to working examples and documentation.
  • Split out sanitization functions into separate R files (e.g. removeNA).

basejump 0.8.1-alpha (2018-11-15)

Major changes

The split-out sub-package approach isn’t working quite right, so the code base has been consolidated back into a single basejump package. Development toward splitting the package will continue, but a conceptual re-imagining of how to organize the functions is needed.

basejump 0.8.0-alpha (2018-11-11)

Major changes

This release is the beginning of an attempt to rework the basejump codebase a bit and make the package easier to unit test on Travis CI. bcbio R packages will be pinned to v0.7.2 during this development period.

Here we are working to split out the functionality of basejump into several, smaller sub-packages:

  • basejump.annotations
  • basejump.assertions
  • basejump.classes
  • basejump.coercion
  • basejump.developer
  • basejump.experiment
  • basejump.generics
  • basejump.globals
  • basejump.markdown
  • basejump.plots
  • basejump.sanitization

basejump 0.7.2 (2018-08-29)

New functions

  • assertAllAreURL.
  • assertAllAreValidNames.
  • validNames.

Major changes

  • Added a draft vignette explaining the functions available in the package.
  • gene2symbol, makeGene2symbolFromEnsembl, and makeGene2symbolFromGFF functions now support the unique argument, which returns sanitized values in the geneName column, ensuring there are no duplicates. This is enabled by default (recommended) but can be disabled using unique = FALSE. This functionality was added to ensure consistent gene name handling in single-cell RNA-seq analyses.
  • saveData now supports and global options, so the desired file type (e.g. RDS instead of RDA) and compression (e.g. xz instead of gzip) can be easily specified for an entire project.

Minor changes

  • sampleNames now supports assignment for SummarizedExperiment method.
  • Now exporting lanePattern regular expression pattern as a global, which was previously defined in the bcbioBase package.
  • Bug fix for as coercion method support. Need to ensure exportMethods(coerce) is included in NAMESPACE file, otherwise tibble coercion using as(x, "tbl_df") won’t work when called from an Rscript without the package library loaded. Thanks @roryk for noticing this.
  • Updated gene2symbol generic to use ..., since we’ve added the unique = TRUE argument in this release.
  • annotable: Moved to makeGRanges.R file, and improved the internal code to export supported formals also used in makeGRangesFromEnsembl. The function should work exactly the same as previous releases, but now with clearer supported arguments in the documentation.
  • Skipping code coverage for cleanSystemLibrary, since Travis CI installs packages into the system library, and causes this check to return FALSE.
  • Consistently using as(from, "tbl_df") for internal tibble coercion in all functions.
  • geneSynonyms and panther: organism argument matching no longer suggests a default. The current list of supported organisms is in the documentation, and described in the internal match.arg call.
  • All SummarizedExperiment methods use validObject validity checks, where applicable.
  • Consolidated documentation for all makeGRanges, makeGene2symbol, and makeTx2gene functions.
  • Heatmap functions: simplified the internal code responsible for defining annotationCol and annotationColors automatically.
  • sampleData: Made validity check stricter, requiring sampleName column to be defined, otherwise the function will intentionally error.
  • Now using formals internall to keep ggplot2 theme formals consistent.
  • Updated example data scripts and resaved internal data.
  • Updated contribution guidelines in file.

basejump 0.7.1 (2018-08-18)

New functions

  • cleanSystemLibrary: Utility function to check whether a user has installed packages into the R system library. Refer to .libPaths documentation for more information on library paths.

Major changes

  • Now using build instead of genomeBuild for Ensembl annotation functions. The genomeBuild argument still works but now will inform the user about the change.

Minor changes

  • Migrated prepareTemplate from bcbioBase package. Simplifed this function to copy all files inside extdata/rmarkdown/shared within a specified package. Currently in use for bcbioRNASeq, bcbioSingleCell, and the new pointillism clustering package.
  • Made Ensembl release matching stricter, based on the metadata columns.

basejump 0.7.0 (2018-08-07)

In this release, we are migrating some of the S4 generics previously exported in the bcbioBase package. We are consolidating these functions here for simplicity and stability.

New functions

  • makeSummarizedExperiment: Renamed prepareSummarizedExperiment, previously exported in the bcbioBase package. We are using the make prefix here for consistency (see other gene annotation functions).
  • Migrated S4 generics and methods from bcbioBase: flatFiles, metrics, plotCorrleationHeatmap, plotGene, plotHeatmap, plotQC, and plotQuantileHeatmap.

Major changes

  • Now using curl::has_internet internally to check for Internet connection. This applies to the annotation functions that query web databases.
  • Added coercion method support for converting a SummarizedExperiment to an unstructured list. This is the method used internally for flatFiles.

basejump 0.6.4 (2018-08-03)

New functions

  • matchInterestingGroups: New developer function to automatically handle interestingGroups argument used across various plotting functions and in the bcbio infrastructure packges.

basejump 0.6.3 (2018-08-01)

Minor changes

  • Migrated separatorBar and updateMessage global export from bcbioBase. Improved separatorBar appeareance to automatically scale to current session width, using getOption("width").

basejump 0.6.2 (2018-07-31)

New functions

  • convertSymbolsToGenes: provides SummarizedExperiment method support for converting objects containing gene symbols (“geneName”) as rownames back to gene identifiers (“geneID”).
  • eggnog: quickly download current annotations from EggNOG database. Useful for annotating gene-to-protein matches; currently in use with the brightworm RNAi screening package, which contains WormBase gene ID and EggNOG ID annotations.

Major changes

  • Now suggesting BiocManager instead of BiocInstaller for installation.
  • broadClass now supports GRanges and SummarizedExperiment. Support for data.frame and/or DataFrame class objects has been removed.

Minor changes

  • convertGenesToSymbols and convertTranscriptsToGenes now have organism and gene2symbol arguments set NULL by default.
  • Upgraded to roxygen2 v6.1 for documentation, which improves handling of aliases in the Rd manual files.
  • Added dplyr::pull to reexported functions.
  • Improved package documentation by declaring the supported class(es) for each function argument.
  • Moved foldChangeToLogRatio and logRatioToFoldChange constructors into numeric method declarations.
  • Simplified internal code for gene2symbol SummarizedExperiment method.
  • toStringUnique now uses x instead of atomic as primary argument.

basejump 0.6.1 (2018-07-21)

Minor changes

  • Bug fix for convertGenesToSymbols method for SummarizedExperiment. Previously, if geneName column was a factor, this function would error. This issue has been fixed by ensuring that the symbols provided in geneName are coerced to a character vector.
  • Improved conda installation instructions.

basejump 0.6.0 (2018-07-17)

Major changes

  • Now importing SummarizedExperiment package and providing basic method support for generics that were previously used in the bcbioBase package.
  • Improved GFFv3 handling in makeGRangesFromGFF and other GFF utility functions, including makeGene2symbolFromGFF and makeTx2geneFromGFF. Note that makeGRangesFromGFF now returns additional metadata columns accessible with S4Vectors::mcols, and that these columns are now sorted alphabetically.

Migrated functions

Previously, these functions were exported in the bcbioBase package, but they provide non-bcbio-specific functionality, and should be included here in the basejump package instead:

  • assertFormalInterestingGroups.
  • gene2symbol.
  • interestingGroups, uniteInterestingGroups.
  • sampleData, sanitizeSampleData.
  • sampleNames.
  • selectSamples.

Providing basic SummarizedExperiment class method support for counts.

Minor changes

  • geometricMean generic was not exported correctly.

basejump 0.5.11 (2018-07-09)

Minor changes

  • Now requiring ggplot2 v3.0 internally.
  • theme_midnight and theme_paperwhite now extend ggplot2::theme_linedraw, improving the consistency between these themes.
  • Example data is now consistenly formatted using snake case: rnaseq_counts and single_cell_counts, instead of the previous camel case conventions: rnaseqCounts, singleCellCounts.
  • Camel variants of the ggplot themes are now deprecated.
  • Updated internal gene synonyms data from NIH.

basejump 0.5.10 (2018-06-28)

Minor changes

  • Removed makeNames argument from readFileByExtension function. Use the makeNames family of functions manually after data import instead. This helps avoid unwanted sanitization of data.
  • Simplified assert checks for internal load function.
  • Improved code coverage.
  • AppVeyor CI updates to work with Bioconductor 3.8 devel.

basejump 0.5.9 (2018-06-12)

Minor changes

  • Markdown function consistency improvements. Now all relevant Markdown functions use text as the primary argument, instead of object.

basejump 0.5.8 (2018-06-05)

Minor changes

  • makeGRangesFromEnsembl now supports remapping of UCSC genome build to Ensembl. However, this isn’t recommended, and will warn the user.
  • convertUCSCBuildToEnsembl now returns NULL instead of erroring on genome build match failure.
  • stripTranscriptVersions now matches “.”, “-”, and “_” version delimiters.
  • Made unused dynamicPlotlist function defunct.
  • Consider deprecating assertIsCharacterOrNULL and assertIsDataFrameOrNULL in a future release.

Infrastructure changes

  • Reenable Travis CI blocklist, excluding develop branch from checks.
  • Reorganized documentation of deprecated and defunct functions.

basejump 0.5.7 (2018-05-24)

Minor changes

  • Tweaked gray color accents for theme_midnight and theme_paperwhite.

basejump 0.5.6 (2018-05-19)

Minor changes

  • Fixed NAMESPACE issue with GenomeInfoDb::seqnames.
  • Improved readGFF working example to reflect switch to GRanges return.
  • Added macOS bioc-release image to Travis CI build checks.

basejump 0.5.5 (2018-05-15)

Major changes

  • readGFF now uses rtracklayer::import internally to return GFF file as a GRanges object instead of a data.frame.

Minor changes

  • assertIsGFF and parseGFFAttributes functions are now defunct.
  • Simplified internal GFF handling code for makeGRangesFromGFF, makeGene2symbolFromGFF, and makeTx2geneFromGFF.

basejump 0.5.4 (2018-05-08)

basejump 0.5.3 (2018-04-30)

Minor changes

  • Improved internal S4 method code for fixNA and removeNA.
  • Tweaked gray accent colors in theme_midnight and theme_paperwhite. Now using British spelling internally for ggplot code.
  • Improved strip.background for theme_paperwhite, removing the black box around the labels when facet wrapping is enabled.

basejump 0.5.2 (2018-04-26)

Minor changes

  • Improved documentation for assert check functions.
  • Deprecated geomean in favor of geometricMean.
  • Simplified internal code for grepString.
  • Added message during hgnc2gene call.
  • Miscellaneous documentation fixes.
  • Moved internal constructors into the S4 method definitions, where applicable.
  • Simplified default parameter definition for panther(organism = "XXX").
  • Improved code coverage, using nocov where appropriate.

basejump 0.5.1 (2018-04-16)

Minor changes

  • emptyRanges: Now using match.arg internally to capture seqname argument.
  • Removed legacy .assignCamelArgs and .assignCamelFormals internal functions.
  • Improved internal handling of XLSX files in localOrRemoteFile.

basejump 0.5.0 (2018-04-13)

New functions

  • emptyRanges enables easy creation of placeholder ranges for GRanges objects, where transgene and FASTA spike-ins are needed.
  • hgnc2gene enables easy mapping of HGNC to Ensembl gene identifiers.
  • mgi2gene enables easy mapping of MGI to Ensembl gene identifiers.
  • panther function enables easy querying of the PANTHER website. Human, mouse, nematode worm, and fruit fly are currently supported. The specific PANTHER release (e.g. 13) can be declared using the release argument. Otherwise, the function will return the most recent annotations from the PANTHER website.
  • Added isURL check function.
  • readJSON adds support for JSON files. Like the other read functions, it supports both local files and remote URLs.

ggplot2 themes

  • theme_midnight and theme_paperwhite provide minimal, high contrast ggplot2 themes with bold sans serif labels.

Major changes

  • loadData now supports .rda, .rds, and .RData files. The function will error by design if multiple data extensions are detected inside the directory specified with the dir argument.

Minor changes

  • Consolidated assert check function code.
  • Moved assertive imports to basejump-package.R file.
  • Consolidated globals inside package to globals.R file.
  • Removed internal .biocLite function. Now using requireNamespace instead, without attempting to install automatically.
  • Added internal support for safe loading RDS files.
  • Switched back to using message, warning, and stop instead of the rlang equivalents.
  • Improved internal method declaration using getMethod where applicable.
  • multiassignAsEnvir is now recommended in place of multiassignAsNewEnvir.
  • readFileByExtension will now attempt to use the rio package for file extensions that are not natively supported.
  • writeCounts now uses mapply internally.
  • Migrated assertFormalAnnotationCol to bcbioBase package.

basejump 0.4.0 (2018-03-22)

Major changes

  • Introducing new functions for the acquistion of gene and transcript annotations from Ensembl: ensembl, genes, and transcripts. These functions allow the return of GRanges, DataFrame, and data.frame class objects from AnnotationHub using ensembldb.
  • Improved internal broadClass definition code to match against chromosome from Ensembl if available.
  • loadDataAsName now works with unquoted names, improving consistency with loadData (non-standard evaluation).

Minor changes

  • Added new convertUCSCBuildToEnsembl function, for easy remapping of UCSC to Ensembl genome build names (e.g. hg38 to GRCh38).
  • Migrated matrix methods for plotCorrelationHeatmap here from bcbioRNASeq, for improved consistency with other heatmap functions.
  • Exporting makeNames variant of base::make.names that sanitizes using underscores (“_“) rather than dots (”.“).
  • Converted readYAML from a generic to standard function.
  • Added support for AppVeyor CI code testing on Windows.
  • Made Travis CI build checks stricter, adding support for BiocCheck.
  • Added new assert checks: assertAreGeneAnnotations, assertAreTranscriptAnnotations, isAnImplicitInteger.
  • Simplified working examples for assert checks to just show successes.


  • annotable function has been deprecated in favor of the new ensembl function.
  • checkAnnotable deprecated in favor of assertIsAnnotable.
  • checkGene2symbol deprecated in favor of assertIsGene2symbol.
  • checkTx2gene deprecated in favor of assertIsTx2gene.
  • assertFormalColorFunction deprecated in favor of assertIsHexColorFunctionOrNULL.
  • initializeDir deprecated in favor of initializeDirectory.
  • Defunct: summarizeRows, wash, packageSE, prepareSE, metadataTable, comp, revcomp, symbol2gene.

basejump 0.3.1 (2018-02-19)

  • Now exporting all assert checks in camel case instead of snake case, to match consistency in the rest of the package.
  • Added sanitizeColData function.
  • Added assertAllAreNonExisting function.
  • Now exporting midnightTheme as a theme_midnight alias to match the syntax in the ggplot2 package.
  • Added working examples and code coverage for all assert check functions.
  • Simplified the internal collapse code for annotable to simply work on the Entrez identifier column (entrez). If a manually passed in data frame still has duplicates, the function will now abort instead of attempting to use collapseToString.
  • Added ggplot2 color palette assert checks: assertColorScaleContinuousOrNULL, assertColorScaleDiscreteOrNULL, assertFillScaleContinuousOrNULL, assertFillScaleDiscreteOrNULL.

basejump 0.3.0 (2018-02-16)

  • Switch to using assertive internally for assert checks.
  • Now exporting these assert check functions: assert_formal_annotation_col, assert_formal_color_function, assert_formal_compress, assert_formal_gene2symbol, assert_formal_header_level, assert_has_rownames, assert_is_a_number_or_null, assert_is_a_string_or_null, assert_is_an_implicit_integer, assert_is_an_implicit_integer_or_null assert_is_an_integer_or_null, assert_is_annotable, assert_is_character_or_null, assert_is_data.frame_or_null, assert_is_gene2symbol, assert_is_implicit_integer, assert_is_implicit_integer_or_null, assert_is_tx2gene, has_rownames, initializeDirectory, is_implicit_integer.
  • Renamed md* functions to markdown*.

basejump 0.2.1 (2018-02-07)

  • Added convertGenesToSymbols and convertTranscriptsToGenes functions. Previously some of this functionality was contained within the gene2symbol and tx2gene generics for the character method. This behavior was inconsistent with gene2symbol and tx2gene usage in the bcbio R packages, so I decided to split these out into separate functions. Now gene2symbol and tx2gene work consistently with the annotable function to return gene-to-symbol and transcript-to-gene identifier mappings in a data.frame.
  • markdownHeader, markdownList, and markdownPlotlist are now exported as S4 generics. The md* function variants are now exported as aliases.
  • geomean has been renamed to geometricMean.
  • Miscellaneous improvements to error messages and warnings.

basejump 0.2.0 (2018-01-28)

  • Offloaded internal bcbio-specific code to new package named bcbioBase. Consequently, this makes the basejump package leaner, meaner, and easier to manage. The following functions are now exported in that package: bcbio, checkInterestingGroups, flatFiles, interestingGroups, metrics, plotDot, plotGene, plotQC, plotViolin, prepareSummarizedExperiment, prepareTemplate, readDataVersions, readLogFile, readProgramVersions, readSampleMetadataFile, sampleMetadata, sampleYAML, sampleYAMLMetadata, sampleYAMLMetrics, and selectSamples. These functions are now deprecated here in basejump (see deprecated.R file for more information).
  • comp and revcomp have been deprecated in favor of complement and reverseComplement from the Biostrings package.
  • Internally, errors, messages, and warnings now use methods from the rlang package: abort, inform, and warn, in place of stop, message, and warning, respectively.
  • Improved error handing for missing files in loadData. Additionally, the file name must match the internal name in the RData file, otherwise loadData will warn the user. This is more strict than the default behavior of base::load, but helps prevent accidental overwrite in the current working environment.
  • localOrRemoteFile, previously an internal function, is now exported.
  • annotable now uses internal GRCh37 annotations from the annotables package, which is saved in the extdata/ directory internally. Previously, these genome annotations were accessed from lazy loaded data saved in the data/ directory of the package repository.
  • annotables now checks for all packages attached by ensembldb and AnnotationHub and forces detachment at the end of the function call. Otherwise, this can result in the unwanted effect of ensembldb masking other user-loaded functions, such as the tidyverse suite (e.g. dplyr::select).
  • Consistently reformatted code indents to be a multple of 4 spaces, as recommended by Bioconductor.
  • camel now handles delimited numbers a little differently. Previously, delimiters in between numbers (e.g. the commas in “1,000,000”) were stripped. Sometimes this can result in confusing names. For example, if we have a column formatted in dotted case containing a decimal (e.g. “resolution.1.6”), the decimal would be stripped (e.g. “resolution16” in camel). Now, we sanitize a numeric delimiter as a lower case “x” character (e.g. “resolution1x6”). This ensures that numbers containing decimals remain semantically meaningful when sanitized with camel.
  • Internally, gsub (and grepl) calls have been simplified to use the default order of “pattern, replacement, x”.
  • Internally, all implicit integers have been converted to explicit integers, where applicable.

basejump 0.1.10 (2017-12-20)

  • Bug fix for multiplexed sample input into readSampleMetadataFile. We were detecting the presence of index column but should instead check against sequence column.
  • Added dynamicPlotlist and mdPlotlist plotting utilities.
  • Added uniqueSymbols parameter to annotable function.

basejump 0.1.9 (2017-12-18)

  • Added plotHeatmap functionality.
  • Migrated tpm generic from bcbioRNASeq, for future use in bcbioSingleCell.
  • Added matrix method support for plotHeatmap.
  • Added matrix method support for plotQuantileHeatmap, which works similarly as plotHeatmap.

basejump 0.1.8 (2017-12-14)

  • Improved matrix and dgCMatrix method support in aggregateReplicates and aggregateFeatures functions. Both of these functions now use a consistent groupings parameter, which uses a named factor to define the mappings of either samples (columns) for aggregateReplicates or genes/transcripts (rows) for aggregateFeatures.
  • Update for makeNames sanitization functions. Now they will work on names(x) for vectors by default.
  • Improved detectOrganism to match against “H. sapiens”, etc.
  • Added internal GRCh37 transcript to gene mapping.
  • Improved organism matching to detect “Homo_sapiens” and “H. sapiens”.
  • Factors are now supported in the makeNames utilities: camel, dotted, snake, and upperCamel.
  • Improved handling of NA values from LibreOffice and Microsoft Excel output in readFileByExtension. This function now sets "", NA, and #N/A strings as NA correctly.

basejump 0.1.7 (2017-12-11)

  • Renamed fc2lr to foldChangeToLogRatio and lr2fc and logRatioToFoldChange.
  • Moved plotDot and plotViolin generics here from bcbioSingleCell.
  • Added internal GRCh37 gene annotations.

basejump 0.1.6 (2017-12-06)

  • Moved microplate code from the wormbase package here, since it’s of general interest.

basejump 0.1.5 (2017-12-05)

  • Added checkAnnotable, checkGene2symbol, checkTx2gene, and sanitizeAnnotable utility functions that will be used in the bcbio R packages.

basejump 0.1.4 (2017-12-04)

  • Added midnightTheme ggplot2 theme. Originally this was defined as darkTheme in the bcbioSingleCell package, but can be useful for other plots and has been moved here for general bioinformatics usage. The theme now uses ggplot2::theme_minimal as the base, with some color tweaks, namely dark gray axes without white axis lines.
  • Improve NAMESPACE imports to include stats::formula and utils::capture.output.

basejump 0.1.3 (2017-12-01)

  • loadData and loadDataAsName now default to replace = TRUE. If an object with the same name exists in the destination environment, then a warning is generated.
  • collapseToString only attempts to dynamically return the original object class on objects that aren’t class data.frame. I updated this code to behave more nicely with grouped tibbles (grouped_df), which are a virtual class of data.frame and therefore can’t be coerced using as(object, "grouped_df").
  • DNA sequence utility functions comp and revcomp now return NULL for integers and numerics.
  • For prepareSummarizedExperiment, added support for dropping NULL objects in assays list. This is useful for handling output from bcbioRNASeq when transformLimit is reached. In this case, the rlog and vst matrices aren’t generated and set NULL in the assays list. Using Filter(Negate(is.null), assays) we can drop these NULL objects and prevent a downstream dimension mismatch in the SummarizedExperiment::SummarizedExperiment call.
  • Improved support for multiplexed files in readSampleMetadataFile. This now checks for a sequence column containing ACGT nucleotides. When those are detected, the revcomp column is generated. Otherwise this step is skipped. This is useful for handling multiplexed sample metadata from 10X Genomics Cell Ranger single-cell RNA-seq samples.
  • Updated annotable function to include nested Entrez identifiers in the entrez column. This is useful for downstream functional analysis.

basejump 0.1.2 (2017-11-30)

  • Added bcbio plotQC generic.
  • Added back toStringUnique code, which is still in use in the wormbase package.
  • Added deprecations for summarizeRows (now collapseToString) and wash functions.
  • Updated installation method to include manual installation of ensembldb. Otherwise, basejump installation fails due to GenomeInfoDb and GenomeInfoDbData not getting installed completely.
  • Now suggesting that the user installs suggested packages in the README.
  • Updated PANTHER annotation scripts.
  • Bug fix for detectOrganism. Now allowing NULL return for unsupported organism, with a warning.

basejump 0.1.1 (2017-11-11)

  • Added overwrite support for saveData. Now will skip on existing files when overwrite = FALSE.
  • Bug fix for readDataVersions, which shouldn’t have the column types defined, using col_types = "ccT".
  • Improved key value pair method for loadDataAsName. Now rather than using a named character vector for the mappings argument, the user can simply pass the key value pairs in as dots. For example, newName1 = "oldName1", newName2 = "oldName2". The legacy mappings method will still work, as long as the dots argument is a length of 1.
  • Ensembl release version now defaults to NULL instead of current for annotable, gene2symbol, symbol2gene and tx2gene functions.
  • Allow rowData to be left unset in prepareSummarizedExperiment. This is useful for setting up objects that don’t contain gene annotations.
  • Removed sample selection by pattern matching (pattern, patternCol arguments) in readSampleMetadata. This feature wasn’t fully baked and doesn’t offer enough functionality to the user.

basejump 0.1.0 (2017-10-23)

  • Bump version to match bcbioRNASeq package.
  • Improved unit testing coverage of prepareSummarizedExperiment.
  • Added quiet mode support to functions that output messages, where applicable.
  • Consolidated roxygen2 function imports to basejump-package.R file.
  • Deprecated sampleDirs generic.
  • Improved organism detection in detectOrganism and added support for chicken genome.
  • Clarified warning messages in prepareSummarizedExperiment to make sample loading with loadRNASeq and loadSingleCell in the bcbio packages less confusing.
  • Improved NULL returns in readDataVersions, readLogFile, and readProgramVersions utility functions.
  • Fixed export of *GTF alias functions to simply wrap the *GFF functions with S4 methods support.
  • Improved lane split technical replicate handling in readSampleMetadataFile.
  • Improved camel syntax for both lax and strict modes. Added upperCamel function.
  • Switched str_ to base grep and gsub in internal functions.

basejump 0.0.25 (2017-10-13)

  • Improved consistency of setMethod calls using signature.
  • Converted loadRemoteData to a standard function instead of using S4 dispatch, allowing the envir argument to be set properly.

basejump 0.0.24 (2017-10-10)

  • Added additional package version requirements in DESCRIPTION file.
  • Implicit integers are allowed.
  • Using GitHub version of covr package for unit tests.
  • Renamed multiassignAsNewEnv to multiassignAsNewEnvir
  • Added *GFF function variants for gene2symbolFromGTF and tx2geneFromGTF.
  • Added shared bcbio generic functions: aggregateReplicates, bcbio, bcbio<-, interestingGroups, metrics, plotGene, sampleDirs, sampleMetadata, selectSamples. These functions are saved in bcbioGenerics.R file.
  • Incorporated bcbio utility functions shared across bcbioRNASeq and bcbioSingleCell: readDataVersions (deprecated .dataVersions), readLogFile (deprecated .logFile), readProgramVersions (deprecated .programs), sampleYAML (deprecated .sampleYAML), sampleYAMLMetadata (deprecated sampleYAMLMetadata), sampleYAMLMetrics (deprecated .sampleYAMLMetrics`).
  • Deprecated metadataTable function.
  • Moved all roxygen2 documentation to methods-*.R files where applicable.
  • Now using assays in prepareSummarizedExperiment generic definition as primary object.
  • Improved assignAndSaveData to add silent return of file path.
  • Now consistently using clear function definitions (`) in chain operations with magrittr pipe (%>%`).
  • Added .prepareSampleMetadata utility function, for use with loading sample metadata from an external CSV, Excel, or YAML file.
  • Added loadData functionality back to the package.
  • Initial commit of loadDataAsName function.
  • Improved annotable function documentation and support for Ensembl release versions.
  • Improved sanitization rules for camel, dotted, and snake name functions. Added the strict argument to camel and dotted.
  • Improved the documentation for the makeNames functions, by splitting each into their own separate methods file.
  • Improved S4 method support for the logRatio functions.
  • Added integer support for geomean function. Also improved internal code of geomean based on Paul McMurdie’s Stack Overflow post. See function documentation for more information.
  • Added release support for tx2gene functions.
  • Reduced the number of reexported functions (for documentation) down to the magrittr pipe (%>%), Matrix, DataFrame, and tibble.
  • Added silent return of file path to saveData function.
  • Improved documentation for tibble coercion using as(object, "tibble")
  • Renamed collapse function to collapseToString, to avoid NAMESPACE collisions with tidyverse packages (dplyr, glue).

basejump 0.0.23 (2017-09-14)

basejump 0.0.22 (2017-09-08)

  • Improved unit testing coverage.
  • Renamed prepareSE to prepareSummarizedExperiment. Improved row and column name handling in the function. It now outputs more helpful diagnostic messages on error.
  • Reworked and simplified detectHPC function to allow for unit testing.

basejump 0.0.21 (2017-09-01)

  • NAMESPACE improvements. Reduced the number of re-exported functions to simplify the package.
  • Improved code coverage and unit testing with additional testthat checks. Specifically, added unit testing for remote download functions and improved testing for GTF file utilities.
  • Code coverage now above 90%!
  • Renamed packageSE to prepareSE for better semantic meaning.
  • Made multiple generics more flexible by inclusion of passthrough ().
  • Reduced the number of deprecated functions.
  • Initial commit of internal localOrRemote utility function.
  • Initial commit of prepareTemplate function.
  • Added additional data-raw/ scripts.
  • Added onLoad.R script back to ensure proper attachment of annotables data package.
  • Removed tidyverse S4 method support.
  • Improved remote file handling for readFileByExtension, readGTF, and readYAML functions.

basejump 0.0.20 (2017-08-16)

  • Offloaded devtools functions to personal package.
  • Upgraded all functions to S4 functions where possible.
  • Assign utilities were kept as S3 functions since S4 dispatch makes parent.frame assignment not work correctly.
  • Deprecated snake case and British spelling variants to reduce the number of exported functions.
  • Added more working examples.
  • Added unit testing for annotables functions.

basejump 0.0.19 (2017-07-24)

  • Improved documentation and consistency with bcbio packages.
  • Improved integration of gene annotation calls using annotables package.

basejump 0.0.18 (2017-07-24)

basejump 0.0.17 (2017-07-11)

basejump 0.0.16 (2017-06-28)

  • Minor NAMESPACE updates while working on bcbio packages.
  • Tweaks for tidyverse S4 generic verbs. In particular, as_tibble now provides better consistency for rowname conversion.

basejump 0.0.15 (2017-06-18)

  • Added testthat support for lintr checks.
  • Added S4 generic for as_tibble.

basejump 0.0.14 (2017-06-13)

  • dplyr 0.7 NAMESPACE fixes and function tweaks.

basejump 0.0.13 (2017-06-12)

  • setMethod for tidyverse NAMESPACE collisons (dplyr, tidyr) using `signature(“data.frame”).

basejump 0.0.12 (2017-05-25)

  • Updated exports based on wormbase package.

basejump 0.0.11 (2017-05-18)

  • Improved naming functions to dynamically handle character vectors and objects that support naming assignments.
  • Added removeNA utility function.

basejump 0.0.10 (2017-05-14)

  • Added NAMESPACE utilities to deal with tidyverse generic verbs.
  • Switched package documentation method to use roxygen2 with pkgapi.

basejump 0.0.9 (2017-05-13)

  • Added snake case function variants.

basejump 0.0.8 (2017-05-13)

  • Added back saveData utility functions.

basejump 0.0.7 (2017-0422)

  • Bug fixes for dplyr 0.6.0 update and improved kable handling.

basejump 0.0.6 (2017-04-14)

  • Dependency fix for successful compilation on the HMS RC Orchestra cluster.

basejump 0.0.5 (2017-04-12)

  • Consolidated functions in the documentation.

basejump 0.0.4 (2017-04-07)

  • Improved documentation.

basejump 0.0.3 (2017-03-22)

  • Removed dependencies and transfer functions to bcbioRNASeq.

basejump 0.0.2 (2017-03-22)

  • Added bcbio data import functions.
  • Added ggplot2 wrapper functions for quality control.

basejump 0.0.1 (2017-03-17)

  • Initial draft release.