source: trunk/GDE/MAFFT/mafft-7.055-with-extensions/extensions/mxscarna_src/StemCandidate.hpp

Last change on this file was 10371, checked in by aboeckma, 11 years ago

updated mafft version. Added extensions (no svn ignore, yet)

File size: 4.0 KB
Line 
1/////////////////////////////////////////////////////////////
2// StemCandidate.hpp
3// Profile Stem Candidate calcurated by profile base pairing
4// probability matrix
5////////////////////////////////////////////////////////////
6
7#ifndef __STEMCANDIDATE_HPP__
8#define __STEMCANDIDATE_HPP__
9
10#include <string>
11#include <vector>
12
13using namespace std;
14
15namespace MXSCARNA {
16class StemCandidate {
17private:
18    int numSeq;                      /* the number of sequences in the profile */
19    int length;                      /* length of profile stem candidate of fixed length */
20    int position;                    /* 5' start position of SC in profile */
21    int distance;
22    std::vector<std::string> substr; /* profile base string of SC */
23    std::vector<std::string> rvstr;  /* profile base string of stem partner of SC */
24    int rvposition;                  /* 3' end position of stem partner of SC */
25    int rvscnumber;                  /* SC number of stem partner */
26    int contPos;                     /* previous stem that corresponds continuous stem and has position -1. */
27    int beforePos;                   /* most recent stem that doesn't overlap to SC and has position -len. */
28    float score;                     /* score of the sum of base pairing probability matrix */
29    std::vector<float> baseScore;
30    float stacking;                  /* the mean of stacking energy */
31    float stemStacking;              /* the mean of 1-continuous stacking energy */
32
33public:
34    StemCandidate() : numSeq(0), length(0), position(0), distance(0), 
35                      rvposition(0), rvscnumber(0), contPos(-1), beforePos(0),
36                      score(0), stacking(0), stemStacking(0) {}
37    StemCandidate(int numSeq, int length) : numSeq(numSeq), length(length), 
38                                            substr(numSeq), rvstr(numSeq), 
39                                            contPos(-1) { }
40
41    void SetNumSeq(int num) { numSeq = num; }
42    void SetLength(int len) { length = len; }
43    void SetNumSubstr(int num) {
44        substr.resize(num);
45        for(int i = 0; i < num; i++) {
46            string &tmpStr = substr[i];
47            tmpStr = "";
48            substr[i] = tmpStr;
49        }
50    }
51    void SetNumRvstr(int num) {
52        rvstr.resize(num);
53       
54        for(int i = 0; i < num; i++) {
55            string &tmpStr = rvstr[i];
56            tmpStr = "";
57            rvstr[i] = tmpStr;
58        }
59    }
60    void SetPosition(int pos) { position = pos; }
61
62    void AddSubstr(int num, char word) {
63        std::string &tmpStr = substr[num];
64        tmpStr += word;
65        substr[num] = tmpStr;
66    }
67
68    void AddRvstr(int num, char word) {
69        std::string &tmpStr = rvstr[num];
70        tmpStr += word;
71        rvstr[num] = tmpStr;
72    }
73
74    void AddBaseScore(float score) {
75        baseScore.push_back(score);
76    }
77
78    void SetRvposition(int pos) { rvposition = pos; }
79    void SetRvscnumber(int num) { rvscnumber = num; }
80    void SetContPos(int pos) { contPos = pos; }
81    void SetBeforePos(int pos) { beforePos = pos; }
82    void SetDistance(int d) { distance = d; }
83    void SetScore(float s) { score = s; }
84    void AddScore(float s) { score += s; }
85    void SetStacking(float s) { stacking = s; }
86    void AddStacking(float s) { stacking += s; }
87    void SetStemStacking(float s) { stemStacking = s; }
88    int  GetNumSeq() const { return numSeq; }
89    int  GetLength() const { return length; }
90    int  GetPosition() const { return position; }
91   
92    string GetSubstr(int num) const { 
93        const std::string &tmpStr = substr[num];
94        return tmpStr;
95    }
96    string GetRvstr(int num) const {
97        const std::string &tmpStr = rvstr[num];
98        return tmpStr;
99    }
100    float GetBaseScore(int i) const  {
101        return baseScore[i];
102    }
103    int GetRvposition() const {
104        return rvposition;
105    }
106    int GetRvscnumber() const {
107        return rvscnumber;
108    }
109    int GetContPos() const {
110        return contPos;
111    }
112    int GetBeforePos() const {
113        return beforePos;
114    }
115    int GetDistance() const {
116        return distance;
117    }
118    float GetScore() const {
119        return score;
120    }
121    float GetStacking() const  {
122        return stacking;
123    }
124    float GetStemStacking() const {
125        return stemStacking;
126    }
127};
128}
129#endif // __STEMCANDIDATE_HPP__
Note: See TracBrowser for help on using the repository browser.