Snakemake vs Nextflow Upcoming bioinformatics Project
2
2
Entering edit mode
20 months ago
samRayne ▴ 20

Hi all,

So I am preparing to start my new research project: Bioinformatic analysis of high-throughput DNA sequencing data

Involving the development of some software:

the student will develop either a user-friendly workflow (with snakemake or nextflow) or an interactive web user interface. The student will also improve documentation and suggest extended applications of currently available software

I currently don't know a lot about both of the workflow engines and I have to make a decision of which pathway to take, either snakemake or nextflow. Just looking to seek some advice of which method would be best for a beginner starting from scratch as current discussions that are available that weigh both options seem quite confusing.

Thank you and Kind regards

Programming Masters • 3.6k views
ADD COMMENT
2
Entering edit mode

If you know python well then snakemake may be the way to go. If you are familiar with groovy (programming for Java VM) then nextflow may be easier. In any case you will need to know programming basics.

Please don't try to develop an interactive web user interface from scratch. galaxy already exists for that application.

ADD REPLY
0
Entering edit mode

Thanks for your response! My python programming is fluent, but I am always upto picking up a new language, but regarding the groovy syntax is somewhat similar to that of R and Python or completely different?

Unfortunately I think my supervisor is wanting me to create it from scratch, but I will look into galaxy and propose it in my next meeting thanks for that, if you have any recommended videos, pages on galaxy that would be great.

ADD REPLY
1
Entering edit mode

https://usegalaxy.org/

Look under the help dropdown to find all you need.

ADD REPLY
0
Entering edit mode

Thanks for the link!

ADD REPLY
1
Entering edit mode

Having used both extensively, I'd say nextflow is slightly more difficult to get into than snakemake, but makes up for it in a big way in its functionality.

ADD REPLY
0
Entering edit mode

Brilliant, thanks for the advice, i think after looking into what the community has said I have invested into learning the groovy language so when ready to build my application, I can fully utilize the nextflow functionality plus adding another language under the belt never hurts.

ADD REPLY
1
Entering edit mode

Don't worry about groovy too much. I have been writing productive nextflow pipelines for a couple of years and still haven't learned much if any groovy.

You can get by with the usual tools plus the unix toolbox of bash sed head etc for the most part.

One important part is to understand Nextflow channels and processes and follow some examples before you really start. I've seen plenty of beginners writing for loops for dealing with input from a path variable within nextflow processes, rather than using a channel for input so NF can actually do its job properly.

Snakemake seems to have a lot more boilerplate code in the examples I've seen, and require more effort to submit to different cluster types. The way people write .done files if a rule completes successfully is .... not optimal. Nextflows work dir and resume functionality is a lot more elegant.

ADD REPLY
4
Entering edit mode
20 months ago
Dave Carlson ★ 1.9k

My (highly biased) opinion is to go with Nextflow. Not necessarily because I favor groovy over python (I certainly do not!), but because the nf-core pipeline ecosystem and the community of users and developers that make up nf-core is truly fantastic.

ADD COMMENT
2
Entering edit mode
20 months ago
cfos4698 ★ 1.1k

There are a lot of votes for Nextflow here, and it's generally pretty popular (and increasing in popularity). As a 'dissenting' voice, I'll just say how much I enjoy writing Snakemake pipelines. It kind of boils down to the way you think: for whatever reason, Snakemake just makes sense to me and it's easy for me to throw together pipelines in no time. I've invested a bit of time into Nextflow and find it more difficult. The available tutorials for DSL2 syntax aren't great, or at least weren't the last time I looked. I do agree though that the nf-core community is a big plus.

ADD COMMENT

Login before adding your answer.

Traffic: 3103 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6