From e58f4216b4caf41606eaff99fcdfe03578103a4c Mon Sep 17 00:00:00 2001
From: valerio <valerio@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Tue, 2 Mar 2010 16:34:38 +0000
Subject: [PATCH] Added name and description string for all supported file
 formats

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@1755 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 modules/io/src/img/map_io_dat_handler.hh       |  6 ++++--
 modules/io/src/img/map_io_dm3_handler.cc       |  2 +-
 modules/io/src/img/map_io_dm3_handler.hh       |  7 +++++--
 modules/io/src/img/map_io_dx_handler.hh        |  5 +++++
 modules/io/src/img/map_io_handler.hh           | 11 +++++++++++
 modules/io/src/img/map_io_jpk_handler.cc       |  2 +-
 modules/io/src/img/map_io_jpk_handler.hh       |  5 +++++
 modules/io/src/img/map_io_mrc_handler.cc       |  1 +
 modules/io/src/img/map_io_mrc_handler.hh       |  2 ++
 modules/io/src/img/map_io_nanoscope_handler.hh | 10 ++++++----
 modules/io/src/img/map_io_png_handler.hh       | 10 +++++-----
 modules/io/src/img/map_io_situs_handler.hh     |  4 ++++
 modules/io/src/img/map_io_spi_handler.hh       |  5 +++++
 modules/io/src/img/map_io_tiff_handler.cc      |  2 +-
 modules/io/src/img/map_io_tiff_handler.hh      |  4 +++-
 modules/io/src/mol/entity_io_crd_handler.cc    |  3 +++
 modules/io/src/mol/entity_io_crd_handler.hh    |  4 ++++
 modules/io/src/mol/entity_io_handler.hh        | 10 ++++++++++
 modules/io/src/mol/entity_io_pdb_handler.hh    |  3 +++
 modules/io/src/mol/entity_io_sdf_handler.hh    |  3 +++
 modules/io/src/mol/surface_io_handler.hh       | 11 +++++++++++
 modules/io/src/mol/surface_io_msms_handler.hh  |  2 ++
 modules/io/src/seq/clustal_io_handler.hh       |  3 +++
 modules/io/src/seq/fasta_io_handler.hh         |  3 +++
 modules/io/src/seq/promod_io_handler.hh        |  3 +++
 modules/io/src/seq/sequence_io_handler.hh      | 11 +++++++++++
 26 files changed, 115 insertions(+), 17 deletions(-)

diff --git a/modules/io/src/img/map_io_dat_handler.hh b/modules/io/src/img/map_io_dat_handler.hh
index 25f5404e1..f501d0b2e 100644
--- a/modules/io/src/img/map_io_dat_handler.hh
+++ b/modules/io/src/img/map_io_dat_handler.hh
@@ -51,9 +51,9 @@ class DLLEXPORT_OST_IO DAT: public ImageFormatBase
 class DLLEXPORT_OST_IO MapIODatHandler: public MapIOHandler
 {
   public:
-    /// \brief Map IO handler to read/write Spider map files
+    /// \brief Map IO handler to read/write Dat map files
     ///
-    /// This map IO handler reads and writes Spider formatted map files.
+    /// This map IO handler reads and writes Dat formatted map files.
     virtual void Import(img::MapHandle& sh, const boost::filesystem::path& loc,const ImageFormatBase& formatstruct );
     virtual void Import(img::MapHandle& sh, std::istream& loc, const ImageFormatBase& formatstruct);
     virtual void Export(const img::MapHandle& sh, const boost::filesystem::path& loc, const ImageFormatBase& formatstruct) const;
@@ -61,6 +61,8 @@ class DLLEXPORT_OST_IO MapIODatHandler: public MapIOHandler
     static bool MatchContent(unsigned char* header);
     static bool MatchType(const ImageFormatBase& type);
     static bool MatchSuffix(const String& suffix);
+    static String GetFormatName() { return String("Dat"); }
+    static String GetFormatDescription() {return String("Simple binary format for square images");}
 };
 
 typedef MapIOHandlerFactory<MapIODatHandler> MapIODatHandlerFactory;
