基因组学的nextflow流水线汇编程序。选择你的模块。把他们集合起来。运行管道。

flowcraft的Python项目详细描述


flowcraft:whale2::包:

nextflow versionpython version生成状态codecovCodacy徽章documentation statuspypi version水蟒服务器徽章

nextflow_logonextflow基因组学流水线汇编程序。 选择你的模块。把他们集合起来。运行管道。

(以前称为汇编流)

前提

建立管道

如果建立自己的基因组学管道简单到:

flowcraft.py build -t "trimmomatic fastqc skesa pilon" -o my_pipeline.nf

看起来很简单对吧?如果我们可以利用 NextFlow和Docker的奇异性。 不需要安装任何管道依赖项的容器?

运行管道
nextflow run my_pipeline.nf --fastq path/to/fastq

N E X T F L O W  ~  version 0.30.1
Launching `my_pipeline.nf` [admiring_lamarck] - revision: 82cc9cd2ed

============================================================
                M Y   P I P E L I N E
============================================================
Built using flowcraft v1.2.1

 Input FastQ                 : 2
 Input samples               : 1
 Reports are found in        : ./reports
 Results are found in        : ./results
 Profile                     : standard

Starting pipeline at Tue Jun 12 19:38:26 WEST 2018

[warm up] executor > local
[7c/eb5f2f] Submitted process > integrity_coverage_1_1 (02AR0553)
(...)
[31/7d90a1] Submitted process > compile_pilon_report_1_6

Completed at: Tue Jun 12 19:58:32 WEST 2018
Duration    : 20m 6s
Success     : true
Exit status : 0

恭喜你!你刚刚建立并执行了自己的管道 只有两个命令!塔达:

安装

flowcraft是一个bioconda包,它已经带来了 下一个流量:

conda install flowcraft

集装箱发动机

用flowcraft建造的管道至少需要一个容器 要安装的引擎,位于dockersingularityshifter之间。 如果你已经有这些了停滞不前,你可以走了。 如果不是,我们建议安装singularity,尽管它应该安装 所有计算节点都具有根权限和可访问性。

如何使用

完整的flowcraft用户指南可以在阅读docs.org。 有关快速而不干净的演示,请参见下文。

快速指南

修建管道

Flowcraft提供了许多可以使用的组件来构建 拥有管道。遵循一些基本规则,例如一个进程的输出类型 必须与下一个进程的输入类型匹配,则完成管道的装配 使用build模式和-t选项:

flowcraft build -t "trimmomatic spades abricate" -o my_pipeline.nf -n "assembly pipe"

此命令将生成运行 管道自动执行,但主管道可执行 文件将是my_pipeline.nf。此文件将包含下一个流管道 对于基因组组装,从三聚体开始,到抗微生物结束 使用缩写进行基因注释

等待…软件参数呢?

管道中的每个组件都有自己的一组参数,可以是 在执行管道之前或执行管道时修改。这些参数是 在每个过程的文档中描述,您可以检查选项 使用帮助选项:

$ nextflow run my_pipeline.nf --help
N E X T F L O W  ~  version 0.30.1
Launching `my_pipeline.nf` [prickly_picasso] - revision: 2e1a226e6d

============================================================
                F L O W C R A F T
============================================================
Built using flowcraft v1.2.1


