上一篇我们的基因体时代-AI, Data和生物资讯 Day21- 基因注释资料在Bioconductor中物件:IRanges和GenomicRanges往下介绍在R里面Bioconductor系统中,处理基因注释的资料结构,从最简单的IRanges和GenomicRanges开始。
为了实际用真实世界的资料来分享GenomicRanges物件的进阶用法前,得介绍怎麽去取得真实世界资料库的基因注释资料,比如我想要取得关於血型基因ABO所谓在的染色体或是我想知道BRCA1和BRCA2分别在哪里以及长度,这边就要介绍Bioconductor中重要的一个架构包:AnnotationHub,这个包可以方便R的开发者将资料打包成library,让使用者安装library後,就能使用这个资料,而AnnotationHub便是用来建构这类资料库的方式,所以只要会了Annotationhub的语法,大致上便能使用蛮多基因科学家开发的资料library。
这边起手式,先来介绍三个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系统资料库的人应该蛮熟悉的,主要有几个:
我们以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语言有兴趣的话,可以来交流交流!
<<: 30天学会 Python: Day 6- 你的加法不是你的加法
对于运行 systemd 的系统 创建 systemd 服务管理文件,将以下示例中 ${seafil...
我习惯理解一个东西,可以套用日常的生活经验,找出类比、拟人化会帮助我更好理解,今天的议题是最近看到 ...
这次我是要使用node.js来学习爬虫。为什麽会用node.js呢?一开始我看许多人是用python...
Agenda 资安宣言 测试环境与工具 学习目标 技术原理与程序码 References 下期预告 ...
流程控制 基础语法过後就是流程控制了 流程控制结束就可以进入快乐的开发阶段搂~ 流程控制是程序设计中...