生信教程|替代模型选择
摘要
由于教程时间比较久远,因此不建议实操,仅阅读以了解学习。
在运行基于可能性的系统发育分析之前,用户需要决定模型中应包含哪些自由参数:是否应该为所有替换假设单一速率(如序列进化的 Jukes-Cantor 模型)或者是否应该允许不同的转换率和颠换率(如 HKY 模型)。或者是否应该对所有替换使用不同的比率(如 GTR 模型)四种核苷酸的频率(“状态频率”)是否应该被估计或假设为全部相等?自由模型参数的最佳数量取决于可用数据,并且可以根据 Akaike 信息准则(AIC)等标准进行选择,该准则旨在在模型拟合的改进与模型拟合所需的附加参数数量之间取得平衡。
在本教程[1]中,我将介绍如何使用软件 PAUP* (Swofford 2003) 选择系统发育分析的替代模型,PAUP* 是一种用于各种类型系统发育分析的流行多功能工具。
数据集
本教程中使用的数据是教程多序列比对中为 16s 和 RAG1 序列生成的比对的过滤版本。由于 PAUP* 需要 Nexus 格式的对齐作为输入,因此请使用文件 16s_filtered.nex 和 rag1_filtered.nex。
PAUP*
该软件最初开发于 20 世纪 80 年代末,是最古老的系统发育分析程序之一,尽管它已经存在了很长时间,但其作者 Dave Swofford 从未发布过最终版本。尽管在基于可能性的系统发育推断方面,PAUP* 在速度方面早已被其他程序超越,但它对于它包含的各种其他功能仍然很重要。不久前,PAUP* 只能以 100 美元左右的价格从 Sinauer Associates 购买。自 2015 年起,Dave Swofford 在他的新 PAUP* 网站上免费分发 PAUP* 4.0 的更新版本作为试用版。这些试用版会在几个月后过期,因此如果您将来还想使用 PAUP,则可能需要重新下载。这种情况可能只是暂时的,因为 PAUP 5 的开发正在进行中,该产品将至少部分进行商业分发。
虽然本教程中的描述假设您已安装适用于 Mac OS X 或 Windows 的 PAUP* 图形用户界面 (GUI) 版本,但也可以安装 PAUP* 的命令行版本,这在 Linux 上是必需的或 Mac OS X Catalina 或更新版本,因为这些系统当前不存在 GUI。如果您使用命令行版本,您可能需要查找等效命令;启动 PAUP* 后,始终可以通过 PAUP* 的帮助屏幕来完成此操作,只需键入“?”即可显示该帮助屏幕。并按 Enter 键。下面的屏幕截图显示了 PAUP* 命令行版本的帮助屏幕。

模型选择和系统发育推断
基于替换模型与序列数据的拟合程度的比较已在多种工具中实现,并且最常使用程序 jModelTest 进行。但由于最近在 PAUP* 中实现了自动选择替代模型,并且该存储库中的其他教程无论如何都需要安装 PAUP,因此我在这里使用 PAUP 而不是 jModelTest 来进行模型选择。实际上,两个程序之间的模型选择非常相似。
-
单击 PAUP* 的“文件”菜单中的“打开...”。确保在打开的窗口底部选择“执行”作为初始模式,如下一个屏幕截图所示。选择 Nexus 格式的 16s 序列对齐文件 (16s_filtered.nex),然后单击“打开”。 PAUP* 将给出其对该文件的解释的简短报告,包括在比对中发现的物种(分类单元)和字符的数量。

-
“自动模型选择”选项可以在 PAUP* 的“分析”菜单中找到。但是,当您单击它时,您会看到为了运行此模型选择,需要系统发育。虽然这可能看起来可能会导致循环推理(选择替代模型是最大似然系统发育分析所必需的,但也取决于系统发育),但这在实践中不是问题,因为模型选择的结果并不强烈依赖于正确的系统发育;因此,任何合理的系统发育都会导致相似的模型选择结果。因此,最好的解决方案是使用 Neighbor-Joining 算法运行快速系统发育分析,该算法也可以在 PAUP* 中方便地实现。

-
要从邻接系统发育分析的可用设置中进行选择,请单击 PAUP* 的“分析”菜单中的“邻接/UPGMA...”,如下面的屏幕截图所示。

