同源基因分析(根据氨基酸序列)


目的:分析同源基因的进化情况
做法:

  1. 获取同源基因编码的氨基酸序列
  2. 序列比对
  3. 构建进化树
  4. 绘制进化树

下面逐步进行拆解:

1. 获取氨基酸序列

可以利用某个物种已知的蛋白质序列,在NCBI blastp进行search,然后将search的结果保存为fasta文件

2. 序列比对

使用多序列比对工具(Multiple Sequence Alignment, MSA)对这些氨基酸序列进行比对。常用的MSA工具包括:

  • Clustal Omega: 适用于大规模的序列比对。
  • MUSCLE: 高精度且快速的多序列比对工具。
  • MAFFT: 适合于长序列的多序列比对。
    如果只是想展示几个物种间序列一致性,可以使用 SnapGene

    3. 构建进化树

    根据多序列比对的结果,构建进化树。常用的方法包括:
  • 邻接法(Neighbor-Joining, NJ): 简单且快速,适合大规模数据。
  • 最大似然法(Maximum Likelihood, ML): 精度较高,但计算复杂度大。
  • 贝叶斯推断法(Bayesian Inference, BI): 精度高且可估计不确定性,但计算时间长。

    4. 绘制进化树

    使用专门的软件或工具绘制进化树,常用的软件包括:
  • MEGA (Molecular Evolutionary Genetics Analysis): 综合性较强的序列分析和进化树构建工具。
  • PhyML: 基于最大似然法构建进化树。
  • MrBayes: 基于贝叶斯推断法构建进化树。
  • FigTree: 进化树可视化工具。
  • iTOL (Interactive Tree Of Life): 在线进化树绘制和注释工具。

可以选择一些工具组合成流程:

组合1. Clustal Omega + MEGA + FigTree

  1. 多序列比对:Clustal Omega
    你可以在线使用Clustal Omega或在本地安装并运行Clustal Omega进行多序列比对。
    输入序列文件(例如 sequences.fasta),生成比对结果(例如 sequences.aln)。
  2. 构建进化树:MEGA
    将比对结果导入MEGA软件,选择构建进化树的方法(例如邻接法或最大似然法)。
    MEGA界面友好,可以进行参数设置和结果调整。
  3. 绘制进化树:FigTree
    将MEGA生成的树文件导入FigTree,进行进化树的可视化。
    FigTree提供丰富的可视化选项,可以对树形、颜色、标签等进行调整。

组合2. MUSCLE + PhyML + iTOL

  1. 多序列比对:MUSCLE
    在本地运行MUSCLE进行多序列比对。
    输入序列文件(例如 sequences.fasta),生成比对结果(例如 sequences.aln)。
    muscle -in sequences.fasta -out sequences.aln
  2. 构建进化树:PhyML
    将比对结果导入PhyML,选择构建进化树的方法(例如最大似然法)。
    PhyML在命令行运行,可以指定多种参数。
    phyml -i sequences.aln -d aa
  3. 绘制进化树:iTOL
    将PhyML生成的树文件上传到iTOL在线工具。
    iTOL提供丰富的在线注释和可视化选项,可以对树形、颜色、标签等进行调整。

组合3. MAFFT + RAxML + FigTree

  1. 多序列比对:MAFFT
    在本地运行MAFFT进行多序列比对。
    输入序列文件(例如 sequences.fasta),生成比对结果(例如 sequences.aln)。
    mafft --auto sequences.fasta > sequences.aln
  2. 构建进化树:RAxML
    将比对结果导入RAxML,选择构建进化树的方法(例如最大似然法)。
    RAxML在命令行运行,可以指定多种参数。
    raxmlHPC -s sequences.aln -n output -m PROTCATLG
  3. 绘制进化树:FigTree
    将RAxML生成的树文件导入FigTree,进行进化树的可视化。
    FigTree提供丰富的可视化选项,可以对树形、颜色、标签等进行调整。

    使用 Biopython

    from Bio.Align.Applications import ClustalOmegaCommandline, MuscleCommandline, MafftCommandline
    from Bio.Phylo.Applications import PhymlCommandline, RaxmlCommandline
    from Bio import Phylo
    
    # Step 1: 多序列比对(选择一个工具)
    # Clustal Omega
    clustalomega_cline = ClustalOmegaCommandline(infile="sequences.fasta", outfile="sequences.aln", verbose=True, auto=True)
    clustalomega_cline()
    
    # 或者 MUSCLE
    muscle_cline = MuscleCommandline(input="sequences.fasta", out="sequences.aln")
    muscle_cline()
    
    # 或者 MAFFT
    mafft_cline = MafftCommandline(input="sequences.fasta")
    mafft_cline(stdout="sequences.aln")
    
    # Step 2: 构建进化树(选择一个工具)
    # PhyML
    phyml_cline = PhymlCommandline(input="sequences.aln", datatype="aa")
    phyml_cline()
    
    # 或者 RAxML
    raxml_cline = RaxmlCommandline(sequences="sequences.aln", model="PROTCATLG", name="output")
    raxml_cline()
    
    # Step 3: 绘制进化树(以FigTree为例)
    tree = Phylo.read("output.tree", "newick")
    Phylo.draw(tree)

重要文件格式

muscle 生成的 aln 文件格式是什么样的

MUSCLE(Multiple Sequence Comparison by Log-Expectation)生成的比对结果文件(.aln)通常是以CLUSTAL格式(即ClustalW格式)保存的。以下是一个典型的MUSCLE生成的CLUSTAL格式的示例:

CLUSTAL O(1.2.4) multiple sequence alignment


seq1     MKTAYIAKQRQISFVKSHFSRQDILDLWIYHTQGYFPQFL
seq2     MKTAYIAKQRQISFVKSHFSRQDILDLWIYHTQGYFPQFL
seq3     MKTAYIAKQRQISFVKSHFSRQDILDLWIYHTQGYFPQFL

seq1     RNAPLIWKRKRQIQKKSLKQKNNIQEQLSKDDTKEIKDLR
seq2     RNAPLIWKRKRQIQKKSLKQKNNIQEQLSKDDTKEIKDLR
seq3     RNAPLIWKRKRQIQKKSLKQKNNIQEQLSKDDTKEIKDLR

seq1     KLKH
seq2     KLKH
seq3     KLKH

文件格式说明
头部信息:
文件开始部分有一个CLUSTAL的标识,通常后面会跟着版本信息,例如CLUSTAL O(1.2.4)。
序列块:

序列按块排列,每块一般包含固定数量(例如60个)的氨基酸残基。
每个块内,序列名称和序列本身按列对齐。
相同位置的相同氨基酸会在对齐标识线上显示一个标识(一般是空格)。
对齐标识:

每个块的下面有一行对齐标识线。对于相同位置的相同氨基酸,通常用星号(*)标识;对于类似氨基酸,有时用点(.)或冒号(:)标识。

生成ALN文件后,可以使用这些工具和软件来进一步分析和绘制进化树:

  • MEGA:可以直接导入ALN文件进行进化树构建。
  • PhyML:也支持CLUSTAL格式的输入。
  • RAxML:需要将ALN文件转换为兼容格式(例如PHYLIP)。
  • FigTree 或 iTOL:用于进化树的可视化。

文章作者: 梁绍波
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 梁绍波 !
评论
  目录