TNT:D
dcomp
比较并合并两个文件中的数据;如果提供了树(在每个文件中作为“线程”),则还会比较性状分数,以帮助确定哪些性状负责导致结果差异
使用方法:dcomp outfile data1 data2 [ namefile ]
其中 outfile
包含组合的结果,data1
是最新的数据集,而 data2
是最旧的数据集。如果两个数据集中的设置或单元格条目不同,outfile
将包含与最新数据集 data1
相对应的选项,但 data2
中存在的类群/性状除外,但 data1
中不存在(包括缺失条目的解析;这可以 进行更改,以便程序查询或选择 data2
,见下文)。 第三个文件名 namefile
是可选的; 它应该包含一个分类单元名称列表(全名,大小写,名称对应于 data1
,如果在 data2
中拼写不同),以从合意树比较中消除(当通配符模糊比较时这很有用)。 在组合数据集中,data1
和 data2
特有的性状被放置在性状组0和1中(名为 Unique_to_filename
)。 如果数据文件中包含树木,则对分类单元执行相同的操作。 请注意,两种情况下的编号都对应于组合数据集中的编号(outfile
); 在比较/组合的各个数据集中,分类单元/性状的编号可能有所不同。
输出文件的名称前面可以带有:
!
不要使用Needleman-Wunsch用于性状串比较
-
不要比较状态名称以建立性状标识(即仅使用性状本身的名称)
+
在每个文件中提供的树拓扑中,将独属于其他文件的分类放置在其最佳位置(根据共享性状)。如果使用 ++
,则为合意计算保留分类(否则仅用于性状得分)。
]
跳过创建图像文件(*.svg),仅生成组合和统计信息。
<
不要在两个数据集的树上显示不同长度的性状。
>
报告每个性状和每个分类单元的评分差异(这仅考虑离散性状)
/n
显示关键表格的操作,根据同源性 (1)、树长度差异 (2) 或其中之一(3,默认)进行识别。使用 n=0 表示无变化,使用 n=4 表示仅报告方法 (1) 和 (2) 都识别的变化。
*
查询矩阵差异时,逐个分类单元而非按性状查询(默认)。
&N
使用TBR交换估计在两个矩阵之间更改单元/设置的每个性状的联合Bremer支持度的差异。对于每个性状,首先报告从较旧数据集变化到较新数据集的性状的支持差异,然后报告最后更改的性状的支持差异。这些差异不包括最新但不是最旧的矩阵中存在的分类单元。最后一行报告了在添加最新但不是最旧的每个分类单元时支持度的变化(一次添加一个)。数字是报告变化的联合Bremer支持度的最小差异(0 <= N <= 100
;默认N = 5
;使用N = 0
报告所有性状/分类单元变化的影响)。请记住,这是通过单轮TBR快速估计的,因此仅是对支持度差异的粗略估计。
|
像 &
一样,但以表格形式显示结果。
:X name
在名为 name
的数组中保存列出分类单元或性状对应关系的列表。X
是一个两个性状的代码,必须包含t
(分类单元)或c
(性状)之一,以及s
(匹配的分类单元/性状的对应关系,用于s
),或m
(未匹配分类单元/性状的最接近匹配)。如果需要,可以根据dcomp
生成的列表重建_second_matrix
中分类单元/性状的对应列表。
组合的默认操作是y
,但可以在括号内指示,无论是针对特定查询还是所有查询(如果前面没有字母代码):(tcsdmoaql ynbi?)
t
分类阶元;询问 (?
) 类似命名的类群是否相同(y
或 n
); 如果使用!
,名称必须相同(在这种情况下没有分类单元查询)。
c
性状;如果未使用选项 -
,那么状态名称应匹配(完全或近似匹配,取决于 !
),否则查询(?
)是否是同一个性状(y
或 n
)。
s
状态;询问 (?
) 类似命名的状态是否相同(y
或 n
); 如果使用!
,状态名称必须相同
d
数据;不连续特性的矩阵单元格中观察值的差异。查询(?
)是否应使用第一个矩阵的状态(y
)、第二个矩阵(n
)或两者(b
)作为多态性。如果当前特征(或分类单元)存在多个差异,则还可以回答a
(接受所有)或r
(拒绝所有)。
m
用观察值替换缺失条目(y
),不替换(n
)。默认情况下,将缺失条目视为其他分数(i
,忽略)。
o
当不同的特性(可加性、加权、Sankoff)选项(=设置)不同时,查询是否保留第一个(y
)或第二个(n
)矩阵的设置。
a
如果加性特性的状态序列不同,则保留第一个文件中的序列(y
),或使用第二个文件中的序列(n
)。
q
适用于定量(连续)性状。这些通常是缩放的,因此同一性状的不同缩放可能会在两个矩阵中产生差异; dcomp
采用第一个矩阵中两个最远的分类单元(也存在于第二个矩阵中;这些通常是第一个矩阵中最小和最大的分类单元,但在存在多态性的情况下可能并非如此),并将两个性状重新缩放为 相同范围; 如果类群的其余部分变得相同,则这两个性状将按该比例合并; 如果少于 20% 的分类群存在差异,则询问用户使用第一个矩阵 (y
)、第二个矩阵 (n
) 或包含两个矩阵的范围 (b
) )。 如果在对这两个共享分类单元进行共同重新调整后,超过 20% 的分类单元不同,则第一个矩阵中缺失的条目将保留为缺失条目(不会询问)。
l
适用于 landmark 性状(=配置)。 如果对两个矩阵中的配置对分类单元进行评分,并且 landmark 坐标相似(配置之间的线性距离总和低于 10^-4
),则不执行任何操作; 否则,第二个矩阵中的配置相对于第一个矩阵调整大小、移位和旋转; 如果这仍然导致不同的配置,则发出查询以保留第一个矩阵(y
)中的坐标或使用第二个矩阵(n
)的坐标。
在括号内,使用>storefile
(或<storefile
)创建(或读取)存储所有决策的文件。 这要求使用相同的选项(和输入文件)。 输出storefile
被中断(使用<esc>
),随后用作输入storefile
,当到达指令末尾时,将控制权返回给用户。 在这种情况下,可以指示输出存储文件和输入存储文件两者,以便用尚未存储在输入存储文件中的决策来完成输出存储文件。
此外,在括号内,您可以包含字母f
(强制匹配),后跟文件名,其中包含匹配对(第一个数据集中的数字,第二个数据集中的数字),用于类群和性状(每个对列表 前面有*taxa
或*characters
)。 这会强制分类单元/性状之间指定的配对,而不管名称如何。 用!
分隔一对数字,两个分类单元/性状(即使命名相同)被迫不同(并且,在分类单元的情况下,附加_A
和_B
,以使多块矩阵可读) 。
请注意 dcomp
也是一个脚本表达式,返回两个输入数据集之间的差异数量。
比较结果(默认情况下)保存为图像 (SVG) 文件,彩色图表 matrix_differences.svg
以显示一个数据文件中存在的组的共源性,反之亦然。
dmerge
合并文件,语法是
dmerge OUT =DIR IN1 IN2 ... INn
。INn
合并文件 IN1
到 INn
(从目录 DIR
,可选)到文件 OUT
。如果输出文件的名称前面带有 |
,那么它会将输入文件作为 TPS landmark 文件处理。
*
合并具有相同名称的性状
drift
从内存中的树进行树漂移(tree-drifiting)。选项为:
iterations
迭代循环(=迭代)要执行的次数
numsubs N
要执行的替换次数(即接受的树重排)在扰动(perturbation)阶段。
xfactor N
值越大,接受次优树的可能性就越小
[no]autoconst N
约束循环次数
[no]giveup N
扰动阶段中执行的最大全交换百分比。这是一个整数,因此 99 表示不放弃。
fitdiff
绝对适合度最大差异
rfitdiff
相对适合度最大差异
findscore N
当分数达到 N
时停止漂移
[no]equals
轮流进行扰动和未扰动的漂移周期(注意:对于 landmark 数据,永远不会执行未扰动周期)。
[no]fuse NxR
在每 N
次迭代时,对 N
棵树执行 R
轮融合(fusing)
[no]dumpfuse
如果融合无法产生更好的树,[不要]转储所有次优树
flat N
使用 rflat 定义的相对拟合差值运行前 N 次迭代
rflat N
初始迭代的相对拟合差异的最大差异
flatnumsubs N
进行初始迭代的替换次数。
[no]pert
永远不要接受次优的重新排列(即“漂移”仅在岛上徘徊;在 landmark 数据的情况下,这确实会迫使循环不受干扰)。
使用 drift:[options];
或 drift=[options];
设置选项(第一种情况仅更改设置,第二种情况运行)。使用 drift=;
,可以显示当前设置。