1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> |
---|
2 | <HTML> |
---|
3 | <HEAD> |
---|
4 | <TITLE>dolmove</TITLE> |
---|
5 | <META NAME="description" CONTENT="dolmove"> |
---|
6 | <META NAME="keywords" CONTENT="dolmove"> |
---|
7 | <META NAME="resource-type" CONTENT="document"> |
---|
8 | <META NAME="distribution" CONTENT="global"> |
---|
9 | <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> |
---|
10 | </HEAD> |
---|
11 | <BODY BGCOLOR="#ccffff"> |
---|
12 | <DIV ALIGN=RIGHT> |
---|
13 | version 3.6 |
---|
14 | </DIV> |
---|
15 | <P> |
---|
16 | <DIV ALIGN=CENTER> |
---|
17 | <H1>DOLMOVE -- Interactive Dollo and Polymorphism Parsimony</H1> |
---|
18 | </DIV> |
---|
19 | </PRE> |
---|
20 | <P> |
---|
21 | © Copyright 1986-2002 by the University of |
---|
22 | Washington. Written by Joseph Felsenstein. Permission is granted to copy |
---|
23 | this document provided that no fee is charged for it and that this copyright |
---|
24 | notice is not removed. |
---|
25 | <P> |
---|
26 | DOLMOVE is an interactive parsimony program which uses the Dollo and |
---|
27 | Polymorphism parsimony criteria. It is inspired on Wayne Maddison and |
---|
28 | David Maddison's marvellous program MacClade, which is written for Apple |
---|
29 | MacIntosh computers. DOLMOVE reads in a data set which is prepared in almost |
---|
30 | the same format as one for the Dollo and polymorhism parsimony program |
---|
31 | DOLLOP. It allows the user to choose an initial tree, and displays this tree |
---|
32 | on the screen. The user can look at different characters and the way their |
---|
33 | states are distributed on that tree, given the most parsimonious reconstruction |
---|
34 | of state changes for that particular tree. The user then can specify how the |
---|
35 | tree is to be rearraranged, rerooted or written out to a file. By looking at |
---|
36 | different rearrangements of the tree the user can manually search for the most |
---|
37 | parsimonious tree, and can get a feel for how different characters are affected |
---|
38 | by changes in the tree topology. |
---|
39 | <P> |
---|
40 | This program is compatible with fewer computer systems than the other |
---|
41 | programs in PHYLIP. It can be adapted to PCDOS systems or to |
---|
42 | any system whose screen or terminals emulate DEC VT100 |
---|
43 | terminals (such as Telnet programs for logging in to remote computers over a |
---|
44 | TCP/IP network, |
---|
45 | VT100-compatible windows in the X windowing system, and any |
---|
46 | terminal compatible with ANSI standard terminals). |
---|
47 | For any other screen types, there is a generic option which does |
---|
48 | not make use of screen graphics characters to display the character |
---|
49 | states. This will be less effective, as the states will be less |
---|
50 | easy to see when displayed. |
---|
51 | <P> |
---|
52 | The input data file is set up almost identically to the data files for |
---|
53 | DOLLOP. |
---|
54 | <P> |
---|
55 | The user interaction starts with the program presenting a menu. The |
---|
56 | menu looks like this: |
---|
57 | <P> |
---|
58 | <TABLE><TR><TD BGCOLOR=white> |
---|
59 | <PRE> |
---|
60 | |
---|
61 | Interactive Dollo or polymorphism parsimony, version 3.6a3 |
---|
62 | |
---|
63 | Settings for this run: |
---|
64 | P Parsimony method? Dollo |
---|
65 | A Use ancestral states? No |
---|
66 | F Use factors information? No |
---|
67 | W Sites weighted? No |
---|
68 | T Use Threshold parsimony? No, use ordinary parsimony |
---|
69 | A Use ancestral states in input file? No |
---|
70 | U Initial tree (arbitrary, user, specify)? Arbitrary |
---|
71 | 0 Graphics type (IBM PC, ANSI, none)? (none) |
---|
72 | L Number of lines on screen? 24 |
---|
73 | S Width of terminal screen? 80 |
---|
74 | |
---|
75 | |
---|
76 | Are these settings correct? (type Y or the letter for one to change) |
---|
77 | </PRE> |
---|
78 | </TD></TR></TABLE> |
---|
79 | <P> |
---|
80 | The P (Parsimony Method) option is the one that toggles between polymorphism |
---|
81 | parsimony and Dollo parsimony. The program defaults to Dollo parsimony. |
---|
82 | <P> |
---|
83 | The T (Threshold), F (Factors), A (Ancestors), and 0 (Graphics type) options |
---|
84 | are the usual |
---|
85 | ones and are described in the main documentation page and in the |
---|
86 | Discrete Characters Program documentation page. |
---|
87 | (<B>Note: at present DOLMOVE actully |
---|
88 | does not use the A (Ancestral states) information</B>). The F (Factors) |
---|
89 | option is used to inform the program which |
---|
90 | groups of characters are to be counted together in computing the number of |
---|
91 | characters compatible with the tree. Thus if three binary characters are all |
---|
92 | factors of the same multistate character, the multistate character will |
---|
93 | be counted as compatible with the tree only if all three factors are compatible |
---|
94 | with it. |
---|
95 | <P> |
---|
96 | The L option allows |
---|
97 | the program to take advantage of larger screens if available. The X (Mixed |
---|
98 | Methods option is not available in DOLMOVE. The |
---|
99 | U (initial tree) option allows the user to choose whether |
---|
100 | the initial tree is to be arbitrary, interactively specified by the user, or |
---|
101 | read from a tree file. Typing U causes the program to change among the |
---|
102 | three possibilities in turn. I |
---|
103 | would recommend that for a first run, you allow the tree to be set up |
---|
104 | arbitrarily (the default), as the "specify" choice is difficult |
---|
105 | to use and the "user tree" choice requires that you have available a tree file |
---|
106 | with the tree topology of the initial tree. |
---|
107 | Its default name is <TT>intree</TT>. The program will ask you for its name if |
---|
108 | it looks for the input tree file and does not find one of this name. |
---|
109 | If you wish to set up some |
---|
110 | particular tree you can also do that by the rearrangement commands specified |
---|
111 | below. The T (threshold) option allows a continuum of methods between |
---|
112 | parsimony and compatibility. Thresholds less than or equal to 0 do not |
---|
113 | have any |
---|
114 | meaning and should not be used: they will result in a tree dependent only on |
---|
115 | the input order of species and not at all on the data! |
---|
116 | Note that the usual W (Weights) option is not available in MOVE. We |
---|
117 | hope to add it soon. |
---|
118 | <P> |
---|
119 | After the initial menu is displayed and the choices are made, |
---|
120 | the program then sets up an initial tree and displays it. Below it will be a |
---|
121 | one-line menu of possible commands, which looks like this: |
---|
122 | <P> |
---|
123 | <PRE> |
---|
124 | NEXT? (Options: R # + - S . T U W O F C H ? X Q) (H or ? for Help) |
---|
125 | </PRE> |
---|
126 | <P> |
---|
127 | If you type H or ? you will get a single screen showing a description of each |
---|
128 | of these commands in a few words. Here are slightly more detailed |
---|
129 | descriptions: |
---|
130 | <P> |
---|
131 | <DL> |
---|
132 | <DT>R</DT> <DD>("Rearrange"). This command asks for the number of a node which is to be |
---|
133 | removed from the tree. It and everything to the right of it on the tree is to |
---|
134 | be removed (by breaking the branch immediately below it). The command also |
---|
135 | asks for the number of a node below which that group is to be inserted. If an |
---|
136 | impossible number is given, the program refuses to carry out the rearrangement |
---|
137 | and asks for a new command. The rearranged tree is displayed: it will often |
---|
138 | have a different number of steps than the original. If you wish to undo a |
---|
139 | rearrangement, use the Undo command, for which see below.</DD> |
---|
140 | <P> |
---|
141 | <DT>#</DT> <DD>This command, and the +, - and S commands described below, determine |
---|
142 | which character has its states displayed on the branches of |
---|
143 | the trees. The initial tree displayed by the program does not show |
---|
144 | states of sites. When # is typed, the program does not ask the user which |
---|
145 | character is to be shown but automatically shows the states of the next |
---|
146 | binary character that is not compatible with the tree (the next character that |
---|
147 | does not |
---|
148 | perfectly fit the current tree). The search for this character "wraps around" |
---|
149 | so that if it reaches the last character without finding one that is not |
---|
150 | compatible with the tree, the search continues at the first character; if no |
---|
151 | incompatible character is found the current character is shown, and if no |
---|
152 | current character is shown then the first character is shown. If the last |
---|
153 | character has been reached, using + again causes the first |
---|
154 | character to be shown. The display takes the form of |
---|
155 | different symbols or textures on the branches of the tree. The state of each |
---|
156 | branch is actually the state of the node above it. A key of the symbols or |
---|
157 | shadings used for states 0, 1 and ? are shown next to the tree. State ? means |
---|
158 | that either state 0 or state 1 could exist at that point on the tree, and that |
---|
159 | the user may want to consider the different possibilities, which are usually |
---|
160 | apparent by inspection. </DD> |
---|
161 | <DT>+</DT> <DD>This command is the same as # except that it goes forward one character, |
---|
162 | showing the states of the next character. If no character has been shown, |
---|
163 | using + will |
---|
164 | cause the first character to be shown. Once the last character has been |
---|
165 | reached, using + again will show the first character.</DD> |
---|
166 | <P> |
---|
167 | <DT>-</DT> <DD>This command is the same as + except that it goes backwards, showing the |
---|
168 | states of the previous character. If no character has been shown, using - will |
---|
169 | cause the last character to be shown. Once character number 1 has been |
---|
170 | reached, using - again will show the last character.</DD> |
---|
171 | <P> |
---|
172 | <DT>S</DT> <DD>("Show"). This command is the same as + and - except that it causes |
---|
173 | the program to ask you for the number of a character. That character is |
---|
174 | the one whose states will be displayed. If you give the character number as 0, |
---|
175 | the program will go back to not showing the states of the characters.</DD> |
---|
176 | <P> |
---|
177 | <DT>. (dot)</DT> <DD>This command simply causes the current tree to be redisplayed. It is of |
---|
178 | use when the tree has partly disappeared off of the top of the screen owing to |
---|
179 | too many responses to commands being printed out at the bottom of the screen. </DD> |
---|
180 | <P> |
---|
181 | <DT>T</DT> <DD>("Try rearrangements"). This command asks for the name of a node. The |
---|
182 | part of the tree at and above that node is removed from the tree. The program |
---|
183 | tries to re-insert it in each possible location on the tree (this may take some |
---|
184 | time, and the program reminds you to wait). Then it prints out a summary. For |
---|
185 | each possible location the program prints out the number of the node to the |
---|
186 | right of the |
---|
187 | place of insertion and the number of steps required in each case. These are |
---|
188 | divided into those that are better, tied, or worse than the current tree. Once |
---|
189 | this summary is printed out, the group that was removed is inserted into its |
---|
190 | original position. It is up to you to use the R command to actually carry out |
---|
191 | any the arrangements that have been tried. </DD> |
---|
192 | <P> |
---|
193 | <DT>U</DT> <DD>("Undo"). This command reverses the effect of the most recent |
---|
194 | rearrangement, outgroup re-rooting, or flipping of branches. It returns to the |
---|
195 | previous tree topology. It will be of great use when rearranging the tree and |
---|
196 | when a rearrangement proves worse than the preceding one -- it permits you to |
---|
197 | abandon the new one and return to the previous one without remembering its |
---|
198 | topology in detail.</DD> |
---|
199 | <P> |
---|
200 | <DT>W</DT> <DD>("Write"). This command writes out the current tree onto a tree output |
---|
201 | file. If the file already has been written to by this run of DOLMOVE, it will |
---|
202 | ask you whether you want to replace the contents of the file, add the tree to |
---|
203 | the end of the file, or not write out the tree to the file. The tree |
---|
204 | is written in the standard format used by PHYLIP (a subset of the |
---|
205 | Newick standard). It is in the proper format to serve as the |
---|
206 | User-Defined Tree for setting up the initial tree in a subsequent run of the |
---|
207 | program.</DD> |
---|
208 | <P> |
---|
209 | <DT>O</DT> <DD>("Outgroup"). This asks for the number of a node which is to be the |
---|
210 | outgroup. The tree will be redisplayed with that node |
---|
211 | as the left descendant of the bottom fork. The number of |
---|
212 | steps required on the tree may change on re-rooting. Note that it is possible |
---|
213 | to use this to make a multi-species group the outgroup (i.e., you can give the |
---|
214 | number of an interior node of the tree as the outgroup, and the program will |
---|
215 | re-root the tree properly with that on the left of the bottom fork).</DD> |
---|
216 | <P> |
---|
217 | <DT>F</DT> <DD>("Flip"). This asks for a node number and then flips the two branches at |
---|
218 | that, so that the left-right order of branches at that node is |
---|
219 | changed. This does not actually change the tree topology (or the number of |
---|
220 | steps on that tree) but it does change the appearance of the tree.</DD> |
---|
221 | <P> |
---|
222 | <DT>C</DT> <DD>("Clade"). When the data consist of more than 12 species (or more than |
---|
223 | half the number of lines on the screen if this is not 24), it may be |
---|
224 | difficult to display the tree on one screen. In that case the tree |
---|
225 | will be squeezed down to |
---|
226 | one line per species. This is too small to see all the interior states of the |
---|
227 | tree. The C command instructs the program to print out only that part of the |
---|
228 | tree (the "clade") from a certain node on up. The program will prompt you for |
---|
229 | the number of this node. Remember that thereafter you are not looking at the |
---|
230 | whole tree. To go back to looking at the whole tree give the C command again |
---|
231 | and enter "0" for the node number when asked. Most users will not want to use |
---|
232 | this option unless forced to.</DD> |
---|
233 | <P> |
---|
234 | <DT>H</DT> <DD>("Help"). Prints a one-screen summary of what the commands do, a few |
---|
235 | words for each command.</DD> |
---|
236 | <P> |
---|
237 | <DT>?</DT> <DD>("huh?"). A synonym for H. Same as Help command.</DD> |
---|
238 | <P> |
---|
239 | <DT>X</DT> <DD>("Exit"). Exit from program. If the current tree has not yet been saved |
---|
240 | into a file, the program will ask you whether it should be saved.</DD> |
---|
241 | <P> |
---|
242 | <DT>Q</DT> <DD>("Quit"). A synonym for X. Same as the eXit command.</DD> |
---|
243 | </DL> |
---|
244 | <P> |
---|
245 | <H2>OUTPUT</H2> |
---|
246 | <P> |
---|
247 | If the A option is used, then |
---|
248 | the program will infer, for any character whose ancestral state is unknown |
---|
249 | ("?") whether the ancestral state 0 or 1 will give the fewest changes |
---|
250 | (according to the criterion in use). If these are tied, then it may not be |
---|
251 | possible for the program to infer the state in the internal nodes, and many of |
---|
252 | these will be shown as "?". If the A option is not used, then the program will |
---|
253 | assume 0 as the ancestral state. |
---|
254 | <P> |
---|
255 | When reconstructing the placement of forward |
---|
256 | changes and reversions under the Dollo method, keep in mind that each |
---|
257 | polymorphic state in the input data will require one "last minute" |
---|
258 | reversion. This is included in the counts. Thus if we have both states 0 and |
---|
259 | 1 at a tip of the tree the program will assume that the lineage had state 1 up |
---|
260 | to the last minute, and then state 0 arose in that population by reversion, |
---|
261 | without loss of state 1. |
---|
262 | <P> |
---|
263 | When DOLMOVE calculates the number of characters |
---|
264 | compatible with the tree, it will take the F option into |
---|
265 | account and count the multistate characters as units, counting a character |
---|
266 | as compatible with the tree only when all of the binary characters |
---|
267 | corresponding to it are compatible with the tree. |
---|
268 | <P> |
---|
269 | <H2>ADAPTING THE PROGRAM TO YOUR COMPUTER AND TO YOUR TERMINAL</H2> |
---|
270 | <P> |
---|
271 | As we have seen, the initial menu of the program allows you to choose |
---|
272 | among three screen types (PC, ANSI, and none). |
---|
273 | If you want to |
---|
274 | avoid having to make this choice every time, you can change |
---|
275 | some of the |
---|
276 | constants in the file <TT>phylip.h</TT> to have the terminal type initialize |
---|
277 | itself in the proper way, and recompile. |
---|
278 | The constants that need attention are ANSICRT and IBMCRT. |
---|
279 | Currently these are both set to "false" on Macintosh and on Unix/Linux |
---|
280 | systems, and IBMCRT is set to "true" on Windows systems. If your system |
---|
281 | has an ANSI compatible terminal, you might want to find the |
---|
282 | definition of ANSICRT in <TT>phylip.h</TT> and set it to "true", and |
---|
283 | IBMCRT to "false". |
---|
284 | <P> |
---|
285 | <H2>MORE ABOUT THE PARSIMONY CRITERION</H2> |
---|
286 | <P> |
---|
287 | DOLMOVE uses as its numerical criterion the Dollo and |
---|
288 | polymorphism parsimony methods. The program defaults to carrying out Dollo |
---|
289 | parsimony. |
---|
290 | <P> |
---|
291 | The Dollo parsimony method was |
---|
292 | first suggested in print in verbal form by Le Quesne (1974) and was |
---|
293 | first well-specified by Farris (1977). The method is named after Louis |
---|
294 | Dollo since he was one of the first to assert that in evolution it is |
---|
295 | harder to gain a complex feature than to lose it. The algorithm |
---|
296 | explains the presence of the state 1 by allowing up to one forward |
---|
297 | change 0-->1 and as many reversions 1-->0 as are necessary to explain |
---|
298 | the pattern of states seen. The program attempts to minimize the number |
---|
299 | of 1-->0 reversions necessary. |
---|
300 | <P> |
---|
301 | The assumptions of this method are in effect: |
---|
302 | <P> |
---|
303 | <OL> |
---|
304 | <LI>We know which state is the ancestral one (state 0). |
---|
305 | <LI>The characters are evolving independently. |
---|
306 | <LI>Different lineages evolve independently. |
---|
307 | <LI>The probability of a forward change (0-->1) is small over the |
---|
308 | evolutionary times involved. |
---|
309 | <LI>The probability of a reversion (1-->0) is also small, but |
---|
310 | still far larger than the probability of a forward change, so |
---|
311 | that many reversions are easier to envisage than even one |
---|
312 | extra forward change. |
---|
313 | <LI>Retention of polymorphism for both states (0 and 1) is highly |
---|
314 | improbable. |
---|
315 | <LI>The lengths of the segments of the true tree are not so |
---|
316 | unequal that two changes in a long segment are as probable as |
---|
317 | one in a short segment. |
---|
318 | </OL> |
---|
319 | <P> |
---|
320 | One problem can arise when using additive binary recoding to |
---|
321 | represent a multistate character as a series of two-state characters. Unlike |
---|
322 | the Camin-Sokal, Wagner, and Polymorphism methods, the Dollo |
---|
323 | method can reconstruct ancestral states which do not exist. An example |
---|
324 | is given in my 1979 paper. It will be necessary to check the output to |
---|
325 | make sure that this has not occurred. |
---|
326 | <P> |
---|
327 | The polymorphism parsimony method was first used by me, |
---|
328 | and the results published |
---|
329 | (without a clear |
---|
330 | specification of the method) by Inger (1967). The method was |
---|
331 | published by Farris (1978a) and by me (1979). The method |
---|
332 | assumes that we can explain the pattern of states by no more than one |
---|
333 | origination (0-->1) of state 1, followed by retention of polymorphism |
---|
334 | along as many segments of the tree as are necessary, followed by loss of |
---|
335 | state 0 or of state 1 where necessary. The program tries to minimize |
---|
336 | the total number of polymorphic characters, where each polymorphism is |
---|
337 | counted once for each segment of the tree in which it is retained. |
---|
338 | <P> |
---|
339 | The assumptions of the polymorphism parsimony method are in effect: |
---|
340 | <P> |
---|
341 | <OL> |
---|
342 | <LI>The ancestral state (state 0) is known in each character. |
---|
343 | <LI>The characters are evolving independently of each other. |
---|
344 | <LI>Different lineages are evolving independently. |
---|
345 | <LI>Forward change (0-->1) is highly improbable over the length of |
---|
346 | time involved in the evolution of the group. |
---|
347 | <LI>Retention of polymorphism is also improbable, but far more |
---|
348 | probable that forward change, so that we can more easily |
---|
349 | envisage much polymorhism than even one additional forward |
---|
350 | change. |
---|
351 | <LI>Once state 1 is reached, reoccurrence of state 0 is very |
---|
352 | improbable, much less probable than multiple retentions of |
---|
353 | polymorphism. |
---|
354 | <LI>The lengths of segments in the true tree are not so unequal |
---|
355 | that we can more easily envisage retention events occurring in |
---|
356 | both of two long segments than one retention in a short |
---|
357 | segment. |
---|
358 | </OL> |
---|
359 | <P> |
---|
360 | That these are the assumptions of parsimony methods has been documented |
---|
361 | in a series of papers of mine: (1973a, 1978b, 1979, 1981b, |
---|
362 | 1983b, 1988b). For an opposing view arguing that the parsimony methods |
---|
363 | make no substantive |
---|
364 | assumptions such as these, see the papers by Farris (1983) and Sober (1983a, |
---|
365 | 1983b), but also read the exchange between Felsenstein and Sober (1986). |
---|
366 | <P> |
---|
367 | Below is a test data set, but we cannot show the |
---|
368 | output it generates because of the interactive nature of the program. |
---|
369 | <P> |
---|
370 | <HR> |
---|
371 | <P> |
---|
372 | <H3>TEST DATA SET</H3> |
---|
373 | <P> |
---|
374 | <TABLE><TR><TD BGCOLOR=white> |
---|
375 | <PRE> |
---|
376 | 5 6 |
---|
377 | Alpha 110110 |
---|
378 | Beta 110000 |
---|
379 | Gamma 100110 |
---|
380 | Delta 001001 |
---|
381 | Epsilon 001110 |
---|
382 | </PRE> |
---|
383 | </TD></TR></TABLE> |
---|
384 | </BODY> |
---|
385 | </HTML> |
---|