5 * Created by Thomas Ryabin on 4/24/09.
6 * Copyright 2009 Schloss Lab UMASS Amherst. All rights reserved.
10 #include "readseqsphylip.h"
14 /*******************************************************************************/
15 bool ReadPhylip::isSeq(string seq) {
16 string validChars[] = {"A","G","C","T","U","N","-"};
18 for(int i = 0; i < seq.length(); i++) {
20 string c = seq.substr(i,1);
21 for(int k = 0; k < 7; k++)
22 if(c.compare(validChars[k]) == 0) {
33 /*******************************************************************************/
34 ReadPhylip::ReadPhylip(string file) : ReadSeqs(file) {
38 cout << "Standard Error: " << e.what() << " has occurred in the ReadTree class Function ReadTree. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
42 cout << "An unknown error has occurred in the ReadTree class function ReadTree. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
46 /*******************************************************************************/
47 ReadPhylip::~ReadPhylip(){
48 // for(int i = 0; i < sequencedb.getNumSeqs(); i++)
49 // delete sequencedb.get(i);
51 /*******************************************************************************/
52 void ReadPhylip::read() {
61 int numSeqs = atoi(temp.c_str());
63 int numLetters = atoi(temp.c_str());
65 bool firstDone = false;
69 while(!filehandle.eof()) {
79 letterCount += sequence.length();
82 for(int i = 0; i < numCols; i++) {
89 Sequence newSeq(name, sequence);
90 sequencedb.add(newSeq);
96 for(int i = 0; i < numCols; i++) {
100 letterCount += temp.length();
101 if(letterCount == numLetters && count == 0) {
106 if(!(last && count == 0))
107 sequencedb.set(count, sequencedb.get(count).getUnaligned() + sequence);
108 if(letterCount == numLetters && count == 0)
114 if(count == numSeqs) {
122 /*********************************************************************************/
123 SequenceDB* ReadPhylip::getDB() {