基于 gff 文件构建 TxDb 包

首先,TxDb 包是用 GenomicFeatures 包构建的,用于专门注释基因组中转录本、外显子、内含子等的包。

1. 如果是构建从 Ensembl 下载的参考基因组的 TxDb (transcript database)包,有两种构建方式,一种是直接利用 biomaRt 包构建,另一种是利用 .gff 注释文件构建,这里主要说的是第二种方式。

Introduction

# 方式一,biomaRt
txdb <- makeTxDbFromBiomart(dataset="oarambouillet_gene_ensembl")

# 方式二,.gff 文件
# 1. 生成 metada,包含两列,name 和 value,必须文件
metadata <- data.frame(name="Resource URL", value="http://ftp.ensembl.org/pub/release-103/gtf/ovis_aries_rambouillet/Ovis_aries_rambouillet.Oar_rambouillet_v1.0.103.gtf.gz")

# 2. 利用 gff 文件生成 txdb 文件
txdb = makeTxDbFromGFF(file = "./Ovis_aries_rambouillet.Oar_rambouillet_v1.0.103.gtf", format="gtf", organism="sheep", taxonomyId=9940, dataSource="ensemblgenomes", metadata=metadata)

# 3. 保存和读取 txdb 文件
saveDb(txdb, file="TxDb.Oaries.Ensembl.Rambouilletv1.sqlite")
txdb <- loadDb("TxDb.Oaries.Ensembl.Rambouilletv1.sqlite")

# 4. 将 txdb文件 转成 txdb 包
# 需要注意命名规则,不能出现- _ 等符号
makeTxDbPackage(txdb, version="1.0", maintainer="Jiangang Han <jiangang_han@163.com>", author="Jiangang Han", destDir=".",license="Artistic-2.0",
                     pkgname="TxDb.Oaries.Ensembl.Rambouilletv1")
# 生成 TxDb.Oaries.Ensembl.Rambouilletv1 文件夹

# 5. 退出R,Linux 下 TxDb.Oaries.Ensembl.Rambouilletv1 同级目录运行
R CMD build ./TxDb.Oaries.Ensembl.Rambouilletv1  #生成TxDb.Oaries.Ensembl.Rambouilletv1.tar.gz包
R CMD INSTALL TxDb.Oaries.Ensembl.Rambouilletv1.tar.gz #安装

2. 检索 txdb 信息

library(TxDb.Oaries.Ensembl.Rambouilletv1)
library(GenomicFeatures)
txdb = TxDb.Oaries.Ensembl.Rambouilletv1

# 1. 染色体
# chromosomes that are active for the TxDb
seqlevels(txdb)

# only select chr1 or chr15
seqlevels(txdb) <- "chr1"
seqlevels(txdb) <- "chr15"
seqlevels(txdb)

# reset chromosome to original level
seqlevels(txdb) <- seqlevels0(txdb)

# 2. 四个经典访问命令
columns(), keytypes(), keys()
select(txdb, keys, columns, keytype)

# 3. 输出 GRange 对象
# return the coordinate information as a GRanges object.

# 转录本坐标,5列,seqnames,ranges,strand,tx_id,tx_name
GR <- transcripts(txdb)
GR[1:3]
## GRanges object with 3 ranges and 2 metadata columns:
##       seqnames            ranges strand |     tx_id     tx_name
##          <Rle>         <IRanges>  <Rle> | <integer> <character>
##   [1]    chr15 20362688-20364420      + |     53552  uc001yte.1
##   [2]    chr15 20487997-20496811      + |     53553  uc001ytf.1
##   [3]    chr15 20723929-20727150      + |     53554  uc001ytj.3

# GRange 对象正负链
# tx_strand 和 GR 行数一致
tx_strand <- strand(GR)

# 进一步详细检索信息
GR <- transcripts(txdb, filter=list(tx_chrom = "chr15", tx_strand = "+"))

# 外显子坐标,四列
EX <- exons(txdb)
EX[1:4]
## GRanges object with 4 ranges and 1 metadata column:
##       seqnames            ranges strand |   exon_id
##          <Rle>         <IRanges>  <Rle> | <integer>
##   [1]    chr15 20362688-20362858      + |    192986
##   [2]    chr15 20362943-20363123      + |    192987
##   [3]    chr15 20364397-20364420      + |    192988
##   [4]    chr15 20487997-20488227      + |    192989

3. 计算启动子区域

    感觉这个功能比较有意思,单独列了出来

