The Crux mass spectrometry analysis toolkit is an open source project that aims to provide users with a cross-platform suite of analysis tools for interpreting protein mass spectrometry data. The toolkit includes several search engines for both standard and cross-linked database search, as well as a variety of pre- and post-processing engines for assigning high-resolution precursor masses to spectra, assigning statistical confidence estimates to spectra, peptides and proteins, and performing label free quantification. Crux comes pre-complied for the Linux, Windows and MacOS operating systems. It is implemented as a single program that offers a wide variety of commands. If you use Crux in your research, please cite:
Christopher Y. Park, Aaron A. Klammer, Lukas Käll, Michael J. MacCoss and William Stafford Noble. "Rapid and accurate peptide identification from tandem mass spectra." Journal of Proteome Research. 7(7):3022-3027, 2008.

For a more up-to-date description of Crux, please read:
Sean McIlwain, Kaipo Tamura, Attila Kertesz-Farkas, Charles E. Grant, Benjamin Diament, Barbara Frewen, J. Jeffry Howbert, Michael R. Hoopmann, Lukas Käll, Jimmy K. Eng, Michael J. MacCoss and William Stafford Noble. "Crux: rapid open source protein tandem mass spectrometry analysis." Journal of Proteome Research. 13(10):4488-4491, 2014.


Crux is provided as a single executable that supports the following commands:

Primary commands
bullseye Assign high resolution precursor m/z values to MS/MS data using the Hardklör algorithm.
tide-index Create an index of all peptides in a fasta file, for use in subsequent calls to tide-search.
tide-search Search a collection of spectra against a sequence database, provided either as a FASTA file or an index, returning a collection of peptide-spectrum matches (PSMs). This is a fast search engine, but it runs most quickly if provided with a peptide index built with tide-index.
cascade-search An iterative procedure for incorporating information about peptide groups into the database search and confidence estimation procedure.
comet Search a collection of spectra against a sequence database, returning a collection of PSMs. This search engine runs directly on a protein database in FASTA format.
percolator Re-rank and assign confidence estimates to a collection of PSMs using the Percolator algorithm. Optionally, also produce protein rankings using the Fido algorithm.
kojak Search a collection of spectra against a sequence database, finding cross-linked peptide matches.
diameter Identify peptide sequences fromm data-independent acquisition mass spectrometry data without requiring a spectral library
spectral-counts Quantify peptides or proteins using one of three spectral counting methods.
pipeline Given one or more sets of tandem mass spectra as well as a protein database, this command runs a series of Crux tools and reports all of the results in a single output directory.
Utilities
assign-confidence Assign statistical confidence measures to each PSM in a given set.
generate-peptides Extract from a given set of protein sequences a list of target and decoy peptides fitting the specified criteria.
get-ms2-spectrum Extract one or more fragmentation spectra, specified by scan number, from an MS2 file.
hardklör Identify isotopic distributions from high-resolution mass spectra.
make-pin Given a set of search results files, generate a pin file for input to crux percolator
param-medic Examine the spectra in a file to estimate the best precursor and fragment error tolerances for database search.
predict-peptide-ions Given a peptide and a charge state, predict the m/z values of the resulting fragment ions.
print-processed-spectra Process spectra as for scoring xcorr and print the results to a file.
psm-convert Convert a file containing peptide-spectrum matches (PSMs) from one format to another.
subtract-index Subtract one index file from another, assuming both were generated by tide-index.
localize-modification Finds, for each peptide-spectrum match (PSM) in a given set, the most most likely location along the peptide for a post-translational modification (PTM). The mass of the PTM is inferred from the difference between the spectrum neutral mass and the peptide mass.
version Print the Crux version number to standard output, then exit.