在使用clusterProfiler包时,CGC的部分ID被和谐了
CGC中723个基因通过ClusterProfiler
的bitr
函数转换后,有15个基因无法匹配到对应的EntrezID。我通过与genecard比较,找出了作妖的原因。
究竟是什么原因呢?
ID不对!CGC提供的id不是标准的ID,无法通过org.Hs.eg.db
索引到相应的其他类型ID。我用了一个笨办法,从genecard逐个挑出了这些基因的标准ID,贴上了对应的EntrezID。
Gene Symbol GeneCardID EntrezID
C2orf44 WDCP 80304
CASC5 KNL1 57082
FAM46C TENT5C 54855
KIAA1598 SHTN1 57698
LHFP LHFPL6 10186
MKL1 MRTFA 57591
MLLT4 AFDN 4301
RUNDC2A SNX29 92017
SEPT5 SEPTIN5 5413
SEPT6 SEPTIN6 23157
SEPT9 SEPTIN9 10801
WHSC1 NSD2 7468
WHSC1L1 NSD3 54904
ZNF198 ZMYM2 7750
ZNF278 PATZ1 23598
随后将这15基因的GeneCardID作为输入,能正确匹配对应ID。
cgc.genecard <- c("WDCP","KNL1","TENT5C","SHTN1","LHFPL6",
"MRTFA","AFDN","SNX29","SEPTIN5","SEPTIN6","SEPTIN9",
"NSD2","NSD3","ZMYM2","PATZ1")
bitr(cgc.genecard,
fromType="SYMBOL",
toType="ENTREZID",
OrgDb="org.Hs.eg.db",
drop = F)
'select()' returned 1:1 mapping between keys and columns
SYMBOL ENTREZID
1 WDCP 80304
2 KNL1 57082
3 TENT5C 54855
4 SHTN1 57698
5 LHFPL6 10186
6 MRTFA 57591
7 AFDN 4301
8 SNX29 92017
9 SEPTIN5 5413
10 SEPTIN6 23157
11 SEPTIN9 10801
12 NSD2 7468
13 NSD3 54904
14 ZMYM2 7750
15 PATZ1 23598
哎,有没有什么办法比较轻松的解决CGC与genecard中标准基因名不一致的问题?
哎,用了clusterProfiler就得用org.Hs.eg.db,怎么更好的解决org.Hs.eg.db和ensemble间的不协调呢?
org.Hs.eg.db包也有待商榷
剔除了15个基因后,剩余708个基因。但通过bitr
转换ID后,发现我获得了709个观测。WTF!
View(as.data.frame(table(geneid$SYMBOL)))
原来,这家伙作妖了。。
TEC 7006
TEC 100124696
随后,在google中以关键词tec 100124696
确实也搜到了相关的记录。原来,7006
指位于chr4的TEC对应tec protein tyrosine kinase
,而100124696
指位于chr19上的transient erythroblastopenia of childhood
。
命名不规范带来的镇痛,恶心!
想做个好点儿的生信分析,怎么处处都是陷阱?
--- 这是一条分割线 ---
bioMart转换基因ID
require(biomaRt)
load('../Rdata/CGC723.Rdata')
ensembl = useMart("ensembl",dataset="hsapiens_gene_ensembl")
gene <- as.character(CGC723$`Gene Symbol`)
geneid <- getBM(attributes = c("hgnc_symbol","entrezgene_id"),
filters = 'hgnc_symbol',
values = gene,
mart = ensembl)
dim(geneid)
[1] 703 2
好家伙,竟然又丢了5个基因。
话说,CGC用的基因名,ensemble不能完全识别吗?你们当真只是一起扎堆到了西欧而已?难道你们没有内部交流?还是说,我的道行太浅,很多东西不知道?其实,我更希望是后者,因为我终究获得越来越多的知识。