侧边栏壁纸
  • 累计撰写 51 篇文章
  • 累计创建 1 个标签
  • 累计收到 14 条评论
标签搜索

目 录CONTENT

文章目录

系统发育分析 - 基因家族分析

食用菌精准育种实验室-实验宝典
2024-01-20 / 0 评论 / 0 点赞 / 1,096 阅读 / 4,691 字

原创内容,欢迎转载,转载请注明出处


主笔:于浩


一、准备工作

1、需要有一个“初始目标基因“,有一个初始的基因或者蛋白的序列(通常为蛋白序列),这个序列是用来通过序列比对寻找其他同源蛋白用的。可以是自己研究的基因,也可以是从其他的文献中下载的蛋白。

2、需要学会使用Blast等软件进行序列比对,Blast的使用可以参考教程“序列比对:Blast序列比对”。

3、需要学会使用利用Pfam等数据库进行结构域的比对。

4、用来比对的数据库,比如说已经测序的基因组的所有的蛋白序列。



二、基因家族分析流程

基因家族分析基本流程

1、基因家族分析的目的

(1)什么是基因家族

基因家族就是来源于一个祖先,有一个基因通过基因重复而产生的两个或者多个拷贝而构成的一组基因(蛋白),包括直系同源基因和旁系同源基因。这些基因在结构和功能上面具有明显的相似性,大部分的情况下来自于同一个物种的旁系同源的基因会分散在基因组的不同的位置,可能具有不同的表达调控模式。

我们可以按照功能把一些基因家族分成一个家族,比如说CAZymes基因家族,也可以按照序列相似性来进行比较,比如说在基因组分析的时候利用orthoMCL、Orthofinder等工具进行分类。上面两种情况的分类分别代表了两种鉴定方法,前者是基于Motif(假设相同的Motif具有相似的功能)来进行基因家族成员鉴定的,后面是根据序列相似性来进行序列比对的(常采用Blastp或者diamond进行蛋白序列比对)。

(2)基因家族的组成和遗传演化

根据上面说过的,基因家族具有相同的祖先,如果这个基因家族是跟这个物种的重要生理学功能相关联的,通常用这些基因家族的遗传演化就能够研究整个物种或者群落的进化和重要生理功能之间的关系。

(3)功能预测和功能分析

本来结构域或者序列比对就是为了预测和功能分析。我们利用基因家族分析通常是要跟模式生物的这些基因家族进行分析。在真核生物中基因通常是多拷贝的,每个拷贝的基因功能上存在差异也存在互补,如果在功能未知的情况下,可以根据与模式生物的基因家族进行分析,通过模式生物的基因的功能和表达规律,来对我们要研究的目标基因的功能进行预测。


2、基因家族分析基本流程

(1)确定并了解要研究的基因家族

这一步最重要的就是读文献

  • 需要根据实际的科学问题和科研内容来确定要研究的基因家族。在确定了要研究的基因家族之后要读文献来确定自己所研究的基因家族是基于什么来进行分类的。就像前面说过的,比如说是如果研究的是MYB转录因子,那么就是基于结构域(MYB结构域)进行分类的基因家族。如果研究的是青霉素类抗生素的抗性基因β-内酰胺酶,那么基因家族的鉴定就要基于序列比对进行。

  • 我们需要阅读大量的文献,先把目前已经报道的,在别的生物中已经确定过功能,报道过序列的基因的蛋白序列获取作为初始参考序列。

  • 我们可以去寻找一些专门的数据库,很多重要的基因家族会有数据库,以这些数据库中的基因家族序列作为参考序列是一个可行的方法,比如说P450蛋白家族数据库等。

  • NCBI或者UniProt上面的全基因组注释信息也可以直接寻找到我们想要研究的基因家族,也可以作为初始参考序列。

(2)目标基因家族搜索与筛选

没有通用的目标基因家族检索的方法

(3)系统发育树构建

  • 基因家族分析所用的序列相似定都很高,在序列较少的情况下,建议直接用MEGA软件用NJ法来构建。

  • 序列较多,或使用最大似然法构建系统发育树,建议使用服务器进行构建。

(4)深入分析基因(蛋白)结构

  • 在很多情况下需要对目标基因的一些基本的蛋白结构进行分析,进一步对其功能进行解析。

