从NRC-LIMS网站下载和处理序列数据的软件

nrc-ngs-dl的Python项目详细描述


NRC LIMS数据下载程序

说明

nrc lims datadownloader是一个用python编写的软件。该软件探索nrc-lims网站,下载所有序列文件,并将所有序列的元数据保存在sqlite数据库中。

软件执行的任务列表:

  1. 抓取NRC-LIMS网站,获取所有已完成序列运行的列表以及与序列运行和序列文件相关的所有信息。
  2. 通过检查数据库中的每个序列运行,获取以前未下载或重新处理/修改的新运行。
  3. 下载每个新的/重新处理过的运行数据,然后解压文件以获得分离的fastq文件
  4. 将每个fastq文件重命名为sequencing run information页面中提交的样本名。
  5. 为每个fastq文件生成一个sha256代码,并对该文件进行gzip操作
  6. 将有关新下载的运行和文件的信息插入数据库

要求

  • 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 at date" >> $HOME/check_step
    cd /space/project/grdi/eco/groups/mbb/chz001/dataDownloader
    source venv/bin/activate
    lims_downloader -c config.ini
    echo "end at date" >> $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数据库

这个数据库中有三个表。程序运行时将更新表。

  1. 数据包:保存每个序列运行的所有信息 (运行名称,….)
  2. 数据文件:保存每个序列文件的所有信息, 包括从网页中删除的信息、校验和(SHA256)、文件的原始名称和新名称等。
  3. 程序操作:保存每次运行应用程序时的所有信息, 与失败、成功、抓取/尝试的url、时间戳、下载的序列运行类似。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
为什么按钮点击播放声音的方法不起作用   java如何在创建小于窗口的PGraphics对象时避免“抗锯齿效应”,然后将其放大到窗口大小?   作用域中的java Antlr check返回语句   java是否在swing中显示所有鼠标悬停事件?   编辑:JAVA(Swing):JAVA(Swing)中是否有任何功能可以像javafx中的webview一样保存Html页面   java GPS文本输入   如何使用Java SE生成多个jasper报告   swing Java ActionListener未拾取按钮   性能为什么java内置序列化比Gson差?   java JAXR使用相同路径创建多个类   java Spring MVC 3.1请求头字符编码问题[UTF8]   java从Hibernate处理的h2数据库的表中删除会损坏该表吗?   Java Mybatis多个更新语句   找不到java JUnitCore类   java扩展SpringWebFlow 2.3