We introduce cPRIME (prime editing with cDNA readout), a scalable method for assessing variant effects at RNA level. cPRIME uses prime editing to insert genetic variants into endogenous genomic loci, followed by the quantification of changes in variant frequencies at RNA (cDNA) and genomic DNA (gDNA) level. cPRIME provides a platform for studying the post-transcriptional consequences of genetic variants in their genomic context and establishes a framework for the functional interpretation of RNA-altering variants in cancer and other diseases.
This repository contains code to reproduce results of our publication "cPRIME enables endogenous mapping of genetic variant effects at RNA level".
FASTQ files associated with this analysis can be found under the SRA BioProject accession PRJNA1257064.
- scripts to compute synonymous marker variants
- synonymous marker filtering
- code to select pegRNAs from PrimeDesign output
- fast and easy to use pipeline for read counting that contain variants introduced by prime editing
- a running python and R environment (code was tested on python 3.12 and R 4.3.0)
- FLASH v1.2.11: https://ccb.jhu.edu/software/FLASH/
- Pangolin v.1.0.2: https://github.com/tkzeng/Pangolin
- SpliceAI v.1.3.1: https://github.com/illumina/spliceAI
- PrimeDesign: https://github.com/pinellolab/PrimeDesign
-> find code and associated data to reproduce results of the initial exon 27 screen of the NF1 gene
Contains R script to design PrimeDesign input files for the mutations listed in cBioPortal for exon 27. Also includes R scripts to generate the reference files with the search sequences, to determine the number of each intended edit in the fastq files.
- cBioPortal_27Jan2022.tsv -> cBioPortal mutations for NF1 (Download: 27 January 2022)
- Chr17_full_sequence.txt -> Sequence of chromosome 17 from hg19 genome
- NF1-Exons-position.txt -> Information about start and end position of each exon from NF1 in chromosome 17
- Exon_splice_information.txt -> Information about number of bases of the first and last codon of each exon. For example: Start_codon_bp_count 3 means that the first codon of the exon starts with three bases; Start_codon_bp_count 2 means that the exon starts with two bases while the "third" base for this codon is located on the exon before (her the last base).
- Design_input_sequences_mutations_for_PrimeDesign.R -> design input sequences for PrimeDesign for mutations
- Design_input_sequences_synonymous_edit_for_PrimeDesign.R -> design input sequences for PrimeDesign for synonymous edit
- Design_searching_sequences_for mutations_cDNA.R -> design searching sequences for mutations for cDNA
- Design_searching_sequences_for mutations_gDNA.R -> design searching sequences for mutations for gDNA
- Design_searching_sequences_for_synonymous_edit_cDNA.R -> design searching sequences for synonymous edit for cDNA
- Design_searching_sequences_for_synonymous_edit_gDNA.R -> design searching sequences for synonymous edit for gDNA
- Design_WT_searching_sequences_for_mutations_cDNA.R -> design WT sequences for mutations for cDNA
- Design_WT_searching_sequences_for_mutations_gDNA.R -> design WT sequences for mutations for gDNA
- Design_WT_searching_sequences_for_synonymous_edit_cDNA.R -> design WT sequences for synonymous edit for cDNA
- Design_WT_searching_sequences_for_synonymous_edit_gDNA.R -> design WT sequences for synonymous edit for gDNA
Mutations or synonymous edits that are missing in the final Overview_names.xlsx list are removed manually for example all InDels are removed.
Contains R script to design PrimeDesign input files for nonsense mutations and synonymous mutations on codon positions in exon 27 that are not described in cBioPortal. Also includes R scripts to generate the reference files with the search sequences, to determine the number of each intended edit in the fastq files.
-
Design_input_sequences_for_PrimeDesign_STOP_and_synonymous_edit.R -> design input sequences for PrimeDesign
-
Design_searching_sequences_for_STOP_and_synonymous_edit_cDNA.R -> design searching sequences for additional nonsense (STOP) and synonymous mutations for cDNA
-
Design_searching_sequences_for_STOP_and_synonymous_edit_gDNA.R -> design searching sequences for additional nonsense (STOP) and synonymous mutations for gDNA
-
Design_WT_sequences_for_STOP_and_synonymous_edit_cDNA.R -> design WT sequences for additional nonsense (STOP) and synonymous mutations for cDNA
-
Design_WT_sequences_for_STOP_and_synonymous_edit_gDNA.R -> design WT sequences for additional nonsense (STOP) and synonymous mutations for gDNA
-
Chr17_full_sequence.txt -> Sequence of chromosome 17 from hg19 genome
-
NF1-Exons-position.txt -> Information about start and end position of each exon from NF1 in chromosome 17
Additional nonsense mutations or synonymous edits that are missing in the final Overview_names.xlsx list are removed manually for example all InDels are removed.
Contains the search sequences that were used to count the number of reads containing combined variants. Use these search sequences as described in Count_edits_in_fastq/Count_edits.sh
Contains Bash and Python scripts to count edits in FASTQ files.
Count_edits.sh -> you have to change in line 119 the reference file depending on if you want to search for hits in:
- gDNA (with synonymous marker)
- cDNA (with synonymous marker)
- gDNA (with wild type sequence (WT); no intended or synonymous marker edit)
- gDNA (without synonymous marker; only intended edit)
Line 119: awk '{ print $2 }' Searching_sequences_gDNA.txt > sequences.txt
Contains the R script and reference files to calculate the Odds Ratio.
-> find code and associated data to reproduce results of the multi exon screen of the NF1 gene
- create_gff_db.py -> creates a local database from a gff file which is used by the other scripts to get transcript information from the NF1 gene. Can be used from the command line like python3 create_gff_db.py input.gff output.db
- filter_vcf.py -> filters a vcf given a genomic range. Can be used from the command line like python3 filter_vcf.py -i /path/to/input.vcf -o /path/to/output.vcf -c chromosome -s start_position -e stop_position
- functions.py -> contains functions which are used in multiple scripts
- library_design.ipynb -> contains code that was used to compute and filter the variants and pegRNAs in the multi exon screen
- prioritize_exons.ipynb -> contains code that was used to get the most promising exons
- write_searching_sequences.ipynb -> contains code to compute searching sequences for the combined variants
Contains the output of library_design/write_earching_sequences.ipynb. These sequences were input to count_edits_in_fastq/count_edits_fast.sh.
Contains the advanced pipeline to count edits. Simply run count_edits_fast.sh -p /path/to/fastq_files_folder -s /path/to/searching_sequences.txt
Contains code to reproduce figures 3 and 4 of the manuscript and other analyses related to the multi exon screen.
If you are interested in our work feel free to visit our website (https://www.boettcher-lab.net/) to learn more.