Skip to main content

Tool to calculate a k-mer pattern partition from position specific k-mer counts.

Project description

kmerPaPa

Tool to calculate a "k-mer pattern partition" from position specific k-mer counts. This can for instance be used to train a mutation rate model.

Requirements

kmerPaPa requires Python 3.7 or above.

Installation

kmerPaPa can be installed using pip:

pip install kmerpapa

or using pipx:

pipx install kmerpapa

Test data

The test data files used in the usage examples below can be downloaded from the test_data directory in the project's github repository:

wget https://github.com/BesenbacherLab/kmerPaPa/raw/main/test_data/mutated_5mers.txt
wget https://github.com/BesenbacherLab/kmerPaPa/raw/main/test_data/background_5mers.txt

Usage

If we want to train a mutation rate model then the input data should specifiy the number of times each k-mer is observed mutated and unmutated. One option is to have one file with the mutated k-mer counts (positive) and one file with the count of k-mers in the whole genome (background). We can then run kmerpapa like this:

kmerpapa --positive mutated_5mers.txt \
         --background background_5mers.txt \
         --penalty_values 3 5 7

The above command will first use cross validation to find the best penalty value between the values 3,5 and 7. Then it will find the optimal k-mer patter partiton using that penalty value. If both a list of penalty values and a list of pseudo-counts are specified then all combinations of values will be tested during cross validation:

kmerpapa --positive mutated_5mers.txt \
         --background background_5mers.txt \
         --penalty_values 3 5 6 \
         --pseudo_counts 0.5 1 10

If only a single combination of penalty_value and pseudo_count is provided then the default is not to run cross validation unless "--n_folds" option or the "CV_only" is used. The "CV_only" option can be used together with "--CVfile" option to parallelize grid search. Fx. using bash:

for c in 3 5 6; do
    for a in 0.5 1 10; do
        kmerpapa --positive mutated_5mers.txt \
         --background background_5mers.txt \
         --penalty_values $c \
         --pseudo_counts $a \
         --CV_only --CVfile CV_results_c${c}_a${a}.txt &
    done
done

Creating input data

Input files with k-mer counts can be created using kmer_counter. Given a file of point mutations in a file that contain the CHROM, POS, REF and ALT columns from a vcf file:

chr1 1000000 G A
chr1 1000100 G A
chr1 1000200 C T
chr1 1000300 C T
chr1 1000400 C T

We can count the 5-mers around each mutation using this command:

kmer_counter snv --radius 2 {genome}.2bit {point_mutations_file} > mutated_5mers.txt

Given a bed file with regions that are sufficiently covered by sequencing we can count the background 5-mers using this command:

kmer_counter background --bed {regions}.bed -radius 2 {genome}.2bit > background_5mers.txt

The file {genome}.2bit should be a 2bit file of the same reference genome that were used for calling the mutations. 2bit files can be downloaded from: https://hgdownload.cse.ucsc.edu/goldenpath/{genome}/bigZips/{genome}.2bit where {genome} is a valid UCSC genome assembly name (fx. "hg38").

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kmerpapa-0.2.3.tar.gz (22.1 kB view details)

Uploaded Source

Built Distribution

kmerpapa-0.2.3-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

File details

Details for the file kmerpapa-0.2.3.tar.gz.

File metadata

  • Download URL: kmerpapa-0.2.3.tar.gz
  • Upload date:
  • Size: 22.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.6 Darwin/21.6.0

File hashes

Hashes for kmerpapa-0.2.3.tar.gz
Algorithm Hash digest
SHA256 d1939800e2ef70d9ffaf7ad2e1c9bec08fd665631299eb910e71280aa1e7f95f
MD5 a2950275c20d25872ba328c80cfbbc70
BLAKE2b-256 04a8741a9fd8706e8f492b81e2da6527db4d3d02f236543f7a9e20812773bd36

See more details on using hashes here.

File details

Details for the file kmerpapa-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: kmerpapa-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 25.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.10.6 Darwin/21.6.0

File hashes

Hashes for kmerpapa-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 82957553e43f0a0580bc9986d77ca19c7db9cb5942fbdf4e86a6846272367ed4
MD5 943505dbdaab1c46ae52c1bd5a4a3f48
BLAKE2b-256 956a9f4f2b1237d668c66ccb39bd64e94f78f56185354a05b819e420d6373c82

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page