Generate a Receiver-Operator Characteristic (ROC) Curve from a CRISPR screen

Share:

Description

Given a set of targets of interest, this function generates a ROC curve and associated statistics from the results of a CRISPR screen. Specifically, it orders the elements targeted in the screen by the specified statistic, and then plots the cumulative proportion of positive hits on the y-axis. The corresponding vextors and Area Under the Curve (AUC) statistic are returned as a list.

Note that ranking statistics in CRISPR screens are (usually) permutation-based, and so some granularity is expected. This function does a little extra work to ensure that hits are counted as soon as the requisite value of the ranking statistic is reached regardless of where the gene is located within the block of equally-significant genes. Functionally, this means that the drawn curve is somewhat anticonservative in cases where the gene ranks are not well differentiated.

Usage

1
2
3
ct.ROC(summaryDF, target.list, stat = c("enrich.p", "deplete.p", "enrich.fc",
  "deplete.fc", "enrich.rho", "deplete.rho"), condense = TRUE,
  plot.it = TRUE)

Arguments

summaryDF

A dataframe summarizing the results of the screen, returned by the function ct.generateResults.

target.list

A character vector containing the names of the targets to be tested. Only targets contained in the geneID column of the provided summaryDF are considered.

stat

The statistic to use when ordering the genes. Must be one of "enrich.p", "deplete.p", "enrich.fc", "deplete.fc", "enrich.rho", or "deplete.rho".

condense

Logical indicating whether the returned x and y coordinates should be "condensed", returning only the points at which the detected proportion of target.list changes. If set to FALSE, the returned x and y vectors will explicitly indicate the curve value at every position (useful for performing curve arithmetic downstream).

plot.it

Logical value indicating whether to plot the curves.

Value

A list containing the the x and y coordinates of the curve, and the AUC statistic.

Author(s)

Russell Bainer

Examples

1
2
3
4
data('resultsDF')
data('essential.genes') #Note that this is an artificial example.
roc <- ct.ROC(resultsDF, essential.genes, 'enrich.p')
str(roc)

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