【Bioconductor系列】如何用Bioconductor對基因組注釋

這一次毁习,我們來聊聊基因組注釋。首先問自己一個(gè)問題咖摹,為什么要進(jìn)行基因注釋。
就我目前而言难述,它用來解決如下問題:

  1. 在mapping-by-sequencing的時(shí)候萤晴,我找到了一些可能的突變位點(diǎn),我需要知道這些突變分別是那些基因發(fā)生突變龄广,這些突變基因有哪些功能硫眯?
  2. 差異表達(dá)分析之后會得到許多的基因蕴侧,這些基因有什么樣的特征择同?如果要進(jìn)行基因富集分析,不可避免就需要知道他們的GO,KEGG等注釋信息净宵。

如果一個(gè)基因沒有注釋信息敲才,那么他就只是一段DNA序列,只是一個(gè)符號择葡。你可能會很開心紧武,因?yàn)槟阊芯康墓δ懿]有被大多數(shù)人所發(fā)現(xiàn),說不定這就是一篇CNS級別的文章敏储;你或許會悲傷阻星,因?yàn)闆]有注釋,意味著你的工作從全新的工作,也就是說你的工作量會很大妥箕。但是不管如何滥酥,你看到一個(gè)基因后,都會本能的想知道它到底有哪些功能畦幢,如同你看到一個(gè)漂亮妹子的照片坎吻,你也可能想去知道更多有關(guān)于她的信息。

對于一個(gè)或幾個(gè)基因而言宇葱,NCBI瘦真,EBI,TAIR等網(wǎng)站夠用了,但是對于高通量數(shù)據(jù)分析的結(jié)果黍瞧,你還要一個(gè)一個(gè)查的話诸尽,那就是有點(diǎn)費(fèi)勁了。(尷尬的是雷逆,我第一次尋找突變位點(diǎn)就是靠我手工注釋結(jié)果)弦讽。

因此,本文就是介紹如何在R語言中對高通量分析結(jié)果中基因信息進(jìn)行注釋膀哲。

找到注釋信息

目前存在大量的注釋信息的數(shù)據(jù)庫往产,我們需要一個(gè)方便的搜索工具,用于找到我們所需要的信息某宪。Biconductor建立在R語言上的一個(gè)開源項(xiàng)目仿村,旨在未高通量數(shù)據(jù)分析提供可靠的工具。項(xiàng)目的一個(gè)重要部分就是組織網(wǎng)絡(luò)上大量的注釋信息兴喂,方便科研人員使用蔼囊。

目前最新的工具包叫做AnnotationHub,顧名思義衣迷,就是注釋信息的中裝站畏鼓。通過它,能找到了幾乎所有的注釋資源壶谒。如果沒有云矫,你還可以根據(jù)已有的數(shù)據(jù)用它提供的函數(shù)進(jìn)行構(gòu)建。

安裝方式很簡單(首先你得裝了R):

## try http:// if https:// URLs are not supported
source("https://bioconductor.org/biocLite.R")
biocLite("AnnotationHub")</pre>

使用AnnotationHub汗菜,我們需要創(chuàng)建AnnotationHub對象(加載AnnotationHub這一步就不多說了).

library(AnnotationHub)
ah <- AnnotationHub()
ah
AnnotationHub with 39213 records
# snapshotDate(): 2017-04-25 
# $dataprovider: BroadInstitute, Ensembl, UCSC, Haemcode, Inparanoid8, Pazar, Gencode, ftp://ftp.ncbi.nlm...
# $species: Homo sapiens, Mus musculus, Bos taurus, Pan troglodytes, Danio rerio, Rattus norvegicus, Dros...
# $rdataclass: GRanges, BigWigFile, FaFile, TwoBitFile, ChainFile, Rle, Inparanoid8Db, EnsDb, TxDb, data....
# additional mcols(): taxonomyid, genome, description, coordinate_1_based, maintainer,
#   rdatadateadded, preparerclass, tags, rdatapath, sourceurl, sourcetype 
# retrieve records with, e.g., 'object[["AH2"]]' 

            title                                                 
  AH2     | Ailuropoda_melanoleuca.ailMel1.69.dna.toplevel.fa     
  AH3     | Ailuropoda_melanoleuca.ailMel1.69.dna_rm.toplevel.fa  
  AH4     | Ailuropoda_melanoleuca.ailMel1.69.dna_sm.toplevel.fa  
  AH5     | Ailuropoda_melanoleuca.ailMel1.69.ncrna.fa            
  AH6     | Ailuropoda_melanoleuca.ailMel1.69.pep.all.fa          
  ...       ...                                                   
  AH54627 | Xiphophorus_maculatus.Xipmac4.4.2.cdna.all.2bit       
  AH54628 | Xiphophorus_maculatus.Xipmac4.4.2.dna.toplevel.2bit   
  AH54629 | Xiphophorus_maculatus.Xipmac4.4.2.dna_rm.toplevel.2bit
  AH54630 | Xiphophorus_maculatus.Xipmac4.4.2.dna_sm.toplevel.2bit
  AH54631 | Xiphophorus_maculatus.Xipmac4.4.2.ncrna.2bit 

