Removed defunct append()
for
AbtractCBS
.
Removed defunct load()
and save()
for
AbtractCBS
.
After removing the above functions, library(PSCBS)
no longer reports on functions being masked.
wtd.quantile()
function. Instead, we have
adopted its GPL (>=2) code. The reason for doing so is that
Hmisc no longer installs out of the box on platforms,
e.g. macOS M1, but also that Hmisc has a large number
of package dependencies, which adds an unnecessary installation weight
to the PSCBS package for this single function.segmentByCBS()
and
segmentByPairedPSCBS()
would produce warnings on possibly
unreliable random numbers due to parallel processing in the case they
segmented multiple chromosomes or segments.
Fixed a few partial getSegments()
argument name
matching (splitter
-> splitters
).
append(x, y)
for CBS
and
PSCBS
objects, deprecated since v0.64.0 is defunct; use
c(x, y)
instead.
save()
for CBS
and PSCBS
objects and corresponding CBS$load()
and
PSCBS$load()
methods are defunct. We recommend to use
base-R functions saveRDS()
and readRDS()
instead. If backward compatibility with the defunct save()
and load()
methods, the saveObject()
and
loadObject()
functions from the R.utils
package can be used.
report()
for Paired PSCBS
results will now provide an estimate of normal contamination together
with a disclaimer.A sanity check in segmentByPairedPSCBS()
could
produce an error on
'length(x) = 5 > 1' in coercion to 'logical(1)'
when
running with _R_CHECK_LENGTH_1_LOGIC2_=true
. This bug did
not affect the results of PSCBS.
Report templates used by report()
would produce
error
Error in unit(x, default.units) : 'x' and 'units' must have length > 0
if there are too few loci to plot. This would typically happen when
reporting on human chromosome 25 results.
preserveScale
of
segmentByPairedPSCBS()
is now defunct.c()
for CBS
and PSCBS
objects.segmentByCBS()
no longer performs garbage collection,
which happened indirectly via a system.time()
call that
does GC by default.plotTrack()
for CBS
objects would produce
error Argument 'Clim' is not a vector: NULL
when the
signal type was unknown. Now it will assume (non-logged) copy-number
ratios so it can choose a default Clim
range.Removed bootstrapDHByRegion()
, which was defunct
since 0.44.0 (Feb 2015).
append(x, y)
for CBS
and
PSCBS
objects is deprecated; use c(x, y)
instead.
Use of argument preserveScale
for
segmentByPairedPSCBS()
is now deprecated and ignored. it’s
value is now fixed to FALSE, which has been the default since
PSCBS 0.50.0 (Oct 2015).
estimateDeltaCN()
for PairedPSCBS
gained argument flavor
and new estimator
flavor = "delta(mode)"
.
Added isLocallyPhased()
for
PSCBS
.
Now package imports aroma.light instead of only suggesting it.
Package tests no longer test against the deprecated ‘lazy’ strategy of future.
Added normalizeTotalCNs()
for PSCBS
objects.
REPORTS: Updated report template for PairedPSCBS
object such that reports are also generated from DH-only data, i.e. when
there are no BAF signals (which may happen with DNA-Seq data).
Added splitters = TRUE
as the default for
setSegments()
.
segmentByPairedPSCBS()
gained argument rho
for paired PSCBS segmentation on total CNs (TCNs) and
decrease-of-heterozygosity signals (DHs) as an alternative to for
instance TCN and allele B fractions (BAFs).PARALLEL: Add support for parallel processing via futures by
utilizing the future package. Parallel segmentation
over multiple chromosomes (or known segments) done by
segmentByCBS()
and segmentByPairedPSCBS()
is
enabled by future::plan("multicore")
.
REPRODUCIBILITY: Whenever argument seed
is given,
the L’Ecuyer-CMRG stream is now used to generate random numbers. For
backward compatibility with other types of random number generators,
don’t specify argument seed
but instead use
set.seed()
to set the seed before calling the
method.
preserveScale
for
segmentByPairedPSCBS()
defaults to FALSE. In the past the
default has effectively been TRUE, but has given a warning since v0.43.0
(June 2014) that it eventually will be changed to FALSE. Now it will
give a warning that it has changed, unless the option is explicitly
specified. This new warning will eventually be removed in a future
version.append()
for
CBS
or PSCBS
fail.segmentByCBS(, ..., w, knownSegments)
would give
internal assertion errors if one of the priorly known segments would
have zero data points. Thanks to Kirill Tsukanov (Moscow) and Eric
Talevich (UCSF) for reporting on this.segmentByCBS()
gained argument
avg
.
Add writeWIG()
for CBS
objects.
pruneByHClust()
no longer gives a message about
method "ward"
is now named "ward.D"
.
Added skip = TRUE
to report()
.
plotTracks()
for CBS
ignored arguments
cex
, col
and meanCol
if two or
more chromosomes were plotted.
joinSegments()
, resetSegments()
, and
pruneBySdUndo()
gave errors for multi- chromosome (>= 2)
segmentation results.
segmentByCBS()
would ignore argument w
(weights) if more than one chromosome was fitted.
tileChromosomes()
for CBS
returned
incorrect locus data.
gapsToSegments(gaps)
gave an error if
nrow(gaps) == 0
, or it contained no chromosome
column.
findLargeGaps()
could return NULL. Now it always
returns a data.frame.
The report()
RSP-embedded TeX templates for
CBS
and PairedPSCBS
data did not escape sample
and data set names to LaTeX in all places needed.
ROBUSTNESS: Package test coverage is 62%.
ROBUSTNESS: Explicitly importing core R functions.
bootstrapDHByRegion()
is defunct (was
deprecated since 2013).ROBUSTNESS: Package test coverage is 58%.
ROBUSTNESS: Forgot to declare some S3 methods in NAMESPACE.
SPEEDUP: Now using more functions of matrixStats.
Now segmentByPairedPSCBS()
gives a warning about
future change of the default value of argument
preserveScale
(from current TRUE to FALSE). The warning
only appears if the argument is not specified explicitly.
Package now requires R (>= 3.0.0) and Bioconductor (>= 2.13), which were released April 2013 and are in fact old and it’s recommended to use a more recent version of R.
Now using use()
of R.utils where
possible.
Bumped package dependencies.
pruneByHClust()
for PairedPSCBS
would give
an error on
unable to find an inherited method for function 'anyMissing' for signature '"PairedPSCNSegments"'
,
unless the object contained bootstrap statistics. This is no longer
needed. Thanks to Junsong Zhao, Los Angeles, CA for reporting on
this.Minor speedup (a few percents) by now byte compiling the package by default.
CLEANUP: Dropped unnecessary usage of ::
.
Bumped package dependencies.
GENERALIZATION: Now callROH()
also works if paired
PSCBS was done with only muN
available (and not
betaN
). In that case, it assumes that all genotype
confidence scores are equal.
Updated the ordering and the defaults of testROH()
arguments to make it clear that betaN
is optional and only
used if csN
is not given.
As an alternative to argument CT
,
segmentByPairedPSCBS()
now accepts arguments
thetaT
and thetaN
, in case CT
is
calculated as CT = 2 * thetaT / thetaN
.
in max(c(NA_integer_, NA_integer_), na.rm = TRUE) : no non-missing arguments to max; returning -Inf
.callROH()
could throw
Error in if (is.na(delta)) { : argument is of length zero
.preserveScale
to
segmentByPairedPSCBS()
, which is passed as is to
normalizeTumorBoost()
with the default being TRUE
corresponding to the previous default behavior.unTumorBoost()
to recalculating the segment means
and other statistics for a given PairedPSCBS
profile based
on non-TumorBoosted tumor BAFs (rather than TumorBoost:ed tumor
BAFs).Now estimateKappaByC1Density()
give more informative
error messages if it failed to identify modes for estimating the
parameter.
Added argument from
to
estimateKappaByC1Density()
.
updateMeansC1C2()
for PairedPSCBS
did
not handle missing values (= “splitters”) in the c1c2Swap
field.
updateMeans()
for PairedPSCBS
and
NonPairedPSCBS
returned the incorrect DH segment levels for
region in AB if adjustFor = "ab"
and likewise for segments
in LOH if adjustFor = "loh"
. This bug does not
affect any of PSCBS methods themselves, because none of
them utilize those adjustFor
options.
all.equal()
for CBS
would pass the
first/dispatch argument to NextMethod()
as
target = target
and not as object = target
,
which would result in it being passed it twice both named and non-named
where the latter would become argument
tolerance = target
in an internal call to
all.equal()
for numerics. In recent R-devel version this
would generate
Error in all.equal.numeric(target[[i]], current[[i]], check.attributes = check.attributes, : 'tolerance' should be numeric Calls: stopifnot ... all.equal.default -> all.equal.list -> all.equal -> all.equal.numeric
.segmentByPairedPSCBS()
asserts that
argument muN
is not all NAs. Similarily, if
muN
is called from betaN
the same assertion is
done after calling.estimateDeltaCN()
for CBS
have the
option to estimate the size of a copy-number unit based on the
change-point magnitutes, in addition to the estimator based on the
density of segment means.getChangePoints()
for CBS
returned empty
results.dropSegmentationOutliers()
.Added callGLAO()
for CBS
.
Added encodeCalls()
for data.frame
object returned by
getLocusData(..., addCalls = TRUE)
.
Added clearCalls()
for
AbstractCBS
.
Added extractSegmentDataByLocus()
for
PairedPSCBS
.
estimateDeltaCN()
for CBS
assumed
aroma.light was attached.estimateDeltaCN()
for CBS
. Added
package system test.callGainsAndLosses()
for CBS
would not
estimate the median median CN level correctly if there were “empty”
segments (e.g. gaps). This was/is due to a bug in
segments.summary()
of the DNAcopy package.
Instead, we are now calculating the segment median levels ourselves.
Added a system package test for callGainsAndLosses()
.setLocusData()
and
setSegments()
for AbstractCBS
.plotTracksManyChromosomes()
for
PairedPSCBS
also supports tracks "c1,c2"
,
"c1"
, and "c2"
.plotTracksManyChromosomes()
uses the locus data
field rho
when plotting DH locus-level data. It only
recalculates it from the tumor BAFs if the DH signals are not available
- if so a warning is generated.rho
signals returned by
getLocusData(..., fields = "full")
for
PairedPSCBS
would have values also for homozygote
SNPs.Now all warnings generated by DNAcopy::CNA()
are
suppressed, including the common one on
array has repeated maploc positions
.
Added getBootstrapLocusSets()
for
PairedPSCBS
. Added a package system test for it.
Added argument subset
to
applyByRegion()
for PairedPSCBS
.
Added clearBootstrapSummaries()
for
PairedPSCBS
.
SPEEDUP: Added argument cache
to
bootstrapSegmentsAndChangepoints()
, which caches the
results to file if cache = TRUE
.
plotTracks()
for PairedPSCBS
would use
argument Clim
for Blim
as well, regardless of
what argument Blim
is. This bug was introduced in
v0.38.3.CLEANUP: Removed a few unnecessary NAMESPACE imports.
Bumped package dependencies.
plotTracks()
for CBS
and
PSCBS
gives a more informative error if Clim
or Blim
is invalid. If using "auto"
(only for
CBS
) and the limits could not be inferred due to an unknown
or unset signal type, an informative error message reports on this as
well.Now the package vignettes are in vignettes/
, and not
in inst/doc/
, which will not be supported by R (>=
3.1.0).
ROBUSTNESS: The overriding of append()
to become a
generic function does now call base::append()
in the
default, instead of copy the latter. All this will eventually be
removed, when proper support for c
, [
,
[[
etc. has been added everywhere.
CLEANUP: Now explicitly importing only what is needed in NAMESPACE.
getSmoothLocusData()
for CBS
also
returns column count
which specifies the number of (finite)
loci averaged over in each bin.Vignette ‘Total copy-number segmentation using CBS’ would display the same plot as vignette ‘Parent-specific copy-number segmentation using Paired PSCBS’.
Renamed vignette ‘Paired PSCBS’ to ‘Parent-specific copy-number segmentation using Paired PSCBS’.
tileChromosomes()
for CBS
did not set the
tiledChromosomes
attribute due to a typo. This caused
plotTracks()
for CBS
to horizontally misplace
the plotted segment levels. Added a system tests for this for
CBS
and PairedPSCBS
objects. Thanks to Ilari
Scheinin at VUMC for reporting on this.SPEEDUP: R CMD check
is now significantly faster due
to copying of pre-generated calculations (“memoization”). For instance,
the the same segmentation tests are roughly 40% faster compared to
version 0.37.2.
Now PSCBS imports R.cache (used to only suggest it).
SPEEDUP: Now utilizing matrixStats functions in more places.
ROBUSTNESS: Further improved how aroma.light is handled for backward compatibility.
Bumped package dependencies.
CLEANUP: Now package avoids attaching suggested packages such as
R.cache, aroma.light, and
Hmisc by only importing the set of functions needed via
::
. This way those packages are only loaded. Packages that
still need to be attached are done so “quietly”.
CLEANUP: Minor adjustments to some of the internal workarounds for older versions of matrixStats and aroma.light.
Forgot to import several functions from matrixStats. These went undetected because aroma.light (<= 1.31.5) attaches the matrixStats.
segmentByPairedPSCBS()
assumed
aroma.light was attached.
One of the system tests assumed R.utils was attached.
WORKAROUND: For now, package attaches the utils package. This is needed due to what appears to be a bug in how R.oo finalizes Object:s assuming utils is attached, which may not be the case (unless R.oo itself is attached).
callGNL()
for PairedPSCBS
used
non-defined verbose
object.
CLEANUP: Package no longer attaches R.utils, only imports it.
ROBUSTNESS: Now package imports only what is needed from DNAcopy.
Added vignette ‘Total copy-number segmentation using CBS’.
WORKAROUND: For R (< 3.0.0), hclustCNs()
for
AbstractCBS
would generate
Error in rowAlls(ok) : could not find function "loadMethod"
.
This seems to be a bug in R (< 3.0.0), which we can avoid by
attaching the methods package in
hclustCNs()
.
ROBUSTNESS: Now package imports matrixStats (previously suggested).
ROBUSTNESS: Now package declares S3 methods in the NAMESPACE.
ROBUSTNESS: Package vignettes no longer assumes that the R.rsp package is attached.
ROBUSTNESS: Forgot to import
R.methodsS3::appendVarArgs()
.
Bumped package dependencies.
:::
.extractMinorMajorCNs()
for
PairedPSCBS
acknowledge additional fields related to
(C1,C2).segmentByNonPairedPSCBS()
.Updated the Makefile
for the vignettes and added
.Rinstignore
such that auxiliary (bib and bst) LaTeX files
are not installed but part of the build so they are available to
R CMD check
, which is recently needed by R devel.
Bumped package dependencies.
rm(x)
with
x <- NULL
, cf. R-devel thread ‘Assigning NULL to large
variables is much faster than rm() - any reason why I should still use
rm()?’ on May 25, 2013.\usage{}
lines are at most 90
characters long.Now estimateDeltaCN()
for PairedPSCBS
adjust for the ploidy, if set.
Added ploidy()
and ploidy()<-
for
AbstractCBS
.
Now tileChromosomes()
no longer gives warnings on
max(i): no non-missing arguments to max; returning -Inf
.
SPEEDUP: Now bootstrapTCNandDHByRegion()
for
PairedPSCBS
always estimates the default quantiles in
addition to any requested ones.
SPEEDUP: Made bootstrapTCNandDHByRegion()
much
faster by adding use.names = FALSE
to two internal
unlist()
statements.
updateMeans()
for PairedPSCBS
and
NonPairedPSCBS
could include a signal from a neighboring
segment when averaging, iff that signal was located at the exact locus
of the change point. Thanks Ingrid Lonnstedt (WEHI) for reporting on
this.updateMeans()
would not always preserve the
originally specified segment-mean level estimator, if different from a
(sample) mean estimator, e.g. avgDH = "median"
. This could
result in for instance callAB()
failing on internal sanity
checks.
Segment levels drawn by plotTracks()
would have
incorrect genomic locations for chromosome 2 and beyond. This bug was
introduced in v0.34.7.
startupMessage()
of
R.oo.AbstractCBS
.Added more arguments to plotTracks()
.
Now drawLevels()
and
drawConfidenceBands()
for CBS
and
PairedPSCBS
also works for multiple chromosomes.
One of the system tests for segmentByPairedPSCBS()
failed in the case when the data was downsampled (in order to meet the
CRAN requirements). The workaround is to use a fix deltaAB
parameter in that case.
Internal calcStatsForCopyNeutralABs()
would give an
error if there was exactly two AB segments.
plotTracks(fit, callLoci = TRUE)
would color loci
incorrectly if more than one chromosome are plotted.callROH()
gives an informative error if called on a
NonPairedPSCBS
object.plotTracks()
.callGainNeutralLoss()
, utilizes
callCopyNeutral()
by default.dropChangePoints()
faster by only
updating the segment statistics/means at the very end.callCopyNeutralByTCNofAB()
for PairedPSCBS
calls segments; it is now a bit more conservative in rejecting
NTCN.ROBUSTNESS: Now calcStatsForCopyNeutralABs()
for
PairedPSCBS
does a better job in identifying the TCN mode
of the AB segments.
Added argument flavor
to
findNeutralCopyNumberState()
specifying how to identify the
main mode of the AB segments.
VISUALIZATION: Now plotTracks()
for
PairedPSCBS
displays thresholds for calling AB, LOH and and
NTCN.
tauA
and tauB
in the help for
segmentByNonPairedPSCBS()
.getLocusData()
for PairedPSCBS
and
NonPairedPSCBS
.Updated the vignettes and the report templates to utilize the new ggplot2 themes - ggplot2 no longer gives a warning on using deprecated functions.
Now report()
for AbstractCBS
also
includes files listed in the optional file .install_extras
of the source RSP template directory. The same filename is used by
R CMD build/check
for including additional source files
needed to build the vignettes.
Authors@R
field to the DESCRIPTION.testROH()
. This
was done in response to the CRAN farm lowering its precision on some
hosts.typeOfWeights
to
estimateKappaByC1Density()
for PairedPSCBS
,
and hence indirectly to estimateKappa()
. The default is
typeOfWeights = "dhNbrOfLoci"
, which may give too much
overall weight to very long segments causing the estimator to fail when
there are only a few number of “C1 = 0” segments. An alternative is to
use typeOfWeights = "sqrt(dhNbrOfLoci)"
.bootstrapTCNandDHByRegion()
for
PairedPSCBS
did not bootstrap from all available loci when
calculating total CNs statistics, iff the segment had been called
run-of-homozygosity (ROH). Internal validation tests caught this. Thanks
to Oscar Rueda at the Cancer Research UK Cambridge Institute for
reporting on this.VignetteBuilder
field to DESCRIPTION.bootstrapTCNandDHByRegion()
.pruneByHClust()
drops any existing segment calls
and quantile mean-level estimates.resetSegments()
for AbstractCBS
,
which drops extra segments columns (e.g. bootstrap statistics and calls)
except those obtained from the segment algorithm.avgDH = "median"
to the
PSCBS vignette’s ‘Experimental’ section.segmentByPairedPSCBS(..., avgDH = "median")
only worked
for single- chromosome data. Same for avgTCN = "median"
.
Thanks Ritu Roy at UCSF for reporting on this.Added arguments avgTCN
and avgDH
to
segmentByPairedPSCBS()
.
Now updateMeans()
and
updateMeansTogether()
methods can estimate the mean levels
either by the sample mean or the median.
CLEANUP: Now packages R.methodsS3 and R.oo are only imported.
CLEANUP: Package no longer explicitly imports digest.
bootstrapTCNandDHByRegion()
works
for more “flavors”, e.g the default ("tcn"
) used by
segmentByNonPairedPSCBS()
.example(segmentByNonPairedPSCBS)
was for the
paired case.R CMD check
.whichVector()
with
which()
, because the latter is now the fastest again.Bumped package dependencies.
CRAN POLICY: Made the examples run faster for
R CMD check
.
...
to
NextMethod()
, cf. R-devel thread “Do not pass ‘…’
to NextMethod() - it’ll do it for you; missing documentation, a bug or
just me?” on Oct 16, 2012.plotTracks()
[and
plotTracksManyChromosomes()
] draws segment levels such that
it is easier to see them even when they are overlapping.SPEEDUP: By default bootstrapTCNandDHByRegion()
for
PairedPSCBS
no longer do sanity checks within the bootstrap
loop. This significantly speed up the method. To run checks, use
argument .debug = TRUE
. In addition, the
callNnn()
methods that need to call this method, does it by
decreasing the amount of verbose output substantially, which in turn
speeds up the process a fair bit.
Now getSegments(..., splitters = TRUE)
for
CBS
and PSCBS
inserts NA rows wherever there
is a “gap” between segments. A “gap” is when two segments are not
connected (zero distance).
ROBUSTNESS: Now append()
for CBS
and
PSCBS
drops column length
from
knownSegments
, iff it exists.
Now nbrOfChangePoints()
for AbstractCBS
calculates only change points of connected neighboring
segments.
seqOfSegmentsByDP()
for AbstractCBS
would not handle empty segments, which could occur if
knownSegments
for instance included centromere
gaps.
segmentByCBS(... knownSegments)
could return
segments for chromosome 0 even though it did not exist in the input
data.
REPORT: Now report()
for AbstractCBS
looks for the RSP template in templates/
, and as a backup
in templates,PSCBS/
. If the latter does not exist, it is
automatically created as a soft link to templates/
of the
PSCBS package. This allows anyone to create their own
customized copy (in templates/
) of the default
PSCBS RSP report.
REPORT: Now report(fit, ..., rspTags)
for
AbstractCBS
looks for the RSP template named
<className>(,<rspTags>),report.tex.rsp
, where
<className>
is class(fit)[1]
and
argument rspTags
is an optional comma-separated character
string/vector. This makes it possible to have different types of report
for the same class of objects.
REPORT: Added argument force
to
report()
for AbstractCBS
. This will copy the
RSP template files again, although they are already in
reports/
output directory.
dropMissingCT
to
segmentByPairedPSCBS()
.pruneByDP()
for
AbstractCBS
.Now tileChromosomes()
also adjusts
knownSegments
.
Added argument dropGaps
to
gapsToSegments()
.
Updated all.equal()
for AbstractCBS
to
compare locus-level data, segments, and other fields.
segmentByCBS(..., undo = +Inf)
returns
much faster, which is possible because there is no need to identify new
change points.undo
to segmentByCBS()
such that
undo = 0
(was undo = +Inf
) now means that it
will not ask DNAcopy::segment()
to undo the segmentation,
and such that undo = +Inf
means that no changepoints will
be identified. The latter case allows you to effectively skip the
segmentation but still calculate all the CBS statistics across a set of
known segments via
segmentByCBS(..., undo = +Inf, knownSegments = knownSegments)
.
Arguments undoTCN
and undoDH
to
segmentByPairedPSCBS()
are adjusted analogously.
Corresponding system tests were added.weightedMedian()
,
which used to be in aroma.light.segmentByNonPairedPSCBS()
forgot to specify namespace
aroma.light when trying to call
findPeaksAndValleys()
.minLength
to
gapsToSegments()
. The default is no longer to drop
zero-length (minLength == -1L
) segments, because if (and
only if) such a segment contains a locus, then
segmentByNnn()
will currently generate an (internal)
error.segmentByPairedPSCBS()
drops loci
for which CT is missing (regardless of betaT). For instance, in rare
cases when the reference (e.g. the normal) is missing, then it may be
that CT is missing while betaT is not.segmentByPairedPSCBS()
specifies
region ranges with greater precision.NTCN
. The corresponding column in the
segmentation results are labeled correspondingly. The Paired PSCBS
vignette was updated accordingly.Paired PSCBS
vignette.segmentByCBS()
for data frame
:s does a
better job identifying the CN signals.delta
for
callCopyNeutralByTCNofAB()
of PairedPSCBS
is
calculated via estimateDeltaCN()
, which estimates the width
of the acceptance regions, used for calling copy neutral states, to be a
function of the normal contamination.all.equal(target, current)
for CBS
objects
would give an error if either target
or
current
had zero segments.writeSegments()
for DNAcopy
objects.as.CNA()
for DNAcopy
added incorrect
chromosome splitters.
as.CNA()
for DNAcopy
would ignore
argument sample
and always return the first
sample.
callROH()
records parameter deltaROH
in the results.callLOH(..., force = TRUE)
would append multiple
lohCall
columns, if called multiple times.segmentByNonPairedPSCBS()
.segmentByPairedPSCBS(..., flavor = "tcn")
.segmentByPairedPSCBS()
would throw
error in $<-.data.frame (*tmp*, "rho" ...
if some
loci had unknown genomic positions.CBS
objects (adopted from ditto
for PairedPSCBS
).Paired PSCBS
vignette.plotTracks(..., add = TRUE)
for
PairedPSCBS
would add TCNs when BAFs and DHs were
intended.report()
for PairedPSCBS
no longer
require non-public packages.report()
, which can be handy on systems where
the default PNG device does not support the alpha channel. Example:
setOption("PSCBS::report/useAlphaChannel", FALSE)
.report()
for PairedPSCBS
.Added argument fields
to getLocusData()
for PairedPSCBS
.
Added renameChromosomes()
to
AbstractCBS
.
Added alpha version of callGainNeutralLoss()
for
PairedPSCBS
, which certainly will be updated in the future.
This caller is tested by the system tests.
Added dropChangePoints()
for
AbstractCBS
.
extractSegments()
for PairedPSCBS
would
return incorrect row indices, more precisely, overlapping data
chunks.
bootstrapTCNandDHByRegion()
for
PairedPSCBS
would resample from a subset of the intended
TCNs, iff the DH mean was non-finite while there were still heterozygous
SNPs. This introduced a bias in the estimates, which was neglectable for
large segments, but for very small segments (a few loci) it could be
relatively large.
extractSegments()
for CBS
and PairedPSCBS
.PairedPSCBS
taken from the aroma.cn package. Some of these may
become public later, but for they should be considered internal.findLargeGaps()
did not handle missing values for
argument chromosome
.
segmentByCBS(..., knownSegments = knownSegments)
would incorrectly throw a sanity-check exception if
knownSegments
contains a segment with start
and stop
positions being equal.
Argument calls
of plotTracks()
for
PairedPSCBS
was ignored if more than one chromosome was
plotted.
getCallStatistics()
for
CBS
asserts that calls have been made. If not, an exception
is thrown.Added details to the help of callLOH()
and
callAB()
on the difference between (AB,LOH) = (TRUE,FALSE)
and (AB,LOH) = (TRUE,NA).
Corrected some of verbose messages of
estimateDeltaLOHByMinC1ForNonAB()
for
PairedPSCBS
objects.
example(segmentByPairedPSCBS)
and the system tests
that are run by R CMD check
are tuned to (by default) run
much faster by segmenting using fewer data points and bootstrapping
using fewer samples. This update was done to meet the new CRAN policy.
By setting environment variable _R_CHECK_FULL_
to
1
the full data set is used instead.extractSegments()
for
PairedPSCBS
gives an informative error message that it is
not supported if CNs were segmented using flavor
"tcn,dh"
.postsegmentTCN()
for PairedPSCBS
could
generate an invalid tcnSegRows
matrix, where the indices
for two consecutive segments would overlap, which is invalid. Thanks to
Minya Pu for reporting on failed sanity check related to this.callGainsAndLosses(..., method = "ucsf-dmad")
for
CBS
objects.indices
to
getLocusData()
to be able to retrieve the locus-level data
as indexed by input data.gapsToSegments()
gave invalid segments for chromosomes
with more than one gap. Now gapsToSegments()
validates
argument gaps
and asserts that it returns non-overlapping
segments.help("segmentByCBS")
how missing values
are dealt with.plotTracks()
for CBS
always returns an
invisible object.pruneBySdUndo()
for CBS
did not work with
more than one array.Added drawChangePoints()
for
AbstractCBS
.
Now pruneByHClust()
for AbstractCBS
updates the segment means.
Added writeSegments()
for PSCBS
object.
Now print()
for AbstractCBS
returns
getSegments(..., simplify = TRUE)
.
Added argument simplify
to
getSegments()
.
Added arguments name
, tags
and
exts
to writeSegments()
and
writeLocusData()
and dropped
filename
.
Added pruneByHClust()
for AbstractCBS
,
with implementation for CBS
and
PairedPSCBS
.
extractCNs()
for CBS
would not return a
matrix but a data.frame.
extractTotalCNs()
for CBS
would give an
error.Added argument updateMeans = TRUE
to
callROH()
for PairedPSCBS
.
Now bootstrapTCNandDHByRegion()
for
PairedPSCBS
preserves NAs for DH and (C1,C2) quantiles, if
the DH mean level is NA, which can happen when a segment is called ROH.
This also makes sure that a segment called ROH will not be called
AB.
An internal sanity check of
bootstrapTCNandDHByRegion()
for PairedPSCBS
would give an error if DH mean levels had been set to NA for segments
called ROH.
Added callSegmentationOutliers()
and
dropSegmentationOutliers()
for data frames.
CLEANUP: Renamed field position
of the example data
to x
. This helps us clean up some of the examples.
bootstrapTCNandDHByRegion()
for
PairedPSCBS
would give an error, if a segment did not have
any TCN signals, which can occur when known segments are specified for
Paired PSCBS.findLargeGaps()
and
gapsToSegments()
.The internal sanity check of testROH()
on weights
was slightly too conservative (required to high precision) when it came
to asserting that the sum of the weights equals one.
resegment()
for PairedPSCBS
called
segmentByCBS()
instead of
segmentByPairedPSCBS()
.
Added resegment()
for CBS
and
PairedPSCBS
for easy resegmentation.
Adjusted segmentByCBS()
such that it can handle
knownSegments
with chromosome boundaries given as -Inf and
+Inf.
Now argument mar
for plotTracks()
defaults to NULL.
ROBUSTNESS: Added redundancy tests for
segmentByCBS()
and segmentByPairedPSCBS()
with
argument knownSegments
.
ROBUSTNESS: Now segmentByCBS()
does more validation
of knownSegments
.
FIX: extractRegions()
for AbstractCBS
would also show verbose output.
Now argument/parameter seed
is correctly preserved
by segmentByCBS()
. So is tbn
for
segmentByPairedPSCBS()
.
segmentByPairedPSCBS()
would give an error when
trying to segment DH if the TCN segment contains no data points, which
could happen if knownSegments
specifies an empty segment,
e.g. centromere.
extractSegments()
for CBS
would throw
an error when there were multiple chromosomes.
Now segmentByCBS(..., w)
stores weights
w
, if given, in the locus-level data table of the returned
CBS object.
Added pruneBySdUndo()
for CBS
, which
does what undo.splits = "sdundo"
for
DNA::segment()
, but on the already segmented
results.
Now updateMeans()
uses locus-specific weights, iff
available.
Added updateBoundaries()
for CBS
to
update (start,stop) per segment.
CORRECTNESS: Now updateMeans()
for CBS
identifies loci via internal segRows
field and no longer by
locations of segment boundaries, which gave slightly incorrect estimates
for “tied” loci.
Now more segmentation parameters are stored in the
CBS
object.
SPEEDUP: Now segmentByCBS()
will use memoization to
retrieve so called “sequential boundaries for early stopping”, iff any
of the DNAcopy::segment()
arguments alpha
,
nperm
and eta
are specified. See also
DNAcopy::getbdry()
.
Added method = "DNAcopy"
to
estimateStandardDeviation()
for CBS
, which
estimates the std. dev. using
DNAcopy:::trimmed.variance()
.
extractSegments()
for CBS
would throw an
error, because in most cases it would created a corrupt internal
segRows
field.Added argument oma
and mar
to
plotTracksManyChromosomes()
for PairedPSCBS
for setting graphical parameters when add = FALSE
.
Added callROH()
.
Added arguments from
and adjustFor
to
updateMeans()
.
extractSegment()
for AbstractCBS
would
give an error, because it called itself instead of
extractSegments()
.save()
and load()
methods to
AbstractCBS
, which are wrappers for
saveObject()
and loadObject()
that assert the
correct class structure. Also, the load()
method will
automatically update the class hierarchy for CBS
and
PairedPSCBS
objects that were saved before adding class
AbstractCBS
.callAmplifications()
for CBS
generated
an error, if more than one chromosome were called.
The length of a segment must be defined as ‘end-start’ and not ‘end-start+1’ so that the the total length of all segments adds up correctly.
highlightArmCalls()
for CBS
did not
handle empty chromosomes.
getCallStatisticsByArms()
for CBS
threw
a error if argument genomeData
did not contain exactly the
same chromosomes as in the CBS
object.
mergeThreeSegments()
for
AbstractCBS
.segmentByPairedPSCBS(data)
not to
work when data
is a data frame.start
and end
to NAs in
knownSegments
(chromosome must still be specified), it is
possible to insert an empty segment that disconnects the two flanking
segments, e.g. centromere and the two arms.segmentByCBS()
via
argument knownSegments
.segmentByPairedPSCBS()
.asMissing
to dropRegions()
for AbstractCBS
.Implemented extractCNs()
for CBS
and
PairedPSCBS
.
Added extractTotalCNs()
for
CBS
.
Added implementation of extractRegions()
for
AbstractCBS
, which utilizes
extractSegments()
.
Added abstract extractSegments()
and
extractSegment()
for AbstractCBS
.
Now extractTCNAndDHs()
for PairedPSCBS
passes ...
to getSegments()
.
CLEANUP: Harmonization of several method names.
CLEANUP: Internal restructuring of the source code files.
Added dropChangePoint()
for
AbstractCBS
, which is just a “name wrapper” for
mergeTwoSegments()
.
Added dropRegion()
and dropRegions()
for AbstractPSCBS
, where the former is a wrapper for the
latter dropRegions()
.
Added updateMeans()
and
mergeTwoSegments()
for CBS
in addition already
available PairedPSCBS
versions.
Relabeled column id
to sampleName
returned by getSegments()
.
For so called “splitter” rows, not all columns returned by
getSegments()
of CBS
were missing
values.
The object returned by as.CBS()
for
DNAcopy
did not have the correct class hierarchy.
getSegments()
everywhere
possible.Added all.equal()
for AbstractCBS
,
which does not compare attributes.
Added optional argument regions
to
getCallStatistics()
for CBS
in order to
calculate call statistics on subsets of chromosomes, e.g. chromosome
arms.
Added drawChromosomes()
for
CBS
.
Added getCallStatisticsByArms()
,
callArms()
, and highlightArmCalls()
for
CBS
objects.
getChromosomeRanges()
of CBS
returns a data.frame instead of a matrix, and first column is now
chromosome
.GENERALIZATION: Now segmentByCBS()
and
segmentByPairedPSCBS()
also accepts a data.frame of
locus-level data with column names matching the locus-level arguments
accepted by the corresponding method.
GENERALIZATION: Now all segmentation result classes
(CBS
and PSCBS
) inherits from the
AbstractCBS
class, which provides methods such as
getSampleName()
, getChromosomes()
and
getSegments()
.
callSegments()
for
PairedPSCBS
.drawLevels()
for
PairedPSCBS
allows for drawing segmentation results in
‘betaT’ space.plotTracks2(..., panels = "dh")
gave an error due to a
forgotten assignment.Added formal class CBS
, which holds the segmentation
results returned by segmentByCBS()
. Several methods are
available for CBS
objects, e.g. nbrOfLoci()
,
nbrOfSegments()
, nbrOfChromosomes()
,
getChromosomes()
, estimateStandardDeviation()
,
etc.
Now segmentByCBS()
always returns a CBS
object. To coerce to a DNAcopy
object (as defined in the
DNAcopy
class) use as.DNAcopy()
.
Added coerce methods as.DNAcopy()
for
CBS
objects and as.CBS()
for
DNAcopy
objects.
GENERALIZATION: Now segmentByCBS()
can process
multiple chromosomes.
Added append()
for CBS
objects.
plotTracksManyChromosomes()
and
tileChromosomes()
for CBS
did not work at all
and therefore neither plotTracks()
for CBS
with more than one chromosome.R CMD check
is no longer giving a note
that the package loads package DNAcopy in
.onAttach()
.dropSegmentationOutliers()
would drop an outlier
next to a change point, such that the total copy-number signal becomes
NA, then the sanity checks that TCN segments always overlaps DH segments
would fail. Now the sanity checks are aware of this special case. These
sanity checks were moved from bootstrapTCNandDHByRegion()
to segmentByPairedPSCBS()
. Thanks Christine To at
University of Toronto for reporting on this.cat()
.Added a section to help("segmentByPairedPSCBS")
on
the importance of doing a whole-genome PSCBS segmentations if calling AB
and LOH states afterward.
Made it more clear in help("segmentByPairedPSCBS")
that arguments betaT
, betaN
and
muN
may contain NAs for non-polymorphic loci.
tcnnbrOfLoci
instead of tcnNbrOfLoci
.
This would cause several downstream methods to give an error. The reason
for this is that the Hmisc package, if loaded after
R.utils, overrides capitalize()
in
R.utils with another (buggy?) capitalize()
function. To avoid this, we now everywhere specify explicitly that we
want the one in R.utils. Thanks Christine To at
University of Toronto for reporting on this.tileChromosomes()
for PairedPSCBS
was
still assuming the old naming convention of column names. This caused
plotTracks()
to throw an exception when plotting multiple
chromosomes.arrowsC1C2()
and arrowsDeltaC1C2()
for
PairedPSCBS
.estimateDeltaLOH()
uses returns -Inf if all segments are
called AB, instead of throwing an exception. This will in turn make
callLOH()
call all segments to be non-LOH.callAB(..., force = TRUE)
would
append additional abCall
columns to the segmentation table
instead of replacing existing calls.estimateDeltaLOHByMinC1AtNonAB()
for
PairedPSCBS
object. The test asserts that there exist
segments that are not in allelic balance, which are needed in order to
estimate DeltaLOH.chromosome
for
segmentByPairedPSCBS()
did not describe how to segment
multiple chromosomes in one call.tcnNbrOfSNPs
and
tcnNbrOfHets
were mistakenly labeled as
tcnNbrOr...
. Thanks Christine Ho at UC Berkeley for
reporting on this.Clarified that argument CT
should be tumor copy
number ratios relative to the normal.
Added Rd help for as.data.frame()
of
PairedPSCBS
.
columnNamesFlavor
to
segmentByCBS()
.CLEANUP: Cleaned up the example()
:s.
Added more biocViews
categories to
DESCRIPTION.
GENERALIZATION: The package can now be installed without the DNAcopy package being installed. If package is loaded without DNAcopy installed, an informative message will explain how to install it.
Added installDNAcopy()
, which will install
DNAcopy from Bioconductor.
DNAcopy::nnn()
.Renamed package to PSCBS (from psCBS).
Renamed all arguments, variables, and functions referring to
tau
to refer to delta
reflecting the notation
of the Paired PSCBS paper.
Renamed options, example code and help pages to reflect new package name.
Updated references in help pages.
Now the paired PSCBS is formally referred to as ‘Paired PSCBS’.
maxC
to
estimateTauLOHByMinC1ForNonAB()
.max
to estimateTauAB()
and
estimateTauLOH()
.minSize
of callAB()
and
callLOH()
had no effect.Added argument minSize
to callAB()
and
callLOH()
for PairedPSCBS
.
Now the a conflicting call in
callLOH()
/callAB()
with argument
xorCalls = TRUE
is set to NA to contrast it from a FALSE
call.
xorCalls
to callLOH()
and
callAB()
for PairedPSCBS
. When TRUE (the
default), a segment that is already called AB will never be called LOH,
and vice versa.Updated estimateTauABBySmallDH()
for
PairedPSCBS
to use a “symmetric” quantile
estimator.
Added argument midpoint
to
estimateTauLOHByMinC1AtNonAB()
.
callLOH()
would not store the LOH
calls.Added callLOH()
for PairedPSCBS
, which
in turn calls auxiliary methods.
Added estimateTauLOH()
for PairedPSCBS
,
which in turn calls auxiliary methods.
Now callAB(..., force = FALSE)
skips the caller if
allelic-balance calls already exist.
segmentByPairedPSCBS()
to
reflect the restructured AB and LOH callers.Added estimateTauABBySmallDH()
.
Added internal weightedQuantile()
.
postsegmentTCN()
for PairedPSCBS
could
generate an invalid tcnSegRows
matrix, where the indices
for two consecutive segments would overlap, which is invalid. This was
caught with real data, but it seems to have required a very rare
combination of data in order for it to occur.estimateHighDHQuantileAtAB()
for
PairedPSCBS
would throw an error on an undefined
trim
if verbose output was used.estimateHighDHQuantileAtAB()
for
PairedPSCBS
.plotTracks2()
queried non-existing argument
tracks
.estimateKappa()
for estimating the normal
contamination.tauAB
of
callABandHighAI()
and callABandLowC1()
to be
estimated from data using estimateTauAB()
.tauTCN
to
estimateTauAB()
.flavor
to estimateTauAB()
for estimating the AB threshold using alternative methods.Added trial version of new plotTracks2()
, which will
later replace plotTracks()
. Currently it only works for
single chromosomes.
Added support functions,
e.g. updateMeans()
.
Added arguments changepoints
and col
to
plotTracks()
for PairedPSCBS
.
Now plotTracks(..., add = FALSE)
for
PairedPSCBS
only sets up subplots if argument
tracks
specifies more than one panel.
plotTracks()
arguments for
PairedPSCBS
.plotTracks(..., add = TRUE)
for
PairedPSCBS
plots to the current figure/panel.tcnSegRows
and dhSegRows
where not updated
by extractByRegions()
for PairedPSCBS
.Added estimateTauAB()
for estimating the tauAB
tuning parameter when calling segments in allelic balance. Updated
example(segmentByPairedPSCBS)
to illustrate how to use
it.
Added extractByRegions()
for
PairedPSCBS
.
postsegmentTCN(..., force = TRUE)
for
PairedPSCBS
also updates the TCN estimates even for
segments where the DH segmentation did not find any additional change
points.segmentByPairedPSCBS()
, then the returned data object would
contain betaT
identical to betaTN
.callLowC1ByC1()
and
callABandLowC1()
.range
, more precisely where (range[,2]
>= range[,1]
) is not true. This can happen if there is
no variation in the bootstrap estimates. Because of this we allow for
some tolerance.psCBS/sanityChecks/tolerance
for
specifying the tolerance of some internal sanity checks.segRows
element
returned by DNAcopy::segment()
. Lots of the code was
rewritten and therefore completely new bugs may have been
introduced.Argument flavor
of
segmentByPairedPSCBS()
would be ignored if multiple
chromosomes were segmented.
extractByChromosome()
for PSCBS
would
call it self instead of extractByChromosomes()
.
postsegmentTCN()
did not handle loci with the same
positions and that are split in two different segments. It also did not
exclude loci with missing values.The algorithm in segmentByCBS()
that infers which
loci (of the ones share the same genomic positions) that should be
exclude from each segment did not take missing signals into
account.
Iff argument chromosome
to
segmentByPairedPSCBS()
was of length greater than one and
specified exactly one unique chromosome, then exception
Number of elements in argument 'chromosome' should be exactly 8712 not 86209 value(s)
would be thrown.
bootstrapTCNandDHByRegion()
would incorrectly
include non-polymorphic loci in the set of homozygous SNPs during
resampling.
segmentByPairedPSCBS()
would not accept missing
values in argument chromosome
.
Now arguments ...
of
segmentByPairedPSCBS()
are passed to the two
segmentByCBS()
calls.
Added callSegmentationOutliers()
, which can be used
to identify single-locus outliers that have a genomic signal that is
clearly outside the expected range. The
dropSegmentationOutliers()
sets locus outliers detected by
this method to missing values. This is useful for excluding total
copy-number outliers that otherwise can have a dramatic impact on the
non-robust CBS method.
Added optional argument chromosomes
to
plotTracks()
to plot a subset of all chromosomes.
Added extractByChromosomes()
for
PSCBS
.
Now the default confidence intervals for
plotTracks()
is (0.05,0.95), if existing.
Now all call functions estimate symmetric bootstrap quantiles for convenience of plotting confidence intervals.
callABandHighAI()
for PairedPSCBS
used
the old DH-only bootstrap method.
The statistical sanity checks of the bootstrap estimates would give an error when only single-sided bootstrap confidence interval was calculated.
The call functions, for instance callABandHighAI()
,
would throw
Error in quantile.default(x, probs = alpha) : missing values and NaN's not allowed if 'na.rm' is FALSE
,
unless bootstrapTCNandDHByRegion()
was run before.
ROBUSTNESS: Added more sanity checks to
bootstrapTCNandDHByRegion()
.
WORKAROUND: The precision of the mean levels of
DNAcopy::segment()
is not great enough to always compare it
to that of R’s estimates.
bootstrapTCNandDHByRegion()
would give an error if
there was only one segment.
segmentByPairedPSCBS()
and
bootstrapTCNandDHByRegion()
would not subset the correct
set of DH signals if there were some missing values in TCN.
Added argument calls
to plotTracks()
for highlighting called regions.
Updated callAllelicBalanceByDH()
and
callExtremeAllelicImbalanceByDH()
to utilize
bootstrapTCNandDHByRegion()
.
ROBUSTNESS: Now drawConfidenceBands()
of
PairedPSCBS
silently does nothing if the requested
bootstrap quantiles are available.
bootstrapTCNandDHByRegion()
for
PairedPSCBS
would not correctly detect if bootstrap results
are already available.Now plotTracks()
supports tracks
"tcn,c1"
, "tcn,c2"
, and "c1,c2"
too.
Added support for flavor "tcn&dh"
in
segmentByPairedPSCBS()
, which contrary to
"tcn,dh"
enforces TCN and DH to have the same change
points. The default flavor is now "tcn&dh"
.
Added argument xlim
to plotTracks()
making it possible to zoom in.
Now joinSegments = TRUE
is the default for
segmentByCBS()
and
segmentByPairedPSCBS()
.
Added argument quantiles
to
plotTracks()
, which if specified draws confidence bands
previously estimated from bootstrapping.
Added drawConfidenceBands()
for
PairedPSCBS
.
Added bootstrapTCNandDHByRegion()
for
PairedPSCBS
.
Added standalone joinSegments()
for CBS
results.
Now segmentByPairedPSCBS()
also returns minor and
major copy numbers for each segment.
Adjusted postsegmentTCN()
such that the updated TCN
segment boundaries are the maximum of the DH segment and the support by
the loci. This means that postsegmentTCN()
will work as
expected both when signals where segmented with
joinSegments
being TRUE or FALSE.
Updated plotTracks()
for PairedPSCBS
such that the TCN segmentation is colored ‘purple’ and the DH
segmentation ‘orange’ for TCN and DH only tracks.
Now it is possible to specify the boundaries of the regions to be
segmented as known change points via argument
knownCPs
.
Added argument joinSegments
to
segmentByCBS()
and segmentByPairedPSCBS()
in
order to specify if neighboring segments should be joined or
not.
Now segmentByCBS()
and
segmentByPairedPSCBS()
allow for unknown genomic positions
as well as missing total CN signals.
joinSegments
to
segmentByCBS()
in order to specify if neighboring segments
should be joined or not.Added plotTracks()
and drawLevels()
etc. to CBS results.
Now segmentByCBS()
allows for unknown genomic
positions.
Now segmentByCBS()
allows for missing
signals.
Added argument preserveOrder
to
segmentByCBS()
. If TRUE, then the loci in the returned
data
object are ordered as the input data, otherwise it is
ordered along the genome.
data
object returned by
segmentByCBS()
contains field index
if and
only if the loci had to be reorder along the genome.segmentByPairedPSCBS()
would fail to infer which they were if and only if the loci were not
ordered along the genome. This could happen with for instance Affymetrix
GenomeWideSNP_6
data.cex = 1
to
plotTracks()
.plotTracks()
.segmentByCBS()
tried to pass non-existing argument
undo.split
to DNAcopy::segment()
. It should be
undo.splits
.stop()
statement left in
segmentByPairedPSCBS()
causing an “error” in the rare case
when loci that have the same physical locations are split into two
different segments.bootstrapDHByRegion()
uses
resample()
of R.utils.bootstrapDHByRegion()
did not sample from the correct
unit(s) when there was only one DH signal.Added arguments undoTCN
and undoDH
to
segmentByPairedPSCBS()
.
Added argument undo
to segmentByCBS()
,
which corresponds to undo.splits = "sdundo"
and
undo.SD = undo
, if undo < +Inf.
alphaTCN
and alphaDH
of
segmentByPairedPSCBS()
were not used when more than one
chromosome were segmented.alphaAB
and alphaHighAI
to
callABandHighAI()
.bootstrapDHByRegion()
would give an error if only a
single quantile was requested.
bootstrapDHByRegion()
would give
Error in if (nbrOfUnits > segJJ[, "dh.num.mark"]) { : missing value where TRUE/FALSE needed
when dh.num.mark
was NA.
Now the default is a 95% confidence interval for calls.
Now segmentByCBS()
also returns element
lociNotPartOfSegment
, if there are segments that share end
points, which can happen if a change point is called in middle of a set
of loci that have the same genomic positions. In such cases,
lociNotPartOfSegment
specifies which loci are not
part of which segment. Then by identifying the loci that are within a
segment by their positions and excluding any of the above, one knows
exactly which loci CBS included in each segment.
Now bootstrapDHByRegion()
for
PairedPSCBS
handles the rare case when markers with the
same positions are split in two different segments.
Now the correct set of loci are extracted from each TCN segment, in the rare case that two neighboring TCN segments have the same end points.
ciRange
to
callAllelicBalance()
and
callExtremeAllelicImbalance()
.bootstrapDHByRegion()
for PairedPSCBS
would bootstrap from the incorrect set of loci when the DH region
contained only one locus.
bootstrapDHByRegion()
for PairedPSCBS
would bootstrap from the incorrect set of loci if more than one
chromosome was available.
plotTracks()
would give
Error: object 'nbrOfLoci' not found
for whole-genome
plots.plotTracks()
can plot whole-genome data.alphaTCN
and alphaDH
to
segmentByPairedPSCBS()
with defaults according to the
paper.segmentByPairedPSCBS()
can segment multiple
chromosomes.tbn
to
segmentByPairedPSCBS()
specifying whether
TumorBoostNormalization should be applied or not.segmentByPairedPSCBS()
is now to
segment TCN on the original scale, not the sqrt()
.plotTracks()
for PairedPSCBS
.chromosome
to
segmentByCBS()
. Note that at this point it is only used for
annotating the results; it can not be used to segmented multiple
chromosomes at ones.subsetBySegments()
and
postsegmentTCN()
for PairedPSCBS
handles
multiple chromosomes.postsegmentTCN()
for PairedPSCBS
,
which updates the TCN segment start and ends, estimates and counts given
the DH segments.chromosome
to
segmentByPairedPSCBS()
, which, if given, adds a chromosome
column to the data and segmentation results.plot()
for PairedPSCBS
used a non-defined
variable.callABandHighAI()
for calling paired PSCBS
segmentation results.PSCBS
class.Added more methods for the PSCBS
class.
Now segmentByPairedPSCBS()
also returns the
TumorBoost normalized data.
segmentByPairedPSCBS()
to provide two-step
segmentation from first segmenting the total copy numbers and then the
decrease-of-heterozygosity signals. Added utility functions for plotting
the results. The code for calling allelic imbalance and LOH is still to
be added.segmentByCBS()
also works if there are no data
points.callNaiveHeterzygotes()
, which is a cleaned up
version of findheterozygous()
. Added Rd example that
asserts that the two are identical and compares the calls to those of
aroma.light::callNaiveGenotypes()
.Added low-level segmentByPairedPSCBS()
, which runs
paired PSCBS segmentation on a single sample and a single chromosome. It
only segments; it does not call segments. This is only a stub in the
sense that it still does not adjust p-values etc.
Added low-level segmentByCBS()
, which runs CBS
segmentation on a single sample and a single chromosome.
BACKWARD COMPATIBILITY: Now psCNA()
returns a list
of length 8.
Reverted psSegment()
back to v0.5.6.
Now psSegmentPaired()
returns a data frame (no
longer a matrix).
CLEANUP: Created psSegmentPaired()
from
psSegment()
.
CLEANUP: Major cleanup, i.e. renaming variables, reordering etc.
ROBUSTNESS: Replaced all 1:n
with
seq(length = n)
to deal with n == 0
.
ROBUSTNESS: Now all list elements are referenced by name.
ROBUSTNESS: Now all iterator variables are written as
ii
, jj
, etc.
Using setMethodS3()
of R.methodsS3
to define S3 methods.
Dropping NAMESPACE while package is finished. This makes it easier to patch methods, etc.
example(psSegment)
.Previous clean up introduced bugs.
The dynamic library for hrmode()
was not
loaded.
Added internal hrmode()
.
CLEANUP: Renamed source files to match function names. Only only function per source file.
psSegment(..., matching.reference = TRUE)
does
TumorBoost normalization on the allele B fractions before
segmentation.