Skip to the content.

MetaMorpheus: Free, Open-Source PTM Discovery

Release Build status Tests codecov Github All Releases Github All Releases

Anaconda-Server Badge Anaconda-Server Badge Anaconda-Server Badge

Download the current version here. For first-time Windows users, choose “MetaMorpheusInstaller.msi” and install MetaMorpheus. Check out our getting started playlist on YouTube

MetaMorpheus is a bottom-up proteomics database search software with integrated post-translational modification (PTM) discovery capability. This program combines features of Morpheus and G-PTM-D in a single tool.

Check out the wiki page for software details!

Major Features

System Requirements

Spectra Requirements

Agreeing to the Thermo licence

Reading Thermo .raw files requires agreeing to Thermo’s RawFileReader licence. The GUI asks the first time a .raw file is added; the command line asks the first time a run includes one.

Where there is no console to answer that prompt — a container, a scheduled cluster job, a CI runner, anything with stdin redirected or closed — pass --acceptThermoLicence. It prints the licence, records the agreement, and does not prompt:

dotnet CMD.dll --acceptThermoLicence

It may also be given alongside a run, which then proceeds without prompting:

dotnet CMD.dll --acceptThermoLicence -t SearchTask.toml -d database.fasta -s spectra.raw -o output

The agreement is stored as UserHasAgreedToThermoRawFileReaderLicence in settings.toml in the MetaMorpheus data directory. For a Windows installation that is %LOCALAPPDATA%\MetaMorpheus, so it is recorded once per user and survives upgrades. Otherwise it is the folder MetaMorpheus was extracted into, so a new download, conda environment or container layer will need the agreement again.

Database Requirements

UniProt .XML or .fasta format; may be used in compressed (.gz) format. If you would like to know how to obtain a UniProt .XML databases, please watch our Protein Databases Video on YouTube.

Getting Started

Please check out our wiki for useful information and guides.

Installation and typical usage is described for the on the Getting Started page:

Auditing an SDRF file

An SDRF file describes the samples an experiment was built from, and what it says about labelling decides how many samples a quantitative search can see. That is easy to get wrong invisibly: a file whose comment[label] names the reagent kit — TMT10plex on every row — rather than the channel parses cleanly and validates cleanly, and then yields one channel for a ten-channel experiment. So does a file with two rows per (data file, channel), or one that declares no isobaric modification at all. None of that is a structural defect, so the SDRF validator is right not to report it, and the usual way a user finds out is a wrong number downstream.

--auditSdrf prints what one SDRF says about quantification and runs nothing else:

dotnet CMD.dll --auditSdrf experiment.sdrf.tsv
SDRF quantification audit: experiment.sdrf.tsv
  design            : ChannelLevel
  channels          : 4 (TMT126, TMT127N, TMT127C, TMT128N)
  plex              : Column -- characteristics[biological replicate batch] -> 1
  isobaric mod      : NOT DECLARED
  label form        : 4 bare, 0 accessioned
  facts:
     1. data file               ok
     2. channel                 ok
     3. reporter m/z           ABSENT  SDRF has no column for it; it is derived from the channel
     ...

and the case it exists for:

  design            : KitOnly
  kit               : TMT6PLEX -- channels are never enumerated

Add --auditData to check the file’s comment[data file] entries against a folder of downloaded files, which are then reported as found or missing:

dotnet CMD.dll --auditSdrf experiment.sdrf.tsv --auditData ./downloaded

which adds a line to the report:

  data files        : 3 found, 1 missing

The audit is read-only and runs on its own, so it is refused alongside anything that asks for work — -t/-d/-s, -g, --test or --acceptThermoLicence — rather than honouring one of the two silently. It exits 0 with a report, 2 for a settings error, and 4 for a document it could not read.

References & Citation Guide for MetaMorpheus

MetaMorpheus:

GPTMD searches:

Quantification:

Crosslinking MS (XL-MS) search: Identification of MS-Cleavable and Noncleavable Chemically Cross-Linked Peptides with MetaMorpheus , J. Proteome Res. 2018, 17, 7, 2370–2376.

Multiple protease parsimony: Improved Protein Inference from Multiple Protease Bottom-Up Mass Spectrometry Data, J Proteome Res 2019, 18, 9, 3429–3438.

Glycoproteomic searches: O-Pair Search with MetaMorpheus for O-glycopeptide characterization, Nat Methods 2020, 17, 1133–1138.

Proteogenomic database searches with Spritz: Spritz: A Proteogenomic Database Engine, J Proteome Res 2021, 20, 1826–1834.

Long-read proteogenomic characterization: Enhanced protein isoform characterization through long-read proteogenomics, Genome Biology 2022, 23, 69.

Spectral library GPTMD search: A Hybrid Spectral Library and Protein Sequence Database Search Strategy for Bottom-Up and Top-Down Proteomic Data Analysis, J of Proteome Res 2022, 21, 2609-2618

Spectral Averaging: Spectral averaging with outlier rejection algorithms to increase identifications in top-down proteomics

mzLib, an all-purpose mass spectrometry toolchest implemented by MetaMorpheus

mzLib is a nuget package that we created as an all-purpose toolchest for mass-spec data analysis and many of its functions provide the tools for MetaMorpheus. mzLib is freely available for use in mass-spec applications. You do not need to download mzLib separately to run MetaMorpheus; it is already included.