当前位置: 首页 > news >正文

(完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子

前言

自用生信代码, 花费一个多月写下来的。自学R以来第一次写600多行的代码。我的文章已经发表,如对您的研究有帮助希望可以引用一下。文章点我

SVM-RFE

主要是借助e1071包, 实现mSVM-REF识别并筛选关键基因,没有安装的小伙伴需要安装一下。

install.packages("e1071")

mSVM-REF函数是John Colby教授写的链接点我。如无法上GitHub,我也上传在我的gitee仓库里,可以点击右边的1直达1。

输入文件整理成这种样子,即行为样本,列为基因,第一列是分组信息(我只做了两组比较,多组对比需要再研究)。
input格式
函数是已经写好的,我们直接引用即可。

set.seed(2023)
library(e1071)#这里填写你存放的文件路径
source("D:\\ProgramFiles\\R\\Work\\msvmRFE.R")nfold = 10 #10倍交叉验证
nrows = nrow(input)
folds = rep(1:nfold, len=nrows)[sample(nrows)]
folds = lapply(1:nfold, function(x) which(folds == x))results = lapply(folds, svmRFE.wrap, input, k=10, halve.above=100)
top.features = WriteFeatures(results, input, save=F)
featsweep = lapply(1:5, FeatSweep.wrap, results, input)no.info = min(prop.table(table(input[,1])))
errors = sapply(featsweep, function(x) ifelse(is.null(x), NA, x$error))pdf("svm_rfe.pdf", height = 8, width = 10)
PlotErrors(errors, no.info=no.info)
dev.off()
plot(top.features)#这个图也可以保存

另外我还参考了的Maryam教授的并行代码链接点我,并行计算,提高计算速度。前提是要在win10系统中需要安装Rmpi。 印象中我折腾了一下才装上,如果没安装成功,就不要尝试了,用上面的代码让它慢慢跑也是可以出结果的。

set.seed(2023)library(e1071)
library(Rmpi)
library(snow)
library(parallel)#这里填写你存放的文件路径
source("D:\\ProgramFiles\\R\\Work\\msvmRFE.R")nfold = 10 #10倍交叉验证
nrows = nrow(input)
folds = rep(1:nfold, len=nrows)[sample(nrows)]
folds = lapply(1:nfold, function(x) which(folds == x))#make a cluster
cl <- makeMPIcluster(mpi.universe.size())clusterExport(cl, list("input","svmRFE","getWeights","svm"))
results <-parLapply(cl,folds, svmRFE.wrap, input, k=10, halve.above=100)
top.features = WriteFeatures(results, input, save=F)clusterExport(cl, list("top.features","results", "tune","tune.control"))
featsweep = parLapply(cl,1:100, FeatSweep.wrap, results, input)
stopCluster(cl)no.info = min(prop.table(table(input[,1])))
errors = sapply(featsweep, function(x) ifelse(is.null(x), NA, x$error))pdf("svm_rfe.pdf", height = 8, width = 10)
PlotErrors(errors, no.info=no.info)
dev.off()
plot(top.features)
mpi.exit()

其他内容

我文章中所用的其他代码,包括下载数据、差异分析、lasso回归、随机森林等网上的攻略已经很多了,就不再重复,只是把我实际使用的贴出来给大家做参考,可以点旁边这个1访问。1

  • GEOquery包下载GEO中的数据。(有时候下不下来还是需要自己手动下载读取)
  • limma包对芯片数据进行差异分析。
  • DESeq2包对测序数据进行差异分析。
  • MEGENA包构建共表达图谱。
  • glmnet包实现lasso回归筛选
  • randomForest包实现随机森林筛选。
  • venn包绘制韦恩图。
  • pROC包检验预测效果。
  • CIBERSORT进行免疫浸润分析(函数代码点我)。
  • 用ggplot2,余叔的aplot等包进行了一些可视化。

代码写的有点乱,具体讲解先鸽了,有时间再来整理。
如果看不懂的可以在下面评论和私信我。

最后想说

其实这些代码都是别人写好的,我只是搬运过来。就好比人家花了好多时间养好的鱼被我买过来,再卖给大家,我是个香香的卖鱼的。

我不生产代码,只是代码的搬运工。

相关文章:

  • WPF入门到跪下 第八章 动画-VisualStateManager
  • vuetify 回到顶部
  • 2024.1.9 Spark SQL day06 homework
  • react 6种方式编写样式
  • Spring MVC响应结合RESTful风格开发,打造具有强大功能和良好体验的Web应用!
  • 【MIT 6.S081】2020, 实验记录(1),Lab: Xv6 and Unix utilities
  • uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -后端鉴权拦截器实现
  • CentOS 7.8 安装 Docker
  • Python 架构模式:第五章到第九章
  • 代码随想录day24 开启回溯算法
  • go 修改postgresql的配置参数
  • C++完成Query执行sql语句的接口封装和测试
  • 开启Android学习之旅-5-Activity全屏
  • CHS_01.1.4+操作系统体系结构 一
  • C++推箱子游戏开发
  • 【EOS】Cleos基础
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JDK9: 集成 Jshell 和 Maven 项目.
  • js学习笔记
  • Map集合、散列表、红黑树介绍
  • SAP云平台里Global Account和Sub Account的关系
  • 分布式事物理论与实践
  • 微信小程序--------语音识别(前端自己也能玩)
  • 一个完整Java Web项目背后的密码
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • #Z2294. 打印树的直径
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (多级缓存)多级缓存
  • (四)库存超卖案例实战——优化redis分布式锁
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .net(C#)中String.Format如何使用
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [C/C++]_[初级]_[关于编译时出现有符号-无符号不匹配的警告-sizeof使用注意事项]
  • [emuch.net]MatrixComputations(7-12)
  • [Linux]于Mac在配置Linuxserver安装Nginx+PHP
  • [MySQL数据库部署及初始化相关]
  • [NAND Flash 6.2] NAND 初始化常用命令:复位 (Reset) 和 Read ID 和 Read UID 操作和代码实现
  • [NISACTF 2022]level-up
  • [NOI2014]购票
  • [Poetize6] IncDec Sequence
  • [StartingPoint][Tier1]Pennyworth
  • [Unity3D ARPG网络游戏编程实践] 网络连接 :unity NetWork与socket的对比(一)
  • [windows phone 7开发]搭建WP7开发环境
  • [笔记].怎样开关LCD12864的背光以及调节其对比度?
  • [创业] 让创业者惊讶的19个真相
  • [高精度][codevs 1145]Hanoi双塔问题
  • [开源]免费开源MES系统/可视化数字大屏/自动排班系统