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

image

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

一般的做法是拿基因名或者蛋白名去查文献,查网站。我知道的:uniprotPDBthe human protein atlas都能查到蛋白质表达定位相关的信息。
uniprot为例,假设我想查询CD79B这个基因/蛋白,网站输入基因名,在结果页面的左侧菜单栏,点击Subcellular location

image

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

image
image

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

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

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

image

然后开整

# 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")

最后的表格是这样的:

image

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

image

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

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

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

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

往期答疑

答读者问(7):关于doublet

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

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

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

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

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

版权声明:
作者:admin
链接:https://www.techfm.club/p/48685.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>