yat/normalizer/QuantileNormalizer.h

Code
Comments
Other
Rev Date Author Line
1497 12 Sep 08 peter 1 #ifndef _theplu_yat_normalizer_quantile_normalizer_
1497 12 Sep 08 peter 2 #define _theplu_yat_normalizer_quantile_normalizer_
1432 25 Aug 08 peter 3
1575 14 Oct 08 jari 4 // $Id$
1575 14 Oct 08 jari 5
1432 25 Aug 08 peter 6 /*
2119 12 Dec 09 peter 7   Copyright (C) 2008 Jari Häkkinen, Peter Johansson
4178 02 Jun 22 peter 8   Copyright (C) 2022 Peter Johansson
1432 25 Aug 08 peter 9
1432 25 Aug 08 peter 10   This file is part of the yat library, http://dev.thep.lu.se/yat
1432 25 Aug 08 peter 11
1432 25 Aug 08 peter 12   The yat library is free software; you can redistribute it and/or
1432 25 Aug 08 peter 13   modify it under the terms of the GNU General Public License as
1486 09 Sep 08 jari 14   published by the Free Software Foundation; either version 3 of the
1432 25 Aug 08 peter 15   License, or (at your option) any later version.
1432 25 Aug 08 peter 16
1432 25 Aug 08 peter 17   The yat library is distributed in the hope that it will be useful,
1432 25 Aug 08 peter 18   but WITHOUT ANY WARRANTY; without even the implied warranty of
1432 25 Aug 08 peter 19   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1432 25 Aug 08 peter 20   General Public License for more details.
1432 25 Aug 08 peter 21
1432 25 Aug 08 peter 22   You should have received a copy of the GNU General Public License
1487 10 Sep 08 jari 23   along with yat. If not, see <http://www.gnu.org/licenses/>.
1432 25 Aug 08 peter 24 */
1432 25 Aug 08 peter 25
4186 04 Jul 22 peter 26 #include "yat/utility/deprecate.h"
4186 04 Jul 22 peter 27
1432 25 Aug 08 peter 28 namespace theplu {
1432 25 Aug 08 peter 29 namespace yat {
1432 25 Aug 08 peter 30 namespace utility {
4178 02 Jun 22 peter 31   class MatrixMutable;
4125 14 Jan 22 peter 32   class MatrixBase;
1432 25 Aug 08 peter 33 }
1497 12 Sep 08 peter 34 namespace normalizer {
1432 25 Aug 08 peter 35
1432 25 Aug 08 peter 36   /**
1518 21 Sep 08 peter 37      \brief Perform quantile normalization
1432 25 Aug 08 peter 38
1577 14 Oct 08 peter 39      After a quantile normalization each column has the same
1577 14 Oct 08 peter 40      distribution of data (the quantiles are the same). Also, within
1577 14 Oct 08 peter 41      each column the rank of an element is not changed. The
1577 14 Oct 08 peter 42      distribution that each column follows is determined by taking the
1577 14 Oct 08 peter 43      average across columns, i.e., the largest element in each column
1577 14 Oct 08 peter 44      will be equal to the average of the largest elements. The 2nd
1577 14 Oct 08 peter 45      largest element in each column will be equal to the average of
1578 14 Oct 08 peter 46      the 2nd largest element in each column et cetera.
1577 14 Oct 08 peter 47
1577 14 Oct 08 peter 48      There is currently no weighted version of QuantileNormalizer
1577 14 Oct 08 peter 49
1432 25 Aug 08 peter 50      \since New in yat 0.5
4186 04 Jul 22 peter 51
4186 04 Jul 22 peter 52      \deprecated Provided for backward compatibility with the 0.19
4186 04 Jul 22 peter 53      API. Use QuantileNormalizer2 instead.
1432 25 Aug 08 peter 54    */
4252 18 Nov 22 peter 55   class YAT_DEPRECATE QuantileNormalizer
1432 25 Aug 08 peter 56   {
1432 25 Aug 08 peter 57   public:
1432 25 Aug 08 peter 58     /**
1577 14 Oct 08 peter 59        \brief perform the quantile normalization.
1453 29 Aug 08 peter 60
1577 14 Oct 08 peter 61        It is possible to normalize "in place"; it is permissible for
1577 14 Oct 08 peter 62        \a matrix and \a result to reference to the same Matrix.
1577 14 Oct 08 peter 63
1518 21 Sep 08 peter 64        \note dimensions of \a matrix and \a result must match.
1432 25 Aug 08 peter 65      */
4125 14 Jan 22 peter 66     void operator()(const utility::MatrixBase& matrix,
4186 04 Jul 22 peter 67                     utility::MatrixMutable& result) const YAT_DEPRECATE_GCC_PRE4_3;
1432 25 Aug 08 peter 68   };
1432 25 Aug 08 peter 69
1497 12 Sep 08 peter 70 }}} // end of namespace normalizer, yat and thep
1432 25 Aug 08 peter 71 #endif