// --------------------------------------------------------------------------
//                   OpenMS -- Open-Source Mass Spectrometry
// --------------------------------------------------------------------------
// Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
// ETH Zurich, and Freie Universitaet Berlin 2002-2020.
//
// This software is released under a three-clause BSD license:
//  * Redistributions of source code must retain the above copyright
//    notice, this list of conditions and the following disclaimer.
//  * Redistributions in binary form must reproduce the above copyright
//    notice, this list of conditions and the following disclaimer in the
//    documentation and/or other materials provided with the distribution.
//  * Neither the name of any author or any participating institution
//    may be used to endorse or promote products derived from this software
//    without specific prior written permission.
// For a full list of authors, refer to the file AUTHORS.
// --------------------------------------------------------------------------
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL ANY OF THE AUTHORS OR THE CONTRIBUTING
// INSTITUTIONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// --------------------------------------------------------------------------
// $Maintainer:  $
// $Authors: Marc Sturm, Chris Bielow $
// --------------------------------------------------------------------------

/**
  @page UTILS_documentation UTILS documentation

  Besides TOPP, %OpenMS offers a range of other tools.
  They are not included in TOPP as they are not part of typical analysis pipelines,
  but they still might be very helpful to you.

  Just as the TOPP tools, they can be found in the <tt>%OpenMS/bin</tt> folder.

  The UTILS tools are divided into several subgroups:

  <b>Maintenance</b>
  - @subpage UTILS_INIUpdater - Updates INI and TOPPAS files from previous versions of %OpenMS as parameters and storage method might have change
<!-- Documentation missing:
  - @subpage UTILS_OpenMSInfo - Print build system information.
-->

  <b>Signal Processing and Preprocessing</b>
  - @subpage UTILS_PeakPickerIterative - A tool for peak detection in profile data.

  <b>File Handling</b>
  - @subpage UTILS_CVInspector - A tool for visualization and validation of PSI mapping and CV files.
  - @subpage UTILS_FuzzyDiff - Compares two files, tolerating numeric differences.
  - @subpage UTILS_IDSplitter - Splits protein/peptide identifications off of annotated data files.
  - @subpage UTILS_MzMLSplitter - Splits an mzML file into multiple parts.
  - @subpage UTILS_SemanticValidator - SemanticValidator for analysisXML and mzML files.
  - @subpage UTILS_XMLValidator - Validates XML files against an XSD schema.

  <b>Algorithm Evaluation</b>
  - @subpage UTILS_FFEval - Evaluation tool for feature detection algorithms.
  - @subpage UTILS_LabeledEval - Evaluation tool for isotope-labeled quantitation experiments.
  - @subpage UTILS_RTEvaluation - Application that evaluates true positives (TP), true negatives (TN), false positives (FP), and false negatives (FN) for an idXML file with predicted RTs.
  - @subpage UTILS_TransformationEvaluation - Simple evaluation of transformations (e.g. RT transformations produced by a MapAligner tool).

  <b>Protein/Peptide Identification</b>
  - @subpage UTILS_DatabaseFilter - Filters a protein database in FASTA format according to one or multiple filtering criteria.
  - @subpage UTILS_DecoyDatabase - Creates decoy peptide databases from normal ones.
  - @subpage UTILS_Digestor - Digests a protein database in-silico.
  - @subpage UTILS_DigestorMotif - Digests a protein database in-silico (optionally allowing only peptides with a specific motif) and produces statistical data for all peptides.
  - @subpage UTILS_Epifany - Bayesian protein inference based on PSM probabilities.
  - @subpage UTILS_IDExtractor - Extracts n peptides randomly or best n from idXML files.
  - @subpage UTILS_IDMassAccuracy - Calculates a distribution of the mass error from given mass spectra and IDs.
  - @subpage UTILS_IDScoreSwitcher - Switches between different scores of peptide or protein hits in identification data.
  - @subpage UTILS_MSFraggerAdapter - Peptide Identification with MSFragger.
  - @subpage UTILS_NovorAdapter - De novo sequencing from tandem mass spectrometry data.
  - @subpage UTILS_PSMFeatureExtractor - Creates search engine specific features for PercolatorAdapter input.
  - @subpage UTILS_SequenceCoverageCalculator - Prints information about idXML files.
  - @subpage UTILS_SpecLibCreator - Creates an MSP-formatted spectral library.
  - @subpage UTILS_SpectraSTSearchAdapter - An interface to the 'SEARCH' mode of the SpectraST program (external, beta).
  - @subpage UTILS_StaticModification - Allows to attach a set of fixed modifications to an idXML file (MS/MS search results), e.g. to add 15N (N15) labeling post-hoc.

  <b>Cross-linking</b>
  - @subpage UTILS_RNPxlSearch - Annotates RNA-to-peptide cross-links in MS/MS spectra.
  - @subpage UTILS_RNPxlXICFilter - Removes MS2 spectra from treatment based on the fold change between control and treatment for RNA-to-peptide cross-linking experiments.

  <b>Quantitation</b>
  - @subpage UTILS_ERPairFinder - Evaluates pair ratios on enhanced resolution (zoom) scans.
  - @subpage UTILS_FeatureFinderMetaboIdent - Detects features in MS1 data corresponding to small molecule identifications.
  - @subpage UTILS_FeatureFinderSuperHirn - Finds features using the SuperHirn algorithm (can handle centroided or profile data, see .ini file).
  - @subpage UTILS_ProteomicsLFQ - A standard Proteomics LFQ pipeline.
  - @subpage UTILS_MetaboliteAdductDecharger - Decharges and merges different feature charge variants of the same small molecule.
  - @subpage UTILS_MultiplexResolver - Resolves conflicts between identifications and quantifications in multiplex data.

  <b>Metabolite Identification</b>
  - @subpage UTILS_AccurateMassSearch - Finds potential HMDB IDs within the given mass error window.
  - @subpage UTILS_MetaboliteSpectralMatcher - Identifies small molecules from tandem MS spectra.
  - @subpage UTILS_SiriusAdapter - De novo metabolite identification.

  <b>Targeted Experiments and OpenSWATH</b>
  - @subpage UTILS_ClusterMassTracesByPrecursor - Identifies precursor mass traces and tries to correlate them with fragment ion mass traces in SWATH maps.
  - @subpage UTILS_MRMPairFinder - Evaluates labeled pair ratios on MRM features.
  - @subpage UTILS_OpenSwathDIAPreScoring - SWATH (data-independent acquisition) pre-scoring.
  - @subpage UTILS_OpenSwathFileSplitter - A tool for splitting a single SWATH / DIA file into a set of files, each containing one SWATH window.
  - @subpage UTILS_OpenSwathMzMLFileCacher - Caching of large mzML files.
  - @subpage UTILS_OpenSwathRewriteToFeatureXML - Rewrites results from mProphet back into featureXML.

  <b>RNA</b>
  - @subpage UTILS_NucleicAcidSearchEngine - Search MzML files for oligonucleotides and their modifications.
  - @subpage UTILS_RNADigestor - Digests an RNA sequence database in-silico.
  - @subpage UTILS_RNAMassCalculator - Calculates masses and mass-to-charge ratios of RNA sequences.

  <b>Quality Control</b>
  - @subpage UTILS_QCCalculator - Calculates basic quality parameters from MS experiments and compiles data for subsequent QC into a qcML file.
  - @subpage UTILS_QCEmbedder - Embeds tables or plots generated externally as attachments to existing quality parameters in qcML files.
  - @subpage UTILS_QCExporter - Extracts several quality parameter from several runs/sets from a qcML file into a tabular (text) format - counterpart to QCImporter.
  - @subpage UTILS_QCExtractor - Extracts a table attachment of a given quality parameter from a qcML file as tabular (text) format.
  - @subpage UTILS_QCImporter - Imports several quality parameters from a tabular (text) format into a qcML file - counterpart to QCExporter.
  - @subpage UTILS_QCMerger - Merges two qcML files together.
  - @subpage UTILS_QCShrinker - Removes extra verbose table attachments from a qcML file that are not needed anymore, e.g. for a final report.

  <b>Misc</b>
  - @subpage UTILS_ClusterMassTraces - Cluster mass traces occurring in the same map together.
  - @subpage UTILS_DeMeanderize - Orders the spectra of MALDI spotting plates correctly.
  - @subpage UTILS_ImageCreator - Creates images from MS1 data (with MS2 data points indicated as dots).
  - @subpage UTILS_MassCalculator - Calculates masses and mass-to-charge ratios of peptide sequences.
  - @subpage UTILS_MetaProSIP - Performs proteinSIP on peptide features for elemental flux analysis.
  - @subpage UTILS_MSSimulator - A highly configurable simulator for mass spectrometry experiments.
  - @subpage UTILS_SvmTheoreticalSpectrumGeneratorTrainer - A trainer for SVM models as input for SvmTheoreticalSpectrumGenerator.
  - @subpage UTILS_TICCalculator - Calculates the TIC of a raw mass spectrometric file.
  - @subpage UTILS_MSstatsConverter - Converter to input for MSstats.

  <b>Deprecated</b>
  - @subpage UTILS_IDDecoyProbability - Estimates peptide probabilities using a decoy search strategy. WARNING: This utility is deprecated.

*/
