Sleipnir
src/clustqtci.h
00001 /*****************************************************************************
00002 * This file is provided under the Creative Commons Attribution 3.0 license.
00003 *
00004 * You are free to share, copy, distribute, transmit, or adapt this work
00005 * PROVIDED THAT you attribute the work to the authors listed below.
00006 * For more information, please see the following web page:
00007 * http://creativecommons.org/licenses/by/3.0/
00008 *
00009 * This file is a component of the Sleipnir library for functional genomics,
00010 * authored by:
00011 * Curtis Huttenhower (chuttenh@princeton.edu)
00012 * Mark Schroeder
00013 * Maria D. Chikina
00014 * Olga G. Troyanskaya (ogt@princeton.edu, primary contact)
00015 *
00016 * If you use this library, the included executable tools, or any related
00017 * code in your work, please cite the following publication:
00018 * Curtis Huttenhower, Mark Schroeder, Maria D. Chikina, and
00019 * Olga G. Troyanskaya.
00020 * "The Sleipnir library for computational functional genomics"
00021 *****************************************************************************/
00022 #ifndef CLUSTQTCI_H
00023 #define CLUSTQTCI_H
00024 
00025 #include <vector>
00026 
00027 #include "fullmatrix.h"
00028 #include "halfmatrix.h"
00029 
00030 namespace Sleipnir {
00031 
00032 class CPCL;
00033 class IMeasure;
00034 
00035 class CClustQTCImpl {
00036 protected:
00037     static void InitializeDistances( const CDataMatrix&, const IMeasure*, CDistanceMatrix&,
00038         const CDataMatrix* );
00039     static double GetJackDistance( const float*, const float*, size_t, float*, float*, const IMeasure*,
00040         const float*, const float*, float*, float* );
00041     static uint16_t QualityThresholdAll( size_t, float, size_t, const CDistanceMatrix&,
00042         std::vector<uint16_t>& );
00043     static void QualityThresholdLargest( size_t, float, const CDistanceMatrix&, const std::vector<bool>&,
00044         std::vector<uint16_t>& );
00045     static void QualityThresholdGene( size_t, size_t, float, const CDistanceMatrix&, std::vector<bool>&,
00046         std::vector<float>&, std::vector<uint16_t>& );
00047 };
00048 
00049 }
00050 
00051 #endif // CLUSTQTCI_H