上述結(jié)果告訴了我們以下信息:

  • 它的數(shù)據(jù)庫版本是2017-4-25让禀,目前有39213條記錄
  • 你可以用ah$dataprovider的方式查看數(shù)據(jù)來源,還可以看有哪些物種和數(shù)據(jù)類型可以用陨界。
  • 你可以用mcols看更多的元信息巡揍。
  • 獲取數(shù)據(jù)的方式是object[["AH2"]]

根據(jù)這些知識點(diǎn),我們就可以問第一個(gè)問題

AnnotationHub的數(shù)據(jù)來源有哪些菌瘪?

unique(ah$dataprovider)
[1] "Ensembl"                               "UCSC"                                 
 [3] "RefNet"                                "Inparanoid8"                          
 [5] "NHLBI"                                 "ChEA"                                 
 [7] "Pazar"                                 "NIH Pathway Interaction Database"     
 [9] "Haemcode"                              "BroadInstitute"                       
[11] "PRIDE"                                 "Gencode"                              
[13] "dbSNP"                                 "CRIBI"                                
[15] "Genoscope"                             "MISO, VAST-TOOLS, UCSC"               
[17] "ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/"

第二個(gè)問題

AnnotationHub目前支持哪些物種腮敌?我想找的物種在這里面么?

unique(ah$species)

由于結(jié)果有391個(gè),不方便查詢糜工。但是可以通過篩選斗这,找找目標(biāo)物種是否存在。

ah$species[which(ah$species == "Arabidopsis thaliana")]
[1] "Arabidopsis thaliana" "Arabidopsis thaliana" "Arabidopsis thaliana" "Arabidopsis thaliana"
[5] "Arabidopsis thaliana"

通過它提供的query函數(shù)啤斗,去搜索ah對象表箭,就能判斷目標(biāo)物種是否被AnnotationHub收錄。

query(x, pattern, ignore.case=TRUE, pattern.op= &)
Return an AnnotationHub subset containing only those elements whose metadata matches pattern. Matching uses pattern as in grepl to search the as.character representation of each column, performing a logical & across columns. e.g., query(x, c("Homo sapiens", "hg19", "GTF"))

比如說我想查找擬南芥相關(guān)的注釋數(shù)據(jù)庫钮莲,就可以去query去查找在metadata里面想關(guān)信息免钻。

grs <- query(ah, "Arabidopsis thaliana")
grs
...
 title                                     
  AH10456 | hom.Arabidopsis_thaliana.inp8.sqlite      
  AH52245 | TxDb.Athaliana.BioMart.plantsmart22.sqlite
  AH52246 | TxDb.Athaliana.BioMart.plantsmart25.sqlite
  AH52247 | TxDb.Athaliana.BioMart.plantsmart28.sqlite
  AH53758 | org.At.tair.db.sqlite 

當(dāng)然我們還可以用R本身的篩選功能

> ah[ah$species == 'Arabidopsis thaliana' & ah$rdataclass == 'OrgDb']
> subset(ah, species == 'Arabidopsis thaliana' & rdataclass == 'OrgDb')

搜索到的記錄就只有如下幾個(gè)了。

