【发布时间】:2020-07-25 05:23:32
【问题描述】:
我有下表包含一些基因的表达数据:
> exp_table
exp
PITG_00005b 0.16442671
PITG_00005a 0.94545358
PITG_00004 0.86324023
PITG_00003 0.04110668
PITG_00002 1.10988029
MERGED:PITG_23067_PITG_23068_PITG_16110 34.11854242
MERGED:PITG_23017_PITG_23018 0.00000000
我想要做的是清理这个表,以便基因名称被拆分,就像我用于其他目的的以下代码一样:
> exp_names <- gsub("[a-e]", "", rownames(exp_table))
> exp_names <- gsub("MERGED:", "", exp_names)
> exp_names <- strtrim(unlist(strsplit(exp_names, "(?<=[0-9]_)", perl=TRUE)), 10)
> exp_names
[1] "PITG_00005" "PITG_00005" "PITG_00004" "PITG_00003" "PITG_00002" "PITG_23067"
[7] "PITG_23068" "PITG_16110" "PITG_23017" "PITG_23018"
即,在我需要的数据框中:
如果基因(a 或 b)末尾有一个额外的字母,则应将其删除,并且应为所有基因“副本”分配平均表达水平(此处,应分配 PITG_00005 的两个“副本” exp = (0.16442671 + 0.94545358)/2),
先前合并的所有基因都应分配相同的表达水平(即,所有“PITG_23067”、“PITG_23068”、“PITG_16110”的表达水平为 34.11854242)。
如果有任何建议,我将不胜感激!
【问题讨论】:
-
PITG_00005b 和 PITG_00005a 会发生什么变化,它们获得了什么价值? 0.16442671 还是 0.94545358?
-
没错,我忘了...刚刚编辑了我的问题,谢谢!
标签: r bioinformatics