注释基因,基因组和变种

马丁•摩根
2014年2月4日

基因注释

数据包

组织级(“org”)包包含中心标识符(如Entrez基因id)和其他标识符(如GenBank或Uniprot登录号、RefSeq id等)之间的映射。org包的名称总是这种形式org。 .db(如。org.sc.sgd.db.) 在哪里是生物体的2个字母的缩写(例如SC.酿酒酵母酿酒酵母),<标识>是描述中央标识符类型的缩写(在小写)(例如,sgd为基因标识符分配酿酒酵母基因组数据库,或对于Entrez基因ID)。[AnnotationDBI] []包中的“如何使用'.db'bonotation packages”gignette(org软件包只有一种类型的“.db”注释包)是一个关键参考。“.db”和大多数其他生物导体注释包每6个月更新一次。

注释包通常包含在包自身后命名的对象。这些对象统称AnnotationDb对象,具有更多特定的类命名OrgDbChipdB.或者resscriptdb.对象。可以应用于这些对象的方法包括cols()键()keytypes()选择()。检索注释的常用操作汇总在表中。

类别 功能 描述
发现 列() 列出可以返回的列类型
keytypes() 列出可以用作键的列
键() 列出可以预期给定键盘的值
选择() 检索注释匹配钥匙keytype.
操纵 setdiff ()联盟()相交() 上的操作集
重复()独特的() 标记或删除重复
%在%比赛() 找到匹配
任何()全部() 任何真的?都是?
合并() 基于共享密钥组合两个不同的\对象{data.frames}
农庄* 成绩单()外显子()cd () 特征(转录本、外显子、编码序列)为农庄
transcriptsBy ()exonsBy () 通过基因,成绩单等特征组。GRangesList
cdsBy ()

锻炼:此练习说明“选择”接口到注释包的基本使用。

  1. org包的名称是什么智人?加载它。显示OrgDb对象的org.hs.eg.db.包裹。使用列()发现可以从中提取哪种注释的方法。
  2. 使用键()提取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()检索数据。

锻炼

  1. 加载生物雕包裹并列出可用的山区。选择Ensembl.Mart并列出该Mart的数据集。设置一个集市来使用Ensembl.集市和Hsapiens Gene Ensembl.数据集。
  2. 一种生物雕可以通过访问数据集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}。这些有生物学意义吗?你能合并()注释结果与顶部表格的结果提供统计上和生物信息的摘要?

基因组注释

有多样性的包装和课程可用于代表大型基因组。几个包括:

注释记录包

基因组的包装对于涉及基因组坐标的注释非常有用。例如,它是直接的,以发现感兴趣区域中的编码序列的坐标,以及这些检索相应的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序列。

  1. 使用org.hs.eg.db.包从基因符号'BRCA1'映射到其Entrez标识符。使用这件事选择命令。
  2. 使用txdb.hsapiens.ucsc.hg19.knowngene.检索成绩单名称的包(txname.)对应于BRCA1 Entrez标识符。('ORG *'软件包基于NCBI的信息,其中Entrez标识符被标记为EntrezID;我们使用的“TXDB *”包是来自UCSC的,其中Entrez标识符被标记为基因)。
  3. 使用cdsBy ()功能检索所有编码序列按转录分组的基因组坐标,并选择与我们感兴趣的标识符相对应的转录本。编码序列被返回为GRangesList,其中列表中的每个元素都是a农庄代表编码序列中外显子的对象。作为完整性检查,确保每个编码序列的外显子宽度之和能被3整除(R '模'算子)% %返回另一个号码的剩余部分,在这种情况下可能会有所帮助)。

  4. 可视化转录本在基因组坐标使用[Gviz][]包构建一个annotationtrack.,并使用绘制它plotTracks ()

  5. 使用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]可视化BRCA1转录物

要求(Gviz) anno <- AnnotationTrack(brca1cds) plotTracks(list(GenomeAxisTrack(), anno))

块GVIZ的情节

提取每个转录物的编码序列

图书馆(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.

rtracklayer.包允许我们查询UCSC基因组浏览器,以及提供进口()出口()用于通用注释文件格式(如GFF、GTF和BED)的函数。

锻炼

我们在这里使用rtracklayer.检索ENCODE项目中跨细胞系识别的雌激素受体结合位点。我们的重点是结合位点附近的一个特别有趣的兴趣区域。

  1. 通过创建农庄具有适当基因组坐标的实例。我们的地区对应于特定基因的10MB和下游。
  2. 为UCSC基因组浏览器创建会话
  3. 查询UCSC基因组浏览器以编码雌激素受体Eralpha \(_ a \)转录标记;识别适当的曲目,表和转录因子需要生物学知识和侦探工作。
  4. 可视化绑定站点的位置及其分数;注释感兴趣区域的中点。

解决方案

定义感兴趣的区域

图书馆(基因组)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")

块rtracklayer-plot的情节

变体

跟着变体工作流程。

annotationhub.

例1:

例2:

库(GRASP2DB)#注释包,#6 GB AnnotationHub资源D < -  GRASP2()#dplyr实例Hispanic < -  TBL(D,“Count”)%>%过滤器(人口==“西班牙裔”)SEMI_JOIN(TBL(D,“变体”),西班牙裔

数据库访问(高级)

锻炼:使用annotationdbi :: dbfile()在TxDb对象上基因表只能过滤CHR3上的那些基因。管子这选择此选择makegrangesfromdataframe.得到一个农庄实例。

Web资源(高级)

“轻松”编写基于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)