On Tue, Mar 26, 2013 at 10:03 PM, Ingrid Lönnstedt
<ingrid.lonnst...@gmail.com> wrote:
>
> Thank you Henrik!
> OK, I followed your instructions, and the same problem (the error in 
> callAB()) remains, or rather, it now occurs already in sample one. Also,
>
> 1. My Nuse plot after calmate calibration look different from before (no 
> longer symmetric around 1, see below).

Were you meant to attach something here?

> What difference does it make to plm that I used RmaCnPlm instead of AvgCnPlm 
> before
> qam <- QualityAssessmentModel(plm); plotNuse(qam); ?

Shouldn't make a significant difference.

> 2. The SNP specific CN estimates get a lot less variable,

Hmm... "lot less" - that sounds like your comparing toward you old CT
= yT / median(yT) - are you?  The difference in total CN shouldn't big
that big.  If you compare to the proper CT = yT / median(<across
samples>) I'd expect you to be less excited at this step.

> but the segmentation gets more variable (more and shorter segments).  I 
> suppose the latter is a consequence of the less variable CNs, so we get a 
> higher sensitivity in some sence. However, I do not know whether it was 
> better with longer and fewer segments for calling AB.

With CalMaTe, did you see similar improvement as with the online
example [http://aroma-project.org/vignettes/CalMaTe]?

>
> So, at the moment I have no idea what to come up with for tomorrows deadline, 
> I suppose it will be some quick fix and I have to go back to this later.

There is no magic solution (except having matched normals - nag
investigators about that over and over and over... until they do it),
but CRMAv2 + CalMaTe normally does a decent job of providing good
(TCN, BAF) signals.

Also, I don't remember if you already told me, but are you working
with fresh frozen tumors or FFPE ones?  The latter are often messy and
I haven't seen any methods that rescue their signals very well.

/Henrik

> All the best,
> Ingrid
>
>
> On Saturday, 23 March 2013 05:03:50 UTC+11, Henrik Bengtsson wrote:
>>
>> Hi Ingrid.
>>
>> On Wed, Mar 20, 2013 at 4:45 PM, Ingrid Lönnstedt
>> <ingrid.l...@gmail.com> wrote:
>> >
>> > Hi!
>> >
>> > I have segmented 56 SNP 6 tumour samples with segmentByNonPairedPSCBS(),
>> > and like to call allelic balance segments with callAB() as required, I
>> > understand, before I can call neutral TCNs with callNTCN().
>>
>> First, I just want to make it clear (to you and others), that calling
>> segments to have copy-neutral TCNs ("NTCN") or not is experimental and
>> under development and was not part of the Paired PSCBS (2011) paper
>> (which only focused on calling AB and LOH).  I've updated the package
>> to clarified this in the vignette.  There I also give a little bit
>> more explanation on what parameters are estimated in order to call
>> NTCN, 'kappa' and 'deltaCN', where 'kappa' is tricky to estimate
>> especially in tumors where nothing much goes on.
>>
>> Second, likewise, Non-paired PSCBS should also be considered
>> experimental (although much less so than calling NTCN).  It's only the
>> Paired PSCBS method that is well tested and published.
>>
>> Third, some heads up (I know some of you are waiting for this): We're
>> improving the NTCN calling as part of our in-house projects, and some
>> potential improvements have already been discovered and may eventually
>> become the default.  We'll make it clear in the vignette when we have
>> a "stable" solution.  (*) Yes, it's 2013 and calling PSCNs in tumors
>> is still not straightforward - it's not easy to find an omnibus method
>> that works in all cases - many tried before us.
>>
>> Fourth, you can install the latest devel version of PSCBS as (recommended):
>>
>> source("http://aroma-project.org/hbLite.R";);
>> hbInstall("PSCBS");
>>
>>
>>
>> > For the first
>> > tumour sample, both callAB() and callNTCN() seem to work fine, but then on
>> > the second sample I get errors with callAB(), see below.
>>
>> See comment after the error.
>>
>> > The plotTracks()
>> > image looks pretty much the same between sample one and two, and I have no
>> > reason to believe that sample two has a major problem in the segmentation. 
>> > 4
>> > of the 56 samples get very noisy segmentations, with lots of short regions
>> > scattered (has anybody seen that before?)
>>
>> Yes, over-segmentation is common in CN analysis.  I'd argue that you
>> actually want a bit of over-segmentation and post-cleanup and/or
>> calling method to handle that.  However, I assume you mean extreme
>> over-segmentation.  There is no simple solution for that.  The ideal
>> solution is to do better normalization of the locus-level data
>> ("whatever method that would be") before you pass it on to the
>> segmentation method.
>>
>> > but that is not the case with
>> > sample one or two. Any suggestions to how I might assess this error?
>> >
>> > Best regards,
>> > Ingrid
>> >
>> > dsNList <- exportTotalAndFracB(cesN, verbose=verbose);
>> > dataN = extractPSCNArray(dsNList$total)
>> >
>> >   yT = dataN[,'total',samp]
>> >   CT = yT/median(yT)
>>
>> Using median(yT) is not correct and will result in unnecessary large
>> amount of noise in the TCN signals.
>>
>> Dropping index 'T'.  Consider a particular sample 'i' (e.g. your tumor
>> of interest) and SNP 'j'. When calculating the relative TCN for this
>> sample and tumor, C_{i,j}, you need to rescale the observed SNP signal
>> y_{i,j} relative to the (unknown) mean SNP signal for this SNP,
>> mu_{j}, i.e. C_{i,j} = 2 * y_{i,j}/mu_{j}.  (*) Multiply by "2" for
>> diploid genomes (GWS6 = human).
>>
>> When you have matched normal ('N'), you often get very good
>> signal-to-noise ratios if you use mu*_{j} = y_{N,j}.  Thus, for the
>> tumor-normal pair (T,N) you would calculate the relative TCNs for the
>> tumor as C_{T,j} = 2 * y_{T,j}/y_{N,j}.
>>
>> When you don't have matched normal, you need to use another estimate
>> for mu_{j}.  It's common to use the robust average of all the samples
>> in your data set, i.e. mu*_{j} = median_{i} (y_{i,j}).
>>
>> FYI, above you are using mu*_{j} = median_{j} (y_{T,j}) - note
>> averaging across SNPs in one sample and not across samples in one SNP
>> - that is a big difference!
>>
>> Thus, in your case you need to use the latter.  To calculate this
>> robust average in the aroma framework, do:
>>
>>  yR <- getAverageFile(dsNList$total);
>>
>> and then do:
>>
>>   CT = 2 * yT/yR
>>
>>
>> >   betaT = dataN[,'fracB',samp]
>> >   ugp = getAromaUgpFile(dsNList$total)
>> >   chromosome = ugp[,1,drop = T]
>> >   x = ugp[, 2, drop = T]
>> >   df = data.frame(chromosome = chromosome, x=x, CT=CT, betaT = betaT)
>> >   df = dropSegmentationOutliers(df)
>> >         #This gives warnings:
>> >         #24: In DNAcopy::CNA(genomdat = yKK, chrom = chromosomeKK,  ... :
>> >         #array has repeated maploc positions
>> >   gaps = findLargeGaps(df, minLength = 1e+06)
>> >   knownSegments = gapsToSegments(gaps)
>> >
>> >   fit = segmentByNonPairedPSCBS(df, knownSegments = knownSegments,
>> > avgDH="median",
>> >                                                      tauA = .33, seed =
>> > 48879, verbose = -10)
>> >       #This gives warnings that there are multipe maploc positions
>> >   fit = callAB(fit, verbose = -10)
>> >
>> > Calling segments of allelic balance from one-sided DH bootstrap confidence
>> > intervals...
>> >  delta (offset adjusting for bias in DH): 0.211106073856354
>> >  alpha (CI quantile; significance level): 0.05
>> > List of 7
>> >  $ nbrOfDHs       : int 70
>> >  $ dhNbrOfLoci    : int 70
>> >  $ mu             : num 0.183
>> >  $ dhMean         : num 0.203
>> >  $ dMu            : num -0.02
>> >  $ abs(dMu)       : num 0.02
>> >  $ range(x[units]): num [1:2] 990417 2792801
>> > Error in bootstrapTCNandDHByRegion.PairedPSCBS(fit, statsFcn = statsFcn,
>> > :
>> >   INTERNAL ERROR: Incorrect DH mean!
>> >  Calling segments of allelic balance from one-sided DH bootstrap
>> > confidence intervals...done
>>
>> This is a internal sanity check throwing an error.   As a start, I
>> recommend to retry with (i) a proper CT calculate, and (ii) after
>> updated PSCBS.
>>
>> Hope this helps
>>
>> Henrik
>>
>> >
>> >
>> > >
>> > > head(getSegments(fit))
>> >   chromosome tcnId dhId   tcnStart     tcnEnd tcnNbrOfLoci   tcnMean
>> > tcnNbrOfSNPs tcnNbrOfHets dhNbrOfLoci    dhStart      dhEnd
>> > 1          1     1    1    61736.0   811403.5           73 1.4735545
>> > 15            2           2    61736.0   811403.5
>> > 2          1     2    1   811403.5  2821394.0          527 0.9201369
>> > 183           70          70   811403.5  2821394.0
>> > 3          1     3    1  2821394.0  2827143.5            2 5.0273015
>> > 2            0           0  2821394.0  2827143.5
>> > 4          1     4    1  2827143.5 11694138.0         5531 0.9780667
>> > 2940          983         983  2827143.5 11694138.0
>> > 5          1     5    1 11694138.0 11709225.0            5 3.3949294
>> > 5            3           3 11694138.0 11709225.0
>> > 6          1     6    1 11709225.0 16923050.0         2918 1.0072282
>> > 1485          550         550 11709225.0 16923050.0
>> >      dhMean    c1Mean    c2Mean
>> > 1 0.1695309 0.6118708 0.8616838
>> > 2 0.2033105 0.3665317 0.5536052
>> > 3        NA        NA        NA
>> > 4 0.2033807 0.3895734 0.5884933
>> > 5 0.1465555 1.4486918 1.9462376
>> > 6 0.2036166 0.4010699 0.6061583
>> >
>> >
>> > > traceback()
>> > 7: stop("INTERNAL ERROR: Incorrect DH mean!")
>> > 6: bootstrapTCNandDHByRegion.PairedPSCBS(fit, statsFcn = statsFcn,
>> >        ..., verbose = less(verbose, 50))
>> > 5: bootstrapTCNandDHByRegion(fit, statsFcn = statsFcn, ..., verbose =
>> > less(verbose,
>> >        50))
>> > 4: callAllelicBalanceByDH.PairedPSCBS(fit, ...)
>> > 3: callAllelicBalanceByDH(fit, ...)
>> > 2: callAB.PairedPSCBS(fit, verbose = -10)
>> > 1: callAB(fit, verbose = -10)
>> >
>> >
>> >
>> >
>> > > sessionInfo()
>> >
>> > R version 2.15.2 Patched (2013-02-09 r61879)
>> > Platform: x86_64-unknown-linux-gnu (64-bit)
>> >
>> > locale:
>> >  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
>> > LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
>> >  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=C
>> > LC_NAME=C
>> >  [9] LC_ADDRESS=C               LC_TELEPHONE=C
>> > LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>> >
>> > attached base packages:
>> > [1] splines   stats     graphics  grDevices utils     datasets  methods
>> > base
>> >
>> > other attached packages:
>> >  [1] Hmisc_3.10-1           survival_2.37-4        DNAcopy_1.32.0
>> > PSCBS_0.30.0           aroma.affymetrix_2.8.0
>> >  [6] affxparser_1.30.2      aroma.apd_0.2.3        R.huge_0.4.1
>> > aroma.light_1.28.0     aroma.core_2.8.0
>> > [11] matrixStats_0.6.2      R.rsp_0.8.2            R.devices_2.1.3
>> > R.cache_0.6.5          R.filesets_2.0.0
>> > [16] crlmm_1.16.9           preprocessCore_1.20.0  oligoClasses_1.20.0
>> > BiocGenerics_0.4.0     R.utils_1.19.5
>> > [21] R.oo_1.11.7            R.methodsS3_1.4.2
>> >
>> > loaded via a namespace (and not attached):
>> >  [1] affyio_1.26.0        annotate_1.36.0      AnnotationDbi_1.20.5
>> > Biobase_2.18.0       BiocInstaller_1.8.3  Biostrings_2.26.3
>> >  [7] bit_1.1-9            cluster_1.14.3       codetools_0.2-8
>> > DBI_0.2-5            digest_0.6.3         ellipse_0.3-7
>> > [13] ff_2.2-10            foreach_1.4.0        genefilter_1.40.0
>> > GenomicRanges_1.10.7 grid_2.15.2          IRanges_1.16.6
>> > [19] iterators_1.0.6      lattice_0.20-13      Matrix_1.0-11
>> > mvtnorm_0.9-9994     parallel_2.15.2      RcppEigen_0.3.1.2.1
>> > [25] RSQLite_0.11.2       stats4_2.15.2        tools_2.15.2
>> > XML_3.95-0.1         xtable_1.7-1         zlibbioc_1.4.0
>> >
>> >
>> > >
>> >
>> >
>> >
>> > --
>> > --
>> > When reporting problems on aroma.affymetrix, make sure 1) to run the
>> > latest version of the package, 2) to report the output of sessionInfo() and
>> > traceback(), and 3) to post a complete code example.
>> >
>> >
>> > You received this message because you are subscribed to the Google Groups
>> > "aroma.affymetrix" group with website http://www.aroma-project.org/.
>> > To post to this group, send email to aroma-af...@googlegroups.com
>> > To unsubscribe and other options, go to
>> > http://www.aroma-project.org/forum/
>> >
>> > ---
>> > You received this message because you are subscribed to the Google Groups
>> > "aroma.affymetrix" group.
>> > To unsubscribe from this group and stop receiving emails from it, send an
>> > email to aroma-affymetr...@googlegroups.com.
>> > For more options, visit https://groups.google.com/groups/opt_out.
>> >
>> >
>
> --
> --
> When reporting problems on aroma.affymetrix, make sure 1) to run the latest 
> version of the package, 2) to report the output of sessionInfo() and 
> traceback(), and 3) to post a complete code example.
>
>
> You received this message because you are subscribed to the Google Groups 
> "aroma.affymetrix" group with website http://www.aroma-project.org/.
> To post to this group, send email to aroma-affymetrix@googlegroups.com
> To unsubscribe and other options, go to http://www.aroma-project.org/forum/
>
> ---
> You received this message because you are subscribed to the Google Groups 
> "aroma.affymetrix" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to aroma-affymetrix+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>

-- 
-- 
When reporting problems on aroma.affymetrix, make sure 1) to run the latest 
version of the package, 2) to report the output of sessionInfo() and 
traceback(), and 3) to post a complete code example.


You received this message because you are subscribed to the Google Groups 
"aroma.affymetrix" group with website http://www.aroma-project.org/.
To post to this group, send email to aroma-affymetrix@googlegroups.com
To unsubscribe and other options, go to http://www.aroma-project.org/forum/

--- 
You received this message because you are subscribed to the Google Groups 
"aroma.affymetrix" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to aroma-affymetrix+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to