Computers in Biology and Medicine 55 (2014) 36–41
Contents lists available at ScienceDirect
Computers in Biology and Medicine journal homepage: www.elsevier.com/locate/cbm
POTAMOS mass spectrometry calculator: Computer aided mass spectrometry to the post-translational modifications of proteins. A focus on histones Vlachopanos A.a, Soupsana E.b,c, Politou A.S.b,c, Papamokos G.V.a,b,c,d,n,1 a
Department of Informatics & Telecommunications Technology, Technological Educational Institute of Epirus, Kostakioi, Arta, Greece Laboratory of Biological Chemistry, Medical School, University of Ioannina, Greece c Foundation for Research and Technology, Hellas-Biomedical Research Institute, Ioannina, Greece d Department of Physics and School of Engineering and Applied Sciences, Harvard University, Cambridge, MA, USA b
art ic l e i nf o
a b s t r a c t
Article history: Received 12 June 2014 Accepted 1 October 2014
Mass spectrometry is a widely used technique for protein identification and it has also become the method of choice in order to detect and characterize the post-translational modifications (PTMs) of proteins. Many software tools have been developed to deal with this complication. In this paper we introduce a new, free and user friendly online software tool, named POTAMOS Mass Spectrometry Calculator, which was developed in the open source application framework Ruby on Rails. It can provide calculated mass spectrometry data in a time saving manner, independently of instrumentation. In this web application we have focused on a well known protein family of histones whose PTMs are believed to play a crucial role in gene regulation, as suggested by the so called “histone code” hypothesis. The PTMs implemented in this software are: methylations of arginines and lysines, acetylations of lysines and phosphorylations of serines and threonines. The application is able to calculate the kind, the number and the combinations of the possible PTMs corresponding to a given peptide sequence and a given mass along with the full set of the unique primary structures produced by the possible distributions along the amino acid sequence. It can also calculate the masses and charges of a fragmented histone variant, which carries predefined modifications already implemented. Additional functionality is provided by the calculation of the masses of fragments produced upon protein cleavage by the proteolytic enzymes that are most widely used in proteomics studies. & 2014 Elsevier Ltd. All rights reserved.
Keywords: Mass spectrometry Post-translational modifications POTAMOS mass spectrometry calculator Histones Protein cleavage Ruby on rails SQLite Proteomics Bioinformatics
1. Introduction Proteomics [1,2] focuses on the study and quantitative description of protein expression occurring in a cell, tissue or organism. The objective is to provide a clear understanding of the structure, function and role of the entire proteome [2] both in physiological and pathological conditions. The property of many proteins to undergo chemical modifications after their translation, widely known as post-translational modifications (PTMs), [3,4] increases the level of complexity in proteomics studies.
n Correspondence to: Lyman Laboratory, Department of Physics, Harvard University, Cambridge MA 02138, USA. Tel.: þ 1 49 2461 61 9560; fax: þ1 49 2461 61 4823. E-mail address:
[email protected] (G.V. Papamokos). 1 Present address: Laboratory of Computational Biophysics, German Research School for Simulation Sciences, GmbH Leo-Brandt-Straße, 52428 Jülich, Germany.
http://dx.doi.org/10.1016/j.compbiomed.2014.10.002 0010-4825/& 2014 Elsevier Ltd. All rights reserved.
Histone proteins, the building blocks of the nucleosome core particle [5], are particularly responsive to post-translationally modifying enzymes. These PTMs have been the subject of numerous experimental studies [6] and are now thought to be part of a “histone code” comprising readers, writers and erasers that control chromatin's structural and functional state in health and disease [7] and eventually regulate the transcriptional readout [8]. Recently, computational studies have also appeared in the literature, focusing on key examples of PTMs on histone proteins. [9,10] Tandem mass spectrometry (MS–MS) is a valuable experimental method used to identify and analyze proteins. This technique has been routinely employed in peptide studies, but due to the constant improvement of the relevant instrumentation, it has been extended and widely applied by now to the analysis of proteins and their PTMs. Mass spectrometry (MS–MS) of proteins usually produces a huge number of complex data that can be hardly analyzed by hand. The existence of multiple modifiable amino acids and the variety of combinations, that can be present
A. Vlachopanos et al. / Computers in Biology and Medicine 55 (2014) 36–41
simultaneously, makes the process of accurately identifying each one of them tedious and time consuming for the experimentalist. Moreover, experimental factors, such as contamination of the sample, imperfect or simultaneous fragmentation of different peptides and even technical issues, introduce an additional level of complexity and uncertainty in the analysis of these data. Through the years various software tools have been developed to identify peptides from MS data [11–14] most of which include the identification of PTMs [13,15–17]. The most commonly used softwares are OMSSA, SEQUEST, MASCOT and PEAKS and can be classified in four categories: database searching, de novo sequencing, sequence tagging and consensus of multiple engines [13]. Almost all of them, with the exception of SEQUEST, have been implemented in online versions and can support various types of available instrumentation for tandem mass spectrometry. The quality and the reliability of the bioinformatic outcome in proteomics studies are constantly enhanced by the development of new and/or improved software. Nevertheless, an independent of instrumentation, user friendly and freely available software tool that could yield the whole number of possible PTM combinations, their possible distributions on the amino acid sequence (AAS) for a certain peptide and the corresponding full set of the unique primary structures, in a time saving manner, is still sought. In this work we have developed an easy to use, free and open source web application named POTAMOS mass spectrometry calculator that is able to: 1. Calculate the masses of either a given unmodified AAS or that of an AAS that can potentially carry methylations of arginines and lysines, acetylations of lysines or phosphorylations of serines and threonines. It can also calculate the possible modifications qualitatively (what kind of) and quantitatively (how many of each kind) and the number of combinations that correspond to the given peptide sequence and the calculated modifications. Furthermore it can produce all possible combinations and the full set of resulting primary structures that correspond to a given peptide and a specific set of modifications. 2. Calculate the masses and charges of a fragmented histone variant, which carries one, or more than one, predefined modifications of the types described above. 3. Calculate the masses of peptide fragments produced through the action of a protease on them. The application is available at: http://potamos.seas.harvard.edu.
2. Design and implementation 2.1. POTAMOS architecture POTAMOS is a client server based application that was developed on the open source web 2.0-application framework Ruby on Rails (RoR) [18–20]. RoR combines PHP and Java advantages to reduce entry barriers for the development of Web applications. It includes all necessary tools for database-supported Web applications and Web 2.0 features (Ajax support) and it implements a model-view-controller (MVC) architecture that separates the code, based on the purpose it was developed for. Mainly three sub frameworks accomplish this separation: active record, action view and action controller [18]. RoR has only one configuration file following the rule “Convention over Configuration”. It follows the DRY principle (DRY: Don't Repeat Yourself) so that developers seldom repeat themselves [18] and it is based on the dynamically typed, object-oriented Ruby programming language introduced in 1995 by Matsumoto [21]. Upon the release of Ruby on Rails 2.0, the REST
37
protocol [22] (Representational State Transfer) was adopted instead of SOAP (Service Oriented Architecture Protocol) [23]. JRuby [24], a high performance, fully threaded Java implementation of the Ruby programming language, was used to create real threads and make our application run on multiple cores. SQLite [25,26], the default software library for the implementation of the SQL database engine, was employed for the development of the POTAMOS database. POTAMOS is currently implemented on a server running Ubuntu 10.04.0 LTS and using the following software versions: JRuby 1.7.11, Rails 4.0.2, RubyGems 2.2.2, Puma 2.7.1, SQLite3 3.6.22. 2.2. Application structure POTAMOS is comprised of three main units: calculator, histone browser and protease cleaver. A short flow depiction of the whole application is given in Fig. 1. The detailed flowcharts of the units are shown in Figs. 1S, 2S, 3S and 4S. The UML class diagram of the database is given in Fig. 2 while a detailed explanation of the classes is given in S.I. A view of the welcome page of the application is given in Fig. 3. The masses are reported in atomic mass units throughout the application. 2.3. Calculator unit The calculator (Calc) unit is an independent application that calculates the mass of an amino acid sequence (AAS) or the total number of modifications carried by the AAS and their kind, provided that its modified mass is known. For the calculation of the mass of an AAS, the sequence should be entered either by uploading a FASTA or ASCII file that contains the AAS in the field “Upload Initial Peptide Sequence File” or by hand in the text-field “Insert Initial Peptide Sequence”. An AAS can be transferred by the other two units as well and can be used as input. Various input fields are available in the first page of the application to address the different choices of input. More details for the input format can be found in Calculator Input chapter of the manual. The importance of the tolerance for accurate tandem mass spectrometry calculation and identification of fragments has been demonstrated by Clauser et al. [27]. Upon tightening of the tolerance value the resolution is significantly reduced. To address the accuracy of the resolution the user can specify the tolerance of the calculation in atomic mass units. In mass spectrometry adducts are often formed: In positive ionic mode the sodium adduct is frequently present. Moreover proton transfer and the subsequent production of a cation or an anion is observed. To include these common ions the user can select the number and the type (sodium or proton) of ions present. The calculation of the monoisotopic mass of a compound uses the most abundant isotope of each element included in the compound while the average mass uses an average of the isotopes for each element weighted by their natural abundance. POTAMOS offers both options to the user. An example of a short sequence of amino acids is used for the presentation of this unit, comprising of the amino acids arginine (R), lysine (K), serine (S) and threonine (T). Thus, its mass (490.5601) is calculated. The reader is encouraged to make use of the example and the application for the verification of the results. The user can employ the unit to calculate the exact number of PTMs that correspond to a given AAS and a given target mass. That is, how many methylations, acetylations or phosphorylations will be present in the modified AAS. A partial number of the distributions of these modifications on the AAS is also presented. The modifications are currently limited to methylation, acetylation and phosphorylation, since, according to the literature, these are the most
38
A. Vlachopanos et al. / Computers in Biology and Medicine 55 (2014) 36–41
widely studied and best characterized (the acetylation of arginine is excluded). This calculation demands a given AAS, and the mass that corresponds to its variably modified form. More than one mass value can be treated with various input options available The mass (es) have been inputted to the database with 4 decimal digits. During the calculations all mass values will be rounded towards the precision of the target mass given by the user. In the results page three frames are presented: The first frame shows the calculated mass of the unmodified peptide. The second one displays the possible distributions of the chemical modifications along the AAS. The PTMs are distributed along the AAS according to the possible chemical modification sets (e.g. a set of 4 methylations and a set of 1 acetylation and 1 methylation constitute 2 different modification sets). Moreover, the possible degrees of modifications on single amino acids
(e.g. mono-, di-, or tri- methylation) are shown. At this frame only one combination is presented for each subset of solutions defined by the degrees of modifications on single amino acids. The last frame displays the whole number of possible combinations, that is, the whole number of the possible unique primary structures that correspond to the given mass for the inputted AAS. It also summarizes the calculation regarding the number and the kinds of chemical modifications carried by the AAS grouped in every possible set. Furthermore in this frame the user can access a sub-application which is able to produce the whole set of the unique primary structures that correspond to a set of possible degrees of modifications on single amino acids for the given peptide. The user must provide the degrees of modification that an amino acid can carry (e.g. x monomethylations and y dimethylations). To our knowledge, POTAMOS is the only software tool that is able to provide the whole set of the unique primary structures.
Histone Browser (HB) Select the organism and the variant family from
variant from a
The fragment and its calculated mass
One or more aminoacids are selected for
are presented
Move
Inspect the chosen variant and chose which fragment to view
Selected fragment and its calculated mass are presented
to PC Move to
Calc
Calculator (Calc)
Sequence transferred from HB
OR Sequence transferred from PC
Input one or more target mass(es)
OR target mass(es)
OR Input initial sequence
Select the precision of the calculations
OR initial sequence
sequences for each of the masses are presented
Move to Calc Move to PC
Protease Cleaver (PC) Sequence transferred from HB
OR Sequence transferred from Calc
Select from a given list the protease to use
OR Input sequence to cleave
OR
The resulting fragments and their masses are presented
sequence to cleave
Fig. 1. Diagrammatic description of the basic steps of POTAMOS software for each subsequent unit and the interactions between them as seen by the end user.
A. Vlachopanos et al. / Computers in Biology and Medicine 55 (2014) 36–41
The algorithmic presentation of the application is illustrated in a detailed flowchart in the Supporting information (Fig. 1S) and described briefly below: In the first step, the application verifies
Properties id name abbreviation formula mol_weight 1 charge type_no created_at updated_at
Variants id variant_name protein_value 1 created_at updated_at
Organisms * id organism_name organism_value created_at updated_at N
Variantcomponents id variant_id property_id index_no N created_at updated_at Proteases ** id protease_name cleavage position created_at updated_at
Fig. 2. The UML class diagram for the POTAMOS application (n): The table named “Organisms” is connected to the database on the application layer (nn) The table named “Proteases” is not connected to any other table of the database directly but it serves as a pool for the proteases available in this application.
39
that a sequence and a mass are given as input and consequently the AAS is transformed to an array variable. The number of entries of the K, R, S, T, amino acids (because these are modifiable) is also stored in four variables and the mass of the initial sequence is calculated. In the next step, the difference between the initial and the target mass is calculated. Given this difference, a cycle of calculations begins by solving analytically linear equations with 3 variables that represent the number of methylations, phosphorylations and acetylations. The solution is a set of values that is stored in an array. Each column of the array is a possible solution of the equations and it always results to the mass of the modified sequence given by the user. Consequently, each mathematical solution, consisting of the 3 values previously calculated, is evaluated for its biological value and if it is deemed viable it is further analyzed to 5 values (tri-, di-, mono- methylations, acetylations, phosphorylations). Finally the number of possible combinations for each 5-value set is calculated. The results are now stored in two arrays, one for the combinations regarding the individual 5-value sets and one for the total combinations for each solution set. For more information on the method employed for the calculation of the possible combinations, refer to the supporting information document (S.I.) Next, in a short case study, the oligopeptide with the AAS “RKST” and a mass of 518.6139 is analyzed as can be verified by the reader by making use of the application: The mass of the unmodified peptide and the proposed numbers and positions of modifications are shown upon pressing the button “Calculate” in the first two frames. Next to these frames the summary of the calculation can be found.
Fig. 3. A view of the POTAMOS web application.
40
A. Vlachopanos et al. / Computers in Biology and Medicine 55 (2014) 36–41
Additionally, there is an option available that can be used to move each resulting sequence to the Protease Cleaver Unit. Moreover, the ability to export all the information displayed in the results page to a csv file is presented (see also Fig. 4S). Finally the combinations sub-application is available. For more information on how the combinations are produced refer to Section 3 in the S.I. document. The masses have been calculated using the respective masses listed in ExPASy [28]. 2.4. Histone browser unit Mass spectrometry (MS) is employed to study histone variants and PTMs to identify novel PTMs It can also be used as a valuable analytic method for the quantitative spectra analysis of histone variants and PTMs in the same samples [29]. MS instrumentation and techniques are developing rapidly so as to become accessible to a broad scientific community although not all of its members are MS experts. By employing mass spectrometry techniques the combinations of PTMs can be identified in a high-throughput treatment. Thus, MS-based methods are considered to be stronger approaches than immunoassays [30]. To this end POTAMOS software tool includes a unit that focuses on PTMs of histones and its variants. The histone browser (HB) Unit gives the user the ability to modify an AAS that belongs to a histone variant from one of the eight most frequently studied organisms by experiment. The user can calculate the exact mass of the modified histonic peptide employing this part of POTAMOS. Upon selection the HB unit queries the database and retrieves the names of all organisms available in it (see Fig. 2S throughout the section). The application responds by displaying a form with the names of the organisms and the five families of the available histone variants. The set of the eight available organisms can be found on the first page of the application. The user can select one of the organisms in the list: Arabidopsis thaliana, Caenorhabditis elegans, Danio rerio, Drosophila melanogaster, Homo sapiens, Mus musculus, Rattus norvegicus and Xenopus laevis. In the next two steps the user selects the organism and the family of histone variants. The application creates a variable for the name of each organism. Using the new variable and the family of the variants the application queries the database and selects all variants that belong to the selected organism and the family of variants. Subsequently the HB Unit displays a form with a list of the selected variants and the previous selection path of the user. The user can now select one of the variants displayed. Then the application checks if a selection has been made. If so, the application creates two new variables utilizing the selected organism name. Employing the three variables, the application queries once again the database, retrieves the AAS of the variant and displays it. A form, next to the frame of the AAS, allows the user to select a specific fragment of the whole sequence. In the next conditional state the HB unit queries the database and either selects the whole AAS, if no fragment is specified, or cuts away the defined fragment from the whole sequence. The user defines the fragment by entering the sequence number for the first and the last amino acid of the fragment. In the case of the fragment, the application creates a string variable to serve as title for the next page using the variant's name and the numbers given by the user to define the fragment. In the case where the whole variant is selected the application creates a similar string but now the title of the next page is identical to name of the variant. Next, the application displays the title created in the previous step and a table that presents the sequence of amino acids and the mass of each amino acid as well as the total mass of the whole oligopeptide. The table embodies three forms: the first one is used to modify each amino acid using the predefined PTMs while
the rest of the forms are used to transfer the sequence to the other units of the application. The user can now select one or multiple amino acids and modify them based on a drop down list available. Upon submission, the table is updated with the modified sequence and the respective masses. The user can also transfer the result to the Protease Cleaver Unit or the Calc Unit. The types of modifications available are: phosphorylation for serine and threonine, mono-, di- and trimethylation or acetylation for lysine, and methylation or dimethylation (symmetric or asymmetric) for arginine. Any combination of the above modifications is possible. A case study is available below: Human histone H1, in particular the H1.0 variant, was selected. The fragment under study is comprised of the residues 15–30. The PTM pattern selected was phosphorylation of S19, monomethylation of R15 and K21 plus acetylation of K27. The values of the mass and the charge are calculated to be 1819.0074 and 3, respectively for the unmodified fragment, and 1969.0784 and 0, respectively, for the modified one. 2.5. Protease cleaver unit Mass spectrometry analytical protocols, for the characterization of histone modifications often include the digestion process with proteases that cleave various residues. Subsequently, the generated peptides can be analyzed by mass spectrometry methods to identify the modification site [31]. The Protease Cleaver (PC) Unit, the third independent application (see also Fig. 3S), enables the user to perform in silico proteolysis on a given AAS. The most commonly used proteases in proteomics experiments are implemented in this application: chymotrypsin, trypsin, Lys-C, Asp-N, Glu-C and Arg-C [32]. The above task is achieved by entering an AAS either by typing it or by uploading the respective FASTA or ASCII file following the format described in the Calc Unit. The user can also transfer an AAS previously entered in the context of the Calc or HB Unit. The facility to communicate and interchange data between the applications is enabled by respective forms, as discussed previously. The application creates a variable that is used to select the source of the input that may be the HB Unit, the Calc Unit or an uploaded file. Following input of the AAS and retrieval of all protease names available, the selected proteolytic enzyme is entered. Upon submission of the AAS sequence and the protease, an algorithm is applied that employs a systematic search for the properties of the selected protease and determines if the selected protease can be applied to the sequence inputted. The application, based on the protease input, scans the sequence, locates the amino acid occurrences related to the protease and stores the number of occurrences in a variable. The application splits the initial sequence into fragments and each fragment into single amino acids. Then it calculates the mass of each amino acid and stores the results in newly defined arrays. Two arrays are created which contain the fragmented sequences and the mass of the fragmented sequences respectively (Fig. 3S). The application can also calculate masses of fragments that are post-translationally modified provided that the sequence transferred from Unit Calc or Unit HB either carries modified amino acids or the modifications are inputted manually at this step. The application has the ability to export the results to a csv file or move the newly created fragments to the Calc Unit. Below, a case study that can be followed by the reader on the web page of the application is presented: The result of the modified oligopeptide (H1.0 variant/human analyzed in the session describing the use of Unit HB) is transferred to Unit PC. If the protease selected is Lys-C, the use of the “Cut” button yields five fragments displayed in tables that include the new masses of the respective modified AAS.
A. Vlachopanos et al. / Computers in Biology and Medicine 55 (2014) 36–41
3. Conclusion A new software tool, named POTAMOS, has been developed on the open source web application framework Ruby on Rails aiming at being an e-assistant for the experimentalist who demands a simple and quick way to analyze mass spectrometry-derived data on proteins. This is a user-friendly software tool that can handle any mass-spectrometry data independently of the specific instrumentation used to obtain these data, which makes it an ideal tool for the non-expert and is also specifically oriented to serve as an identification tool of post-translational modifications in histone tails. The modifications supported in its present form are limited to phosphorylation of serines and threonines, acetylation of lysines, methylation of arginines and lysines. Future development will include more modifications, high throughput processing and distributed computing solutions. Summary POTAMOS mass spectrometry calculator, an easy to use, free proteomics web tool is developed in the open source application framework Ruby on Rails. It is designed to provide calculated mass spectrometry data and aid to the experimental chemist who works on the field of post-translational modifications of proteins while it focuses especially on histone proteins. The main calculation facilities provided to the experimental chemist by POTAMOS mass spectrometry calculator are: 1. Calculation of the masses of either a given unmodified AAS or that of an AAS that can potentially carry methylations of arginines and lysines, acetylations of lysines or phosphorylations of serines and threonines. 2. Calculation of the masses and charges of a fragmented histone variant, which carries one, or more than one, predefined modifications of the types described above. 3. Calculation the masses of peptide fragments produced through the action of a protease on them. The application is available at: http://potamos.seas.harvard.edu. Author contributions A. Vlachopanos developed the code, analyzed results, and wrote the paper. K. Soupsana analyzed results and wrote the paper. A. Politou conceived the original idea, designed work, analyzed results and wrote the paper. G. Papamokos conceived the original idea, designed the work, analyzed results and wrote the paper. All authors have read and approved the final manuscript. Conflict of interest statement None declared. Acknowledgments We wish to thank Prof. Efthimios Kaxiras, for providing computational resources and for the fruitful discussions about the functionality of the software; Eleni Aggellaki Kaxiras for her constructive suggestions on improving the webpages of the application; and
41
Nikos E. Pappas for providing alternative solutions regarding the code of the sub application.
Appendix A. Supporting information Supplementary data associated with this article can be found in the online version at http://dx.doi.org/10.1016/j.compbiomed.2014.10.002. References [1] N.L. Anderson, N.G. Anderson, Proteome and proteomics: new technologies, new concepts, and new words, Electrophoresis 19 (11) (1998) 1853–1861. [2] M.R. Wilkins, et al., From proteins to proteomes: Large scale protein identification by two-dimensional electrophoresis and amino acid analysis, Biotechnology 14 (1) (1996) 61–65. [3] A.R. Farley, A.J. Link, Identification and quantification of protein posttranslational modifications, Guide to Protein Purification 463 (2009) 725–763 (second ed.). [4] G. Walsh, R. Jefferis, Post-translational modifications in the context of therapeutic proteins, Nat. Biotechnol. 24 (10) (2006) 1241–1252. [5] K. Luger, et al., Crystal structure of the nucleosome core particle at 2.8 angstrom resolution, Nature 389 (6648) (1997) 251–260. [6] T. Kouzarides, Chromatin modifications and their function, Cell 128 (4) (2007) 693–705. [7] S.I. Grewal, D. Moazed, Heterochromatin and epigenetic control of gene expression, Science 301 (5634) (2003) 798–802. [8] K. Ratnakumar, A. Kapoor, E. Bernstein, Regulation of chromatin structure and transcription via histone modifications, in: C.J. Vidal (Ed.), Post-Translational Modifications in Health and Disease, Springer Science þ Business Media, New York, NY, USA., 2011, pp. 387–409. [9] G.V. Papamokos, et al., Structural role of RKS motifs in chromatin interactions: a molecular dynamics study of HP1 bound to a variably modified histone tail, Biophys. J. 102 (8) (2012) 1926–1933. [10] D.A. Potoyan, G.A. Papoian, Regulation of the H4 tail binding and folding landscapes via Lys-16 acetylation, Proc. Natl. Acad. Sci. USA 109 (44) (2012) 17857–17862. [11] D.N. Perkins, et al., Probability-based protein identification by searching sequence databases using mass spectrometry data, Electrophoresis 20 (18) (1999) 3551–3567. [12] R. Craig, R.C. Beavis, TANDEM: matching proteins with tandem mass spectra, Bioinformatics 20 (9) (2004) 1466–1467. [13] C. Xu, B. Ma, Software for computational peptide identification from MS-MS data, Drug Discov. Today 11 (13–14) (2006) 595–600. [14] X. Han, et al., PeaksPTM: mass spectrometry-based identification of peptides with unspecified modifications, J. Proteome Res. 10 (7) (2011) 2930–2936. [15] I.V. Shilov, et al., The paragon algorithm, a next generation search engine that uses sequence temperature values and feature probabilities to identify peptides from tandem mass spectra, Mol. Cell. Proteomics 6 (9) (2007) 1638–1655. [16] S. Kim, et al., MODi: a powerful and convenient web server for identifying multiple post-translational peptide modifications from tandem mass spectra, Nucl. Acids Res. 34 (2006) W258–W263. [17] D.M. Creasy, J.S. Cottrell, Error tolerant searching of uninterpreted tandem mass spectrometry data, Proteomics 2 (10) (2002) 1426–1434. [18] M. Bachle, P. Kirchberg, Ruby on rails, IEEE Softw. 24 (6) (2007) 105–108. [19] M. Swaine, Ruby on rails, Dr Dobbs J. 31 (6) (2006) (20–23þ 28). [20] 〈http://rubyonrails.org〉. [21] Y. Matsumoto, Ruby in a Nutshell, O'Reilly & Associates Inc., United States of America, 2002. [22] R.T. Fielding, R.N. Taylor, Principled design of the modern Web architecture, in: Proceedings of the 22nd International Conference on Software Engineering, ICSE'00, ACM, New York, NY, USA, 2000, pp. 407–416. [23] M. zur Muehlen, J.V. Nickerson, K.D. Swenson, Developing web services choreography standards – the case of REST vs. SOAP, Decis. Support Syst. 40 (1) (2005) 9–29. [24] E. Pjanic, A. Hasanovic, A. JRuby, Infrastructure for converged web and SIP applications, Digit. Inf. Process. Commun. 188 (2011) 72–84. [25] 〈http://www.sqlite.org〉. [26] M. Owens, Query anything with SQLite, Dr Dobbs J. 32 (12) (2007) 24–28. [27] K.R. Clauser, et al., Role of accurate mass measurement ( 7 10 ppm) in protein identification strategies employing MS or MS/MS and database searching, Anal. Chem. 71 (14) (1999) 2871–2882. [28] Available from: 〈http://web.expasy.org/findmod/findmod_masses.html〉. [29] S. Lin, B.A. Garcia, Examining histone posttranslational modification patterns by high-resolution mass spectrometry, Methods Enzymol. 512 (2012) 3–28. [30] L.M. Britton, et al., Breaking the histone code with quantitative mass spectrometry, Expert Rev. Proteomics 8 (5) (2001) 631–643. [31] B.A. Garcia, et al., Chemical derivatization of histones for facilitated analysis by mass spectrometry, Nat. Protoc. 2 (4) (2007) 933–938. [32] Y. Zhang, et al., Protein analysis by shotgun/bottom-up proteomics, Chem. Rev. 113 (4) (2013) 2343–2394.