2 课程项目简介
本课程以项目驱动的形开展教学,每次课程围绕一个独立但相互关联的项目展开。所有项目可分为 4 个模块:
- 环境搭建模块:在自己的电脑中搭建数据分析环境
- 数据分析模块:使用 R 进行数据分析和可视化的基本操作
- 人工智能模块:借助人工智能工具进行数据分析
- 开发协作模块:与全世界开发者协作,开发自己的软件包
重要提示
- 这是一门全新的课程,请同学们多提宝贵意见,参与课程完善的过程。
- 这是一门进阶课,课程有一定难度,请同学们在课堂内外多花有效时间。
- 这是一门实践课,请同学们一定要在自己的电脑上成功运行课程中教授的内容。
- 这是一门 AI 课,请同学们在学习的过程中主动寻求 AI 工具的帮助。
- 这是一门项目课,请同学们结合自己的研究需求深入的挖掘项目内容。
环境搭建模块的项目内容包括:
- 电脑硬件和操作系统
- 可重复的数据分析环境
- 现代工具链
数据分析模块的项目内容包括:
- 分组数据统计分析和可视化
- 转录组学数据分析和可视化
- 微生物组数据分析及可视化
人工智能模块的项目内容包括:
- 调用通用大语言模型执行任务
- 机器学习算法及实现
- 手搓神经网络模型
- 利用拉曼光谱识别病原菌
- 计算机视觉辅助分析实验图片
开发协作模块的项目内容包括:
- 与全世界开发者协作
- 开发 R 包
下面,我们将逐一介绍这些项目的大概内容。
2.1 项目一:配置可重复的数据分析环境(2学时)
2.1.1 上手实操
在自己电脑上配置一个可重复的数据分析环境。
2.1.2 课后作业
- 确保电脑上安装了 R、Python 等需要用到的软件
- 请在雨课堂内完成分组(第二次上课时确认)
- 请与助教取得联系,建立学习小组
2.2 项目二:R 语言统计分析和可视化基础(2学时)
以 ISME J 的论文数据为例(Gao, Cao, Cai, et al. 2021),介绍分组数据统计分析和可视化的技巧。
2.2.1 论文简介
- 研究背景
- 科学问题
- 结果与分析
2.2.2 上手实操
ggplot2
软件包及图形语法- 统计分析的数学基础
- 数据集的介绍
ggpubr
软件包的应用
2.2.3 课后作业
- 阅读论文,并且查阅 GitHub 仓库,在自己电脑中复现论文中的分析结果
- 将分析结果整理成 PDF 文档,提交到我的文件收集中(使用坚果云收件箱二维码收作业)
2.3 项目三:转录组学数据分析和可视化(4学时)
以 ISME Communications 的论文数据为例(Gao, Cao, Ju, et al. 2021),介绍转录组学数据分析的技巧。
2.3.1 论文简介
- 研究背景
- 科学问题
- 转录组学分析的基本原理
2.3.2 上手实操
- 转录组学分析流程
- 数据预处理
- 数据标准化
- 差异表达分析
- 差异表达基因注释
- 差异表达基因可视化
- 差异表达基因富集分析
- Bioconductor 软件(
DESeq2
、ClusterProfiler
、enrichplot
)- Bioconductor 与 CRAN 的关系
- 如何安装 Bioconductor 软件包
- 基因功能数据库(KEGG、GO、CAZyme、ARG、COG)
2.3.3 课后作业
- 阅读论文,并且查阅 GitHub 仓库,在自己电脑中复现论文中的分析结果
- 将分析结果整理成 PDF 文档,提交到我的文件收集中(使用坚果云收件箱二维码收作业)
2.4 项目四:微生物组数据分析及可视化(4学时)
本项目基于 dada2 软件包提供的示例数据,展示如何使用 R 语言进行微生物组数据分析及可视化。
2.4.1 主要内容
- dada2 软件包介绍
- 微生物组数据分析流程
- 微生物组数据可视化
2.4.2 上手实操
- 安装 dada2 软件包
- 加载示例数据
2.4.3 课后作业
- 请将代码整理成 PDF 文档,提交到我的文件收集中(使用坚果云收件箱二维码收作业)
2.5 项目五:大模型的API调用(4学时)
本项目将展示如何利用大模型的API调用,实现文本生成、对话、翻译、代码生成等任务。
2.5.1 主要内容
- Huggingface
- OpenAI(ChatAnywhere)
- 阿里云百炼
2.5.2 上手实操
- 使用 R 调用 OpenAI API
- 使用 Python 调用 OpenAI API
- 使用 R 和 Python 调用 HuggingFace API
- 使用 R 和 Python 调用阿里云百炼 API
2.5.3 课后作业
- 申请阿里云百炼 API KEY,配置 Chatbox 桌面应用
- 使用 Chatbox 桌面应用,选择 DeepSeek 模型,与 AI 对话
2.6 项目六:手搓神经网络模型(4学时)
本项目将展示如何利用 PyTorch 从零开始构建一个神经网络模型,以解决手写字母识别问题。
2.6.1 主要内容
- 神经网络模型基础
- 手写字母识别的历史
- 评估模型的准确率
2.6.2 上手实操
- 配置一个可用的 Conda 环境
- 安装需要的软件 Pytorch 和 torchvision
- 下载 MNIST 数据集
- 从零搭建一个神经网络模型
- 评估模型的准确率
2.6.3 课后作业
- 将模型替换为其他模型,如 VGG19,并评估其针对于同一数据集预测时准确率。
2.7 项目七:利用拉曼光谱识别病原菌(4学时)
本项目以一篇 Nature Communications 上面发表的论文为例,展示神经网络模型如何应用于拉曼数据分析,从而实现基于拉曼光谱数据的病原菌识别(Ho et al. 2019)。
2.7.0.1 主要内容
- 拉曼光谱技术
- ResNet 及残差网络
- 以 NC 的病原菌检测论文数据为例
2.7.0.2 上手实操
- 数据预处理
- 数据标准化
- 数据可视化
- 拉曼光谱数据的分析
- 利用 ResNet 进行分类
2.7.1 课后作业
- 请将代码整理成 PDF 文档,提交到我的文件收集中(使用坚果云收件箱二维码收作业)
2.8 项目八:计算机视觉分析实验图片(4学时)
本项目以发表在 Plant Phenomics 杂志上的一篇论文为例(Serouart et al. 2022),讲述如何使用一种名为 SegVeg 的两阶段语义分割方法,将高分辨率 RGB 图像分割成背景、绿色植被和衰老植被三类。以用来评估植被的生长状态。
2.8.1 主要内容
- 使用 U-net 模型将图像分为植被和背景。
- 使用支持向量机(SVM)将植被像素进一步分为绿色和衰老植被。
2.8.2 上手实操
2.8.3 课后作业
2.9 项目九:机器学习算法及实现(4学时)
本项目以 Science 论文为例(Chang et al. 2023),展示如何利用机器学习算法识别细菌类型。
- 线性回归及其变种
- 决策树、随机森林
- 以熔解曲线数据建模为例
2.9.1 上手实操
2.9.2 课后作业
- 请将代码整理成 PDF 文档,提交到我的文件收集中(使用坚果云收件箱二维码收作业)
2.10 项目十:与全世界开发者协作(4学时)
本项目将展示如何使用 GitHub 进行版本控制,利用 GitHub Issue 与开发者沟通,利用 GitHub Pull Request 贡献代码,以及利用 GitHub Actions 实现自动化部署。
2.10.1 主要内容
- Git 介绍
- GitHub 介绍
- Git 与 GitHub 的关系
2.10.2 上手实操
- 安装 Git
- 配置 Git
- 创建本地仓库
- 添加文件到仓库
- 提交更改到仓库
- 创建远程仓库
- 推送本地仓库到远程仓库
- 克隆远程仓库到本地
- 使用 GitHub Issues
- 使用 GitHub Fork
- 使用 GitHub Pull Request
- 使用 GitHub Actions
2.10.3 课后作业
- 使用 Git 管理自己的代码,并提交到 GitHub 上;
- 在课程 GitHub 群组提交 GitHub Issue,完成交作业任务。
2.11 项目十一:开发 R 包(4学时)
本项目以 ggVennDiagram 软件包开发为例,展示如何使用工具进行 R 包开发。
- devtools
- CRAN/Bioconductor
本项目将展示如何使用现代工具进行学术写作、R包开发、AI辅助编程,以及项目实践与展示。
2.11.0.1 主要内容
- R包开发基础
- 包结构设计
- 函数文档编写
- 单元测试
- CRAN发布规范
2.11.0.2 上手实操
- 安装 RStudio
- 安装 Rtools
- 安装 devtools
- 使用 RStudio 进行 R 包开发
- 创建 R 包
- 添加函数
- 编写文档
- 单元测试
- 发布到 GitHub
- 从 GitHub 中安装 R 包
2.11.1 课后作业
- 写一个 R 包,并发布到 GitHub/Gitee 上