Model model(0);
bool detectModel = true;
bool onlyIdentify = false;
+ bool printPerm = false;
//Parse command line arguments
int opt;
- while ((opt = getopt(argc, argv, "im:n:h")) != -1) {
+ while ((opt = getopt(argc, argv, "im:n:hp")) != -1) {
switch (opt) {
case 'm':
model = Model::modelFactory(optarg);
case 'i':
onlyIdentify = true;
break;
+ case 'p':
+ printPerm = true;
+ break;
case 'h':
cout << "Usage: " << argv[0] << " [OPTION] [FILE]" << endl
<< endl << " -m <model> Specifies which model to use for sorting: Whirl, X, Zipper, FatX or Cloud "
<< endl << " -n <ann> Specifies which artificial neural network to use for identification. '" << ann << "' is used by default"
+ << endl << " -i Only identify the model, don't try to sort it"
+ << endl << " -p Print the resulting permutation at each sorting step"
<< endl << " -h Prints this help message"
<< endl << endl
<< "With no FILE, or if FILE is '-', stdin will be used"
//Print the result
double score = 0;
+
+ GeneOrder temp(go);
for (GeneSorter::ActionList::iterator sa = al.begin(); sa != al.end(); ++sa){
- cout << "Action: " << sa->toString() << " model score: " << model.score(*sa,go) << endl;
- score += model.score(*sa,go);
+ cout << "Action: " << sa->toString() << " model score: " << model.score(*sa,temp) << endl;
+ (*sa)(temp);
+ score += model.score(*sa,temp);
+
+ if (printPerm){
+ copy(temp.begin(), temp.end(), ostream_iterator<int>(cout, " "));
+ cout << endl;
+ }
}
cout << "Avg score: " << score / al.size() << endl;