血红蛋白基因的正则表达

问题描述 投票:0回答:1

我对 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)的内容...

r regex bioinformatics seurat
1个回答
-1
投票

为什么使用括号来分组捕获一个字母,并在否定表达式 [^(P|S)] 中使用“或”符号?它不应该像 [^PS] 一样工作吗,因为方括号表示字符之间已经有一个“或”? 我想表达式“^HB[^PS] ($|[^G])”也应该按预期工作? 预先感谢您的建议! 亲切的问候, 马里奥

© www.soinside.com 2019 - 2024. All rights reserved.