tidyplots(1)介绍
教程地址:https://jbengler.github.io/tidyplots/
tidyplots的目标是简化为科学工作者创建出版就绪图的过程。它允许使用一致和直观的语法逐步添加、删除和调整绘图组件。
测试数据-Cursor pro
安装
您可以从CRAN安装tidyplots的正式版本:
install.packages("tidyplots")
以及来自GitHub的开发版本
# install.packages("devtools")
devtools::install_github("jbengler/tidyplots")
用法
# 使用管道操作符 %>% 将数据传递给后续函数
study %>%
# 创建基础图形
# x轴为treatment变量
# y轴为score变量
# 根据treatment分组上色
tidyplot(x = treatment, y = score, color = treatment) %>%
# 添加均值条形图
# alpha=0.4设置条形图透明度为0.4
add_mean_bar(alpha = 0.4) %>%
# 添加标准误差线
# 用于显示数据的变异程度
add_sem_errorbar() %>%
# 添加蜂群图数据点
# 可以更好地展示数据分布
add_data_points_beeswarm()
# 使用管道操作符 %>% 将energy数据集传递给后续函数
energy %>%
# 创建基础堆叠柱状图
# x轴为year(年份)变量
# y轴为power(能源功率)变量
# 根据energy_source(能源类型)分组上色
tidyplot(x = year, y = power, color = energy_source) %>%
# 添加绝对值堆叠柱状图
# 每个能源类型的数值直接堆叠在一起
# 展示不同能源在各年份的绝对贡献值
add_barstack_absolute()
# 使用管道操作符 %>% 将energy数据集传递给后续函数
energy %>%
# 使用dplyr的filter函数筛选特定年份的数据
# %in% 操作符检查year是否在指定的年份集合中
# 只保留2005、2010、2015和2020年的数据
dplyr::filter(year %in% c(2005, 2010, 2015, 2020)) %>%
# 创建基础环形图
# y轴表示power(能源功率)
# 根据energy_source(能源类型)分组上色
tidyplot(y = power, color = energy_source) %>%
# 添加环形图层
# 将数据以环形方式展示
# 每个扇形代表不同能源类型的占比
add_donut() %>%
# 按year(年份)拆分图形
# 生成4个子图,分别显示各年份的能源构成
split_plot(by = year)
# 使用管道操作符 %>% 将energy_week数据集传递给后续函数
energy_week %>%
# 创建基础面积图
# x轴为date(日期)变量
# y轴为power(能源功率)变量
# 根据energy_source(能源类型)分组上色
tidyplot(x = date, y = power, color = energy_source) %>%
# 添加绝对值堆叠面积图
# 将不同能源类型的数值堆叠在一起
# 展示各能源类型随时间变化的绝对贡献值
add_areastack_absolute()
# 使用管道操作符 %>% 将energy_week数据集传递给后续函数
energy_week %>%
# 创建基础面积图
# x轴为date(日期)变量
# y轴为power(能源功率)变量
# 根据energy_source(能源类型)分组上色
tidyplot(x = date, y = power, color = energy_source) %>%
# 添加相对值堆叠面积图
# 将不同能源类型的数值转换为百分比后堆叠
# 展示各能源类型随时间变化的相对占比
add_areastack_relative()
# 使用管道操作符 %>% 将study数据集传递给后续函数
study %>%
# 创建基础图形
# x轴为group(组别)变量
# y轴为score(得分)变量
# 根据dose(剂量)分组上色
tidyplot(x = group, y = score, color = dose) %>%
# 添加均值条形图
# alpha=0.4设置条形图的透明度为0.4
# 用于展示各组的平均得分
add_mean_bar(alpha = 0.4) %>%
# 添加均值虚线
# 在条形图上添加水平虚线标记均值位置
add_mean_dash() %>%
# 添加均值数值标签
# 在图上显示具体的均值数字
add_mean_value()
# 使用管道操作符 %>% 将time_course数据集传递给后续函数
time_course %>%
# 创建基础图形
# x轴为day(天数)变量
# y轴为score(得分)变量
# 根据treatment(处理方式)分组上色
# dodge_width=0表示不进行分组偏移
tidyplot(x = day, y = score, color = treatment, dodge_width = 0) %>%
# 添加均值连线
# 将同一处理组的均值点用线连接起来
add_mean_line() %>%
# 添加均值散点
# 在每个时间点标记出均值位置
add_mean_dot() %>%
# 添加标准误带状图
# 在均值线周围添加一个区域来表示标准误范围
add_sem_ribbon()
# 使用管道操作符 %>% 将climate数据集传递给后续函数
climate %>%
# 创建基础热力图
# x轴为month(月份)变量
# y轴为year(年份)变量
# 根据max_temperature(最高温度)变量上色
tidyplot(x = month, y = year, color = max_temperature) %>%
# 添加热力图效果
# 将温度数据映射为颜色深浅
# 形成月份-年份的二维热力图展示
add_heatmap()
# 使用管道操作符 %>% 将study数据集传递给后续函数
study %>%
# 创建基础图形
# x轴为treatment(处理)变量
# y轴为score(得分)变量
# 根据treatment(处理)分组上色
tidyplot(x = treatment, y = score, color = treatment) %>%
# 添加箱线图
# 用于展示各处理组数据的分布情况
add_boxplot() %>%
# 添加显著性检验p值
# ref.group = 1表示以第1组为参照组
# 进行组间统计检验并在图上标注p值
add_test_pvalue(ref.group = 1)
# 使用管道操作符 %>% 将gene_expression数据集传递给后续函数
gene_expression %>%
# 筛选指定的4个基因
# 使用dplyr包的filter函数选择external_gene_name列中包含这些基因的数据
dplyr::filter(external_gene_name %in% c("Apol6", "Col5a3", "Vgf", "Bsn")) %>%
# 创建基础图形
# x轴为condition(条件)变量
# y轴为expression(表达量)变量
# 根据sample_type(样本类型)分组上色
tidyplot(x = condition, y = expression, color = sample_type) %>%
# 添加均值虚线
# 用虚线标记各组的平均表达水平
add_mean_dash() %>%
# 添加标准误误差棒
# 在均值处添加误差棒表示标准误范围
add_sem_errorbar() %>%
# 添加蜂群图数据点
# 以蜂群图形式展示所有原始数据点
add_data_points_beeswarm() %>%
# 添加显著性检验星号标记
# hide_info=TRUE表示隐藏具体的统计信息
add_test_asterisks(hide_info = TRUE) %>%
# 移除x轴标题
remove_x_axis_title() %>%
# 按基因名分面
# 将4个基因的图形分别展示
split_plot(by = external_gene_name)
load("gene_expression.rda")
# 使用管道操作符 %>% 将gene_expression数据集传递给后续函数
gene_expression %>%
# 筛选指定的4个基因
# 使用dplyr包的filter函数选择external_gene_name列中包含这些基因的数据
dplyr::filter(external_gene_name %in% c("Apol6", "Col5a3", "Vgf", "Bsn")) %>%
# 创建基础图形
# x轴为condition(条件)变量
# y轴为expression(表达量)变量
# 根据sample_type(样本类型)分组上色
tidyplot(x = condition, y = expression, color = sample_type) %>%
# 添加均值虚线
# 用虚线标记各组的平均表达水平
add_mean_dash() %>%
# 添加标准误误差棒
# 在均值处添加误差棒表示标准误范围
add_sem_errorbar() %>%
# 添加蜂群图数据点
# 以蜂群图形式展示所有原始数据点
add_data_points_beeswarm() %>%
# 添加显著性检验星号标记
# hide_info=TRUE表示隐藏具体的统计信息
add_test_asterisks(hide_info = TRUE) %>%
# 移除x轴标题
remove_x_axis_title() %>%
# 按基因名分面
# 将4个基因的图形分别展示
split_plot(by = external_gene_name)
# 使用管道操作符 %>% 将study数据集传递给后续函数
study %>%
# 创建基础图形
# x轴为treatment(处理)变量
# y轴为score(得分)变量
# 根据treatment(处理)分组上色
tidyplot(x = treatment, y = score, color = treatment) %>%
# 添加均值条形图
# alpha=0.4设置条形图透明度为0.4
add_mean_bar(alpha = 0.4) %>%
# 添加标准误误差棒
# 在均值处添加误差棒表示标准误范围
add_sem_errorbar() %>%
# 添加蜂群图数据点
# 以蜂群图形式展示所有原始数据点
add_data_points_beeswarm() %>%
# 查看图形
# 设置标题为默认配色方案:'friendly'
view_plot(title = "Default color scheme: 'friendly'") %>%
# 调整颜色方案
# 使用Apple风格的离散配色方案
adjust_colors(colors_discrete_apple) %>%
# 再次查看图形
# 设置标题为替代配色方案:'apple'
view_plot(title = "Alternative color scheme: 'apple'")
课程更新-课程应用Cursor进行代码编写演示
1. 基于R语言的动态预测模型课程将采用Cursor进行代码编写及课程讲授
2. 课程会演示并协助同学完成Cursor配置工作
为什么要用cursor
随时可唤起AI模型
丰富的AI模型(ctrl+L)
仅从某宝或某鱼可购买无限制低价会员
根据注释自动生成代码
根据代码区要求生成代码(ctrl+K)
可SSH登录远程服务器R语言环境
与R studio类似的工作环境-workspace
支持类似于R studio的快捷键设定
将R与Cursor一起使用的优缺点
优点: AI编码工作流程的极其强大的界面 非常好的git GUI工具 强大的跨语言工具,用于JSON解析、Github操作和Dockerfile脚本等 缺点: 与renv一起使用很烦人
总结
低成本使用AI辅助代码工具 类似于R studio体验,无缝切换,AI 辅助10倍速度 基于vscode可以多开线程 可同时作为python编辑器 插件丰富,可扩展性强大
开课目的及前言
预测模型作为真实世界研究的重要组成部分,其研究被广泛开展。但是,传统的预测模型利用基线数据对最终的生存结果进行预测,这种模型无法纳入患者在后续随访中可能会动态变化的重要数据(比如肿瘤标记物的动态变化)。 以上情况在统计学中会产生估计偏差情况,也是不符合临床实际的。近年来发展起来的动态预测模型方法,利用患者的多次随访数据,结合患者的基线数据,对最终患者的额生存结果(或类似的time to event事件)进行估计。其发文量呈现快速增长趋势。
在临床实际中,医生会根据患者的动态变化指标做出进一步诊断及治疗的判断。动态预测模型结合患者的纵向数据与最终的生存结果,对于最终结果进行更加准备的预测。由于当前R语言在医学统计工作中占据重要地位,但很多临床大夫、护士因为时间工作关系很难将R语言与临床科研相结合,故开设R语言动态预测模型课程,旨在快速让学员掌握统计工作中常用到的R语言,助力临床科研工作。天企助力(天津)生产力促进有限公司特举办“基于R语言的动态预测模型课程培训班”。
预测模型类文章目前总结起来发展经历了以下三个阶段:
基于传统流行病学的列线图模型(本质都是cox回归及glm回归),简单的统计学分析模型,是模型依赖的方法,临床上实际情况很难满足其前提假设,实际效果不好。
基于机器学习/深度学习的预测模型的构建(在数据上提高了维度,在算法上引入了机器学习),虽然算法上引入了机器学习模型,处理数据更加灵活,模型的假设也更少。但是在使用的数据上还是患者的一次基线数据进行预测,与临床实际不符。
基于纵向数据的动态预测模型(基于纵向多次随访数据,模型应用联合模型等动态预测模型方法),应用患者的多次随访数据对最终的生存结果进行预测,从数据和方法上都更类似于临床实际。
考虑到动态预测模型有以下特点,因此必然是后续高分文章的必备方法:
数据上必须有同一个患者的多次随访数据,相对于既往横断面一次基线数据,数据的收集难度更大,而且动态预测模型需拟合纵向的线性混合模型,因此需要的数据量较大。这就提示我们如果能收集到如上数据更加容易发高分文章。
应用方法学动态预测模型需首先掌握普通生存分析及普通预测模型的方法,并且还需要熟悉纵向数据分析的广义线性混合模型,再次基础上还需要掌握tidyverse语法基础来将自己的数据转换为满足函数要求的纵向数据,另外对于联合模型,模型的结合形式及变量选择也均需要从临床背景及统计学方法考虑。
近期高分文章举例
授课老师
灵活胖子-独自
双一流学校肿瘤学博士毕业,目前就职于国内五大肿瘤中心之一。科研方向为真实世界研究,生物信息学分析及人工智能研究。目前以第一或共同第一作者身份发表SCI论文10余篇,累计IF50+。目前与国内多个院校及医院有科研合作。联合翻译小组同学,在国内第一次将jmbayes2及dynamicLM全文翻译为中文并在公众号发表。
课程目录及安排
授课形式及时间
授课形式:远程在线实时直播授课。
授课时间:2024年12月开课,总课时不少于30小时,每周进行3-5小时的授课,有充分时间学习,预计6-8周完成所有授课内容。
答疑支持:建立课程专属微信群,1年内课程内容免费答疑。
视频回看:3年内免费无限次回看。
课程售价及售后保证
课程售价:总价3000元,报名可先交300元预定即可,开课后2周内交齐即可
对公转账等手续务必提前联系助教
承办公司:天企助力(天津)生产力促进有限公司
奖励政策:学员应用所学内容发表IF 10+文章可退还学费(具体要求及流程需要咨询助教)