+/**************************************************************************************************/
+
+statData AlignCheckCommand::getStats(string sequence){
+ try {
+
+ statData data;
+ sequence = "*" + sequence; // need to pad the sequence so we can index it by 1
+
+ int seqLength = sequence.length();
+ for(int i=1;i<seqLength;i++){
+ if(structMap[i] != 0){
+ if(sequence[i] == 'A'){
+ if(sequence[structMap[i]] == 'T') { data.tilde++; }
+ else if(sequence[structMap[i]] == 'A') { data.pound++; }
+ else if(sequence[structMap[i]] == 'G') { data.equal++; }
+ else if(sequence[structMap[i]] == 'C') { data.pound++; }
+ else if(sequence[structMap[i]] == '-') { data.pound++; }
+ data.total++;
+ }
+ else if(sequence[i] == 'T'){
+ if(sequence[structMap[i]] == 'T') { data.plus++; }
+ else if(sequence[structMap[i]] == 'A') { data.tilde++; }
+ else if(sequence[structMap[i]] == 'G') { data.dash++; }
+ else if(sequence[structMap[i]] == 'C') { data.pound++; }
+ else if(sequence[structMap[i]] == '-') { data.pound++; }
+ data.total++;
+ }
+ else if(sequence[i] == 'G'){
+ if(sequence[structMap[i]] == 'T') { data.dash++; }
+ else if(sequence[structMap[i]] == 'A') { data.equal++; }
+ else if(sequence[structMap[i]] == 'G') { data.pound++; }
+ else if(sequence[structMap[i]] == 'C') { data.tilde++; }
+ else if(sequence[structMap[i]] == '-') { data.pound++; }
+ data.total++;
+ }
+ else if(sequence[i] == 'C'){
+ if(sequence[structMap[i]] == 'T') { data.pound++; }
+ else if(sequence[structMap[i]] == 'A') { data.pound++; }
+ else if(sequence[structMap[i]] == 'G') { data.tilde++; }
+ else if(sequence[structMap[i]] == 'C') { data.pound++; }
+ else if(sequence[structMap[i]] == '-') { data.pound++; }
+ data.total++;
+ }
+ else if(sequence[i] == '-'){
+ if(sequence[structMap[i]] == 'T') { data.pound++; data.total++; }
+ else if(sequence[structMap[i]] == 'A') { data.pound++; data.total++; }
+ else if(sequence[structMap[i]] == 'G') { data.pound++; data.total++; }
+ else if(sequence[structMap[i]] == 'C') { data.pound++; data.total++; }
+ else if(sequence[structMap[i]] == '-') { /*donothing*/ }
+ }
+ }
+ else if(isalnum(sequence[i])){
+ data.loop++;
+ data.total++;
+ }
+ }
+ return data;
+
+ }
+ catch(exception& e) {
+ errorOut(e, "AlignCheckCommand", "getStats");
+ exit(1);
+ }
+}
+