复现一篇公共数据库纯生信文章中的限制性立方样条图(文末附R代码)

先来感受下仅需1秒的极速出图流程和一键随机修改配色功能,性能遥遥领先:


e6189ff5121dc86de461998c6d40f83b.gif

之前一直在复现CNS级别的文章图表,今天躺平放松下降低点要求,复现一篇来源于针对公共数据库中,对上万常规体检数据的纯生信挖掘文章。

本次复现的图表来源于Frontiers in Endocrinology期刊上(IF=5.2)题目为《Gamma-glutamyl transferase to high-density lipoprotein cholesterol ratio: A valuable predictor of type 2 diabetes mellitus incidence,译:γ-谷氨酰转移酶与高密度脂蛋白胆固醇的比率:2 型糖尿病发病率的重要预测因子》中的Fig.3-限制性立方样条图(Restricted cubic spline,RCS)。跟着操作,只需要简单的鼠标点点点3步骤,在短暂3分钟内即可轻松复现该图。大家如果有需要需要用限制性立方样条图分析,可以按照平台上示例数据格式(模版)直接复制粘贴替换成自己数据直接分析。

200de6d4cd76f752b993ebc9ffdf1eeb.png

e8e96850e35060fecceb5d92d3f137a4.png

CNSknowall一比一复现文献原图,P值完全相同 由于作者只提供了公共数据集的来源,并没有说明如何进一步处理其中的数据作为实验数据,因此得到的复现图略微微有一点点差异,但能复现成这样水平也能称全网第一了

复现目标图片介绍

--- 限制性立方养条图 · ---

限制性立方样条图(Restricted cubic spline,RCS)用于展示自变量与因变量之间非线性关系,图中通常包括限制性立方样条拟合曲线以及相应的置信区间。它通过在数据点之间引入多个三次多项式片段,从而在整个变量范围内建模曲线形状。限制性立方样条图通过控制节点的数量和位置,可以调整曲线的复杂度,以更好地反映数据的真实模式。

