1 /***************************************************************************
2 * Copyright (C) 2006 by Michael Andreen *
3 * andreen@student.chalmers.se *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) any later version. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA *
19 ***************************************************************************/
30 * Basic implementation of a model. All sort actions are considered equal.
37 * All actions return 1 in this model.
41 virtual double score(const SortAction& sa, const GeneOrder& go);
46 virtual const char* name();
50 * A model that favors reversals.
52 class Whirl : public ModelImpl {
55 * Returns a higher score for reversals and a lower score
56 * for all other actions.
60 double score(const SortAction& sa, const GeneOrder& go);
69 * A model that favors symmetric reversal, resulting in an X-like
70 * picture in a dot plot.
72 class X : public ModelImpl {
75 * Returns a higher score for reversals around the center
79 double score(const SortAction& sa, const GeneOrder& go);
88 * A model that favors short reversals, resulting in a zipper-like
89 * picture in a dot plot
91 class Zipper : public ModelImpl {
94 * Returns higher score for shorter reversals.
98 double score(const SortAction& sa, const GeneOrder& go);
107 * A model that favors single gene transpositions, resulting in a
108 * very scattered dot plot.
110 class Cloud : public ModelImpl {
113 * \todo has to be implemented
116 double score(const SortAction& sa, const GeneOrder& go);
125 * A model similar to X, but a wider X in the dot plot.
127 class FatX : public ModelImpl {
130 * \todo has to be implemented
133 double score(const SortAction& sa, const GeneOrder& go);