Как извлечь необработанные данные из элемента сюжета в R - PullRequest
0 голосов
/ 02 июля 2018

Я использую метод из пакета для создания точечной диаграммы

p <- noisePlot(data.frame)

И все же я хотел бы, чтобы вы знали исходные значения, созданные (/ нанесенные на график) этой функцией ... какие-нибудь идеи?

P.S. пакет не использует gglot2, но базовая функция сюжета в R

1 Ответ

0 голосов
/ 02 июля 2018

Yoy может получить функцию noisePlot:

findMethods(noisePlot)$`QDNAseqReadCounts#missing`

И отредактировав его, получите данные как вывод:

dataNoisePlot <- function (x, y, main = "Noise Plot", adjustIncompletes = TRUE, 
                      fit = NULL, sdFUN = "sdDiffTrim", xAxis = c("average reads per bin", 
                                                                  "reciprocal of average reads per bin", "total reads"), 
                      ...) 
  {
    if (is.character(sdFUN) && sdFUN == "sdDiffTrim") {
      symbol <- quote(hat(sigma)[Delta^"*"]^2)
    }
    else if (is.character(sdFUN) && length(grep("Diff", 
                                                sdFUN)) == 1) {
      symbol <- quote(hat(sigma)[Delta]^2)
    }
    else {
      symbol <- quote(hat(sigma)^2)
    }
    sdFUN <- getAnywhere("sdDiffTrim")[[2]][[1]]
    condition <- getAnywhere("binsToUse")[[2]][[1]](x)
    counts <- getAnywhere("assayDataElement")[[2]][[1]](x, "counts")[condition, 
                                            , drop = FALSE]
    usedReads <- colSums(counts)
    if (adjustIncompletes) {
      counts <- counts/getAnywhere("fData")[[2]][[1]](x)$bases[condition] * 100L
      counts[getAnywhere("fData")[[2]][[1]](x)$bases[condition] == 0] <- 0L
    }
    reciprocalOfAverageUsedReadsPerBin <- getAnywhere("expectedVariance")[[2]][[1]](x)
    if (is.null(fit)) {
      if (!"fit" %in% getAnywhere("assayDataElementNames")[[2]][[1]](x)) 
        x <- getAnywhere("estimateCorrection")[[2]][[1]](x)
      fit <- getAnywhere("assayDataElement")[[2]][[1]](x, "fit")[condition, 
                                        , drop = FALSE]
    }
    signal <- counts/fit
    signal[fit <= 0] <- 0
    noise <- apply(signal, 2, sdFUN, na.rm = TRUE)

    out <- data.frame(reciprocalOfAverageUsedReadsPerBin, noise^2)
    return(out)
  }

dataNoisePlot(readCountsFiltered)
       reciprocalOfAverageUsedReadsPerBin    noise.2
LGG150                         0.02804484 0.02833476
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...