diff --git a/modules/io/src/img/map_io_dm3_handler.cc b/modules/io/src/img/map_io_dm3_handler.cc
index 395499d7f..4c0816a38 100644
--- a/modules/io/src/img/map_io_dm3_handler.cc
+++ b/modules/io/src/img/map_io_dm3_handler.cc
@@ -44,7 +44,7 @@
 
 namespace ost { namespace io {
 
-String DM3::FORMAT_STRING = "defined_spider";
+String DM3::FORMAT_STRING = "defined_dm3";
 
 DM3::DM3():
   ImageFormatBase(FORMAT_STRING)
diff --git a/modules/io/src/img/map_io_dm3_handler.hh b/modules/io/src/img/map_io_dm3_handler.hh
index e0bedce17..b1c5e09fc 100644
--- a/modules/io/src/img/map_io_dm3_handler.hh
+++ b/modules/io/src/img/map_io_dm3_handler.hh
@@ -39,9 +39,9 @@ class DLLEXPORT_OST_IO DM3: public ImageFormatBase
 class DLLEXPORT_OST_IO MapIODm3Handler: public MapIOHandler
 {
   public:
-    /// \brief Map IO handler to read/write Spider map files
+    /// \brief Map IO handler to read/write Dm3 map files
     ///
-    /// This map IO handler reads and writes Spider formatted map files.
+    /// This map IO handler reads and writes Dm3 formatted map files (Digital Micrograph).
     virtual void Import(img::MapHandle& sh, const boost::filesystem::path& loc,const ImageFormatBase& formatstruct);
     virtual void Import(img::MapHandle& sh, std::istream& loc, const ImageFormatBase& formatstruct);
     virtual void Export(const img::MapHandle& sh, const boost::filesystem::path& loc,const ImageFormatBase& formatstruct) const;
@@ -49,6 +49,9 @@ class DLLEXPORT_OST_IO MapIODm3Handler: public MapIOHandler
     static bool MatchContent(unsigned char* header);
     static bool MatchType(const ImageFormatBase& type);
     static bool MatchSuffix(const String& suffix);
+    static String GetFormatName() { return String("Dm3"); }
+    static String GetFormatDescription() {return String("Format used by Gatan Inc.'s  Digital Micrograph software");}
+
 };
 
 typedef MapIOHandlerFactory<MapIODm3Handler> MapIODm3HandlerFactory;
diff --git a/modules/io/src/img/map_io_dx_handler.hh b/modules/io/src/img/map_io_dx_handler.hh
index ead4ea87b..f0933aa1c 100644
--- a/modules/io/src/img/map_io_dx_handler.hh
+++ b/modules/io/src/img/map_io_dx_handler.hh
@@ -34,6 +34,8 @@ class DLLEXPORT_OST_IO DX: public ImageFormatBase
   bool GetNormalizeOnSave() const;
   void SetNormalizeOnSave(bool normalize_on_save);
   static String FORMAT_STRING;
+  static String FORMAT_NAME_STRING;
+  static String FORMAT_DESCRIPTION_STRING;
 
  private:
 
@@ -61,6 +63,9 @@ class DLLEXPORT_OST_IO MapIODxHandler: public MapIOHandler
   static bool MatchContent(unsigned char* header);
   static bool MatchType(const ImageFormatBase& type);
   static bool MatchSuffix(const String& suffix);
+  static String GetFormatName() { return String("Dx"); };
+  static String GetFormatDescription()  { return String("Format used by the OpenDX software package"); };
+
 };
 
 typedef MapIOHandlerFactory<MapIODxHandler> MapIODxHandlerFactory;
diff --git a/modules/io/src/img/map_io_handler.hh b/modules/io/src/img/map_io_handler.hh
index d90bf353e..295492b4d 100644
--- a/modules/io/src/img/map_io_handler.hh
+++ b/modules/io/src/img/map_io_handler.hh
@@ -47,6 +47,9 @@ public:
   virtual bool MatchType(const ImageFormatBase& type) const = 0;
   virtual bool MatchSuffix(const String& suffix) const =0 ;
   virtual MapIOHandlerPtr Create() const = 0 ;
+  virtual String GetFormatName() const =0;
+  virtual String GetFormatDescription() const =0;
+
 };
 
 typedef boost::shared_ptr<MapIOHandlerFactoryBase> MapIOHandlerFactoryBasePtr;