AnnotationHub with 1 record
# snapshotDate(): 2017-04-25 
# names(): AH53758
# $dataprovider: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/
# $species: Arabidopsis thaliana
# $rdataclass: OrgDb
# $rdatadateadded: 2017-04-10
# $title: org.At.tair.db.sqlite
# $description: NCBI gene ID based annotations about Arabidopsis thaliana
# $taxonomyid: 3702
# $genome: NCBI genomes
# $sourcetype: NCBI/ensembl
# $sourceurl: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA/, ftp://ftp.ensembl.org/pub/current...
# $sourcesize: NA
# $tags: c("NCBI", "Gene", "Annotation") 
# retrieve record with 'object[["AH53758"]]' 

如果我們酷愛圖形界面(GUI)崔拥,類似于網(wǎng)頁搜索那樣的操作极舔,可以使用的是display函數(shù)了。

display(ah)

第三個(gè)問題

AnnotationHub的注釋信息的數(shù)據(jù)存放格式是什么链瓦?

 unique(ah$rdataclass)
 [1] "FaFile"           "GRanges"          "data.frame"       "Inparanoid8Db"    "TwoBitFile"      
 [6] "ChainFile"        "SQLiteConnection" "biopax"           "BigWigFile"       "AAStringSet"     
[11] "MSnSet"           "mzRpwiz"          "mzRident"         "VcfFile"          "list"            
[16] "TxDb"             "Rle"              "EnsDb"            "OrgDb"  

比如說fasta文件是FaFile, 轉(zhuǎn)錄組數(shù)據(jù)庫是TxDb, 提供內(nèi)含子拆魏、外顯子、UTR區(qū)的信息慈俯。有物種數(shù)據(jù)庫渤刃,OrgDb,用于基因ID,基因名,GO,KEGG ID之間的相互映射贴膘。

第四個(gè)問題

我們?nèi)绾稳ハ螺d所需信息

第二個(gè)問題后卖子,你會得到一個(gè)ID,比如說擬南芥的OrgDb的注釋數(shù)據(jù)庫的ID就是"AH53758"刑峡,然后根據(jù)這個(gè)ID可以進(jìn)行下載洋闽。當(dāng)然下載方式已經(jīng)出現(xiàn)過了,

retrieve record with 'object[["AH53758"]]'

ath <- ah[['AH53758']]

bioconductor除了AnnotationHub能用來查找生物數(shù)據(jù)突梦,還有一個(gè)庫叫做biomaRt诫舅,可以用來查找biomart中的數(shù)據(jù)。不過目前biomart網(wǎng)站正在進(jìn)行服務(wù)器的數(shù)據(jù)遷移宫患,就不在這里演示刊懈。

小結(jié)

  • AnnotationHub是生物數(shù)據(jù)的中轉(zhuǎn)站,方面我們搜索目標(biāo)數(shù)據(jù)撮奏,另一個(gè)相似包是biomaRt;
  • 我們通過query,subset等方法(圖形界面則是display)俏讹,逐步從AnnotationHub的metadata篩選到所需數(shù)據(jù)的ID;
  • 使用[]是查看目標(biāo)數(shù)據(jù)的metadata, 使用[[]]用于下載數(shù)據(jù);

探索注釋數(shù)據(jù)庫

找到和下載注釋數(shù)據(jù)庫只是第一步当宴,學(xué)會如何使用這些數(shù)據(jù)庫更加重要畜吊。

AnnotationHub對象的通用方法

之前下載完數(shù)據(jù)后,在R里面被我指向到了'ath'户矢,那么我們先簡單了解一下這個(gè)'ath'

直接輸入對象名ath玲献,顯示的就是元數(shù)據(jù)信息,太長不放。

str了解一下它的數(shù)據(jù)結(jié)構(gòu).好吧捌年,我承認(rèn)我自己看不出名堂瓢娜。只知道他是AnnotationDbi的OrgDb類。

> str(ath)
Reference class 'OrgDb' [package "AnnotationDbi"] with 2 fields
 $ conn       :Formal class 'SQLiteConnection' [package "RSQLite"] with 6 slots
  .. ..@ ptr                :<externalptr> 
  .. ..@ dbname             : chr "D:\\xuzho\\Documents\\AppData\\.AnnotationHub\\60496"
  .. ..@ loadable.extensions: logi TRUE
  .. ..@ flags              : int 1
  .. ..@ vfs                : chr ""
  .. ..@ ref                :<environment: 0x000000002195a428> 
 $ packageName: chr(0) 
 and 14 methods.

