exomePeak2 使用筆記之自建 BSgenome Object

exomePeak2 使用筆記之自建 BSgenome Object

最近需要使用 exomePeak2 這個(gè)包來(lái)對(duì)玉米的 RNA-seq 和 RIP-seq 數(shù)據(jù)進(jìn)行 peak calling,但其中的 bsgenome 參數(shù)需要導(dǎo)入對(duì)應(yīng)物種的 BSgenome object,所以需要自主構(gòu)建參考基因組的 BSgenome data package。

BSgenome 數(shù)據(jù)包

BSgenome 數(shù)據(jù)包是基于 Biostrings 構(gòu)建的全基因組數(shù)據(jù)序列數(shù)據(jù)包。BSgenome 數(shù)據(jù)包中包含物種的數(shù)據(jù)并且具有相似的數(shù)據(jù)結(jié)構(gòu),可以用統(tǒng)一的方式進(jìn)行處理,由 BSgenome 軟件包提供。

首先安裝 BSgenome 包。

if (!requireNamespace("BiocManager", quietly = TRUE))?

? install.packages("BiocManager")?

BiocManager::install("BSgenome")??

然后導(dǎo)入包,并查看官方已有的 BSgenome 數(shù)據(jù)包

library(BSgenome)

ag <- available.genomes()

但當(dāng)前版本中沒(méi)有玉米的數(shù)據(jù)包,所以需要自己構(gòu)建。

1. 構(gòu)建玉米的 BSgenome 數(shù)據(jù)包

1) 首先將 fa 文件轉(zhuǎn)換為 2bit 文件。 此時(shí)需要用到 faToTwoBit。

faToTwoBit zmB73.fa zmB73.2bit

2) 提取玉米的染色體名稱(chēng)

less -S zmB73.fa | grep ">" |awk '{print $1}' | sed 's/^>//g' > zmB73.chromName.txt

3) 書(shū)寫(xiě)玉米的 seed 文件 ZmaysZm4_seed。此處我使用的參考基因組版本是 Zea Mays RefGen_v4 (AGPv4)。

根據(jù) BSgenome 的參考文件?https://www.bioconductor.org/packages/devel/bioc/vignettes/BSgenome/inst/doc/BSgenomeForge.pdf?第二章: 2.2?Prepare the BSgenome data package seed file 提示編寫(xiě)。

Package: BSgenome.Zmays.Ensemble.zmv4

Title: Genome sequences for Zea mays (Ensemble AGPv4)

Description: A BSgenome package containing the full genome sequences for Zea mays (Maize) as provided by Ensemble (B73 AGPv4, Sept. 2020) and stored in Biostrings objects.

Version: 1.0

organism: Zea mays

common_name: Maize

provider: Ensemble

provider_version: zmv4

release_date: Sept. 2020

release_name: Maize Genome Sequencing B73 RefGen_v4.0

#source_url: ftp://ftp.ensemblgenomes.org/pub/plants/release-49/fasta/zea_mays/dna/

circ_seqs: c("Mt","Pt")

organism_biocview: Zea_mays

BSgenomeObjname: Zmays

seqs_srcdir: /data/zhanmin/preparation/index/

seqfiles_suffix: .fa

seqnames: seqnames1 # or you can use the R code directly: as.character(read.table(" zmB73.chromName.txt ")$V1)

seqfile_name: zmB73.2bit

4) 在 R 中構(gòu)建 R 包

library(rtracklayer)

library(BSgenome)

## import the sequence names of maize

## If you already use the R code in seed file to read the sequence names,? this part code is not necessary.

seqnames=read.table("zmB73.chromName.txt")

seqnames1=as.character(seqnames$V1)

# import seed file

zmB73_seed="BSgenome.Zmays.Ensemble.zm4-seed"

# make the BSgenome data package for maize. seqs_srcdir: the dirctory of sequence file; destdir: the directory of output?

