January 2021 MetOSite Release

We are pleased to announce that a new release of MetOSite is now available. Among the new MetO sites incorporated to the database, we would like to highlight methionine 308 from the Ca2+/calmodulin-dependent protein kinase II (CaMKII). CaMKII is a serine/threonine kinase that plays very relevant roles in the cardiomuscular physiology, and which has been related to a number of human diseases.

During the past 2020, the laboratory of Mark E. Anderson at the Johns Hopkins University, in collaboration with other laboratories (Rodney L. Levine at the NIH in Bethesda, Alex L. Holodkin at the Johns Hopkins University and Vadim N. Gladyshev at the Harvard Medical School) published in the Journal of Clinical Investigation (130:4663-4678) a paper that constitutes a real breakthrough in the area of redox signaling. In this paper, summarized in a short video by Mark Anderson, the authors show that:

• MICAL 1, a methionine monooxygenase thought to exclusively target actin, can stereospecifically oxidize CaMKII Met308 to methionine sulfoxide (Met308-O-R). Met308 is a highly conserved residue in the CaM-binding domain of CaMKII.
• This oxidation decreased CaM binding and CaMKII activity, while the absence of MICAL 1 in mice caused cardiac arrhythmias and premature death due to CaMKII hyperactivation.
• MSRB, a methionine reductase, can reduce Met308-O-R back to methionine.

Therefore, the coordinate action of MICAL 1 and MSRB seems to control the stereospecific redox status of Met308, which is revealed as a key regulator of fight-or-flight response.


How to access the API of MetOSite using R

How to access the API of MetOSite using the R language

R is an excellent language for statistics and data analyses. Therefore, R is a fine choice to analyse the data supplied by MetOSite. In this tutorial we will show how to pull data into R from our database (DB) using its API.

The MetOSite‘s API offers a number of end-point functions. However, the procedure to invoke them and parse the data they will return is similar in all of them:

  • Make a “GET” request to pull raw data into our R environment.
  • Parse raw data through JavaScript Object Notification (JSON) into a usable format (most of the time a dataframe)

Getting a summary of MetOSite data

To illustrate this two-steps procedure with a straightforward example, let us suppose we want to obtain a dataframe containing a summary (statistics) of the data found into MetOSite: what species are represented and with how many proteins and with how many MetO sites contributes each of these species.

But before we begin our task, we will need to download and install two R packages: httr and jsonlite, which will assist us in our purposes.

# install.packages("httr") 
# install.packages("jsonlite")

Afterwards, we are ready to make our first “GET” request.

call <- '' # This is the API URL
response <- httr::GET(call)

The response to the API call, which has been placed in the object we have named as response, is actually a list containing many different items with most of it being administrative information from the API in which we are not interested. To get the data we really want, we are going to use another httr function that will perform the process named ‘deserialization’, which will offer us the data we are searching for in a json format.

