首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用R从FASTA文件中提取床文件中定义的每个间隔的序列?

如何使用R从FASTA文件中提取床文件中定义的每个间隔的序列?
EN

Stack Overflow用户
提问于 2016-02-01 13:46:20
回答 1查看 1.6K关注 0票数 1

如何使用R从FASTA文件中提取床文件中定义的每个间隔的序列?所使用的参考基因组是"Gallus gallus“,可通过以下方法获得:

代码语言:javascript
复制
source("http://bioconductor.org/biocLite.R")
biocLite("BSgenome.Ggallus.UCSC.galGal4")
    library(BSgenome.Ggallus.UCSC.galGal4)

我的数据文件是gRanges包的结果。

代码语言:javascript
复制
library("GenomicRanges")

> olaps
GRanges object with 2141 ranges and 0 metadata columns:
         seqnames               ranges strand
            <Rle>            <IRanges>  <Rle>
     [1]    chr14 [ 1665929,  1673673]      *
     [2]    chr14 [ 2587465,  2595209]      *
     [3]    chr14 [ 8143785,  8151529]      *
     [4]    chr14 [ 9779705,  9787449]      *
     [5]    chr14 [10281129, 10288873]      *
     ...      ...                  ...    ...
  [2137]    chr24   [3280553, 3288297]      *
  [2138]    chr24   [3330889, 3338633]      *
  [2139]    chr24   [3005641, 3015321]      *
  [2140]    chr24   [3319273, 3327017]      *
  [2141]    chr24   [5549545, 5557289]      *
  -------
  seqinfo: 31 sequences from an unspecified genome; no seqlengths

我可以在data.table中转换

代码语言:javascript
复制
olaps<- as.data.table(olaps)

供使用的示例:

代码语言:javascript
复制
olaps<-"seqnames    start      end width strand
chr1  1665929  1673673  7745      *
chr1  2587465  2595209  7745      *
chr1  8143785  8151529  7745      *
chr2  9779705  9787449  7745      *
chr2 10281129 10288873  7745      *"
olaps<-read.table(text=olaps,header=T)

预期结果:类似的情况(fasta格式):

代码语言:javascript
复制
>SEQUENCE_1
ACTGACTAGCATCGCAT...
>SEQUENCE_2
ACGTAGAGAGGGACATA...
>SEQUENCE_3...

到目前为止,我一直试图使用这个程序包,但没有成功:

代码语言:javascript
复制
source("http://bioconductor.org/biocLite.R")
biocLite("rtracklayer")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-25 16:19:24

这个,应该能解决你的诡计:

第一:

代码语言:javascript
复制
seq = BSgenome::getSeq(BSgenome.Ggallus.UCSC.galGal4, olaps)

若要将名称添加到序列中:

代码语言:javascript
复制
names(seq) = paste0("SEQUENCE_", seq_along(seq)) 

若要从序列中生成".fasta“,请执行以下操作:

代码语言:javascript
复制
Biostrings::writeXStringSet(seq, "my.fasta")

在此之前提供了更多的详细情况:

https://support.bioconductor.org/p/77913/#77986

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35132118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档