-
在新打开的弹出窗口中,保留所有默认选项并单击“确定”(PAUP* 命令行版本中的等效命令只是 NJ;)。 -
再次单击“分析”菜单中的“自动模型选择...”。使用邻接生成的树将已被选择用于模型选择,弹出窗口现在将为您提供用于此模型选择的多个选项。模型选择的可用标准称为“AIC”、“AICc”、“BIC”和“DT”。这些与似然比检验类似,但优点是它们可用于比较非“嵌套”模型(如果其中一个模型具有其他模型的所有参数加上附加参数,则两个模型是嵌套的)。 “AIC”代表“Akaike信息准则”,“AICc”是“针对小样本量校正的Akaike信息准则”,“BIC”是“贝叶斯信息准则”,“DT”是“决策理论”标准。其中最常用的是 Akaike 信息准则。每个模型的 AIC 独立计算为 AIC = 2 k −2 log(L),其中 k 是模型中自由参数的数量,L 是所有自由参数优化后数据的可能性(即最大可能性)。通常,如果一个模型的 AIC 分数比另一个模型的 AIC 分数好(= 小)至少 4 分,则该模型被认为优于另一个模型。设置“AIC”旁边的勾号,但删除“AICc”、“BIC”和“DT”旁边的勾号。另请选择“应用选择模型的设置:”右侧的“AIC”。作为“模型集”,选择数字“3”。这意味着将测试具有相等替代率的模型(例如 Jukes-Cantor 模型)、具有单独的转换和颠换替代率的模型(例如 HKY 模型)以及具有六个独立替代率的模型(GTR 模型)。保留“等速率”和“gamma”旁边的勾号(允许站点间速率变化的伽玛分布),但删除“invar.sites”和“两者”的勾号。我建议这样做,因为不变位点比例(“+I”)和位点间速率变化(“+G”)的参数很混乱,因为对一组位点应用特别低的速率几乎具有相同的效果。考虑到这些站点的效果完全不变。保留“显示每个模型的输出”旁边的勾号,并设置“显示每个模型的参数估计”旁边的勾号。确保设置面板如下面的屏幕截图所示,然后单击“确定”。

-
PAUP* 将在三个表中报告模型选择的输出。在第一个部分(在“评估树 1 的模型”下),您将看到已比较的 12 个模型的列表,如下所示(“JC”代表 Jukes-Cantor 模型)。

-
在同一个表的第 4 列和第 5 列中,您将看到 k,即模型中自由参数的数量。第 4 列列出了与最简单模型相比额外的自由参数的数量,第 5 列列出了自由参数的总数。第二个表列出了每个模型的参数估计值。每个型号的编号和名称后面有九列数字。最后,第三个表再次列出了模型,但这次是按 AIC 分数排名。

-
重复替换模型与 RAG1 序列比对 (rag1_filtered.nex) 的比较。
动动您发财的小手点个赞吧!
Reference
Source: https://github.com/mmatschiner/tutorials/blob/master/substitution_model_selection/README.md
本文由 mdnice 多平台发布
相关文章:

