add IA32 linux muscle binary
[jabaws.git] / binaries / src / clustalw / src / fileInput / FileReader.h
1 /**
2  * Author: Mark Larkin
3  * 
4  * Copyright (c) 2007 Des Higgins, Julie Thompson and Toby Gibson.  
5  */
6 #ifndef FILEREADER_H
7 #define FILEREADER_H
8
9 #include <vector>
10 #include <string>
11 #include <memory>
12 #include "../alignment/Alignment.h"
13 #include "../alignment/Sequence.h"
14 #include "../general/userparams.h"
15 #include "../general/utils.h"
16 #include "FileParser.h"
17 #include "ClustalFileParser.h"
18 #include "PearsonFileParser.h"
19 #include "PIRFileParser.h"
20 #include "GDEFileParser.h"
21 #include "MSFFileParser.h"
22 #include "RSFFileParser.h"
23 #include "EMBLFileParser.h"
24
25 namespace clustalw
26 {
27
28 class FileReader
29 {
30     public:
31         /* Functions */
32         FileReader();
33         ~FileReader();
34         int seqInput(Alignment* alignPtr, bool append, string *offendingSeq);
35         int readSeqs(Alignment* alignPtr, int firstSeq, string *offendingSeq);
36         int profileInput(Alignment* alignPtr);
37
38         /* Attributes */
39
40     private:
41         /* Functions */
42         void checkInfile(int* nseqs, auto_ptr<FileParser>& fileParser);
43         /* Attributes */
44         string sequenceFileName;
45         bool noEmptySequence(vector<Sequence> seqRangeVector, string *offendingSeq);
46             
47         InFileStream* fileIn;
48         int structPenalties;
49         string secStructName;
50         vector<char> secStructMask; // Will need to be cleared out before every reading!
51         vector<char> gapPenaltyMask;
52         vector<string> formatNames; 
53 };
54 }
55 #endif
56