@@ -67,6 +70,14 @@ class MapIOHandlerFactory: public MapIOHandlerFactoryBase
     return HANDLER::MatchSuffix(suffix);
   }
 
+  virtual String GetFormatName() const {
+     return HANDLER::GetFormatName();
+  }
+
+  virtual String GetFormatDescription() const {
+     return HANDLER::GetFormatDescription();
+  }
+
   virtual MapIOHandlerPtr Create() const {
     return MapIOHandlerPtr(new HANDLER);
   }
diff --git a/modules/io/src/img/map_io_jpk_handler.cc b/modules/io/src/img/map_io_jpk_handler.cc
index 8bf3b2bf0..5122ab3c3 100644
--- a/modules/io/src/img/map_io_jpk_handler.cc
+++ b/modules/io/src/img/map_io_jpk_handler.cc
@@ -42,7 +42,7 @@ namespace ost { namespace io {
 
 String JPK::FORMAT_STRING = "defined_jpk";
 
-    JPK::JPK(boost::logic::tribool normalize_on_save, Format bit_depth, bool sign, bool phasecolor, int subimage):
+JPK::JPK(boost::logic::tribool normalize_on_save, Format bit_depth, bool sign, bool phasecolor, int subimage):
   TIF(FORMAT_STRING,normalize_on_save,bit_depth,sign,phasecolor,subimage)
 {}
 
diff --git a/modules/io/src/img/map_io_jpk_handler.hh b/modules/io/src/img/map_io_jpk_handler.hh
index 8cb5bfbce..1191924a4 100644
--- a/modules/io/src/img/map_io_jpk_handler.hh
+++ b/modules/io/src/img/map_io_jpk_handler.hh
@@ -30,6 +30,8 @@ class DLLEXPORT_OST_IO JPK: public TIF
  public:
   JPK(boost::logic::tribool normalize_on_save = true, Format bit_depth = OST_DEFAULT_FORMAT, bool sign = false, bool phasecolor = false, int subimage = -1);
   static String FORMAT_STRING;
+  static String FORMAT_NAME_STRING;
+  static String FORMAT_DESCRIPTION_STRING;
 };
 
 
@@ -47,6 +49,9 @@ class DLLEXPORT_OST_IO MapIOJpkHandler: public MapIOTiffHandler
   static bool MatchContent(unsigned char* header);
   static bool MatchType(const ImageFormatBase& type);
   static bool MatchSuffix(const String& suffix);
+  static String GetFormatName() { return String("Jpk");}
+  static String GetFormatDescription() { return String("Format used by JPK Instruments AG's software (Customized Tiff format)"); }
+
 };
 
 typedef MapIOHandlerFactory<MapIOJpkHandler> MapIOJpkHandlerFactory;