forgeBSgenomeDataPkg(zmB73_seed, seqs_srcdir=getwd(), destdir=getwd(), verbose=TRUE)

運(yùn)行完畢后會(huì)在指定目錄或工作目錄中產(chǎn)生輸出文件夾:BSgenome.Zmays.Ensemble.zmv4

2. 在 linux 中構(gòu)建 R 包

1) 使用 build 命令構(gòu)建 R 包

R CMD build BSgenome.Zmays.Ensemble.zmv4 #運(yùn)行后會(huì)產(chǎn)生相應(yīng)的 tar.gz 壓縮文件

此時(shí)發(fā)生報(bào)錯(cuò):

ERROR

cannot change to directory ‘BSgenome.Zmays.Ensemble.zmv4’

(python3.7) user@amax:/data/user/preparation/index/BSgenome.Zmays.Ensemble.zmv4$ cd ..

(python3.7) user@amax:/data/user/preparation/index$ R CMD build BSgenome.Zmays.Ensemble.zmv4

* checking for file ‘BSgenome.Zmays.Ensemble.zmv4/DESCRIPTION’ ... OK

* preparing ‘BSgenome.Zmays.Ensemble.zmv4’:

* checking DESCRIPTION meta-information ... ERROR

Malformed package version.

See section 'The DESCRIPTION file' in the 'Writing R Extensions'

manual.

根據(jù)提示查閱?Writing R Extensions?文檔的?The DESCRIPTION file 章節(jié),并對(duì)比自己的 description 文件。

發(fā)現(xiàn)是 Version 這個(gè)參數(shù)寫(xiě)錯(cuò)了,規(guī)定的范圍值應(yīng)該是 0.5-1,但這里我自己的文檔寫(xiě)了 41。 這里應(yīng)該直接從 seed 文件修改。

先把 seed 文件的 Version 改為 1.0, 然后重復(fù) 1. 4的步驟,重新構(gòu)建 R 包。再次執(zhí)行 R CMD build 命令,此時(shí)就成功了。

2) 用 check 命令查看是否產(chǎn)生 tar.gz 壓縮文件

R CMD check?BSgenome.Zmays.Ensemble.zmv4_1.0.tar.gz

3) 導(dǎo)入 R 包

R CMD INSTALL BSgenome.Zmays.Ensemble.zmv4_1.0.tar.gz

exomePeak2 進(jìn)行 peak calling

1. 導(dǎo)入所需要的 R 包

沒(méi)有的包需要先用 BioManager::install() 命令安裝。

library(AnnotationHub) # help to build the annotation object

library(biomaRt)

library(GenomicFeatures)

library(exomePeak2)

library(rtracklayer)

library(BSgenome)

library(BSgenome.Zmays.Ensemble.zmv4) # import the Maize BSgenome data pacakage

構(gòu)建玉米的 TxDb object 數(shù)據(jù)。

maize_txdb<- makeTxDbFromBiomart(biomart = "plants_mart",dataset = "zmays_eg_gene",host = "http://plants.ensembl.org")

saveDb(maize_txdb, file="maize_v4.sqlite")

maize_txdb <- loadDb("maize_v4.sqlite")

運(yùn)行 exomePeak2 函數(shù)

exomePeak2(bam_ip = c("IP_1.bam","IP_2.bam"),

? ? ? ? ? bam_input = c("Input_1.bam","Input_2.bam"),

? ? ? ? ? txdb = maize_txdb,

? ? ? ? ? bsgenome = BSgenome.Zmays.Ensemble.zmv4,

? ? ? ? ? paired_end = TRUE)

過(guò)程大概需要幾個(gè)小時(shí),視數(shù)據(jù)大小而定。結(jié)束后會(huì)自動(dòng)生成輸出文件夾 exomePeak2_output,也可通過(guò)參數(shù)?save_dir = "exomePeak2_output" 指定文件路徑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容