将 DNAStringSet 转换为 R 中的元素列表? (seq[[1]][["seq"]] 中的错误:R 中的下标越界)
Convert DNAStringSet to a list of elements in R? (Error in seq[[1]][["seq"]] : subscript out of bounds in R)
我有一个包含如下 DNA 序列信息的床文件:
**
track name="194" description="194 methylation (sites)" color=0,60,120 useScore=1
chr1 15864 15866 FALSE 894 +
chr1 534241 534243 FALSE 921 -
chr1 710096 710098 FALSE 729 +
chr1 714176 714178 FALSE 12 -
chr1 720864 720866 FALSE 988 -
**
我在 R 中加载了 bed 文件并将矩阵命名为 DataSet。
我使用以下代码获取序列:
mydataSet_Test1<-dataSet[,1:3]
library(BSgenome.Hsapiens.UCSC.hg19)
genome <- BSgenome.Hsapiens.UCSC.hg19
chr<-as.matrix(as.character(mydataSet_Test1[,1]))
#50
start<-as.matrix(as.integer(as.character(mydataSet_Test1[,2]))-50)
end<-as.matrix(as.integer(as.character(mydataSet_Test1[,3]))+50)
Seqs50_Test1<-getSeq(genome,chr,start=start,end=end)
现在,Seqs50_Test1 是 Large DNAStringSet。
我现在想在 R 中加载 BioSeqClass package,在我的序列中进行 同源减少 。
我想使用 hr() 函数,根据包手册,它是这样的:
描述
按序列相似性过滤同源序列。
hr(seq, 方法, 身份, cdhit.path)
参数
seq 一个列表,每个 protein/gene 序列有一个元素。元素分为两部分,一是描述("desc"),二是生物序列的字符串("seq")。
identity一个数值范围从0到1。它被用作输入序列之间的最大身份截止。
method 同源还原方法的字符串。这必须是字符串 "cdhit" 或 "aligndis".
之一
我的问题是如何将 DNAStringSet 转换为函数 hr() 所需的元素列表?我尝试使用 list() 函数,但是当我 运行 hr() 函数时,它给我一个错误 Error in seq[1][["seq"]] : 下标越界
完整代码:
mydataSet = dataSet[,1:3]
library(BSgenome.Hsapiens.UCSC.hg19)
genome = BSgenome.Hsapiens.UCSC.hg19
chr = as.matrix(as.character(mydataSet[,1]))
start = as.matrix(as.integer(as.character(mydataSet[,2]))-200)
end = as.matrix(as.integer(as.character(mydataSet[,3]))+200)
Seqs = getSeq(genome,chr,start=start,end=end)
writeXStringSet(Seqs, "C:\Users\JL009\Desktop\Seqs.fasta", append=FALSE, format = "fasta")
#if (!requireNamespace("BiocManager", quietly = TRUE))
# install.packages("BiocManager")
#BiocManager::install("BioSeqClass")
library(BioSeqClass)
library(Biostrings)
seq = as.character(readAAStringSet("C:\Users\JL009\Desktop\Seqs.fasta"))
reducSeqs = hr(seq, method="aligndis", identity=0.4)
然后尝试这样的事情:
library(BioSeqClass)
library(Biostrings)
library(BSgenome.Hsapiens.UCSC.hg19)
gr = GRanges(seqnames="chr1",IRanges(start=seq(10e6,11e6,length.out=10),width=50))
S = getSeq(BSgenome.Hsapiens.UCSC.hg19,gr)
names(S) = paste("seq",1:length(S))
input = lapply(seq_along(S),function(i)list(desc=names(S)[i],seq=as.character(S[[i]])))
hr(input,method="aligndis",identity=0.5)
我有一个包含如下 DNA 序列信息的床文件:
**
track name="194" description="194 methylation (sites)" color=0,60,120 useScore=1
chr1 15864 15866 FALSE 894 +
chr1 534241 534243 FALSE 921 -
chr1 710096 710098 FALSE 729 +
chr1 714176 714178 FALSE 12 -
chr1 720864 720866 FALSE 988 -
**
我在 R 中加载了 bed 文件并将矩阵命名为 DataSet。 我使用以下代码获取序列:
mydataSet_Test1<-dataSet[,1:3]
library(BSgenome.Hsapiens.UCSC.hg19)
genome <- BSgenome.Hsapiens.UCSC.hg19
chr<-as.matrix(as.character(mydataSet_Test1[,1]))
#50
start<-as.matrix(as.integer(as.character(mydataSet_Test1[,2]))-50)
end<-as.matrix(as.integer(as.character(mydataSet_Test1[,3]))+50)
Seqs50_Test1<-getSeq(genome,chr,start=start,end=end)
现在,Seqs50_Test1 是 Large DNAStringSet。 我现在想在 R 中加载 BioSeqClass package,在我的序列中进行 同源减少 。
我想使用 hr() 函数,根据包手册,它是这样的:
描述
按序列相似性过滤同源序列。 hr(seq, 方法, 身份, cdhit.path)
参数
seq 一个列表,每个 protein/gene 序列有一个元素。元素分为两部分,一是描述("desc"),二是生物序列的字符串("seq")。
identity一个数值范围从0到1。它被用作输入序列之间的最大身份截止。
method 同源还原方法的字符串。这必须是字符串 "cdhit" 或 "aligndis".
之一我的问题是如何将 DNAStringSet 转换为函数 hr() 所需的元素列表?我尝试使用 list() 函数,但是当我 运行 hr() 函数时,它给我一个错误 Error in seq[1][["seq"]] : 下标越界
完整代码:
mydataSet = dataSet[,1:3]
library(BSgenome.Hsapiens.UCSC.hg19)
genome = BSgenome.Hsapiens.UCSC.hg19
chr = as.matrix(as.character(mydataSet[,1]))
start = as.matrix(as.integer(as.character(mydataSet[,2]))-200)
end = as.matrix(as.integer(as.character(mydataSet[,3]))+200)
Seqs = getSeq(genome,chr,start=start,end=end)
writeXStringSet(Seqs, "C:\Users\JL009\Desktop\Seqs.fasta", append=FALSE, format = "fasta")
#if (!requireNamespace("BiocManager", quietly = TRUE))
# install.packages("BiocManager")
#BiocManager::install("BioSeqClass")
library(BioSeqClass)
library(Biostrings)
seq = as.character(readAAStringSet("C:\Users\JL009\Desktop\Seqs.fasta"))
reducSeqs = hr(seq, method="aligndis", identity=0.4)
然后尝试这样的事情:
library(BioSeqClass)
library(Biostrings)
library(BSgenome.Hsapiens.UCSC.hg19)
gr = GRanges(seqnames="chr1",IRanges(start=seq(10e6,11e6,length.out=10),width=50))
S = getSeq(BSgenome.Hsapiens.UCSC.hg19,gr)
names(S) = paste("seq",1:length(S))
input = lapply(seq_along(S),function(i)list(desc=names(S)[i],seq=as.character(S[[i]])))
hr(input,method="aligndis",identity=0.5)