3、demo数据

我们现在计划对侧耳属的食用菌平菇、杏鲍菇中的漆酶基因(家族)进行分析,初始的蛋白序列是来自于香菇中的漆酶的序列。

demo数据下载地址

  • proteins.fa:平菇PC9的所有蛋白序列
  • proteinsPery.fa:杏鲍菇的所有蛋白序列
  • start.fa:香菇中的漆酶序列

基于序列相似性来进行基因家族成员的检索

1、软件的使用

基因家族分析真正比对的实际上是蛋白序列,蛋白序列比对的软件有blastp、diamond、MMSeq2、ParaAT等。其中最常用的就是blastp、其次是diamond,其中diamond的速度要远远高于blastp,而且比对的效果基本上跟blastp没有区别,如果平时做序列比对,数据量不大的情况下就只学习blastp就行了,但是如果database的序列条数特别多,那么使用diamond能够大大加快比对效率。

2、利用blastp来确定基因家族成员

根据demo数据,利用下面的代码可以比对出来结果,最终的结果文件就是resultall.txt,可以用excel打开,主要的就是筛选过程,这个第4部分再讲。

# 利用参考序列与第一个菌株的蛋白进行比较
makeblastdb -in proteins.fa -out proteins -dbtype prot
blastp -query start.fa -db proteins -outfmt 6 -out result1.txt -evalue 1e-5

# 利用参考序列与第2个菌株的所有蛋白进行比较
makeblastdb -in proteinsPery.fa -out proteinsPery -dbtype prot
blastp -query start.fa -db proteinsPery -outfmt 6 -out result2.txt -evalue 1e-5

# 合并两个结果
cat result1.txt result2.txt > resultall.txt

3、利用diamond软件来确定基因家族成员

根据demo数据,利用下面的代码可以比对出来结果,最终的结果文件就是resultall.txt,可以用excel打开,主要的就是筛选过程,这个第4部分再讲。

# 利用参考序列与第一个菌株的蛋白进行比较
diamond makedb --in proteins.fa --db proetins
diamond blastp --db proteins --query start.fa  --out result1.txt

# 利用参考序列与第2个菌株的所有蛋白进行比较
diamond makedb --in proteinsPery.fa --db proetinsPery
diamond blastp --db proteinsPery --query start.fa  --out result2.txt

# 合并两个结果
cat result1.txt result2.txt > resultall.txt

4、结果筛选

跟下面一部分结构域不同,结构域鉴定通常来说有这个结构域就是这个基因家族,蛋白序列比对有可能是局部具有相似性,也可能是全局具有相似性。相似性程度不同,功能就会不同。网上有资料说全局相似性大于30%就有可能具有相似的功能。所以我们利用序列比对的方法来进行基因家族筛选的时候,筛选标准就是一个非常重要的指标。

下面几种筛选方法只是建议值,没有一个具体的标准,你根据某个标准筛选出来的蛋白通常还需要单独的重新进行比对注释,如果注释的结果没有问题,才可以使用,当然在大规模筛选的时候这一步一般不做,设定一个合适的阈值非常重要,只能凭借经验来做,无论怎么选择阈值,这个参数和上面的序列比对的参数一定要在实验记录上面标记清楚:

  • sequence identity > 70%

  • sequence identity > 50% & coverage > 70%

  • evalue < 某个阈值(这个期望值是综合考虑了identity和覆盖度的结果)



根据结构域来进行基因家族成员的检索

1、软件的使用

(1)利用结构域来进行基因家族成员检索通常是用“是否含有这个结构域”作为判断指标,只要有就是这个家族的,没有就不是这个家族的。所以结构域的鉴定是最重要的。

(2)结构域分析可以使用在线服务器来进行分析,比如说利用SMART数据库和NCBI的CDD数据库都可以批量预测蛋白的结构域,把这些结构域批量比对的结果统计出来就可以从中筛选我们的目标基因了。具体的方法可以参考:蛋白分析 - 结构域分析(SMART, CDD, Pfam)

