【发布时间】:2019-02-24 20:25:05
【问题描述】:
我无法使正则表达式任务正常工作,如果有人可以提供帮助,那就太好了。
我需要将基因名称与附加到它们的描述分开。使用出现在 99% 的案例中的术语涉及将其与“GeneCards 摘要”分开,可通过gene <- str_split (DF$Gene, "GeneCards Summary", simplify = TRUE) 使用 tidyverse 解决。但是现在有一些不遵循这种模式,这里举例说明:
example <- c("STAT1Predisposition to Mucocutaneous Candidiasis",
"PMS2DNA Repair DefectsPMS2 Deficiency",
"FANCACombined ImmunodeficiencyFANCA",
"HAX1 This gene", "ELANE ELANE is a gene",
"IL1RNNon-Inflammasome Related", "PRKDCT-B- SCIDDNA PKcs",
"MSH6Severe Reduction", "AP3B1FHL Syndromes")
我能够找出以下模式,希望这涵盖了所有模式(不太可能,但使用你的解决方案,如果它们弹出,我也应该得到其余的):
1) Genename 后跟一个包含 UPPERCASElowerlase 的单词(因此将此部分与之前的部分分开)。
2) GenenameDNA(将“DNA”与之前的部分分开。
3) 基因名"" (空白)
4) 基因名称T-B-.
5) 基因名FHL。
实际上最棘手的是 UPPERCASe 小写部分,其他部分我将尝试解决并在此处发布。
非常感谢你的帮助!
塞巴斯蒂安
这是我的解决方案的一部分,没有上/下一个:
clean_1 <- str_split(example, "DNA", simplify = T)
clean_2 <- str_split(clean_1, "[[:blank:]]", simplify = T)
clean_3 <- str_split(clean_2, "T-B", simplify = T)
clean_4 <- str_split(clean_3, "FHL", simplify = T)
我会在每一轮都这样做以清理数据,但可能有更好的方法来做到这一点。
【问题讨论】:
-
UPPERCASElowerlase 到底是什么意思?描述并非总是以一个大写后跟小写开头(例如 PMS2DNA Repair DefectsPMS2 Deficiency,我假设您想在 PMS2 和 DNA 之间拆分......)。我真的不知道如何让正则表达式区分哪些大写字母来自基因,哪些来自描述。
-
您没有明确的模式来隔离每种情况下的基因名称。你是如何得到这些数据的?通过文本识别?从其他来源提取?为什么基因名称没有用空格或其他任何东西分隔?如果可能,最好改变获取数据的方式,然后尝试更正它。
-
我从测序设备提供的 html 文件中获取数据。不幸的是,没有办法更好地隔离它们,所以我需要采取这种措施来找出违规行为,然后再将它们剔除。不太干净,但我想现实很少是......