Skip to content

Repository files navigation

DOI

tiling_screens_with_permutation

Statistical pipeline for detecting non-canonical ORFs (ncORFs) with differential essentiality signals in CRISPR tiling screens.

Canonical workflow

The publication-ready analysis entrypoint is:

  • scripts/ncorf_tiling_analysis.R

This script runs a reproducible ORF-vs-parent-gene test using:

  • empirical Bayes shrinkage (ashr)
  • gene-specific permutation null distributions
  • Benjamini-Hochberg FDR correction

Legacy notebooks and earlier scripts are preserved under notebooks/archive/ and scripts/archive/ for provenance, but are not the official execution path.

Repository structure

.
├── examples/                     # Small public fixtures for smoke tests
├── scripts/
│   ├── ncorf_tiling_analysis.R   # Canonical analysis pipeline
│   ├── preprocessing/            # Optional upstream mapping utilities
│   └── archive/                  # Legacy non-canonical scripts
├── notebooks/archive/            # Legacy exploratory notebooks
├── tests/smoke/                  # Reproducibility and static checks
├── docs/
│   ├── reproducibility.md
│   └── data_access.md
├── LICENSE
├── CITATION.cff
├── .zenodo.json
└── CHANGELOG.md

Requirements

R

  • R >= 4.2
  • packages: tidyverse, ashr

Python (for optional preprocessing and test helpers)

  • Python >= 3.10
  • packages listed in requirements.txt

Quickstart (example data)

Run an end-to-end smoke analysis:

bash tests/smoke/run_smoke.sh

Expected outputs:

  • results/smoke/gene_level_orf_analysis_results_CHLA06.csv
  • results/smoke/gene_level_orf_analysis_results_MCF7.csv
  • results/smoke/gene_level_orf_analysis_results_all_datasets.csv

Canonical run command

Rscript scripts/ncorf_tiling_analysis.R \
  --config <dataset_config.csv> \
  --mapping <tiling_sgrna_mappings.csv> \
  --gencode <Ribo-seq_ORFs_nochr.bed> \
  --outdir results \
  --num-permutations 10000 \
  --fdr-threshold 0.05 \
  --shrinkage-prior both \
  --seed 42 \
  --make-plots true

Dataset config contract

--config must contain:

  • dataset_id
  • fitness_path
  • lfc_column
  • se_column
  • optional: mapping_dataset (if using the dataset column in mapping file)

Mapping file contract

--mapping must contain:

  • sgrna
  • orf
  • ensembl_gene_id
  • optional: dataset

Fitness file contract

Each fitness CSV must contain:

  • sgRNA.Sequence
  • one LFC column (named in config)
  • one SE/SD column (named in config)

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages