# 1.14.4

* safeBrew now accepts character and factor inputs and returns named colors accordingly.

# 1.14.3

* ssvSignalHeatmap.ClusterBars refined annotation bar placement

# 1.14.2

* more robust seqnames handling in harmonize_seqlengths with user instruction to resolve issues.
* bugfix for seqlengths in fetch_bamPE

# 1.14.1

* bugfix for "invalid class "GRanges" object:
    'seqlevels(seqinfo(x))' and 'levels(seqnames(x))' are not identical"

# 1.13.10

* bugfix fixed bad example in clusteringKmeansNestedHclust

# 1.13.8

* added "reverse" within_order_strategy options to within_clust_sort
* added function reverse_clusters - reverses cluster orders
* added function split_cluster - splits existing cluster up

# 1.13.6

* added "left" and "right" within_order_strategy options to within_clust_sort
* added  function reorder_clusters_stepdown - attempts to arrange clusters so that more signal is on the left at the top and right at the bottom
* added  function reorder_clusters_hclust - arranges clusters using hierarchical clustering of centroids
* added  function reorder_clusters_manual - manually specify cluster order, brings manually specified clusters to top
* added  function merge_clusters - merges multiple clusters together

# 1.13.5

* more robust harmonize_seqlengths

# 1.13.4

* auto reduce nclust when too high

# 1.13.3

* better bugfix to avoid using pbmclapply on windows via ssv_mclapply

# 1.13.2

* bugfix to avoid using pbmclapply on windows

# 1.13.1

* calling ssvFeatureUpset with a single set now produces plot with message instead of uncaught error.
* data.table assignments by [[]] switched to set() to avoid invalid .internal.selref warnings
* fragLens calc is now multicore
* added easyLoad_FUN to allow arbitrary load functions
* added easyLoad_IDRmerged
* added within_cluster_sort for sorting within clusters by different values/data.
* kmeans iter.max
* inject formating to ssvSignalHeatmap.ClusterBars with FUN_format_heatmap
* cluster reorder disabled if manual clusters
* docs to address warnings and notes

# 1.11.12

* for ssvFetch*, input of a 0 length query GRanges is now an ERROR.

# 1.11.11

* compressed large data objects to address warnings : save(obj, file="data/obj.rda", compress='xz')

# 1.11.10

* improved clustering and heatmap messaging
* max_rows and max_cols now applies to heatmap call upstream of clustering and independent when data is already clustered.

# 1.11.9

* repaired missing elementType slot warning on older GRanges data objects

# 1.11.8

* prepare_fetch_GRanges has been deprecated and prepare_fetch_GRanges_width should be used instead.
* prepare_fetch_GRanges_names has been exposed and allows name seeting of query GRanges with what seqsetvis does internally.

# 1.11.6

* bugfix when min_number = 0
* ssvFetchBam return_unprocessed supresses fragLens calc
* ssvFetchBam & ssvFetchBamPE reutrn_unprocessed yields same variables

# 1.11.5

* feature - fill_limits to ssvSignalHeatmap and ssvSignalHeatmap.ClusterBars to control fill limits
* tweak - rel_widths default of 1,9 for ssvSignalHeatmap.ClusterBars
* bugfix - drop removed ids from ssvSignalClustering
* tweak - row and column drops are messages, not warnings.

# 1.11.3

* feature - ssvSignalClustering accepts memb_table
* feature - ssvSignalHeatmap.ClusterBars displays cluster bars once on the left instead of in each facet
* feature - ssvSignalClustering accepts centroids instead of nclust
* feature - exposed make_clustering_matrix to convert tidy data.table to wide matrix
* feature - exposed add_cluster_annotation to append or insert cluster size bars beside heatmaps
* feature - exposed assemble_heatmap_cluster_bars to make appending add_cluster_annotation easier

# 1.11.2

* feature - added ssvFeatureUpset to support upset plots.

# seqsetvis 1.9.19

* tweak - ssvConsensusOverlaps accepts 0 for min_fraction and min_number
* bugfix - data.table::get no longer accepts multiple items, broke applySpline

# seqsetvis 1.9.18

* feature - text_colors for ssvFeatureBars

# seqsetvis 1.9.17

* bugfix - resolved unexpected strand behavior with flip_strand and target_strand interaction in ssvFetchBam.

# seqsetvis 1.9.16

* improvement - ssvConsensusIntervalSets and ssvOverlapIntervalSets now pass ... params to findOverlaps.

# seqsetvis 1.9.15

* fetch_bam return_unprocessed now returns all bam fields (seq etc.)
* new feature - ssvConsensusIntervalSets allows consensus style overlaps, ie. more than 3 of 10 regions must be present.

# seqsetvis 1.9.13