mode看下它的數(shù)據(jù)模式(Get or set the type or storage mode of an object.)礼预,發(fā)現(xiàn)它是一個(gè)S4類眠砾。所有bioconductor的包都是S4類,然而什么是S4類呢托酸?

mode(ath)
[1] "S4"

class看下它具體繼承什么類(面向?qū)ο缶幊痰母拍睿?/p>

class(ath)
[1] "OrgDb"
attr(,"package")
[1] "AnnotationDbi"

好了褒颈,我們繼續(xù)調(diào)查什么是"AnnotationDbi",了解到他主要5個(gè)函數(shù)。

columns(x): 顯示當(dāng)前對象有哪些數(shù)據(jù)
keytypes(x): 有哪些keytypes可以用作select或keys的keytypes參數(shù)
keys(x, keytype, ...):返回當(dāng)前數(shù)據(jù)對象的keys
select(x, keys, columns, keytype, ...):基于keys, columns和keytype以data.frame數(shù)據(jù)類型返回?cái)?shù)據(jù)励堡,可以是一對多的關(guān)系
mapIds(x, keys, column, keytype, ..., multiVals): 類似于select谷丸,只不過就返回一個(gè)列。

返回這個(gè)數(shù)據(jù)包都有哪些列:

> columns(ath)
 [1] "ARACYC"       "ARACYCENZYME" "ENTREZID"     "ENZYME"       "EVIDENCE"     "EVIDENCEALL"  "GENENAME"    
 [8] "GO"           "GOALL"        "ONTOLOGY"     "ONTOLOGYALL"  "PATH"         "PMID"         "REFSEQ"      
[15] "SYMBOL"       "TAIR"  

返回這個(gè)數(shù)據(jù)包可以當(dāng)做關(guān)鍵字(key)進(jìn)行查找的列:

> keytypes(ath)
 [1] "ARACYC"       "ARACYCENZYME" "ENTREZID"     "ENZYME"       "EVIDENCE"     "EVIDENCEALL"  "GENENAME"    
 [8] "GO"           "GOALL"        "ONTOLOGY"     "ONTOLOGYALL"  "PATH"         "PMID"         "REFSEQ"      
[15] "SYMBOL"       "TAIR" 

基本上keytypes返回的結(jié)果是等于或者少于columns返回的結(jié)果应结。因?yàn)椴⒉皇撬辛卸寄墚?dāng)做查找對象刨疼。

keytypes告訴我們可以當(dāng)做哪些列是keytype類型,那么keys則列出這個(gè)keytype下有哪些關(guān)鍵字鹅龄。

head(keys(ath,keytype = "SYMBOL"))

select則是根據(jù)你提供的key值去查找注釋數(shù)據(jù)庫揩慕,返回你需要的columns信息。

> select(ath, keys= "AGO1", columns=c("TAIR","GO"),keytype = "SYMBOL")
'select()' returned 1:many mapping between keys and columns
   SYMBOL      TAIR         GO EVIDENCE ONTOLOGY
1    AGO1 AT1G48410 GO:0004521      IDA       MF
2    AGO1 AT1G48410 GO:0005515      IPI       MF
3    AGO1 AT1G48410 GO:0005634      IDA       CC
4    AGO1 AT1G48410 GO:0005737      IDA       CC
5    AGO1 AT1G48410 GO:0005737      ISM       CC
6    AGO1 AT1G48410 GO:0005737      TAS       CC
7    AGO1 AT1G48410 GO:0005829      IDA       CC
8    AGO1 AT1G48410 GO:0006306      RCA       BP
9    AGO1 AT1G48410 GO:0006342      RCA       BP
10   AGO1 AT1G48410 GO:0006346      RCA       BP
...

比如說一個(gè)AGO1就能返回那么多信息.因?yàn)橐粋€(gè)基因可以有多個(gè)功能(GO注釋)扮休,當(dāng)然一個(gè)GO注釋下也有可以多個(gè)基因漩绵。