diff --git a/modules/io/src/img/map_io_mrc_handler.cc b/modules/io/src/img/map_io_mrc_handler.cc
index 4858491bd..0dc4681c8 100644
--- a/modules/io/src/img/map_io_mrc_handler.cc
+++ b/modules/io/src/img/map_io_mrc_handler.cc
@@ -84,6 +84,7 @@ namespace ost { namespace io {
 
 String MRC::FORMAT_STRING = "defined_mrc";
 
+
 MRC::MRC(bool normalize_on_save, Subformat subformat,Endianess endianess_on_save):
   ImageFormatBase(FORMAT_STRING)
 {
diff --git a/modules/io/src/img/map_io_mrc_handler.hh b/modules/io/src/img/map_io_mrc_handler.hh
index 32b28c3c5..d5f96b6f9 100644
--- a/modules/io/src/img/map_io_mrc_handler.hh
+++ b/modules/io/src/img/map_io_mrc_handler.hh
@@ -75,6 +75,8 @@ public:
   static bool MatchContent(unsigned char* header);
   static bool MatchType(const ImageFormatBase& type);
   static bool MatchSuffix(const String& suffix);
+  static String GetFormatName() { return String("Mrc"); };
+  static String GetFormatDescription() { return String("Format used by the MRC software package"); };
 
 private:
 
diff --git a/modules/io/src/img/map_io_nanoscope_handler.hh b/modules/io/src/img/map_io_nanoscope_handler.hh
index f6103066b..e9dda75c7 100644
--- a/modules/io/src/img/map_io_nanoscope_handler.hh
+++ b/modules/io/src/img/map_io_nanoscope_handler.hh
@@ -30,6 +30,8 @@ class DLLEXPORT_OST_IO Nanoscope: public ImageFormatBase
   Nanoscope(int subimage = -1);
 
   static String FORMAT_STRING;
+  static String FORMAT_NAME_STRING;
+  static String FORMAT_DESCRIPTION_STRING;
 
   int GetSubimage () const;
   void SetSubimage (int subimage);
@@ -46,10 +48,9 @@ class MapIONanoscopeHandler: public MapIOHandler {
 public:
 
    public:
-  /// \brief Map IO handler to read/write Situs map files
+  /// \brief Map IO handler to read/write Nanoscope map files
   ///
-  /// This map IO handler reads and writes MRC formatted map files, as
-  /// generated by the MRC electron crystallography processing package
+  /// This map IO handler reads and writes Nanoscope formatted map files
   virtual void Import(img::MapHandle& sh, const boost::filesystem::path& loc,const ImageFormatBase& formatstruct );
   virtual void Import(img::MapHandle& sh, std::istream& loc, const ImageFormatBase& formatstruct);
   virtual void Export(const img::MapHandle& sh, const boost::filesystem::path& loc, const ImageFormatBase& formatstruct) const;
@@ -57,7 +58,8 @@ public:
   static bool MatchContent(unsigned char* header);
   static bool MatchType(const ImageFormatBase& type);
   static bool MatchSuffix(const String& suffix);
-
+  static String GetFormatName() { return String("Nanoscope"); }
+  static String GetFormatDescription() { return String("Format used by software from Veeco"); }
 };
 
 typedef MapIOHandlerFactory<MapIONanoscopeHandler> MapIONanoscopeHandlerFactory;
diff --git a/modules/io/src/img/map_io_png_handler.hh b/modules/io/src/img/map_io_png_handler.hh
index 94f79fe9a..0f3b54543 100644
--- a/modules/io/src/img/map_io_png_handler.hh
+++ b/modules/io/src/img/map_io_png_handler.hh
@@ -32,7 +32,7 @@ class DLLEXPORT_OST_IO PNG: public ImageFormatBase
 
   bool GetNormalizeOnSave() const;
   void SetNormalizeOnSave(bool normalize_on_save);
-  static String FORMAT_STRING;;
+  static String FORMAT_STRING;
 
  private:
 
@@ -43,10 +43,9 @@ class MapIOPngHandler: public MapIOHandler {
 public:
 
    public:
-  /// \brief Map IO handler to read/write Situs map files
+  /// \brief Map IO handler to read/write png image files
   ///
-  /// This map IO handler reads and writes MRC formatted map files, as
-  /// generated by the MRC electron crystallography processing package
+  /// This map IO handler reads and writes PNG formatted image files,
   virtual void Import(img::MapHandle& sh, const boost::filesystem::path& loc,const ImageFormatBase& formatstruct );
   virtual void Import(img::MapHandle& sh, std::istream& loc, const ImageFormatBase& formatstruct);
   virtual void Export(const img::MapHandle& sh, const boost::filesystem::path& loc, const ImageFormatBase& formatstruct) const;
@@ -54,7 +53,8 @@ public:
   static bool MatchContent(unsigned char* header);
   static bool MatchType(const ImageFormatBase& type);
   static bool MatchSuffix(const String& suffix);
-
+  static String GetFormatName() { return String("Png");}
+  static String GetFormatDescription()  { return String("Portable Network Graphic image format");}
 };
 
 typedef MapIOHandlerFactory<MapIOPngHandler> MapIOPngHandlerFactory;
diff --git a/modules/io/src/img/map_io_situs_handler.hh b/modules/io/src/img/map_io_situs_handler.hh
index 877741a0d..05933c552 100644
--- a/modules/io/src/img/map_io_situs_handler.hh
+++ b/modules/io/src/img/map_io_situs_handler.hh
@@ -33,6 +33,8 @@ class DLLEXPORT_OST_IO Situs: public ImageFormatBase
   bool GetNormalizeOnSave() const;
   void SetNormalizeOnSave(bool normalize_on_save);
   static String FORMAT_STRING;
+  static String FORMAT_NAME_STRING;
+  static String FORMAT_ALIGNMENT_STRING;
 
  private:
 
@@ -53,6 +55,8 @@ class DLLEXPORT_OST_IO MapIOSitusHandler: public MapIOHandler
   static bool MatchContent(unsigned char* header);
   static bool MatchType(const ImageFormatBase& type);
   static bool MatchSuffix(const String& suffix);
+  static String GetFormatName() { return "Situs"; };
+  static String GetFormatDescription() { return "Format used by the Situs software package"; };
 };
 
 typedef MapIOHandlerFactory<MapIOSitusHandler> MapIOSitusHandlerFactory;
diff --git a/modules/io/src/img/map_io_spi_handler.hh b/modules/io/src/img/map_io_spi_handler.hh
index 6d93c0475..91eccb979 100644
--- a/modules/io/src/img/map_io_spi_handler.hh
+++ b/modules/io/src/img/map_io_spi_handler.hh
@@ -43,6 +43,8 @@ class DLLEXPORT_OST_IO Spider: public ImageFormatBase
   void SetEndianessOnSave(Endianess end);
 
   static String FORMAT_STRING;
+  static String FORMAT_NAME_STRING;
+  static String FORMAT_DESCRIPTION_STRING;
 
  private:
 
@@ -63,6 +65,9 @@ class DLLEXPORT_OST_IO MapIOSpiHandler: public MapIOHandler
   static bool MatchContent(unsigned char* header);
   static bool MatchType(const ImageFormatBase& type);
   static bool MatchSuffix(const String& suffix);
+  static String GetFormatName() { return String("Spider"); };
+  static String GetFormatDescription() { return String("Format sued by the Spider software package"); };
+
 protected:
   void do_import(img::MapHandle& sh, std::istream& loc,const ImageFormatBase& formatstruct);
 };
diff --git a/modules/io/src/img/map_io_tiff_handler.cc b/modules/io/src/img/map_io_tiff_handler.cc
index b2a5d4f9e..d25d92eb8 100644
--- a/modules/io/src/img/map_io_tiff_handler.cc
+++ b/modules/io/src/img/map_io_tiff_handler.cc
@@ -45,7 +45,7 @@ namespace ost { namespace io {
 
 String TIF::FORMAT_STRING="defined_tiff";
 
-    TIF::TIF(boost::logic::tribool normalize_on_save, Format bit_depth, bool sign, bool phasecolor, int subimage):
+ TIF::TIF(boost::logic::tribool normalize_on_save, Format bit_depth, bool sign, bool phasecolor, int subimage):
     ImageFormatBase(FORMAT_STRING)
 {
   normalize_on_save_ = normalize_on_save;
diff --git a/modules/io/src/img/map_io_tiff_handler.hh b/modules/io/src/img/map_io_tiff_handler.hh
index 3351ff031..2ae42d7f2 100644
--- a/modules/io/src/img/map_io_tiff_handler.hh
+++ b/modules/io/src/img/map_io_tiff_handler.hh
@@ -61,6 +61,7 @@ class DLLEXPORT_OST_IO TIF: public  ImageFormatBase
 
   static String FORMAT_STRING;
 
+
  protected:
 
   TIF(String format_string, boost::logic::tribool normalize_on_save = boost::logic::indeterminate, Format bit_depth = OST_DEFAULT_FORMAT, bool sign = false, bool phasecolor = false, int subimage = -1);
@@ -87,10 +88,11 @@ class DLLEXPORT_OST_IO MapIOTiffHandler: public MapIOHandler
     virtual void Import(img::MapHandle& sh, std::istream& loc,const ImageFormatBase& formatstruct);
     virtual void Export(const img::MapHandle& sh, const boost::filesystem::path& loc,const ImageFormatBase& formatstruct) const;
     virtual void Export(const img::MapHandle& sh, std::ostream& loc,const ImageFormatBase& formatstruct) const;
-
     static bool MatchContent(unsigned char* header);
     static bool MatchType(const ImageFormatBase& type);
     static bool MatchSuffix(const String& suffix);
+    static String GetFormatName() { return String( "Tiff"); }
+    static String GetFormatDescription() { return String("Tagged Image File Format"); }
 
   protected:
 
diff --git a/modules/io/src/mol/entity_io_crd_handler.cc b/modules/io/src/mol/entity_io_crd_handler.cc
index d8fe1dcc2..194febcf7 100644
--- a/modules/io/src/mol/entity_io_crd_handler.cc
+++ b/modules/io/src/mol/entity_io_crd_handler.cc
@@ -43,6 +43,9 @@ namespace ost { namespace io {
 
 using boost::format;
 
+String FORMAT_NAME_STRING;
+String FORMAT_DESCRIPTION_STRING;
+
 CRDReader::CRDReader(const boost::filesystem::path& loc):
   sequential_atom_list_(),
   curr_chain_(),
diff --git a/modules/io/src/mol/entity_io_crd_handler.hh b/modules/io/src/mol/entity_io_crd_handler.hh
index 73dc9d16e..72984150e 100644
--- a/modules/io/src/mol/entity_io_crd_handler.hh
+++ b/modules/io/src/mol/entity_io_crd_handler.hh
@@ -39,6 +39,7 @@ public:
   void Import(mol::EntityHandle& ent);
 
   std::vector<mol::AtomHandle> GetSequentialAtoms() const;
+
 private:
 
   void ParseAndAddAtom(const String& line, mol::EntityHandle& h);
@@ -69,6 +70,9 @@ public:
   static bool ProvidesExport(const boost::filesystem::path& loc, 
                              const String& format="auto");
   virtual bool RequiresBuilder() const;
+
+  static String GetFormatName() { return String("Crd"); }
+  static String GetFormatDescription() { return String("CARD format file used by the Charmm software package"); }
 };
 
 
diff --git a/modules/io/src/mol/entity_io_handler.hh b/modules/io/src/mol/entity_io_handler.hh
index 91b0fbdf8..8885a1d91 100644
--- a/modules/io/src/mol/entity_io_handler.hh
+++ b/modules/io/src/mol/entity_io_handler.hh
@@ -61,6 +61,8 @@ public:
   virtual bool ProvidesImport(const boost::filesystem::path& loc, const String& type) const = 0;
   virtual bool ProvidesExport(const boost::filesystem::path& loc, const String& type) const = 0;
   virtual EntityIOHandlerP Create() const = 0;
+  virtual String GetFormatName() const =0;
+  virtual String GetFormatDescription() const =0;
 };
 
 typedef boost::shared_ptr<EntityIOHandlerFactoryBase> EntityIOHandlerFactoryBaseP;
@@ -76,6 +78,14 @@ class EntityIOHandlerFactory: public EntityIOHandlerFactoryBase
     return HANDLER::ProvidesExport(loc,type);
   }
 
+  virtual String GetFormatName() const {
+     return HANDLER::GetFormatName();
+  }
+
+  virtual String GetFormatDescription() const {
+     return HANDLER::GetFormatDescription();
+  }
+
   virtual EntityIOHandlerP Create() const {
     return EntityIOHandlerP(new HANDLER);
   }
diff --git a/modules/io/src/mol/entity_io_pdb_handler.hh b/modules/io/src/mol/entity_io_pdb_handler.hh
index 19f9fc3cf..64529c22e 100644
--- a/modules/io/src/mol/entity_io_pdb_handler.hh
+++ b/modules/io/src/mol/entity_io_pdb_handler.hh
@@ -46,6 +46,9 @@ public:
   static bool ProvidesExport(const boost::filesystem::path& loc, 
                              const String& format="auto");
   virtual bool RequiresBuilder() const;
+
+  static String GetFormatName() { return String("Pdb"); }
+  static String GetFormatDescription() { return String("Protein Data Bank file format"); }
 };
 
 
diff --git a/modules/io/src/mol/entity_io_sdf_handler.hh b/modules/io/src/mol/entity_io_sdf_handler.hh
index aaa75a802..1baa629d4 100644
--- a/modules/io/src/mol/entity_io_sdf_handler.hh
+++ b/modules/io/src/mol/entity_io_sdf_handler.hh
@@ -43,6 +43,9 @@ public:
                              
   virtual bool RequiresBuilder() const;
 
+  static String GetFormatName() { return String("Sdf"); }
+  static String GetFormatDescription() { return String("Structure-data format from Molecular Design Limited"); }
+
 private:
   void ClearState();
 
diff --git a/modules/io/src/mol/surface_io_handler.hh b/modules/io/src/mol/surface_io_handler.hh
index 671ebde5a..aeb84d537 100644
--- a/modules/io/src/mol/surface_io_handler.hh
+++ b/modules/io/src/mol/surface_io_handler.hh
@@ -41,6 +41,8 @@ public:
   virtual bool ProvidesImport(const boost::filesystem::path& loc, const String& type) const = 0;
   virtual bool ProvidesExport(const boost::filesystem::path& loc, const String& type) const = 0;
   virtual SurfaceIOHandlerPtr Create() const = 0;
+  virtual String GetFormatName() const =0;
+  virtual String GetFormatDescription() const =0;
 };
 
 typedef boost::shared_ptr<SurfaceIOHandlerFactoryBase> SurfaceIOHandlerFactoryBasePtr;
@@ -59,6 +61,15 @@ class SurfaceIOHandlerFactory: public SurfaceIOHandlerFactoryBase
   virtual SurfaceIOHandlerPtr Create() const {
     return SurfaceIOHandlerPtr(new HANDLER);
   }
+
+  virtual String GetFormatName() const {
+     return HANDLER::GetFormatName();
+  }
+
+  virtual String GetFormatDescription() const {
+     return HANDLER::GetFormatDescription();
+  }
+
 };
 
 
