iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0
AI & Data

我們的基因體時代-AI, Data和生物資訊系列 第 22

我們的基因體時代-AI, Data和生物資訊 Day22- 基因註釋資料在Bioconductor中的物件:AnnotatioDBI

上一篇我們的基因體時代-AI, Data和生物資訊 Day21- 基因註釋資料在Bioconductor中物件:IRanges和GenomicRanges往下介紹在R裡面Bioconductor系統中,處理基因註釋的資料結構,從最簡單的IRanges和GenomicRanges開始。

為了實際用真實世界的資料來分享GenomicRanges物件的進階用法前,得介紹怎麼去取得真實世界資料庫的基因註釋資料,比如我想要取得關於血型基因ABO所謂在的染色體或是我想知道BRCA1和BRCA2分別在哪裡以及長度,這邊就要介紹Bioconductor中重要的一個架構包:AnnotationHub,這個包可以方便R的開發者將資料打包成library,讓使用者安裝library後,就能使用這個資料,而AnnotationHub便是用來建構這類資料庫的方式,所以只要會了Annotationhub的語法,大致上便能使用蠻多基因科學家開發的資料library。

唾手取得人類基因體的資訊:AnnotationDBI

這邊起手式,先來介紹三個library,可以輕鬆用R來獲取.....上億美元的結晶:人類基因組資訊,光想到可以這麼輕鬆得取用這些資料,便覺得現在人真的很幸福,分別是TxDb.Hsapiens.UCSC.hg19.knownGene, TxDb.Hsapiens.UCSC.hg38.knownGene和org.Hs.eg.db,前面兩個包顧名思義就是舊版hg19和新版的hg38,org.Hs.eg.db則是人類基因組的基本資料,先來安裝一些有人類基因體資料的包。

## 使用Bioconductor來安裝這些library
BiocManager::install("TxDb.Hsapiens.UCSC.hg38.knownGene")
BiocManager::install("TxDb.Hsapiens.UCSC.hg19.knownGene")
BiocManager::install("org.Hs.eg.db")
## 安裝後loading
library(TxDb.Hsapiens.UCSC.hg19.knownGene)
library(TxDb.Hsapiens.UCSC.hg38.knownGene)
library(org.Hs.eg.db)

TxDb.hg19 <- TxDb.Hsapiens.UCSC.hg19.knownGene
TxDb.hg38 <- TxDb.Hsapiens.UCSC.hg38.knownGene

直接呼叫這些資料庫,可以看到資料庫的一些細節,這邊開始就必須要有一些domain knowledge,比如基本分子生物學的知識,否則會看不太懂它的意思。

> org.Hs.eg.db
OrgDb object:
| DBSCHEMAVERSION: 2.1
| Db type: OrgDb
| Supporting package: AnnotationDbi
| DBSCHEMA: HUMAN_DB
| ORGANISM: Homo sapiens
| SPECIES: Human
| EGSOURCEDATE: 2020-Sep23
| EGSOURCENAME: Entrez Gene
| EGSOURCEURL: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA
| CENTRALID: EG
| TAXID: 9606
| GOSOURCENAME: Gene Ontology
| GOSOURCEURL: http://current.geneontology.org/ontology/go-basic.obo
| GOSOURCEDATE: 2020-09-10
| GOEGSOURCEDATE: 2020-Sep23
| GOEGSOURCENAME: Entrez Gene
| GOEGSOURCEURL: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA
| KEGGSOURCENAME: KEGG GENOME
| KEGGSOURCEURL: ftp://ftp.genome.jp/pub/kegg/genomes
| KEGGSOURCEDATE: 2011-Mar15
| GPSOURCENAME: UCSC Genome Bioinformatics (Homo sapiens)
| GPSOURCEURL: 
| GPSOURCEDATE: 2020-Aug27
| ENSOURCEDATE: 2020-Aug18
| ENSOURCENAME: Ensembl
| ENSOURCEURL: ftp://ftp.ensembl.org/pub/current_fasta
| UPSOURCENAME: Uniprot
| UPSOURCEURL: http://www.UniProt.org/
| UPSOURCEDATE: Mon Oct  5 00:18:02 2020

從呼叫org.Hs.eg.db後顯示的資訊,其實蠻清楚的說明這個資料包的細節,這是一個專屬人類(Homo sapiens)的註釋資料包,可以看出裡面有來自NCBI Entrez Gene, KEGG genome, UCSC Genome Bioinformatics, Ensembl, Uniprot的資訊,甚麼時候的版本等等。

