#crispr #bioinformatics #sg-rna #cli #degs

app crispr_screen

A fast and configurable differential expression analysis tool for CRISPR screens

15 releases

0.2.6 Mar 25, 2024
0.2.5 Mar 25, 2024
0.2.4 Feb 23, 2024
0.1.23 May 23, 2023
0.1.14 Feb 15, 2023

#7 in Biology

Download history 4/week @ 2024-01-31 3/week @ 2024-02-07 3/week @ 2024-02-14 176/week @ 2024-02-21 28/week @ 2024-02-28 3/week @ 2024-03-06 5/week @ 2024-03-13 175/week @ 2024-03-20 50/week @ 2024-03-27 19/week @ 2024-04-03

579 downloads per month

MIT license

4.5K SLoC

Rust 4K SLoC // 0.0% comments JavaScript 559 SLoC // 0.1% comments Handlebars 268 SLoC // 0.0% comments


MIT licensed actions status codecov

This tool is recreation of the MAGeCK Differential Expression algorithm described in the original paper with options included. It also extends the algorithm and provides an option for the MAGeCK-INC pipeline which performs a Mann-Whitney U-Test on the Non-Targeting Controls for gene score aggregation as opposed to the traditional alpha-RRA algorithm. The goal of this project is to have an efficient and clean implementation of a CRISPR-screening platform that is as easy to use as possible without sacrificing efficiency and interpretability.


Installing Rust

If you do not have the rust toolchain installed you can do so with the following command

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Installing CRISPR Screen

cargo install crispr_screen


This tool is meant to run from the commandline and expects at minimum 3 arguments:

  1. an sgRNA-Gene count table
  2. the control label(s)
  3. the treatment label(s).

The following list of examples is not exhaustive and if you are confused by any parameters I recommend running the help menu:

crispr_screen --help

Basic Run with a Single Control and a Single Treatment

Here is the command layout for a basic run with only these arguments:

crispr_screen test -i <count_table> -c <control_label> -t <treatment_label>

Basic Run with a Single Control and Multiple Treatments

If you have multiple treatment and/or control labels you can provide multiple arguments to the same flag. In this case I am providing two treatment labels for the same -t flag.

crispr_screen test -i <count_table> -c <control_label> -t <treatment_label_a> <treatment_label_b>

Basic Run with a Specified Output Prefix

By default this will write the sgRNA-level and Gene-level results to results.sgrna_results.tab and results.gene_results.tab respectively, but you can specificy your own output prefix (i.e. replacing results) with the -o flag.

crispr_screen test -i <count_table> -c <control_label> -t <treatment_label> -o my_prefix

Alternative Normalization Strategies

Currently there are two normalization strategies provided by this tool - MedianRatio and Total. You can specify which one you'd like to use with the -n flag. The two accepted options are median-ratio and total.

crispr_screen test -i <count_table> -c <control_label> -t <treatment_label> -n total

Alternative Gene-Aggregation Strategies

Currently there are two gene aggregation strategies provided by this tool - AlphaRRA and INC. By default the gene aggregation strategy run is AlphaRRA. However, you can specify which one you'd like to use with the -g flag. The two accepted options are rra and inc.

crispr_screen test -i <count_table> -c <control_label> -t <treatment_label> -g inc



~343K SLoC