diff --git a/modules/io/src/mol/surface_io_msms_handler.hh b/modules/io/src/mol/surface_io_msms_handler.hh
index 9b7149ee4..4dc0bb456 100644
--- a/modules/io/src/mol/surface_io_msms_handler.hh
+++ b/modules/io/src/mol/surface_io_msms_handler.hh
@@ -34,6 +34,8 @@ class DLLEXPORT_OST_IO SurfaceIOMSMSHandler: public SurfaceIOHandler
                              const String& format="auto");
   static bool ProvidesExport(const boost::filesystem::path& loc, 
                              const String& format="auto");
+  static String GetFormatName() { return String("Msms"); }
+  static String GetFormatDescription() { return String("Format used by the MSMS program"); }
 };
 
 typedef SurfaceIOHandlerFactory<SurfaceIOMSMSHandler> SurfaceIOMSMSHandlerFactory;
diff --git a/modules/io/src/seq/clustal_io_handler.hh b/modules/io/src/seq/clustal_io_handler.hh
index 50837ac48..9a41cb199 100644
--- a/modules/io/src/seq/clustal_io_handler.hh
+++ b/modules/io/src/seq/clustal_io_handler.hh
@@ -44,6 +44,9 @@ public:
                              const String& format="auto");
   static bool ProvidesExport(const boost::filesystem::path& loc, 
                              const String& format="auto");
