So, there are few things here: 1. In the Aroma Framework, we always try to store estimates/signals on the "original" scale, e.g. even if, say, chip-effect estimates are original on the log scale, we unlog those before saving. That is a policy with the rationale that all data can always be represented on the "original" scale but not always on, say, the log scale. An example of the latter is when a probe signal ends up being slightly negative after calibration and normalization. If that would have been stored on the log-scale we would have lost the information, i.e. it would be stored as NaN. Same problem with a signal that is exactly zero (-Inf on the log scale). Why bother? For instance, say you end up with replicated probe signals for a single SNP where they all fluctuate around zero. After averaging, the average signal may end up non-negative. If we stored on the log scale the averaging would have only been on the signals that were positive (because we lost the non-positive one). So, that's that rational.
2. For methods estimating "CNs" it depends on their approach/method/design: (a) For instance, the CRMA v1 and CRMA v2 methods (ours; happens to be implemented in the Aroma Framework, but should never be referred to as the "Aroma CN method", "aroma.affymetrix CN method" or similar), we end up with "CN signals" that have not yet been standardized relative to a reference. In other words, those signals are "all over the place", because each of them are scaled with an unknown scale factors. It is only when you have a reference when you can create "CN ratios", e.g. C = tumor / matched normal or C = sample / pooled average, etc. Comment: For CRMA v2, this is not that surprising, because that method was specifically designed to work for each array independently. That means you get "CN signals" out from a single array, but then you need to compare them to a reference. (b) The ACNE method (however), calculates CN ratios for you. This is by design of the model, simply because how the NMF factorization model works, cf. Eqns (10)-(14) in http://bioinformatics.oxfordjournals.org/content/26/15/1827.full. Comment: The ACNE method is a multi-array method requiring many arrays to work and borrows information across arrays (e.g. estimate SNP effects). Since this information is already done, it can equally well return CN ratios for you. Having said this, there is nothing preventing you from taking the ratios relative to another reference (ratio), e.g. effectively C = (T / R) / (R / R*) = T / R. So, in the ACNE vignette [http://www.aroma-project.org/vignettes/ACNE/] that you're following there is, near the end: cf <- ces[[1]] data <- extractTotalAndFreqB(cf, units=units) CT <- data[,"total"] Since you used ACNE to estimate the CNs, here 'CT' is indeed a "CN ratios". The reason why we still refer to it as a "total" signal, is because that is the most generic name we could come up with for the underlying file format. Hope this clarifies /Henrik On Fri, May 29, 2015 at 6:52 AM, hongen xu <hongen.hugo...@gmail.com> wrote: > Dear Aroma.affymetrix teem, > > I followed the vignette "Allele-specific copy numbers using non-negative > matrix factorization". I want to extract LRR and BAF to feed into another > software "ASCAT" to correct aneuploidy and normal contamination. > > From the vignette, I can use extractTotalAndFreqB to extract total CN and > BAF. My question is how can I get LRR from Total CN. I went through this > thread "creat binary data files containing BAF data", but get confused. > > quote from "creat binary data files containing BAF data" > "The take-home message is that > the definition of "log2 ratios" has become de facto standard in our > field, where as "CN" is a bit ambiguous, and can mean "CN ratio" > (C=theta/thetaR, or C=2*theta/thetaR) as well as "CN intensity" > (theta). By adding tags we try to make this less ambiguous." > > How total CN was defined in aroma.affymetrix? > > > Best regards, > Hongen > > > > > > > > > my code > > ############ > library("aroma.affymetrix") > library("ACNE") > > > log <- verbose <- Arguments$getVerbose(-8, timestamp=TRUE) > # Don't display too many decimals. > options(digits=4) > > > #Verifying annotation data files > cdf <- AffymetrixCdfFile$byChipType("CytoScanHD_Array"); > print(cdf) > gi <- getGenomeInformation(cdf) > print(gi) > si <- getSnpInformation(cdf) > print(si) > acs <- AromaCellSequenceFile$byChipType(getChipType(cdf, fullname=FALSE)) > print(acs) > > ##raw data sets > csR<- AffymetrixCelSet$byName("smida", cdf=cdf); > > ###step 1 Calibration for crosstalk between allele probe pairs > acc <- AllelicCrosstalkCalibration(csR, model="CRMAv2") > > print(acc) > > csC <- process(acc, verbose=verbose) > print(csC) > > > ##Step 2 - Normalization for nucleotide-position probe sequence effects > bpn <- BasePositionNormalization(csC, target="zero") > csN <- process(bpn, verbose=verbose) > cs <- csN > > > > #step 3 > #Probe summarization using non-negative-matrix factorization (NMF) > > plm <- NmfSnpPlm(csN, mergeStrands=TRUE) > print(plm) > > if (length(findUnitsTodo(plm)) > 0) { > # Fit CN probes quickly (~5-10s/array + some overhead) > units <- fitCnProbes(plm, verbose=verbose) > str(units) > # int [1:945826] 935590 935591 935592 935593 935594 935595 ... > > # Fit remaining units, i.e. SNPs (~5-10min/array) > units <- fit(plm, verbose=verbose) > str(units) > } > > ces <- getChipEffectSet(plm) > print(ces) > > > > my session information: > ###################### >> sessionInfo() > R version 3.1.3 (2015-03-09) > Platform: x86_64-redhat-linux-gnu (64-bit) > Running under: Fedora 20 (Heisenbug) > > locale: > [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C > [3] 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 > [7] LC_PAPER=en_US.UTF-8 LC_NAME=C > [9] LC_ADDRESS=C LC_TELEPHONE=C > [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C > > attached base packages: > [1] stats graphics grDevices utils datasets methods base > > other attached packages: > [1] ACNE_0.8.0 aroma.light_2.2.1 aroma.affymetrix_2.13.2 > [4] aroma.core_2.13.1 R.devices_2.13.0 R.filesets_2.7.2 > [7] R.utils_2.0.2 R.oo_1.19.0 affxparser_1.38.0 > [10] R.methodsS3_1.7.0 > > loaded via a namespace (and not attached): > [1] aroma.apd_0.6.0 base64enc_0.1-2 digest_0.6.8 DNAcopy_1.40.0 > [5] MASS_7.3-40 matrixStats_0.14.0 PSCBS_0.44.0 R.cache_0.11.0 > [9] R.huge_0.9.0 R.rsp_0.20.0 tools_3.1.3 > > > > -- > -- > 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/d/optout. -- -- 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/d/optout.