代码语言:javascript复制很久以前我在《生信技能树》分享过教程,如果你处理的是小鼠的基因芯片表达矩阵,最后做gsea等分析要对生物学数据库注释,发现绝大部分数据库都是人类的基因名字,有一个取巧的方法是把基因名字修改一下,如下所示:
[1] "PTPRC" "EPCAM" "MME" "CD3G" "CD3E" "CD68" "CD79A"
[1] "Ptprc" "Epcam" "Mme" "Cd3g" "Cd3e" "Cd68" "Cd79a"
居然有些人就开始指责我的教程,说这样误导大家了,不同物种的基因对应关系是有相应的同源基因数据库的,不能仅仅是把基因名字修改。让我很无语,难道我不知道可以严谨一点吗?
回归教程本身,人鼠基因转换之首字母大写在R语言的师兄,本着不想自己去造轮子的心态,搜索了一下:
代码语言:javascript复制https://stackoverflow.com/questions/6364783/capitalize-the-first-letter-of-both-words-in-a-two-word-string
发现了好多解决方案
后来我采用了 stringr 包的 str_to_title函数:
代码语言:javascript复制library(stringr)
genes_to_check = c("PTPRC","EPCAM", 'MME',"CD3G","CD3E", "CD68", "CD79A")
genes_to_check
genes_to_check=str_to_title(genes_to_check)
genes_to_check
大家也可以选择Hmisc包的capitalize函数,代码如下:
library(Hmisc)
代码语言:javascript复制genes_to_check = c("PTPRC","EPCAM", 'MME',"CD3G","CD3E", "CD68", "CD79A")
genes_to_check
capitalize(tolower(genes_to_check))
解决方案实在是太多了:The package BBmisc
now contains the function capitalizeStrings
.
甚至可以自己造轮子,那就是作为一个学徒作业!
使用R语言基础函数,自己创造一个人鼠基因名字转换工具!