计算生物学:前沿技术与计算实践
网络信息中心 张仪方 王一超
计算融合课程
课程简介:
由网络信息中心开设的计算融合课程《计算生物学:前沿技术与计算实践》主要介绍数据密集型生物信息学应用的背景知识以及AI计算、高性能计算、高通量测序等前沿技术在生物信息分析中的实践应用。课程内容包括教授学生选择合适的生物信息学计算工具和工作流程,以及如何使用高性能计算平台来加快和最大化生物信息学分析的效率。具体而言,课程将教授学生如何从生信数据库下载数据、如何有效使用可用计算节点、如何优化作业以达到尽可能高效的在相应计算节点上运行、如何使应用程序适应不同计算节点上的可用资源,以及如何合理高效的使用交我算平台计算资源完成生信分析。本课程采用理论授课和上机实践相结合的授课方式,旨在让学生掌握最前沿的计算技术,又能让学生将计算应用于生物信息学领域解决实际问题。
课程性质:
公共选修课
面向对象:
全校本科生
学分学时:
2学分,32学时
班级名称:
AI1108-01
上课时间:
1~16周,每周二 16:00~17:40(第9节-第10节)
上课地点:
交大闵行校区,东下院308
## 教学大纲
| 时间 |主题 | 课件 |
| :-----------------: | -------- | :--------: |
| 第一周
9月12日 |
课程介绍
高性能计算导论 | [lecture1](https://jbox.sjtu.edu.cn/l/x16AAW) |
| 第二周
9月19日 |
高性能计算集群架构 | [lecture2.1](https://jbox.sjtu.edu.cn/l/p1xW6s)
[lecture2.2](https://jbox.sjtu.edu.cn/l/p1xMLd) |
| 第三周
9月26日 |
处理器架构和编译器 | [lecture3.1](https://jbox.sjtu.edu.cn/l/M1pRdP)
[lecture3.2](https://jbox.sjtu.edu.cn/l/91BZP5) |
| 第四周
中秋/国庆 |
\ | \ |
| 第五周
10月10日 |
生物信息学导论
生信数据库检索 | [lecture4](https://jbox.sjtu.edu.cn/l/Q1eH3U) |
| 第六周
10月17日 |
Linux入门及实践 | lecture5 |
| 第七周
10月24日 |
容器技术入门及conda使用 | lecture6 |
| 第八周
10月31日 |
序列比对 | lecture7 |
| 第九周
11月5日 |
蛋白质结构预测与分析 | lecture8 |
| 第十周
11月12日 |
高通量测序与基因组可视化 | lecture9 |
| 第十一周
11月19日 |
常见组学及转录组数据预处理 | lecture10 |
| 第十二周
11月26日 |
转录组分析实战1 | lecture11 |
| 第十三周
12月7日 |
转录组分析实战2 | lecture12 |
| 第十四周
12月14日 |
前沿组学介绍 | lecture13 |
| 第十五周
12月21日 |
人工智能与计算生物 | lecture14 |
| 第十六周
12月28日 |
ChatGPT 与计算生物 | lecture15 |
## 附:上海交通大学2023-2024学年校历
![](https://notes.sjtu.edu.cn/uploads/upload_623e9358b07a6032f0572bf0199d92e2.png)
# 课程实验
## 计算账号
上海交通大学校级计算平台面向全校师生提供科研与教学支持。
教学账号 stu 限课程实验使用,每人可使用 3 个 CPU 节点,共 120 核 CPU,作业时长最多 7 天,若需延长计算时间,请将作业号发送至 hpc@sjtu.edu.cn
## 登录集群
**方法一:**
浏览器中访问超算 Studio 可视化平台 https://studio.hpc.sjtu.edu.cn/
顶上 Shell -> CPU Cluster Shell Access
![](https://notes.sjtu.edu.cn/uploads/upload_91cbc65fa4f92509c2f599f17ca34eeb.png)
**方法二:**
使用 SSH 连接(macOS 或 Linux 上使用终端,Windows 上安装 SSH 客户端),登录超算:
```shell=
ssh stuXXX@login.hpc.sjtu.edu.cn
```
登录方法具体请见 HPC 文档:https://docs.hpc.sjtu.edu.cn/login/
## 作业提交
推荐使用 sbatch 方式提交作业脚本进行计算
作业脚本示例(假设作业脚本名为 `test.slurm`):
```shell=
#!/bin/bash
#SBATCH --job-name=bwa #作业名称
#SBATCH --partition=cpu #申请队列;可用队列信息可通过sinfo查看
#SBATCH -N 1 #申请节点数;请根据作业需求申请资源
#SBATCH --ntasks-per-node=40 #每节点任务数
#SBATCH --output=%j.out #设定存储标准输出信息的文件名
#SBATCH --error=%j.err #设定存储出错信息的文件名
module purge
module load bwa/0.7.17-intel-19.0.4
```
作业提交:
```shell=
sbatch test.slurm
```
作业提交后会在屏幕上输出job ID,可根据该ID对指定作业进行控制。
查看正在排队或运行的作业:
```shell=
squeue
```
取消作业,若 job ID 为 `12345`:
```shell=
scancel 12345
```
查看作业,若 job ID 为 `12345`:
```shell=
sacct -j 12345
```
查看已完成的作业效率,若 job ID 为 `12345`:
```shell=
seff 12345
```
作业相关命令文档:https://docs.hpc.sjtu.edu.cn/job/slurm.html
## 数据传输
轻量数据上传和下载,可以使用 HPC Studio 可视化平台的文件管理功能
Files -> Home Directory
![](https://notes.sjtu.edu.cn/uploads/upload_676ca09e260f4b5689fefc6a2898107c.png)
然后可以上传下载文件
![](https://notes.sjtu.edu.cn/uploads/upload_015982a53c4320b69267e6c81269eaaa.PNG)
其它数据传输说明,请见[超算使用文档](https://docs.hpc.sjtu.edu.cn/transport/index.html)
## 注意事项
* 教学账号仅限教学使用;一人一账号,请注意保管
* 使用中遇到问题,欢迎邮件联系我们: hpc@sjtu.edu.cn
## 参考资料
* 超算使用文档: https://docs.hpc.sjtu.edu.cn/
* Matlab 使用:https://docs.hpc.sjtu.edu.cn/studio/matlab.html
* π 实时利用率:https://account.hpc.sjtu.edu.cn/top
* HPC 网站:https://hpc.sjtu.edu.cn
* 公众号:交我算
* 视频号:交我算
* 简短版使用手册(Cheat Sheet):https://hpc.sjtu.edu.cn/Item/docs/Pi_GetStarted.pdf