2  课程项目简介

本课程以项目驱动的形开展教学,每次课程围绕一个独立但相互关联的项目展开。所有项目可分为 4 个模块:

Important

重要提示

  • 这是一门全新的课程,请同学们多提宝贵意见,参与课程完善的过程。
  • 这是一门进阶课,课程有一定难度,请同学们在课堂内外多花有效时间
  • 这是一门实践课,请同学们一定要在自己的电脑上成功运行课程中教授的内容。
  • 这是一门 AI 课,请同学们在学习的过程中主动寻求 AI 工具的帮助
  • 这是一门项目课,请同学们结合自己的研究需求深入的挖掘项目内容。

环境搭建模块的项目内容包括:

  1. 电脑硬件和操作系统
  2. 可重复的数据分析环境
  3. 现代工具链

数据分析模块的项目内容包括:

  1. 分组数据统计分析和可视化
  2. 转录组学数据分析和可视化
  3. 微生物组数据分析及可视化

人工智能模块的项目内容包括:

  1. 调用通用大语言模型执行任务
  2. 机器学习算法及实现
  3. 手搓神经网络模型
  4. 利用拉曼光谱识别病原菌
  5. 计算机视觉辅助分析实验图片

开发协作模块的项目内容包括:

  1. 与全世界开发者协作
  2. 开发 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 上手实操

  1. 转录组学分析流程
    • 数据预处理
    • 数据标准化
    • 差异表达分析
    • 差异表达基因注释
    • 差异表达基因可视化
    • 差异表达基因富集分析
  2. Bioconductor 软件(DESeq2ClusterProfilerenrichplot
    1. Bioconductor 与 CRAN 的关系
    2. 如何安装 Bioconductor 软件包
  3. 基因功能数据库(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 主要内容

  1. 神经网络模型基础
  2. 手写字母识别的历史
  3. 评估模型的准确率

2.6.2 上手实操

  1. 配置一个可用的 Conda 环境
  2. 安装需要的软件 Pytorch 和 torchvision
  3. 下载 MNIST 数据集
  4. 从零搭建一个神经网络模型
  5. 评估模型的准确率

2.6.3 课后作业

  • 将模型替换为其他模型,如 VGG19,并评估其针对于同一数据集预测时准确率。

2.7 项目七:利用拉曼光谱识别病原菌(4学时)

本项目以一篇 Nature Communications 上面发表的论文为例,展示神经网络模型如何应用于拉曼数据分析,从而实现基于拉曼光谱数据的病原菌识别(Ho et al. 2019)

2.7.0.1 主要内容

  1. 拉曼光谱技术
  2. ResNet 及残差网络
  3. 以 NC 的病原菌检测论文数据为例

2.7.0.2 上手实操

  1. 数据预处理
  2. 数据标准化
  3. 数据可视化
  4. 拉曼光谱数据的分析
  5. 利用 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),展示如何利用机器学习算法识别细菌类型。

  1. 线性回归及其变种
  2. 决策树、随机森林
  3. 以熔解曲线数据建模为例

2.9.1 上手实操

2.9.2 课后作业

  • 请将代码整理成 PDF 文档,提交到我的文件收集中(使用坚果云收件箱二维码收作业)

2.10 项目十:与全世界开发者协作(4学时)

本项目将展示如何使用 GitHub 进行版本控制,利用 GitHub Issue 与开发者沟通,利用 GitHub Pull Request 贡献代码,以及利用 GitHub Actions 实现自动化部署。

2.10.1 主要内容

  1. Git 介绍
  2. GitHub 介绍
  3. Git 与 GitHub 的关系

2.10.2 上手实操

  1. 安装 Git
  2. 配置 Git
  3. 创建本地仓库
  4. 添加文件到仓库
  5. 提交更改到仓库
  6. 创建远程仓库
  7. 推送本地仓库到远程仓库
  8. 克隆远程仓库到本地
  9. 使用 GitHub Issues
  10. 使用 GitHub Fork
  11. 使用 GitHub Pull Request
  12. 使用 GitHub Actions

2.10.3 课后作业

  • 使用 Git 管理自己的代码,并提交到 GitHub 上;
  • 在课程 GitHub 群组提交 GitHub Issue,完成交作业任务。

2.11 项目十一:开发 R 包(4学时)

本项目以 ggVennDiagram 软件包开发为例,展示如何使用工具进行 R 包开发。

  1. devtools
  2. 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 上