00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_IO_CLUSTAL_HANDLER_HH
00020 #define OST_IO_CLUSTAL_HANDLER_HH
00021
00022
00023
00024 #include <ost/io/module_config.hh>
00025 #include "sequence_io_handler.hh"
00026
00027 namespace ost { namespace io {
00028
00029 class DLLEXPORT_OST_IO ClustalIOHandler : public SequenceIOHandler {
00030 public:
00031 virtual void Import(seq::SequenceList& ali,
00032 const boost::filesystem::path& loc);
00033
00034 virtual void Export(const seq::ConstSequenceList& ent,
00035 const boost::filesystem::path& loc) const;
00036
00037 virtual void Import(seq::SequenceList& ent,
00038 std::istream& instream);
00039
00040 virtual void Export(const seq::ConstSequenceList& ent,
00041 std::ostream& ostream) const;
00042
00043 static bool ProvidesImport(const boost::filesystem::path& loc,
00044 const String& format="auto");
00045 static bool ProvidesExport(const boost::filesystem::path& loc,
00046 const String& format="auto");
00047 static String GetFormatName() { return String("Clustal"); }
00048 static String GetFormatDescription() { return String("Format used by the ClustalW2 software package"); }
00049
00050 };
00051
00052 typedef SequenceIOHandlerFactory<ClustalIOHandler> ClustalIOHandlerFactory;
00053
00054 }}
00055
00056 #endif