Skip to main content

PTM-POSE (PTM Projection Onto Splice Events)

Full documentation

PTM-POSE is an easily implementable tool to project PTM sites onto splice event data generated from RNA sequencing data and is compatible with any splice event quantification tool that outputs genomic coordinates of different splice events (MATS, SpliceSeq, etc.). PTM-POSE harnesses PTMs that have been mapped to their genomic location by a sister package, ExonPTMapper. It also contains functions for annotating these PTMs with information from various databases, like PhosphoSitePlus and ELM.

PTM-POSE method for projecting PTMs onto splice events

Install PTM-POSE

You can install PTM-POSE either through pip or conda. The base version will install all packages needed to project PTMs onto your data and annotate them with functional information, but if you would like to use the analysis modules for downstream analysis, you can also install additional dependencies needed by adding the optional dependendencies full_analysis. This includes packages like gseapy, kinase-library, networkx, and nease.

pip install:

#base packages for projection and annotation
pip install ptm-pose

#include all packages that are needed for additional analysis
pip install ptm-pose[full_analysis]

conda:

#only option is to install base package installs and install other dependencies separately
conda install -c conda-forge ptm-pose

Running PTM-POSE

To run PTM-POSE, you first need to process your data such that each row corresponds to a unique splice event with the genomic location of that splice event (chromosome, strand, and the bounds of the spliced region). Strand can be indicated using either '+'/'-' or 1/-1. If desired, you can also provide a delta PSI and significance value which will be included in the final PTM dataframe. Any additional columns will be kept. At a minimum, the dataframe should look something like this (optional but recommended parameters indicated):

event_id (optional) Gene name (recommend) chromosome strand region_start region_end dPSI (optional) significance (optional)
first_event CSTN1 1 - 9797555 9797612 0.362 0.032

Once the data is in the correct format, simply run the project_ptms_onto_splice_events() function. By default, PTM-POSE assumes the provided coordinates are in hg38 coordinates, but you can use older coordinate systems with the coordinate_type parameter.

from ptm-pose import project

my_splice_data_annotated, spliced_ptms = project.project_ptms_onto_splice_events(my_splice_data, 
                                                                                  chromosome_col = 'chromosome',
                                                                                  strand_col = 'strand',
                                                                                  region_start_col = 'region_start',
                                                                                  region_end_col =  'region_end',
                                                                                  event_id_col = 'event_id',
                                                                                  gene_col = 'Gene name',
                                                                                  dPSI_col='dPSI',
                                                                                  coordinate_type = 'hg19')

Altered Flanking Sequences

In addition to the previously mentioned columns, we will need to know the location of the flanking exonic regions next to the spliced region. Make sure your dataframe contains the following information prior to running flanking sequence analysis:

event_id (optional) Gene name (recommended) chromosome strand region_start region_end first_flank_start first_flank_end second_flank_start second_flank_end dPSI (optional) significance (optional)
first_event CSTN1 1 - 9797555 9797612 9687655 9688446 9811223 9811745 0.362 0.032

Then, as with differentially included PTMs, you only need to run get_flanking_changes_from_splice_data() function:

from ptm-pose import project

altered_flanks = project.get_flanking_changes_from_splice_data(my_splice_data,
                                                                                  chromosome_col = 'chromosome',
                                                                                  strand_col = 'strand',
                                                                                  region_start_col = 'region_start',
                                                                                  region_end_col =  'region_end',
                                                                                  first_flank_start_col = 'first_flank_start',
                                                                                  first_flank_end_col = 'first_flank_end',
                                                                                  second_flank_start_col = 'second_flank_start',
                                                                                  second_flank_end_col = 'second_flank_start',
                                                                                  event_id_col = 'event_id',
                                                                                  gene_col = 'Gene name',
                                                                                  dPSI_col='dPSI',
                                                                                  coordinate_type = 'hg19')

Downstream Analysis

PTM-POSE also provides functions in the annotate module for annotating the above outputs with functional information from various databases: PhosphoSitePlus, RegPhos, PTMcode, PTMInt, ELM, DEPOD, OmniPath, and PTMsigDB. You can then identify PTMs with specific functions, interaction, etc. with the analyze module. For more information and examples of analysis, see the full documentation.

Have questions?

Please reach out to Sam Crowl (sc8wf@virginia.edu) if you have questions or suggestions about new analysis functions that you would like to see implemented. We hope to continue to expand the analysis that can be easily performed with this package as time goes on, and welcome any feedback.

Metadata

Release files for ptm-pose 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ptm-pose 0.4.0
File Size Uploaded Provenance Actions
ptm_pose-0.4.0.tar.gz 18.2 MB Without provenance Details for ptm_pose-0.4.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ptm-pose 0.4.0
File Interpreter ABI Platform Actions
ptm_pose-0.4.0-py3-none-any.whl Python 3 none any Details for ptm_pose-0.4.0-py3-none-any.whl

Total release size: 36.4 MB

Release files / ptm_pose-0.4.0.tar.gz

Download URL ptm_pose-0.4.0.tar.gz
Size 18.2 MB
Tags Source
SHA-256 checksum
How to use checksums
15df86118e85bd7231595f6420071ab4fb47ad38912654264cb698b7d4fc3ce2
BLAKE2b-256 checksum
How to use checksums
a6d2c8cc64486b22d01785b901dac3accd075135d6df9db49c4aa8a967075e1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / ptm_pose-0.4.0-py3-none-any.whl

Download URL ptm_pose-0.4.0-py3-none-any.whl
Size 18.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
bc214ce00fdf8272afc8d09a29a3da6683b4938b4ffcd28b48d8fbe93744ea9b
BLAKE2b-256 checksum
How to use checksums
930fc049a6262847428972917fa3b29d2ac93959aef291ec6eea7ca6b03b630f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Security for ptm-pose 0.4.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page