「Bioconductor」讓我們愉快的為自己做一個(gè)物種包吧

做植物是一件比較艱苦的事情啥刻,不但資源少贮缕,而且有限的資源未必還能用的好腮猖,就拿Bioconductor上的注釋包來說吧税稼,我在「Bioconductor」不要輕易相信AnnotationHub的物種注釋包, 里面就提到擬南芥的物種包用的注釋其實(shí)一直都沒有更新胆胰。究其原因狞贱,是因?yàn)閿M南芥的物種包里的注釋一直是從TAIR的FTP下載,而我另一篇文章TAIR周期性更新的注釋原來不在FTP服務(wù)器上也說了蜀涨,最新的擬南芥注釋信息是要在另外的地方進(jìn)行下載瞎嬉。所以,我寫了「Bioconductor」再次提醒厚柳,研究植物的不要輕易相信你用的注釋包氧枣, 讓大家嘗試用enricher解決問題。

但是生活不能茍且别垮,我好歹在生信圈搬了幾年磚便监,遇到困難不能退縮,于是我決定自己構(gòu)建一個(gè)擬南芥的物種包碳想。代碼如下:

library(RSQLite)
library(AnnotationForge)
options(stringsAsFactors = F)

# GENE-GO注釋的數(shù)據(jù)框
# ATH_GO_TERM.txt were create 
# by `cat ATH_GO_GOSLIM.txt | cut -f 1,6,8,10 > ATH_GO_TERM.txt`
go_df <- read.table("./ATH_GO_TERM.txt",
                      sep="\t", header = FALSE,
                      as.is = TRUE)
go_df$V3 <- ifelse(go_df$V3 == "C", "CC",
                     ifelse(go_df$V3 == "P", "BP",
                            ifelse(go_df$V3 == "F", "MF", "")))

# http://www.geneontology.org/page/guide-go-evidence-codes
# select high confidence evidence
go_df <- go_df[! go_df$V4 %in% "IEA",]
colnames(go_df) <- c("GID","GO","ONTOLOGY","EVIDENCE")



# GENE-PUB的數(shù)據(jù)框
pub_df <- read.table("./Locus_Published_20180330.txt.gz",
                     sep="\t",
                     header = TRUE)

## 只選擇AT開頭的基因
pub_df <- pub_df[grepl(pattern = "^AT\\d", pub_df$name),]
pub_df <- cbind(GID=do.call(rbind,strsplit(pub_df$name, split = "\\."))[,1],
                pub_df)
## pubmed_id 不能為空
pub_df <- pub_df[!is.na(pub_df$PMID),]

colnames(pub_df) <- c("GID","GENEID","REFID",
                      "PMID","PUBYEAR")

# GENE-SYMBOL的注釋數(shù)據(jù)庫(kù)
symbol_df <- read.table("./gene_aliases_20180330.txt.gz",
                        sep = "\t",
                        header = TRUE)
symbol_df <- symbol_df[grepl(pattern = "^AT\\d", symbol_df$name),]
colnames(symbol_df) <- c("GID","SYMBOL","FULL_NAME")


# GENE-FUNCTION
func_df <- read.table("./Araport11_functional_descriptions_20180330.txt.gz",
                      sep = "\t",
                      header=TRUE)
func_df <- func_df[grepl(pattern = "^AT\\d", func_df$name),]
func_df <- cbind(GID=do.call(rbind,strsplit(func_df$name, split = "\\."))[,1],
                  func_df)
colnames(func_df) <- c("GID","TXID","GENE_MODEL_TYPE",
                       "SHORT_DESCRIPTION",
                       "CURATOR_SUMMARY",
                       "COMPUTATIONAL_DESCRIPTION")
## 去重復(fù)行
go_df <- go_df[!duplicated(go_df),]
go_df <- go_df[,c(1,2,4)]
pub_df <- pub_df[!duplicated(pub_df),]
symbol_df <- symbol_df[!duplicated(symbol_df),]
func_df <- func_df[!duplicated(func_df),]


# no duplicated row
# all GID should be same type, be aware of factor
file_path <- file.path( getwd())
makeOrgPackage(go=go_df,
               pub_info = pub_df,
               symbol_info = symbol_df,
               function_info = func_df,
               version = "0.1",
               maintainer = "xuzhougeng <xuzhougeng@163.com>",
               author="xuzhogueng <xuzhougeng@163.com>",
               outputDir = file_path,
               tax_id = "3702",
               genus = "At",
               species = "tair10",
               goTable = "go"
  
)

#install.packages("./org.Atair10.eg.db", repos = NULL,
#                 type = "source")

最后會(huì)在指定目錄下生成"org.Atair10.eg.db", 然后就可以用

install.packages("./org.Atair10.eg.db", repos = NULL,
                 type = "source")

而且我測(cè)試了烧董,能和Y叔的clusterProfiler完美結(jié)合

library(org.Atair10.eg.db)
org <- org.Atair10.eg.db
ego_down <-enrichGO(gene = DEG_GENES, 
         OrgDb = org,
         keyType = "GID",
         ont = "BP"
         ) 

目前我是自己用為主,如果你們有需要胧奔,可以按照如下代碼進(jìn)行安裝

# 解決依賴包的問題
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("org.At.tair.db", version = "3.8")
# 安裝我的注釋包
install.packages("https://raw.githubusercontent.com/xuzhougeng/org.At.tair.db/master/org.Atair10.eg.db.tgz", repos=NULL, type="source")

出現(xiàn)問題逊移,歡迎在我的GitHubhttps://github.com/xuzhougeng/org.At.tair.db上提出issue

參考資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市龙填,隨后出現(xiàn)的幾起案子螟左,更是在濱河造成了極大的恐慌啡浊,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胶背,死亡現(xiàn)場(chǎng)離奇詭異巷嚣,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)钳吟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門廷粒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人红且,你說我怎么就攤上這事坝茎。” “怎么了暇番?”我有些...
    開封第一講書人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵嗤放,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我壁酬,道長(zhǎng)次酌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任舆乔,我火速辦了婚禮岳服,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘希俩。我一直安慰自己吊宋,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開白布颜武。 她就那樣靜靜地躺著璃搜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鳞上。 梳的紋絲不亂的頭發(fā)上这吻,一...
    開封第一講書人閱讀 51,370評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音因块,去河邊找鬼。 笑死籍铁,一個(gè)胖子當(dāng)著我的面吹牛涡上,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拒名,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吩愧,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了增显?” 一聲冷哼從身側(cè)響起雁佳,我...
    開封第一講書人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤脐帝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后糖权,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體堵腹,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年星澳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疚顷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡禁偎,死狀恐怖腿堤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情如暖,我是刑警寧澤笆檀,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站盒至,受9級(jí)特大地震影響酗洒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜妄迁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一寝蹈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧登淘,春花似錦箫老、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至流妻,卻和暖如春牲蜀,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绅这。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工涣达, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人证薇。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓度苔,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親浑度。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寇窑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

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