生信教程|替代模型选择
摘要 由于教程时间比较久远,因此不建议实操,仅阅读以了解学习。 在运行基于可能性的系统发育分析之前,用户需要决定模型中应包含哪些自由参数:是否应该为所有替换假设单一速率(如序列进化的 Jukes-Cantor 模型…...

redis持久化、主从和哨兵架构
一、redis持久化 1、RDB快照(snapshot) redis配置RDB存储模式,修改redis.conf文件如下配置: # 在300s内有100个或者以上的key被修改就会把redis中的数据持久化到dump.rdb文件中 # save 300 100# 配置数据存放目录(现…...
Python 连接 Oracle 详解
文章目录 1 首先,安装第三方库 cx_Oracle2 其次,配置命令 1 首先,安装第三方库 cx_Oracle 参考 CSDN 博客:Python 安装第三方库详解(含离线) 2 其次,配置命令 import cx_Oracle# 1.数据库连接…...

认识模块化
1. 模块化的基本概念 1.1 什么是模块化 模块化是指解决一个复杂问题时,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说,模块是可组 合、分解和更换的单元。 1. 现实生活中的模块化 2.编程领域中的模块化 编程领域中的模块化,…...
2023年及以后语言、视觉和生成模型的发展和展望
一、简述 在过去的十年里,研究人员都在追求类似的愿景——帮助人们更好地了解周围的世界,并帮助人们更好地了解周围的世界。把事情做完。我们希望建造功能更强大的机器,与人们合作完成各种各样的任务。各种任务。复杂的信息搜寻任务。创造性任务,例如创作音乐、绘制新图片或…...

OpenLdap +PhpLdapAdmin + Grafana docker-compose部署安装
目录 一、OpenLdap介绍 二、PhpLdapAdmin介绍 三、使用docker-compose进行安装 1. docker-compose.yml 2. grafana配置文件 3. provisioning 四、安装openldap、phpldapadmin、grafana 五、配置OpenLDAP 1. 登陆PhpLdapAdmin web管理 2. 需要注意的细节 内容介绍参考…...
Java | 排序内容大总结
不爱生姜不吃醋⭐️ 如果本文有什么错误的话欢迎在评论区中指正 与其明天开始,不如现在行动! 文章目录 🌴前言🌴算法整理🌴两个结论🌴总结 🌴前言 本文内容是关于选择排序、冒泡排序、插入排序…...

Go 语言入门指南:基础语法和常用特性解析
什么是Go语言? Go语言是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。它用批判吸收的眼光,融合C语言、Java等众家之长,将简洁、高效演绎得淋漓尽致。 Go语言语法与C相近,但功能上有&a…...

20.添加HTTP模块
添加一个简单的静态HTTP。 这里默认读者是熟悉http协议的。 来看看http请求Request的例子 客户端发送一个HTTP请求到服务器的请求消息,其包括:请求行、请求头部、空行、请求数据。 HTTP之响应消息Response 服务器接收并处理客户端发过来的请求后会返…...

Qemu 架构 硬件模拟器
Qemu 架构 硬件模拟器 Qemu 是纯软件实现的虚拟化模拟器, 几乎可以模拟任何硬件设备, 我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机, 虚拟机认为自己和硬件打交道, 但其实是和 Qemu 模拟出来的硬件打交道ÿ…...

通过starrocks jdbc外表查询sqlserver
1.sqlserver环境准备,使用docker环境,可以参考使用flink sqlserver cdc 同步数据到StarRocks_gongxiucheng的博客-CSDN博客 部署获得sqlserver环境; 2.获取starrocks环境,也可以通过docker部署,参考:使用…...

ArcGIS 10.5安装教程!
软件介绍: ArcGIS Desktop 10.5中文特别版是一款功能强大的GSI专业电子地图信息编辑和开发软件,ArcGIS Desktop 包括两种可实现制图和可视化的主要应用程序,即 ArcMap 和 ArcGIS Pro。ArcMap 是用于在 ArcGIS Desktop 中进行制图、编辑、分析…...
ConstraintLayout约束布局
1.进行复杂页面布局时,最外层的根布局不要用ConstraintLayout. 示例布局: <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.co…...
通过pyinstaller将python项目打包成exe执行文件
目录 第一步:安装pyinstaller 第二步:获取一个ico图标(也即是自己这个exe文件最后的图标) 第三步:打包 第一步:安装pyinstaller pip install pyinstaller 第二步:获取一个ico图标ÿ…...
P1068 [NOIP2009 普及组] 分数线划定
题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的 150 % 150\% 150% 划定,即如果计划录取 m m …...

应用在汽车新风系统中消毒杀菌的UVC灯珠
在病毒、细菌的传播可以说是一个让人敏感而恐惧的事情。而对于车内较小的空间,乘坐人员流动性大,更容易残留细菌病毒。车内缺少通风,残留的污垢垃圾也会滋生细菌,加快细菌的繁殖。所以对于车内消毒就自然不容忽视。 那么问题又来…...
TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000+ REAL-WORLD APIS
本文是LLM系列的文章之一,针对《TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000 REAL-WORLD APIS》的翻译。 TOOLLLMs:让大模型掌握16000的真实世界APIs 摘要1 引言2 数据集构建3 实验4 相关工作5 结论 摘要 尽管开源大型语言模型&…...

【JavaSpring】spring接口-beanfactory和applicationcontext与事件解耦
beanfactory 1.applicationcontext的父接口 2.是Spring的核心容器 功能 表面只有getBean,但实现类默默发挥了巨大作用 1.管理所有bean 2.控制反转 3.基本的依赖注入 applicationcontext 功能 1.继承了MessageSource,有了处理国际化资源的能力 …...

《深入理解Java虚拟机》——Java内存区域与内存溢出异常
Java内存区域与内存溢出异常 运行时数据区域程序计数器Java虚拟机栈本地方法栈Java堆方法区运行时常量池直接内存 实例堆溢出栈溢出 运行时数据区域 根据《Java虚拟机规范的规定》,Java虚拟机所管理的内存将会包含已下架几个运行时数据区域。 程序计数器 在Java虚…...

公众号hanniman往期精选
目录 一、AI产品分析(10篇) 二、AI产品经理(10篇) 三、AI技术(10篇) 四、AI行业及个人成长(10篇) 一、AI产品分析 1、【重点】深度 | 关于AIGC商业化的13个非共识认知(80…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...

HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...