目标
BSgeome自己有很多构建好的基因组,但是对于非模物种来说,有时候我们需要自己构建基因组的信息。如何根据物种的参考基因组fa文件,构建新的BSgeome的R包,供后续的研究?
参考文档:请仔细阅读参考文档,根据参考文档构建相关的R包。https://www.bioconductor.org/packages/devel/bioc/vignettes/BSgenome/inst/doc/BSgenomeForge.pdf
任务:现在输入的文件是下载的dm6.fa,里面有果蝇的基因组的参考序列信息。
1. 前期工作,在linux下工作
1)将fa格式的文件转换成twoBit。BSgeome不识别fa的格式. 需要下载ucsc的faToTwoBit工具进行格式转化。
下载地址:http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/faToTwoBit
wget -c http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/faToTwoBit
faToTwoBit dm6.fa dm6.2bit
2)获得每一条染色体的名字
less -S dm6.fa | grep ">" |awk '{print $1}' | sed 's/^>//g' >dm6.chromName.txt
2. 编写seed文件
程序的关键是seed文件,参考已有的seed修个seed格式的文件。根据上面参考文档第四页的2.2 Prepare the BSgenome data packages seed file.修改相关的格式。
比如给出序列的文件名,seqfile_name: dm6.2bit
找出线粒体的名字,在seed文件中的 添加<</span>线粒体>的名字,并且手动删除dm6.chromName.txt中的<</span>线粒体>名字
3. 构建R包,在R中的工作
library(BSgenome)
#读取前面构建的染色体名字的文件,注意 seqnames应该和seed文件中的关键字一致
seqnames=read.table("dm6.chromName.txt")
seqnames=as.character(seqnames$V1)
#染色体名有<211000022280427>,这种纯数字的,这种chr是不能识别的
seqnames1=seqnames[grep("^211",seqnames,invert=T)]
#给出seed文件
dm6_seed="BSgenome.Dmelanogaster.Ensemble.dm6-seed"
#seqs_srcdir;destdir 序列文件所在以及输出的位置
forgeBSgenomeDataPkg(dm6_seed, seqs_srcdir=getwd(), destdir=getwd(), verbose=TRUE)
forgeBSgenomeDataPkg(dm6_seed, verbose=TRUE)
4. 参考说明文档2.3中的内容构建R包。
在linux中构建R包并安装
R CMD build BSgenome.Dmelanogaster.Ensemble.dm6
R CMD check BSgenome.Dmelanogaster.Ensemble.dm6_1.4.2.tar.gz
R CMD INSTALL BSgenome.Dmelanogaster.Ensemble.dm6_1.4.2.tar.gz
大功告成。可以欢快的用 BSgenome.Dmelanogaster.Ensemble.dm6 这个自己构建的包了。
最后,附上我自己写的seed文件,成功的关键就是seed文件的设置,需要理解里面的参数。
Package: BSgenome.Dmelanogaster.Ensemble.dm6
Title: Full genome sequences for Drosophila melanogaster (Ensemble version dm6)
Description: Full genome sequences for Drosophila melanogaster(furitfly) as provided by Ensemb
le (dm6, Nov. 2004) and stored in Biostrings objects.
Version: 1.4.2
organism: Drosophila melanogaster
common_name: Furitfly
provider: Ensemble
provider_version: dm6
release_date: Nov. 2004
release_name: Baylor College of Medicine HGSC v3.4
#source_url: http://hgdownload.cse.ucsc.edu/goldenPath/rn4/bigZips/
organism_biocview: Drosophila_melanogaster
BSgenomeObjname: Dmelanogaster
#seqnames: paste("chr", c(1:20, "X", "M", "Un", paste(c(1:20, "X", "Un"), "_random", sep="")),sep="")
#seqnames: set the sequence names in R first: seqnames_all
seqnames: seqnames1
circ_seqs: "dmel_mitochondrion_genome"
SrcDataFiles: chromFa.tar.gz from http://hgdownload.cse.ucsc.edu/goldenPath/rn4/bigZips/
seqs_srcdir: /fh/fast/morgan_m/BioC/BSgenomeForge/srcdata/BSgenome.Rnorvegicus.UCSC.rn4/seqs
#seqfile_name: the full of sequence name
seqfile_name: dm6.2bit