我对 R、seurat 和 scRNA seq 分析还很陌生。使用 R 中的 seurat 包分析单细胞 RNA 测序数据,我发现了分析每个细胞血红蛋白基因百分比的选项。不同教程中建议的代码类似于
seurat_object[["percent.hb"]] <- PercentageFeatureSet(seurat_object, assay = "RNA", pattern = "^HB[^(P)]")
str_view(rownames(seurat_object), pattern = "^HB")
给了我
[10598] │ <HB>EGF
[12625] │ <HB>S1L
[14084] │ <HB>P1
[19108] │ <HB>B
[19109] │ <HB>D
[19111] │ <HB>G1
[19112] │ <HB>G2
[19114] │ <HB>E1
[26440] │ <HB>Z
[26441] │ <HB>M
[26442] │ <HB>A2
[26443] │ <HB>A1
[26444] │ <HB>Q1
我的印象是,该模式(
"^HB[^(P)]"
)包括与血红蛋白/红细胞无关的其他基因,特别是HBEGF
和HBS1L
,同时它排除了HBP1
,我认为这是正确的。
我正在尝试找到一个排除前 3 个基因(HBEGF、HBS1L 和 HBP1)但保留所有其他基因的正则表达式。我尝试过像
"^HB[^(P|EG|S)]"
和 "^HB[^(P|S)]([^G])"
和 "^HB[^(P|S)](|[^G])"
这样的模式。
我有点被困在这里,也许有人可以帮助我。提前非常感谢!
编辑:将“hemoglobulin”更改为正确的名称“血红蛋白” - 显然我读了太多有关抗体(又名免疫球ulins)的内容...
为什么使用括号来分组捕获一个字母,并在否定表达式 [^(P|S)] 中使用“或”符号?它不应该像 [^PS] 一样工作吗,因为方括号表示字符之间已经有一个“或”? 我想表达式“^HB[^PS] ($|[^G])”也应该按预期工作? 预先感谢您的建议! 亲切的问候, 马里奥