Package: PTMods
Authors: Laurent Gatto [aut] (ORCID: https://orcid.org/0000-0002-1520-2268), Sebastian Gibb [aut] (ORCID: https://orcid.org/0000-0001-7406-4443), Guillaume Deflandre [cre] (ORCID: https://orcid.org/0009-0008-1257-2416)
Last modified: 2026-02-17 13:50:13.656189
Compiled: Thu Mar 5 19:46:44 2026

1 Introduction

Post-translational modifications (PTMs) are covalent modifications that happen after protein biosynthesis and that can have a major influence on protein function. PTMs are biologically very important and can be identified in a high-throughput way using mass spectrometry.

The PTMods package focuses on handling such PTMs and works in conjuction with the PSMatch and Spectra packages. It distributes PTMs from the Unimod database and allows to convert PTM annotations between multiple annotation formats.

library(PTMods)

1.1 Installation

The package can be installed from Bioconductor with

if (!require("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("PTMods")

Alternatively, altough this isn’t recommended in general, it can also be installed from Github.

BiocManager::install("RforMassSpectrometry/PTMods")

2 The Unimod database

The PTMods package distributes the data from the Unimod database:

Unimod is a public domain database, distributed under a copyleft licence: “a copyright notice that permits unrestricted redistribution and modification, provided that all copies and derivatives retain the same permissions.”

The aim is to create a community supported, comprehensive database of protein modifications for mass spectrometry applications. That is, accurate and verifiable values, derived from elemental compositions, for the mass differences introduced by all types of natural and artificial modifications. Other important information includes any mass change, (neutral loss), that occurs during MS/MS analysis, and site specificity, (which residues are susceptible to modification and any constraints on the position of the modification within the protein or peptide).

Source: http://www.unimod.org/unimod_help.html

The package provides the following objects.

  • The modifications dataframe describing 3704 PTMs from the unimod database:
data(modifications)
head(modifications)
##                              Id UnimodId   Name Description Composition AvgMass
## Acetyl:K               Acetyl:K        1 Acetyl Acetylation H(2) C(2) O 42.0367
## Acetyl:N-term     Acetyl:N-term        1 Acetyl Acetylation H(2) C(2) O 42.0367
## Acetyl:C               Acetyl:C        1 Acetyl Acetylation H(2) C(2) O 42.0367
## Acetyl:S               Acetyl:S        1 Acetyl Acetylation H(2) C(2) O 42.0367
## Acetyl:P-N-term Acetyl:P-N-term        1 Acetyl Acetylation H(2) C(2) O 42.0367
## Acetyl:T               Acetyl:T        1 Acetyl Acetylation H(2) C(2) O 42.0367
##                 MonoMass   Site       Position     Classification SpecGroup
## Acetyl:K        42.01056      K       Anywhere           Multiple         1
## Acetyl:N-term   42.01056 N-term     Any N-term           Multiple         2
## Acetyl:C        42.01056      C       Anywhere Post-translational         3
## Acetyl:S        42.01056      S       Anywhere Post-translational         4
## Acetyl:P-N-term 42.01056 N-term Protein N-term Post-translational         5
## Acetyl:T        42.01056      T       Anywhere Post-translational         6
##                 NeutralLoss        LastModified Approved Hidden
## Acetyl:K              FALSE 2017-11-08 16:08:56     TRUE  FALSE
## Acetyl:N-term         FALSE 2017-11-08 16:08:56     TRUE  FALSE
## Acetyl:C              FALSE 2017-11-08 16:08:56     TRUE   TRUE
## Acetyl:S              FALSE 2017-11-08 16:08:56     TRUE   TRUE
## Acetyl:P-N-term       FALSE 2017-11-08 16:08:56     TRUE  FALSE
## Acetyl:T              FALSE 2017-11-08 16:08:56     TRUE   TRUE
  • The aminoacids dataframe describing 24 amino acids from the unimod database:
data(aminoacids)
head(aminoacids)
##   OneLetter ThreeLetter      FullName  AvgMass  MonoMass  H C N O S Se
## -         -                             0.0000   0.00000  0 0 0 0 0  0
## A         A         Ala       Alanine  71.0779  71.03711  5 3 1 1 0  0
## R         R         Arg      Arginine 156.1857 156.10111 12 6 4 1 0  0
## N         N         Asn    Asparagine 114.1026 114.04293  6 4 2 2 0  0
## D         D         Asp Aspartic acid 115.0874 115.02694  5 4 1 3 0  0
## C         C         Cys      Cysteine 103.1429 103.00919  5 3 1 1 1  0
  • The elements data.frame describing 40 chemical elements from the unimod database:
data(elements)
head(elements)
##     Name  FullName   AvgMass  MonoMass
## H      H  Hydrogen  1.007940  1.007825
## 2H    2H Deuterium  2.014102  2.014102
## Li    Li   Lithium  6.941000  7.016003
## C      C    Carbon 12.010700 12.000000
## 13C  13C  Carbon13 13.003355 13.003355
## N      N  Nitrogen 14.006700 14.003074

Note that the goal of PTMods is not to place this information in a biological context. There are other sources of biological information about post-translational modifications:

Other compilations of modifications with a focus on mass spectrometry:

3 Different types of PTM annotations

PTMs can be annotated using different syntaxes:

  • The deltaMass syntax that describes the mass shift of an amino acid such as for example "M[+15.994915]PEPTIDE" for an oxidation.
  • The unimodId that uses the unimod identifier such as for example "M[UNIMOD:35]PEPTIDE" for an oxidation.
  • The modification’s name, such as for example "M[Oxidation]PEPTIDE".

The convertAnnotion() function can be used to convert between these different syntaxes:

convertAnnotation("M[Oxidation]PEPTIDE", convertToStyle = "deltaMass")
## [1] "M[+15.994915]PEPTIDE"
convertAnnotation("M[Oxidation]PEPTIDE", convertToStyle = "unimodId")
## [1] "M[UNIMOD:35]PEPTIDE"
convertAnnotation("M[+15.995]PEPTIDE", convertToStyle = "name")
## [1] "M[Oxidation]PEPTIDE"

4 Session information

sessionInfo()
## R Under development (unstable) (2026-01-15 r89304)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.3 LTS
## 
## Matrix products: default
## BLAS:   /home/biocbuild/bbs-3.23-bioc/R/lib/libRblas.so 
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.12.0  LAPACK version 3.12.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_GB              LC_COLLATE=C              
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## time zone: America/New_York
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] PTMods_0.99.2    BiocStyle_2.39.0
## 
## loaded via a namespace (and not attached):
##  [1] digest_0.6.39       R6_2.6.1            bookdown_0.46      
##  [4] fastmap_1.2.0       xfun_0.56           cachem_1.1.0       
##  [7] knitr_1.51          htmltools_0.5.9     rmarkdown_2.30     
## [10] lifecycle_1.0.5     cli_3.6.5           sass_0.4.10        
## [13] jquerylib_0.1.4     compiler_4.6.0      tools_4.6.0        
## [16] evaluate_1.0.5      bslib_0.10.0        yaml_2.3.12        
## [19] otel_0.2.0          BiocManager_1.30.27 jsonlite_2.0.0     
## [22] rlang_1.1.7