进行该任务需要基本掌握 Linux 操作@JianGuoZhou3

问题反馈和交流请联系诗翔 @ShixiangWang

后续跟进实际问题进行补充 QA 和视频交流。

1. 准备

  1. 获取对应服务器的 CircRNA 账号:目前建国有 2 台服务器已经安装和配置过 circrna-pipeline 流程,使用者根据对应数据存储的服务器,获取相应的账号并利用 SSH 登陆,切换到 ~/circrna-pipeline 目录。推荐使用 VS Code,利用 Remote SSH(插件)直接连接到对应的文件目录,后续操作会更简单。成功后会看到左侧展示出 circrna-pipeline 的文件目录。

image

建议配置 SSH config 文件,参考格式(网上自行搜索):

Host circrna-zhou
  HostName biotrainee.cn
  User circrna
  Port xxx

并可以考虑配置 SSH 免密登陆,避免每一次都要输入密码。很简单,比如针对上述的主机,在本地运行 ssh-copy-id circrna-zhou 即可(解决不了自行搜索或反馈)。

  1. 拉取下最新的代码,先确保代码目录已经是最新的版本,以避免以后的代码冲突问题。

image

  1. 先确定原始数据 fastq 文件所在的目录,检查并记录路径,例如:/home/zhou/t12a/HRA000524/raw
$ ls /home/zhou/t12a/HRA000524/raw/*.gz
/home/zhou/t12a/HRA000524/raw/HRR179719_f1.fastq.gz  /home/zhou/t12a/HRA000524/raw/HRR179734_f1.fastq.gz  /home/zhou/t12a/HRA000524/raw/HRR179749_f1.fastq.gz  /home/zhou/t12a/HRA000524/raw/HRR179764_f1.fastq.gz
/home/zhou/t12a/HRA000524/raw/HRR179719_r2.fastq.gz  /home/zhou/t12a/HRA000524/raw/HRR179734_r2.fastq.gz  /home/zhou/t12a/HRA000524/raw/HRR179749_r2.fastq.gz  /home/zhou/t12a/HRA000524/raw/HRR179764_r2.fastq.gz
  1. 为要处理的队列创建一个新的目录。强烈推荐在/home/circrna/circrna-pipeline/run_batch_from_qc下创建一个与队列 ID 一致的目录名,例如 /home/circrna/circrna-pipeline/run_batch_from_qc/HRA000524。这里无论用鼠标或者 mkdir 都是一样的。

image

2. 执行计算

执行计算需要分为 3 个独立的步骤,需要按顺序进行,分别对应一个 Shell 脚本。初次接触的人可以大致看下左侧栏已经处理过的队列的结构逻辑和代码。

基本都是下面这个样子,3 个 Shell 脚本以及 3 个对应的日志文件(运行 Shell 脚本会自动生成),以及一个 txt 文件,它是 QC 脚本运行后会产生的队列样本 ID 列表。

image

2.1. 创建脚本文件

创建上面提到的 3 个脚本文件,如果在 zhou 服务器上做计算,以 HRA000524 队列目录作为参考;如果是在 zhou2 服务器上做计算,以 EGA_OAK 队列目录作参考。

不同参考的原因是不同服务器的运算和结果存储路径不同,尽量减少错误的路径设置。

  1. 简单一点,就是先复制粘贴(ctrl c + ctrl v)参考目录:

image

  1. 然后修改为新的队列名,将目录下的 log 文件和 txt 文件删除,并根据队列名修改脚本名。完成后目录如下,这里我用 ABC 作为新的要处理的队列作演示。

image

2.2. QC

  1. 打开 ABC_qc.sh 文件进行编辑,修改 indir 路径。

image

  1. 替换参考队列名为处理队列名。

image

替换后涉及的地方都会改变。

image

  1. 在脚本所在目录运行该脚本。

可以以右键或 cd 的方式进入脚本目录。

image

运行脚本

image

脚本会放到后台运行(可以关闭终端),日志文件也会生成。可以点击或者通过命令查看(命令会更新更快一些)。

image

  1. 提交和推送(同步)代码/日志到远程仓库。(这个步骤可以根据自己的情况进行操作,不需要每次日志更新都操作一遍)

image

QC 一开始进行就会生成上述的样本 ID txt 文件,这个也可以检查下,如果 ID 有问题,那么后续肯定会出问题。

2.3 检测

针对 ABC_call.sh 脚本重复上面 2.2 的 2-4 步骤。

nthreads注意设定为 8 的倍数(具体值根据服务器当前和未来一段时间的空闲资源估计下),流程写死了单样本处理用 8cpu,设置为几倍,就会执行几倍的并行计算调度。

2.4 聚合结果

针对 ABC_aggr.sh 脚本重复上面 2.2 的 2-4 步骤。

2.5 检查结果

最后的结果会在 /home/zhou/raid/IO_RNA/circRNA/ABC 目录下面(zhou2 服务器是 /home/data/IO_RNA/circRNA/ABC)。联系诗翔或有经验的人导出以及载入 TCCIA 数据库。

3. QA

Kill 任务

有时任务存在错误配置、出错,需要 Kill 的情况,这种情况可以调用已准备的 bkill.sh 脚本(在流程代码库的主目录下面)

/path/to/bkill.sh 队列目录ID

建议以上面的方式情况计算任务的清除。因为我们的运行目录包含队列ID,所以通过队列目录ID可以完全匹配到所有相关的计算任务。