(3)结构域分析也可以使用服务器和本地的Pfam数据库来进行基因家族的检索,常用的就是利用hmmer软件,用下载的最新的Pfam数据库作为本地数据库进行结构域的预测,具体的方法可以参考:蛋白分析 - 结构域分析(SMART, CDD, Pfam)。我自己编写的脚本(下载地址)可以把比对结果整理成为excel表格的形式,直接搜索自己预期的结构域就行了。

2、利用hmmer和Pfam数据库来检索基因家族成员

具体的软件安装等操作参考:蛋白分析 - 结构域分析(SMART, CDD, Pfam)

(1)分析demo数据的所有蛋白的结构域

准备好了Pfam数据库和hmmer工具之后,把所有的蛋白序列放到proteome.fa文本文档里面,可以用下面的代码来进行蛋白批量的pfam结构域预测。

# 用下面的脚本批量进行蛋白的pfam结构域预测
hmmscan -o out.txt --tblout  pfam_out.tbl   --noali -E    1e-5  Pfam-A.hmm    proteins.fa

# proteins.fa  demo数据中的要分析的蛋白序列,需要是fasta结构
# pfam_out.tbl  以表格形式输出的pfam比对的结果
# 比对的evalue值为最常用的默认参数

(2)提取Pfam蛋白预测结果整理成为excel表格的形式

按照我写的一个python脚本文件,可以将上面生成的 pfam_out.tbl 文件中的各个蛋白的Pfam结构域信息提取出来。

python脚本的下载地址如下:下载地址

# 分析都在linux服务器上面进行
python3 annotation_extraction_pfam.py

改脚本会生成两个excel表格文件:

prediction_info_from_pfam.xlsx:就是把pfam_out.tbl文件整理成为excel表格的形式。

proteome_annotation_pfam.xlsx:就是提取出来的每个蛋白的pfam结构域的注释信息,其中如果一个蛋白有多个结构域,不同结构域就会用“; "隔开。

3、利用dbCAN数据库筛选CAZymes基因家族成员

(1)有一些基因家族非常成熟了,研究的非常深入了,这些基因家族会专门做一个数据库,用这个数据库来进行基因家族的分析。比如说CAZymes家族的蛋白,有专门的dbCAN等数据库对这些基因家族的蛋白进行预测,对于这些基因家族的成员建议使用专门的数据库进行检索。利用序列比对来对具体的功能进行注释。

(2)CAZymes基因家族的成员的检索请参考教程:蛋白分析 - 碳水化合物活性酶(CAZymes)注释(暂未上传)。

4、结果筛选

(1)根据上面所说的通常来说我们可以根据是否具有某个结构域来作为判断的标准,比如说含有 “Myb_DNA-binding” 结构域的蛋白我们就可以认为是MYB家族的转录因子。但是有一些情况下,我们需要更为细致的基因家族分类,比如说MAPK、MAPKK、MAPKKK,都会含有 “Pkinase” 结构域,这个时候,如果我们就要研究 MAPK 那么就需要通过Blast或者diamond软件的序列比对来进一步确定。

(2)就像上面说的一样,最好同时做序列比对和结构域分析,把这两个结果取并集,作为最终的基因家族群体,这一步应该是必须要做的操作,不应该是选座的步骤。



三、系统发育分析

1、整理序列

把第二部分检索到的序列整理成为fasta的格式,通常名字可以按照下面的格式进行整理。

物种学名缩写(或者不缩写)+ 基因/蛋白名称 + 基因蛋白编号

微信截图_20240119171451.jpg

2、构建系统发育树

如果序列条数较少,或者说要使用邻接法(Neighbor-Joining)构建系统发育树,建议使用MEGA软件来进行构建。具体的教程可以参考:系统发育分析 - 利用MEGA进行多序列比对和进化树构建

如果序列条数非常多,比如说超过了100条,或者说希望用最大似然法(Maximum Likelihood)来构建进化树,建议使用iQTree来构建进化树,具体的教程可以参考:系统发育分析 - 多序列比对、系统发育树构建和可视化



四、基因结构和表达分析

1、基因结构分析

上面的进化树分析是最基础的必选分析项目,除了系统发育树之外,如果实验部分内容不多,通常要对基因家族的成员进行更为详细的研究,例如:

2、基因表达分析

基因家族分析前面都属于纯生物信息学分析,如果要加实验部分,最简单的就是加组学数据和RT-qPCR的数据,例如:

0

评论区