> select(ath, keys= "GO:0004521", columns=c("TAIR"),keytype = "GO")
'select()' returned 1:many mapping between keys and columns
           GO EVIDENCE ONTOLOGY      TAIR
1  GO:0004521      ISS       MF AT1G14210
2  GO:0004521      ISS       MF AT1G14220
3  GO:0004521      ISS       MF AT1G26820
4  GO:0004521      IDA       MF AT1G30460
5  GO:0004521      IDA       MF AT1G48410
6  GO:0004521      ISS       MF AT2G02990
7  GO:0004521      IDA       MF AT2G04270
8  GO:0004521      IMP       MF AT2G17520
9  GO:0004521      IDA       MF AT2G39780
10 GO:0004521      ISS       MF AT2G39780
11 GO:0004521      IDA       MF AT2G40410
12 GO:0004521      ISS       MF AT3G04480
13 GO:0004521      ISS       MF AT3G20390
14 GO:0004521      IDA       MF AT5G24360
15 GO:0004521      IDA       MF AT5G41190

富集分析就是看不同GO,KEGG注釋下肛炮,你提供的基因集的分布情況止吐。比如說我隨機(jī)從擬南芥中抽樣200個(gè)基因,然后觀察這些基因的富集情況侨糟。
:這里用的Y叔的clusterProfiler

library("clusterProfiler")
tair.sample <- sample(keys(ath,keytype = "ENTREZID"), 100)
library("clusterProfiler")
test <- enrichGO(gene         = tair.sample,
                 OrgDb         = ath,
                 keytype = "ENTREZID",
                 pAdjustMethod = "none",
                 pvalueCutoff  = 0.1,
                 qvalueCutoff  = 0.2)
summary(test)

由于隨機(jī)取樣碍扔,很有可能找不到任何富集,可也是有有可能的秕重。

mapIds功能和select類似不同,只不過他返回的是一組向量,而不是數(shù)據(jù)庫溶耘。

mapIds(ath, keys = tair.sample, column = c("TAIR"), keytype = "ENTREZID")

這部分的小結(jié)就是記住5個(gè)函數(shù):

  • columns
  • keytypes
  • keys
  • select
  • mapIds

TxDb對象的專門方法

因?yàn)門xDb注釋對象包含轉(zhuǎn)錄組數(shù)據(jù)二拐,所以有一些特殊方法。以擬南芥的TxDb為例凳兵。

txdb <- ah[['AH52247']]txdb

第一類方法:根據(jù)轉(zhuǎn)錄本類型提取內(nèi)容百新,transcrpits(), exons(), cds(), genes() and promoters()

transcripts(txdb)
cds(txdb)
genes(txdb)
exons(txdb)

第二類方法: 根據(jù)某一類特征轉(zhuǎn)錄組進(jìn)行分類,如transcriptsBy(), exonsBy(), cdsBy(), intronsByTranscript(), fiveUTRsByTranscript() and threeUTRsByTranscript().

transcriptsBy(txdb, by="gene")
exonsBy(txdb, by="gene")

第三類方法:染色體相關(guān)函數(shù): seqinfo(), seqlevels(), seqlevelsStyle(), isActivateSeq()

# 染色體命名
seqinfo(txdb)
# 染色體水平
seqlevels(txdb)
# 染色體命名方法
seqlevelsStyle(txdb)
# 決定處理那些染色體
isActiveSeq(txdb)

BSgenome對象專門函數(shù)

BSgenome存放的是基因組序列數(shù)據(jù)庐扫,無法被AnnotationHub找到(但是共享通用函數(shù)),所以需要加載BSgenome對象進(jìn)行搜索饭望。

librara(BSgenome)
bs <- available.genomes()

但是擬南芥的參考基因組好像一直沒有更新仗哨,我表示很尷尬。

require(stringr)
str_subset(bs, "TAIR")
#[1] "BSgenome.Athaliana.TAIR.04232008" #"BSgenome.Athaliana.TAIR.TAIR9"

然后我覺得TAIR10是2012年左右發(fā)布的铅辞,所以肯定有人提問了厌漂。于是我熟練的打開搜索引擎去找相關(guān)信息,于是我發(fā)現(xiàn)了如下內(nèi)容