+  static String GetFormatName() { return String("Clustal"); }
+  static String GetFormatDescription() { return String("Format used by the ClustalW2 software package"); }
+
 };
 
 typedef SequenceIOHandlerFactory<ClustalIOHandler> ClustalIOHandlerFactory; 
diff --git a/modules/io/src/seq/fasta_io_handler.hh b/modules/io/src/seq/fasta_io_handler.hh
index 98817c0a8..129ac4ea4 100644
--- a/modules/io/src/seq/fasta_io_handler.hh
+++ b/modules/io/src/seq/fasta_io_handler.hh
@@ -44,6 +44,9 @@ public:
                              const String& format="auto");
   static bool ProvidesExport(const boost::filesystem::path& loc, 
                              const String& format="auto");
+  static String GetFormatName() { return String("Fasta"); }
+  static String GetFormatDescription() { return String("Sequence format originally used by the Fasta suite of programs"); }
+
 private:                             
 };
 
diff --git a/modules/io/src/seq/promod_io_handler.hh b/modules/io/src/seq/promod_io_handler.hh
index 351555788..f052c6641 100644
--- a/modules/io/src/seq/promod_io_handler.hh
+++ b/modules/io/src/seq/promod_io_handler.hh
@@ -45,6 +45,9 @@ public:
                              const String& format="auto");
   static bool ProvidesExport(const boost::filesystem::path& loc, 
                              const String& format="auto");
