Major Study./Bioinformatics

R에서의 Ensembl IDs와 Entrez IDs

sosal 2015. 5. 29. 18:34
반응형


/*

 http://sosal.kr/
 * made by so_Sal
 */



옛날에 적은글이라.. bioconductor가 업데이트 되면서 사용법이 바꼈습니다.

install만 아래로 해주세요~!



if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("org.Hs.eg.db")


if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

BiocManager::install("AnnotationDbi")







#############


Ensembl ID 또는 Entrez ID를 알고 있을 때, 그와 관련된 정보들을 org.Hs.eg.db를 통해 annotation 할 수 있다.
Entrez ID, Ensembl ID, Symbol 등을 알고싶을 땐 Gene annotation 패키지중 하나인 org.Hs.eg.db를 사용하면

편리하게 데이터들을 다룰 수 있다.


org.Hs.eg.db는 organism specific package로, Homo sapiens(Hs)에 대한 자세한 정보들을 제공하는 패키지이다.


- Genome wide annotation for human

http://www.bioconductor.org/packages/release/data/annotation/html/org.Hs.eg.db.html


- install

> source(http://bioconductor.org/biocLite.R)
> biocLite("org.Hs.eg.db")



- Gene annotation

http://www.bioconductor.org/help/course-materials/2014/useR2014/Integration.html


위의 페이지에서 자세한 내용을 확인할 수 있다.






- org.Hs.eg.db 에서 제공하는 column과 keytype

> columns(org.Hs.eg.db) # 명령어로 쉽게 확인할 수 있다.

"ENTREZID" "PFAM" "IPI" "PROSITE" "ACCNUM" "ALIAS" "CHR" "CHRLOC" "CHRLOCEND" "ENZYME" "MAP" "PATH" "PMID" "REFSEQ" "SYMBOL" "UNIGENE" "ENSEMBL" "ENSEMBLPROT" "ENSEMBLTRANS" "GENENAME" "UNIPROT" "GO" "EVIDENCE" "ONTOLOGY" "GOALL" "EVIDENCEALL" "ONTOLOGYALL" "OMIM" "UCSCKG"


> keytypes(org.Hs.eg.db) # 명령어로 keytype을 알 수 있다.

"ENTREZID" "PFAM" "IPI" "PROSITE" "ACCNUM" "ALIAS" "ENZYME" "MAP" "PATH" "PMID" "REFSEQ" "SYMBOL" "UNIGENE" "ENSEMBL" "ENSEMBLPROT" "ENSEMBLTRANS" "GENENAME" "UNIPROT" "GO" "EVIDENCE" "ONTOLOGY" "GOALL" "EVIDENCEALL" "ONTOLOGYALL" "OMIM" "UCSCKG"




cols 변수를 만들어 볼드체로 되어있는 column들만 추려내면 다음과 같다.

> cols <- c("ENTREZID", "SYMBOL", "ENSEMBL", "GENENAME")

이제부터 Gene annotation db인 org.Hs.eg.db에 쿼리를 cols 변수와 함께 날리면 Entrez id, gene Symbol, Ensembl ID, Gene name의 정보를 알 수 있다.


keytypes에서 볼드체로 되어 있는 ENTREZID, SYMBOL, ENSEMBL 3가지의 데이터 각각을 이용해서 cols에서 추려진 column들의 정보를 가져와 볼 것이다.





- Ensembl ID를 통해 SYMBOL, Entrez id 알아내기


> ensids= c("ENSG00000158406")
> select(org.Hs.eg.db, keys=ensids, columns=cols, keytype="ENSEMBL")


             ENSEMBL ENTREZID   SYMBOL                 GENENAME
1 ENSG00000158406         8365   HIST1H4H   histone cluster 1, H4h


Entrez id가 8365인것과 HIST1H4H 히스톤 단백질과 관련된 유전자라는것을 쉽게 알 수 있다.


Genecards.org에서 검색하면 더 자세한 내용을 알 수 있다.

http://www.genecards.org/cgi-bin/carddisp.pl?gene=HIST1H4H




- Entrez id를 통해 SYMBOL, Ensembl ID 알아내기

Keytype을 ENSEMBL 대신 ENTREZID로 바꿔주고, Entrez id를 key로 검색해주면 간단히 해결된다.


> entrezid <- c("8365")
> select(org.Hs.eg.db, keys=entrezid, columns=cols, keytype="ENTREZID")
ENTREZID    SYMBOL             ENSEMBL                GENENAME
        8365   HIST1H4H   ENSG00000158406   histone cluster 1, H4h



- SYMBOL을 통해 Ensembl ID, Entrez ID 알아내기

마찬가지로 keytype을 SYMBOL로 해주고 symbol name을 통해 select 구문을 완성해주면 쉽게 정보를 얻을 수 있다.


> symbols <- c("HIST1H4H")
> select(org.Hs.eg.db, keys=symbols, columns=cols, keytype="SYMBOL")
    SYMBOL ENTREZID         ENSEMBL               GENENAME
1 HIST1H4H     8365 ENSG00000158406 histone cluster 1, H4h


 

 

 

+

Entrez Gene과 Ensembl Gene은 1:1 매핑이 되지 않는다.

따라서 만약 Entrez Gene에서 Ensembl로 전환할 때, Ensembl Biomart를 사용하여 반대로 매핑할 때, 다른 매핑결과를 얻을 수 있다.