5 * Created by Thomas Ryabin on 4/24/09.
6 * Copyright 2009 __MyCompanyName__. 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) {
36 openInputFile(file, filehandle);
38 globaldata = GlobalData::getInstance();
41 cout << "Standard Error: " << e.what() << " has occurred in the ReadTree class Function ReadTree. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
45 cout << "An unknown error has occurred in the ReadTree class function ReadTree. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
49 /*******************************************************************************/
50 ReadPhylip::~ReadPhylip(){
51 // for(int i = 0; i < sequencedb.getNumSeqs(); i++)
52 // delete sequencedb.get(i);
54 /*******************************************************************************/
55 void ReadPhylip::read() {
64 int numSeqs = atoi(temp.c_str());
66 int numLetters = atoi(temp.c_str());
68 bool firstDone = false;
72 while(!filehandle.eof()) {
82 letterCount += sequence.length();
85 for(int i = 0; i < numCols; i++) {
92 Sequence newSeq(name, sequence);
93 sequencedb.add(newSeq);
99 for(int i = 0; i < numCols; i++) {
103 letterCount += temp.length();
104 if(letterCount == numLetters && count == 0) {
109 if(!(last && count == 0))
110 sequencedb.set(count, sequencedb.get(count).getAligned() + sequence);
111 if(letterCount == numLetters && count == 0)
117 if(count == numSeqs) {
125 /*********************************************************************************/
126 SequenceDB* ReadPhylip::getDB() {