当前位置: 首页 > news >正文

生信教程|替代模型选择

摘要

由于教程时间比较久远,因此不建议实操,仅阅读以了解学习。

在运行基于可能性的系统发育分析之前,用户需要决定模型中应包含哪些自由参数:是否应该为所有替换假设单一速率(如序列进化的 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* 命令行版本的帮助屏幕。

alt

模型选择和系统发育推断

基于替换模型与序列数据的拟合程度的比较已在多种工具中实现,并且最常使用程序 jModelTest 进行。但由于最近在 PAUP* 中实现了自动选择替代模型,并且该存储库中的其他教程无论如何都需要安装 PAUP,因此我在这里使用 PAUP 而不是 jModelTest 来进行模型选择。实际上,两个程序之间的模型选择非常相似。

  • 单击 PAUP* 的“文件”菜单中的“打开...”。确保在打开的窗口底部选择“执行”作为初始模式,如下一个屏幕截图所示。选择 Nexus 格式的 16s 序列对齐文件 (16s_filtered.nex),然后单击“打开”。 PAUP* 将给出其对该文件的解释的简短报告,包括在比对中发现的物种(分类单元)和字符的数量。
alt
  • “自动模型选择”选项可以在 PAUP* 的“分析”菜单中找到。但是,当您单击它时,您会看到为了运行此模型选择,需要系统发育。虽然这可能看起来可能会导致循环推理(选择替代模型是最大似然系统发育分析所必需的,但也取决于系统发育),但这在实践中不是问题,因为模型选择的结果并不强烈依赖于正确的系统发育;因此,任何合理的系统发育都会导致相似的模型选择结果。因此,最好的解决方案是使用 Neighbor-Joining 算法运行快速系统发育分析,该算法也可以在 PAUP* 中方便地实现。
alt
  • 要从邻接系统发育分析的可用设置中进行选择,请单击 PAUP* 的“分析”菜单中的“邻接/UPGMA...”,如下面的屏幕截图所示。
alt
  • 在新打开的弹出窗口中,保留所有默认选项并单击“确定”(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”)的参数很混乱,因为对一组位点应用特别低的速率几乎具有相同的效果。考虑到这些站点的效果完全不变。保留“显示每个模型的输出”旁边的勾号,并设置“显示每个模型的参数估计”旁边的勾号。确保设置面板如下面的屏幕截图所示,然后单击“确定”。
alt
  • PAUP* 将在三个表中报告模型选择的输出。在第一个部分(在“评估树 1 的模型”下),您将看到已比较的 12 个模型的列表,如下所示(“JC”代表 Jukes-Cantor 模型)。
alt
  • 在同一个表的第 4 列和第 5 列中,您将看到 k,即模型中自由参数的数量。第 4 列列出了与最简单模型相比额外的自由参数的数量,第 5 列列出了自由参数的总数。第二个表列出了每个模型的参数估计值。每个型号的编号和名称后面有九列数字。最后,第三个表再次列出了模型,但这次是按 AIC 分数排名。
alt
  • 重复替换模型与 RAG1 序列比对 (rag1_filtered.nex) 的比较。

动动您发财的小手点个赞吧!

Reference

[1]

Source: https://github.com/mmatschiner/tutorials/blob/master/substitution_model_selection/README.md

本文由 mdnice 多平台发布

相关文章:

生信教程|替代模型选择

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

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 模拟出来的硬件打交道&#xff…...

通过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.进行复杂页面布局时&#xff0c;最外层的根布局不要用ConstraintLayout. 示例布局&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.co…...

通过pyinstaller将python项目打包成exe执行文件

目录 第一步&#xff1a;安装pyinstaller 第二步&#xff1a;获取一个ico图标&#xff08;也即是自己这个exe文件最后的图标&#xff09; 第三步&#xff1a;打包 第一步&#xff1a;安装pyinstaller pip install pyinstaller 第二步&#xff1a;获取一个ico图标&#xff…...

P1068 [NOIP2009 普及组] 分数线划定

题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才&#xff0c;A 市对所有报名的选手进行了笔试&#xff0c;笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的 150 % 150\% 150% 划定&#xff0c;即如果计划录取 m m …...

应用在汽车新风系统中消毒杀菌的UVC灯珠

在病毒、细菌的传播可以说是一个让人敏感而恐惧的事情。而对于车内较小的空间&#xff0c;乘坐人员流动性大&#xff0c;更容易残留细菌病毒。车内缺少通风&#xff0c;残留的污垢垃圾也会滋生细菌&#xff0c;加快细菌的繁殖。所以对于车内消毒就自然不容忽视。 那么问题又来…...

TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000+ REAL-WORLD APIS

本文是LLM系列的文章之一&#xff0c;针对《TOOLLLM: FACILITATING LARGE LANGUAGE MODELS TO MASTER 16000 REAL-WORLD APIS》的翻译。 TOOLLLMs&#xff1a;让大模型掌握16000的真实世界APIs 摘要1 引言2 数据集构建3 实验4 相关工作5 结论 摘要 尽管开源大型语言模型&…...

【JavaSpring】spring接口-beanfactory和applicationcontext与事件解耦

beanfactory 1.applicationcontext的父接口 2.是Spring的核心容器 功能 表面只有getBean&#xff0c;但实现类默默发挥了巨大作用 1.管理所有bean 2.控制反转 3.基本的依赖注入 applicationcontext 功能 1.继承了MessageSource&#xff0c;有了处理国际化资源的能力 …...

《深入理解Java虚拟机》——Java内存区域与内存溢出异常

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

公众号hanniman往期精选

目录 一、AI产品分析&#xff08;10篇&#xff09; 二、AI产品经理&#xff08;10篇&#xff09; 三、AI技术&#xff08;10篇&#xff09; 四、AI行业及个人成长&#xff08;10篇&#xff09; 一、AI产品分析 1、【重点】深度 | 关于AIGC商业化的13个非共识认知&#xff08;80…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

Python实现简单音频数据压缩与解压算法

Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中&#xff0c;压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言&#xff0c;提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...

uniapp获取当前位置和经纬度信息

1.1. 获取当前位置和经纬度信息&#xff08;需要配置高的SDK&#xff09; 调用uni-app官方API中的uni.chooseLocation()&#xff0c;即打开地图选择位置。 <button click"getAddress">获取定位</button> const getAddress () > {uni.chooseLocatio…...

Linux信号保存与处理机制详解

Linux信号的保存与处理涉及多个关键机制&#xff0c;以下是详细的总结&#xff1a; 1. 信号的保存 进程描述符&#xff08;task_struct&#xff09;&#xff1a;每个进程的PCB中包含信号相关信息。 pending信号集&#xff1a;记录已到达但未处理的信号&#xff08;未决信号&a…...