Oscar, sorry for the delay on this one.
Your problem was somewhat related to Ingrid's non-paired data (see
other thread of today). I've verified that PSCBS v0.35.0 runs all the
way through with ROH, AB, LOH and NTCN calls using your data
('faultySample.Rbin'; 38,474,760 bytes). Update by:
source("
http://aroma-project.org/hbLite.R");
hbInstall("PSCBS");
For what's updated, see NEWS under PSCBS after doing help.start().
The script I used to verify your paired tumor-normal data is:
stopifnot(packageVersion("PSCBS") >= "0.35.0");
library("PSCBS");
library("R.devices");
devOptions("png", width=1024);
setOption("devEval/args/force", FALSE);
sampleName <- "faultySample";
## Load the data you send me several weeks ago
pathname <- sprintf("%s.Rbin", sampleName);
fit <- loadObject(pathname);
data <- getLocusData(fit);
rm(fit);
## Locate centromeres and other large gaps in data
gaps <- findLargeGaps(data, minLength=1e6);
knownSegments <- gapsToSegments(gaps);
## => dim(knownSegments) == c(64, 4)
## Paired PSCBS segmentation
## 'betaT' is already normalized using TumorBoost => tbn=FALSE.
fit <- segmentByPairedPSCBS(data, knownSegments=knownSegments,
tbn=FALSE, avgDH="median", seed=4874, verbose=-10);
printf("Number of segments: %d\n", nbrOfSegments(fit));
## Number of segments: 481
## Identify run of homozygosity (ROH) in germline
fit <- callROH(fit, verbose=-10);
printf("Number of ROH segments: %d\n", sum(getSegments(fit)$rohCall,
na.rm=TRUE));
## Number of ROH segments: 44
## Estimate global background level in [0,1] (due to normal
contamination and more)
kappa <- estimateKappa(fit, verbose=-10);
printf("Kappa: %g\n", kappa);
## Kappa: 0.700498 => Large background signal
## Call allelic balance
## (a) Estimate DH threshold for calling AB
deltaAB <- estimateDeltaAB(fit, kappa=kappa); # If skipped, will be
done internally
printf("Delta_AB: %g\n", deltaAB);
## Delta_AB: 0.176208
## (b) Call AB based on bootstrapped segment DH levels
fit <- callAB(fit, delta=deltaAB, verbose=-10);
printf("Number of AB segments: %d\n", sum(getSegments(fit)$abCall, na.rm=TRUE));
## Number of AB segments: 321
## Call loss of heterozygosity (LOH)
## (a) Estimate C_1 threshold for calling LOH
deltaLOH <- estimateDeltaLOH(fit); # If skipped, will be done internally
printf("Delta_LOH: %g\n", deltaLOH);
## Delta_LOH: 0.75476
## (b) Call LOH based on bootstrapped segment C_1 levels
fit <- callLOH(fit, delta=deltaLOH, verbose=-10);
printf("Number of LOH segments: %d\n", sum(getSegments(fit)$lohCall,
na.rm=TRUE));
## Number of LOH segments: 71
## Call NTCN
## (a) Estimate the threshold for calling neutral TCN segments
## By shrinking 'scale', more segments will be non-NTCN.
deltaCN <- estimateDeltaCN(fit, scale=1, kappa=kappa);
printf("Delta_CN: %g\n", deltaCN);
## Delta_CN: 0.149751
## (b) Call NTCN based on bootstrapped segment TCN levels
fit <- callNTCN(fit, delta=deltaCN, verbose=-20);
printf("Number of NTCN segments: %d\n", sum(getSegments(fit)$ntcnCall,
na.rm=TRUE));
## Number of NTCN segments: 296
toPNG(sampleName, tags="tracks,avgDH=median,ROH+AB+LOH+NTCN", aspectRatio=0.6, {
plotTracks(fit);
})
/Henrik