多序列比对可视化

作者

[编辑] 苗奔奔

修改于

2026-01-17

多序列比对(Multiple Sequence Alignment, MSA)是生物信息学中一项基础且关键的技术,用于将三个或更多生物序列(DNA、RNA 或蛋白质)按照其进化或结构上的相似性进行排列,使得同源位点(即来自共同祖先的位点)尽可能对齐。

示例

MultiSeqsAlignment

环境配置

  • 系统要求: 跨平台(Linux/MacOS/Windows)

  • 编程语言:R

  • 依赖包:ggmsa

# 安装包
if (!requireNamespace("ggmsa", quietly = TRUE)) {
  install.packages("ggmsa")
}

# 加载包
library(ggmsa)
sessioninfo::session_info("attached")
─ Session info ───────────────────────────────────────────────────────────────
 setting  value
 version  R version 4.5.2 (2025-10-31)
 os       Ubuntu 24.04.3 LTS
 system   x86_64, linux-gnu
 ui       X11
 language (EN)
 collate  C.UTF-8
 ctype    C.UTF-8
 tz       UTC
 date     2026-01-17
 pandoc   3.1.3 @ /usr/bin/ (via rmarkdown)
 quarto   1.8.27 @ /usr/local/bin/quarto

─ Packages ───────────────────────────────────────────────────────────────────
 package * version date (UTC) lib source
 ggmsa   * 1.16.0  2025-10-29 [1] Bioconduc~

 [1] /home/runner/work/_temp/Library
 [2] /opt/R/4.5.2/lib/R/site-library
 [3] /opt/R/4.5.2/lib/R/library
 * ── Packages attached to the search path.

──────────────────────────────────────────────────────────────────────────────

数据准备

DNA/RNA/氨基酸序列数据通常以FASTA格式存储,每个序列由一个描述行(以“>”开头)和随后的序列行组成。

# 示例数据
protein_fasta <- system.file("extdata", "sample.fasta", package = "ggmsa")

# 查看数据
seqs <- readLines(protein_fasta)
head(seqs)
[1] ">PH4H_Rattus_norvegicus"                                                         
[2] "MAAVVLENGVLSRKLSDFGQETSYIEDNSNQNGAISLIFSLKEEVGALAKVLRLFEENDINLTHIESRPSRLNKDEYEFF"
[3] "TYLDKRTKPVLGSIIKSLRNDIGATVHELSRDKEKNTVPWFPRTIQELDRFANQILSYGAELDADHPGFKDPVYRARRKQ"
[4] "FADIAYNYRHGQPIPRVEYTEEEKQTWGTVFRTLKALYKTHACYEHNHIFPLLEKYCGFREDNIPQLEDVSQFLQTCTGF"
[5] "RLRPVAGLLSSRDFLGGLAFRVFHCTQYIRHGSKPMYTPEPDICHELLGHVPLFSDRSFAQFSQEIG-LASLGAPDEYIE"
[6] "KLATIYWFTVEFGLCKEG-DSIKAYGAGLLSSFGELQYCLSD-KPKLLPLELEKTACQEYSVTEFQPLYYVAESFSDAKE"

可视化

1. 蛋白质多序列比对

蛋白质多序列比对可视化展示了多个蛋白质序列在特定区域的比对情况,帮助识别保守区域和变异位点,提供专业的氨基酸序列颜色方案。

# 蛋白质多序列比对
p <- ggmsa(
  protein_fasta,
  start = 300,
  end = 330,
  font = "DroidSansMono",
  color = "Chemistry_AA",
  char_width = 0.5,
  seq_name = TRUE,
  consensus_views = FALSE
)

p
图 1: 蛋白质多序列比对

2. 多序列比对及统计

多序列比对结果统计图展示了多个序列在比对区域内的保守性和变异情况,帮助识别关键位点和区域。

# 多序列比对及统计
p <- ggmsa(
  protein_fasta,
  start = 300,
  end = 320,
  font = "DroidSansMono",
  color = "Chemistry_AA",
  char_width = 0.5,
  seq_name = TRUE,
  consensus_views = FALSE
) +
  geom_msaBar()

p
图 2: 多序列比对及统计