CNSknowall中的此图基于R包rmssurvival开发,大家如果需要用我们平台做RCS分析,可以通过以下引用格式:The plot was generated using R software package “rms and survival”  through CNSknowall (http://cnsknowall.com/index.html#/HomePage), a comprehensive web service for biomedical data analysis and visualization.

文章从公共数据中采集了15464个参与者的体检报告,接着对这些样本的多种检测指标构建Cox比例风险回归模型,来研究GGT/HDL-C(谷胱甘肽转肽酶/高密度脂蛋白胆固醇)比率对T2DM(2型糖尿病)的独立影响,调整的指标有:年龄、性别、BMI(身体质量指数)、饮酒量、吸烟状况、是否为脂肪肝、运动习惯、FPG(空腹血糖)、HbA1c(糖化血红蛋白)、ALT(丙氨酸氨基转移酶)、AST(天冬氨酸氨基转移酶)、胆固醇、甘油三酯、SBP(收缩压)和DBP(舒张压)。在构建好的COX模型的基础上,采用4节限制立方样条(RCS)模型来探索GGT/HDL-C比值与T2DM风险之间的非线性相关性,可视化结果如下:

b4109dbe437eb9e27de9b70fb4e0208f.png

原文Fig.3

图中得到的非线性 P值 为 0.333,说明GGT/HDL-C 比率与 T2DM 风险呈线性相关,而且T2DM 的风险随着 GGT/HDL-C 比率的升高而增加也证明了这一点,间接说明GGT/HDL-C 比值可以作为 T2DM 的有价值的预测因子。(大家如果有类似的实验设计或有类似格式的数据,可以直接套用该图以及该图用到的统计学方法,来说明数据间是否存在非线性相关。

详细步骤

限制性立方样条图复现

1

登录CNSknowall平台 

文末点击“阅读原文”直达(或复制链接到浏览器上收藏)进入平台:

http://cnsknowall.com/#/HomePage

直接微信扫码登录即可永久免费使用,进入“数据分析模块”——“高级分析”——“生存分析”,找到限制性立方样条图,点击进入限制性立方样条图分析界面。

bd10fed498dbda78eb97f7e607272a49.png

f1dada95469e3f9626a01e167150e58b.png

CNSknowall限制性立方样条图(RCS)可视化界面

2

数据下载

从原文下载公开数据集,原文链接:

文献地址:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9557082/

进入https://datadryad.org/stash/dataset/doi:10.5061/dryad.8q0p192,点击Download full dataset

d10bcce9be51b719d808ee646eed2732.png

83415dd59d5f1acbdd055a5ecd36b9ae.png

打开下载好的数据,我们需要提取1-3、5-6、11-13、15-16、18、20、22-23、25-31列,共二十列数据,调整一下顺序,第二列为观察的时间(Follow up duration),第三列为是否患上糖尿病(Incident DM 0/1),第四列为GGT/HDL-C,其余列的顺序不做改变,保存为‘data_RCS.csv’。

a465cd632663b7b781cca8f3b87ff2ac.png

3

数据上传

点击平台右侧“选择文件”后上传data_RCS.csv文件

a15b45e264bd5195fb5709a14069f7c1.png

上传成功后,页面上方会显示弹窗信息,“已上传成功”。

f4ad750c3c2f1fc8371ce5e344055c29.png

最后点击点击页面左下角“开始做图,等待平台运行。

a1396f9188e1f1a7e9e6c2745af79450.png

<1秒即可得到的运行结果,如下:

2c769302b2188b7ab2c8880affa4c7f4.png

4

图形设置 

除上述个性化设置外,该工具也提供了一些其他个性化设置,如图表设置,标题设置等。

01

图形颜色设置

  • 全网首创的一键随机变色模式,遥遥领先:

231c18da45b25d48c6aa9de7d606bf5b.gif

  • 全网最大气的调色板任意自选颜色:

81147c47e75573c6bcc83aae4c7434da.png

  • 输入精准的颜色参数:

2484942535d8b25b9efe249a9698c768.png

  • 首次将取色器用于医学数据分析,一键复制文献上的配色风格:

0e9abaf3ecf3f6c555b0438ab0108050.gif

02

坐标轴设置

x轴标题改为‘GGT/HDL-C ratio’,y轴标题改为‘HR (95%CI)’,并略微调大字号。

6c3902e12e4b095f3a4b01e8db7a3e29.png

03

标题设置

f554dd614bf4128463d93fccec591cf3.png

5

RCS的R代码
library(survival)
library(rms)
data <- read_data('data_RCS.csv')
COL <- colnames(data)[1]
c <- colnames(data)
c[1] <- 'v';c[2] <- 'time';c[3] <- 'death';c[4] <- 'd'
#处理好文件中的非法字符
c <- gsub("\\([^)]+\\)", "", c)
c <- gsub(",", "", c)
c <- gsub("/", "", c)
c <- gsub("%", "", c)
c <- gsub(",", "", c)
c <- gsub(" ", "_", c)
c <- gsub("-", "_", c)
c <- gsub(":", "", c)
colnames(data) <- c
predictors <- c[!c %in% c('v', 'time', 'd','death')]
varsToFactor <- c('Sex_1Men_2Women','Baseline_Habit_of_exercise_01',
 'Baseline_Alcohol_consumption_non1_light2_moderate3_heavy4','Baseline_Smoking_status_1never_2past_3current',
 'Baseline_Fatty_liver_01')
data[varsToFactor]<-lapply(data[varsToFactor],factor)
data$time <- data$time/365
dd <- datadist(data) #为后续程序设定数据环境
options(datadist='dd') #为后续程序设定数据环境
predictors <- c[!c %in% c('v', 'time', 'd','death')]
formula_str <- paste0('Surv(time,death)','~','rcs(d, 4)+',paste(predictors, collapse = "+"))
formula <- as.formula(formula_str)
#拟合cox回归模型,注意这里的R命令是“cph”,而不是常见的生存分析中用到的“coxph"命令
#自然样条回归
fit<- cph(formula,data=data)
HR<-Predict(fit,d,fun=exp,ref.zero = TRUE,conf.int = 95)
plot(HR)

END

37b0f92d995b53ee40577a8e45d07eb6.png

 点击关注我们,用最短的时间和最高的效率学习更多数据分析方法!

加入我们的官方群咨询平台使用方法,高效学习更多数据分析方法,会晤道友!

f03d6c852ec68cbbc334d1a0a58daa40.jpeg

‍注册登录CNSknowall后即可无限制任意免费使用

--一次性收藏120个皆可一键出图的高级通用生信工具--

91b85c74dc7e1704541fe926d8d6c5b0.png

同时收藏42个柱状图+23个饼图+其余70个各类常用图表

ae03ca0317e0e20b202c0cf70b6287c8.png

写在后面:AI时代已来,您需要非同以往的更强数据分析工具

  CNSknowall (中文:CNS万事通)平台是今年1月份新上线的一款专门针对医学领域的创新型免费在线数据分析云平台,和目前常用的数据分析工具如SPSS、Origin、GraphPad Prsim和R语言相比,CNSknowall在数据上传、配色修改和参数调整等各方面做出了一系列重大创新,各项性能遥遥领先,几乎没有任何学习成本(包括时间成本和金钱成本),甚至优于GPT(毕竟GPT不是专门的数据分析工具)。您只需要简单的套用台提供的固定数据格式复制粘贴替换成自己的数据,鼠标点点点就可以完成CNS级别的高水平图表制作,可以让不擅长或没接触过数据分析的人以最短的时间内快速建立医学数据分析的基本思维,以最快的速度掌握各种数据分析技能,帮助大家在数据分析上节省大量宝贵的时间,从而可以把时间和精力用在更重要的事情比如查阅文献和设计研究思路方案等,提高文章发表速度,减缓毕业焦虑,赋能职业生涯,开启科研天骄之路!

CNSknowall 首页

f482c5731e487d959e42f7e65389fbd7.png

很多时候知道自己要画什么图往往比会画什么图更重要

平台包含300个数据分析模块,您可以快速找到能让自己数据价值最大化的分析方法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在纯生 Vue 封装使用骨架屏可以通过以下步骤实现: 1. 创建一个骨架屏组件 Skeleton.vue,该组件包含需要展示骨架屏的元素和动画效果。 ``` <template> <div class="skeleton"> <div class="skeleton-item" v-for="i in 3" :key="i"></div> </div> </template> <style> .skeleton { display: flex; align-items: center; justify-content: center; } .skeleton-item { width: 50px; height: 50px; margin: 0 10px; background-color: #ccc; border-radius: 50%; animation: pulse 1.2s ease-in-out infinite alternate; } @keyframes pulse { from { opacity: 0.6; } to { opacity: 1; transform: scale(1.1); } } </style> ``` 2. 在需要展示骨架屏的组件引入 Skeleton.vue 组件,并添加一个 Boolean 类型的数据 isLoading,用于控制展示骨架屏或实际数据。 ``` <template> <div> <h1>{{title}}</h1> <Skeleton v-if="isLoading" /> <div v-else> <!-- 展示实际数据 --> </div> </div> </template> <script> import Skeleton from './Skeleton.vue' export default { components: { Skeleton }, data() { return { isLoading: true, // 实际数据 } }, mounted() { // 获取实际数据 this.getData() }, methods: { getData() { // 发送请求获取数据 // ... // 数据请求完成后关闭骨架屏 this.isLoading = false } } } </script> ``` 3. 在 Skeleton.vue 组件可以根据实际需求进行自定义,例如添加不同的动画效果、修改元素样式等。 通过以上步骤可以在纯生 Vue 封装使用骨架屏,可以优化用户体验,提升页面加载速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值