if (response$status_code == 200){
  json_species <- httr::content(response, 'text')
} else {

This converts the raw data from our API call into JSON format. However, if we want to analyse these data using R, it would be convenient to parse the JSON using the jsonlite package we have previouly installed.

df_species <- jsonlite::fromJSON(json_species, flatten = TRUE)
## Error in jsonlite::fromJSON(json_species, flatten = TRUE): objeto 'json_species' no encontrado
## Error in head(df_species): objeto 'df_species' no encontrado

So, df_species is the dataframe that were looking for from the beginning.

Alternatively, we can get a sammary putting the focus on the oxidants instead of the species. In this case the end-point function from the API that we have to call is not species but oxidant:

call <- '' # This is the API URL
response <- httr::GET(call)

if (response$status_code == 200){
  json_oxidants <- httr::content(response, 'text')
  df_oxidants <- jsonlite::fromJSON(json_oxidants, flatten = TRUE)
} else {

Getting all the sites involved in PPI effects

Now that we have gained confidence in our abilities to access MetOSite through its API, we can face a task a bit more elaborated.

Basically what we want to do is to filter the DB to keep only those entries related to changes in a biological property such as the ability to stabilize or destabilize protein-protein interactions. In order to understand how the API filters the DB using the end-point search, we have to introduce previously some basic ideas related to Groups and Functional Categories.

Each MetO site is assigned to one of three possible Groups. Group 1 is composed of all those MetO sites coming from high-throughput studies for which nothing is known about the effect of their sulfoxidation just because it has not been addressed. On the contrary, the effect of the oxidation of residues belonging to Group 2 has been assesed, but no effect could be found. Finally, Group 3 encompasses all the methionine sites whose sulfoxidation has been reported to have an effect on at least one of the following six biological properties:

  • Gain of activity
  • Loss of activity
  • Gain of protein-protein interaction
  • Loss of protein-protein interaction
  • Effect on protein stability
  • Effect on subcellular localization

Each of these six properties can be considered as a binary variable. Thus, a value of 1 for any of these variable means that experimental evidence supporting such an effect has been published. On the contrary, a value of 0 only means that we have not found experimental evidence to support such an effect. In this way, attending to these variables, we have Functional Categories (FCs). In other words, the FC of a given MetO site can be enconded by a vector of dimension 6. It should be noted that a site with a vector (0,0,0,0,0,0), meaning that no effect has been described for the oxidation of that site, can belong to Group 1 or to Group 2. That is, actually we will deal with FCs.

Making use of the mapping end-point function

Thus, to know what Functional Categories correspond with sites involving any effect (either gain or loss) on protein-protein interaction, we will make use of an ancillary end-point function called mapping. This function takes two arguments. The first one is related to the functional groups. For instance, the string 001 is interpreted as we are only interested in the Group 3. If instead of 001 we pass 101 as the first argument, then mapping will interprets that we want to filter out group 2, and focus on groups 1 and 3. The second argument that should be passed to mapping is a 6-dimensional vector providing information about the effect on the six biological properties. For instance, with the point (0,0,1,1,0,0) we would retrieve those sites for which a gain and a loss of PPI has been reported (probability with different partners), but no other effect on the remaining properties has been described. On the other hand, if we have a site causing a gain of PPI and a loss of PPI but also a gain of activity, then the right argument would be (1,0,1,1,0,0). Please, note that the first and second coordinates point to the gain and loss of activity, respectiviely, and so on (keeping the order of the list given above).

What if we are in those sites with a gain and a loss of PPI but we do not care about the 4 remaining properties (that may be affected or not). In this case, the right argument would be (2,2,1,1,2,2). As the insightful reader would have intuited the integer 2 means: it does not matter whether the property has been described to be affected or not. For instance, (2,0,1,1,0,0) = (0,0,1,1,0,0) (1,0,1,1,0,0).

In the example we are developing herein, we are interested in those MetO sites involved in gain and/or loss of PPI withouth any other consideration. So, these sites are encoded as follows: (2,2,1,2,2,2) (2,2,2,1,2,2). At this point, we are in condition to use knowingly the mapping end-point.

groups <- '001'

## ---------------------- Sites gaining PPI ------------------------  ##

categories <- '221222' # Note we use neither parenthesis nor commas.
call <- paste('',  
              groups, '/', categories, sep = "")
gPPI <- httr::GET(call)
gPPI <- httr::content(gPPI, 'text')
gPPI <- jsonlite::fromJSON(gPPI, flatten = TRUE)

## ---------------------- Sites losing PPI ------------------------  ##

categories <- '222122' # Note we use neither parenthesis nor commas.
call <- paste('', 
              groups, '/', categories, sep = "")
lPPI <- httr::GET(call)
lPPI <- httr::content(lPPI, 'text')
lPPI <- jsonlite::fromJSON(lPPI, flatten = TRUE)

## ------------------ Joining both sets --------------------------- ##
fcPPI <- union(gPPI, lPPI)
fcPPI <- fcPPI[order(fcPPI)]

Now, that we know that there are 48 different functional categories that meet the requeriments, we can move to find all the MetO sites present into MetOSite belonging to these categories.

Making use of the search end-point function

This function takes three arguments: (i) the first is related to the functional categories we want to retrieve, (ii) the second one allows to filter using a taxon criterium the organism(s) we are interested in, and
(iii) the third criterium is related to the oxidant(s) we want to consider.

Because the FCs we are going to pass to the search function need to be separated from each other by the symbol &, we are going to write a function that will make the formatting work for us:

format_FC <- function(fc){
  formatted.fc <- c()
  count <- 0
  for (i in fc){
    count <- count + 1
    if (count < length(fc)){ 
        formatted.fc <- paste(formatted.fc, i, '&', sep = "")
    } else {
        formatted.fc <- paste(formatted.fc, i, sep = "")

So, let’s use that function to format the set of 48 FCs we got previously, and then make use of the search end-point function:

ffc <- format_FC(fcPPI) # formatted FCs related to PPI
## Error in format_FC(fcPPI): no se pudo encontrar la función "format_FC"
organism <- '-1' # meaning we don't care about the organism
oxidant <- '-1'  # meaning we don't care about the oxidant

call <- paste('',
              ffc, '/', organism, '/', oxidant, sep = "")
## Error in paste("", ffc, "/", : objeto 'ffc' no encontrado
response <-  httr::GET(call)
## Error in as.character(url): cannot coerce type 'special' to vector of type 'character'
json.entries <- httr::content(response, 'text')
## Error in is.response(x): objeto 'response' no encontrado
ppi.results <- jsonlite::fromJSON(json.entries, flatten = TRUE)
## Error in jsonlite::fromJSON(json.entries, flatten = TRUE): objeto 'json.entries' no encontrado
# That's the data frame we wanted.
## Error in head(ppi.results): objeto 'ppi.results' no encontrado

Final remarks

This tutorial does not pretend to be exhaustive, on the contrary it aims to be a primer from which the user can continue on his own to communicate with the API of MetOSite by means of the R language. We encourage the user to explore the other end-points that will find at (

Further readings

For further details we recomend the reading of the following article that we have found very helpful:

Copyright © 2018 The MetOSite team


Methionine in Proteins

Methionine is a sulfur-containing amino acid that is present in peptides and proteins. Over the last 20 years, research from several laboratories supports the concept that methionine serves as an important cellular antioxidant, stabilizes the structure of proteins, participates in the sequence-independent recognition of protein surfaces, and can act as a regulatory switch through reversible oxidation and reduction. Herein we do not intend to comprehensively review all these evidences. On the contrary, when writing this brief document, we have kept in mind a curious reader with a field of expertise different than the one being the focus of this review. Thus, the current document aims to be a primer for those readers wiling to broaden their perspectives.

Methionine: hydrophobic but also unbranched and polarizable

Methionine in proteins is often thought to be a generic hydrophobic residue. In fact, this is the way most Biochemistry textbooks describe this amino acid. Not surprisingly, many biologists regard this amino acid as one functionally replaceable with another hydrophobic residue such as leucine, isoleucine or valine. However, unlike other hydrophobic residues the side chain of methionine is unbranched providing ample flexibility.

Molecular structure of the amino acids with aliphatic side chain

This extra-flexibility is not an idle property. When several methionines are arranged on one side of an amphiphilic -helix, these flexible residues provide a malleable nonpolar surface that can adapt itself to peptide binding partners of varying sequence. This seems to be the case of calmodulin (P0DP23) and the signal recognition particle 54 kDa subunit (P61011). These proteins share two relevant features: (i) they contain structural domains that are unusually rich in methionine residues, and (ii) they are able to interact, in a specific way, with many protein partners that are diverse in sequence among them.

Being important as it is, the lack of branching is not the only property that contributes to the uniqueness of this amino acid. One obvious consequence is derived from the fact that the polarizability of sulfur in its lower oxidation states is substantially larger than the polarizabilities of typical hydrocarbon moieties. As a consequence, during protein-protein interactions one can expect that London dispersion forces make greater contributions when sulfur is in place of carbon [1].

Methionine residues are subjected to reversible oxidation and reduction

The sulfur atom from methionine can be readily oxidized to form the corresponding sulfoxide, converting, in this way, an apolar side chain into a highly polar one.

Comparison of the side chain of Met (apolar) and MetO (polar)

Methionine sulfoxide can then be reduced back to methionine. In this way, the interconversion of Met and MetO, in vivo, constitutes a process involving two different reactions, each one with its own forward and backward unidirectional rates. These redox reactions can be enzyme-catalyzed. Thus, Met forms MetO by adding oxygen to its sulfur atom in a reaction that can be catalyzed at least for two different enzymes: methionine sulfoxide reductase A (MsrA, a bifunctional enzyme) that, when operating in the oxidizing direction, yield the S epimer of methionine sulfoxide (Met-S-O) [2]; and Mical, an enzyme that also exhibits stereospcificity, but, in this case, catalyzing the formation of the R epimer (Met-R-O) [3]. The reduction back to methionine of these MetO epimers is mediated by MsrA and MsrB, respectively.

Reversible enzyme-catalyzed interconversion of Met and MetO

This reversible post-translational covalent modification of methionyl residues can have far-reaching biological implications as we will outline next.

Methionine residues in proteins can act as endogenous antioxidants

The oxidation of certain methionine residues of a protein may have no effect on the activity of the same. A historical and paradigmatic example of that is provided by α2macroglobulin (A2M), a high molecular weight (~725 kDa) plasma proteinase inhibitor that targets a wide variety of proteinases. Each subunit of A2M consumes 8 molecules of chloramine (an oxidant) without any loss of anti-proteinase function. During a second phase of oxidative modification, the A2M is inactivated with loss of activity proceeding in a manner directly proportional to the consumption of chlorinated oxidants. At this point, each subunit consumed 16 mol of chloramine, but only 14 Met residues were oxidized [4].

Further studies demonstrated that a single tryptophan residue in each subunit was being oxidized by the remaining chloramine and that the decrease in total tryptophan residues (from 11 to 10) was directly proportional to loss of anti-proteinase activity in tandem with the dissociation of the tetrameric A2M into dimers [4].

The ability of A2M to tolerate oxidation of 8 methionyl residues without loss of activity led to the hypothesis in which these residues functioned as antioxidants that protected the critical tryptophan residue from oxidation. The subsequent observation that the sulfoxidation of certain methionine positions in other proteins had no apparent effect on the activity of these proteins, led to Levine and co-workers to the more general hypothesis that methionine residues on the protein surfaces may act as reactive species of oxygen (ROS) sinks, and therefore function as antioxidants [5].

Reversible methionine oxidation as a sink of ROS

Although ROS are generated in diverse cellular compartments, the vast majority of ROS production can be traced back to the mitochondrion. Not surprisingly, this organelle display a variety of ROS scavenging systems [6]. In this line, the reassignment of the AUA codon from isoleucine to methionine, observed in the genetic code of mammalian mitochondria, has been interpreted as an adaptive process leading to antioxidant methionine accumulation in respiratory chain complexes [7]. Indeed, while the average methionine content of the proteins encoded by the nuclear genome (nDNA) is around 2 %, this percentage rises to 6 % when the proteins analyzed are those encoded by the mitochondrial genome (mtDNA).

If mitochondrial methionine residues serve as a ROS sink, then the proteins from animals subjected to high oxidative stress should accumulate methionine more effectively than their orthologous proteins from species exposed to lower oxidative stress. To address this hypothesis, we carried out a meta-examination of mitochondrial genomes from mammalian species using longevity as an inverse proxy of the ROS production rate [8]. Our analyses unveiled a hitherto unnoticed observation: mitochondrially encoded polypeptides from short-lived species were enriched in methionine when compared with their long-lived counterparts. Furthermore, we showed evidence suggesting that methionine addition to proteins in short-lived species, rather than methionine loss from proteins in long-lived species, was behind the reported difference in methionine usage [9].

Sulfoxidation of selected methionine residues mediates the regulation of various cellular processes

Like phosphorylation, methionine sulfoxidation can be regarded as a post-translational modification able to play a role in cell signaling and regulating cellular processes. Thus, in MetOSite we have distinguished between those methionines whose oxidation does not impact the properties of the protein, and consequently they may play a role as endogenous antioxidants, from those other methionines that may be signaling competent because when oxidatively modified they affect at least one of the properties listed in the table shown below. In this table, the number of MetO sites found in MetOSite affecting the indicated property, as well as the number of different proteins and species involved are provided.

Affected PropertyProteinsSitesSpecies
Gain of Activity15209
Loss of Activity419820
Gain of Protein-Protein Interaction231
Loss of Protein-Protein Interaction296014
Effect on Protein Stability24448
Effect on Subcellular Location343

It should be noted that the same site can affect simultaneously to different properties. For instance, the oxidation of Met-80 from cytochrome c (P00004) inhibits electron transport but increases the peroxidase activity of the protein and, in addition, influences the subcellular location of the protein. That is, this single site computes in gain of activity, loss of activity and effect on subcellular location.

In line with a relevant role for methionine in cell signaling, many examples of regulation by methionine oxidation have been described in the literature, including activation of the transcription factor HypT in prokaryotes [10] and regulation of the transcriptional factor NirA in Aspergillus nidulans. In the latter case, the sulfoxidation affects the distribution of the protein between nucleus and cytoplasm [11]. Another remarkable example of regulatory effect is that of calmodulin Met76 modification that modulates the effectivity to activate its target CaMKIIα [12]. No less remarkable is the sulfoxidation-mediated regulation of actin assembly [13-15]. Finally, there are also examples in the literature of cellular responses controlled by changes in susceptibility to proteolysis of target proteins via methionine modification [16-18]. An extensive review about methionine sulfoxidation as a regulatory strategy can be found at [19].

Cross-talk between methionine sulfoxidation and O-phosphorylation

In addition to the cases cited above, in which the sulfoxidation of methionine residues seems to have a direct effect on the activity of the modified protein, there are other cases in which methionine oxidation may impact the function of the target protein acting as a coupling agent between the oxidative signal and the phosphorylation status of that protein. For instance, it has been reported that the oxidation of Met538 within the phosphorylation motif of nitrate reductase (P11035) inhibits the phosphorylation of the nearby site Ser534, which would avoid the inactivation of nitrate reductase [20].

When the co-occurrence of these two types of PTMs (sulfoxidation and phosphorylation) within the human proteome was analyzed, as many as 98 % of the proteins containing oxidized methionine after an oxidative insult were also phosphoproteins. Furthermore, phosphoserine (pSer) and MetO sites cluster together in a statistically significant way when compare to Ser and Met. In addition, this proximity between modification sites could not be accounted for by their co-localization within unstructured regions because it was faithfully reproduced in a smaller sample of structured proteins [21]. This results strongly suggests that methionine sulfoxidation in the phosphorylation motifs it is not a random process directed by mass action, but on the contrary it is a highly specific and selective process.

The conclusion that methionine oxidation within phosphorylation motifs is a specific process was further supported by gene ontology (GO) term enrichment analysis. The results of such analysis suggest that the oxidation of methionine located within phosphorylation motifs is a highly selective process among stress-related proteins [21].

Protein kinases and protein phosphatase can be directly regulated by methionine modification

The phosphorylation status of a given protein can be modified through methionine oxidation in several ways. For instance, the oxidation of methionine residues around the phosphoaceptor can alters the affinity of protein kinases and protein phosphatase by the sulfoxidized substrate. That is, it is the substrate that undergoes the methionine modification (as we have discussed in the previous section). A different alternative is to modify the activities of protein kinases and protein phosphatases by methionine sulfoxidation.
In this regard, the activities of calcineurin and CaMKII, a protein phosphatase and a protein kinase, respectively, are both regulated by the redox state of specific methionines present in their sequences (see MetOSite entries Q08209 and Q6PHZ2, respectively). It is interesting to note that both activities are dependent on Ca2+ cations and calmodulin, and both are modulated, in addition, by oxidative signals, but they do so in the opposite direction. That is, while the oxidation of Met406 of calcineurin interferes with the binding of calmodulin and its subsequent activation [22], the oxidation of the pair Met281, Met282 in the regulatory domain of CaMKII entails an activation of the kinase activity independently of the calcium levels and of binding to calmodulins [23].


  1. Gellman SH (1991) On the role of methionine residues in the sequence-independent recognition of nonpolar protein surfaces. Biochemistry 30:6633–6636.
  2. Lim JC, You Z, Kim G, Levine RL (2011) Methionine sulfoxide reductase A is a stereospecific methionine oxidase. Proc Natl Acad Sci USA 108:10462–10477.
  3. Manta B, Gladyshev VN (2017) Regulated methionine oxidation by monooxygenases. Free Radic Biol Med 109:141–155.
  4. Reddy VY, Desrocheres PE, Pizzo SV, Gonias SL, Sahakian JA, Levine RL, Weiss SJ (1994) Oxidative dissociation of human alpha2-macrogobulin tetramers into dysfunctional dimers. J Biol Chem 269:4683–4691.
  5. Levine RL, Mosoni L, Berlett BS, Stadtman ER (1996) Methionine residues as endogenous antioxidants in proteins. Proc Natl Acad Sci USA 93:15036–15040.
  6. Balaban RS, Nemoto S, Finkel T (2005) Mitochondria, oxidants, and aging. Cell 120:483–495.
  7. Bender A, Hajieva P, Moosmann B (2008) Adaptive antioxidant methionine accumulation in respiratory chain complexes explains the use of a deviant genetic code in mitochondria. Proc Natl Acad Sci USA 105:16496–16501.
  8. Aledo JC (2014) Life-history constraints on the mechanisms that control the rate of ROS production. Current Genomics 15:217–230.
  9. Aledo JC, Li Y, de Magalhães JP, Ruíz-Camacho M, Pérez-Claros JA (2011) Mitochondrially encoded methionine is inversely related to longevity in mammals. Aging Cell 10:198–207.
  10. Drazic A, Miura H, Peschek J, Le Y, Bach N, Kriehuber T, Winter J (2013) Methionine oxidation activates a transcription factor in response to oxidative stress. Proc Natl Acad Sci USA 110:9493–9498.
  11. Gallmetzer A, Silvestrini L, Schinko T, Gesslbauer B, Hortschansky P, Dattenböck C, Muro-Pastor MI, Kungl A, Brakhage AA, Scazzocchio C, et al. (2015) Reversible Oxidation of a Conserved Methionine in the Nuclear Export Sequence Determines Subcellular Distribution and Activity of the Fungal Nitrate Regulator NirA Hynes M, editor. PLoS Genetics 11:e1005297–27.
  12. Marimoutou M, Springer D, Liu C, Kim G, Levine R (2018) Oxidation of Methionine 77 in Calmodulin Alters Mouse Growth and Behavior. Antioxidants 7:140–16.
  13. Hung R-J, Pak CW, Terman JR (2011) Direct redox regulation of F-actin assembly and disassembly by Mical. Science 334:1710–1713.
  14. Hung R-J, Spaeth CS, Yesilyurt HG, Terman JR (2013) SelR/MsrB reverses Mical-mediated oxidation of actin to regulate F-actin dynamics. Nat Cell Biol 15:1445–1454.
  15. Lee BC, Péterfi Z, Hoffmann FW, Moore RE, Kaya A, Avanesov A, Tarrago L, Zhou Y, Weerapana E, Fomenko DE, et al. (2013) MsrB1 and MICALs Regulate Actin Assembly and Macrophage Function via Reversible Stereoselective Methionine Oxidation. Mol Cell 51:397–404.
  16. Kanayama A, Inoue JI, Sugita-Konishi Y, Shimizu M, Miyamoto Y (2002) Oxidation of I B at Methionine 45 Is One Cause of Taurine Chloramine-induced Inhibition of NF- B Activation. J Biol Chem 277:24049–24056.
  17. Fu X, Chen J, Gallagher R, Chung DW, López JA (2011) Shear stress–induced unfolding of VWF accelerates oxidation of key methionine residues in the A1A2A3 region. Blood 118:5283–5291.
  18. Stephan JR, Yu F, Costello RM, Bleier BS, Nolan EM (2018) Oxidative Post-Translational Modifications Accelerate Proteolytic Degradation of Calprotectin. J Am Chem Soc 140:17444–17455.
  19. Lim JM, Kim G, Levine RL (2019) Methionine in Proteins: It’s Not Just for Protein Initiation Anymore. Neurochem Res 44:247–257.
  20. Hardin SC, Larue CT, Oh M-H, Jain V, Huber SC (2009) Coupling oxidative signals to protein phosphorylation via methionine oxidation in Arabidopsis. Biochem. J. 422:305–312.
  21. Veredas FJ, Cantón FR, Aledo JC (2017) Methionine residues around phosphorylation sites are preferentially oxidized in vivo under stress conditions. Sci Rep 7:1–14.
  22. Carruthers NJ, Stemmer PM (2008) Methionine Oxidation in the Calmodulin-Binding Domain of Calcineurin Disrupts Calmodulin Binding and Calcineurin Activation. Biochemistry 47:3085–3095.
    Erickson JR, Joiner MA, Guan X, Kutschke W, Yang J, Oddis CV, Bartlett RK, Lowe JS, ODonnell S, Aykin-Burns N, et al. (2008) A dynamic pathway for calcium-independent activation of CaMKII by methionine oxidation. Cell 133:462–474.