# 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等)的分析变得更容易,受到个人能力和精力限制,无法快速更新一些免费代码和低价课程。