- Project Goal
- Project presentation
- Tested datasets
- Project tasks
- Getting coverages from fasta-files
- PeakCalling work example
- Methods and technologies
- Authors
Our mission was to design and to implement algorithm of detection and analysis of gene frequency changes in different random DNA libraries.
A detailed presentation of the project is available at the following link: Project Presentation in Google Slides
An article of project is available at the following link: Project_article_in_Google_Docs
-
Dataset 1 (search for the PARIS system triggers from T5 phage):
DNA samples were extracted from cells under three different conditions:- (1) Сells before induction (16_t5-d-plasm_x200);
- (2) Induction of T5 genes library in cells without PARIS (16_t5_plus_d-plasm_x200);
- (3) Induction of T5 genes library in cells with PARIS (185_t5_plus_d-plasm_x200);
-
Dataset 2 (search for genes responsible for methylation inhibition from T5 phage):
DNA samples were extracted from cells under two different conditions:- (1) Cells before treatment with Dpn (T5_lib_Meth_Inhib_Dpn/t5_plus_dapg-plasm_x200);
- (2) Cells after several rounds of treatment with Dpn (T5_lib_Meth_Inhib_Dpn/t5_plus_dapg_plus_dpn-plasm_x200);
- Analyzing the genomic composition of the mapped reads of the dataset.
- Comparing the differences in coverage of mapped genes of bacteriophage genome samples with the genome containing PARIS trigger using featurecounts and peakcalling.
- Visualizing significant changes and comparing them to genome annotation.
- Find genes of interests (PARIS triggers).
- Repeating the analysis on other datasets.
Bash script for reads preprocessing with the following operions:
- fastp v. 0.23.2: trimming, quality control and deduplication of paired-end reads (fastq);
- bowtie2 v2.5.4: mapping reads to T5 phage reference genome (fasta);
- samtools v. 1.20:
- convertion of dam files to bam, sorting and indexing of bam files;
- generation of coverage.txt files from sorted_bam files (further, coverage files are parsed to the peak calling script).
Full example you can find in PeakCaller_example.html, or you can download and test it by yourself at PeakCaller_example.ipynb file.
TXT files (datasets with coverages from fasta files) you can get from our bash-script (previous point).
To install our peakcalling script, please, follow these steps:
-
First, you need to clone this repository by
git clonecommand in command line. -
After that you can copy
peakcaller.pyandrequirements.txtfiles to your default Jupiter Notebook folder (commonly its Home directory on your computer) -
Create
your notebook.ipynbfile in Jupiter notebook (or Jupiter Lab) and use commands below.
- Import
peakcaller.pyand requirements to your notebook:
pip install -r requirements.txt
from peakcaller import PeakCalling- Input number of reads for each dataset:
# Example
reads_count_1 = 1504149
reads_count_2 = 8991837- Initiate Peak Calling class:
peak_calling = PeakCalling(
data_1='./data/coverage_16t5_plus_r209.txt', # path to first dataset
data_2='./data/coverage_185_t5_sorted.txt', # path to second dataset
threshold=0.6, # optional param for filtering significant changes
window_size=250, # required param for setting significant changes areas
reads_count_1=reads_count_1, # required param for normalization of datasets to each other
reads_count_2=reads_count_2 # required param for normalization of datasets to each other
)- Find significant changes:
changes = peak_calling.find_significant_coverage_changes()
changes.head(10)- View significant changes on coverage map:
peak_calling.visualize_coverage()- Compare significant changes with genome annotation:
gff_path = 'data/t5.gff3' # Path to .gff annotation
peak_calling.compare_coverage_changes_with_annotation(gff_annotation=gff_path)featureCountsgenomenotebook- used in Peak Calling algorithm for visualization coverages and significant changes with genome annotation (needannotation.gfffile as option)pandas- used in Peak Calling algorithm as the main tool of work with datanumpy- used in Peak Calling for identification of significant changes in two applied datasetsplotly- used in Peak Calling for dynamic visualization of coverages and significant changes (not compared with genome annotation)