Bugfixes and updates older than May 2007
From TNT
Fixes/changes to the version of April, 2007 (May 2007):
- Issuing a condense command without having read data or trees crashed the program [Matt Yoder]
- Added the rfreqs command (see help rfreqs). This is intended as an experimental exploratory tool. It calculates a score (0–100) for the occurrence of groups from a "reference" tree among a set of "input" trees. If the group occurs identically (i.e. as monophyletic) in one of the trees, it is counted as 1; if the most similar group is non-monophyletic by virtue of excluding/including one (or very few taxa), it counts almost as one; if the most similar group differs in including/excluding many taxa, it counts almost as zero. Thus, a group which is often non-monophyletic in the input trees but only because of a single floating taxon, will get a score close to 100. The formula to measure the "similarity" S between two groups is S = B/(B+(AxWa)+(RxWr)), where B=number of taxa in both groups or in neither (whichever is smallest), A=number of taxa added to group, R=number of taxa removed from group (Wa and Wr are weight factors to make removal/addition more costly, set with the prunmaj command. If group adds/removes more than a certain proportion of taxa (default is 0.333) then S=0.
- Added the simgroup expression for scripts (see help + simgroup), which uses the same measure of "group similarity" as the rfreqs command
'Fixes/changes to the version of March, 2007 (April 2007):
- there were problems when applying the chkmoves command with some taxa deactivated (either the node numbers were obviously screwed up, or –if creating taxon groups- there were freezes).
- There were problems merging data files (the dmerge command got screwed up when adding the "!" option to the xread command, a few months ago). Also, when some character contained only missing entries, there were problems saving the data (the all-missing character was placed at the beginning of a block, with unspecified format). [Kurt Pickett]
- Under auto-weighted optimization, polytomies cannot be optimized (as "soft" or otherwise), but the program calculated SOME value (I don't even know what it was). Now, a check was added to make sure that if auto-weighted optimization is ON, the program refuses to soft-optimize polytomies. Also, in the Windows version, the option to optimize as "soft" was removed from the corresponding dialog.
- Windows versions only: there were problems with the behaviour of the dialog for weighting (Settings/ImpliedWeighting). It works ok now.
- Added the "noglobal" option to the sectsch command. With this, global TBR is never performed (not even at the end of the procedure). Note that, under xss, global must be set to 1 or more for the global TBR to take effect (after the specified number of cycles).
- Windows version only: resampling and analyzing with New Tech (from the menus), produced problems (crashes, bogus error messages). This is fixed. [Andres Parada]
- The iterrecs command sometimes had problems (e.g. crashes) when there were nested iterrecs commands for non-continuous characters. Hopefully fixed. [Santiago Catalano]
Fixes/changes to the version of January, 2007 (March 2007):
- Added a new command, prunmajor, which helps identifying taxa to prune to improve group frequencies (or frequency differences), used to calculate group supports. This command is likely to change soon, with addition of more options.
- A bug in the sprdiff command sometimes led to improper calculations when not using stratified calculations; this became obvious when displaying tree-diagrams of the moves, and the number of moves needed to resolve some node of the consensus was reported as a lower number than the actual number of individual moves reported. Fixed now.
- Added the '[' option to the sprdiff command. This tries to find the minimum SPR distance between two trees, but weighting moves. Longer moves are more costly. The weight of an individual move to N nodes away, is calculated as FxN/(N+K), where K is a constant of "strength" (as in implied weighting, with smaller values of K determining that all moves have a more similar cost, and K=0 that every move costs the same, regardless of distance), and F is a "normalizing factor", so that the largest possible move (T-3, where T=taxa) costs 1 (i.e., F=(T-3+K)/(T-3)). The distance N is calculated as the degree of the polytomy created by consensing the trees before and after the move, minus 2. The weighted SPR distance is probably a more accurate measure of tree similarity than the unweighted SPR distance.
- Added the "noviol(ations)" and "poly" options to the sprdiff command (see online help). The first determines that (single) moves placing a node as sister to its ancestor are not accepted (although combinations of moves may still violate time constraints: moving first to the sister of the ancestor, and then to the ancestor itself, is allowed). The second counts the number of moves necessary to resolve/collapse when source and/or target trees have polytomies (with a heuristic which is dependent on the ordering of the trees; if using this option for trees i, j, it is advisable to calculate both sprdiff i j and sprdiff j i, and use the smallest value).
- Performing tree-searches after calculating SPR-distances led to crashes or error messages [Leandro Jones]. This is fixed now.
- Linux/MacOSX versions only: it is now possible to record to file each of the commands given to the program, when inputting commands from the console. For this, set echo to "[" (use "]" to turn it off). Note that this doesn't echo commands from input files.
- Calculating distortion coefficients when trees had different sets of taxa sometimes produced impossible values. This is fixed now.
- The program uses now a buffering system for output that causes long output to be written out much faster. This was an issue only in the case of saving large data sets, or drawing tree-diagrams for very large trees.
- Mac OS X versions only: the most recent versions had changed the way in which the backspace key behaves. The behaviour of the backspace key is now, again, what Mac users expect of backspace keys.
Fixes/changes to the version of December, 2006 (January 2007):
- Parallel versions only: the slaves could not run recursive sectorial searches (the maximum level of recursion was determined at startup as always 0). The maximum level of recursion on slaves is now set as identical to that of the master. In addition, several potential problems with interrupting/spying recursive sectorial searches from slaves were fixed.
- Added a new command, chkmoves (see online help). This can be useful to quickly identify taxa that deresolve the strict consensus (or decrease group supports).
- Tree collapsing under either SPR or TBR, when using auto-weighted optiimization as optimality criterion, produced serious errors (either crashing or freezing program, or producing wrong collapsings). Fixed now.
- The just added option to show location of pruned taxa on the consensus produced errors when the list of taxa to exclude used some taxon groups (possibly excluding many more taxa than it had been actually requested). Fixed now.
Fixes/changes to the version of October, 2006 (December 2006):
- During searches under auto-weighted optimization tree-scores were occassionally grossly miscalculated, producing either that (a) some better trees were mist, or (b) many bad trees seemed to be within the error margin and then the score had to be checked exactly for too many trees (slowing down program). [ Marcos Mirande ]
- Added an option for showing location of pruned taxa on reduced consensus (either from the consensus dialog, in Windows version, or as an option of the nelsen command). This can be useful to summarize information for conflicting trees. I should have thought of this before. Sorry I didn't. Now it's there. As any new option, it may still have problems; double-check results and keep in mind it might freeze or crash the program.
- Windows version only: added the possibility to turn pre-viewing of trees on and off with a command (tplot[, and tplot], respectively).
- Windows versions only: improved the way in which the opendlg command defines subordination for controls.
- Added a new macro expression, numhits, which returns the number of hits to the best score that were done in the last execution of a mult or xmult command.
- Fixed some potential problems with outgroup identification when deactivating some specific blocks (blocks command).
- The hybrid command did not properly parse the '-' option (to mix without completing and swapping). Fixed now.
- Reading large matrices in blocks of data could create problems for the reporting of progress. Fixed now.
Fixes/changes to the version of August, 2006 (October 2006; this is now version 1.1):
- Not truly a bug, but perhaps unexpected: counting numbers of transformations between states (change or Optimize/CountSpecificChanges) included the steps in non-active characters. The steps in non-active characters are now never counted.
- Added the possibility to do the auto-weighted optimization method of Goloboff (1997. Cladistics 13:225-245), previously implemented only in the program SL. This weights character-state transformations according to their homoplasy on the trees; it is computationally very complex (between 10,000 and 100,000 times slower than analyses of nonadditive characters under equal weights), and can be used only for relatively small data sets (i.e. no more than 100-150 taxa) and with not many states per character (i.e. characters with more than 4 or 5 states may be very time consuming). This is turned ON with piwe+ (or from the menus). The options are set with the (new) command slfwt (or from menus). This required some months of programming, and is the reason for switching from version 1.0 to version 1.1. Also added a new option to the ratchet command, the tradrat option (the "traditional ratchet", where the perturbation phase simply swaps to completion, not saving equally optimal trees; under auto-weighted optimization, which produces very few trees, the modified ratchet implemented so far in TNT seems to produce inferior results; to run the tradrat option you should probably increase upfactor and downfactor). Given that this is so computationally demanding, it is possible to restrict the TBR rearrangements (with slfwt maxtbr, which restricts the possible rerootings of the clipped clade); note that there is no point in restricting possible re-insertion points of the clipped clade, since this can be evaluated efficiently; the problem with rerooting is that (implied) asymmetries in transformation costs require that most characters be re-optimized every time the tree is rerooted (as noted in Goloboff, 1997). Because of this, under auto-weighted optimization SPR is more efficient (i.e. it looks at more rearrangements per unit time) than TBR (therefore, turning off the skipspr option of the bbreak command --with bbreak : noskipspr;-- will usually produce better searches). When using this option, keep in mind that, since this is a recent addition, it may still produce crashes or freezes; be cautious and save results frequently. Note that even the optimization of a single tree can be costly, and it uses heuristic shortcuts; thus, the score reported after a search is completed may be slightly different from the score obtained by reoptimizing the trees found in a search, which doesn't indicate a bug but simply the heuristic nature of the optimization process (the likelihood of this actually happenning decreases when increasing exops, maxdist, setlim from the slfwt command).
- Windows only: when some tree-tags had been written to a target tree, and a tree-save file was open in compact mode (append or not), the program attempted to save the tree-tags to the compact tree-file (which is not a legal action). Now, tree-tags are saved only if the tree-file is open in parenthetical mode.
- Under the (default) skipspr mode of swapping, when requesting mult replications under SPR holding a single tree per replication, no actual rearrangements were done (i.e. the SPR phase was skipped, and followed by nothing!). This works as expected now.
- performing tree-fusing when more than 65535 trees were in memory crashed the program [ Henrik Nilsson ]. While it is still not possible to run more than 65535 trees, the program now issues an error message and continues execution. The same is true for other randomizations involving more than 65535 things.
- Parallel versions only: there were problems when transferring values of user variables from slaves, if either the source or destination variable was dimension-less (i.e. not an array). Arrays worked ok. This is fixed now.
Fixes/changes to the version of July, 2006:
- Changing format of data to DNA while reading matrices caused problems with missing entries if the initial format had been defined as either 16 or 32 states. [Martín Ramírez]
- In Nexus format, the gap symbol was always read as a new state, even when nogaps had been set.
- The nogaps option applied only to DNA data, not to proteins. Now it applies to both.
- The way in which user variables (with quotes), references to loop values (with #), and arguments (with %), are parsed has been changed, leading to a cleaner interpretation. For example, '01' did not concatenate the values for both variables 0 and 1, and #1%1 did not concatenate the value of the loop with the first argument. Concatenation is now produced properly. Note that this might conceivably produce problems in some scripts which worked ok for the old parsing style; I'd appreciate reports on errors produced by this change. [Martín Ramírez]
- Fixed some errors occuring when converting a tree-tag (with $ttag) for a node for which a tag had not been defined.
- Added expression numbits to the macros.
- When doing searches, the time used for packing data is now not counted (the times reported correspond to the actual search times, and do not vary depending on whether the data had been previously packed or not).
Fixes/changes to the version of June, 2006 (August 2006):
- Tree-tags were saved (with the save * option) only for internal nodes, and reading tree-tags in parenthetical notation was possible only for internal nodes. Terminals now can be done, both in and out.
- A bug introduced in the version of May, 2006: TBR swapping for data sets with continuous and sankoff characters stopped when there were still rearrangements that produced better trees. That is, successively repeating swapping often produced better trees every time. This did not occur under the safe option of bbreak, only under the (default) nosafe. This bug was NOT there in versions before May, 2006. Sorry 'bout that!!! This is solved now.
- Added a new command, travtree, useful for macros. This command allows to traverse trees in specific ways. See online help for details.
- The silent mode for tree-editing (the ] option of edit) often produced freezes or crashes, if the tree to be edited had not been just plotted. Fixed.
- If the first argument to a macro command was a number given in the form #loopname, this was not recognized and caused an error message (the expression #1 was properly recognized; only loop names didn't work). Fixed now.
- When sankoff characters had (due to internal recoding, because of equivalence with a Fitch character; added July 2005) differential weights, sectorial searches often produces length miscalculations. It is conceivable that other cases of differential weights also produced errors. This is fixed now.
- The comparison of groups absent in one tree but present in another (tcomp command, or Trees/Comparisons/CompareGroups), under temporary collapsing, mistakenly reported as "present in one but not the other" those groups which were present and unsupported in both trees. Fixed now.
Fixes changes to the version of May, 2006 (June 2006):
- The value of informativeness (isinfo expression) returned to macros could be wrong. This bug was introduced only in the last update, and it probably didn't affect things other than scripts making use of the isinfo expression.
- Now it's possible to run (almost) all commands from within resample or qnelsen, with the allow option. For example, you can further modify the character weights set by resample (keep in mind that resample "deactivates" characters by giving them zero-weight, which users aren't allowed to). Forbidden things continue being (1) resetting maxtrees (explicitly or implicitly, say, by reading tree files with many trees), and (2) turning macros on-off. This is intended for use in very specific scripts.
- Running CSS with user-defined search routines (added after March, 2006) often caused freezes (or possibly crashes). Hopefully fixed for good.
- In parallel versions, taxon and character group definitions were not transferred to slave tasks (tree group definitions are not supossed to be transferred).
- Added @T N and +T N to the tread command (see help tread;).
- The – option of minmax reported minima/maxima for all taxa, not just active ones.
- Added option to parse arguments as ('0') (where 0 is a user variable). This allows more flexibility in parsing arguments (an example is now included in file parsargs.run, included with the example scripts). In connection with this, it is now possible to pass up to 32 arguments when running a script (as opossed to the previous 10).
- Added iterrecs command (and the recsteps expression; see help iterrecs and help+recsteps).
- Three cosmetic changes: the blength command now doesn't add a new line if the tree is not being drawn (because of multiple tags), the macfloat command reports the number of digits only if report is on, and writing tags to a tree is reported only if report is on.
- Loops can now be named, with loop = loopname (see help loop for details).
- Undefining tree groups (with tgroup–) eliminated the trees from the group, but retained the group name. This is no longer so. Also, it is now possible to use a scope to specify a range of groups (although not the complete specification with – and +).
- Undefining groups of taxa, characters, or hosts (with hgroup–, agroup–, or chargroup–) crashed the program. This bug was introduced in november 2004 (when making it possible to have unlimited numbers of tree groups), but hadn't been noticed so far.
- Reading a tree (in parenthetical notation) without title caused crashes when automatic placement in groups of trees read was set off.
- Interrupting quick-consensus estimations, or resampling (qnelsen, resample) sometimes caused input to be improperly parsed when the commands to run had been read from a file (the input file continued being parsed, despite the interruption).
- Sectorial searches under implied weights, with the (default) xbuf option on, sometimes produced crashes or erroneous tree evaluations when the sector selected comprised only uninformative characters. This bug had been introduced in may 2005, when introducing the xbuf option to the sectsch command.
- Added the option to locally format user-variables when outputting them. This can be done only for named variables. Using '/' right after the opening single quotes, it is possible to specify format, as in the C function, printf: + determines a signed output, a number determines field width (if negative, flush it left), and a dot (.) followed by a number is the number of significant digits. If several specifiers are used at the same time, the first one must be the +, then the field width, then the number of significant digits.
- Command-driven versions only: when literal quotes and ASCII character conversion are ON, ASCII 0 (i.e. &0 within quote) is now interpreted as "erase and go to the beggning of the line", and ASCII 1 (i.e. &1) is interpreted as "backspace". These work on stderr only.
- The discoeff expression, when comparing multiple trees, reported only comparisons between the first tree of the first set specified, and all the trees in the second set. The trees other than the first one in the first set were never compared. When comparisons were specified only between two trees, they were ok.
Fixes/changes to the version of April, 2006 (May 2006):
- Added the possibility to optimize polytomies as "soft" (Maddison, 1989). This is the "!" option of commands length, fit, score, and cscore. Sankoff characters cannot be optimized on soft polytomies. It is possible to access character fits through macro expressions, simply adding the prefix "soft" to the expressions score, homo, fit, and length (please spare me any jokes about the unfortunate combination of "softhomo").
- Previous update (March, 2006) had an addition not included in the present list, which contained a minor bug. For continuous characters, it is now possible to plot on the tree branches the maximum increases and decreases among different possible reconstructions (when all reconstructions imply an increase along a branch, the "maximum decrease" is reported as the minimum increase –a positive number). A bug caused some increases to be improperly calculated. This is the > and < options of the blength command.
- A bug fix not reported in earlier versions: matrices with continuous characters mixed with alpha-numeric caused the "-" symbol in the alphanumeric matrix to be read as a gap instead of a missing entry. The "-" is now properly read as missing.
- RAS+TBR (nomulpars) for large matrices with 16-32 states is now much faster (10 to 1).
- Calculations of minimum steps for nonadditive characters faster for most data sets, and eliminates possible errors when there are many polymorphisms. Added xmin/noxmin option to the nstates command.
- Fixed some problems when mapping unnamed characters with characters names ON.
- Fixed some problems with randomizations using approximmate random sequences (rseed !).
- Changing the type of randomization (rseed ! or - ) after permuting data, and before de-permuting, caused data to be wrongly de-permuted. Now, the data are automatically de-permuted if type of randomization changed.
Fixes/changes to the version of March, 2006 (April 2006):
- A bug introduced in the version of Sept. 2005, when adding the automatic treatment of Fitch-like Sankoff characters as additive during searches: a Sankoff character which was equivalent to a Fitch one, but had been set as additive, could cause crashes during packing of the data for searches (and perhaps incorrect calculations).
- Selecting only some trees for calculation of a supertree may have caused the wrong selection to be used, in the Linux or Mac versions. This is fixed now.
- An addition useful for very big and difficult data sets, which required a good deal of programming, and I had been expecting to do it for a long time: recursive sectorial searches. This lets you define any search routine you want for the analysis of sectors in a search with sectsch. The search routine is specified within square brackets, as an option of sectsch. The search routine may include macro instructions, and instructions to use sectsch (possibly also with user-specified routines; if you want these to be identical to the previous level of recursion, use "…" as instructions; this will obviously require some means for deciding when to stop recursing, such as the number of taxa for the current sector, or the desired maximum level of recursion). Two macro expressions were added, for facilitating recursive sectorial searches: seclevel (the level of recursion of the current subproblem; 0 if called from outside sectsch) and grandscore (best score for complete tree, of the current execution). This option may still be somewhat unstable or cause problems, because it is a complex option.
Fixes/Changes to the version of February 2006 (March 2006):
- Both the SPR and the TBR swapper running under tree-constraints (i.e. constraints for monophyly) could (rarely, depending on the constraint topologies) miss some rearrangements. This is fixed now.
- As a consequence of the previous bug, the calculation of SPR-distances between trees sometimes could report that the trees differed in fewer rearrangements than they actually did.
- Setting gaps to be read as missing (nstates nogaps;), although it produced the proper setting, produced an error message.
- There was a bug in the analysis of sectorial searches with randomly chosen sectors and combined strategies (beyond the gocomb value), that produced improper randomizations of the sectors to chose for analysis. Therefore, the results of using combined strategies were sometimes very poor. This is fixed now.
Fixes/Changes to the version of December 2005 (February 2006)
- Using large numbers of initial replications for new tech searches often crashed the program. Fixed now [Tobias Malm]
- In exceptionaly rare cases (and only for data sets with 100 to 200 taxa), the TBR swapper triggered an interal error message regarding clusters. The TBR swapper now has a wider margin of tolerance, so that this error isn't triggered anymore. [Rafael Miranda]
- A small change that may make the life of some people easier: when doing random adition sequences plus TBR (Analyze/TraditionalSearch, or mult command) the program issues a warning (instead of an error message) if the number of replications times the number of trees to save per replication exceeds available treespace. The search proceeds, stopping when (and if) the buffer is actually filled.
- The macro expressions length and fit no longer re-pack data if this isn't needed: if the tree to optimize is binary and complete, and the data are already packed for searches, then the optimizer for searches is used now. This may save a little time in some macro routines.
- The lists of taxa included/excluded from trees (incltax, Trees/Describe), in optional table formats, did not use taxon names even if requested to do so. Now they do.
Fixes changes to the version of November 2005 (December 2005):
- The contmins and contmaxs expressions produced an error message if a tree-number (which is unneeded, but optional) was specified [Farhat Habib]
- For sectorial searches, it is now possible to specify exactly the number of selections for each size, using the "selfactor = N1 N2 N3" option.
- Parallel versions only: If a job was reset with ptnt again, and the slaves had been used before to swap a tree in parallel, then the job was not reset (receiving the new set of instructions), but instead swapped again on the tree received (as if it had been asked to swap in parallel). This is fixed now.
- Parallel versions only: when recovering results (with ptnt get) from running exclusive sectors (/sector *N or /sector-N options) the polytomized tree was sent back only if the initial score had been bettered or matched, and the master had no control over this. When spying results (with ptnt spy) the polytomized tree was sent always. Now, with a special return command, it is possible to control whether ptnt get returns a polytomized tree always (with return polytree) or never (with return nopolytree).
- The xmult command (invoked by most of the New Tech Search options) had problems when doing autoconstrained searches under previously defined constraints.
- Added calculation of "wrong groups" and "mist groups" to the sibyl option of the resample command (optionally, with the errcount option). "Error rates" are the number of groups in the reduced data set that are not found in the complete data set, divided by the total number of groups supported by the reduced data set. "Mist groups" are the number of groups in the complete data set that are not found in the reduced data set, divided by the total number of groups supported by the complete data set.
- Linux/Mac versions only: when program is running in the background, it is now possible to stop it by creating a file called stop_tnt_ID (where ID is the process ID; TNT automatically deletes this file when exitting), and pause it by creating a file pause_tnt_ID. Before, TNT could be stopped (not paused), but without specification of a process ID (so that all TNT instances were stopped).
- Added a new (experimental) command, hybrid. This allows exchanging a group between two trees, even when the group does not have identical composition in both trees. The program makes an effort to identify the most evenly sized partition for which the group has the most similar composition. The taxa present in group of donor tree but not present in the most similar group of the recipient tree are pruned off before moving group from donor to recipient (they are already placed somewhere else in the recipient tree); the taxa present in group of recipient tree but not in group of donor tree are pruned off, and then they are absent from the resulting tree. The missing taxa (if any) are then sequentially added at the best available position (as in a wagner tree, only that the starting point is an almost complete tree), and then the entire tree is swapped. Recipient and donor tree are exchanged, and process repeated. This command can also be used to complete (as described) trees which are missing some taxa (see online-help for details). It is intended for use (in scripts) in cases where tree-fusing fails to produce better trees by virtue of the source trees being too different (e.g. in the case of very poorly structured data sets) and there being no (or few) equivalent groups to exchange. It may, on rare occassions, produce better results than the tfuse command.
Fixes/changes to the version of September 2005 (November 2005):
- Resetting the RAM for macros in Linux/Mac OSX versions, after having turned macros on and then off, caused crashes. [Andrés Varón]
- Sectorial searches under xbuf (=default) when there were nonadditive characters with 2-8 states AND nonadditive characters with 16-32 AND continuous characters caused miscalculations. Fixed now. [Hiri Julcr]
- There is now an alternative (easier) form of declaration of variables. Using the ":" option, it is now possible to simply declare the names of the variables (and their dimensions), omitting the number of variable to which the name is to be assigned, or the plus (+) symbol. This works as if the declarations always used the plus; note that naming starts always from the lowest available variable.
- The set command could set one-dimensional arrays (for example, with the downlist or deslist expressions) only if they had been defined as such; it is now possible to use any valid array (for example, matrix[2] is now valid as a one-dimensional array with 10 cells, if matrix had been defined as matrix[3 10]).
- It is now possible to assign state sets (with the macro expression states) corresponding to all characters, all taxa, or both, to one-dimensional or two-dimensional arrays.
- Added expression statediff to the macro language (see command-line help for syntax).
Fixes/changes to the version of July, 2005 (September 2005):
- The prunnelsen! option sometimes caused crashes or freezes; fixed now.
- The macro expressions states, contmins, and contmaxs, caused all other characters to be deactivated. Fixed.
- If tree-tags have been written, then the expression $ttag N is equivalent to typing the label for node N of tag-tree.
- To prevent problems in the macro language, now it is not possible to name a user-variable as one of the built-in expressions [Andrés Varón]
- Parallel versions only: when executing TBR in parallel (the swap option of the ptnt begin or ptnt again commands) it is now possible to have one of the slaves work exclusively controlling the others. In some cases (i.e. data sets where swapping proceeds slowly because of many characters or slow optimizations, numerous slave jobs) this works somewhat faster than the earlier implementation (in which one of the slaves was a controller and it also did swapings itself; often, the other slaves had to wait for the controller to finish its own swappings before proceeding with further swappings). The option to have one slave acting exclusively as controller is set with swap+N (where N is the tree to swap); the default (controller also does some swapping of its own) is swap N.
- Parallel versions only: spying onto a job where the resampling command was being executed caused errors (returning no trees at all, or crashing the slaves).
- Parallel versions only: the behavior of slaveget, when values from some slaves could not be retrieved, was somewhat erratic (including –1 values written onto the wrong cells, and some non-retrieved cells written as 0 instead of –1). Fixed now.
- The xss option of sectorial searches had problems under implied weights. Fixed now.
- Saving step-matrices (defined with smatrix) produced output that was not readable by TNT, as well as saving character costs in Nexus file when the data were of type DNA. Fixed now.
- Calculation of minimum possible branch lengths (blength command) under sankoff characters was wrong (with larger errors in the more basal nodes of trees). This is fixed now. Note however that the calculation of branch lengths in the case of sankoff characters is based on final costs, not on reconstructions; for each character, all combinations of states x in ancestor and y in descendant are tried, and the minimum of cost[x][n]+cost[y][ancestor[n]]+trans[y][x] (where cost[x][n] is the cost beyond the minimum possible of assigning state x to node n, and trans[y][x] is the cost of transforming from state y to state x). This can overestimate the length of a branch, and possibly underestimate it as well (see Goloboff, 1997, for discussion of a similar problem in a different –but related- situation).
- Windows versions only: defining constraints (with Data/DefineConstraints) could cause problems. If you attempted to define negative constraints, then switched negative constraints off, then tried to define them again (without leaving the constraint dialog), the field for the tree number (that is, the reference number for the negative constraints) was not reactivated.
- When the transformation costs for a sankoff character are equivalent to those of a Fitch character, then the character is optimized (during searches) using Fitch's algorithms (which is much faster). The rule used is as follows: when the cost of transformation between states present is all the same (P), and the cost to/from any absent state from/to any present state (A) multiplied by the number of states present (N) is less than or equal the cost of transformation between states present (P) multiplied by the number of states present minus one (that is, when Px(N-1) ≤ AxN), then consider the sankoff character as a Fitch equivalent.
- Mac versions only: storing a string in a user variable produced a reversed string (because of the big/little endian difference). This is fixed now. [Diego Pol]
To be continue...