* parallelization support for easyLoad_* via n_cores argument

# seqsetvis 1.9.11

* new feature - centerGrangesAtMax function for creating query GRanges centered
at. signal maximum.

#seqsetvis 1.9.10

* new feature - easyLoad_seacr function for loading seacr output bed files.
* bugfix ssvFetchBamPE can handle ranges with no reads.

# seqsetvis 1.9.9

*bugfix - levels of unique_names was not being used in ssvFetch functions

# seqsetvis 1.9.5

* bugfix - for stranded bam fetch, strand sensititvity lost when overlapping
features have opposing strands.
* improvement - error if qgr has duplicate names/ids

# seqsetvis 1.9.4

* bugfix - n_region_splits limited to length of qgr

# seqsetvis 1.9.3

* new feature - improved parallelization by splitting up regions according to n_region_splits
* improvement - fragLen for bam file is now calculatd once per bam file prior to any region splitting.
* bugfix - stranded qgr and odd win_size causes inconsistent x values
* bugfix - ssvFetch* - file_paths and file_attribs as data.table causes error.

# seqsetvis 1.7.6

* improvement - added show_cluster_bars arg to ssvSignalHeatmap to suppress cluster labelling.
* improvement - added force_append arg to appen_ynorm to conveinently overwrite previous normalization,

# seqsetvis 1.7.5

* bugfix - update ssvSignalHeatmap for within_order_strategy compatibility
* change - default within_order_strategy is now "sort"

# seqsetvis 1.7.4

* bugfix - error if uniq_names factor

# seqsetvis 1.7.2

* fix - ssvSignalClustering - within cluster sorting was not being applied
* new feature - added within_order_strategy = c("hclust", "sort") paramter to ssvSignalClustering.

# seqsetvis 1.5.3

* new feature - added skip_force_centerFix to all ssvFetch functions to accomodate
retrieval of variable width regions using sample methods, i.e. exons.
* new feature - added collapse_gr() and convert_collapsed_coord() functions to
support maniulation of signal across exons.
* getReadLength is now exported

# seqsetvis 1.5.2

* improvement - ssvFetchGRanges does more than coverage now and can retrieve a qualititative attribute from supplied GRanges.  Support for summary too.  These changes are ideal for chromHMM states or similar.
* improvement - added do_not_cap to append_ynorm to prevent capping at 1.
* bugfix - ssvFetchSignal handle empty result.
* bugfix - better seqlengths handling for fetchBam
* FEATURE viewGrangesWin*_dt now handles qualitative attribute fields via attrib_name parameter.  Default behavior unchanged.

# seqsetvis 1.5.1

* FEATURE added calc_norm_factors and append_y_norm to facilitate normalization
between datasets.
* bugfix - apparent change in how names are used for which parameter of
rtracklayer::import.bw required tweak in ssvFetchBam.single

# seqsetvis 1.3.13

* FEATURE added ssvFetchBamPE to properly handle paired-end (PE) ChIP-seq and
similar data.  In contrast to ssvFetchBamPE read pairs in windows are
identified and entire span of pair (instead of alignment location) is used for
covereage calculation.
* bugfix ssvFetchBam - fixed issue where PE data caused crash.
* improvemnet - fragLen_calcStranded added flip_strand parameter to allow
swapping of strand prior to strand cross correlation.
* bugfix/cleanup in automatic sample naming, unlikely to affect anyone.

# seqsetvis 1.3.8

* coding practice fixes

# seqsetvis 1.3.7

* bam indexes are generated automatically
* added flip_strand param to ssvFetchBam
* bugfix/improvement ssvFetchBam passes ... args to ScanBamParam

# seqsetvis 1.3.6

* change - when strands of qgr are negative, strands of results are
swapped. x coordinates are already flipped.

# seqsetvis 1.3.5

* bugfix/improvement - checks were timing out due to fragLen_calcStranded()
poor performance.  switched to shiftApply on Rle strategy to speed up.
* FEATURE - ssvFetch accepts data.frame/table for file_paths
(character still fine) to efficiently set additional attribues like metadata.
* docs up to passing checks
* FEATURE - ssvFetch* accept n_cores or uses option("mc.cores") to in
parallel.
* FEATURE - ssvFetchGRanges - retreives coverage of a list of GRanges in
form parallel to existing ssvFetch*.

# seqsetvis 1.1.7

* minor documenation improvement

# seqsetvis 1.1.6

* ssvFeature* and ssvSignal* added return_data paramter to skip plotting and
return data used.
* ssvFetchBam added target_strand = "both" support

# seqsetvis 1.1.5

