马丁•摩根
2014年2月4日
组织级(“org”)包包含中心标识符(如Entrez基因id)和其他标识符(如GenBank或Uniprot登录号、RefSeq id等)之间的映射。org包的名称总是这种形式org。
(如。org.sc.sgd.db.) 在哪里
是生物体的2个字母的缩写(例如SC.
为酿酒酵母酿酒酵母),<标识>
是描述中央标识符类型的缩写(在小写)(例如,sgd
为基因标识符分配酿酒酵母基因组数据库,或如
对于Entrez基因ID)。[AnnotationDBI] []包中的“如何使用'.db'bonotation packages”gignette(org软件包只有一种类型的“.db”注释包)是一个关键参考。“.db”和大多数其他生物导体注释包每6个月更新一次。
注释包通常包含在包自身后命名的对象。这些对象统称AnnotationDb
对象,具有更多特定的类命名OrgDb
那ChipdB.
或者resscriptdb.
对象。可以应用于这些对象的方法包括cols()
那键()
那keytypes()
和选择()
。检索注释的常用操作汇总在表中。
类别 | 功能 | 描述 |
---|---|---|
发现 | 列() |
列出可以返回的列类型 |
keytypes() |
列出可以用作键的列 | |
键() |
列出可以预期给定键盘的值 | |
选择() |
检索注释匹配钥匙 那keytype. 和列 |
|
操纵 | setdiff () 那联盟() 那相交() |
上的操作集 |
重复() 那独特的() |
标记或删除重复 | |
%在% 那比赛() |
找到匹配 | |
任何() 那全部() |
任何真的 ?都是? |
|
合并() |
基于共享密钥组合两个不同的\对象{data.frames} | |
农庄* |
成绩单() 那外显子() 那cd () |
特征(转录本、外显子、编码序列)为农庄 。 |
transcriptsBy () 那exonsBy () |
通过基因,成绩单等特征组。GRangesList 。 |
|
cdsBy () |
锻炼:此练习说明“选择”接口到注释包的基本使用。
OrgDb
对象的org.hs.eg.db.包裹。使用列()
发现可以从中提取哪种注释的方法。键()
提取Ensembl标识符的方法,然后将这些键传递给选择()
方法以这样的方式为每个方式提取符号(基因符号)和每个的Genename信息。使用以下EnsemBl ID。EXSIDS < - C(“ENSG00000130720”,“ENSG00000103257”,“ENSG00000156414”,“ENSG00000144644”,“ENSG00000159307”,“ENSG00000144485”)
解决方案这OrgDb
对象被命名为org.hs.eg.db.
。
库(org.hs.eg.db)keytypes(org.hs.eg.db)
## [1]“ENTREZID”“PFAM”“IPI”“PROSITE”## [5]“ACCNUM”“别名”“酶”“酶”“映射”## [9]“PATH”“PMID”“PMID”“REFSEQ”“符号“## [13]”Unigene“”Ensembl“”Ensemblprot“”Ensembltrans“## [17]”Genename“”Uniprot“”Go“的”证据“## [21]”博览学“”迈尔科“”Evidenceall“”OntologalAll“## [25]”OMIM“”UCSCKG“
列(org.hs.eg.db)
## [1] " entrezid " " pfam " " ipi " " prosite " ## [5] " accnum " " alias " " chr " " chrloc " ## [9] " chrlocend " " enzyme " " map " " path " ## [13] " mid " " refseq " " symbol " " unigene " ## [17] " ensemble " " ensemble prot " " ensemble trans " " genename " ## [21] " uniprot " " go " " evidence " " ontology " ## [25] " goall " " evidence all " " omim " # [29] " ucsckg "
COLS < - C(“符号”,“genename”)选择(org.hs.eg.db,keys = sensids,columns = cols,keytype =“ensembl”)
# # # # 1 ENSG00000130720运用象征FIBCD1 # # 2 ENSG00000103257 SLC7A5 # # 3 ENSG00000156414 TDRD9 # # 4 ENSG00000144644 GADL1 # # 5 ENSG00000159307 SCUBE1 # # 6 ENSG00000144485 HES6 # # 1 # # GENENAME纤维蛋白原C域包含1 # # 2溶质载体家庭7(氨基酸转运蛋白轻链,L系统),成员5 ## 3都铎结构域包含9 ## 4谷氨酸脱羧基酶样1 ## 5信号肽,CUB结构域,egf样1 ## 6 hes家族bHLH转录因子6
下表中,选择基于Web的查询的Select Biocumons包的简短摘要位于表中。
包 | 描述 |
---|---|
annotationhub. | Ensembl,编码,dbsnp,ucsc数据对象 |
生物雕 | Ensembl和其他注释 |
Psicquic. | 蛋白质相互作用 |
Uniprot.ws. | 蛋白质注释 |
KEGGREST | Kegg途径 |
SraDB. | 测序实验。 |
rtracklayer. | 基因组轨道。 |
地理曲线 | 数组和其他数据 |
ArrayExpress. | 数组和其他数据 |
使用biomaRt
这生物雕包裹提供访问在线生物雕资源。这包括多个数据库资源,称为“MARTS”。每个集市都允许访问多个数据集;这生物雕包提供MART和数据集发现的方法,以及标准方法GetBM()
检索数据。
锻炼
GetBM()
。除了要访问的MART外,此功能还将过滤器和属性作为参数。用filterOptions()
和listAttributes()
发现这些参数的值。称呼GetBM()
使用选择的过滤器和属性。解决方案
##需要互联网访问!图书馆(BioMart)头(Listmarts(),3)##列出了Marts Head(ListDatasets(Usemart(“Ensembl”)),3)## Mart DataSets Ensembl < - ##完全指定的Mart Usemart(“ensembl”,dataSet=“hsapiens_gene_ensembl”)head(listfilters(ensembl),3)##过滤器myfilter < - “chromosome_name”substr(filteroptions(myfilter,ensembl),1,50)##返回值MyValues < - C(“21”,“22“listAttributes(ensembl),3)##属性myattributes < - c(”ensembl_gene_id“,”chromosome_name“)##汇编和查询Mart Res < - GetBm(属性= MyAttributes,Filters = myFilter,值=MyValues,Mart = Ensembl)
锻炼
作为一个可选的练习,注释在DESeq2实验室中差异表达的基因,例如,找到与5个差异表达最多的基因相关的\text {GENENAME}。这些有生物学意义吗?你能合并()
注释结果与顶部表格的结果提供统计上和生物信息的摘要?
有多样性的包装和课程可用于代表大型基因组。几个包括:
可用.packages()
对于预包装的基因组,以及小插图如何伪造BSGENOME数据包装fafile()
(RSAMTOOLS.)用于访问索引的FASTA文件。基因组的包装对于涉及基因组坐标的注释非常有用。例如,它是直接的,以发现感兴趣区域中的编码序列的坐标,以及这些检索相应的DNA或蛋白质编码序列。Other examples of the types of operations that are easy to perform with genome-centric annotations include defining regions of interest for counting aligned reads in RNA-seq experiments and retrieving DNA sequences underlying regions of interest in ChIP-seq analysis, e.g., for motif characterization.
锻炼
该练习使用注释资源从基因符号'BRCA1'到与基因相关的每个转录物的基因组坐标,并最终到转录物的DNA序列。
选择
命令。txname.
)对应于BRCA1 Entrez标识符。('ORG *'软件包基于NCBI的信息,其中Entrez标识符被标记为EntrezID;我们使用的“TXDB *”包是来自UCSC的,其中Entrez标识符被标记为基因)。使用cdsBy ()
功能检索所有编码序列按转录分组的基因组坐标,并选择与我们感兴趣的标识符相对应的转录本。编码序列被返回为GRangesList
,其中列表中的每个元素都是a农庄
代表编码序列中外显子的对象。作为完整性检查,确保每个编码序列的外显子宽度之和能被3整除(R '模'算子)% %
返回另一个号码的剩余部分,在这种情况下可能会有所帮助)。
可视化转录本在基因组坐标使用[Gviz][]包构建一个annotationtrack.
,并使用绘制它plotTracks ()
。
使用Bsgenome.Hsapiens.UCSC.hg19包和ExtractTranscriptSeqs()
功能提取每个转录本的DNA序列。
解决方案
检索与BRCA1基因符号对应的Entrez标识符
库(org.hs.eg.db)EID < - 选择(org.hs.eg.db,“brca1”,“Entrezid”,“符号”)[[“EntrezId”]]
从Entrez Gene标识符到转录名称的地图
库(TXDB.HSAPIENS.CucSC.HG19.knowngene)TXDB < - TXDB.HSAPIENS.CUCSC.HG19.KCNOKGENE TXID < - 选择(TXDB,EID,“TXNAME”,“GeneID”)[[TxName“]
检索按抄本分组的所有编码序列,并选择与感兴趣的抄本id匹配的编码序列,验证每个编码序列宽度是3的倍数
brca1cds <- cds[names(cds) %in% txid] class(brca1cds)
## [1]“GrangeSlist”## attr(,包装“)## [1]”GenomicRanges“
长度(BRCA1CDS)
# # 20 [1]
BRCA1CDS [[1]]#在CD中的外显子
## Granges对象具有22范围和3个元数据列:## SEQNAMES范围股票|CDS_ID CDS_NAME ## |<整数> <字符> ## [1] CHR17 [41276034,41276113] - |186246 ## [2] CHR17 [41267743,41267796] - |186245 ## [3] Chr17 [41258473,41258550] - |186243 ## [4] Chr17 [41256885,41256973] - |186241 ## [5] CHR17 [41256139,41256278] - |186240 ## ... ... ... ... ## [18] CHR17 [41209069,41209152] - |186218 ## [19] Chr17 [41203080,41203134] - |186217 ## [20] Chr17 [41201138,41201211] - | 186215 ## [21] chr17 [41199660, 41199720] - | 186214 ## [22] chr17 [41197695, 41197819] - | 186212 ## exon_rank ## ## [1] 1 ## [2] 2 ## [3] 3 ## [4] 4 ## [5] 5 ## ... ... ## [18] 18 ## [19] 19 ## [20] 20 ## [21] 21 ## [22] 22 ## ------- ## seqinfo: 93 sequences (1 circular) from hg19 genome
cdswidth < - 宽度(brca1cds)#宽度的所有外显子((cdswidth)%% 3)== 0)#CD中的总和,模数3
## [1]真实
要求(Gviz) anno <- AnnotationTrack(brca1cds) plotTracks(list(GenomeAxisTrack(), anno))
提取每个转录物的编码序列
图书馆(BSGENOME.HSAPIENS.CCSC.HG19)基因组< - BSGENOME.HSAPIENS.CCSC.HG19 TX_SEQ < - AISTRINGTRANSCRICTSEQS(基因组,BRCA1CDS)TX_SEQ
##长度为20 ##宽度SEQ名称## [1] 2280 ATGGATTTATCTGCTCTTCG ... TCCCCCCAGAGCCACTGA UC010WHL.2 ## [2] 5379 ATGAGCCTACAAGAAAGTAC ... TCCCCCACAGCCACTACTGA UC002ICP.4 ## [3] 522 ATGGATGCTGAGTTGTGTG.tcccccacagccactactga uc010whm.2 ## [4] 2100 AtggattTATCTGCTTTCG ... GCAATTGGGCAGATGTGTGA UC002ICU.3 ## [5] 5451 ATGCTGAAACTTCTCAACCA ... TCCCCCAGAGCCACTGA UC010CYX.3 ## ... ... ## [16] 4095ATGGATTTATCTGCTCTTCG ... AAAGCATGGATTCAAACTTA uc010cyy.1 ## [17] 4095 ATGGATTTATCTGCTCTTCG ... AAAGCATGGATTCAAACTTA uc010whs.1 ## [18] 3954 ATGCTGAAACTTCTCAACCA ... AAAGCATGGATTCAAACTTA uc010cyz.2 ## [19] 4017 ATGGATTTATCTGCTCTTCG ... AAAGCATGGATTCAAACTTA uc010cza.2## [20] 3207 atgaatgtagaaaaggctga ... aaagcatggattcaacta uc010wht.1
通过首先将基因组(从第一个外显子的开始到最后一个外显子的开始)的范围来鉴定内含子坐标,然后通过覆盖的(代数)设定差异(代数)设定差异覆盖的基因组坐标每个外星人
内含子< - PSetDiff(范围(BRCA1CD),BRCA1CD)
用中检索内文序列getSeq ()
(这些都是不组装的方式ExtractTranscriptSeqs()
将外显子序列组装成成熟的转录本);请注意,内含子以适当的受体和供体位点序列开始和结束。
SEQ < - Getseq(基因组,内含子)名称(SEQ)
# # uc010whl[1]”。2”“uc002icp。4“uc010whm。2”“uc002icu。3“uc010cyx。3" ## [6] "uc002icq。3“uc002ict。3“uc010whn。2”“uc010who。3“uc010whp。2" ## [11] "uc010whq。1”“uc002idc。1”“uc010whr。1”“uc002idd。3“uc002ide。1" ## [16] "uc010cyy。1”“uc010whs。1”“uc010cyz。2”“uc010cza。2”“uc010wht.1”
seq[[”uc010whl。2"]] # 21内含子
##长度21 ##宽度SEQ ##的DNAStringSet实例[1] 1840 GTAAGGTGCCTGCATGTACCTGTGCTATATG ... CTAATCTCTGCTTGTGTTCTCTGTCTCCAG ## [2] 1417 GTAAGTATTGGGTGCCCTGTCAGAGAGGGAG ... TTGAATGCTCTTTCCTTCCTGGGGATCCAG ## [3] 1868 GTAAGAGCCTGGGAGAACCCCAGAGTTCCAG ... AGTGATTTTACATCTAAATGTCCATTTTAG ## [4]5934 GTAAAGCTCCCTCCCTCAAGTTGACAAAAAT ... CTGTCCCTCTCTCTTCCTCTCTTCTTCCAG ## [5] 6197 GTAAGTACTTGATGTTACAAACTAACCAGAG ... TCCTGATGGGTTGTGTTTGGTTTCTTTCAG ## ... ... ... ## [17] 4241 GTAAAACCATTTGTTTTCTTCTTCTTCTTCT ... TGCTTGACTGTTCTTTACCATACTGTTTAG ## [18] 606 ... GTAAGTGTTGAATATCCCAAGAATGACACTC AAACATAATGTTTTCCCTTGTATTTTACAG## [19] 1499 GTATATAATTTGGTAATGATGCTAGGTTGGA ... GAGTGTGTTTCTCAAACAATTTAATTTCAG ## [20] 9192 GTAAGTTTGAATGTGTTATGTGGCTCCATTA ... AATTGTTCTTTCTTTCTTTATAATTTATAG ## [21] 8237 GTAAGTCAGCACAAGAGTGTATTAATTTGGG ... TTTTCTTTTTCTCCCCCCCTACCCTGCTAG
这rtracklayer.包允许我们查询UCSC基因组浏览器,以及提供进口()
和出口()
用于通用注释文件格式(如GFF、GTF和BED)的函数。
锻炼
我们在这里使用rtracklayer.检索ENCODE项目中跨细胞系识别的雌激素受体结合位点。我们的重点是结合位点附近的一个特别有趣的兴趣区域。
农庄
具有适当基因组坐标的实例。我们的地区对应于特定基因的10MB和下游。解决方案
定义感兴趣的区域
图书馆(基因组)ROI < - GRANGES(“CHR10”,绞喉(92106877,112106876,名称=“ENSG00000099194”))
创建会话
库(Rtracklayer)会话< - browsersession()
查询UCSC的特定轨道,表,转录因子,在我们感兴趣的地区
trackname < - “wgencoderegtfbsclusteredv2”tablename < - “wgencoderegtfbsclusteredv2”trfactor < - “eralpha_a”ucsctable < - gettable(ucsctablequery(会话,track = trackname,范围= roi,table = tablename,name = tractor)))
可视化的结果
abline(v=start(roi) + end(roi) - start(roi) + 1) / 2, col="blue")
跟着变体工作流程。
例1:
升降机()
例2:
Grasp2DB.
套餐(正在开发)库(GRASP2DB)#注释包,#6 GB AnnotationHub资源D < - GRASP2()#dplyr实例Hispanic < - TBL(D,“Count”)%>%过滤器(人口==“西班牙裔”)SEMI_JOIN(TBL(D,“变体”),西班牙裔
src_sqlite.
那TBL.
那筛选
那安排
那总结
, 等等。锻炼:使用annotationdbi :: dbfile()
在TxDb对象上基因
表只能过滤CHR3上的那些基因。管子这选择此选择makegrangesfromdataframe.
得到一个农庄
实例。
“轻松”编写基于Web的服务,例如,询问Ensembl休息API.
库(HTTR).server < - “http://rest.ensembl.org”.get < - 函数(端点,参数= list(),server = .server){parameters < - paste(名称(参数),unname(参数),sep =“=”,collaps =“&”)URL < - sprintf(“%s%s%s%s”,服务器,端点,ifelse(丢失(参数),“,”?“)那parameters) response <- GET(url) stop_for_status(response) content(response) } .jsonlist2data.frame <- function(lst) { as.data.frame(t(simplify2array(lst))) }
例子:
. get(/信息/平)美元平
物种< - “人”;符号< - “braf”端点< - sprintf(“/ xrefs / symbol /%s /%s /%s /%s”,物种,符号)参数< - c(object_type =“gene”).get(端点,参数)
<- c(feature="cds", logic_name="havana") olaps <- .get(Endpoint, parameters) .jsonlist2data.frame(olaps)
物种< - --get(“/ info / seeties”)物种1 < - lapply(物种[[1]],“[”,名称(物种[[1]] [[1])[c(1:7,10)]).jsonlist2data.frame(species1)