Learn R Programming

CB2

CB2(CRISPRBetaBinomial) is a new algorithm for analyzing CRISPR data based on beta-binomial distribution. We provide CB2 as a R package, and the interal algorithms of CB2 are also implemented in CRISPRCloud.

Update

Oct 1, 2025

Update the C++ dependency

Jun 7, 2022

A bug fix regarding #14. Thanks @DaneseAnna for reporting the issue.

Dec 4, 2020

If you are experiencing an issue during the installation, it would be possible due to multtest package hasn't been installed. If so, please use the following snippet to install the package.

install.package("BiocManager") # can be omitted if you have installed the package
install.packages("multtest")

May 26, 2020

  • Regarding #9, CB2 now provides logFC of gene-level analysis with two different modes. The default option is the same as the previous version, and setting logFC parameter value of measure_gene_stats to gene will provide the logFC calculate by gene-level CPMs.

April 14, 2020

  • Regarding #6, now users can use join_count_and_design function.

December 16, 2019

  • Regarding #4, CB2 now supports gzipped FASTQ file.
  • Regarding #5, calc_mappability() provide total_reads and mapped_reads columns.

July 2, 2019

There are several updates.

  • We have change the function name for the sgRNA-level test to measure_sgrna_stats. The original name run_estimation has been deprecated.
  • CB2 now supports a data.frame with character columns. In other words, you can use

How to install

Currently CB2 is now on CRAN, and you can install it using install.package function.

install.package("CB2")

Installation Github version of CB2 can be done using the following lines of code in your R terminal.

install.packages("devtools")
devtools::install_github("hyunhwan-jeong/CB2")

Alternatively, here is a one-liner command line for the installation.

Rscript -e "install.packages('devtools'); devtools::install_github('hyunhwan-jeong/CB2')"

A simple example how to use CB2 in R

FASTA <- system.file("extdata", "toydata",
                     "small_sample.fasta",
                     package = "CB2")
df_design <- data.frame()
for(g in c("Low", "High", "Base")) {
  for(i in 1:2) {
    FASTQ <- system.file("extdata", "toydata",
                         sprintf("%s%d.fastq", g, i), 
                         package = "CB2")
    df_design <- rbind(df_design, 
      data.frame(
        group = g, 
        sample_name = sprintf("%s%d", g, i),
        fastq_path = FASTQ, 
        stringsAsFactors = F)
      )
  }
}

MAP_FILE <- system.file("extdata", "toydata", "sg2gene.csv", package="CB2")
sgrna_count <- run_sgrna_quant(FASTA, df_design, MAP_FILE)
  
sgrna_stat <- measure_sgrna_stats(sgrna_count$count, df_design, 
                                  "Base", "Low", 
                                  ge_id = "gene",
                                  sg_id = "id")
gene_stat <- measure_gene_stats(sgrna_stat)

Or you could run the example with the following commented code.

sgrna_count <- run_sgrna_quant(FASTA, df_design)
sgrna_stat <- measure_sgrna_stats(sgrna_count$count, df_design, "Base", "Low")
gene_stat <- measure_gene_stats(sgrna_stat)

More detailed tutorial is available here!

Copy Link

Version

Install

install.packages('CB2')

Monthly Downloads

392

Version

1.3.6

License

MIT + file LICENSE

Maintainer

Hyun-Hwan Jeong

Last Published

October 1st, 2025

Functions in CB2 (1.3.6)

join_count_and_design

A function to join a count table and a design table.
get_CPM

A function to normalize sgRNA read counts.
measure_gene_stats

A function to perform gene-level test using a sgRNA-level statistics.
calc_mappability

A function to calculate the mappabilities of each NGS sample.
Evers_CRISPRn_RT112

A benchmark CRISPRn pooled screen data from Evers et al.
plot_corr_heatmap

A function to show a heatmap sgRNA-level corrleations of the NGS samples.
plot_PCA

A function to plot the first two principal components of samples.
measure_sgrna_stats

A function to perform a statistical test at a sgRNA-level
fit_ab

A C++ function to perform a parameter estimation for the sgRNA-level test. It will estimate two different parameters `phat` and `vhat,` and we assume input count data follows the beta-binomial distribution. Dr. Keith Baggerly initially implemented this code in Matlab, and it has been rewritten it in C++ for the speed-up.
plot_dotplot

A function to visualize dot plots for a gene.
plot_count_distribution

A function to plot read count distribution.
run_sgrna_quant

A function to run a sgRNA quantification algorithm from NGS sample
run_estimation

A function to perform a statistical test at a sgRNA-level, deprecated.
quant

A C++ function to quantify sgRNA abundance from NGS samples.
rep_row

Repeat a row
Sanson_CRISPRn_A375

A benchmark CRISPRn pooled screen data from Sanson et al.