* ssvBamFetch - added max_dupes parameter, default is Inf and shouldn't change
behavior. uses .rm_dupes() internally.
* bugfix: shift_anchor was causing a 1bp shift per call.
* bugfix: ssvBamFetch, strand of qgr and target_strand interacted incorrectly and
led to empty results for mismatches.

# seqsetvis 1.1.4

* ssvBamFetch - added splice_strategy parameter to control split reads for RNA-
seq data.  Defaults is "none" and shouldn't change behavior.
Uses .expand_cigar_dt() internally.

# seqsetvis 1.1.3

* BiocManager added to suggests and vignette.

# seqsetvis 1.1.2

* bugfix: viewGrangesWinSample/Summary_dt were both erroring when 0 reads were in window.
* bugfix: ggplot2 2.3.0 compatibility fix in ssvSignalLinePlotAgg()
* bugfix: col2hex now properly preserves character vector names
* bugfix: ssvFetch now properly allows NA for fragLens to disable fragment extension
* bugfix: ggellipse line_scale and color_scale were being ignored

# seqsetvis 1.1.1

* bugfix: skip rtracklayer::import.bw depedent tests on Windows OS

# seqsetvis 1.1.0

* seqsetvis is released!

# seqsetvis 0.99.20

Impacts existing scripts

* fetchWindowedBam is now ssvFetchBam.single
* fetchWindowedBamList is now ssvFetchBam
* fetchWindowedBigwig is now ssvFetchBigwig.single
* fetchWindowedBigwigList is now ssvFetchBigwig
* fetchWindowedSignalList is now ssvFetchSignal

Independent addititions

* anchor parameter for all fetch functions.  allows strand sensitive x assignment
and left or center reference point.
* added viewGRangesWinSummary_dt() -  allows summary statistic to be appled over
windows in contrast to sampling method. allows qgr to be varying width.
* renamed viewGRangesWindowed_dt() to viewGRangesWinSample_dt()

# seqsetvis 0.99.18

* updated package title
* updated vignette title

# seqsetvis 0.99.17

* fetch functions, _dt versions removed and param return_data.table = FALSE
added
* refactoring to encapsulate fetch utility functions shared by bw and bam

# seqsetvis 0.99.13

* added bamFetch*
* refactored bwFetch* to use viewGRangesWindowed_dt, same as bamFetch*
* ssvSignalClustering and Heatmap bug fixes related to hardcoded data.table
variables
* restructured and renamed extdata to be cleaner/more intuitive.

# seqsetvis 0.99.12

* small changes to clear warning for Bioc acceptance.

# seqsetvis 0.99.10

* fewer and smaller vignette figures
* ggellipse exported with documentation
* ssvSignalHeatmap calcs better xticks
* ssvFeatureBinaryHeatmap true_color and false_color params added to allow
color control
* ssvFeatureVenn and Euler params unified
* ssvFeatureBars has bar_color param like that of venn and euler

# seqsetvis 0.99.9

* vigentte - some plots reduced in size and dpi reduced to save space.
* ssvFeatureVenn and Euler refactored to use common internal ggellipse function
for
consistency.
* ssvBinarizeHeatmap cleaned up plot output and changed default to
raster_approximation = FALSE

# seqsetvis 0.99.8

* fetch* now automatically calculate and apply a fixed width.
* BiocFileCache used for all URL resources in vignette
* vigentte uses cases for CTCF peak overlap and for chromHMM states complete

# seqsetvis 0.99.7

* fixed examples error for ssvSignalLineplot
* addressed BioC notes for seq_len instead of 1:x
* addressed BioC notes for vapply instead of sapply

# seqsetvis 0.99.5

* added easyLoad_narrowPeak() and easyLoad_broadPeak()
* added ssvFactorizeMembTable() for converting membership table to factor
* added movingAverage() from r cookbook
* rename ssvSignalTrackplot to ssvSignalLineplot
* rename bw_dt param to bw_data in all ssvSignal* functions to reflect increased
argument flexibility (GRanges or data.table accepted).
* expanded vignette to include more thorough overview, overview finished but need
use cases.

minor changes

* renamed vignette to seqsetvis_overview.Rmd

# seqsetvis 0.99.4

* rename overlapIntervalSets to ssvOverlapIntervalSets
* improved documentation for CTCF datasets used by vignette
* expanded vignette to include more thorough overview, work in progress.

minor changes

* added show_counts param to ssvFeatureBars

# seqsetvis 0.99.3

* all fetch functions that previously returned data.table now return GRanges by default
* all functions that accepted data.table now also accept GRanges and return the matching class where appropriate
* magrittr pipes removed from all package code and magrittr moved to suggests from imports
* misc minor changes to address reviewer comments (message instead of print, stopifnot to verify inputs, etc.)

# seqsetvis 0.99.2

* Added a `NEWS.md` file to track changes to the package.



