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(ifstream& fastaFile){
23 fastaFile >> accession;
29 while(fastaFile && letter != '>'){
31 letter = fastaFile.get();
40 fastaFile.putback(letter);
42 if(sequence.find_first_of('-') != string::npos){
45 setUnaligned(sequence);
49 //********************************************************************************************************************
51 string Sequence::convert2ints(){
53 if(unaligned == "") { /* need to throw an error */ }
57 for(int i=0;i<unaligned.length();i++){
58 if(toupper(unaligned[i]) == 'A') { processed += '0'; }
59 else if(toupper(unaligned[i]) == 'C') { processed += '1'; }
60 else if(toupper(unaligned[i]) == 'G') { processed += '2'; }
61 else if(toupper(unaligned[i]) == 'T') { processed += '3'; }
62 else if(toupper(unaligned[i]) == 'U') { processed += '3'; }
63 else { processed += '4'; }
68 //********************************************************************************************************************
70 void Sequence::setName(string seqName){
71 if(seqName[0] == '>') { name = seqName.substr(1); }
72 else { name = seqName; }
75 //********************************************************************************************************************
77 void Sequence::setUnaligned(string sequence){
79 if(sequence.find_first_of('-') != string::npos){
81 for(int j=0;j<sequence.length();j++){
82 if(isalpha(sequence[j])) { temp += sequence[j]; }
92 //********************************************************************************************************************
94 void Sequence::setAligned(string sequence){
98 //********************************************************************************************************************
100 void Sequence::setPairwise(string sequence){
104 //********************************************************************************************************************
106 string Sequence::getSeqName(){
110 //********************************************************************************************************************
112 string Sequence::getAligned(){
116 //********************************************************************************************************************
118 string Sequence::getPairwise(){
122 //********************************************************************************************************************
124 string Sequence::getUnaligned(){
128 //********************************************************************************************************************