// --------------------------------------------------------------------------
//                   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 $
// --------------------------------------------------------------------------


//##############################################################################

/**
	@page TOPPView_baseline_reduction Subtracting a baseline from a spectrum
	
	First we load the spectrum to be analyzed in TOPPView. If you want to
	test the described tools, you can open the tutorial data via the File-menu
	(@a File > @a Open @a example @a file, then select @a peakpicker_tutorial_1.mzML).
	The BaselineFilter can be called via the Tools-menu
	(@a Tools > @a Apply @a TOPP @a tool), then select BaselineFilter as TOPPtool (red rectangle).
	One can choose between different types of filters (green rectangle),
	the one mainly used is TopHat. The other important parameter is the
	length of the structuring element (blue rectangle). The default value is 3 Thomson.
	Press OK to start the baseline subtraction.

	@image html TOPPView_tools_baseline.png 
	@image latex TOPPView_tools_baseline.png "" width=14cm

	The following image shows a part of the spectrum after baseline filtering as green line,
	the original raw data is shown by the blue line.
	
	@image html TOPPView_tools_baseline_filtered.png
	@image latex TOPPView_tools_baseline_filtered.png "" width=14cm
	
*/

//##############################################################################

/**	
	@page TOPPView_smoothing Smoothing raw data	
	
	To smooth your raw data call one of the available NoiseFilters via the Tools-menu,
	(@a Tools > @a Apply @a TOPP @a tool), then select NoiseFilterSGolay or NoiseFilterGaussian as TOPPtool (green rectangle).
  The parameters for the filter type can be adapted (blue rectangle).
	For the Savitzky-Golay filter you can set the frame length and the order of the polynomial that is fitted.
	For the Gaussian filter the gaussian width and the ppm tolerance for a flexible gaussian width
	depending on the m/z value can be adapted. Press Ok to run the selected NoiseFilter.
	
	@image html TOPPView_tools_noisefilter.png 
	@image latex TOPPView_tools_noisefilter.png "" width=14cm

	The following image shows a part of the spectrum after smoothing as red line with the un-smoothed
	data in green.
		
	@image html TOPPView_tools_noisefilter_filtered.png
	@image latex TOPPView_tools_noisefilter_filtered.png "" width=14cm
	
*/

//##############################################################################

/**	
	@page TOPPView_peakpicking Picking peaks 

	If you have low resolution data you may consider to smooth your data first 
	(@ref TOPPView_smoothing) and subtract the baseline (@ref TOPPView_baseline_reduction) before
	peak picking.

	We have two types of PeakPickers, the PeakPickerWavelet and one especially suited for
	high resolution data (PeakPickerHiRes). In this tutorial we consider the PeakPickerWavelet.
	We use the file @a peakpicker_tutorial_2.mzML from the examples data (@a File > @a Open @a example
	@a data).

	The main parameters are the peak width and the minimal signal to noise ratio for a peak to be
	picked. If you don't know the approximate fwhm of your peaks you can use the estimation included 
	in the PeakPickerWavelet. Here you need to set the flag estimate_peak_width to true.After applying
	the PeakPickerWavelet you can see which peak width was estimated and used for peak picking in the
	log window.

	If you want to estimate the peak width on your own, you may use the measuring tool 
	(@ref TOPPView_views_use) to determine the fwhm of one or several representative peaks.
	
	If the peak picker delivers only a few peaks even though the the peak_with and signal_to_noise 
	parameters are set to good values, you may consider changing the advanced parameter 
	fwhm_lower_bound_factor to a lower value. All peaks with a lower fwhm than 
	fwhm_lower_bound_factor * peak_width are discarded.
	
	The following image shows a part of the spectrum with the picked peaks shown in green,
	the estimated peak width in the log window and the measured peak width.

	@image html TOPPView_tools_pp_picked.png
	@image latex TOPPView_tools_pp_picked.png "" width=14cm

*/

//##############################################################################

/**	
	@page TOPPView_feature_detection_centroided Feature detection on centroided data 

	To quantify peptide features, TOPP offers the @b FeatureFinder tools. In this section the @b FeatureFinderCentroided is
	used, which works on centroided data only. There are other FeatureFinders available that also work on profile data.
	
	For this example the file @a LCMS-centroided.mzML from the examples data is used (@a File > @a Open @a example @a data).
	In order to adapt the algorithm to our data, some parameters have to be set.
	
	@b Intensity
	@n The algorithm estimates the significance of peak intensities in a local environment. Therefore, the HPLC-MS map is
	divided into n times n regions. Set the @a intensity:bins parameter to 10 if you are working on a whole map. If you are 
	working on a small region only, you should set it to 1.
	
	@b Mass @b trace
	@n For the mass traces, you have to define the number of adjacent spectra in which a mass has to occur (@a mass_trace:min_spectra).
	In order to compensate for peak picking errors, missing peaks can be allowed (@a mass_trace:max_missing) and a tolerated mass deviation
	must be set (@a mass_trace:mz_tolerance).
	
	@b Isotope @b pattern
	@n The expected isotopic intensity pattern is estimated from an averagene amino acid composition.
	The algorithm searches all charge states in a defined range (@a isotopic_pattern:change_min to @a isotopic_pattern:change_max).
	Just as for mass traces, a tolerated mass deviation between isotopic peaks has to be set (@a isotopic_pattern:mz_tolerance).
	
	The image shows the centroided peak data and the found peptide features. The used parameters can be found in the TOPP tools dialog.
	
	@image html TOPPView_tools_ff_centroided.png
	@image latex TOPPView_tools_ff_centroided.png "" width=14cm


*/

