DiscoVista 可视化系统发育不一致
关于系统发育不一致基因树不一致是一个常见的问题,导致这个问题的原因有很多,如上一篇文章中提到过的谱系不完全分选和渐渗,此外也可能是因为:
水平基因转移(Horizontal Gene Transfer)。
基因遗传方式的差异(核基因和线粒体基因)。
有时我们会想要找出物种树和基因树间的不一致在哪以及有多严重,因此我们需要一个可以可视化并且能够提供良好解释性的工具。
所以这篇文章将介绍 DiscoVista(Discordance Visualization Tool),它可以帮助我们可视化特定类群在不同树间的拓扑不一致情况。
DiscoVista 的安装和使用DiscoVista github:https://github.com/esayyari/DiscoVista/tree/master
详细的示例教程:https://github.com/esayyari/DiscoVista/tree/master/example
前排提示,该文所使用的 DiscoVista 经过了博主本人的一些修改以方便使用,如果想要使用和作者一样的版本请更改安装步骤为:
1234$ git clo ...
使用 IQTREE 计算一致性因子
关于谱系不完全分选和渐渗
注意:该前言部分使用 ChatGPT4.0 生成并由 Juse 纠正总结,图源自维基百科。
问题:请介绍一下谱系不完全分选(ILS)和渐渗(introgression)对推断系统发育关系的影响,随之引出基因一致性因子(gene concordance factor)和位点一致性因子(site concordance factor)的概念并介绍它们的作用。
在生物学中,推断不同物种的系统发育关系是一个核心课题。然而,系统发育树的构建很复杂,可能受到多种因素的影响。这里我们着重介绍两个重要因素:谱系不完全分选(Incomplete Lineage Sorting,简称 ILS)和渐渗(Introgression)。
谱系不完全分选 (ILS): 谱系不完全分选发生在物种分化的过程中。当两个物种在很短的时间内分化时,一些基因座可能没有足够的时间来完全分化,因此这些基因座在不同物种之间可能会保留共同的祖先多态性。这意味着即使两个物种已经分化,它们的一些基因序列可能仍然相似。这在系统发育树的构建中会引入混乱,因为它可能导致基于这些基因的树与真实的物种树不一致。
...
贝叶斯建树之 Mrbayes 篇
贝叶斯建树原理及优缺点
注意:该前言部分使用 ChatGPT4.0 生成并由 Juse 纠正总结。
问题:请介绍一下系统发育分析中的贝叶斯推断法(原理、优缺点等),并指出几个代表生信软件。
在系统发育学中,贝叶斯推断是一种常用的统计方法,用于根据观测数据推断出物种间的系统发育关系。
原理:
贝叶斯推断的原理基于贝叶斯定理,该定理可以将先验概率和似然度结合起来,得到后验概率。
在系统发育分析中,贝叶斯推断法被用来估计种群或物种之间的演化关系。这种方法假设所有可能的树形图都存在某种先验概率,并使用蒙特卡洛马尔科夫链(MCMC)来在所有可能的树形图和其关联参数的空间中进行采样。每一步,系统会根据特定的概率提议一种新的树形图或参数,然后根据新的树形图或参数与当前状态的拟合度决定是否接受。
优点:
贝叶斯推断提供了一种直观的方式来理解不确定性和证据的权重。因为后验概率可以直接解释为在给定数据下模型或参数的概率。
贝叶斯推断允许使用先验信息,有助于引导分析并提高准确性。
缺点:
计算复杂性高,尤其是对于大数据集。MCMC方法需要长时间的运行才能确保采样的充分性。
对先验概率的选择可能对结 ...
JuseKit(六) —— 绘制火山图
generatePortalLinks(6);
更新变动及进度很久没更 JuseKit,这一段时间我也时不时在想我还能搞什么出来,或者说我最应该搞什么。很多其他有用的功能事实上在别的软件诸如 BTtools Phylosuite 中都有涵盖到,所以陷入了一段瓶颈期(说到底是不够勤勉)。
恰巧毕业以后已经没啥事,闲余之时就思考这些事情,想着既然已经把这个坑挖开来了,那就也不要想太多直接把最开始的设想全部完成一遍再说吧。
所以这一次的更新正式上线 —— 绘制火山图。
已有功能的相关教程请见:Juseの软件开发
本次更新变动
修复了 ‘序列过滤’ 模块中文件不能拖拽读取的问题。
新添了日志模块,报错后将有 error.log 出现在程序根目录。
新增了画图模块,并完成了火山图绘制的功能。
新增的模块导致软件大小的膨胀,对于不需要绘图且内存紧张的人来说可能不是好消息。
目前的功能进度
提取最长转录本。(已实现)
根据 id 提取序列。(已实现)
对序列的 id 进行各种处理。(已实现)
串联序列并得到分区信息。(已实现)
批量改后缀。(已实现)
批量进行序列格式转换。(已实现)
批 ...
Astral 建树指南
系统发育分析各类方法系统发育关系重建的方法是有很多的,耳熟能详的就有最大似然法(ML)、贝叶斯推断法(BI)、邻接法(NJ,距离法的一种代表性方法)、最大简约法(MP)等等,作为一个伪 Phylotranscriptomics 学者,学会各种建树方法也是很有必要的 —— 事实上,在很多文章中也能看到作者会采用好几种不同的方法来进行物种树重建(甚至乎会采用不同的进化模型)。这篇文讲的就是一个在研究中经常出现的软件 Astral。
在讲之前需要先明确一个概念,Astral 是一种 Coalescent-based method,这也是一个经常会在文章里面出现的词,此外还有 Concatenated-based method,关于两者的概念 ChatGPT 的说法:
Coalescent-based method: Coalescent-based 方法是一种模拟基因座的共同祖先的过程来构建进化树的方法。在这种方法中,每个基因座可能有自己独立的进化历史,而不是假设整个基因组有一个统一的历史。这种方法通常用于处理物种树和基因树的不一致性,比如基因水平转移、混合和不完全谱系分选。这是一种比 ...
JuseKit(五) —— 用于系统发育分析的序列过滤
generatePortalLinks(5);
更新变动及进度貌似距离上次更新已经有一段时日了,这一段时间忙完了各种事儿,也算迎来了本科生涯的最后一段悠闲时光。正好趁着这股兴致,把新的 Jusekit 文章给肝出来。
已有功能的相关教程请见:Juseの软件开发
Python 代码实现:比较转录组分析(七)—— 系统发育分析
本次更新变动
新增序列过滤功能。
序列串联输出的 log 文件新增 gap 信息。
新增了部分按钮选择文件时的后缀选项。
目前的功能进度
提取最长转录本。(已实现)
根据 id 提取序列。(已实现)
对序列的 id 进行各种处理。(已实现)
串联序列并得到分区信息。(已实现)
批量改后缀。(已实现)
批量进行序列格式转换。(已实现)
批量提取 Orthofinder 的 orthogroup 对应的 CDS 序列。(已实现)
批量进行序列的物种数和长度过滤。(已实现)
叠盾警告⚠:本软件解释权归属 Juse 所有,本软件能走多远具体得看 Juse 能坚持多久。
下载地址:https://github.com/JuseTiZ/JuseKit/releas ...
关于 PAML 的一二三事
PAML 简介PAML,全称 Phylogenetic Analysis by Maximum Likelihood,由国人大佬杨子恒教授开发,是一款用于进行各种系统发育分析的软件包。里面的诸多模型可以说是系统发育学文章里的常客,其所涵盖的功能包括但不限于:
重建系统发育树。
检测选择压力。
估计进化速率。
估计物种或基因的分歧时间。
想要最详细地了解这个软件,可直接下载官方 tutorial 进行啃读:
PAML Manual:http://abacus.gene.ucl.ac.uk/software/pamlDOC.pdf
PAML FAQs:http://abacus.gene.ucl.ac.uk/software/pamlFAQs.pdf
也有其他博主写的精细介绍,详见:PAML-discussion-group from 简书
如果有些报错问题或者运行问题在网上找不到解释,也许可以看看 PAML 的谷歌论坛。
提示,本文将基于 linux 系统的操作进行讲解。
更新日志2023.05.20 补充了支位点模型的局限性。
2023.06.21 补充了自由比模 ...
JuseKit(四) —— 序列格式转换以及 Orthogroup 的 cds 提取
generatePortalLinks(4);
更新变动及进度已有功能的相关教程请见:Juseの软件开发
本次更新变动
多种序列格式的转换(包括一些常见的 nex phylip 等)。
将 PEP 序列转变成 CDS 序列。
新添了一个学习计时器。
修复了部分 Bug。
目前的功能进度
提取最长转录本。(已实现)
根据 id 提取序列。(已实现)
对序列的 id 进行各种处理。(已实现)
串联序列并得到分区信息。(已实现)
批量改后缀。(已实现)
批量进行序列格式转换。(已实现)
批量提取 Orthofinder 的 orthogroup 对应的 CDS 序列。(已实现)
批量进行序列的物种数和长度过滤。(拟下一次更新)
增加自动绘图模块(例如火山图、富集图等)。(考虑中,新的模块将会大幅增加软件大小,Juse 正在权衡利弊)
增加各种系统发育分析辅助工具(例如批量计算 RF 值或进行 ILS test Introgression detection 等)。(考虑中,新的模块将会大幅增加软件大小,Juse 正在权衡利弊)
叠盾警告⚠:不保证这些功能和想法一定会实现,本软件 ...
JuseKit(三) —— 串联序列、根据id提取序列、批量修改文件尾缀
generatePortalLinks(3);
更新变动及进度已有功能的相关教程请见:Juseの软件开发
更新日志2023.06.21 完善了输出的 log 信息。
本次更新变动
对序列进行串联(支持 IQ-TREE 分区文件的生成)。
根据 id 提取序列。
批量修改文件的后缀(已经补充在第二篇的进阶应用中了)。
修复了部分 Bug。
目前的功能进度
提取最长转录本。(已实现)
根据 id 提取序列。(已实现)
对序列的 id 进行各种处理。(已实现)
串联序列并得到分区信息。(已实现)
批量改后缀。(已实现)
批量进行序列格式转换。(拟下一次更新)
批量 RBH 得到一对一直系同源基因。(拟废弃,因为 diamond 的 windows 部署有些麻烦)
批量提取 Orthofinder 的 orthogroup 对应的 CDS 序列。(拟下下次更新)
增加自动绘图模块(例如火山图、富集图等)。(考虑中,新的模块将会大幅增加软件大小,Juse 正在权衡利弊)
叠盾警告?:不保证这些功能和想法一定会实现,本软件解释权归属 Juse 所有,本软件能走多远具体得看 Ju ...
JuseKit(二) —— 序列id简化、加前缀尾缀或转变为物种名
generatePortalLinks(2);
更新变动及进度本次更新变动有:
对序列的 id 进行前缀或后缀(尾缀)添加。
对序列的 id 进行简化。
对序列的 id 进行转换(变为物种名)。
部分功能的 Python 代码实现:比较转录组分析(三)—— 组装的质量检测与去冗余
更新变动2023.04.13 新增了批量替换尾缀的功能,在进阶应用里进行了补充。
2023.04.24 处理组装 id 中的 删除原有文件 功能在什么时候都能使用了。
目前的功能进度
提取最长转录本。(已实现)
根据 id 提取序列。(拟下一次更新)
对序列的 id 进行各种处理。(已实现)
串联序列并得到分区信息。(拟下一次更新)
批量 RBH 得到一对一直系同源基因。
新的想法
批量提取 Orthofinder 的 orthogroup 对应的 CDS 序列。
批量进行序列格式转换。
批量改后缀。(拟下一次更新)
叠盾警告⚠:不保证这些功能和想法一定会实现,本软件解释权归属 Juse 所有,本软件能走多远具体得看 Juse 能坚持多久。
下载地址:https://github.com/J ...
JuseKit(一) —— 提取最长转录本
generatePortalLinks(1);
前言JUst a SEquence toolKIt for Transcriptomics
不同于其他的生信软件,该软件将着重于一些非常基本的功能,并且以全中文进行编写。
已有的生信软件一直以来只能用一个简单且粗暴的词来形容:高端大气上档次。如今,我将亲自定义简陋朴素接地气。
—— Juse
这篇文分享第一个基本功能:提取最长转录本。
下载地址:https://github.com/JuseTiZ/JuseKit/releases
Python 代码实现:比较转录组分析(三)—— 组装的质量检测与去冗余
提取最长转录本它目前只有那么一个简陋的页面:
首先,默认情况下它提取 Trinity 组装中的最长转录本,因此基因标识锁定为 _i,后文将提到怎么活用基因标识。
输入 fasta 的方法有两个,一个是通过文本框直接输入,一个是读取文件,后者优先级更高。
输出文件的名称默认是 longest_contig.fasta ,可以自定义修改。注意:
文件的路径和输入文件一致。当通过文本框直接输入时,它将会在 .exe 所在文件 ...
系统发育转录组学是否靠谱?
前言我一直认为,阅读文献应该是带着明确的目的去读,要么是想要从中学习到什么东西,要么是想通过它解答一些问题。
作为开篇,我先来分享一下对我正在研究的东西有支持性的文章:
Is Phylotranscriptomics as Reliable as Phylogenomics?
from Mol Biol Evol
事实上,很久之前我认为用转录组找出来的 ortholog 并不可靠,里面有太多的不确定因素会干扰结果的准确性,这也是它和基因组最大的区别所在。所以我有一段时间一度在怀疑自己这么做到底是不是对的(菜鸟就是年轻气盛啊!)。
引言首先,研究者肯定了基因组在系统发育分析中的优越性,但也指出其成本依然昂贵,相比之下相当便宜的转录组已经成为更多研究者的选择,不过转录组依然具有以下缺点:
基因表达在组织间具有差异性(例如脑组织和肌肉组织所表达的基因可能有所不同)。
基因表达在物种间具有差异性(例如不同物种的同一基因可能具有不同的表达)。
高表达基因往往进化较为缓慢,而这一类基因在转录组中是大量出现的(也有其他观点认为相较于整个基因组背景而言这些编码序列进化速度更快,因为可能包括正在快 ...
关于 mamba install 时会出现的两个错误解决方案
工欲善其事必先利其器篇堂堂连载!这篇文分享一下使用 mamba 进行安装时遇到报错该怎么解决。
一般来说错误有这么两个:
File not valid: file size doesn’t match expectation
RuntimeError: Multi-download failed.
这两错误在 mamba github 上已经有人提出来了,并且指出了明确的报错原因:源有问题。
File not valid: file size doesn't match expectation 时说明源网站没有正确识别 mamba 并返回了错误的信息,例如清华的镜像源会把 mamba 当成手机设备因此会先返回一个 “用移动设备下载会消耗过多流量建议改用计算机” 的劝告信息。
RuntimeError: Multi-download failed. 时说明源可能已经不可用,例如中科大的 conda 镜像源已经废弃。此外也有可能是因为配置的源拼写有问题,例如将 conda 误拼成 condo。
因此解决办法也是很简单的,那就是把出现问题的镜像源删了,或者是修改成可以使用的不会报错的镜像 ...
单基因 dN、dS 和 ω 的滑动窗口绘制方法
需要准备的文件和软件需要提前准备好的:
用于进行滑动窗口绘制的基因比对文件(核苷酸、密码子比对格式)
KaKs_Calculator 3.0
Python
R
更新日志2023.07.03 解封文章,简化了部分内容。
滑动窗口绘制过程计算滑动窗口将需要进行滑动窗口计算的 fasta 文件放置于某个特定文件夹中。
然后使用下述 Python 脚本:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138import sysimpo ...