答读者问(8):如何批量查询marker基因(对应的蛋白)会不会在膜上表达?

做实验的朋友们对这个问题应该是很感兴趣的,因为涉及到后续能不能实验验证。

一般的做法是拿基因名或者蛋白名去查文献,查网站。我知道的:uniprotPDBthe human protein atlas都能查到蛋白质表达定位相关的信息。网址分别如下:

  • https://www.uniprot.org/
  • https://www.rcsb.org/
  • https://www.proteinatlas.org/

uniprot为例,假设我想查询CD79B这个基因/蛋白,网站输入基因名,在结果页面的左侧菜单栏,点击Subcellular location

之后,蛋白的亚细胞定位就显示出来了:
有两个参考结果:uniprot annotationGO annotation

两个参考结果的意思差不多,都说的是膜蛋白

但是如果我把这个方法发给他,我内心会不安,因为一个一个查太耗时间了。

所以就写了这篇帖子,教他如何批量查询。
先来看看最初的marker gene表格:

然后开整

# install.packages("UniprotR")
# BiocManager::install("GenomicAlignments")
library(UniprotR)
library(tidyverse)
library(org.Hs.eg.db)
markerdf=read.csv("test_marker_gene.csv",header = T) #Seurat::FindAllMarkers得到的数据框
namedf=clusterProfiler::bitr(markerdf$gene,fromType="SYMBOL", toType=c("UNIPROT"), OrgDb="org.Hs.eg.db") #会有一对多的情况

namedf$s_c=""
namedf$go_c=""
for (i in 1:nrow(namedf)) {
  go_cellular_component <- GetProteinAnnontate(ProteinAccList = namedf$UNIPROT[i],columns = "go_c")
  
  subcellular_location_res=GetSubcellular_location(ProteinAccList = namedf$UNIPROT[i])
  subcellular_location_res=subcellular_location_res[,1]
  
  namedf$go_c[i] = go_cellular_component
  namedf$s_c[i] = subcellular_location_res
  print(i)
}
colnames(namedf)[1]="gene"
markerdf2=markerdf%>%left_join(namedf,by = "gene")

最后的表格是这样的:

代码很容易,使用起来应该没有什么难度。

这种批量的方法用到的R包,UniprotR,其实是通过API的方法访问Uniprot网站获取信息。

我上一次讲的如何获取kegg通路的基因列表,也是用的这类方法,涉及到的R包是KEGGREST

并不是每次给读者答疑我都会写帖子,网上很容易搜到答案的,我不想写。

ok,这一期的答疑就到这里,祝大家生活愉快!

往期答疑

答读者问(7):关于doublet

答读者问(6):单细胞TPM矩阵如何分析?

答读者问(5):提取monocle2的拟时序/坐标重新画图

答读者问(4):inferCNV的几个问题

答读者问(2):细胞cluster没有聚在一起;去不去批次效应

答读者问(1):非模式物种找marker;如何根据marker定义细胞类型

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值