我有一个基因矩阵(行)和不同样本(列)的表达值。矩阵有25 000行,但我只想选择其中一些。我想查找并保留以特定字符串开头的行,请参阅下面的示例。 package scater vas用于生成带get_exprs()的矩阵。
这是矩阵的样本:
> get_exprs(sce,"exprs")[1:3,1:3]
Bams.A10_R1.out.bam Bams.A11_R1.out.bam Bams.A12_R1.out.bam
ENSSSCG00000030218 -2.885387e-06 -2.885387e-06 -2.885387e-06
ENSSSCG00000029697 -2.885387e-06 -2.885387e-06 -2.885387e-06
ENSSSCG00000027726 -2.885387e-06 -2.885387e-06 -2.885387e-06
我创建了一个包含我感兴趣的字符串的向量,并尝试索引这些行,可行:
> endo.markers<-c("ENSSSCG00000030218","ENSSSCG00000029697")
> get_exprs(sce,"exprs")[endo.markers,1:3]
Bams.A10_R1.out.bam Bams.A11_R1.out.bam Bams.A12_R1.out.bam
ENSSSCG00000030218 -2.885387e-06 -2.885387e-06 -2.885387e-06
ENSSSCG00000029697 -2.885387e-06 -2.885387e-06 -2.885387e-06
但是,当我包含我感兴趣的所有基因时,我会收到以下错误:
> endo.markers<-scan("endo.markers.txt",character())
> get_exprs(sce,"exprs")[endo.markers,1:3]
get_exprs中的错误(sce,“exprs”)[endo.markers,1:3]: 下标超出范围
我认为其原因是我感兴趣的所有基因,即载体内切标记的所有元素都不存在于基质中。还有其他想法或解决方案?矢量似乎没问题,附在下面。
> scan("endo.markers.txt",character())
Read 46 items
[1] "ENSSSCG00000012909" "ENSSSCG00000007675" "ENSSSCG00000015622" "ENSSSCG00000005625"
[5] "ENSSSCG00000009320" "ENSSSCG00000008844" "ENSSSCG00000003950" "ENSSSCG00000007115"
[9] "ENSSSCG00000008294" "ENSSSCG00000017277" "ENSSSCG00000015116" "ENSSSCT00000036466"
[13] "ENSSSCG00000005122" "ENSSSCG00000003527" "ENSSSCG00000030642" "ENSSSCG00000015753"
[17] "ENSSSCG00000021443" "ENSSSCG00000001695" "ENSSSCG00000005096" "ENSSSCG00000013297"
[21] "ENSSSCG00000017296" "ENSSSCG00000010404" "ENSSSCG00000013302" "ENSSSCG00000003017"
[25] "ENSSSCG00000006035" "ENSSSCG00000007927" "ENSSSCG00000015579" "ENSSSCG00000016504"
[29] "ENSSSCG00000012277" "ENSSSCG00000001404" "ENSSSCG00000008953" "ENSSSCG00000017164"
[33] "ENSSSCG00000017723" "ENSSSCG00000007436" "ENSSSCG00000013655" "ENSSSCG00000005533"
[37] "ENSSSCG00000027850" "ENSSSCG00000006862" "ENSSSCG00000025698" "ENSSSCG00000016009"
[41] "ENSSSCG00000016450" "ENSSSCG00000002039" "ENSSSCG00000006288" "ENSSSCG00000016174"
[45] "ENSSSCG00000002829" "ENSSSCG00000012909"