| Title: | Kinase PWMs based on data published by Johnson et al. 2023 and Yaron-Barir et al. 2024 |
|---|---|
| Description: | The packages provides position specific weight matrices (PWMs) for 303 human serine/threonine and 93 tyrosine kinases originally published in Johnson et al. 2023 (doi:10.1038/s41586-022-05575-3) and Yaron-Barir et al. 2024 (doi:10.1038/s41586-024-07407-y). The package includes basic functionality to score user provided phosphosites. It also includes pre-computed PWM scores ("background scores") for a large collection of curated human phosphosites which can be used to rank PWM scores relative to the background scores ("percentile rank"). |
| Authors: | Florian Geier [aut, cre] (ORCID: <https://orcid.org/0000-0002-9076-9264>) |
| Maintainer: | Florian Geier <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 1.8.0 |
| Built: | 2026-10-10 11:19:00 UTC |
| Source: | https://github.com/bioc/JohnsonKinaseData |
Two sets of background scores are provided:
getBackgroundScores(phosphoAcceptor = c("Ser/Thr", "Tyr"))getBackgroundScores(phosphoAcceptor = c("Ser/Thr", "Tyr"))
phosphoAcceptor |
Return background scores for either Ser/Thr or Tyr phosphosites |
Ser/Thr phosphosites published in Johnson et al. 2023 2. Tyr phosphosites published in Yaron-Barir et al. 2024
The background scores are derived from matching the corresponding PWMs to each of the sets. The resulting data frames contain the log2-odds score per phosphosite and PWM.
A data frame with log2-odds scores per phosphosite (rows) and PWMs (columns)
Johnson, J.L., Yaron, T.M., Huntsman, E.M. et al. An atlas of substrate specificities for the human serine/threonine kinome. Nature 613, 759–766 (2023). https://doi.org/10.1038/s41586-022-05575-3
Yaron-Barir, T.M., Joughin, B.A., Huntsman, E.M. et al. The intrinsic substrate specificity of the human tyrosine kinome. Nature 629, 1174–1181 (2024). https://doi.org/10.1038/s41586-024-07407-y
bg <- getBackgroundScores(phosphoAcceptor='Tyr')bg <- getBackgroundScores(phosphoAcceptor='Tyr')
The annotation data records for each kinase PWM, the PWM matrix name, gene symbol and description, Uniprot ID, Entrez ID, acceptor specificity, kinase sub-type, as well as the kinase family.
getKinaseAnnotation()getKinaseAnnotation()
Kinase PWMs are either serine/threonine or tyrosine specific in their central phospho-acceptor. For dual-specific kinases, the tyrosine-specific PWM is indicated by the '_TYR' suffix in the PWM name.
Tyrosine kinases are further distinguished by sub-type and include receptor tyrosine kinases (RTK), non-receptor tyrosine kinases (nRTK) and non-canonical tyrosine kinases (ncTK) with dual-specificity.
A data frame with columns MatrixName, GeneName, UniprotID, EntrezID, Description, AcceptorSpecificity, KinaseSubType and KinaseFamily
anno <- getKinaseAnnotation()anno <- getKinaseAnnotation()
The function returns a named list of 396 kinase PWMs. Among these are 303 serine/threonine kinases, 78 canonical tyrosine kinases and 15 non-canonical tyrosine kinases i.e. dual-specific kinases, indicated by the '_TYR' suffix.
getKinasePWM(includeSTfavorability = TRUE, matchAcceptorSpecificity = FALSE)getKinasePWM(includeSTfavorability = TRUE, matchAcceptorSpecificity = FALSE)
includeSTfavorability |
Include serine vs. threonine favorability for the central phospho-acceptor? |
matchAcceptorSpecificity |
Only score sites with a matching central phospho-acceptor? |
Each PWM stores the log2-odds score per amino acid (23 rows) and position (10 or 11 columns) in matrix format. Beside the 20 standard amino acids also phosphorylated serine, threonine and tyrosine residues are included.
The central phospho-acceptor position of each PWM is at position 0 (column
6). For serine/threonine specific kinases this position quantifies the
favorability of serine over threonine, but can be omitted when setting
'includeSTfavorability=FALSE'.
The specificity of a kinase PWM is controlled by parameter 'matchAcceptorSpecificity'. If set to 'TRUE', sites without a matching acceptor are scored with '-Inf'.
A named list of numeric matrices (PWMs).
Johnson, J.L., Yaron, T.M., Huntsman, E.M. et al. An atlas of substrate specificities for the human serine/threonine kinome. Nature 613, 759–766 (2023). https://doi.org/10.1038/s41586-022-05575-3
Yaron-Barir, T.M., Joughin, B.A., Huntsman, E.M. et al. The intrinsic substrate specificity of the human tyrosine kinome. Nature 629, 1174–1181 (2024). https://doi.org/10.1038/s41586-024-07407-y
pwms <- getKinasePWM()pwms <- getKinasePWM()
For each kinase PWM, get a function that maps its log2-odds score to the percentile rank in the background score distribution. The percentile rank of a given score is the percentage of scores in corresponding background score distribution that are less than or equal to that score. The background score distribution per PWM is derived from matching each PWM to either the 85'603 unique phosphosites published in Johnson et al. 2023 (serine/threonine PWMs) or the 6659 unique phosphosites published in Yaron-Barir et al. 2024 (tyrosine PWMs).
getScoreMaps()getScoreMaps()
Note: since the background sites don't contain non-central phosphorylated residues (phospho-priming), the percentile rank of an input site which includes phospho-priming will be capped to 100, if its PWM score exceeds the largest observed background score for that PWM.
Internally, stats::approxfun is used to linearly interpolate between the PWM score and its 0.1% - quantile in the distribution over background scores. This approximation allows for a lower memory footprint compared with the full set of background scores.
A named list of functions, one for each kinase PWM. Each function is taking a vector of log2-odds scores as input and returns the corresponding percentile ranks.
maps <- getScoreMaps()maps <- getScoreMaps()
Process phospho-peptides to a common format used for PWM matching
processPhosphopeptides( sites, onlyCentralAcceptor = TRUE, allowPhosphoPriming = TRUE, upstream = 5L, downstream = 5L )processPhosphopeptides( sites, onlyCentralAcceptor = TRUE, allowPhosphoPriming = TRUE, upstream = 5L, downstream = 5L )
sites |
Character vector with phospho-peptides |
onlyCentralAcceptor |
Process only the central phospho-acceptor residue? |
allowPhosphoPriming |
Allow phospho-acceptors at non-central positions? These should be indicated by the lower case letters s, t or y. |
upstream |
Number of bases upstream of central phospho-acceptor in the processed output |
downstream |
Number of bases downstream of central phospho-acceptor in the processed output |
Phosphorylated residues are recognized either by lower case letters (s, t or y) or the phosphorylated residue is followed by an asterisk (S*, T* or Y*).
If a peptide reports several phosphorylated residues, parameter
onlyCentralAcceptor allows for two processing options: (1) By default, only
the central phospho-acceptor of each phospho-peptide is considered. Here
central is defined as the left-closest position to floor(nchar(site)/2)+1.
(2) All phospho-acceptors are considered as central in which case the
phospho-peptide is replicated and aligned for each of its phosphorylated
residues. In this case the output sites are not in parallel to the input
peptides.
In both cases, non-central phospho-acceptors are indicated by lower case
letters (s, t, or y). These residues enable phospho-priming of the site. If
phospho-priming is disabled (parameter allowPhosphoPriming) these residues
are converted to upper case letters.
If a site does not follow the phosphorylation patterns described above, the
central residue defined by position floor(nchar(site)/2)+1 is considered
the default phospho-acceptor site.
The input sites are truncated and/or padded such that the processed sites are
of width upstream+downstream+1. By default the central phospho-acceptor
is surrounded by 5 upstream and 5 downstream residues.
A warning is raised if the central phospho-acceptor is not serine, threonine or tyrosine.
A tibble with columns: sites, processed, acceptor
procSites <- processPhosphopeptides(c("AGLLS*DEDC", "RtEKGS*N", "ETGKDN"))procSites <- processPhosphopeptides(c("AGLLS*DEDC", "RtEKGS*N", "ETGKDN"))
scorePhosphosites takes a list of kinase PWMs and a vector of processed
phosphosites as input and returns a matrix of match scores per PWM and site.
scorePhosphosites( pwms, sites, scoreType = c("lod", "percentile"), BPPARAM = BiocParallel::SerialParam() )scorePhosphosites( pwms, sites, scoreType = c("lod", "percentile"), BPPARAM = BiocParallel::SerialParam() )
pwms |
List with kinase PWMs as returned by getKinasePWM. |
sites |
A character vector with phosphosites. Check processPhosphopeptides for the correct phosphosite format. |
scoreType |
Log2-odds score or percentile rank. |
BPPARAM |
A BiocParallelParam object specifying how parallelization should be performed. |
The match score is either the log2-odds score (lod) or the percentile rank
(percentile) in the background score distribution.
A numeric matrix of size length(sites) times length(pwms).
getKinasePWM for getting a list of kinase PWMs, processPhosphopeptides for the correct phosphosite format, and getScoreMaps for mapping PWM scores to percentile ranks
score <- scorePhosphosites(getKinasePWM(), c("TGRRHTLAEV", "LISAVSPEIR"))score <- scorePhosphosites(getKinasePWM(), c("TGRRHTLAEV", "LISAVSPEIR"))