]> ruin.nu Git - germs.git/blobdiff - src/modelidentifier.h
initial commit of the modelidentifier files
[germs.git] / src / modelidentifier.h
index bbf30377ad7eef88c243cb92dd6454d5b834dcac..1ed4809ff72319836c798cbdfd14c1c231183c86 100644 (file)
 #include "geneorder.h"
 
 #include <map>
+#include <string>
+#include <stdexcept>
 
+struct fann;
 
 /**
  * Identifies the model this gene order belongs to
@@ -34,13 +37,30 @@ class ModelIdentifier{
        public:
                enum Model{Whirl,X,FatX,Zipper,Cloud};
 
+               /**
+                * Creates a new identifier given an artificial neural network
+                *
+                * \param ann filename, including path, to the neural network
+                *
+                * \throws std::invalid_argument exception if the ann could not be
+                * opened
+                */
+               ModelIdentifier(std::string ann);
+
                /**
                 * Identifies the model for a given gene order.
-                * \returns a map with the model as key and the score between 0 and 1
+                *
+                * \returns a map with the model as key and the score between -1 and 1
                 */
                std::map<Model,double> identify(const GeneOrder& go);
 
-               virtual ~ModelIdentifier(){};
+               ~ModelIdentifier();
+       private:
+               fann* _ann;
+
+               //disable for the moment
+               void operator=(const ModelIdentifier&){}
+
 };
 
 #endif