从NRC-LIMS网站下载和处理序列数据的软件
nrc-ngs-dl的Python项目详细描述
NRC LIMS数据下载程序
说明
nrc lims datadownloader是一个用python编写的软件。该软件探索nrc-lims网站,下载所有序列文件,并将所有序列的元数据保存在sqlite数据库中。
软件执行的任务列表:
- 抓取NRC-LIMS网站,获取所有已完成序列运行的列表以及与序列运行和序列文件相关的所有信息。
- 通过检查数据库中的每个序列运行,获取以前未下载或重新处理/修改的新运行。
- 下载每个新的/重新处理过的运行数据,然后解压文件以获得分离的fastq文件
- 将每个fastq文件重命名为sequencing run information页面中提交的样本名。
- 为每个fastq文件生成一个sha256代码,并对该文件进行gzip操作
- 将有关新下载的运行和文件的信息插入数据库
要求
- python 2.7版
- virtualenv
- GNU制造
展开步骤
创建并启动虚拟环境
cd path/to/your/folder
virtualenv -p /path/to/python2.7 venv
source venv/bin/activate安装程序和所有依赖项
pip install nrc_ngs_dl
将示例配置文件config.ini.sample复制到config.ini并提供所需的设置
cp venv/bin/config.ini.sample config.ini
vim config.ini运行程序
cd path/to/your/folder
source venv/bin/activate
lims_downloader -c config.ini
设置HCron服务
通过打开带有以下消息的IT中心票证,获得访问hcron1.science.gc.ca的权限:
HPC Dorval - Supercomputing - DC000131
Please register my account chz001 to use hcron on:
hcron1.science.gc.ca设置无密码登录
https://portal.science.gc.ca/confluence/display/SCIDOCS/SSH+Login+without+a+Password
mkdir -p ~/.ssh
chmod -R 700 ~/.ssh
cd ~/.ssh
ssh-keygen -q -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_key为您的HCRON活动创建主页:
bash-4.1$ mkdir -p ~/.hcron/hcron1.science.gc.ca/events
创建HCron事件文件(以文件下载程序为例):
bash-4.1$ cd ~/.hcron/hcron1.science.gc.ca/events
bash-4.1$ hcron-event downloader将事件文件配置为每晚运行程序(以文件下载程序为例):
bash-4.1$ cat ~/.hcron/hcron1.science.gc.ca/events/downloader
as_user=
host=142.135.29.204
command=bash -l -c /space/project/grdi/eco/groups/mbb/chz001/dataDownloader/hcron_command.sh
notify_email=chunfang.zheng@canada.ca
notify_message=message from hcron
when_month=*
when_day=*
when_hour=2
when_minute=0
when_dow=*
template_name=
bash-4.1$命令文件(hcron_command.sh)
bash-4.1$ cat /space/project/grdi/eco/groups/mbb/chz001/dataDownloader/hcron_command.sh
#!/bin/bash
echo "start atdate
" >> $HOME/check_step
cd /space/project/grdi/eco/groups/mbb/chz001/dataDownloader
source venv/bin/activate
lims_downloader -c config.ini
echo "end atdate
" >> $HOME/check_step改善您的环境
from https://expl.info/display/HCRON/Getting+Your+Environment+Right
"The brute force way is to run a shell as a login shell, which will provide an environment almost equivalent to an interactive session"
command=bash -l -c "<commands here>"
note: from my test, the trick works for host=142.135.29.204, but not for host=gpsc-in.science.gc.ca连接到HCron服务器
bash-4.1$ ssh hcron1.science.gc.ca
加载HCron事件
chz001@hcron1: hcron-reload
sqlite数据库
这个数据库中有三个表。程序运行时将更新表。
- 数据包:保存每个序列运行的所有信息 (运行名称,….)
- 数据文件:保存每个序列文件的所有信息, 包括从网页中删除的信息、校验和(SHA256)、文件的原始名称和新名称等。
- 程序操作:保存每次运行应用程序时的所有信息, 与失败、成功、抓取/尝试的url、时间戳、下载的序列运行类似。