5 * Created by Pat Schloss on 12/15/08.
6 * Copyright 2008 Patrick D. Schloss. All rights reserved.
12 #include "sequence.hpp"
14 /***********************************************************************/
16 Sequence::Sequence() {}
18 /***********************************************************************/
20 Sequence::Sequence(string newName, string sequence) {
22 if(sequence.find_first_of('-') != string::npos) {
25 setUnaligned(sequence);
28 //********************************************************************************************************************
30 string Sequence::convert2ints() {
32 if(unaligned == "") { /* need to throw an error */ }
36 for(int i=0;i<unaligned.length();i++) {
37 if(toupper(unaligned[i]) == 'A') { processed += '0'; }
38 else if(toupper(unaligned[i]) == 'C') { processed += '1'; }
39 else if(toupper(unaligned[i]) == 'G') { processed += '2'; }
40 else if(toupper(unaligned[i]) == 'T') { processed += '3'; }
41 else if(toupper(unaligned[i]) == 'U') { processed += '3'; }
42 else { processed += '4'; }
47 //********************************************************************************************************************
49 void Sequence::setName(string seqName) {
50 if(seqName[0] == '>') { name = seqName.substr(1); }
51 else { name = seqName; }
54 //********************************************************************************************************************
56 void Sequence::setUnaligned(string sequence){
58 if(sequence.find_first_of('-') != string::npos) {
60 for(int j=0;j<sequence.length();j++) {
61 if(isalpha(sequence[j])) { temp += sequence[j]; }
71 //********************************************************************************************************************
73 void Sequence::setAligned(string sequence){
77 //********************************************************************************************************************
79 void Sequence::setPairwise(string sequence){
83 //********************************************************************************************************************
85 string Sequence::getName(){
89 //********************************************************************************************************************
91 string Sequence::getAligned(){
95 //********************************************************************************************************************
97 string Sequence::getPairwise(){
101 //********************************************************************************************************************
103 string Sequence::getUnaligned(){
107 //********************************************************************************************************************
109 int Sequence::getLength(){
110 if(unaligned.length() > aligned.length())
111 return unaligned.length();
112 return aligned.length();
115 //********************************************************************************************************************
117 void Sequence::printSequence(ostream& out){
118 string toPrint = unaligned;
119 if(aligned.length() > unaligned.length())
121 out << ">" << name << "\n" << toPrint << "\n";
124 //********************************************************************************************************************