Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef OPENMS_FORMAT_FASTAITERATOR_H
00037 #define OPENMS_FORMAT_FASTAITERATOR_H
00038
00039 #include <OpenMS/CHEMISTRY/PepIterator.h>
00040 #include <OpenMS/CONCEPT/Exception.h>
00041 #include <fstream>
00042 #include <vector>
00043
00044 namespace OpenMS
00045 {
00046
00053 class OPENMS_DLLAPI FastaIterator :
00054 public PepIterator
00055 {
00056
00057 public:
00058
00059 typedef std::pair<String, String> FASTAEntry;
00063 FastaIterator();
00064
00065
00069 virtual ~FastaIterator();
00070
00076 virtual FASTAEntry operator*();
00077
00083 virtual PepIterator & operator++();
00084
00090 virtual PepIterator * operator++(int i);
00091
00098 virtual void setFastaFile(const String & f);
00099
00104 virtual String getFastaFile();
00105
00111 virtual void setSpectrum(const std::vector<DoubleReal> &)
00112 {
00113 throw Exception::NotImplemented(__FILE__, __LINE__, __PRETTY_FUNCTION__);
00114 }
00115
00121 virtual const std::vector<DoubleReal> & getSpectrum()
00122 {
00123 throw Exception::NotImplemented(__FILE__, __LINE__, __PRETTY_FUNCTION__);
00124 }
00125
00131 virtual void setTolerance(DoubleReal )
00132 {
00133 throw Exception::NotImplemented(__FILE__, __LINE__, __PRETTY_FUNCTION__);
00134 }
00135
00142 virtual DoubleReal getTolerance()
00143 {
00144 throw Exception::NotImplemented(__FILE__, __LINE__, __PRETTY_FUNCTION__);
00145 }
00146
00152 virtual bool begin();
00153
00158 virtual bool isAtEnd();
00159
00164 static const String getProductName()
00165 {
00166 return "FastaIterator";
00167 }
00168
00173 static PepIterator * create()
00174 {
00175 return new FastaIterator;
00176 }
00177
00178 protected:
00183 virtual std::string next_();
00184
00185 bool is_at_end_;
00186
00187 std::ifstream input_file_;
00188
00189 String fasta_file_;
00190
00191 std::string actual_seq_;
00192
00193 std::string header_;
00194
00195 std::string last_header_;
00196
00197 private:
00201 FastaIterator(const FastaIterator &);
00202
00206 FastaIterator & operator=(const FastaIterator &);
00207
00208
00209 };
00210 }
00211 #endif // OPENMS_FORMAT_FASTAITERATOR_H