CHANGES IN VERSION 2.0.1 [2022-11-15] ----------------------------------- BUG FIXES o Fixed combining for matter vectors and lists o Fixed slow 'matter_mat()' constructor for large # of atoms o Fixed bug with BPPARAM not passed in 'rowStats()'/'colStats()' CHANGES IN VERSION 1.99.2 [2022-10-31] ----------------------------------- BUG FIXES o Fix 'chunkApply()' behavior for when nchunks == 1 o Fix 'atoms' failure when 'source' is a compressed 'drle' o Properly ignore missing groups in 'rowsweep()' and 'colsweep()' CHANGES IN VERSION 1.99.1 [2022-10-30] ----------------------------------- BUG FIXES o Minor bug fixes to 'matter_list' and 'struct()' behavior o Minor bug fix to endomorphic subsetting of sparse matrices o Minor bug fix to 'binvec()' behavior at vector endpoints CHANGES IN VERSION 1.99.0 [2022-10-23] ----------------------------------- NEW FEATURES o Complete re-implementation of sparse array code in C++ o Complete re-implementation of matter object C++ backends o New 'sparse_arr' class with 'sparse_mat' and 'sparse_vec' o New 'matter_arr' class with 'matter_mat' and 'matter_vec' o New 'asearch()' function for approximate search with interpolation o New 'chunkApply()' function replacing 'chunk_apply()', etc. o New 'colsweep()' and 'rowsweep()' functions w/ group parameter o New 'colscale()' and 'rowscale()' functions w/ group parameter o New 'drle_fct' class for delta-run-length encoded factors o New interpolation options for 'sparse_arr' objects o Simplified deferred arithmetic operations interface SIGNIFICANT USER-VISIBLE CHANGES o New simplified constructors for most matter objects o Updated S4 internals for most matter objects o Updated S4 internals for sparse array objects o Deprecated some rarely-used functions and classes o Deprecated some S4 generic conflicts with core BioC packages BUG FIXES o Fix to 'stream_var' and 'stream_sd' behavior when n=0 or n=1 CHANGES IN VERSION 1.19.1 [2021-10-20] ----------------------------------- BUG FIXES o Fix error in 'cbind()' on two 'matter_vec' objects CHANGES IN VERSION 1.17.1 [2020-11-27] ----------------------------------- BUG FIXES o Fix 'apply()' signatures for R 4.1 CHANGES IN VERSION 1.15.1 [2020-9-3] ----------------------------------- BUG FIXES o Remove '...' from 'which()' CHANGES IN VERSION 1.13.10 [2020-4-20] ----------------------------------- NEW FEATURES o Added 's_nnzero()' stream-stat for non-zero entries o Added 'push()' and 'pull()' generics for future use CHANGES IN VERSION 1.13.9 [2020-4-18] ----------------------------------- BUG FIXES o Minor updates to 'chunk_apply()' internals CHANGES IN VERSION 1.13.8 [2020-3-13] ----------------------------------- BUG FIXES o Fixed bugs due to logical condition length > 1 CHANGES IN VERSION 1.13.7 [2020-3-11] ----------------------------------- BUG FIXES o Fixed to internal function 'linearInd()' CHANGES IN VERSION 1.13.6 [2020-3-3] ----------------------------------- BUG FIXES o Fixed bug caused by change in R 4.0 so that class of matrix is now c("matrix", "array") CHANGES IN VERSION 1.13.5 [2020-3-2] ----------------------------------- NEW FEATURES o Support for 'view="chunk"' when specifying 'pattern' CHANGES IN VERSION 1.13.4 [2020-2-26] ----------------------------------- NEW FEATURES o Added 'pattern' argument to 'chunk_mapply()' CHANGES IN VERSION 1.13.3 [2020-2-9] ----------------------------------- NEW FEATURES o Implemented 'outfile' argument for writing results to a file for 'chunk_apply()' and 'chunk_mapply()' CHANGES IN VERSION 1.13.2 [2020-2-9] ----------------------------------- NEW FEATURES o Added 'pattern' argument to 'chunk_apply()' CHANGES IN VERSION 1.13.1 [2019-10-30] ----------------------------------- NEW FEATURES o Added 'chunk_mapply()' CHANGES IN VERSION 1.11.7 [2019-10-25] ----------------------------------- BUG FIXES o Fixed errors in 'rowStats()' and 'colStats()' when calculating group statistics over minor dimensions CHANGES IN VERSION 1.11.6 [2019-10-23] ----------------------------------- NEW FEATURES o Added 'locmax()' function for finding local maxima o Added 'binvec()' function for binning vectors CHANGES IN VERSION 1.11.5 [2019-10-13] ----------------------------------- NEW FEATURES o Exposed 'chunk_apply()' for applying functions over parallelized chunks of vectors and matrices CHANGES IN VERSION 1.11.4 [2019-10-13] ----------------------------------- NEW FEATURES o Added 'rowStats()' and 'colStats()' methods for chunk-applying grouped summary statistics over the rows and columns of matrices SIGNIFICANT USER-VISIBLE CHANGES o Family of 'apply()' and 'lapply()' methods now attempt to respect the object's 'chunksize()' o Added getOption('matter.default.chunksize') for setting default chunksize for matter objects CHANGES IN VERSION 1.11.3 [2019-10-9] ----------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Faster subsetting of matter-backed ALTREP objects o Updated 'bsearch()' to return the closest match when tol > 0 o Added getOption('matter.dump.dir') to control where temporary files are stored for matter objects CHANGES IN VERSION 1.11.2 [2019-7-24] ----------------------------------- NEW FEATURES o Coercing to native R types now returns an ALTREP representation for most 'matter' objects o Use 'as.altrep()' method to coerce an existing 'matter' object to ALTREP or to coerce native R types to 'matter'-backed out-of-memory ALTREP objects o ALTREP coercion can be controlled by new options: getOption('matter.coerce.altrep') getOption('matter.coerce.altrep.list') getOption('matter.wrap.altrep') o See ?`matter-options` for details SIGNIFICANT USER-VISIBLE CHANGES o The 'show()' method for 'matter' objects now prints a preview of the data head o Printing of data can be controlled with new options getOption('matter.show.head') and getOption('matter.show.head.n') CHANGES IN VERSION 1.11.1 [2019-5-7] ----------------------------------- NEW FEATURES o Added 'stream_stat' class for streaming statistics with functions s_mean(), s_var(), s_sd(), etc. CHANGES IN VERSION 1.9.11 [2019-4-19] ----------------------------------- BUG FIXES o Fixed documentation link to 'base::lapply' CHANGES IN VERSION 1.9.10 [2018-12-22] ----------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Vectors can be used as 'virtual_mat' rows/columns now CHANGES IN VERSION 1.9.9 [2018-12-22] ----------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Constructor for 'drle' now allows forcing delta = 0 o Updated display descriptions in 'show' methods o Check for NULL dimensions when subsetting 'virtual_mat' and 'sparse_mat' classes CHANGES IN VERSION 1.9.8 [2018-12-18] ----------------------------------- BUG FIXES o Check for NULL dimensions in 'matter_arr' subsetting CHANGES IN VERSION 1.9.7 [2018-12-18] ----------------------------------- BUG FIXES o Fixed bug in atoms() where 'index_offset' and 'index_extent' would overflow when creating long 'matter_vec' objects CHANGES IN VERSION 1.9.6 [2018-12-14] ----------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Subsetting matter matrices, arrays, and data frames now checks for the correct number of dimensions o Linear indexing support for 'matter_mat' and 'matter_arr' BUG FIXES o Class checks now use R_check_slot_etc() in C so subclasses of 'matter' objects should inherit correct behavior o Fixed other indexing issues in subsetting + assignment CHANGES IN VERSION 1.9.5 [2018-12-14] ----------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Updated documentation with `matter-datatypes`, size of data types are now explicitly defined o Changed 'filemode' slot to be a factor with levels c('r', 'w', 'rw') instead of a string o Data access now uses C++ fstream instead of C BUG FIXES o On Windows, accessing data elements in large files with byte offets larger than MAX_INT now works o On Windows, data modes of 'long' and 'ulong' are now correctly 64-bit integer types o Assignment of negative values now checked for 'ulong' CHANGES IN VERSION 1.9.4 [2018-12-8] ----------------------------------- NEW FEATURES o Added %% and %/% delayed operations from Arith group o Added & and | delayed operations from Logic group o All Ops group generics now supported as delayed operations o Added 'lapply' and 'sapply' functions for 'matter_list' o Support for BiocParallel in 'apply', 'lapply', and 'sapply' BUG FIXES o Fix floating point exception error when dividing by integer 0L in delayed division operations CHANGES IN VERSION 1.9.3 [2018-12-8] ----------------------------------- NEW FEATURES o Added matrix multiplication for 'sparse_mat' matrices o Added matrix multiplication for 'virtual_mat' matrices CHANGES IN VERSION 1.9.2 [2018-11-12] ----------------------------------- BUG FIXES o Renamed internal class 'bytes' to 'num_bytes' due to Rcpp CHANGES IN VERSION 1.9.1 [2018-11-12] ----------------------------------- BUG FIXES o Removed BiocGenerics 'lengths' from NAMESPACE CHANGES IN VERSION 1.8.2 [2018-12-13] ----------------------------------- BUG FIXES o Fixed large file offset bug on Windows (again) CHANGES IN VERSION 1.8.1 [2018-12-11] ----------------------------------- BUG FIXES o Fixed bug causing large files to read incorrectly on Windows CHANGES IN VERSION 1.7.6 [2018-7-24] ----------------------------------- NEW FEATURES o Added 'apply' methods for 'sparse_mat' and 'virtual_mat' o Added 'vm_used' function to exported internal utilities o Can infer length of 'matter_vec' from paths when missing o Can coerce 'matter_list' to 'matter_matc' or 'matter_matr' if all elements of the list are the same length SIGNIFICANT USER-VISIBLE CHANGES o Initializing a matter object with data to an existing file no longer results in a warning if 'filemode' is supplied BUG FIXES o Fixed bug where subsetting 'sparse_mat' objects would pull 'matter_list' key-value pairs into memory o Subsetting 'sparse_mat' objects with out-of-bounds subscripts when 'drop=NULL' is now an error CHANGES IN VERSION 1.7.5 [2018-7-23] ----------------------------------- NEW FEATURES o Added 'as.matrix' methods for 'sparse_mat' and 'virtual_mat' CHANGES IN VERSION 1.7.4 [2018-7-23] ----------------------------------- NEW FEATURES o Added coercion from 'matter_mat' to 'matter_list' CHANGES IN VERSION 1.7.3 [2018-7-23] ----------------------------------- NEW FEATURES o Added 'rep_vt' class for virtual replicated vectors CHANGES IN VERSION 1.7.2 [2018-7-22] ----------------------------------- NEW FEATURES o Updated installation instructions for BiocManager o Setting 'sparse_mat' keys also updated nrows/ncols BUG FIXES o Fixed mem() to reflect R >= 3.5 gc() function CHANGES IN VERSION 1.7.1 [2018-5-18] ----------------------------------- BUG FIXES o Fixed file.exists() bug when length(paths) > 1 CHANGES IN VERSION 1.5.4 [2017-12-2] ----------------------------------- NEW FEATURES o Added 'struct' convenience function for on-disk C-style structs (wrapper for 'matter_list') CHANGES IN VERSION 1.5.3 [2017-12-1] ----------------------------------- NEW FEATURES o Added remainder of Summary group, including 'range', 'min', 'max', 'prod', 'any', and 'all' methods o Added options(matter.cast.warning=FALSE) for turning off C type coercion warnings o Exported low-level utilities 'sizeof', 'make_datamode', 'convert_datamode', and 'widest_datamode' o Added 'combiner' generic function and method for setting/getting the 'combiner' for 'sparse_mat' o Added 'min' and 'max' combiner functions for 'sparse_mat' matrices with tolerance > 0 o Added 'biglm' method for 'matter_df' data frames BUG FIXES o Fixed bug when coercing 'matter_list' to 'matter_vec' CHANGES IN VERSION 1.5.2 [2017-11-12] ----------------------------------- NEW FEATURES o All 'matter' subclasses now support endomorphic subsetting via 'drop=NULL' wherever appropriate o Setting the 'dim' slot via 'dim<-' now switches the class between 'matter_vec' and 'matter_arr' o Added 'virtual_mat' class for virtual matrices SIGNIFICANT USER-VISIBLE CHANGES o Use 'drop=NULL' from now on instead of 'drop=NA' to do endomorphic subsetting of matter matrices o Added 'matter_vt' virtual class for matter objects which may exist both on-disk and in-memory o Added 'matter_tbl' virtual class for data tables BUG FIXES o Fixed read/write bug when subsetting across atoms CHANGES IN VERSION 1.5.1 [2017-11-1] ----------------------------------- NEW FEATURES o Added 'sparse_mat' class for sparse matrics (potentially on-disk) with subclasses 'sparse_matc' for CSC matrices and 'sparse_matr' for CSR matrices o Added 'bsearch' function for fast binary searches o Added 'uuid' function for generating UUIDs as both 'raw' and and 'character' vectors o Added a 'checksum' method for doing sha1 and md5 checksums of all files associated with a 'matter' object CHANGES IN VERSION 1.3.8 [2017-10-26] ----------------------------------- NEW FEATURES o Added 'matter_fc' class for on-disk factors SIGNIFICANT USER-VISIBLE CHANGES o Added character encodings to 'matter_str' on-disk strings BUG FIXES o Fixed bug in 'matter_df' when subsetting by columns o Fixed bug when coercing 'data.frame's to 'matter_df' CHANGES IN VERSION 1.3.7 [2017-10-25] ----------------------------------- BUG FIXES o Fixed bug where default 'matter_df' chunksize was tiny o Changed 'datamode' for 'matter_df' from 'list' to 'virtual' CHANGES IN VERSION 1.3.6 [2017-10-20] ----------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Lists (ragged arrays) may now be heterogenous (elements must still be vectors) o More memory-efficient initialization of data on disk when length(data) is 1 o Files are now created by default in constructors if they do not already exist o When coercing with 'as.matter', names and/or dimnames are now retained CHANGES IN VERSION 1.3.5 [2017-10-18] ----------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Improved length/dim defaults when data is given to constructors BUG FIXES o Trying to write to a read-only dataset now fails gracefully o Fixed integer overflow when subsetting via subsetMatterMatrix CHANGES IN VERSION 1.3.4 [2017-8-8] ----------------------------------- BUG FIXES o Fixed bug where NAs did not propogate correctly for integers o It is now an error when 'matter()' cannot infer data structure CHANGES IN VERSION 1.3.3 [2017-5-20] ----------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Added new vignettes with benchmarks and examples on real data BUG FIXES o Fixed bug in delayed arithmetic operations with vectors CHANGES IN VERSION 1.3.2 [2017-5-15] ----------------------------------- NEW FEATURES o Added class 'matter_list' for homogenous lists (ragged arrays) o Added class 'matter_str' for on-disk strings o Added class 'matter_df' for on-disk data frames o Added 'as.matter' for function coercing to matter objects CHANGES IN VERSION 1.3.1 [2017-4-27] ----------------------------------- NEW FEATURES o Updated base matter classes (matter_vec, matter_mat, matter_arr) to support 'Arith' and 'Compare' group generics CHANGES IN VERSION 1.1.3 [2017-3-15] --------------------------------- NEW FEATURES o Added class 'drle' for delta-run-length encoding vectors o Added '+', '-', '*', '/', '^', 'exp', 'log', 'log2', and 'log10' as possible delayed operations to on-disk atoms SIGNIFICANT USER-VISIBLE CHANGES o Slots of 'atoms' class now use delta-run-length encoding o Reduced metadata size by changing 'atoms' class to use groups rather then relying on a 'list' of 'atoms' o The 'scale' method for 'matter_mat' now matches 'scale.default' more correctly when 'center = FALSE' and 'scale = TRUE' CHANGES IN VERSION 1.1.2 [2017-3-12] --------------------------------- NEW FEATURES o Added support for char, uchar, ushort, uint, and ulong datamodes o Added support for raw (Rbyte) matter objects SIGNIFICANT USER-VISIBLE CHANGES o S4 methods for matrix-specific summary statistics are now only defined on matter_mat and its subclasses BUG FIXES o Dramatically improved speed of matrix multiplication CHANGES IN VERSION 1.1.1 [2016-11-29] --------------------------------- NEW FEATURES o Added 'crossprod' (t(x) %*% y) and 'tcrossprod' (x %*% t(y)) methods o Added 'atomdata' accessor method, for which 'adata' is now an alias BUG FIXES o Added S3 versions of some S4 methods to fix scoping issues o Removed Cardinal package from Suggests to avoid circular dependency o Reduced memory consumption in bigglm-matter method CHANGES IN VERSION 0.99.11 [2016-10-11] --------------------------------- BUG FIXES o Updated documentation details. CHANGES IN VERSION 0.99.10 [2016-10-11] --------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Updated vignettes with installation instructions, faster build time o Added 'adata' method for accessing 'matter' class @data slot CHANGES IN VERSION 0.99.9 [2016-10-5] --------------------------------- NEW FEATURES o Added delayed scaling and centering via 'scale' method o Added 'prcomp' method for principal components analysis SIGNIFICANT USER-VISIBLE CHANGES o Renamed 'colSd' -> 'colSds', 'colVar' -> 'colVars', etc. o Renamed 'filepaths' -> 'paths' and 'file_id' -> 'source_id' o Moved 'irlba' from Suggests to Imports to support new 'prcomp' method o Updated vignette to use new 'prcomp' method in the PCA example BUG FIXES o Fixed bug when combining 'matter' objects with multiple data sources CHANGES IN VERSION 0.99.8 [2016-10-3] --------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o In S4 class 'atoms', slot 'file_id' is now type 'integer' to save space o In S4 class 'atoms', slot 'datamode' is now type 'integer' to save space o More comprehensive error messages in constructors for S4 classes CHANGES IN VERSION 0.99.7 [2016-10-1] --------------------------------- BUG FIXES o Try to fix namespace std::isnan scoping issues on Windows CHANGES IN VERSION 0.99.6 [2016-10-1] --------------------------------- BUG FIXES o Fixed handling of NA, NaN, Inf, and -Inf during C type coercion o Improved handling of NA, NaN, Inf, and -Inf in summary stats o Fixed handling of NAs in matrix multiplication for integers CHANGES IN VERSION 0.99.5 [2016-9-27] --------------------------------- BUG FIXES o Fixed .Call native routine registration for C++ methods o Added "C_" prefix for C++ methods called through .Call CHANGES IN VERSION 0.99.4 [2016-9-27] --------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Added .Call native routine registration for C++ methods CHANGES IN VERSION 0.99.3 [2016-9-27] --------------------------------- BUG FIXES o Import generics from S4Vectors for 'colMeans', 'colSums', 'rowMeans', and 'rowSums' o Cleaned up method signatures and class unions CHANGES IN VERSION 0.99.2 [2016-9-26] --------------------------------- BUG FIXES o Cleaned up double assignments in C++ code CHANGES IN VERSION 0.99.1 [2016-9-26] --------------------------------- BUG FIXES o Version bump for Bioconductor build system CHANGES IN VERSION 0.99.0 [2016-9-26] --------------------------------- BUG FIXES o Updated PCA example in vignette (irlba now requires 'mult' argument to be non-missing for non-C execution) o Added irlba unit test CHANGES IN VERSION 0.6 [2016-9-25] --------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Updated maintainer and author email address BUG FIXES o Fixed bug in rowVar for matter_matc CHANGES IN VERSION 0.5 [2016-9-25] --------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Updated documentation with examples and added unit tests BUG FIXES o Fixed matrix multiplication on mixed data types (int x double) CHANGES IN VERSION 0.4 [2016-8-3] --------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Added support for class-preserving subsetting of 'matter' matrices with 'drop=NA' argument for Cardinal compatibility. o Added new 'show' method for 'matter' vectors and matrices showing their size in in-memory and size on disk. CHANGES IN VERSION 0.3 [2016-8-2] --------------------------------- NEW FEATURES o Added C++ class 'MatterAccessor' for iterating through. a buffered version of a 'matter' vector or matrix o Added summary statistics including 'sum', 'mean', 'var', 'sd', 'colSums', 'colMeans', 'colVar', 'colSd', 'rowSums', 'rowMeans', 'rowVar', and 'rowSd'. o Added support for 'apply' method for 'matter' matrices o Added support for 'bigglm' linear regression. o Added basic matrix multiplication for 'matter' matrices with an in-memory R matrix or vector. CHANGES IN VERSION 0.2 [2016-7-28] --------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o Overhauled backend to use C++ classes 'Matter' and 'Atoms', to maximizes use of sequential reads versus random reads. CHANGES IN VERSION 0.1 [2016-2-17] --------------------------------- SIGNIFICANT USER-VISIBLE CHANGES o First rough implementation of matter including the classes 'atoms' and 'matter', and subclasses 'matter_vec', 'matter_matc', 'matter_matr', with a C backend.