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.
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
Except Python3 standard libraries, the following packages are needed to run the scripts:
-
Matplotlib
-
Seaborn
-
Scipy
-
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:
- -d D Distance between dinucleotide pair, default = 1
- -s Count only one strand
- --mono Count mono nucleotide instead
- --trinuc Count trinucleotide instead
-
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:
- -s S [S ...] Chromosome to be selected, default = chrM
- -a Append to original file
- --name NAME Name for the output line, default = input file name
-
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:
- -f Use fourth column of bed file as frequency. Otherwise each row of BED file is considered as a rNMP
- -m Also count mononucleotide frequency
- -d Also count dinucleotide frequency
- --dist DIST [DIST ...] Distance between rNMP and its dNMP neighbor
- -t Also count trinucleotide frequency
-
Get the data of desired chromosome.
./get_chrom.py <infile1> <infile2> ... -s <chromosome1> <chromsome2> ... -o <file desired>
Available parameters:
- -v Select non-matching chromosomes
- -a Append to original file
- --name NAME Name for the output line, default = input file name
-
Normalization
./normalize.py <file desired> <chrM or nuclear frequency> -o <normalized file>
Available parameters:
- --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.
- --name NAME Name of chromosome in background frequency used for normalization, default = saccer
-
Rename and sort libraries if needed
./resort.py <normalized file> <order file> -o <sorted normalized file>
Available parameters:
- -d D Connector of library informations, default = '-'
- -c C Column number of library name, default=1
-
Draw preference heatmaps.
./draw_heatmap.py <normalized file> -o <output figure name>
Heatmap of rNMP incorporation normalized frequency. Available parameters:
- -b B Select background file. If a file is selected, the background percentage is added to labels.
- --background_chrom BACKGROUND_CHROM Chromosome name of background file, default = chrM
- --no_annot Hide percentage annotation in each cell.
- --palette Palette Define Seaborn color palette for heatmap.
This software is under GNU GPL v3.0 license
If you have any question, please contact me at pxu64@gatech.edu.