用CWL Airflow替换Bio衣柜的后端

biowardrobe-airflow-analysis的Python项目详细描述


生物衣柜后端(气流+CWL)

关于

python包替换BioWardrobe'spython/cron脚本。它使用 Apache-Airflow 使用CWL v1.0的功能。

安装

  1. 将Bio衣柜MySQL连接添加到气流连接中
    select*fromairflow.connection;insertintoairflow.connectionvalues(NULL,'biowardrobe','mysql','localhost','ems','wardrobe','',null,'{"cursor":"dictcursor"}',0,0);
  2. 安装
    sudo pip3 install .
    

要求

  1. 确保您的系统满足以下条件:

    • ubuntu 16.04.3版
      • Python3.6
        sudo add-apt-repository ppa:jonathonf/python-3.6
        sudo apt-get update
        sudo apt-get install python3.6
        
      • 第三点
        curl https://bootstrap.pypa.io/get-pip.py | sudo python3.6
        pip3 install --upgrade pip3
        
      • 设置工具
        pip3 install setuptools
        
      • docker
        sudo apt-get update
        sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
        curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
        sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
        sudo apt-get update
        sudo apt-get install docker-ce
        sudo groupadd docker
        sudo usermod -aG docker $USER
        注销并重新登录,以便重新评估您的组成员资格。
      • libmysqlclient开发
        sudo apt-get install libmysqlclient-dev
        
      • 节点
        sudo apt-get install nodejs
        
  2. 获取最新版本的cwl-airflow-parser。 如果Apache-Airflow 或者cwltool未安装, 安装将使用推荐的版本自动完成。设置AIRFLOW_HOME环境 气流配置目录的默认变量是~/airflow/

    git clone https://github.com/datirium/cwl-airflow-parser.git
    cd cwl-airflow-parser
    sudo pip3 install .
    
  3. 如果需要,添加extra airflow packages 例如,使用mysql支持pip3 install apache-airflow[mysql],扩展气流功能。

运行

  1. 要创建Bio衣柜的DAG,请在Airflow的DAG目录中运行biowardrobe-init

    cd ~/airflow/dags
    ./biowardrobe-init 
    
  2. 运行气流计划程序:

    airflow scheduler
    
  3. airflow trigger_dag与输入参数--conf "JSON"一起使用,其中json既可以是作业定义,也可以是biodoapper uid 以及显式指定的cwl描述符dag_id

    airflow trigger_dag --conf "{\"job\":$(cat ./hg19.job)}""bowtie-index"

    其中hg19.job是:

    {"fasta_input_file":{"class":"File","location":"file:///wardrobe/indices/bowtie/hg19/chrM.fa","format":"http://edamontology.org/format_1929","size":16909,"basename":"chrM.fa","nameroot":"chrM","nameext":".fa"},"output_folder":"/wardrobe/indices/bowtie/hg19/","threads":6,"genome":"hg19"}
  4. 所有输出都将从临时目录移到output_文件夹中参数 工作的责任。

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

推荐PyPI第三方库


热门话题
将PHP生成的公钥转换为Java公钥   java在服务中启动可取消的后台任务   java我能做这个通用的事情吗?   java Axis 1.4.1版在IBM上的部署为8.5版   java如何进行同步web服务调用   java从Spring控制器中的多个select获取值   java如何在JFrame中声明类(包含sapache Poi)的对象   jaxb反序列化XML以在Java中动态创建类   java如何为部署在Google云上的应用程序实现Google OAuth?   java我想了解libgdx的资产管理器   Java整数溢出   Windows任务管理器javaw。exe内存与Java任务控制   java如何让Android等待?