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();
51 * A model that favors symmetric reversal, resulting in an X-like
52 * picture in a dot plot.
54 class X : public ModelImpl {
57 * Returns a higher score for reversals around the center
61 double score(const SortAction& sa, const GeneOrder& go);
70 * A model that favors short reversals, resulting in a zipper-like
71 * picture in a dot plot
73 class Zipper : public ModelImpl {
76 * Returns higher score for shorter reversals.
80 double score(const SortAction& sa, const GeneOrder& go);
89 * A model that favors single gene transpositions, resulting in a
90 * very scattered dot plot.
92 class Cloud : public ModelImpl {
95 * \todo has to be implemented
98 double score(const SortAction& sa, const GeneOrder& go);
107 * A model similar to X, but a wider X in the dot plot.
109 class FatX : public ModelImpl {
112 * \todo has to be implemented
115 double score(const SortAction& sa, const GeneOrder& go);