Usage: 
    nextflow run my_pipeline.nf

       --fastq                     Path expression to paired-end fastq files. (default: fastq/*_{1,2}.*) (default: 'fastq/*_{1,2}.*')

       Component 'INTEGRITY_COVERAGE_1_1'
       ----------------------------------
       --genomeSize_1_1            Genome size estimate for the samples in Mb. It is used to estimate the coverage and other assembly parameters andchecks (default: 1)
       --minCoverage_1_1           Minimum coverage for a sample to proceed. By default it's setto 0 to allow any coverage (default: 0)

       Component 'TRIMMOMATIC_1_2'
       ---------------------------
       --adapters_1_2              Path to adapters files, if any. (default: 'None')
       --trimSlidingWindow_1_2     Perform sliding window trimming, cutting once the average quality within the window falls below a threshold (default: '5:20')
       --trimLeading_1_2           Cut bases off the start of a read, if below a threshold quality (default: 3)
       --trimTrailing_1_2          Cut bases of the end of a read, if below a threshold quality (default: 3)
       --trimMinLength_1_2         Drop the read if it is below a specified length  (default: 55)

       Component 'FASTQC_1_3'
       ----------------------
       --adapters_1_3              Path to adapters files, if any. (default: 'None')

       Component 'ASSEMBLY_MAPPING_1_5'
       --------------------------------
       --minAssemblyCoverage_1_5   In auto, the default minimum coverage for each assembled contig is 1/3 of the assembly mean coverage or 10x, if the mean coverage is below 10x (default: 'auto')
       --AMaxContigs_1_5           A warning is issued if the number of contigs is overthis threshold. (default: 100)
       --genomeSize_1_5            Genome size estimate for the samples. It is used to check the ratio of contig number per genome MB (default: 2.1)

此帮助消息是根据您构建的管道动态生成的。 由于此管道以接收fastq文件作为输入的trimmomatic开头, --fastq是用于提供成对结束fastq文件的默认参数。

运行管道

现在我们已经建立了下一个流管道,我们准备通过 提供输入数据。默认情况下,FlowCraft管道将在本地运行并使用 奇点运行每个组件的容器。这可以 以多种方式改变,但为了方便起见,flowcraft已经定义了 执行器容器引擎的大多数配置的配置文件。

使用奇点在本地运行管道可以使用:

# Pattern for paired-end fastq is '<sample>_1.fastq.gz <sample>_2.fastq.gz'
nextflow run my_pipeline --fastq "path/to/fastq/*_{1,2}.*"

如果您想在一个集群中运行一个带有slurm和singularity的管道,只需使用 相应的配置文件:

nextflow run my_pipeline --fastq "path/to/fastq/*_{1,2}.*" -profile slurm_sing

在管道执行期间,每个组件的结果和报告 分别连续保存到resultsreports目录中。

检查管道进度

从版本1.2.0开始,可以检查下一个流管道的进度 使用flowcraft inspect模式。要检查终端的进度,只需 类型:

flowcraft inspect

在运行管道的目录上。或者,您可以查看进度 在Flowcraft的Web服务中,使用广播选项:

flowcraft inspect -m broadcast
< imgsrc="https://warehouse-camo.cmh1.psfhosted.org/c89C4DE1a7EF059F8B5ED3734D5FEE28AD30B533B/6874747470733A3A3222222F67677467676767746262622E636F6D2F6173656D676767676767676767676767676762626262676767676767676762626262676767676767626262676767676767626262676767676262626272727272727262627272727272726262626262727272727272726262626262627272727272727272726262626262626262626262635F73686F72745F64656D6F2E676966" />

为什么不直接编写下一个流管道呢?

在许多情况下,构建一个静态nextflow管道就足以实现我们的目标。 然而,当我们建立自己的管道时,我们常常感到需要增加活力 尤其是考虑到新工具的出现速度 而现有的改变。我们的生物学目标也会随着时间的推移而改变, 可能需要不同的管道来回答不同的问题。飞艇制造 这非常容易,因为有一套预先制作好并准备好使用的组件可以 自由组装。

例如,更改程序集softwar在基因组组装过程中 简单到:

flowcraft.py build -t "trimmomatic fastqc skesa pilon" -o my_pipeline.nf
0

example1

如果你对某种基因组注释感兴趣,只需添加 最后的组件,使用fork语法:

flowcraft.py build -t "trimmomatic fastqc skesa pilon" -o my_pipeline.nf
1

示例22

example3

由于nextflow能够很好地处理大型数据集的并行性,因此简单的管道 两个组件中的一个组件也可用于构建:

flowcraft.py build -t "trimmomatic fastqc skesa pilon" -o my_pipeline.nf
3

随着现有组件数量的增加,您可以自由地构建管道。

路线图

您可以在我们的《路线图指南》中看到我们接下来的计划。

开发人员指南

添加新组件

是否有要包含的缺少组件?我们会喜欢的 扩大!你可以在我们的 问题跟踪程序

如果你想成为团队的一员,你也可以贡献代码。各组成部分 在FlowCraft中可以独立添加而不必担心 代码库的其余部分。你只需要掌握一些python的知识 下一个。查看开发人员文档以了解操作指南

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

推荐PyPI第三方库


热门话题
java GWT对话框从不显示帮助   java在简单的MapReduce作业中带来了极大的开销   javacom。mysql。jdbc。例外情况。jdbc4。MySQLIntegrityConstraintViolationException:列不能为null/onetoone映射   如何通过TCP/IP与Java和Labview进行通信,并发送浮点数据缓冲区?   java Apache camel与spring事件基本示例   java如何使我的秒表应用程序在完全关闭后仍能运行?   java Nutch爬网错误输入路径不存在   java是Mapreduce中按值传递还是按引用传递的键?   正则表达式替换java中的特定字符   Java DOM XML解析   java Eclipse未显示服务器的项目   使用Arraylist进行快速排序的排序Java实现疑难解答   java Split text包含字符串列表中的数字   检查Java中的两个lambda是否执行相同的代码?   java为什么dispatchTouchEvent避免在屏幕上单击?