> TxDb.hg19
TxDb object:
# Db type: TxDb
# Supporting package: GenomicFeatures
# Data source: UCSC
# Genome: hg19
# Organism: Homo sapiens
# Taxonomy ID: 9606
# UCSC Table: knownGene
# Resource URL: http://genome.ucsc.edu/
# Type of Gene ID: Entrez Gene ID
# Full dataset: yes
# miRBase build ID: GRCh37
# transcript_nrow: 82960
# exon_nrow: 289969
# cds_nrow: 237533
# Db created by: GenomicFeatures package from Bioconductor
# Creation time: 2015-10-07 18:11:28 +0000 (Wed, 07 Oct 2015)
# GenomicFeatures version at creation time: 1.21.30
# RSQLite version at creation time: 1.0.0
# DBSCHEMAVERSION: 1.1
> TxDb.hg38
TxDb object:
# Db type: TxDb
# Supporting package: GenomicFeatures
# Data source: UCSC
# Genome: hg38
# Organism: Homo sapiens
# Taxonomy ID: 9606
# UCSC Table: knownGene
# UCSC Track: GENCODE v32
# Resource URL: http://genome.ucsc.edu/
# Type of Gene ID: Entrez Gene ID
# Full dataset: yes
# miRBase build ID: NA
# transcript_nrow: 247541
# exon_nrow: 687521
# cds_nrow: 302763
# Db created by: GenomicFeatures package from Bioconductor
# Creation time: 2019-10-21 20:50:00 +0000 (Mon, 21 Oct 2019)
# GenomicFeatures version at creation time: 1.37.4
# RSQLite version at creation time: 2.1.2
# DBSCHEMAVERSION: 1.2

這兩個分別是兩個版本的TxDb檔案,一個是hg19版本,在2015年創建,新的版本hg38,則是在2019年創建,而hg19版本的轉錄資訊只有829602筆,而新的hg38版本則有247541筆。這些資料是以傳統的SQL模式儲存的,所以有幾個函數可以用來擷取這些資料庫,這些函數對於用過SQL系統資料庫的人應該蠻熟悉的,主要有幾個:

  • columns
  • keytypes
  • select

我們以TxDb.hg19為範例,看其columns和keytypes下會顯示出什麼,keytypes顯示的是這個資料包可以用什麼資訊來做query,而columns則是哪些欄位可以從query後得到的欄位。

> keytypes(TxDb.hg19)
[1] "CDSID"    "CDSNAME"  "EXONID"   "EXONNAME" "GENEID"   "TXID"     "TXNAME"  
> columns(TxDb.hg19)
 [1] "CDSCHROM"   "CDSEND"     "CDSID"      "CDSNAME"    "CDSSTART"   "CDSSTRAND" 
 [7] "EXONCHROM"  "EXONEND"    "EXONID"     "EXONNAME"   "EXONRANK"   "EXONSTART" 
[13] "EXONSTRAND" "GENEID"     "TXCHROM"    "TXEND"      "TXID"       "TXNAME"    
[19] "TXSTART"    "TXSTRAND"   "TXTYPE"   

藉由keytypes和columns就能知道個別資料包可以用什麼資訊來query,以及可以從中得到什麼資訊。下面示範由TxDb.hg19資料中,找尋基因ABO中,在hg19版本中,所具有的CDS資訊,我們用基因ABO在EMBL的編碼。

AnnotationDbi::select(TxDb.hg19,
                      keys = c("28"),
                      keytype = c("GENEID"),
                      columns = c("CDSCHROM", "CDSSTART", "CDSEND", "CDSID"))

下面是query回來的資訊,可以知道這個ABO基因位在染色體九號上面,然後裡面有幾個外顯子區域都清楚列出來。

  GENEID  CDSID CDSCHROM  CDSSTART    CDSEND
1     28 111190     chr9 136150578 136150605
2     28 111189     chr9 136137502 136137571
3     28 111188     chr9 136136721 136136777
4     28 111187     chr9 136135223 136135270
5     28 111186     chr9 136133487 136133522
6     28 111185     chr9 136132911 136132929
7     28 111184     chr9 136132796 136132908
8     28 111183     chr9 136131053 136131743
9     28 111182     chr9 136131053 136131694

下一篇我們就可以利用從這些資料包的資訊來轉換成GenomicRanges來做進一步的分析了!

參考閱讀:

Software for Computing and Annotating Genomic Ranges, 2013, PLoS Computational Biology

我們的基因體時代-Bioconductor:基因體學研究的好幫手(一)
我們的基因體時代-理解Bioconductor系列(一):Bioconductor中的Annotation資源

Morgan M, Shepherd L (2021). AnnotationHub: Client to access AnnotationHub resources. R package version 3.0.1.

Team BC, Maintainer BP (2019). TxDb.Hsapiens.UCSC.hg38.knownGene: Annotation package for TxDb object(s). R package version 3.4.6.

Carlson M, Maintainer BP (2015). TxDb.Hsapiens.UCSC.hg19.knownGene: Annotation package for TxDb object(s). R package version 3.2.2.

Carlson M (2019). org.Hs.eg.db: Genome wide annotation for Human. R package version 3.8.2.


這個月的規劃貼在這篇文章中我們的基因體時代-AI, Data和生物資訊 Overview,也會持續調整!我們的基因體時代是我經營的部落格,如有對於生物資訊、檢驗醫學、資料視覺化、R語言有興趣的話,可以來交流交流!


上一篇
我們的基因體時代-AI, Data和生物資訊 Day21- 基因註釋資料在Bioconductor中物件:IRanges和GenomicRanges
下一篇
我們的基因體時代-AI, Data和生物資訊 Day23- 基因註釋資料在Bioconductor中視覺化之呈現:Gviz
系列文
我們的基因體時代-AI, Data和生物資訊30

尚未有邦友留言

立即登入留言