前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >人和小鼠的基因怎么无缝切换?

人和小鼠的基因怎么无缝切换?

作者头像
用户11414625
发布2024-12-27 16:56:16
发布2024-12-27 16:56:16
9600
代码可运行
举报
文章被收录于专栏:生信星球520生信星球520
运行总次数:0
代码可运行

问题

今天给生信入门班和数据挖掘班的往期学员提供直播答疑遇到了一个好问题,给大家分享下。

学员使用的是小鼠的数据

想要使用曾老师提供的marker基因,但那些基因是人的。

人和小鼠基因名字粗略对应,就是人基因名都是大写,而小鼠是首字母大写!

因此我们就需要把每个基因名字变成首字母大写咯!

批量转换
代码语言:javascript
代码运行次数:0
复制
cell_type_markers<-list(
     Cardiomyocytes=c("ACTC1","MYL7","TNNT2"),
     Fibroblasts=c("DCN","GSN","COL1A2"),
     EndothelialCells=c("VWF","CD36"),
     Pericytes=c("RGS5","ABCC9"),
     SmoothMuscleCells=c("ACTA2","MYH11","MYLK"),
     Macrophages=c("CD163","C1QA"),
     Lymphocytes=c("NKG7","CCL5","IL7R"),
     Monocytes=c("S100A8"),
     BCells=c("CD69","CD79A"),
     MesothelialCells=c("MSLN")
)

cell_type_markers
代码语言:javascript
代码运行次数:0
复制
## $Cardiomyocytes
## [1] "ACTC1" "MYL7"  "TNNT2"
## 
## $Fibroblasts
## [1] "DCN"    "GSN"    "COL1A2"
## 
## $EndothelialCells
## [1] "VWF"  "CD36"
## 
## $Pericytes
## [1] "RGS5"  "ABCC9"
## 
## $SmoothMuscleCells
## [1] "ACTA2" "MYH11" "MYLK" 
## 
## $Macrophages
## [1] "CD163" "C1QA" 
## 
## $Lymphocytes
## [1] "NKG7" "CCL5" "IL7R"
## 
## $Monocytes
## [1] "S100A8"
## 
## $BCells
## [1] "CD69"  "CD79A"
## 
## $MesothelialCells
## [1] "MSLN"

所以如果强行使用,当然是一个基因都找不到咯!后面就会进行不下去

那咋整呢。我们可以用R语言技巧把基因名改为首字母大写。

一句搞定:

代码语言:javascript
代码运行次数:0
复制
library(stringr)
cell_type_markers = lapply(cell_type_markers, str_to_title) 
cell_type_markers
代码语言:javascript
代码运行次数:0
复制
## $Cardiomyocytes
## [1] "Actc1" "Myl7"  "Tnnt2"
## 
## $Fibroblasts
## [1] "Dcn"    "Gsn"    "Col1a2"
## 
## $EndothelialCells
## [1] "Vwf"  "Cd36"
## 
## $Pericytes
## [1] "Rgs5"  "Abcc9"
## 
## $SmoothMuscleCells
## [1] "Acta2" "Myh11" "Mylk" 
## 
## $Macrophages
## [1] "Cd163" "C1qa" 
## 
## $Lymphocytes
## [1] "Nkg7" "Ccl5" "Il7r"
## 
## $Monocytes
## [1] "S100a8"
## 
## $BCells
## [1] "Cd69"  "Cd79a"
## 
## $MesothelialCells
## [1] "Msln"
代码解读

这里面用到了两个函数:

str_to_title :将字符串转换为标题格式,基因名只有一个词,所以就是首字母大写。

lapply :用于将函数应用于列表(list)或向量(vector)的每个元素,并返回一个列表。lapply 的用法如下:

代码语言:javascript
代码运行次数:0
复制
lapply(X, FUN, ...)

其中:

X 是要应用函数的对象,可以是列表或向量。

FUN 是要应用的函数。

... 是传递给函数 FUN 的其他参数(可选)。

所以这句代码就是将str_to_title应用于cell_type_markers的每一个元素,也就是基因名称组成的向量。返回结果仍然是列表,且保留了原有的元素名称(即细胞名字)。

AI不能解决所有问题,还是得自己会个大概~

基础不牢,地动山摇啊~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信星球 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 批量转换
  • 代码解读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档