Live data from Hacker News

Nextflow: Data-Driven Computational Pipelines

nextflow.io

1–10 of 42 posts

Re: Nextflow: Data-Driven Computational Pipelines

#2
Another day, another workflow DSL.

  * looks like yaml
  * has curly braces to look programmery
  * whitespace might be meaningful
  * has pipes like a bash script
https://www.commonwl.org/

https://github.com/common-workflow-language/common-workflow-...

mea culpa: The above was based on a first look at something titled "A DSL for parallel and and scalable computational pipelines"a as opposed to "Java workflow manager with Groovy language scripting." The presented screenshot still looks to me like an unholy union of yaml, js, py and sh. If that sounds groovy to you; have fun.

Re: Nextflow: Data-Driven Computational Pipelines

#3
post #2

Another day, another workflow DSL. * looks like yaml * has curly braces to look programmery * whitespace might be meaningful * has pipes like a bash script https://www.commonwl.org/ https://github.com/common-workflow-language/common-workflow-... mea culpa: The above was based on a first look at something titled "A DSL for parallel and and scalable computational pipelines"a as opposed to "Java workflow manager with Gr…

If you refer to nextflow,the syntax is basically groovy

Re: Nextflow: Data-Driven Computational Pipelines

#4
post #3
post #2

Another day, another workflow DSL. * looks like yaml * has curly braces to look programmery * whitespace might be meaningful * has pipes like a bash script https://www.commonwl.org/ https://github.com/common-workflow-language/common-workflow-... mea culpa: The above was based on a first look at something titled "A DSL for parallel and and scalable computational pipelines"a as opposed to "Java workflow manager with Gr…

If you refer to nextflow,the syntax is basically groovy

Indeed, it's a fully functional scripting language that is an extension of groovy. So "looks programmery" is more than a little reductive.

Edit: functional as in, it's not half-hearted, not functional as in functional programming.

Re: Nextflow: Data-Driven Computational Pipelines

#5
post #2

Another day, another workflow DSL. * looks like yaml * has curly braces to look programmery * whitespace might be meaningful * has pipes like a bash script https://www.commonwl.org/ https://github.com/common-workflow-language/common-workflow-... mea culpa: The above was based on a first look at something titled "A DSL for parallel and and scalable computational pipelines"a as opposed to "Java workflow manager with Gr…

In all fairness, they predate the competition (2013): https://github.com/nextflow-io/nextflow/releases?page=25

Re: Nextflow: Data-Driven Computational Pipelines

#6
post #3
post #2

Another day, another workflow DSL. * looks like yaml * has curly braces to look programmery * whitespace might be meaningful * has pipes like a bash script https://www.commonwl.org/ https://github.com/common-workflow-language/common-workflow-... mea culpa: The above was based on a first look at something titled "A DSL for parallel and and scalable computational pipelines"a as opposed to "Java workflow manager with Gr…

If you refer to nextflow,the syntax is basically groovy

Interesting. From the docs:

The Nextflow scripting language is an extension of the Groovy programming language. Groovy is a powerful programming language for the Java virtual machine. The Nextflow syntax has been specialized to ease the writing of computational pipelines in a declarative manner.

https://www.nextflow.io/docs/latest/script.html?highlight=gr...

Re: Nextflow: Data-Driven Computational Pipelines

#7
post #5
post #2

Another day, another workflow DSL. * looks like yaml * has curly braces to look programmery * whitespace might be meaningful * has pipes like a bash script https://www.commonwl.org/ https://github.com/common-workflow-language/common-workflow-... mea culpa: The above was based on a first look at something titled "A DSL for parallel and and scalable computational pipelines"a as opposed to "Java workflow manager with Gr…

In all fairness, they predate the competition (2013): https://github.com/nextflow-io/nextflow/releases?page=25

As GP referenced CWL, while NF had appeared first in terms of the bioinformatics world Nextflow, CWL, Snakelike, and WDL all erupted close enough to each other to be equal-ish. The people were aware of each other but they were all so nascent that it wasn't clear if it was worth joining in or not. At the end of the day these all came from groups trying to scratch particular itches, and not everyone agreed on the right way to scratch.

However all of them were rejections of prior models as well as the workflow solutions prominent in the business space.

Re: Nextflow: Data-Driven Computational Pipelines

#8
I develop bioinformatics pipelines for a living and am very opinionated on the topic.

Having enough experience with snakemake as well as nextflow in production for many years now, I would always opt out for snakemake for anything but extremely large DAgs (which is quite rare for for bioinformatics pipelines). The fact that nextflow still doesn't allow deleting temporary files during execution or re-rerunning the workflow from a set of intermediary files is an insane deal breaker (not mentioning other strange things like an arbitrary limit of 1000 parallel jobs etc.). AWS runners that once were nextflow's selling point is not an advantage anymore give Amazon Genomics Cli.

Subjectively, writing pipelines that incorporate conditional logic is much nicer in python+snakemake than groovy+nextflow, but maybe there is someone out there who prefers groovy.

Is a proper dry run possible in nextflow already btw?

Re: Nextflow: Data-Driven Computational Pipelines

#9
post #8

I develop bioinformatics pipelines for a living and am very opinionated on the topic. Having enough experience with snakemake as well as nextflow in production for many years now, I would always opt out for snakemake for anything but extremely large DAgs (which is quite rare for for bioinformatics pipelines). The fact that nextflow still doesn't allow deleting temporary files during execution or re-rerunning the work…

I do too.. and have similar opinions. I wrote my own tool years back for pipelines because it was always frustrating (started roughly around the same time as Nextflow).

Allowing for files to be marked as transient (temp) and re-running from arbitrary time points are definitely one of the things I support... as is conditional logic within the pipeline for job definition and resource usage. For me though, one of the biggest things is that I like having composable pipelines, so each part of the larger workflow can be developed independently. They can interact with each other (DAG) and use existing dependencies, but they don't have to exist in the same document/script. I work on large WGS datasets, so 1000's of jobs per patient isn't uncommon.

Happy to talk more if you're interested.

https://github.com/compgen-io/cgpipe

And yes, you can dry run the entire thing. It will write out a bash script if you want to see exactly what is going to run without submitting jobs. It's a full language for pipelines, but heavily inspired by Makefiles (with conditional logic).

Re: Nextflow: Data-Driven Computational Pipelines

#10
post #8

I develop bioinformatics pipelines for a living and am very opinionated on the topic. Having enough experience with snakemake as well as nextflow in production for many years now, I would always opt out for snakemake for anything but extremely large DAgs (which is quite rare for for bioinformatics pipelines). The fact that nextflow still doesn't allow deleting temporary files during execution or re-rerunning the work…

It's been a while since you can rerun/resume Nextflow pipelines, and yes, you can have dry runs in Nextflow. I have no idea what you're referring to with the 'arbitrary limit of 1000 parallel jobs' though. As for deleting temporary files, there are features that allow you to do a few things related to that, and other features being implemented.
Post reply on HN