BSgenome 构建自己的参考基因组

1. 目的

  最近在某个分析的时候,需要BSgenome object,然而我的物种不是常见的物种,是自己组装出来的多倍体物种,因此没法用已有的BSgenome参考基因组,需要自己构建BSgenome参考基因组,通过BSgenome相关介绍说明的时候,发现有一个How to forge a BSgenome data package说明,这说明了我们能够自己通过BSgenome包,构建自己的参考基因组,下面就是构建BSgenome参考基因组的过程

2. 输入fasta的准备

  构建BSgenome参考基因组的方法有两种,一种是不需要masked sequences,另外一种是需要masked sequences文件,这里我选择第一种进行构建。其实两者最主要的差别在于是否提供masked sequences文件。

  构建BSgenome参考基因组具体需要什么文件呢?说明文档中也有详细的说明,其中最主要的文件就是一个fasta文件,这里的fasta文件可以是所有染色体合并一起的一个文件,也可以是单条染色体的fasta文件,文件格式可以是压缩文件格式,后续的处理几乎都是在fasta文件的基础上进行处理。

输入fasta文件介绍

  前面提到了fasta文件需要进行处理,究竟如何处理呢?由于输入的fasta文件是TwoBit文件,因此需要下载faToTwoBit工具,对fasta文件进行转换,具体命令如下:

wget  -c "http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/faToTwoBit"
chmod 755 faToTwoBit
faToTwoBit gene.fa gene.2bit

  这里faToTwoBit运行需要一定的时间,主要是与参考基因组的大小相关,生成的是二进制文件,生成twoBit后,就可以进行下一步的准备了。

3. seed文件的准备

  构建BSgenome参考基因组另外一个需要准备的文件就是seed文件,其实这里的seed文件就是在开发R包的DESCRIPTION文件, 这里相当于构建了一个R包,R包需要添加一下DESCRIPTION信息,因此seed的文件,可以参考DESCRIPTION的格式说明,具体格式要求如下:

seed文件的标准格式

  上图可以看出,seed文件,主要包括Package/Title/Description/Version/Author/Maintainer/License,其他的选填项可以不用填写。seed文件格式有很多种,可根据实际需要进行撰写;另外,也可以根据已经安装的BSgenome包来查看seed格式,具体的查看命令如下:

 library(BSgenome)
seed_files <- system.file("extdata", "GentlemanLab", package="BSgenome")
tail(list.files(seed_files, pattern="-seed$"))
#[1] "BSgenome.Sscrofa.UCSC.susScr11-seed"        "BSgenome.Sscrofa.UCSC.susScr3-seed"         #"BSgenome.Sscrofa.UCSC.susScr3.masked-seed"  "BSgenome.Tguttata.UCSC.taeGut1-seed"    
#这里可以看到有很多seed文件,可以随便cp一个文件,然后在此基础上就行即可。

  seed文件其他的一些可选项也有很多,比如这里的organism、common_name、genome、provider、release_date、source_url、organism_biocview等等,这些是为了更详细的记录一些参考基因组信息,一遍后续使用或者构建的时候了解相关信息,其他的一些说明,这里不再进行详细的介绍,可以直接通过How to forge a BSgenome data package进行相关信息的查询。

可选项

4. forgeBSgenomeDataPkg

  seed文件生成以后,就可以直接构建BSgenome包了,这里构建BSgenome包的具体命令如下:

seed_file="gene.物种.seed"
#seqs_srcdir;destdir 序列文件所在以及输出的位置
forgeBSgenomeDataPkg(seed_file, seqs_srcdir=getwd(), destdir=getwd(), verbose=TRUE,unlink=TRUE)
#forgeBSgenomeDataPkg(seed_file, verbose=TRUE)
#unlink参数表示是否overwrite已有的目录,seqs_srcdir是twoBit的目录,destdir为生成包的目录,这里需要一定的时候。

5. 包的构建以及安装

  前面forgeBSgenomeDataPkg运行成功以后,会在目的目录中生成R包的几个基础文件,如下图所示:

forgeBSgenomeDataPkg结果目录

  这是一个基本的R包的结果目录,然后在此基础上,在linux命令进行包的build、check、install,具体的命令如下:

R CMD build <pkgdir>
R CMD check <tarball>
R CMD INSTALL <tarball>

  一般来说,build没有问题的话,就不用再check了,我这边构建的包后进行check,结果报错,报错的是LaTeX有问题,然后尝试不管他,再直接安装,结果能够正常安装,并且正常导入包。因此这里的报错可以不用考虑,这应该是要生成pdf的说明文件报错,对后续其他的结果没有影响。

LaTeX报错

6. 后记

  这里构建BSgenome参考基因组是选择的最简单的方式,没有提供masked sequences文件,如果需要masked sequences文件,那么可以直接参考方说明文档。可以通过此方法,构建任何自己的参考基因组,进行其他相关的分析。

参考文档

BSgenome构建新的参考基因组

2021年1月11日

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容