TAIR9 and TAIR10 correspond to the same genome assembly so there is no need for a BSgenome pkg for TAIR10 :-)
TAIR9的染色體命名是ChX, 也就是NCBI的風(fēng)格斟珊,注意這一點(diǎn)苇倡。

于是問題就這樣輕松解決了,下載TAIR9就行了囤踩。
標(biāo)記: 我需要下載TAIR9和TAIR10雏节,比較一下,有結(jié)果放到這里高职。

BiocInstaller::biocLite("BSgenome.Athaliana.TAIR.TAIR9")

函數(shù)有以下幾種

# 知由來
sourceUrl(Athaliana)
# 看的不是基因組大小
length(Athaliana)
# 序列的命名
seqnames(Athaliana)
# 各序列長度
seqlengths(Athaliana)
# 提取第一條染色體
ch1 <- Athaliana[['1']]

根據(jù)GenmoicRanges信息提取序列

對GenomicRanges進(jìn)行注釋

我們可以使用variantAnnotation包中的locateVariants()predictCoding()對GenmoicRanges數(shù)據(jù)進(jìn)行注釋钩乍。

  • locateVariants主要是判斷GenomicRanges在基因組哪里,所以只需要TxDb數(shù)據(jù)庫就行了
  • predictCodings要根據(jù)突變位點(diǎn)和位置判斷位點(diǎn)是無義突變還是同義突變怔锌,氨基酸又是如何變化寥粹。所以還需要BSgenome數(shù)據(jù)庫. 同時(shí)如果提供的是GenomicRanges, 你還需要額外提供突變后的堿基信息,DNAStringSet格式埃元。

step1: 加載數(shù)據(jù)庫

library(TxDb.Hsapiens.UCSC.hg19.knownGene)
txdb <- TxDb.Hsapiens.UCSC.hg19.knownGene

step2: (可選)讀取VCF文件

fl <- system.file("extdata", "gl_chr1.vcf", 
                    package="VariantAnnotation")
vcf <- readVcf(fl, "hg19")

step3 : 提供GenmoicRanges涝涤, 或直接用vcf進(jìn)行找到位點(diǎn)所在基因組位置

region <- IntergenicVariants(upstream=70000, downstream=70000)
loc_int <- locateVariants(vcf, txdb, region)
# 或者用genomicRanges
gr <- rowRanges(vcf)
loc_int <- locateVariants(gr, txdb, region)
mcols(loc_int)[c("LOCATION", "PRECEDEID", "FOLLOWID")] 

step4: (可選): 預(yù)測堿基突變的影響

library(BSgenome.Hsapiens.UCSC.hg19)
coding <- predictCoding(vcf, txdb, seqSource=Hsapiens)

如果提供的是GenomicRange,那么你還得需要一個(gè)varAllele

varallele <-  unlist(mcols(vcf)$ALT)
coding <- predictCoding(gr, txdb, seqSource=Hsapiens,
varAllele=varallele)

PS: VariantAnnotation包還提供了一些列函數(shù),如readVcf()岛杀,header(), info(), geno(), rowRanges() 用于從加載VCF文件阔拳,然后提供特定的數(shù)據(jù)。類似bcftools

練習(xí):尋找AGO1类嗤,然后對其進(jìn)行GO注釋糊肠,KEGG注釋等

首先加載擬南芥的物種數(shù)據(jù)庫, 因?yàn)榇娣帕薌ENENAME等信息遗锣。

tair.org <- ah[['AH53758']]

然后提GENENAME和GENEID

columns(tair.org)
keytypes(tair.org)
genename <- select(tair.org, keys=keys(tair.org,keytype = "TAIR"), columns=c("TAIR","GENENAME"), keytype="TAIR")

然后通過模式匹配货裹,找到含有AGO1的那一行。但是由于不是每個(gè)基因都有基因俗名精偿,NA在模式匹配的時(shí)候會返回NA弧圆,而不是FALSE,所以需要先處理掉NA笔咽。要么是替換成空字符串搔预,要么直接刪除改行。

genename <- na.omit(genename)

篩選AGO1:

require(stringr)
ago1 <- genename[str_detect(genename$GENENAME, "AGO1"),]

