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.