+
+  static String GetFormatName() { return String("Fasta"); }
+  static String GetFormatDescription() { return String("Format used by the SwissModel modeling server"); }
 };
 
 typedef SequenceIOHandlerFactory<PromodIOHandler> PromodIOHandlerFactory; 
diff --git a/modules/io/src/seq/sequence_io_handler.hh b/modules/io/src/seq/sequence_io_handler.hh
index f8b5ac55a..84249c4fc 100644
--- a/modules/io/src/seq/sequence_io_handler.hh
+++ b/modules/io/src/seq/sequence_io_handler.hh
@@ -59,6 +59,8 @@ public:
   virtual bool ProvidesExport(const boost::filesystem::path& loc, 
                               const String& type) const = 0;
   virtual SequenceIOHandlerPtr Create() const = 0;
+  virtual String GetFormatName() const =0;
+  virtual String GetFormatDescription() const =0;
 };
 
 typedef boost::shared_ptr<SequenceIOHandlerFactoryBase> SequenceIOHandlerFactoryBasePtr;
@@ -78,6 +80,15 @@ class SequenceIOHandlerFactory: public SequenceIOHandlerFactoryBase {
   virtual SequenceIOHandlerPtr Create() const {
     return SequenceIOHandlerPtr(new HANDLER);
   }
+
+  virtual String GetFormatName() const {
+     return HANDLER::GetFormatName();
+  }
+
+  virtual String GetFormatDescription() const {
+     return HANDLER::GetFormatDescription();
+  }
+
 };
 
 
-- 
GitLab