synapter is free and open-source software. If you use it, please support the project by citing it in publications:
Nicholas James Bond, Pavel Vyacheslavovich Shliaha, Kathryn S. Lilley, and Laurent Gatto. Improving qualitative and quantitative performance for MS\(^E\)-based label free proteomics. J. Proteome Res., 2013, 12 (6), pp 2340–2353
For bugs, typos, suggestions or other questions, please file an issue
in our tracking system (https://github.com/lgatto/synapter/issues)
providing as much information as possible, a reproducible example and
the output of
If you don’t have a GitHub account or wish to reach a broader audience for general questions about proteomics analysis using R, you may want to use the Bioconductor support site: https://support.bioconductor.org/.
This document assumes familiarity with standard synapter
pipeline described in (Bond et al. 2013) and in the package
synapter vignette, available
vignette("synapter", package = "synapter").
In this vignette we introduce a new fragment matching feature (see figures
2, 3 and 4) which
improves the matching of identification and the quantitation features. After
applying the usual
synergise1 workflow (see
for details) a number of multiple matches and possible false unique matches
remain that can be deconvoluted by comparing common peaks in the identification
fragment peaks and the quantitation spectra.
The example data
synobj2 used throughout this document is available in the
synapterdata package and can be directly load as follows:
In the [next section](:synergise] we describe how
synobj2 was generated.
The test files used in this vignette can be downloaded from
The following sections then describe the new fragment matching functionality.
One has to run the
synergise1 workflow before fragment
matching can be applied. Please read the general synapter
for the general use of
The additional data needed for the fragment matching procedure are a
final_fragment.csv file for the identification run and a
for the quantitation run.
## Please find the raw data at: ## http://proteome.sysbiol.cam.ac.uk/lgatto/synapter/data/ library("synapter") inlist <- list( identpeptide = "fermentor_03_sample_01_HDMSE_01_IA_final_peptide.csv.gz", identfragments = "fermentor_03_sample_01_HDMSE_01_IA_final_fragment.csv.gz", quantpeptide = "fermentor_02_sample_01_HDMSE_01_IA_final_peptide.csv.gz", quantpep3d = "fermentor_02_sample_01_HDMSE_01_Pep3DAMRT.csv.gz", quantspectra = "fermentor_02_sample_01_HDMSE_01_Pep3D_Spectrum.xml.gz", fasta = "S.cerevisiae_Uniprot_reference_canonical_18_03_14.fasta") synobj2 <- Synapter(inlist, master=FALSE)
synobj2 <- synergise1(object=synobj2, outputdir=tempdir())
## Warning: ImageMagick was built without librsvg which causes poor qualty of SVG rendering. ## For better results use image_read_svg() which uses the rsvg package.
This step is optional and allows one to remove low abundance fragments
in the spectra using
filterFragments. Filtering fragments can remove noise
in the spectra and reduce undesired fragment matches. Prior to filtering, the
plotCumulativeNumberOfFragments function can be use to visualise the
intensity of all fragments. Both functions have an argument
what to decide
what spectra/fragments to filter/plot. Choose
fragments.ident for the
identification fragments and
spectra.quant for the quantitation fragments.
plotCumulativeNumberOfFragments(synobj2, what = "fragments.ident")
plotCumulativeNumberOfFragments(synobj2, what = "spectra.quant")
filterFragments(synobj2, what = "fragments.ident", minIntensity = 70) filterFragments(synobj2, what = "spectra.quant", minIntensity = 70)
This method, named
fragmentMatching, performs the matching of the
identification fragments vs the quantitation spectra and counts the number
of identical peaks for each combination.
Because the peaks/fragments in the spectra of one run will never be
numerically identical to these in another, a tolerance parameter has
to be set using the
Peaks/Fragments within this tolerance are treated as identical.
setFragmentMatchingPpmTolerance(synobj2, 25) fragmentMatching(synobj2)
plotFragmentMatching function illustrates the details of this fragment
matching procedure. If it is called without any additional argument every
matched pair (fragment vs spectrum) is plotted.
One can use the
key argument to select a special value in a column
(defined by the
column argument) of the
E.g. if one wants to select the fragment matching results with a high number
of common peaks, e.g. 28 common peaks:
plotFragmentMatching(synobj2, key = 28, column = "FragmentMatching")