Hennig86

Malacology留言 | 贡献2023年7月26日 (三) 09:04的版本 →‎简介
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

简介

Hennig86 于 1988 由 James S. Farris 编写并发布,是第一个能在 MS-DOS IBM-PC 及其兼容性机器上运行良好的简约法的系统发育软件。最初售价 50 美元,目前已经不再分发并且已经被 TNT 取代,但是他的文件风格以及部分命令已经被众多软件吸取。

注意!Hennig86 不是 TNT 的前身!

分析基础

你需要安装 DOSBox 软件,并且具备很少的 DOS 命令基础,比如 MOUNT TYPE 等。

文件基础

Hennig86 自带示例文件如下,跟 TNT 完全兼容。

xread
'SALA -- BOLICK ADV. CLAD. 1:115-125 SALMEA (COMPOSITAE: HELIANTHEAE)'
24 11 
ANCT 000000000000000000000000
SCAN 000000100001210000000000
ORTH 000000100001101000000000
OLIG 100000100002010111000000
PALM 000000100002000110100000
PETR 001100100000000000011000
CALE 100021011110000000000000
GLAB 000200111100000000000001
MONT 321010111100000000000000
INSI 220000011110000000000110
PAUC 210010011110000000000101

 ;
proc /  ;

分析流程

基础 log

display* 让也在终端显示。

log hennig.log;
display*;

基础 help

quote This function help send comments to log file;
quote Here are functions;
assist;

打开文件

view 查看文件。

quote Open data file and view it;
view CZ.SS;
procedure CZ.SS;

设置外群

/num 设置多个外群中相对外的 prime outgroup0.2 中的 . 代表范围

quote Set outgroups and prime outgroup (0-2 are outgroups and 0 is prime outgroup);
outgroup = 0.2 /0;
outgroup;

查看 character weighting

ckeepcget 用于快速保存、选择某一套 character weighting 以及 additive (ccode+.;) 和 non-additive (ccode-.;)。 ccode; 查看状态。

quote Check character weighting realted settings and store them in internal file 1;
ccode-.;
ckeep 1;
ccode;
quote Set them as additive character and save as internal file 2;
ccode+.;
ccode;
ckeep 2;
quote Check eveything as additive, now run cget to obtain previous config;
cget 1;
ccode;

基础搜索树

hennig bb 都是对单个树计算, keep 对树进行划归组保存为内部树文件。

quote Start an example on how to search tree;
hennig;
bb;
quote Here to disable ascii and have a look;
txascii-;
tplot;
tlist;
quote Store it into internal tree file 1;
keep 1;

查看树的信息

xsteps主要用于查看树的信息。

quote Output Tree Length based on tree number, same with xsteps;
xsteps l;
quote Output characters' steps RI CI;
xsteps c;
quote Display max/min steps for per character;
steps;

进阶搜索树

hennig bbm 前缀是多个树的意思,* 后缀是指树的数量要不要做限制。这个搜索保存到内部树文件 2。watch 查看每个命令耗费的时间。

quote Check current memory; 
bytes;
quote Start watch time;
watch;
quote Start search heavily and swap trees;
mhennig*;
bb*;
quote Store them into internal tree file 2;
keep 2;

基础合意树

合意树保存到内部树文件 3。

quote Generate strict consensus tree, all trees will be removed from memory;
nelsen;
quote Store it into internal tree file 3;
keep 3;

successive weighting

ccodeweighting 搜索保存到内部树文件 4。

quote Successive Weighting can be enabled;
xsteps w;
ccode;
mhennig*;
bb*;
quote Store them into internal tree file 4;
keep 4;

合意树保存到内部树文件 5。

quote Generate strict consensus tree, all trees will be removed from memory;
nelsen;
quote Store it into internal tree file 5;
keep 5;

穷举法

ie*; 使用穷举法,保存到内部树文件 6。

quote Search all the trees;
ie*;
quote Store them into internal tree file 6;
keep 6;

合意树保存到内部树文件 7。

quote Generate strict consensus tree, all trees will be removed from memory;
nelsen;
quote Store it into internal tree file 7;
keep 7;

时间测试

watch-; 停止测试时间

quote Stop watch time;
watch-;

查看树

get 切换不同的内部树文件, tlist 查看文件。

quote Test internal tree files via get;
files;
get 3;
tlist;
get 5;
tlist;
tsave contre;

编辑内部树文件

erase 删除内部树文件, files 查看内部树文件有哪些。

quote Delete internal tree file;
erase 1;
files;

退出

log/; 停止记录,yama 退出 Hennig86。

quote Stop log and quit;
log/;
yama;

查看编辑树

xx 查看树。

xx
\
/
;

所有命令一览

           Dox -- Online Help File for Hennig86, Version 1.5
                   Copyright (c) James S. Farris
                        All rights reserved.

assist    batch     bb        bytes     ccode     cget      ckeep     
display   erase     files     get       hennig    ie        keep      
log       mhennig   nelsen    outgroup  procedure quote     reroot    
steps     tchoose   tlist     tplot     tread     tsave     txascii   
view      watch     xread     xsteps    xx        yama      

assist         list available commands

batch          turn on batch switch
batch -        turn it off 

bb             produce multiple trees by branch breaking
bb *           use all available tree space

bytes          display bytes of free ram

ccode          control character coding
               / set weight [ activate ] deactivate + additive - nonadditive
ccode ;        display codings

cget x         set coding from code file x

ckeep x        save current coding in code file x

display        short listings to display
display -      no listing to display
display *      all listing to display

erase  s       delete tree files in scope s

files          display directory of treefiles

get x          make tree file x current

hennig         calculate single tree
hennig *       use branch breaking

ie             find trees by implicit enumeration
ie -           find just one tree
ie *           use all available tree space

keep x         save current tree file as tree file x

log  n         open dos file n as new log file
log  -         deactivate log file
log  *         activate it
log  /         close it

mhennig        calculate multiple trees
mhennig *      use branch breaking

nelsen         calculate nelson consensus tree

outgroup       control outgroup
               [ ingroup ] outgroup
outgroup =     set outgroup to list
outgroup ;     list outgroup alphabetically

procedure n    open dos file n as procedure file
procedure -    deactivate procedure file 
procedure *    activate it
procedure /    close it

quote          copy message

reroot         current treefile according to current outgroup

steps          display max/min steps per character

tchoose  s     select trees in scope s from current tree file

tlist          display trees in parenthetical notation

tplot          produce tree diagrams

tread          read trees 

tsave  n       save current tree file on dos file n 

txascii        use extended ascii characters in tree plots
txascii -      don't

view  n        inspect dos file n
view  *        close and inspect current log file

watch          turn on stopwatch 
watch -        turn it off

xread          read character data

xsteps         diagnose trees in current tree file
xsteps h       list possible states for hypothetical ancestors
xsteps c       list character fits 
xsteps m       list best/worst fits
xsteps l       list tree lengths
xsteps u       produce file of distinct trees
xsteps w       set character weights according to fits

xx             display and modify diagnosed tree

yama           return to dos