天然气数据管道工具
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排序管道,
- 工具
- 参考文件
- Reference genome and known SNP&INDELS
- HG19或
- HG38
- 床锉
- 请参见用于排序的捕获工具包的网站
- Reference genome and known SNP&INDELS
如何使用
为自己创建一个配置文件
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:创建一个目录并在其中输出。
配对输出:此选项将配对工具的输入和输出。
辅助输出占位符
次要后缀
副外景
二级转储目录
占位符
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