前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R语言实现蛋白质示意图绘制

R语言实现蛋白质示意图绘制

作者头像
一粒沙
发布2021-09-15 11:29:58
2K0
发布2021-09-15 11:29:58
举报
文章被收录于专栏:R语言交流中心R语言交流中心
今天给大家介绍一个通过uniprot数据库API进行蛋白质示意图的绘制的R包drawProteins。通过这个包可以进行蛋白质域的位置分布的可视化并且可以标注磷酸化位点等信息。我们先了解几个概念:Rel同源区(RHD, Rel蛋白质家族分子结构氨基末端(N端)约300个氨基酸残基(aa)区域具有共同特征),核定位区(真核细胞核膜上的核孔复合体 (nuclearpore complex, NPC) 是细胞核内外进行物质交换的主要通道, 分子量较小的化合物可自由通过NPC或采取被动扩散的方式进入细胞核, 而分子量为50 kD以上的蛋白质则只能通过主动转运进入细胞核. 以这种方式进入细胞核的蛋白质必须在其氨基酸序列上拥有特殊的核定位信号(nuclear localization signal, NLS)以被相应的核转运蛋白(karyopherins) 识别. 核定位信号具有多样性, 包括经典核定位信号(classical NLS,cNLS), 内输蛋白β2识别的核定位信号(又称PY模体-NLS)和其它类型的NLS.),转录激活域(TAD),模体(Motif,序列中局部的保守区域,或者是一组序列中共有的一小段序列模式。更多的时候是指有可能具有分子功能、结构性质或家族成员相关的任何序列模式)。首先看下包的安装:
代码语言:javascript
复制
BiocManager::install("drawProteins")

接下来通过实例直接看下此包的实现过程:

代码语言:javascript
复制
##Uniprot数据的下载
drawProteins::get_features("Q04206")-> rel_json
 
##数据格式化处理
drawProteins::feature_to_dataframe(rel_json)-> rel_data
代码语言:javascript
复制
##绘制结构图
draw_canvas(rel_data)-> p
p <-draw_chains(p, rel_data)
p <-draw_domains(p, rel_data)
代码语言:javascript
复制
##去除结构图的背景
library(ggplot2)
p <- p +theme_bw(base_size = 20) + # white background
    theme(panel.grid.minor=element_blank(),
        panel.grid.major=element_blank()) +
    theme(axis.ticks = element_blank(),
        axis.text.y = element_blank()) +
theme(panel.border = element_blank())
代码语言:javascript
复制
##添加转录激活域

draw_regions(p, rel_data)
代码语言:javascript
复制
##motif和核定位序列绘制
draw_motif(p, rel_data)
代码语言:javascript
复制
##磷酸位点的标注

draw_phospho(p, rel_data, size = 8)
代码语言:javascript
复制
##完整的信息展示
draw_canvas(rel_data) -> p
p <- draw_chains(p, rel_data)
p <- draw_domains(p, rel_data)
p <- draw_regions(p, rel_data)
p <- draw_motif(p, rel_data)
p <- draw_phospho(p, rel_data, size = 8)
 
# white backgnd & change text size
p <- p + theme_bw(base_size = 20) +
   theme(panel.grid.minor=element_blank(),
       panel.grid.major=element_blank()) +
    theme(axis.ticks =element_blank(),
        axis.text.y =element_blank()) +
    theme(panel.border =element_blank())
##add title
rel_subtitle <- paste0("circles = phosphorylationsites\n",
                "RHD =Rel Homology Domain\nsource:Uniprot")
p <- p + labs(title = "Rel A/p65", subtitle = rel_subtitle)
代码语言:javascript
复制
##多个蛋白质域的绘制

prot_data <- drawProteins::get_features("Q04206 Q01201Q04864 P19838 Q00653")
prot_data <- drawProteins::feature_to_dataframe(prot_data)
   
p <- draw_canvas(prot_data)
p <- draw_chains(p, prot_data)
p <- draw_domains(p, prot_data)
p <- draw_repeat(p, prot_data)
p <- draw_motif(p, prot_data)
p <- draw_phospho(p, prot_data, size = 8)
 
# background and y-axis
p <- p + theme_bw(base_size = 20) + # white backgnd & changetext size
   theme(panel.grid.minor=element_blank(),
       panel.grid.major=element_blank()) +
    theme(axis.ticks =element_blank(),
        axis.text.y =element_blank()) +
    theme(panel.border =element_blank())
 
# add titles
rel_subtitle <- paste0("circles = phosphorylationsites\n",
                "RHD =Rel Homology Domain\nsource:Uniprot")
 
p <- p + labs(title = "Schematic of human NF-kappaBproteins",
                subtitle =rel_subtitle)
 
 
# move legend to top
p <- p + theme(legend.position="top") +labs(fill="")

欢迎大家学习交流!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 R语言交流中心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档