NCBI C++ ToolKit
nuc_prop.hpp
Go to the documentation of this file.

Go to the SVN repository for this file.

1 /* $Id: nuc_prop.hpp 33815 2007-05-04 17:18:18Z kazimird $
2  * ===========================================================================
3  *
4  * PUBLIC DOMAIN NOTICE
5  * National Center for Biotechnology Information
6  *
7  * This software/database is a "United States Government Work" under the
8  * terms of the United States Copyright Act. It was written as part of
9  * the author's official duties as a United States Government employee and
10  * thus cannot be copyrighted. This software/database is freely available
11  * to the public for use. The National Library of Medicine and the U.S.
12  * Government have not placed any restriction on its use or reproduction.
13  *
14  * Although all reasonable efforts have been taken to ensure the accuracy
15  * and reliability of the software and data, the NLM and the U.S.
16  * Government do not and cannot warrant the performance or results that
17  * may be obtained by using this software or data. The NLM and the U.S.
18  * Government disclaim all warranties, express or implied, including
19  * warranties of performance, merchantability or fitness for any particular
20  * purpose.
21  *
22  * Please cite the author in any work or product based on this material.
23  *
24  * ===========================================================================
25  *
26  * Authors: Josh Cherry
27  *
28  * File Description:
29  *
30  */
31 
32 
33 #ifndef ALGO_SEQUENCE___NUC_PROP__HPP
34 #define ALGO_SEQUENCE___NUC_PROP__HPP
35 
36 #include <objmgr/seq_vector.hpp>
37 
40 
41 /// this class defines functions for calculating various
42 /// properties of nucleotide sequences
43 
45 {
46 public:
47  /// Tally the occurrences of each non-ambiguous n-mer.
48  static void CountNmers(CSeqVector& seqvec, int n, vector<int>& table);
49 
50  /// Encode an n-mer as an integer.
51  static int Nmer2Int(const char *seq, int n);
52 
53  /// Decode an integer representation of an n-mer.
54  static void Int2Nmer(int nmer_int, int nmer_size, string& out);
55 
56  /// The number of distinct n-mers (4^n)
57  static int NumberOfNmers(int n);
58 
59  /// Calculate percent G+C+S
60  static int GetPercentGC(const CSeqVector& seqvec);
61 
62 private:
63  static int Nuc2Nybble(char nuc);
64  static char Nybble2Nuc(int n);
65 };
66 
69 
70 #endif // ALGO_SEQUENCE___NUC_PROP__HPP
this class defines functions for calculating various properties of nucleotide sequences
Definition: nuc_prop.hpp:45
CSeqVector –.
Definition: seq_vector.hpp:65
std::ofstream out("events_result.xml")
main entry point for tests
#define END_NCBI_SCOPE
End previously defined NCBI scope.
Definition: ncbistl.hpp:103
#define END_SCOPE(ns)
End the previously defined scope.
Definition: ncbistl.hpp:75
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
Definition: ncbistl.hpp:100
#define BEGIN_SCOPE(ns)
Define a new scope.
Definition: ncbistl.hpp:72
#define NCBI_XALGOSEQ_EXPORT
Definition: ncbi_export.h:1017
<!DOCTYPE HTML >< html > n< header > n< title > PubSeq Gateway Help Page</title > n< style > n table
yy_size_t n
Modified on Fri Sep 20 14:58:05 2024 by modify_doxy.py rev. 669887