2016年6月26日|生物

本次研讨会的目标

  • 了解各种注释包类型

  • 学习查询这些资源的基础知识

  • 讨论有关Bioc数据结构的注释

  • 多做些练习

注释是什么意思呢?

将已知ID映射到其他功能或位置信息

特定的目标

我们有数据和统计数据,我们想添加其他有用的信息

最终的结果可能像data.frame或HTML表那样简单,也可能像数据表那样复杂RangedSummarizedExperiment

数据容器

ExpressionSet

负载(执行(“数据/分野。Rdata", package = "BiocAnno2016"))集合
## ExpressionSet (storageMode: lockedEnvironment) ## assayData: 33552个特征,6个样本##元素名称:exprs ## protocolData: none ##表型数据## sampleNames: GSM2194079 GSM2194080…GSM2194084 (6 total) ## varLabels: title characteristics_ch1.1 ## varMetadata: labelDescription ## featureData ## featurename: 16657436 16657440…17118478 (33552 total) ## fvarLabels: PROBEID ENTREZID SYMBOL GENENAME ## fvarMetadata: labelDescription ##实验数据:使用'实验数据(对象)' ##注释:d.h egene .2.0.st

ExpressionSet(继续)

头(exprs (eset))
## gsm2194079 gsm2194080 gsm2194081 gsm2194082 gsm2194082 gsm2194083 gsm2194084 ## 16657436 8.505158 9.046577 8.566301 ## 16657440 7.948860 8.191222 7.901911 8.459781 8.191793 8.219658 ## 166574450 10.932934 11.228553 10.948120 11.462231 11.300046 11.300886 ## 16657469 9.172462 9.344630 9.193450 9.465584 9.464020 9.135715 ## 16657473 6.222049 6.551035 6.000246 6.398798 5.592125 ## 16657476 8.514300 8.474073 8.407196 8.780833 8.874606
头(pData (phenoData (eset)))
##标题characteristics_ch1.1 ## GSM2194079 SW620-miR625-rep1 shRNA: miR-625-3p ## GSM2194080 SW620-miR625-rep2 shRNA: miR-625-3p ## GSM2194081 SW620-miR625-rep3 shRNA: miR-625-3p ## GSM2194082 SW620-scramble-rep1 shRNA: scramble ## GSM2194083 SW620-scramble-rep2 shRNA: scramble ## GSM2194084 SW620-scramble-rep3 shRNA: scramble ##

ExpressionSet(继续)

头(pData (featureData (eset)))
16657473 OR4F29 ## 16657476 RPL23AP87 11 like 2 ## 16657436 microRNA 1302-2 ## 16657440长基因间非蛋白质编码RNA 1000 ## 16657469长基因间非蛋白质编码RNA 266-1 ## 16657473嗅觉受体家族4亚家族Fmember 29 ## 16657476 ribosomal protein L23a pseudogene 87

生物容器vs基本结构

优点

  • 有效性检查

  • 构造子集

  • 调度函数

  • 自动的行为

缺点

  • 难以创造

  • 手工提取数据很麻烦

  • 仅在R中有用

注释来源

包类型 例子
ChipDb hugene20sttranscriptcluster.db
OrgDb org.Hs.eg.db
TxDb / EnsDb TxDb.Hsapiens.UCSC.hg19.knownGene;EnsDb.Hsapiens.v75
OrganismDb Homo.sapiens
BSgenome BSgenome.Hsapiens.UCSC.hg19
其他人 GO.db;KEGG.db
AnnotationHub 网上资源
biomaRt 网上资源

与AnnoDb包交互

主要功能是选择

选择(annopkg,,,keytype

在哪里

  • Annopkg是注释包

  • 键是我们的id知道

  • 列是我们的值想要

  • Keytype是使用的键的类型
    • 如果键类型为中央Key,它可以不指定

简单的例子

假设我们分析了Affymetrix人类基因ST 2.0阵列的数据,并想知道这些基因是什么。为了本实验的目的,我们只是随机选择一些id。

library(hugene20sttranscriptcluster.db) set.seed(12345) ids <- featurename (eset)[sample(1:25 000,5)] ids
##[1]“16908472”“16962185”“16920686”“16965513”“16819952”
select(hugene20sttranscriptcluster.db, ids, "SYMBOL")
## 'select()'返回键和列之间的1:1映射
##探针符号## 1 16908472 linc01494 ## 2 16962185 alg3 ## 3 16920686 < na > ## 4 16965513 < na > ## 5 16819952 CBFB

问题!

你怎么知道中央钥匙是什么?

  • 如果它是ChipDb,中心键是制造商的探针id

  • 它有时在名称- org.Hs.eg.db中,其中“eg”表示Entrez基因ID

  • 你可以看到这样的例子:head(keys(annopkg)),并由此推断

  • 但请注意,只要指定了键类型,就不需要知道中心键

更多的问题!

对于给定的注释包,哪些键类型或列可用?

keytypes (hugene20sttranscriptcluster.db)
## [1] " accnum " " alias " " ensembl " " ensemblprot " ## [5] " ensembltrans " " entrezid " " enzyme " " evidence " ## [9] " evidenceall " " genename " " go " " goall " ## [9] " ipi " " map " " omim " " ontology " ## [17] " ontologyall " " path " " pfam " " pmid " ## [25] " prosite " " refseq " " symbol " ## [25] " ucsckg " " unigene " " uniprot "
列(hugene20sttranscriptcluster.db)
## [1] " accnum " " alias " " ensembl " " ensemblprot " ## [5] " ensembltrans " " entrezid " " enzyme " " evidence " ## [9] " evidenceall " " genename " " go " " goall " ## [9] " ipi " " map " " omim " " ontology " ## [17] " ontologyall " " path " " pfam " " pmid " ## [25] " prosite " " refseq " " symbol " ## [25] " ucsckg " " unigene " " uniprot "

另一个例子

有一个问题选择然而。

ids <- c('16737401','16657436','16678303') select(hugene20sttranscriptcluster.db, ids, c("SYMBOL","MAP"))
## 'select()'返回1:多个键和列之间的映射
## PROBEID符号MAP ## 1 16737401 TRAF6 11p12 ## 2 16657436 DDX11L9 15q26.3 ## 4 16657436 DDX11L10 16p13.3 ## 5 16657436 DDX11L5 9p24.3 ## 7 16657436 DDX11L16 Xq28 ## 8 16657436 DDX11L16 Yq12 ## 9 16657436 DDX11L12  ## 10 16657436 DDX11L11 17p13.3 ## 11 16678303 ARF1 1q42 ## 12 16678303 MIR3620 

mapIds函数

替代方案选择mapIds,这样可以控制副本

  • 同样的论点选择略有不同

    • columns参数只能指定一列

    • keytype参数必须被指定

    • 另一个参数multiVals用于控制重复项

mapIds(hugene20sttranscriptcluster.db, ids, "SYMBOL", "PROBEID")
## 'select()'返回1:多个键和列之间的映射
##“traf6”“ddx11l2”“arf1”

multiVals的选择

默认是第一个,我们只选择重复的第一个。其他选择有列表,CharacterList,过滤器,asNA或者用户指定的函数。

mapIds(hugene20sttranscriptcluster.db, ids, "SYMBOL", "PROBEID", multiVals = "list")
## 'select()'返回1:多个键和列之间的映射
# # $ 16737401的# # TRAF6[1]” " ## ## $` 16657436 # #[1]”DDX11L2”“DDX11L9”“DDX11L10”“DDX11L1”“DDX11L5”“DDX11L16”# # [7]DDX11L11 DDX11L12” " ## ## $` 16678303 # #[1]”ARF1”“MIR3620”

multiVals的选择(续)

mapIds(hugene20sttranscriptcluster.db, ids, "SYMBOL", "PROBEID", multiVals = "CharacterList")
## 'select()'返回1:多个键和列之间的映射
##字符长度为3的字符列表## [["16737401"]]TRAF6 ## [["16657436"]] DDX11L2 DDX11L9 DDX11L10…Ddx11l16 ddx11l12 ddx11l11 ## [["16678303"]] arf1 mir3620
mapIds(hugene20sttranscriptcluster.db, ids, "SYMBOL", "PROBEID", multiVals = "filter")
## 'select()'返回1:多个键和列之间的映射
## 16737401 ##“traf6”
mapIds(hugene20sttranscriptcluster.db, ids, "SYMBOL", "PROBEID", multiVals = "asNA")
## 'select()'返回1:多个键和列之间的映射
## 16737401 16657436 16678303 ##“traf6”呐呐

ChipDb / OrgDb问题

使用hugene20sttranscriptcluster.db或org.Hs.eg.db包,

  • 什么基因符号对应Entrez基因ID 1000?

  • PPARG的整体基因ID是什么?

  • GAPDH的UniProt ID是什么?

  • 我们加载的表达集(eset)中有多少探针集映射到单个基因?有多少根本没有映射到基因上?

TxDb包

TxDb包包含位置信息;内容可以通过包名推断出来

TxDb.Species.Source.Build.Table

  • TxDb.Hsapiens.UCSC.hg19.knownGene

    • 智人

    • UCSC基因组浏览器

    • hg19(他们的GRCh37版本)

    • knownGene表

TxDb.Dmelanogaster.UCSC.dm3。ensGene TxDb.Athaliana.BioMart.plantsmart22

EnsDb包

EnsDb包类似于TxDb包,但是基于Ensembl映射

EnsDb.Hsapiens.v79
EnsDb.Mmusculus.v79
EnsDb.Rnorvegicus.v79

记录包

与ChipDb和OrgDb包一样,选择而且mapIds可以用来进行查询吗

选择(TxDb.Hsapiens.UCSC.hg19。知道nGene, c("1","10"), c("TXNAME","TXCHROM","TXSTART","TXEND"), "GENEID")
## 'select()'返回1:多个键和列之间的映射
## GENEID TXNAME TXCHROM TXSTART TXEND ## 1 uc002qsd。4 chr19 58858172 58864865 ## 2 uc002qsf。2 chr19 58859832 58874214 ## 3 uc003wyw。1 chr8 18248755 18258723
选择(EnsDb.Hsapiens。国c(“1”、“10”),c(“GENEID”、“GENENAME”,“SEQNAME”,“GENESEQSTART”,“GENESEQEND”),“ENTREZID”)
## entrezid geneid genename seqname geneseqstart geneseqend ## 1 1 ensg00000121410 a1bg 19 58345178 58353499 ## 2 10 ensg00000156006 nat2 8 18391245 18401218

但这不是人们通常使用它们的方式……

农庄

文本包的正常用例是将位置信息提取到农庄GRangesList对象。一个例子是所有基因的基因组位置:

gns <- genes(TxDb.Hsapiens.UCSC.hg19.knownGene
##具有23056个范围和1个元数据列的GRanges对象:## seqnames ranges strand | gene_id ##    |  ## 1 chr19 [58858172,58874214] - | 1 ## 10 chr8 [182487555,18258723] + | 10 ## 100 chr20 [43248163,43280376] - | 100 ## 1000 chr18 [25530930,25757445] - | 1000 ## 10000 chr1 [243651535,244006886] - | 10000 ## ... ... ... ... . ...## 9991 chr9 [114979995, 115095944] - | 9991 ## 9992 chr21 [35736323,35743440] + | 9992 ## 9993 chr22 [19023795, 19109967] - | 9993 ## 9994 chr6 [90539619,90584155] + | 9994 ## 9997 chr22 [50961997,50964905] - | 9997 ## ------- # seqinfo:来自hg19基因组的93个序列(1个循环)

GRangesList

或者所有转录本的基因组位置通过基因:

txs <- transcriptsBy(TxDb.Hsapiens.UCSC.hg19.knownGene) txs
## seqnames ranges strand | tx_id tx_name ##    |   ## [1] chr19 [58858172,58864865] - | 70455 uc002qsd。4 ## [2] chr19 [58859832, 58874214] - | 70456 uc002qsf。2 ## ## $10 ## GRanges对象与1范围和2元数据列:## seqnames范围链| tx_id tx_name ## [1] chr8 [18248755, 18258723] + | 31944 uc003wyw。1 ## ## $100 ## GRanges对象与1范围和2元数据列:## seqnames范围链| tx_id tx_name ## [1] chr20 [43248163,43280376] - | 72132 uc002xmj。3 ## ##…## <23456更多元素> ## ------- ## seqinfo:来自hg19基因组的93个序列(1个循环)

其他访问器

  • 可以提取位置信息成绩单,基因,编码序列(cd),启动子而且外显子

  • 位置信息可以被提取出来,并按第二个元素分组。例如,我们的transcriptsBy通话记录都是转录本,按基因分组。

  • 关于这些*Ranges对象的更多细节超出了本次研讨会的范围,但我们为什么需要它们不是。

*范围对象

*Ranges对象的主要原理是允许我们根据基因组位置信息轻松地选择和子集数据。这真的很强大!

农庄而且GRangesLists与data.frames和list类似,可以使用函数。举个非常人为的例子:

Txs [Txs %over% gns[1:2,]]
## seqnames ranges strand | tx_id tx_name ##    |   ## [1] chr19 [58858172,58864865] - | 70455 uc002qsd。4 ## [2] chr19 [58859832, 58874214] - | 70456 uc002qsf。2 ## ## $10 ## GRanges对象与1范围和2元数据列:## seqnames范围链| tx_id tx_name ## [1] chr8 [18248755, 18258723] + | 31944 uc003wyw。1 ## ## $162968 ## GRanges对象,2个范围和2个元数据列:## seqnames ranges strand | tx_id tx_name ## [1] chr19 [58865723, 58874214] - | 70457 uc002qsh。2 ## [2] chr19 [58865723, 58874214] - | 70458 uc002qsi。2 ## ## ------- ## seqinfo:来自hg19基因组的93个序列(1个循环)

*范围用例

  • 差异甲基化CpG岛附近的基因表达变化

  • 最接近一组有趣的单核苷酸多态性的基因

  • DNAseI超敏基因簇附近基因

  • 用芯片Y测量基因X的cpg数

SummarizedExperiment对象

summarizeexperimental对象类似于expressionset,但是行注释是grange,所以你可以通过基因组位置进行子集:

TxDb练习

  • 根据UCSC, PPARG有多少份成绩单?

  • ensemble同意吗?

  • 在hg19基因组的chr2上,在2858473和3271812之间有多少个基因?
    • 提示:你做了一个农庄像这样——农庄(“chr2 IRanges (2858473, 2858473))

OrganismDb包

有机体mdb包是包含OrgDb、TxDb和GO.db包的元包,并允许在这些包之间进行交叉查询。

所有之前的访问器都可以工作;选择,mapIds,成绩单等。

图书馆(Homo.sapiens) Homo.sapiens
## organmdb对象:## #包含GODb对象:GO.db ## #包含关于:基因本体的数据## #包含OrgDb对象:org.Hs.eg.db ## #关于:智人的基因数据## #分类Id: 9606 ##包含TxDb对象:TxDb. hsapiens . ucsc .hg19。关于:智人的转录组数据基于基因组:hg19 OrgDb基因id ENTREZID映射到TxDb基因id GENEID。

OrganismDb包

  • 可更新-可以更改TxDb对象

  • 列和键类型跨越所有底层对象

  • 对TxDb访问器的调用包括一个“columns”参数

头(基因(Homo。sapiens, columns = c("ENTREZID","ALIAS","UNIPROT")),4)
## 'select()'返回1:多个键和列之间的映射
## seqnames ranges strand | ALIAS ##    |  ## 1 chr19 [58858172, 58874214] - | A1B,ABG,GAB,…## 10 chr8 [18248755, 18258723] + | AAC2,NAT-2,PNAT,…## 100 chr20 [43248163,43280376] - | ADA ## 1000 chr18 [25530930,25757445] - | CD325,CDHN,CDw325,…## UNIPROT ENTREZID ## #   ## 1 P04217,V9HWD8 1 ## 10 A4Z6T7,P11245 10 ## 100 A0A0S2Z381,P00813,F5GWI4 100 ## 1000 P19022,A0A024RC42 1000 ## ------- seqinfo:来自hg19基因组的93个序列(1个循环)

OrganismDb练习

  • 获得BRCA1的所有GO术语

  • UCSC转录ID uc002fai是什么基因?3 .地图到?

  • 这个基因还有多少其他转录本?

  • 获得hg19基因组构建的所有转录本,以及它们的Ensembl基因ID、UCSC转录本ID和基因符号

BSgenome包

BSgenome包包含给定物种/构建的序列信息。有很多这样的包—您可以使用它来获得一个列表available.genomes

库(BSgenome)头(available.genomes ())
“BSgenome.Alyrata.JGI。v1" ## [2] "BSgenome.Amellifera.BeeBase。装配4" ## [3]"BSgenome.Amellifera.UCSC。apiMel2“##[4]”BSgenome.Amellifera.UCSC.apiMel2。“##[5]”BSgenome.Athaliana.TAIR。04232008" ## [6] " bsgenome . athaliana . tair9 "

BSgenome包

我们可以装载和检查BSgenome包

图书馆(BSgenome.Hsapiens.UCSC.hg19) Hsapiens
##人类基因组:## #生物:智人(人类)## #提供者:UCSC ## #提供者版本:hg19 ## #发布日期:2009年2月## #发布名称:基因组参考联盟GRCh37 ## # 93序列:## # chr1 chr2 chr3 ## # chr4 chr5 chr6 ## # chr7 chr8 chr9 ## # chr10 chr11 chr12 ## # chr13 chr14 chr15 ## # ... ... ...chrUn_gl000235 chrUn_gl000238 chrUn_gl000239 chrUn_gl000240 chrUn_gl000241 chrUn_gl000242 chrUn_gl000243 chrUn_gl000246 chrUn_gl000247 chrUn_gl000248 chrUn_gl000249(使用'seqnames()'查看所有序列名称,使用'$'或'[[]' ##操作符访问给定序列)

BSgenome包

主访问器为getSeq,您可以通过序列(例如,整个染色体或未放置的支架)获取数据,或者通过传入GRanges对象来获取一个区域。

getSeq (Hsapiens“chr1”)
# # # # 249250621 -信“DNAString”实例seq: NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN…NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
getSeq (Hsapiens gns(“5467”))
一个长度为1的DNAStringSet实例,命名为## [1]85634TATTTAAGAGCTGACTGGAA 5467

Biostrings包包含了处理这些问题的大部分代码* StringSet对象-请参阅Biostrings小插图和帮助页以获得更多信息。

BSgenome练习

  • 获取所有TP53基因转录本的序列

AnnotationHub

AnnotationHub是一个包,它允许我们查询和下载许多不同的注释对象,而不必显式地安装它们。

library(AnnotationHub) hub <-注解hub ()
## snapshotDate(): 2016-06-06
中心
## AnnotationHub与43720条记录## # snapshotDate(): 2016-06-06 ## $dataprovider: BroadInstitute, UCSC, Ensembl, EncodeDCC, NCBI, ftp://..。## # $物种:智人,小家鼠,牛牛,潘穴居人,大…## # $rdataclass: GRanges, BigWigFile, FaFile, OrgDb, TwoBitFile, ChainFil…## #附加mcols(): taxonomyid,基因组,描述,## #准备类,标签,sourceurl, sourcetype ## #检索记录,例如,'object[["AH2"]]]' ## ## title ## AH2 | Ailuropoda_melanoleuca.ailMel1.69.dna.toplevel。a: a: a: a: a: d: a: a: aailmel1.69 .dna_sm. topllevel。aiuropoda_melanoleuca . ailmel1.69 .ncrnaa ## AH6 bb0 . ailmel1.69 .pep.all。Fa ## ... ...## AH50771 | xipophorus_maculatus . xipmac4.4.2 .dna.toplevel。2bit ## AH50772 | xipophorus_maculatus . xipmac4.4.2 .ncrna。2bit ## AH50773 | Vvinifera_CRIBI_IGGP12Xv0_V2.1.gff3。Rdata ## AH50774 | Vvinifera_Genoscope_IGGP12Xv0_V1.0.gff3。Rdata ## AH50775 | Vvinifera_Genoscope_IGGP8X_V1.0.gff3.Rdata

查询AnnotationHub

在AnnotationHub上找到“正确的”资源就像使用谷歌一样-一个良好的查询是必要的,以找到你想要的。有用的查询是基于

  • 数据提供商

  • 数据类

  • 物种

  • 数据源

名称(mcols(中心))
##[1]“title”“dataprovider”“species”“taxonomyid”##[5]“genome”“description”“preperclass”“tags”##[9]“rdataclass”“sourceurl”“sourcetype”

AnnotationHub数据提供程序

独特的(中心dataprovider美元)
# # # #[1]“运用”[2]# #“EncodeDCC”[3]“UCSC”# #[4]“RefNet”# #[5]“Inparanoid8”# #[6]“NCBI”# #[7]“NHLBI”# #[8]“他”# #[9]“Pazar”# #[10]“NIH通路相互作用数据库”# #[11]“Haemcode”# #[12]“地理”# #[13]“BroadInstitute”# #[14]“ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/”# #[15]“骄傲”# #[16]“Gencode”# #[17]“dbSNP”# #[18]“CRIBI”# #[19]“Genoscope”

AnnotationHub数据类

独特的(中心rdataclass美元)
[1]“FaFile”“GRanges”“data.frame”##[4]“in偏方8db”“OrgDb”“TwoBitFile”##[7]“ChainFile”“SQLiteConnection”“biopax”##[10]“BigWigFile”“ExpressionSet”“AAStringSet”##[16]“VcfFile”

AnnotationHub物种

(独特的物种(中心))
##[1]“黑桫椤”“卡罗莱纳Anolis carolinensis”“金牛座Bos”“秀丽隐杆线虫Caenorhabditis elegans”“jacchus Callithrix”“犬科犬”
长度(独特的物种(中心))
1946年

AnnotationHub数据源

独特的(中心sourcetype美元)
##[1]“FASTA”“BED”“UCSC track”“GTF”##[5]“TSV”“Inparanoid”“NCBI/blast2GO”“TwoBit”##[9]“Chain”“GRASP”“Zip”“CSV”##[13]“BioPax”“BioPaxLevel2”“RData”“BigWig”##[17]“tar.gz”“tab”“NCBI/UniProt”“mzTab”##[21]“mzML”“mzid”“GFF”“NCBI/ensembl”##[25]“VCF”

AnnotationHub查询

Qry <- query(hub, c("granges","homo sapiens","ensembl")) Qry
# # # # # AnnotationHub 20记录snapshotDate (): 2016-06-06 # # # $ dataprovider:运用,UCSC的# # # $物种:智人# # # $ rdataclass:农庄# # #额外mcols (): taxonomyid,基因组,描述,# # # preparerclass,标签,sourceurl, sourcetype # # #检索记录,例如,[[“AH5046”对象 "]]' ## ## 标题# # AH5046 |运用基因# # AH5160 |运用基因# # AH5311 |运用基因# # AH5434 |运用基因# # AH5435 |运用基因  ## ... ...hom_sapiens . grch38.77。hom_sapiens . grch38.80。hom_sapiens . grch38.81。hom_sapiens . grch38.82。hom_sapiens . grch38.83 .gtf

AnnotationHub查询

qry sourceurl美元
# #[1]“rtracklayer: / / hgdownload.cse.ucsc.edu/goldenpath/hg19/database/ensGene”# #[2]# #“rtracklayer: / / hgdownload.cse.ucsc.edu/goldenpath/hg18/database/ensGene”[3]“rtracklayer: / / hgdownload.cse.ucsc.edu/goldenpath/hg17/database/ensGene”# #[4]“rtracklayer: / / hgdownload.cse.ucsc.edu/goldenpath/hg16/database/ensGene”# #[5]“rtracklayer: / / hgdownload.cse.ucsc.edu/goldenpath/hg16/database/ensEstGene”# #[6]“ftp://ftp.ensembl.org/pub/release-70/gtf/homo_sapiens/Homo_sapiens.GRCh37.70.gtf.gz”# #[7]“ftp://ftp.ensembl.org/pub/release-69/gtf/homo_sapiens/Homo_sapiens.GRCh37.69.gtf.gz”# #[8]“ftp://ftp.ensembl.org/pub/release-71/gtf/homo_sapiens/Homo_sapiens.GRCh37.71.gtf.gz”# #[9]“ftp://ftp.ensembl.org/pub/release-72/gtf/homo_sapiens/Homo_sapiens.GRCh37.72.gtf.gz”# #[10]“ftp://ftp.ensembl.org/pub/release-73/gtf/homo_sapiens/Homo_sapiens.GRCh37.73.gtf.gz”# #[11]“ftp://ftp.ensembl.org/pub/release-74/gtf/homo_sapiens/Homo_sapiens.GRCh37.74.gtf.gz”# # [12]“ftp://ftp.ensembl.org/pub/release-75/gtf/homo_sapiens/Homo_sapiens.GRCh37.75.gtf.gz”##[13]“ftp://ftp.ensembl.org/pub/release-78/gtf/homo_sapiens/Homo_sapiens.GRCh38.78.gtf.gz”##[14]“ftp://ftp.ensembl.org/pub/release-76/gtf/homo_sapiens/Homo_sapiens.GRCh38.76.gtf.gz”##[15]“ftp://ftp.ensembl.org/pub/release-79/gtf/homo_sapiens/Homo_sapiens.GRCh38.79.gtf.gz”##[16]“ftp://ftp.ensembl.org/pub/release-77/gtf/homo_sapiens/Homo_sapiens.GRCh38.77.gtf.gz”## [17]“ftp://ftp.ensembl.org/pub/release-80/gtf/homo_sapiens/Homo_sapiens.GRCh38.80.gtf.gz”##[18]“ftp://ftp.ensembl.org/pub/release-81/gtf/homo_sapiens/Homo_sapiens.GRCh38.81.gtf.gz”##[19]“ftp://ftp.ensembl.org/pub/release-82/gtf/homo_sapiens/Homo_sapiens.GRCh38.82.gtf.gz”##[20]“ftp://ftp.ensembl.org/pub/release-83/gtf/homo_sapiens/Homo_sapiens.GRCh38.83.gtf.gz”

选择AnnotationHub资源

whatIwant <- qry[["AH50377"]]

我们可以使用这些数据,或者转换为TxDb格式:

GRCh38TxDb <- makeTxDbFromGRanges(whatIwant
## TxDb对象:## # Db类型:TxDb ##支持包:GenomicFeatures ##基因组:GRCh38 ##转录t_nrow: 199184 ## exon_nrow: 675836 ## cds_nrow: 270225 ##由:GenomicFeatures包从Bioconductor创建的数据库##创建时间:2016-06-22 19:26:00 +0000(2016年6月22日星期三)##创建时的基因组特性版本:1.25.12 ## RSQLite创建时的版本:1.0.0 ## DBSCHEMAVERSION: 1.1

AnnotationHub练习

  • 在AnnotationHub上有多少大西洋鲑鱼(Salmo salar)的资源?

  • 获得最新的ensemble构建的家犬(Canis familiaris),并使TxDb

biomaRt

biomaRt包允许对Ensembl biomaRt服务器进行查询。我们可以看到我们可以使用的服务器的选择:

库(biomaRt) listMarts ()
生物艺术版本## 1 ensemble _mart_ensemble基因84 ## 2 ensemble _mart_snp ensemble变异84 ## 3 ENSEMBL_MART_FUNCGEN ensemble Regulation 84 ## 4 ENSEMBL_MART_VEGA Vega 64

生物art数据集

然后,我们可以检查特定服务器上的可用数据集。

mart <- useMart("ENSEMBL_MART_ENSEMBL") head(listDatasets(mart))
# # # #数据集1 oanatinus_gene_ensembl # # 2 cporcellus_gene_ensembl # # 3 gaculeatus_gene_ensembl # # 4 itridecemlineatus_gene_ensembl # # 5 lafricana_gene_ensembl # # 6 choffmanni_gene_ensembl # # 1 # #描述版本鸭嘴兽anatinus基因(OANA5) OANA5 # # 2 Cavia porcellus基因(cavPor3) cavPor3 # # 3 Gasterosteus aculeatus基因(BROADS1) BROADS1 # # 4 Ictidomys tridecemlineatus基因(spetri2) spetri2 # # 5学名Loxodonta africana基因(loxAfr3) loxAfr3 # # 6 Choloepus hoffmanni基因(choHof1) choHof1

biomaRt查询

在建立一个集市对象指向我们关心的服务器和数据集,我们可以进行查询。我们首先建立集市对象。

mart <- useMart("ENSEMBL_MART_ENSEMBL","hsapiens_gene_ensembl")

查询的格式为

getBM (属性,过滤器,,集市

在哪里

  • 属性是我们的东西想要

  • 过滤器是类型的IDs我们

  • 值是我们的id

  • 玛特是集市我们创建的对象

biomaRt属性和过滤器

属性和过滤器的名称都很神秘,但是可以使用

atrib <- listAttributes(mart) filts <- listFilters(mart) head(atrib)
1 ensembl_gene_id Ensembl基因ID feature_page 2 ensembl_transcript_id Ensembl转录ID feature_page 3 ensembl_peptide_id Ensembl蛋白质ID feature_page 4 ensembl_exon_id Ensembl外显子ID feature_page 5 description描述feature_page 6 chromosome_name染色体名称feature_page
头(filts)
##名称描述## 1 chromosome_name染色体名称## 2 start Gene start (bp) ## 3 end Gene end (bp) ## 4 band_start Band start ## 5 band_end Band end ## 6 marker_start标记开始

biomaRt查询

一个简单的查询示例

afyids < - c(“1000 _at”、“1001 _at”、“1002 _f_at”,“1007”_s_at) getBM (c(“affy_hg_u95av2”、“hgnc_symbol”),c(“affy_hg_u95av2”),afyids,集市)
CYP2C19 ## 3 1002_cyp2c19 ## 3 1002_cyp2c19 ## 3 1002_cyp2c19 ## 3 1002_cyp2c19 ## 3 1002_cyp2c19

biomaRt练习

  • 获取Entrez gene IDs 672, 5468和7157的Ensembl基因id和HUGO符号

  • 如果你查询GAPDH的“gene_exon”,你会得到什么?