Skip to content

xph9876/RibosePreferenceAnalysis

Repository files navigation

RibosePreferenceAnalysis

Preference analysis for ribose-seq data

This script is used for preference analysis of rNMP incorporation data generated from ribose-seq protocol and Ribose-Map software. The neighbor of incorporated rNMP keeps certain preference in a specific species. This is because the surrounding dNMPs could affect the probability of rNMP misincorporation by replicative polymerases. This software is designed to reveal this preference.

Citation

Xu, P., & Storici, F. (2021). RibosePreferenceAnalysis: Analyzing the preference of rNMPs embedded in genomic DNA. Software Impacts, 10, 100149. https://doi.org/10.1016/J.SIMPA.2021.100149

Dependency

Except Python3 standard libraries, the following packages are needed to run the scripts:

  • Matplotlib

  • Seaborn

  • Scipy

Usage

  1. Use count_background.py to calculate background frequencies for the reference genome (FASTA file).

    ./count_background.py <ref genome> -o <background frequency>

    Dinucleotide background frequency is calculated by default. Available parameters are:

    1. -d D Distance between dinucleotide pair, default = 1
    2. -s Count only one strand
    3. --mono Count mono nucleotide instead
    4. --trinuc Count trinucleotide instead
  2. Use get_chrom.py to get background frequency of mitochondrial and nuclear DNA seperately

    ./get_chrom.py <background frequency> -s <chrM name> -o <chrM_frequency>
    ./get_chrom.py <background frequency> -s <chrM name> -v -o <nuc_frequency>

    Dinucleotide background frequency is calculated by default. Available parameters are:

    1. -s S [S ...] Chromosome to be selected, default = chrM
    2. -a Append to original file
    3. --name NAME Name for the output line, default = input file name
  3. Count different patterns of rNMP incorporation from BED file generated by Ribose-Map using count_rNMP.py.

    ./count_rNMP.py <ref genome> <BED> -o <rNMP incorporation raw>

    By default only dinucleotide frequency is counted. Available parameters:

    1. -f Use fourth column of bed file as frequency. Otherwise each row of BED file is considered as a rNMP
    2. -m Also count mononucleotide frequency
    3. -d Also count dinucleotide frequency
    4. --dist DIST [DIST ...] Distance between rNMP and its dNMP neighbor
    5. -t Also count trinucleotide frequency
  4. Get the data of desired chromosome.

    ./get_chrom.py <infile1> <infile2> ... -s <chromosome1> <chromsome2> ... -o <file desired>

    Available parameters:

    1. -v Select non-matching chromosomes
    2. -a Append to original file
    3. --name NAME Name for the output line, default = input file name
  5. Normalization

    ./normalize.py <file desired> <chrM or nuclear frequency> -o <normalized file>

    Available parameters:

    1. --group_len {0,4,16} Number of rows of which the sum is 1. If 0 is selected, the sum of all rows will be 1. default = 0.
    2. --name NAME Name of chromosome in background frequency used for normalization, default = saccer
  6. Rename and sort libraries if needed

    ./resort.py <normalized file> <order file> -o <sorted normalized file>

    Available parameters:

    1. -d D Connector of library informations, default = '-'
    2. -c C Column number of library name, default=1
  7. Draw preference heatmaps.

    ./draw_heatmap.py <normalized file> -o <output figure name>

    Heatmap of rNMP incorporation normalized frequency. Available parameters:

    1. -b B Select background file. If a file is selected, the background percentage is added to labels.
    2. --background_chrom BACKGROUND_CHROM Chromosome name of background file, default = chrM
    3. --no_annot Hide percentage annotation in each cell.
    4. --palette Palette Define Seaborn color palette for heatmap.

License

This software is under GNU GPL v3.0 license

Contact

If you have any question, please contact me at pxu64@gatech.edu.

About

Preference analysis for ribose-seq data

Resources

License

Stars

3 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages