// --------------------------------------------------------------------------
//                   OpenMS -- Open-Source Mass Spectrometry
// --------------------------------------------------------------------------
// Copyright The OpenMS Team -- Eberhard Karls University Tuebingen,
// ETH Zurich, and Freie Universitaet Berlin 2002-2018.
//
// 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 %OpenMS/bin folder.

  The UTILS tools are divided into several subgroups:

  <b>Maintenance</b>
  - @subpage UTILS_INIUpdater - Update INI and TOPPAS files from previous versions of %OpenMS as parameters and storage method might have change
  
  <b>Signal Processing and Preprocessing</b>
  - @subpage UTILS_RNPxlXICFilter - Remove MS2 spectra from treatment based on the fold change between control and treatment for RNP cross linking experiments.

  <b>File Handling</b>
  - @subpage UTILS_CVInspector - A tool for visualization and validation of PSI mapping and CV files.
  - @subpage UTILS_TargetedFileConverter - Converts targeted files (such as tsv or TraML 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_OpenSwathMzMLFileCacher - Caching of large mzML files
  - @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 TPs (true positives), TNs, FPs, and FNs 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_DecoyDatabase - Create 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_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_RNPxl - Tool for RNP cross linking experiment analysis.
  - @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_PSMFeatureExtractor - Creates search engine specific features for PercolatorAdapter input.
  - @subpage TOPP_MSFraggerAdapter - Peptide Identification with MSFragger.
  - @subpage UTILS_NovorAdapter - De novo sequencing from tandem mass spectrometry data.

  <b>Cross-linking</b>
  - @subpage UTILS_OpenPepXL - Search for peptide pairs linked with a labeled cross-linker.
  - @subpage UTILS_OpenPepXLLF - Search for cross-linked peptide pairs in tandem MS spectra.
  - @subpage UTILS_XFDR - Calculates false discovery rate estimates on crosslink identifications.

  <b>Quantitation</b>
  - @subpage UTILS_ERPairFinder - Evaluate pair ratios on enhanced resolution (zoom) scans.
  - @subpage UTILS_FeatureFinderSuperHirn - Find Features using the SuperHirn Algorithm (it can handle centroided or profile data, see .ini file).
  - @subpage UTILS_MetaboliteAdductDecharger - Decharges and merges different feature charge variants of the same small molecule.  
  - @subpage UTILS_MRMPairFinder - Evaluate labeled pair ratios on MRM features.
  - @subpage UTILS_OpenSwathWorkflow - Complete workflow to run OpenSWATH.

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

  <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 - This application is used to embed tables or plots generated externally as attachments to existing quality parameters in qcML files.
  - @subpage UTILS_QCExporter - Will extract several quality parameter from several run/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 - Will import several quality parameter from a tabular (text) format into a qcML file - counterpart to QCExporter.
  - @subpage UTILS_QCMerger - Merges two qcML files together.
  - @subpage UTILS_QCShrinker - This application is used to remove extra verbose table attachments from a qcML file that are not needed anymore, e.g. for a final report.

  <b>Misc</b>
  - @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_MSSimulator - A highly configurable simulator for mass spectrometry experiments.
  - @subpage UTILS_MassCalculator - Calculates masses and mass-to-charge ratios of peptide sequences.
  - @subpage UTILS_OpenSwathDIAPreScoring - SWATH (data-independent acquisition) pre-scoring.
  - @subpage UTILS_OpenSwathRewriteToFeatureXML - Rewrites results from mProphet back into featureXML.
  - @subpage UTILS_OpenSwathFileSplitter - A tool for splitting a single SWATH / DIA file into a set of files, each containing one SWATH window.
  - @subpage UTILS_SvmTheoreticalSpectrumGeneratorTrainer - A trainer for SVM models as input for SvmTheoreticalSpectrumGenerator.
  - @subpage UTILS_PeakPickerIterative A tool for peak detection in profile data.
  - @subpage UTILS_DatabaseFilter - Filters a protein database in FASTA format according to one or multiple filtering criteria.
  - @subpage UTILS_TICCalculator - Calculates the TIC of a raw mass spectrometric file. 
  - @subpage UTILS_MultiplexResolver - Resolves conflicts between identifications and quantifications in multiplex data.
  - @subpage UTILS_LowMemPeakPickerHiRes - A tool for peak detection on streamed profile data 
  - @subpage UTILS_LowMemPeakPickerHiResRandomAccess - A tool for peak detection on streamed profile data 
  - @subpage UTILS_MRMTransitionGroupPicker - Picks peaks in MRM chromatograms.
  - @subpage TOPP_ClusterMassTraces - Cluster mass traces occurring in the same map together.
  - @subpage TOPP_CorrelateMassTraces - Identifies precursor mass traces and tries to correlate them with fragment ion mass traces in SWATH maps.
  - @subpage UTILS_IDDecoyProbability - Estimate probability of peptide hits.
  - @subpage UTILS_RNADigestor - Digests an RNA sequence database in-silico.

<!--
  - TODO we need descriptions for all of these
  - @subpage UTILS_OpenMSInfo - Print build system information.
  - @subpage UTILS_RNPxlSearch - Annotate RNA to peptide cross-links in MS/MS spectra.
  - @subpage UTILS_MetaProSIP - Performs proteinSIP on peptide features for elemental flux analysis.
  - @subpage UTILS_SimpleSearchEngine - Annotates MS/MS spectra using SimpleSearchEngine.
-->

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

*/
