Create basic ROC curves

Description

This function creates basic ROC curves using a matrix of p-values (such a matrix can be derived for example from the result table of metaseqr by subsetting the table to get the p-values from several algorithms) given a ground truth vector for differential expression and a significance level.

Usage

1
2
3
    diagplot.roc(truth, p, sig = 0.05, x = "fpr", 
        y = "tpr", output = "x11", path = NULL,
        draw = TRUE, ...)

Arguments

truth

the ground truth differential expression vector. It should contain only zero and non-zero elements, with zero denoting non-differentially expressed genes and non-zero, differentially expressed genes. Such a vector can be obtained for example by using the make.sim.data.sd function, which creates simulated RNA-Seq read counts based on real data.

p

a p-value matrix whose rows correspond to each element in the truth vector. If the matrix has a colnames attribute, a legend will be added to the plot using these names, else a set of column names will be auto-generated. p can also be a list or a data frame.

sig

a significance level (0 < sig <=1).

x

what to plot on x-axis, can be one of "fpr", "fnr", "tpr", "tnr" for False Positive Rate, False Negative Rate, True Positive Rate and True Negative Rate respectively.

y

what to plot on y-axis, same as x above.

output

one or more R plotting device to direct the plot result to. Supported mechanisms: "x11" (default), "png", "jpg", "bmp", "pdf" or "ps".

path

the path to create output files.

draw

boolean to determine whether to plot the curves or just return the calculated values (in cases where the user wants the output for later averaging for example). Defaults to TRUE (make plots).

...

further arguments to be passed to plot devices, such as parameter from par.

Value

A named list with two members. The first member is a list containing the ROC statistics: TP (True Postives), FP (False Positives), FN (False Negatives), TN (True Negatives), FPR (False Positive Rate), FNR (False Negative Rate), TPR (True Positive Rate), TNR (True Negative Rate), AUC (Area Under the Curve). The second is the path to the created figure graphic.

Author(s)

Panagiotis Moulos

Examples

1
2
3
4
5
6
7
8
9
p1 <- 0.001*matrix(runif(300),100,3)
p2 <- matrix(runif(300),100,3)
p <- rbind(p1,p2)
rownames(p) <- paste("gene",1:200,sep="_")
colnames(p) <- paste("method",1:3,sep="_")
truth <- c(rep(1,40),rep(-1,40),rep(0,20),rep(1,10),
    rep(2,10),rep(0,80))
names(truth) <- rownames(p)
roc.obj <- diagplot.roc(truth,p)

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