00001
00005 #ifndef FASTA_H
00006 #define FASTA_H
00007
00008 #include <string>
00009 #include <list>
00010 #include <iostream>
00011 #include "fasta_seq.h"
00012
00013 namespace bioinfo
00014 {
00015
00025 template <typename seqtype = std::string>
00026 class fasta : public std::list<fasta_seq<seqtype>*>
00027 {
00028 public:
00032 fasta() { }
00033
00039 fasta(const std::string&);
00040
00044 ~fasta();
00045
00050 void write(const std::string&) const;
00051
00056 void read(const std::string&);
00057
00058 };
00059
00060 }
00061
00062 namespace std
00063 {
00064
00066 template <typename seqtype>
00067 std::ostream&
00068 operator<<(std::ostream&, const bioinfo::fasta<seqtype>&);
00069
00070 template <typename seqtype>
00071 std::istream&
00072 operator>>(std::istream&, const bioinfo::fasta<seqtype>&);
00074 }
00075
00076
00077 #include "fasta.hpp"
00078
00082 #endif // FASTA_H