Parent-Specific copy number segmentation

Share:

Description

This function splits (bivariate) copy number signals into parent-specific (PS) segments using recursive binary segmentation

Usage

1
2
PSSeg(data, method, stat = NULL, dropOutliers = TRUE, rankTransform = FALSE, 
    ..., profile = FALSE, verbose = FALSE)

Arguments

data

Data frame containing the following columns:

c:

Total copy number (logged or non-logged)

b:

Allele B fraction

genotype:

(germline) genotype of the SNP, coded as 0 for AA, 1/2 for AB, 1 for BB

These data are assumed to be ordered by genome position.

method
"RBS"

Recursive Binary Segmentation, see doRBS

"GFLars"

Group fused LARS as described in Bleakley and Vert (2011).

"DP"

Univariate pruned dynamic programming Rigaill et al (2010) or bivariate dynamic programming

"PSCBS"

Parent-specific copy number in paired tumor-normal studies using circular binary segmentation by Olshen A. et al (2011)

"other"

The segmentation method is passed as a function using argument segFUN (see examples in directory otherMethods).

stat

A vector containing the names or indices of the columns of Y to be segmented

dropOutliers

If TRUE, outliers are droped by using DNAcopy package

rankTransform

If TRUE, data are replaced by their ranks before segmentation

...

Further arguments to be passed to jointSeg

profile

Trace time and memory usage ?

verbose

A logical value: should extra information be output ? Defaults to FALSE.

Details

Before segmentation, the decrease in heterozygosity d=2|b-1/2| defined in Bengtsson et al, 2010 is calculated from the input data. d is only defined for heterozygous SNPs, that is, SNPs for which data$genotype==1/2. d may be seen as a "mirrored" version of allelic ratios (b): it converts them to a piecewise-constant signals by taking advantage of the bimodality of b for heterozygous SNPs. The rationale for this transformation is that allelic ratios (b) are only informative for heterozygous SNPs (see e.g. Staaf et al, 2008).

Before segmentation, the outliers in the copy number signal are droped according the method explained by Venkatraman, E. S. and Olshen, A. B., 2007.

The resulting data are then segmented using the jointSeg function, which combines an initial segmentation according to argument method and pruning of candidate change points by dynamic programming (skipped when the initial segmentation *is* dynamic programming).

If argument stat is not provided, then dynamic programming is run on the two dimensional statistic "(c,d)".

If argument stat is provided, then dynamic programming is run on stat; in this case we implicitly assume that stat is a piecewise-constant signal.

Author(s)

Morgane Pierre-Jean and Pierre Neuvial

References

Bengtsson, H., Neuvial, P., & Speed, T. P. (2010). TumorBoost: Normalization of allele-specific tumor copy numbers from a single pair of tumor-normal genotyping microarrays. BMC bioinformatics, 11(1), 245.

Staaf, J., Lindgren, D., Vallon-Christersson, J., Isaksson, A., Goransson, H., Juliusson, G., ... & Ringn\'er, M. (2008). Segmentation-based detection of allelic imbalance and loss-of-heterozygosity in cancer cells using whole genome SNP arrays. Genome Biol, 9(9), R136.

See Also

jointSeg

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
## load known real copy number regions
affyDat <- loadCnRegionData(dataSet="GSE29172", tumorFraction=0.5)

## generate a synthetic CN profile
K <- 10
len <- 1e4
sim <- getCopyNumberDataByResampling(len, K, regData=affyDat)
datS <- sim$profile

## run binary segmentation (+ dynamic programming) resRBS <-
resRBS <- PSSeg(data=datS, method="RBS", stat=c("c", "d"), K=2*K, profile=TRUE)
resRBS$prof

getTpFp(resRBS$bestBkp, sim$bkp, tol=5)
plotSeg(datS, breakpoints=list(sim$bkp, resRBS$bestBkp))

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.