5 * Created by Pat Schloss on 12/15/08.
6 * Copyright 2008 Patrick D. Schloss. All rights reserved.
15 #include "sequence.hpp"
17 //********************************************************************************************************************
19 Sequence::Sequence(){}
21 //********************************************************************************************************************
23 Sequence::Sequence(ifstream& fastaFile){
26 fastaFile >> accession;
32 while(fastaFile && letter != '>'){
34 letter = fastaFile.get();
43 fastaFile.putback(letter);
45 if(sequence.find_first_of('-') != string::npos){
48 setUnaligned(sequence);
52 //********************************************************************************************************************
54 string Sequence::convert2ints(){
56 if(unaligned == "") { /* need to throw an error */ }
60 for(int i=0;i<unaligned.length();i++){
61 if(toupper(unaligned[i]) == 'A') { processed += '0'; }
62 else if(toupper(unaligned[i]) == 'C') { processed += '1'; }
63 else if(toupper(unaligned[i]) == 'G') { processed += '2'; }
64 else if(toupper(unaligned[i]) == 'T') { processed += '3'; }
65 else if(toupper(unaligned[i]) == 'U') { processed += '3'; }
66 else { processed += '4'; }
71 //********************************************************************************************************************
73 void Sequence::setName(string seqName){
74 if(seqName[0] == '>') { name = seqName.substr(1); }
75 else { name = seqName; }
78 //********************************************************************************************************************
80 void Sequence::setUnaligned(string sequence){
82 if(sequence.find_first_of('-') != string::npos){
84 for(int j=0;j<sequence.length();j++){
85 if(isalpha(sequence[j])) { temp += sequence[j]; }
95 //********************************************************************************************************************
97 void Sequence::setAligned(string sequence){
101 //********************************************************************************************************************
103 void Sequence::setPairwise(string sequence){
107 //********************************************************************************************************************
109 string Sequence::getSeqName(){
113 //********************************************************************************************************************
115 string Sequence::getAligned(){
119 //********************************************************************************************************************
121 string Sequence::getPairwise(){
125 //********************************************************************************************************************
127 string Sequence::getUnaligned(){
131 //********************************************************************************************************************