搜索
查看: 1888|回复: 2

[software] 在R里面操作SQLite

[复制链接]

64

主题

138

帖子

681

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
681
发表于 2017-5-3 17:00:01 | 显示全部楼层 |阅读模式
http://www.bio-info-trainee.com/1421.html
大神的原网址,然后顺着走了一遍
首先是命名一个新文件
然后把你想要的信息进行提取再合并
[AppleScript] 纯文本查看 复制代码
##################
install.packages("KEGG.db")
library(RSQLite)
sqlite    <- dbDriver("SQLite")#下载一个driver
con <- dbConnect(sqlite,"hg19_bioconductor.sqlite") # makes a new file#连接到经过适当认证过程的DBMS
suppressMessages(library(org.Hs.eg.db))#从message生成诊断消息
kegg2ID=toTable(org.Hs.egPATH)#提取指定的列
#[1] "gene_id" "path_id"
dbWriteTable(con,'keggID2geneID',kegg2ID,row.name=F,overwrite=T)
go2id=toTable(org.Hs.egGO2ALLEGS)
## gene_id      go_id Evidence Ontology
dbWriteTable(con,'goID2geneID',go2id,row.name=F,overwrite=T)
library(KEGG.db)
library(GO.db)
#ls("package:KEGG.db")
#ls("package:GO.db")
keggID2name=toTable(KEGGPATHID2NAME)#提取KEGGPATHID2NAME的信息
##[1] "path_id"   "path_name"
dbWriteTable(con,'keggID2name',keggID2name,row.name=F,overwrite=T)#将,keggID2name写入con
all_go=mappedkeys(GOTERM)
go2name=data.frame(go_id=all_go,term=as.character(Term(all_go)))
dbWriteTable(con,'go2name',go2name,row.name=F,overwrite=T)

suppressMessages(library("org.Hs.eg.db"))
all_EG=mappedkeys(org.Hs.egSYMBOL)

## 提取所需的信息
tmp=unlist(as.list(org.Hs.egSYMBOL))
EG2Symbol=data.frame(EGID=names(tmp),symbol=as.character(tmp))#[1]EGID symbol

tmp=unlist(as.list(org.Hs.egENSEMBL))
EG2ENSEMBL=data.frame(EGID=names(tmp),ENSEMBL=as.character(tmp))#[1] EGID         ENSEMBL

tmp=unlist(as.list(org.Hs.egGENENAME))
EG2name=data.frame(EGID=names(tmp),name=as.character(tmp))#[1] EGID GENENAME

tmp=unlist(as.list(org.Hs.egMAP))
EG2MAP=data.frame(EGID=names(tmp),MAP=as.character(tmp))# [1]  EGID     MAP

#把所有的列合并为一列
tmp=merge(EG2Symbol,EG2MAP,by='EGID',all=TRUE)
tmp=merge(tmp,EG2ENSEMBL,by='EGID',all=TRUE)
my_gene_mapping=merge(tmp,EG2name,by='EGID',all=TRUE)
##[1] "EGID"    "symbol"  "MAP"     "ENSEMBL" "name"
apply(my_gene_mapping,2,function(x) length(unique(x)))#去除重复
dbWriteTable(con,'my_gene_mapping',my_gene_mapping,row.name=F,overwrite=T)
dbDisconnect(con)
###之后直接调用即可


我用excel打开都是乱码,嗷
回复

使用道具 举报

634

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2017-5-3 20:58:13 | 显示全部楼层
SQLite是一个数据库文件,需要用数据库客户端打开,怎么能用excel呢
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复 支持 反对

使用道具 举报

64

主题

138

帖子

681

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
681
 楼主| 发表于 2017-5-4 10:43:10 | 显示全部楼层
Jimmy 发表于 2017-5-3 20:58
SQLite是一个数据库文件,需要用数据库客户端打开,怎么能用excel呢

啊,这样啊,感谢嘿嘿
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2019-10-22 22:59 , Processed in 0.030760 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.