在分层聚类中查找具有统计意义的节点
treecut的Python项目详细描述
Author | Haibao Tang (tanghaibao) |
Jingping Li (Jingping) | |
tanghaibao@gmail.com | |
License | BSD |
说明
层次聚类是挖掘有用数据的重要工具 多元生物数据之间的关系。但是,没有 从 确定了层次结构。大多数的努力都集中在不同的截止线上 评估组内和组间的相对优势 然后试探性地确定一个“好”的截止点。本研究 引入一种更动态的方法来提取 显著丰富的或不同于其他分支的。合并 系统发育信息消除了 传统的分析方法提高了性状关联的预测能力。
该算法需要两个输入,一个树模型和一些值的映射 所有终端分支。简单地说,算法执行 所有内部分支机构的独立统计测试,以及 计算每个节点的p值。在探索阶段, 统计检验是:1)对于定量值,检验差异 由每个节点分隔的两个组中的一个(学生的t检验);2) 类别值,测试特定类别的关联 每个内部节点的后代(Fisher精确测试)。
候选节点使用以下规则确定:p值 因为候选节点v必须是所有根到叶中最小的 通过v的路径。换句话说,根在节点v的组应该 包含最大级别的关联,从而避免冗余 克拉德斯。
服务器版本
Treecut软件的服务器版本可以在以下位置找到: http://chibba.agtec.uga.edu/duplication/cut/
用法
看看data/文件夹中的示例:treefile和 listfile。
treefile应该是 Newick-formatted文件 (通常来自系统发育重建软件的输出, 例如phylip 或者MEGA)。
listfile应该包含每个分类单元的数量值 (用逗号分隔)。确保分类单元名称在 treefile和listfile:
# continuous example IS13,57.2 IS35,66.13
如果数据类型是离散的,请用分号分隔这些类。为了 示例:
# discrete example AT1G02150,GO:0009507;GO:0005488 AT1G02160,GO:0005575;GO:0003674;GO:0008150
注意,#表示注释行,将被忽略。
运行软件:
python treecut.py data/tree.nwk data/continuous.csv tree.pdf
提取模块的摘要将写入stdout。每行 将包含一个子类,该子类显示显著的高表型 值或低表型值。此外,可视化还可用作 tree.pdf(支持的图像格式包括svg,png,pdf, jpg等)。模块以绿色突出显示(低值模块) 以及红色(高价值模块)颜色。
树值映射
食谱
treecut有几种即时应用。以下仅显示 案例二的例子,但还有更多。
提取表型值高/低
的分类群请参阅data/文件夹中的示例。这是开花时间数据 高粱多样性小组。flowering.nwk是一个系统发生树 研究中使用的高粱材料。flowering.assoc有 到加入特征值的映射(在本例中 开花前的天数)。运行:
python treecut.py data/flowering.nwk data/flowering.assoc
如果你不想把开花数据当作离散值,比如 “高”对低。您可以添加--discrete选项:
python treecut.py data/flowering.nwk data/flowering_discrete.assoc --discrete flowering_discrete.png
显著不同的分类(如极端特征值)将是 写在屏幕上。
提取功能富集
的共表达基因在这个例子中,我使用了eisen的CLUSTER软件 (here) 加工一系列拟南芥微阵列 AtGenExpress。 在^{tt之后19}$已运行。我找到两个文件-microarray.cdt和 microarray.gtr。.gtr文件包含一个层次树 结构,但我需要将其转换为.nwk格式,以便 treecut.py要处理。
查看microarray.assoc,它包含来自 拟南芥基因的go术语,这是基于 下载于Gene Ontology website。 注意,一个基因可以有多个go项与之相关。这是 我用来创建microarray.assoc:
的脚本python scripts/parse_tair_go.py
一旦一切就绪,就像往常一样运行treecut.py(确保 打开--discrete选项:
python scripts/eisen_to_newick.py data/microarray.gtr data/microarray.cdt data/microarray.nwk python treecut.py data/microarray.nwk data/microarray.assoc --discrete
在某些围棋术语中显著丰富的分支将是 写在屏幕上。
参考
Tang等人treecut:从中提取重要模块的算法 分层聚类