前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >🤩 GeneSelectR | 用多种机器学习方法筛选重要基因!~

🤩 GeneSelectR | 用多种机器学习方法筛选重要基因!~

作者头像
生信漫卷
发布2024-04-23 16:31:45
1070
发布2024-04-23 16:31:45
举报

1写在前面

最近总是下雨☔️,真的很不爽啊!~🫠

还能不能有个好天气啊!?🥹

天天都是歌荒啊,谁能推荐点好听的歌啊!~🥹


今天讲讲用机器学习的方法筛选重要基因吧,GeneSelectR包。😘

如果你机器学习已经做的很熟练了,其实完全可以脱离这个包。😜

2用到的包

代码语言:javascript
复制
rm(list = ls())
library(tidyverse)
library(GeneSelectR)

3环境设置

GeneSelect是基于使用Python进行特征选择的。所以第一次用的时候需要安装相应的Python模块,需要为包创建工作环境。

首先要设置一个conda工作环境,大家不知道的话可能要补一下相关的知识了。

代码语言:javascript
复制
GeneSelectR::set_reticulate_python()
#GeneSelectR::configure_environment()

4示例数据

这里行是样本,列是基因。🧬

代码语言:javascript
复制
load("UrbanRandomSubset.rda")
DT::datatable(UrbanRandomSubset)

5整理文件格式

这里是基于sklearn进行的机器学习,所以要把y转换为数字形式。😘

代码语言:javascript
复制
X <- UrbanRandomSubset %>% dplyr::select(-treatment)
y <- UrbanRandomSubset['treatment']

y <- as.factor(y$treatment)
y <- as.integer(y)
y <- as.vector(y)

6开始筛选特征基因

这里njobs = -1会把所有的cores都用上,大家按需分配吧,时间还是蛮久的。🥳

默认提供4种方法进行选择,Univariate feature selection, Logistic regression with L1 penalty, borutaRandom Forest。🤓

代码语言:javascript
复制
selection_results <- GeneSelectR::GeneSelectR(X = X, 
                                              y = y,
                                              njobs = -1)
selection_results

7可视化

代码语言:javascript
复制
plot_feature_importance(selection_results, top_n_features = 10)

plot_metrics(selection_results)

8查看Performance

如果你要看看machine learningperformance就可以用这个function了。😏

这里我们没有test集,就只展示CV了哦。🙃

代码语言:javascript
复制
plot_metrics(selection_results)

selection_results$test_metrics 
selection_results$cv_mean_score

9计算共同基因

9.1 开始计算

代码语言:javascript
复制
overlap <- calculate_overlap_coefficients(selection_results)
overlap

9.2 基础可视化

三种方法计算哦!~😯

代码语言:javascript
复制
plot_overlap_heatmaps(overlap)

9.3 与自定义list取交集

比如,这里可以是你的DEGs。😜

按需选择你的list吧。😘

代码语言:javascript
复制
custom_list <- list(custom_list = c('char1','char2','char3','char4','char5'),
                    custom_list2 = c('char1','char2','char3','char4','char5'))

overlap1 <- calculate_overlap_coefficients(selection_results, custom_lists = custom_list)

plot_overlap_heatmaps(overlap1)

组太多,那画个Upset图吧,这里我们还可以显著标记哦。🙊

代码语言:javascript
复制
plot_upset(selection_results, custom_lists = custom_list)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1写在前面
  • 2用到的包
  • 3环境设置
  • 4示例数据
  • 5整理文件格式
  • 6开始筛选特征基因
  • 7可视化
  • 8查看Performance
  • 9计算共同基因
    • 9.1 开始计算
      • 9.2 基础可视化
        • 9.3 与自定义list取交集
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档