天然气数据管道工具

seq-pigeon的Python项目详细描述


鸽子

简介

用于管道化多个cli工具的输入和输出的工具。 鸽子只接受一个配置文件作为输入。运行管道所需的所有内容都在配置文件中指定。配置文件是根据python configparser指定的。

快速安装

Linux和Mac

sudo pip3 install --index-url https://test.pypi.org/simple/ pigeon

窗口

pip install --index-url https://test.pypi.org/simple/ pigeon

天然气资源

没有一个工具或数据文件是由鸽子补充,所以他们需要下载。 例如配置文件、exome排序管道,

如何使用

为自己创建一个配置文件

pigeon createconfig

为您的分析修改。(见下文。)

pigeon -c my_config.conf -d

如果一切看起来都很好,那就真的跑吧。

pigeon -c my_config.conf

配置文件

配置文件由三部分组成。

  • 一般
  • 管道
  • 单个工具块

一般

用于定义项目名称、输出目录、输入文件和资源文件(如参考基因组或目标文件)的区域。以下变量是运行所必需的。

必需:

  • 项目名称:项目的名称

  • output_dir:写入输出文件的位置

  • 输入文件:用于分析的输入文件,用空格分隔,成对的文件应相邻。例如

    input_files = A.txt B.txt C.txt

    或成对的

    input_files = A1.txt A2.txt B1.txt B2.txt C1.txt C2.txt

可选变量也可以在这里清除。基于您或工具的需求。稍后,可以使用${general:optional_variable}在配置文件中调用这些变量。

可选(示例):

reference_genome = /path/to/my/reference_genome.fa

bed_file = /path/to/my/target.bed

known_snp = /path/to/my/snp.vcf

my_database = /path/to/my/favorite.db

管道

这个区域应该包含到shell可以理解的工具的路径。以及工具的运行顺序。例如

pipeline = job1 job2 job3

A = path/to/A

B = path/to/B

C = path/to/C

工具块

块的名称应与pipeline中的名称相同。继续上面的例子;

[job1]

[job2]

[job3]

可在这些块中使用的参数如下:

运行参数

  • 工具:来自管道块的工具变量。例如

    tool = ${PIPELINE:A}

  • sub_tool:如果tool有类似“bwa mem”的子工具。例如

    sub_tool = mem

  • args:工具的参数

  • java:如果工具是一个jar文件,在它前面添加java-jar。

  • 传球:如果是真的,它就跑不了街区。但这个街区仍然是管道的一部分。此选项有助于恢复中断的管道。

输入参数
  • input_from:输出的块的名称就是这个作业的输入。输入的第一个作业应该是输入文件。

  • input_multi:可以是“paired”或“all”。paired选项将输入文件流分成两组。所有选项使用所有输入文件。

  • input_flag_repeat:如果工具需要每个输入的输入标志,此命令将在每个输入之前添加给定标志。

  • 次要的占位符

输出参数
  • 后缀:向输出文件名添加后缀

  • ext:输出的文件扩展名

  • dump_dir:创建一个目录并在其中输出。

  • 配对输出:此选项将配对工具的输入和输出。

  • 辅助输出占位符

  • 次要后缀

  • 副外景

  • 二级转储目录

占位符

这些是可以在args中使用的开玩笑的词。

  • 输入占位符

  • 辅助输入占位符

  • 输出占位符

  • 辅助输出占位符

示例配置

[[GENERAL]]
project_name = my_project
output_dir = /path/to/output_directory
input_files = A.txt B.txt C.txt
my_db = /path/to/my.db

[[PIPELINE]]
pipeline = job1 job2 job3
A = /path/to/A
B = /path/to/B
C = /path/to/C

[job1]
tool = A
input_from = input_files
args = -i input_placeholder -o output_placeholder
suffix = job1_A
ext = txt

[job2]
tool = B
input_from = job1
args = -i input_placeholder -o output_placeholder
suffix = job2_B
ext = txt

[job3]
tool = C
input_from = job2
args = -i input_placeholder -o output_placeholder
suffix = job3_C
ext = txt

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

推荐PyPI第三方库


热门话题
编译器构造为什么在Java中允许初始化对Null的引用?   java手动调用javax的actionPerformed。摆动计时器   使用git分支的java Maven版本控制   Java8句子流   java JPA OneToOne和OneToMany实体实例化/创建   java如何将值添加到列表<Map<String,Object>>?   java如何使用ComboBox在一个框架内更改JPanel。getSelectedIndex()   java在比较XML和xmlunit时忽略文本差异   java无法从其他pc连接到本地主机   Java中分配对象id的优雅方式   Java中静态变量的使用   java试图从Neteller获取OAuth访问令牌时产生错误:“服务器返回HTTP响应代码:401表示URL”   Java:基元类型是否会影响性能?   java可以让hasNext()不区分大小写吗?   基于AutoCompleteTextView建议属性或AutoCompleteTextView值的java Android搜索   java流文件到firefox浏览器有时无法打开应用程序对话框   在没有ArrayList的Java中返回数组中的搜索结果   复制java。木卫一。IOException:数据错误(CRC)   java为什么我在尝试删除Facebook测试用户时会出现“方法未实现”错误   java如何使用JNA调用SetProcessReliationPolicy