Changes in version 1.18.1
-------------------------

BUGFIXES

    o Fix for crash with CNVkit input when log-ratio contained highly negative
      outliers
    o Fixed a bug in preprocessIntervals/IntervalFile.R when input contained
      overlapping and stranded intervals  
    o Fix for crash when GC-correction is attempted on empty coverage (for
      example off-target region with off-target reads)  


Changes in version 1.18.0
-------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o callAlterations: columns C and seg.mean now provide the values of the
      segment listed in seg.id. This changes the behaviour in cases where the
      gene contains breakpoints and thus multiple segments overlap (#112)

BUGFIXES

    o Fix for bug that can result in crash when candidates were provided in
      runAbsoluteCN and test.purity, max.ploidy and/or min.ploidy were set to 
      non-default values
      

Changes in version 1.16.0
-------------------------

NEW FEATURES

    o Flag segments in poor quality regions
    o predictSomatic now provides log-likelihood of allelic balance
      (ALLELIC.IMBALANCE column) for each variant  
    o Added readLogRatioFile function to read GATK4 DenoiseReadCounts
      output files containing log2 tumor/normal ratios
    o Added readSegmentationFile function to read GATK4 ModelSegment
      output files containing segmented log2 tumor/normal ratios
    o Added callAmplificationsInLowPurity to call gene-level
      amplifications in samples < 10% purity
    o Dx.R now reports chromosomal instability scores
      (available also via callCIN function)
    o Dx.R supports deconstructSigs 1.9.0 and COSMIC signatures v3.
      To run both v2 and v3, simply add --signature_databases 
      signatures.exome.cosmic.v3.may2019:signatures.cosmic to Dx.R

SIGNIFICANT USER-VISIBLE CHANGES

    o Made filterTargets and createTargetWeights defunct
    o setMappingBiasVcf now returns a data.frame
    o Best practices vignette now HTML-based
    o Renamed normal.panel.vcf.file in setMappingBiasVcf to mapping.bias.file;
      in 1.18, setMappingBiasVcf will not accept a VCF anymore but requires
      a precomputed mapping bias RDS file.  
    o calculateIntervalWeights now directly called by createNormalDatabase and
      information included in the normalDB RDS object. This function is thus 
      deprecated.
    o Column gene.mean in callAlterations output now weighted by interval
      weights when available  
    o Changed default of min.target.width in preprocessIntervals from 10 to 100
      (#73)  
    o replaced write.table with data.table::fwrite to automatically support
      producing gzipped output (requires data.table 1.12.4, #106)
    o Coverage.R now gzips BAM file coverage (requires data.table 1.12.4, #106)
    o Output coverage files now code FALSE as 0 and TRUE as 1
    o PureCN.R now bgzips and tabix indexes VCFs when --vcf is provided

BUGFIXES

    o Fix for bug in CCF calculation resulting in NAs (happens in high
      coverage samples, early mutations with > 1 allele copy number)
    o Fix for a bug in preprocessIntervals when small targets 
      (< min.target.width) were present
    o Fix for a bug in callMutationBurden when VCF contained indels
      (#82)
    o Die with helpful error message when snp.blacklist import failed  
    o Check input segmentation files for missing values resulting in crash
    o Fixed a crash in Varscan2 produced VCFs when ALT field missed ref counts
      (#109)

    
Changes in version 1.14.0
-------------------------

NEW FEATURES

    o support for copynumber package and its multisample segmentation
    o beta support for PSCBS weighting
    o support for gene symbol filtering in FilterCallableLoci.R 
      (e.g. --exclude "^HLA")
    o added segmentationHclust function that clusters provided segmentation
      using log2-ratio and B-allele frequencies
    o min.target.width and small.targets in preprocessIntervals to 
      automatically deal with too small targets  
    o calculate confidence intervals for cellular fractions
    o throw additional warning when sample is flagged as NON-ABERRANT and 
      pick the diploid solution with lowest purity as best 
 
SIGNIFICANT USER-VISIBLE CHANGES

    o significant runtime improvements 
    o callLOH now reports all segments, even if there are no informative
      SNPs since some users were not aware that segments are missing from
      this output. Use keep.no.snp.segments = FALSE to restore old behaviour.
    o more detailed output of callLOH  
    o renamed num.snps.segment to num.snps in callAlterations output

BUGFIXES

    o fixed crash in PureCN.R when gene symbols are missing from
      interval file
    o fixed crash in runAbsoluteCN with matched normals and high test.purity 
      minimum (#74)  


Changes in version 1.12.0
-------------------------

NEW FEATURES

    o normalDB does not need input normal coverage files anymore after creation
      (so the resulting normalDB.rds file can be moved)
    o base quality filtering can be turned off by setting min.base.quality to 0
      or NULL
    o possible to change the POP_AF info field name  
    o possible to change POP_AF cutoff to set a high germline prior 
    o possible to change min.cosmic.cnt and max.homozygous.loss in PureCN.R
    o set number of cores in PureCN.R (thanks Brad)

SIGNIFICANT USER-VISIBLE CHANGES

    o renamed reptimingbinsize to reptimingwidth in IntervalFile.R, added
      this feature to preprocessIntervals
    o clarified "targets" vs. "intervals"; whenever something affects both
      on-target and off-target, it is now called "intervals". When only targets,
      e.g. in annotateTargets, "targets" was kept.
    o made gc.gene.file defunct
    o new default for min.cosmic.cnt = 6 (instead of 4)

BUGFIXES

    o catch various input problems and provide better error messages instead
      of crashing
    o stranded input BED files do not cause problems anymore
    o fixed a bug when only a single local optimum was tested (happens only
      when users copy the examples that restrict the search speach to avoid
      long runtimes)
    o added missing QC flag to predictSomatic VCF annotation


Changes in version 1.10.0
-------------------------

SIGNIFICANT USER-VISIBLE CHANGES

    o New normal database format
    o Runtime performance improvements (skip unlikely local optima, support for
      BiocParallel in runAbsoluteCN, pre-calculation of mapping bias)
    o Support for replication timing scores in coverage normalization
    o More accurate confidence intervals in callMutationBurden
    o More accurate copy numbers for high-level amplifications
    o Very low or high coverage samples are now by default dropped in normal 
      database creation (less than 25% or more than 4 times the median sample 
      coverage)
    o Improved support for third-party upstream tools like GATK4 (experimental)
    o More checks for wrong or sub-optimal input and providing suggestions for
      fixing those issues
    o Gibbs sampling of log tumor/normal coverage error rate
    o Better imputation of mapping bias (instead of smoothing
      over neighboring variants in the sample, smooth over neighboring SNPs
      in the pool of normals - only available when pre-calculated)
    o Experimental support for indels
    o Code cleanups (switch to testthat, removed several obsolete and minor 
      features)
    
API CHANGES

    o renamed gc.gene.file to interval.file since it now provides more than
      GC-content and gene symbols
    o plotAbs ids changed to id (this function now only plots a single
      purity/ploidy solution)
    o changed default of runAbsoluteCN max.logr.sdev to 0.6 (from 0.75)
    o createTargetWeights does not require tumor coverages anymore
    o calculateGCContentByInterval was renamed to preprocessIntervals
    o renamed plot.gc.bias to plot.bias in correctCoverageBias since it now
      also includes replication timing
    o added calculateMappingBiasVcf to pre-compute mapping bias from a
      panel of normal VCF, thus avoiding time loading and parsing
      of huge VCFs
    o max.homozygous.loss now defines the maximum fraction of a chromosome 
      lost, not the whole genome, to avoid wrong maximum likelihood solutions with 
      completely deleted chromosome arms


Changes in version 1.8.0
------------------------

NEW FEATURES

    o Support for off-target reads in copy number normalization and segmentation
    o Added mutation burden calculation
    o More robust mapping bias estimation
    o Added support for CNVkit coverage files (*.cnn, *.cnr)
    o IntervalFile.R can annotate targets with gene symbols and automatically
      convert chromosome naming styles
    o Better artifact filtering by using normalDB more efficiently
    o Support for mappability scores
    o Coverage calculation can now include duplicates 
    o calculateBamCoverageByInterval now provides fragment counts and 
      duplication rates
    o findBestNormal pooling now fragment count based, not coverage based  
    o Experimental support for GATK4
    o predictSomatic now reports posterior probabilites of minor segment copy
      numbers, flags segments if copy numbers are unreliable
    o Targets can be annotated with multiple gene symbols (comma separated)
    o Code cleanups (switch to GRanges where possible, switch to optparse in 
      command line tools)

API CHANGES

    o Due to novel optimizations of provided bait intervals, we highly recommend 
      to regenerate the interval files and normal databases and recalculate all 
      coverages from BAM files
    o New functions: annotateTargets, callMutationBurden
    o Defunct functions: createSNPBlacklist, getDiploid, autoCurateResults,
      readCoverageGatk
    o min.normals defaults to 2 (changed from 4) in setMappingBiasVcf
    o normalDB.min.coverage defaults to 0.25 (changed from 0.2) in filterTargets
    o log.ratio.calibration defaults to 0.1 (from 0.25) in runAbsoluteCN; now 
      relative to purity, not log-ratio noise
    o Removed gc.data from filterTargets since gc_bias is now added to tumor 
      coverage
    o dropped purecn.output from correctCoverageBias (no two-pass anymore)
    o Coverage.R argument --gatkcoverage renamed to --coverage
    o Dropped GC-normalization functionality in NormalDB, since this is 
      now conveniently done in Coverage.R
    o Renamed PureCN.R --outdir argument to --out. Can now specify a file
      prefix as in GATK. Filenames are thus not forced to sample id anymore.  
      If --out is a directory, it will behave like before and will use
      out/sampleid_suffix as filename.
 
