Skip to content

DAChernikov/Bioinf_project_DMV

Repository files navigation

ALGORITHM FOR SEARCHING OF FREQUENCY CHANGES IN RANDOMIZED DNA LIBRARIES

Content

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);
  1. Analyzing the genomic composition of the mapped reads of the dataset.
  2. Comparing the differences in coverage of mapped genes of bacteriophage genome samples with the genome containing PARIS trigger using featurecounts and peakcalling.
  3. Visualizing significant changes and comparing them to genome annotation.
  4. Find genes of interests (PARIS triggers).
  5. 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).

Installation

To install our peakcalling script, please, follow these steps:

  • First, you need to clone this repository by git clone command in command line.

  • After that you can copy peakcaller.py and requirements.txt files to your default Jupiter Notebook folder (commonly its Home directory on your computer)

  • Create your notebook.ipynb file in Jupiter notebook (or Jupiter Lab) and use commands below.

Example of use

  1. Import peakcaller.py and requirements to your notebook:
pip install -r requirements.txt
from peakcaller import PeakCalling
  1. Input number of reads for each dataset:
# Example
reads_count_1 = 1504149
reads_count_2 = 8991837
  1. 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
)
  1. Find significant changes:
changes = peak_calling.find_significant_coverage_changes()
changes.head(10)
  1. View significant changes on coverage map:
peak_calling.visualize_coverage()
  1. 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)
  • featureCounts
  • genomenotebook - used in Peak Calling algorithm for visualization coverages and significant changes with genome annotation (need annotation.gff file as option)
  • pandas - used in Peak Calling algorithm as the main tool of work with data
  • numpy - used in Peak Calling for identification of significant changes in two applied datasets
  • plotly - used in Peak Calling for dynamic visualization of coverages and significant changes (not compared with genome annotation)
  • 💼 Chernikov Danila - architector and developer. Telegram
  • 🚀 Babaeva Maria - analyst and developer. Telegram
  • Kotovskaya Oksana - supervisor and team-leader. Telegram

About

This is the repository of team project at Bioinformatics Institute. Team: Danila (Telegram: @DAChernikov), Maria (Telegram: @icalledmyselfmoon)

Resources

Stars

3 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors