构建绵羊(非常见物种)BSgenome参考基因组

该博客介绍了如何从Ensembl下载绵羊参考基因组,并将其转化为.2bit格式,然后使用BSgenome包构建自定义参考基因组。过程中详细阐述了seed文件的编写,包括包名、基因组信息和遇到的bug,如package名称格式错误和使用非匹配的牛基因组名称作为占位。最后,通过R语言完成BSgenome包的构建、检查和安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Ensembl 下载绵羊参考基因组和注释文件,虽然这里用不到注释文件,但最好备份一下

    

2. .fa 格式参考基因组转为 .2bit 格式

# cd software directory
wget -b -c http://hgdownload.cse.ucsc.edu/admin/exe/linux.x86_64/faToTwoBit
# cd reference directory
faToTwoBit Ovis_aries_rambouillet.Oar_rambouillet_v1.0.dna.toplevel.fa Ovis_aries_rambouillet.Oar_rambouillet_v1.0.dna.toplevel.2bit

3. 安装 BSgenome 包

if (!require("BiocManager", quietly = TRUE)) install.packages("BiocManager")
BiocManager::install("BSgenome")

4. 进入工作目录,准备 seed 文件。

seed 文件可以理解为一种配置文件或者说明文件,包含许多必要的和非必要的词条,详细内容参考Bioconductor - BSgenome。在 BSgenome 包安装目录有示例文件,可以直接复制到工作目录进行修改。

cd ~/anaconda3/envs/R4.1.2/lib/R/library/BSgenome/extdata/GentlemanLab

5. 下面是我的seed 文件,以及遇到的一些bug。

首先是 Package,必须由四部分组成,每个部分必须由逗号(.)分开。part 1:BSgenome;part 2:物种缩写,如 ovis aries 写成Oaries;part 3:参考基因组来源,一般是NCBI,Ensembl 或者 UCSC;part 4:参考基因组版本。必须要注意的是!!!在package词条不能出现多余的逗号(.)和其他的分隔符(-或_)。比如 part 4中,最容易理解的方式是写成 rambouillet.v1,rambouillet_v1 或 rambouillet-v1,然而写成这样会报错,报错内容是“malformed package name”!!!

第二个 bug 是在 seed 文件中必须提供 genome 词条,在这里我用的是 genome: bosTau9,是的,这是一个牛的参考基因组名称。第一,BSgenome 只支持 UCSC 和 NCBI 数据库下载的参考基因组,而这个绵羊的参考基因组是在 Ensembl 下载的;第二,在 UCSC 和 NCBI 找不到可用的、同版本的参考基因组,因此,没有办法,只能随便找一个代替。

Package: BSgenome.Oaries.Ensembl.rambouilletv1
Title: Full genome sequences for Ovis aries (Ensembl version rambouillet_v1)
Description: Full genome sequences for Ovis aries (Sheep) as provided by Ensembl (Oar_rambouillet_v1) and stored in Biostrings objects.
Version: 1.0.0
organism: Ovis aries
common_name: Sheep
genome: bosTau9
provider: Ensembl
release_date: Feb 2022
source_url: http://ftp.ensembl.org/pub/release-106/fasta/ovis_aries_rambouillet/dna/Ovis_aries_rambouillet.Oar_rambouillet_v1.0.dna.toplevel.fa.gz
organism_biocview: Ovis_aries
BSgenomeObjname: Oaries
SrcDataFiles: Oar_rambouillet_v1.0.2bit, transferred by faToTwoBit
PkgExamples: genome$1  # same as genome[["1"]]
# directory of seed file
seqs_srcdir: /home/hanjiangang/single_cell/ref_genome/Oas_rambouillet_1_ArchR
# name of seed file
seqfile_name: Oar_rambouillet_v1.0.2bit

6. 构建 BSgenome 包。

# R 中运行
library(BSgenome)
forgeBSgenomeDataPkg("/home/ref_genome/Oas_rambouillet_1_ArchR/BSgenome.Oaries.Ensembl.rambouillet_v1.0-seed", verbose=TRUE)
# 很快,会生成新的文件夹BSgenome.Oaries.Ensembl.rambouilletv1,退出R

# Linux 系统下运行如下命令
tree BSgenome.Oaries.Ensembl.rambouilletv1
BSgenome.Oaries.Ensembl.rambouilletv1
├── DESCRIPTION
├── inst
│   └── extdata
│       └── single_sequences.2bit
├── man
│   └── package.Rd
├── NAMESPACE
└── R
    └── zzz.R
# 因为之前genome词条使用的是genome: bosTau9,因此将BSgenome.Oaries.Ensembl.rambouilletv1文件夹下所有的bosTau9全部替换为Oar_rambouillet_v1(只需要修改两个文件)。

# BSgenome.Oaries.Ensembl.rambouilletv1 同级目录运行
R CMD build ./BSgenome.Oaries.Ensembl.rambouilletv1/  #生成BSgenome.Oaries.Ensembl.rambouilletv1.tar.gz 文件
#如果发现Bug查找问题及时修复,只要 check for installation 不报错,基本就没有太大问题
R CMD check BSgenome.Oaries.Ensembl.rambouilletv1.tar.gz
R CMD INSTALL BSgenome.Oaries.Ensembl.rambouilletv1.tar.gz

7. 参考文章

BSgenome 构建自己的参考基因组 - 简书

BSgenome构建新的参考基因组 - 简书

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值