# Oneclick
**Repository Path**: OneClickAnalyses/Oneclick
## Basic Information
- **Project Name**: Oneclick
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-12-22
- **Last Updated**: 2025-02-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Oneclick
Oneclick的目标是更方便的调用孟德尔随机化和其他方法,最终只需简单几行代码就可以到呈现论文的程度
## 安装,使用,与更新
### 安装方法一,通过本地安装
本地安装,详见视频
### 安装方法二,通过git安装
首先电脑里需要有git软件。然后可以通过remotes包安装Oneclick包
``` r
# 安装依赖包
install.packages(c('arrow', 'cli', 'digest', 'dplyr', 'furrr', 'future', 'ggpubr', 'ggsci',
'gridExtra', 'lifecycle', 'magrittr', 'mschart', 'officer', 'progress', 'R6',
'rjson', 'yesno','remotes',"MendelianRandomization","gwasrapidd","flextable"))
remotes::install_github("MRCIEU/TwoSampleMR",force = TRUE)
# 安装Oneclick包
remotes::install_git("https://gitee.com/OneClickAnalyses/Oneclick.git",
build_vignettes = TRUE,force = TRUE)
```
还需要下载外部数据,这是百度云链接,**注意,这个链接的文件夹是实时更新的,但是你保存到你的网盘后,你网盘里的文件不能实时更新,需要更新时重新保存**,整个文件夹完整的下载完之后需要设置文件夹,例如在我的电脑里OneclickDatabase文件夹所在的位置是F:/BaiduSyncdisk/OneclickDatabase,只需设置一次,除非更换了下载路径
``` r
Oneclick::U1_set_file_path("F:/BaiduSyncdisk/OneclickDatabase")
```
如果要安装旧版本的R包,比如要安装v5.1.4版本,只需要在标签里查看有没有”v5.1.4”,然后安装
``` r
remotes::install_git("https://gitee.com/OneClickAnalyses/Oneclick.git",
ref = "v5.1.4",
build_vignettes = TRUE)
```
### 使用
按照代码说明使用
### 更新
更新两部分,一是R包,直接参照安装部分的代码
二是更新外部数据,通常不需要更新,除非要使用新的功能。不要百度云直接下载到那个文件夹,会出现很多(1),最终导致报错,最简单的方法是新下载到另一个路径再设置一下文件夹。
### opengwas的token
opengwas在2024年5月1日将限速,以后使用需要配置有2周有效期的token。详细见
下面教大家如何配置,首先进入登录,获得token,然后输入下面的代码
``` r
usethis::edit_r_environ()
```
这将会打开文件.Renviron,然后输入
OPENGWAS_JWT=具体的token,配置好了后,然后重启Rstudio,再判断是否配置好了
``` r
library(Oneclick)
ieugwasr::user()
```
能输出个人信息的话,即可正常使用,2周更换一次token。
## 为什么要制作这个R包
- 为了方便自己,零散的代码过多,没办法好好管理,制作成R包,一个常用的功能制作成R包里的功能可以很容易搜索到,而不是在自己的电脑里找来找去
- R语言S3编程可以对不同的类执行不同的操作,本R包里我就用了很多的S3功能,类如U2_extract_instruments功能等,可以满足在线ID和本地数据只使用一个功能,方便管理,这方面本R包优于TwoSampleMR包(其他方面望尘莫及)
- 我学习孟德尔随机化的时候没有此类相关的开源R包(目前也没有,TwoSampleMR没有很好的解决清洗本地数据的问题,也没有一个整合的R包可以实现多暴露到多结局的代码问题),导致我耗费了大量的时间在搜集资料,写代码和debug上,不过这也锻炼了我的代码能力
- 有一些很好的r包(例如officer)可以实现分析结果到呈现论文word的过程,但是需要很多时间详细阅读文档才能明白怎样操作,本R包的优势在于给出一个模板,非常容易执行
## 这个R包的优势是什么
比起市面上几千块钱的R包,本R包完全免费,而且能查看源代码
本R包的功能强大,可以轻松实现:
- 搜索GWAS数据(本地和在线当前已经有7万多ID),只要能搜索到,就能分析(本地数据需要根据url下载然后再制作成本地数据,无需购买其他机构的云上数据api服务)
- 如果本地数据不在上面的ID里,那么需要手动处理本地数据,也有方便的自适应清洗数据的功能
- 插补SNP,根据hg37或hg38的模板快速匹配SNP(只需几到十几分钟)
- 多个ID数据(本地ID和在线ID)同时提取工具变量,再也不用为了十几个数据写几百行代码了,而且可以不断重试,不用担心502(例如
Server code: 502; Server is possibly experiencing traffic, trying again...
)的报错(不建议太多,用的多了会造成服务器的崩溃,最后大家都没得用)
- 多个ID数据(本地ID和在线ID)同时作为结局,而且可以不断重试在线ID,不用担心502的报错。
- 多暴露和多结局一起分析,可以轻松实现几百多暴露到几百多结局的一次性分析(几千,几万也可以,只要有时间)
- 所有方法和F值,R2,power等一起统一计算,呈现在一个表里,不用担心数据拼接的问题
- 默认模板可以一键轻松输出表格和图片,不用担心不会绘图,不会处理表格最终还要手动处理的问题(善用代码可以节约大量时间)
- 多变量孟德尔随机化也可以使用本地数据和在线数据一键分析
- 中介孟德尔随机化也实现了本地数据和在线数据的一键分析,包含两步法和多变量法
- 未来还会更新共定位法,LDSC等方法,让方法到论文更简单
## 为什么要开源
- 一些优秀的依赖包(类如flextable)基于 GPL协议,
GPL协议要求使用这些包的代码也需要开源
- 很多GWAS数据不允许商业使用,出售处理好的数据可能面临法律风险
- 获得更大的影响力,免费好用的东西总是能吸引更多的人,我现在做的账号需要一些流量
- 回馈R语言社区,学习R语言的过程很艰辛,幸好搜索到各种免费文字教程解决各种报错,才能坚持下去,现在代码能力有一定的提高,所以可以一定回馈社区
- 开源代码可以减少错误代码,学习孟德尔随机化的过程,我发现很多代码(例如本地数据执行多变量孟德尔随机化)是错的,但是还是发了论文(大部分论文不查看代码),开源代码在众多有识之士的验证和监督下能够减少此类错误
## 这个R包有收费项吗?
- 本r包完全免费,可以轻松下载,如果您有一定的代码能力,可以轻松完成这些功能,而且功能都有中文介绍,和示例代码
- 付费项只有本r包相关视频教程和代码功能详解,我会上传到B站工坊,每个模块(例如单变量U1-U8的功能属于一个模块,多变量属于一个模块)的教程都不会超过80元,如果您不是零基础吗,则不需要付费也可以完成,当然我建议购买相关视频,因为里面代码的设计逻辑可以避免一些基本的问题
- 不会因为要制作和出售课程故意留一个BUG,因为代码我自己也在用
- 制作收费视频是因为免费的项目很难走的长久,因为没有金钱的动力,我很快就会放弃这个项目,毕竟人都是有自己的工作和生活的,收费可以让我更新的更快一些
## 视频课程
- U部分课程链接
- M部分课程链接
## 如何引用这个R包
不需要引用Oneclick,目前没有发表论文的计划,直接引用依赖包即可,例如TwosampleMR。可以在致谢中写:我们感谢医键分析团队提供了方便且开源的代码使用方法。英文:
We appreciate the user-friendly and open-source code provided by the One
Click Analyses team.
## 如何报告BUG
在报告,或者添加我的微信Oneclick1(列入清单,不是即时解决)。
## 加入我们
如果您对分享代码和录制课程感兴趣,可以加入我们,代码需要加入此R包内开源,录制的课程出售后可以根据出售数量享受分成。因为个人的能力是有限的,本R包的目的是让一些公共数据库(例如NHANES,SEER,UKB等)的分析变得更容易,受到个人能力和精力限制,无法快速更新一些免费代码和低价课程。