蛋白结构预测

Author

Guangchuang Yu
School of Basic Medical Sciences, Southern Medical University

Published

November 10, 2025

实验目的

掌握使用工具对目标蛋白质进行同源建模

实验内容

  1. 下载建模目标序列
  2. 使用SWISS-MODEL进行同源建模
  3. 查看比较模型

实验基于R语言环境,安装R语言,可参考:

目标序列

DMWf18-543和DMWf18-558为两个深海来源的同源脂类水解酶。序列一致性达80.7%,然而底物特异性和偏好性有显著差异。从三维结构探究底物特异性和偏好性机制。

  • DMWf18-558能够水解链长范围较广的脂类底物
  • DMWf18-543仅能水解短链脂类底物

下载目标序列

  • DMWf18-543登录号为AUF80930
  • DMWf18-558登录号为AUF80945

方法一:登录NCBI protein数据库,下载相应的氨基酸序列。

方法二:使用rentrez包下载序列。

library(yulab.utils)
Warning: package 'yulab.utils' was built under R version 4.5.2
pload(rentrez)
── loading the package: rentrez ──
x <- entrez_fetch(db='protein', id=c('AUF80930', 'AUF80945'), rettype='fasta')
cat(x)
>AUF80930.1 lipolytic enzyme [uncultured bacterium]
MASPQLQNIIEMLRSRPSSEDVSVEERRAAYEQIATVLPVAGDVERGKASANGVPGEWFTPPGVAGDITV
YWLHGGGYYMGSVNTYANTIAQIAAACEARAFAIDYRLAPENPFPAGLDDAVAGYRWLLEQGVDPARLVI
GGDSAGGGLSLATLQRLREAGNPLPAATVLLSPWTDLDITGESIKTRRDADPSIDPARLPDFAREYHPDG
DLRDPLVSPLYADFMGLPPMLIQVGDAEVLLDDSTRVYERAEAAGVDVTLEVNDEMIHVFQMFAPMLPEA
VAAIERIGEFAKAHAGAAAAAR

>AUF80945.1 lipolytic enzyme [uncultured bacterium]
MASPQLQNIIQMINARPSREGVPIEETRAAFEQLAMVFPIAGDINRKKAGPDGVSGEWFTPPGVSGDITV
YWLHGGGYYMGSVNTHARMVSLIAKAADARAFTVDYRLAPENPFPAGLDDAVVGYRWLLEQGVDPARLVI
GGDSAGGGLTLAVLQRLREAEIPLPAATVLLSPWTDLESTGESIKTRRAADPMIDPTGALATARGYLPGG
DLRDPLVSPLHADFTGLPPMLIQVGDAEVLLDDSTRVYERADAAGVDVTLEVNDEMIHVFQFFAPLLPEA
VAAIERIGEFAKAHAGAAAAAR

使用SWISS-MODEL进行同源建模

方法一:使用在线服务器

SWISS-MODEL在线同源建模服务器:https://swissmodel.expasy.org/interactive,上传序列进行同源建模,下载建模结果:

方法二:使用R包swissmodel

R包swissmodel提供了调用SWISS-MODEL在线服务器进行同源建模的功能。

使用方法,参考这篇文章:

查看比较模型

使用r3dmol包查看比较两个模型结构。

pload(r3dmol)
── loading the package: r3dmol ──
pload(shiny)
── loading the package: shiny ──
auf80930 <- readLines("AUF80930.pdb")
auf80945 <- readLines("AUF80945.pdb")


r3dmol() |>
    m_add_model(data = auf80945, format = 'pdb') |>
    m_zoom_to() |>
    m_set_style(style = m_style_cartoon(color = 'spectrum')) |>
    m_add_style(
        style = m_style_stick(),
        sel = m_sel(resi = c(144, 238, 269), chain = 'A')
    )
r3dmol() |>
    m_add_model(data = auf80930, format = 'pdb') |>
    m_zoom_to() |>
    m_set_style(style = m_style_cartoon(color = 'spectrum')) |>
    m_add_style(
        style = m_style_stick(),
        sel = m_sel(resi = c(144, 238, 269), chain = 'A')
    ) |>
    m_add_style(
        style = m_style_sphere(),
        sel = m_sel(resi = 199, chain = 'A')
    ) |>
    m_add_label(text = "Ser144", sel = m_sel(resi = 144)) |>
    m_add_label(text = "Glu238", sel = m_sel(resi = 238)) |>
    m_add_label(text = "His269", sel = m_sel(resi = 269)) |>
    m_add_label(text = "Leu199", sel = m_sel(resi = 199)) |>
    m_add_surface(style = m_style_surface(opacity = 0.4)) |>
    m_zoom_to() |>
    m_spin()
r3dmol() |>
    m_add_model(data = auf80945, format = 'pdb') |>
    m_zoom_to() |>
    m_set_style(style = m_style_cartoon(color = 'spectrum')) |>
    m_add_style(
        style = m_style_stick(),
        sel = m_sel(resi = c(144, 238, 269), chain = 'A')
    ) |>
    m_add_style(
        style = m_style_sphere(),
        sel = m_sel(resi = 199, chain = 'A')
    ) |>
    m_add_label(text = "Ser144", sel = m_sel(resi = 144)) |>
    m_add_label(text = "Glu238", sel = m_sel(resi = 238)) |>
    m_add_label(text = "His269", sel = m_sel(resi = 269)) |>
    m_add_label(text = "Leu199", sel = m_sel(resi = 199)) |>
    m_add_surface(style = m_style_surface(opacity = 0.4)) |>
    m_zoom_to()

参考资料