# 将转录起始位点上游2000bp,下游400bp列为启动子区域
PR <- promoters(txdb, upstream=2000, downstream=400)

4. 分组展示基因,Working with Grouped Features 

# 通过gene,exon 或 cds 分组展示转录本
transcriptsBy(x, by=c("gene", "exon", "cds"))
# 通过转录本分组展示外显子
exonsBy(x, by=c("tx", "gene"))
# 通过转录本或基因分组展示 cds 区域
cdsBy(x, by=c("tx", "gene"))
# 通过转录本分组展示内含子
intronsByTranscript(x)
# 通过转录本分组展示5' UTR
fiveUTRsByTranscript(x)
# 通过转录本分组展示3' UTR
threeUTRsByTranscript(x)

5. 获取序列信息

    先读取预先构建的绵羊 BsGenome 包构建绵羊(非常见物种)BSgenome参考基因组_韩建刚(CAAS-UCD)的博客-CSDN博客

# 提取全部转录本序列信息
tx_seqs1 <- extractTranscriptSeqs(Oaries, TxDb.Oaries.Ensembl.Rambouilletv1, use.names=TRUE)
# 翻译成蛋白
suppressWarnings(translate(tx_seqs1))

cds_seqs <- extractTranscriptSeqs(Oaries,
                                  cdsBy(txdb, by="tx", use.names=TRUE))
translate(cds_seqs)

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
### 回答1: 可以使用bedtools软件中的命令将gff文件转换为bed文件。具体步骤如下: 1. 安装bedtools软件。 2. 使用以下命令将gff文件转换为bed文件: ``` bedtools convert -i input.gff -o bed > output.bed ``` 其中,input.gff是输入的gff文件名,output.bed是输出的bed文件名。 如果需要转换特定类型的gff记录,可以添加`-t`选项和记录类型参数,例如: ``` bedtools convert -i input.gff -t exon -o bed > output.bed ``` 以上命令将只转换gff中的exon记录。 更多关于bedtools的用法详见官方文档:https://bedtools.readthedocs.io/en/latest/。 ### 回答2: gff文件和bed文件生物信息学领域中常用的两种文件格式,用于描述基因组的注释信息。 gff文件是一种文本文件,用来存储基因组的注释信息,其中每一行记录了一个基因或转录本的信息,括位置、方向、类型以及其他相关注释。而bed文件也是一种文本文件,用来描述基因组的区域信息,括染色体名称、起始位点、终止位点等。 要将gff文件转换为bed文件,可以按照以下步骤进行: 1. 打开gff文件,逐行读取每一条记录。 2. 解析每条记录的信息,提取出染色体名称、起始位点和终止位点等关键信息。 3. 将提取到的信息按照bed文件的格式进行整理,括染色体名称、起始位点、终止位点等。 4. 将整理好的bed信息写入到新的bed文件中。 需要注意的是,由于gff文件和bed文件的格式不同,需要进行信息的转换和整理。另外,还需要注意gff文件中的注释信息可能会有一些额外的字段,需要根据需要决定是否保留在转换后的bed文件中。 总之,将gff文件转换为bed文件需要逐行读取、解析和整理信息,并将结果写入新的文件中,以实现格式的转换和数据的转移。 ### 回答3: GFF(General Feature Format)文件和BED(Browser Extensible Data)文件是两种常用的基因组注释文件格式。如果需要将GFF文件转换为BED文件,可以采用以下步骤: 1. 首先,打开GFF文件并读取其中的注释信息。GFF文件含了每个特征的位置、类型、方向等信息。 2. 然后,创建一个新的BED文件,并按照BED文件的格式定义每一行的信息。BED文件通常含三个列:染色体名称、起始位置、结束位置。 3. 对于每个注释特征,提取其染色体名称、起始位置和结束位置,并将其写入到BED文件对应的行中。 4. 保存并关闭BED文件,完成GFF文件到BED文件的转换。 需要注意的是,GFF文件和BED文件在注释信息上有所不同。GFF文件的注释信息更加详细,含了更多的属性,如基因名称、外显子边界等。而BED文件只保留了最基本的位置信息。因此,在转换过程中,可能会有部分信息的丢失。 此外,也可以使用一些生物信息学软件或脚本来实现GFF到BED的转换。常用的软件括BEDTools、Bioconductor中的GenomicFeatures等,它们提供了一系列的函数和工具,能够方便地进行基因组注释文件的转换和处理。 总之,将GFF文件转换为BED文件可以通过解析GFF文件中的注释信息,并按照BED文件的格式重新组织和保存数据实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值