单基因 dN、dS 和 ω 的滑动窗口绘制方法
需要准备的文件和软件需要提前准备好的:
用于进行滑动窗口绘制的基因比对文件(核苷酸、密码子比对格式)
KaKs_Calculator 3.0
Python
R
更新日志2023.07.03 解封文章,简化了部分内容。
滑动窗口绘制过程计算滑动窗口将需要进行滑动窗口计算的 fasta 文件放置于某个特定文件夹中。
然后使用下述 Python 脚本:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138import sysimpo ...
当 cmake 遇上 permission denied
工欲善其事必先利其器,软件就是生信人的武器,这篇文就是分享使用 cmake 配置遇到 permission denied 时应该怎么解决。
一般错误出现的情况一般来说,cmake 安装软件的流程都是大致如下:
1234$ git clone xxx # 下载某个软件$ cd xxx # 进入下载的文件夹中$ cmake . # cmake 进行编译配置$ make install # make 进行安装
在最后一步 make install 的时候,有时会出现 permission denied。
如果具有 sudo 权限这种情况一般发生在自己的电脑上(root 用户),又或者拥有 sudo 权限,加一个 sudo 即可。
1$ sudo make install
如果不具有 sudo 权限本篇文章的重心,permission denied 的原因是自己没有在 /usr/local 配置文件的权限而又无法通过 sudo 解决,这个路径是很多软件默认的安装路径,但同样也是可选的,所以解决方法就是把安装路径改到自己有权限的路径即可。
123# cmake 时指定其他安装路径$ cmak ...
基于 Cytoscape 的富集网络图绘制
所需文件需要准备的文件:通过 David 得到的富集分析结果表格。
软件的下载方式请自寻,请支持正版。
注意,本文着重的是无参转录组富集分析结果的网络图绘制,如果是有参基因组请移步它处。
绘图过程首先我们需要通过 David 分析得到富集分析结果文件。
DAVID 富集分析教程可见:比较转录组分析(六)。
注意,这里对我来说仅选择 GO 的结果是不够的,因为这样会导致富集网络图中的节点数量过少(因为富集的 GO term 过少),因此我选择了更多的项(DAVID 的所有默认项)来进行富集结果的输出,可以根据个人的情况进行相应的调整。
得到表格以后可以直接输入 Cytoscape 进行绘制。
首先在 Apps 一栏中选择 App Manager 并下载以下两个插件:
Enrichment Map
WordCloud
此后打开 Apps 中的 Enrichment Map ,会跳出一个窗口,操作步骤如下图所示:
在这里可以输入多个表格(例如分别输入上调基因和下调基因的富集分析表格)。此外,在输入了表达量文件后左下角部分还可对基因进行表达量过滤,右下角可以通过调整参数来调节节点的聚集 ...
比较转录组分析(七)—— 系统发育分析
generatePortalLinks(7);
关于分类学和系统发育分析分类学,这个学科虽然听起来很简单,但从整个生物史的尺度出发都能算的上是一个非常具有深度且一直以来都争议颇多的学问。从几个世纪前,分类学家就已经致力于通过各种形态学差异或者生活史差异来描述不同物种之间的亲缘关系并且把它们分门别类成不同的类群。在那个时候,不同的学者也会根据 “个人之见” 进行颇具主观性的划分(而且某些近缘物种之间的形态学差异确实可以迥然不同),因此许多分类单元并不统一且一直以来都在不停变动,这一些现象在达尔文先生的《物种起源》中表现得淋漓尽致。
即使古早的分类方法并不完全准确,分类学家依然完成了非常瞩目的成就,就拿现在的物种分类情况来说,很多框架依然与以前一致,并且新的分类单元也是基于已有的框架延申出来的。
测序手段的发展算得上是分类学的一个里程碑,从分子层面的观察让我们对于物种的分类关系有了更为准确的把握,这催生了大量分类错误的纠正以及新物种的发现,并且由此诞生出来了分子系统发育学这一学科。目前很多生信软件都能帮助我们探讨不同物种间的系统发育关系。
这篇文将分享如何通过一些软件来进行系统 ...
用于 IQtree 的序列串联方法
前言因为这一段时间很懒而且现实生活的事情又多,所以系统发育分析的正式文章教程可能要搁置一会,但是想着总得更新些东西出来,所以就以这篇文章作为正餐开始前的一叠小菜分享分享。
事实上序列串联对于刚涉及到这一块的新手来说确实也会有些迷糊,比如说串联是怎么个串联法,需要准备什么文件,文件的内容格式应该是怎样等等问题都会存在,这篇文里就针对这一点讲一讲。
更新日志2023-04-07 简化了脚本,并完善了脚本的注释。
2023-07-04 完善了脚本,并添加了部分内容。
需要知道的知识一些系统发育分析中的概念是最基础的,如果未作了解或了解不深可以看一下这篇文章:生命之树及其应用 。写的非常全面和具体,里面涉及到的各种术语也很专业,同时也介绍了很多常用的软件等。本文涉及到的地方就是这篇文章展望部分中第一点讲的 “超大树构建方法的革新” 中的超矩阵方法。
序列串联方法需要准备的文件首先按照惯例推出几个能够实现的软件:Phylosuite、FASconCAT-G。前者用起来非常方便但是我只下了 windows 的版本,虽然它有 linux 的版本但我也没去调查怎么用,索性就自己写了个脚本 ...
基于 GraphPad Prism 的火山图绘制
软件信息此文中使用的 GraphPad Prism 版本为 9.4.1,获取方式请自寻,请支持正版。
需要准备的文件:差异表达分析结果表格。
9.0 以上版本的 GraphPad Prism 已经支持火山图绘制,但是绘图效果并没有利用散点图绘制来的好,因此这篇文还是通过散点图的方式来实现火山图绘制,如果想要试试 Prism 自带的火山图可以在点开 Prism 时选择 Graph Portfolio 里的 Volcano Plot 进行:
更新日志2023.07.07 精简了内容,增加了题外话。
绘图过程在进行绘图之前,需要先筛选出 |log2FC| > 1 以及 adjustp < 0.05 的点(可以选用不同的阈值),然后将它们的 log2FC 放在新的一列,最后效果应该如下所示:
具体的实现过程可以通过 Python 脚本或者 R 进行,处理以后的表格用来绘制火山图。
点进 GraphPad Prism 后,选择最上方的 XY,各项选择如图:
生成表格后,导入差异表达分析结果(复制黏贴整个表格即可),此后删掉除了所需要的数据以外的列,最后如下图:
其中第一 ...
比较转录组分析(六)—— GO 富集分析与可视化
generatePortalLinks(6);
前言GO 富集分析的用处非常广泛,在这里我们将用来做差异表达基因的分析,在其他情况下也有可能是做例如正选择基因的富集分析、高突变率基因的富集分析、基因家族的富集分析等等一系列基因群的功能分析,不过着重点不同。
更新日志2022.12.22 更改了绘图脚本,新的气泡图以 GeneRatio 作为 x 轴标签(更改版本在 github 可见,文中未修改)。
2023.06.26 解封文章,简化了部分内容。
出现的一些词DAVID:全称 Database for Annotation, Visualization and Integrated Discovery,是一个广泛使用的富集分析平台,此外还可以在这里进行诸多 id 的转换。
链接:https://david.ncifcrf.gov/
富集分析过程需要明白的概念什么是富集分析?关于这一点在网上的诸多文章中都有解释,但我想要以一个更为通俗易懂的说法去进行解释。
打个比方,我们调查了 5000 个人的兴趣爱好,其中有 200 个人都很喜欢玩电脑。
然后我们挑出了一个我 ...
比较转录组分析(五)—— 转录本定量与差异表达分析
generatePortalLinks(5);
前言之前看知乎看到过一篇关于写生物论文的文章,里面有一段很有意思的话,具体的内容我已经忘了,但意思大致是指写生物论文最好 “水” 的就是差异表达分析,我看到的第一反应是乐,第二反应是这可能确实是客观存在的。
不过会的人多用的人多并不代表这个分析烂大街没有含金量,相反,这么多人用应当是证实了这一分析的价值所在。
更新日志2022.12.12 在 DEG 挑选部分中补充了些关于使用 voom 的内容。
2022.12.21 更改了关于 log2FoldChange 阈值的说法。
2022.12.22 补充了题外话中关于软件差异的新发现。
2023.04.20 补充了题外话中关于软件差异的新发现。
2023.07.03 精简了内容。
出现的一些词log2FoldChange:差异倍数,常以 1 作为阈值,有时也可为 1.2 或 1.5(一些单细胞研究中常见这些值)。
例:若对照组表达量为 1,处理组表达量为 4,则 log2FC = log2(4/1) = 2。正数时为上调,负数时为下调。
生物学重复:经过相同方式处理的不同样品,提 ...
比较转录组分析(四)—— 组装的 GO 及 KEGG 注释
generatePortalLinks(4);
前言之前我们已经讨论了评估组装质量和组装去冗余的方法,在这里我们再来进一步谈一谈组装的注释。
这一环节应该算得上是转录组的第一个重头分析部分,因为它可以让执行者对自己的组装有一个更清晰的认知。
更新日志2022.12.29 补充了如何利用 GO 注释信息绘制二级分类图的部分。
2023.01.11 补充了如何利用 Kofamscan 进行 KEGG 注释。
2023.07.03 精简了部分内容。
出现的一些词blast:中文名叫做爆炸,其实是一种比对工具。
diamond:中文名叫做钻石,其实也是一种序列比对工具,速度是 blast 的 100-10000 倍,且资源需求低。
swissprot:一个注释非常良好的蛋白数据库,是 UniProt 数据库的组成之一。
KEGG:全名京都基因与基因组百科全书,由日本京都大学生物信息学中心搭建的一个数据库。
什么是注释注释分很多种,但是它们在转录组分析中的最终目的都指向一个共同点 —— 解释组装(或者说基因)。
比如说 GO 注释、KEGG 注释、Pfam 注释、nr 注释的注释内容 ...
比较转录组分析(三)—— 组装的质量检测与去冗余
generatePortalLinks(3);
前言前文提到怎么组装数据,这里探讨下如何判断组装质量。
讲完组装质量后,再讲一讲去冗余的概念以及为何要去冗余,去冗余的方法有哪些等。
更新日志2022.11.22 补充了在进行后续分析前给 Contig 添加物种名前缀的内容,补充了后记内容,添加了部分粗体。
2022.12.06 补充了一些内容
2023.07.03 精简了内容
组装质量评估N50 —— 评估指标计算 N50 时,首先会把组装中所有 碱基 的个数统计出来,比如 ATCG 就是四个碱基。
统计出来后,将 Contig 按照它们的长度依次排列,从长到短。
排列完以后,从最长的 Contig 开始,计算它的碱基数量并加和起来,当计算到某一条 Contig 时所加和起来的碱基数量到达了组装所有碱基数量的一半时,这一条 Contig 的长度就是 N50 的数值大小。
N50 可以反应组装的细碎程度,当其很小时,表明组装出来的 Contig 整体较短的。
想要统计这一系列组装信息可以使用 Trinity 自带的脚本进行(低版本没有):
12$ locate Trini ...
常见的一些 linux 实用命令(持续更新)
这次文涉及到的主要是我在使用 linux 系统时会常使用的命令。
该文仅作笔记用,如果某些奇思妙想能够帮助到其他人也是挺好的。
screen执行在服务器上创造一个如果不终止则将一直存在的终端,不随着关闭自己的终端而消失,而是一直存在于服务器的后台里,并执行其中运行的命令。
常用指令:
1234$ screen -R xxx # 创建并进入 xxx 终端。$ screen -r xxx # 进入已有的 xxx 终端。$ screen -d # 退出当前终端到自己的终端$ screen -ls # 浏览当前所有创建的终端,如果显示 Detached 则表示不在里面,显示 Attached 则反之。
如果要关闭所创建的终端,建议先进入这个终端看看是否还有命令正在运行,确定没有遗漏后,再在这个终端中输入 exit 退出。
df -h & htopdf -h 可以知道还剩余多少空间
htop 直观展现内存占用情况,可以根据剩余的内存合理地设置软件的相关参数。
nohupnohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出 ...
比较转录组分析(二)—— 原始数据的质控与转录组组装
generatePortalLinks(2);
前言这次文涉及到的主要是原始数据的质控与转录组组装,包括一些小知识例如如何判断数据受污染。
更新日志2022-11-18 补充了在 for loop 和 while loop 中使用 & 的需警惕之处。
2022-11-21 补充修改了部分内容。
2022-12-05 更新了物种参考转录组的一些小知识。
2023-07-03 精简了内容。
原始数据的质控提醒后续所提及的测序数据皆为二代测序的双端数据。
二代测序的原理可以搜索 illumina 的下一代测序(NGS)原理介绍视频观看学习(illumina 的测序特点在于桥式扩增,其他测序公司可能略有不同但原理上是一致的,例如 BGI 的滚环扩增)。
所需要的软件有 FastQC、MultiQC、Trimmomatic、Cutadapter(可选)。
需要提前了解的:
测序数据文件中每一行所代表的意思。
123456@V350095853L2C001R0010000000/1GCCCCAACGAAACATCTTACTTGATAAGAATAAAAAACCTTAAACTT ...
比较转录组分析(一)—— 前提及概要
generatePortalLinks(1);
关于生信分析生信分析中会用软件很重要,但我们也应当清楚每一步做了什么以及结果里包含了什么信息,我们能够从这些结果里获得哪些生物学意义,而不是糊里糊涂地跑了一套流程了事。
所以在很多方面我们还是应当具有基础的知识储备,在跑流程的过程里也应当清楚自己在做什么,为什么。
更新日志2022-11-14 补充了分析的流程图
2022-11-21 补充修改了部分内容
2022-12-01 补充修改了部分内容
2023-07-03 精简了内容
2024-03-04 先前 RNA-seq Pipeline 文章的网站已经失效,因此进行了一定的补充修改
所需理论知识
一些基本的生物学知识。
一些基本的统计学知识。
一些基本的编程知识。
事实上并不是一定要知根知底才行,很多东西是可以边分析边学的,但是最基础的一些概念也要有,这里我推荐艾伯特先生的细胞生物学精要作为生物整体框架的理解,看完以后说不定能激发个人对生物的兴趣。而关于统计学方面的知识可能就看个人需求了,但是应该至少清楚自己在分析中所使用的统计学方法的具体原理和假设,以确定自己的分析应用 ...
生信导论
前言该前言部分已于 2024 年 6 月更新:
点看这篇文章看的第一感觉是羞耻,第二感觉是感慨。
时间过得真的是很快的,写这篇文章的时候我还什么都没有做到。现在也算是累积了一些小成果了,一方面是博客上日均访问人数和访问次数都有了极大提升,另一方面是学术上已经在顶刊(IF=17.3)中参与了审稿返修中算是比较重要的工作。很多技能的熟练度也非两年前可比,甚至感觉一开始写这篇文章时候的自己有些傲慢。
学术路上,见的越多感觉自己不知道的也越多。只能说无止境的学习是在科研路上走下去的基础之基础,但想了想干什么事不是这样呢,所以以后也需戒骄戒躁,望诸君共勉。希望两年后再看这篇文章,我同样能感受到自己的进步。
注:以下内容整体结构未变,但根据我目前的认识进行了一些修改。
什么是生信?这个问题的答案事实上也很清楚,生物信息学事实上就是一门通过分析生物信息来探索生物的学科,属于生命科学与计算机科学的交叉学科,目前来看,这门学科已经有了相当庞大的规模,事实上随便翻一篇跟生物有关的论文,里面都或多或少夹杂着生信的学问。
目前国内生信方向的课题组一般来说可以分为两个侧重点:
①、注重上游方法开发。这些课题组一 ...