搜索
查看: 2120|回复: 0

我想迅速拿到一系列基因的详细信息

[复制链接]

634

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2017-3-2 17:24:35 | 显示全部楼层 |阅读模式
包括的基因的几个常见的ID,基因的染色体定位,坐标,还有它以前的一些别名,最好是给我一些可以点击的链接~
我这里举一个例子,找 乙酰化酶Sirtuin 的几个基因,如下:

其实本质上还是一个基因ID转换而已~~~

下面的 R 代码,其实可以包装成一个函数~

[AppleScript] 纯文本查看 复制代码
library(org.Hs.eg.db)
allSymbols=unique(mappedRkeys(org.Hs.egSYMBOL))
sirt_genes = grep('SIRT',allSymbols,value = T)

GeneList  <- sirt_genes


eg2symbol=toTable(org.Hs.egSYMBOL)
eg2name=toTable(org.Hs.egGENENAME)
eg2map=toTable(org.Hs.egMAP)
eg2start=toTable(org.Hs.egCHRLOC)
eg2end=toTable(org.Hs.egCHRLOCEND)

eg2alias=toTable(org.Hs.egALIAS2EG)
eg2alis_list=lapply(split(eg2alias,eg2alias$gene_id),function(x){paste0(x[,2],collapse = ";")})
#eg2accum=toTable(org.Hs.egACCNUM)
#eg2accum_list=lapply(split(eg2accum,eg2accum$gene_id),function(x){paste0(x[,2],collapse = ";")})


 
if( GeneList[1] %in% eg2symbol$symbol ){
  symbols=GeneList
  geneIds=eg2symbol[match(symbols,eg2symbol$symbol),'gene_id']
}else{
  geneIds=GeneList
  symbols=eg2symbol[match(geneIds,eg2symbol$gene_id),'symbol']
}
geneNames=eg2name[match(geneIds,eg2name$gene_id),'gene_name']
geneMaps=eg2map[match(geneIds,eg2map$gene_id),'cytogenetic_location']
geneStart=eg2start[match(geneIds,eg2name$gene_id),'start_location']
geneEnd=eg2end[match(geneIds,eg2name$gene_id),'end_location']
geneChr=eg2start[match(geneIds,eg2name$gene_id),'Chromosome']
  
geneAlias=sapply(geneIds,function(x){ifelse(is.null(eg2alis_list[[x]]),"no_alias",eg2alis_list[[x]])})
#geneAssnum=sapply(geneIds,function(x){ifelse(is.null(eg2accum_list[[x]]),"no_accnum",eg2accum_list[[x]])})



createLink <- function(base,val) {
  sprintf('<a href="%s" class="btn btn-link" target="_blank" >%s</a>',base,val) ##target="_blank" 
}
gene_info=data.frame(   symbols=symbols,
                        geneIds=createLink(paste0("http://www.ncbi.nlm.nih.gov/gene/",geneIds),geneIds),
                        geneNames=geneNames,
                        geneAlias=geneAlias,
                        #accnum=geneAssnum,
                        map=geneMaps,
                        chr=geneChr,
                        start=geneStart,
                        end=geneEnd,
                        stringsAsFactors = F
) 
#library("xtable") 
#print(xtable(gene_info), type="html",include.rownames=F, file='all_gene.anno',sanitize.text.function = force)
file='gene_info_bioconductor.html'
y <- DT::datatable(gene_info,escape = F,rownames=F)
DT::saveWidget(y,file)




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x



上一篇:在R里面把变量write.table之后竟然不一定能read.table
下一篇:搜集表达谱/RNA-seq,寻找组织特异性表达基因
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-9-16 09:16 , Processed in 0.063608 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.