通過肉眼檢查叶组,發(fā)現(xiàn)“AT1G48410“是要找到拯田,和直接在TAIR搜索一致。

對該基因進(jìn)行GO和KEGG注釋

ago1 <- select(tair.org, keys="AT1G48410", columns = c("TAIR","PATH"), keytype = "TAIR" )
 dim(ago1)
[1] 61  5

發(fā)現(xiàn)GO注釋挺多扶叉,但是KEGG沒有注釋勿锅。想想也是吧,畢竟AGO1是參加miRNA加工的枣氧,不算是代謝通路的溢十。

不過為了折騰,我覺得找到有KEGG注釋的基因达吞,然后去TAIR上看下张弛。

kegg <- select(tair.org, keys = keys(tair.org,"PATH"), columns=c("TAIR","PATH"), keytype = "PATH")

也是一種一對多的關(guān)系,同一條PATH中必然涉及到多個(gè)基因酪劫,我隨便找到了一個(gè)基因<font size="+1">AT1G07420</font>在TAIR搜索吞鸭。

最終發(fā)現(xiàn)一個(gè)頁面能搜到path,一個(gè)頁面不能搜索到path覆糟。但是都沒有KEGG的說明刻剥,我很好奇。

順便放一下自己的知識星球滩字,如果你覺得我對你有幫助的話造虏。


知識星球
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市麦箍,隨后出現(xiàn)的幾起案子漓藕,更是在濱河造成了極大的恐慌,老刑警劉巖挟裂,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件享钞,死亡現(xiàn)場離奇詭異,居然都是意外死亡诀蓉,警方通過查閱死者的電腦和手機(jī)栗竖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渠啤,“玉大人划滋,你說我怎么就攤上這事“Bǎ” “怎么了处坪?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長架专。 經(jīng)常有香客問我同窘,道長,這世上最難降的妖魔是什么部脚? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任想邦,我火速辦了婚禮,結(jié)果婚禮上委刘,老公的妹妹穿的比我還像新娘丧没。我一直安慰自己鹰椒,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布呕童。 她就那樣靜靜地躺著漆际,像睡著了一般。 火紅的嫁衣襯著肌膚如雪夺饲。 梳的紋絲不亂的頭發(fā)上镰烧,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天骚秦,我揣著相機(jī)與錄音养泡,去河邊找鬼若贮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛浩销,可吹牛的內(nèi)容都是我干的贯涎。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼慢洋,長吁一口氣:“原來是場噩夢啊……” “哼柬采!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起且警,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤粉捻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后斑芜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體肩刃,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年杏头,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盈包。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡醇王,死狀恐怖呢燥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情寓娩,我是刑警寧澤叛氨,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站棘伴,受9級特大地震影響寞埠,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜焊夸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一仁连、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧阱穗,春花似錦饭冬、人聲如沸使鹅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽患朱。三九已至,卻和暖如春扰魂,著一層夾襖步出監(jiān)牢的瞬間麦乞,已是汗流浹背蕴茴。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工劝评, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人倦淀。 一個(gè)月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓蒋畜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親撞叽。 傳聞我的和親對象是個(gè)殘疾皇子姻成,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 非常優(yōu)秀的研究總結(jié),值得學(xué)習(xí)領(lǐng)會和思考愿棋。因?yàn)樽謹(jǐn)?shù)太多科展,可以去作者的博文地址http://www.huangshuj...
    王詩翔閱讀 4,171評論 1 24
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)糠雨,斷路器才睹,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 以下介紹引用自 表達(dá)譜芯片數(shù)據(jù)的基因功能富集分析 劉 明1 王米渠2 丁維俊2 綜述 畢 鋒1 審校 基因富...
    趙晨西西西西閱讀 3,474評論 0 8
  • 一次思思心情不好,就約她去看電影 看完之后甘邀,她突然跟我說琅攘,我覺得不太好看 我:我覺得挺好看的啊,哪里不好看了 思思...
    桃子youyou閱讀 186評論 0 0
  • 還是會習(xí)慣性的閑下來就想打開QQ跟你說句話松邪,然后看見聊天框是空的坞琴,才意識到,奧逗抑,原來不用聯(lián)系了剧辐。我不知道多...
    別說話好嗎閱讀 299評論 7 5