Seqanswers Leaderboard Ad

Collapse

Announcement

Collapse
No announcement yet.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • A new release of the Snakemake workflow system

    Hi guys,
    I would like to announce version 2.4.8 of Snakemake.
    Snakemake is a pythonic text-based workflow system with a clean and easy to read language for defining your workflows. Snakemake is inspired by GNU Make. Workflows are defined by rules, that generate output files from input files. Rule dependencies and parallelization are automatically determined by Snakemake.
    In contrast to GNU Make, Snakemake allows to have multiple output files in a rule. Further, rules can use shell commands, Python, or R code. Snakemake provides many additional useful features like resource-aware scheduling, parameter- and version-tracking and detection of incomplete files.
    Finally, Snakemake has a generic cluster support, that works with any cluster or batch system that provides a qsub-like command and a shared filesystem.

    To give you an impression, this is how Snakemake rules look like:
    Code:
    rule targets:
        input:  'plots/dataset1.pdf', 
                'plots/dataset2.pdf'
    
    rule plot:
        input:  'raw/{dataset}.csv'
        output: 'plots/{dataset}.pdf'
        shell:  'somecommand {input} {output}'
    If you like Snakemake, please feel free to visit http://bitbucket.org/johanneskoester/snakemake.

  • #2
    Hi johanneskoester,

    I'm curious about learning more about snakemake, thanks for positing it!

    I'm quite familiar with python, R, bash but I'm not familiar at all with GNU Make and friends (other than executing it when I get some source code). So I must admit I fail to see where the advantage comes when building bioinformatics pipelines.

    For example, following this example on snakemake, this is how I would implement the same pipeline:

    Code:
    REF="/global/home/users/ebolotin/scratch/hg19/hg19"
    for fq in *.fastq.gz
    do
        bname=`basename $fq .fastq.gz`
        ## Prepare pipeline
        echo "cutadapt  -m 10 -a AGATCGGAAGAGCACACGTCTGAACTCC -o ${bname}.cut $fq &&
        bowtie2 -p 20 --very-sensitive -x $REF -U ${bname}.cut -S ${bname}.sam &&
        makeTagDirectory ${bname}.tag ${bname}.sam -keepAll -genome hg19" > ${bname}.sh
        ## Run the job:
        bash ${bname}.sh
        # OR
        # nohup ${bname}.sh &
        # OR
        # bsub [opts] < ${bname}.sh
    done
    Could you point out in what respect snakemake would make it preferable?

    Thanks!
    Dario

    Comment


    • #3
      Hi,
      sure. The solution you provide runs a for loop and spawns a bash job for each fastq.
      So, they will execute in parallel, all fine.
      When using Snakemake, you would have a similar effect at first sight. However, there are various advantages (some of them, but to the best of my knowledge not all, are also provided by other workflow systems):

      With Snakemake, you can define how many processes should be active at the same time, so that your machine is not flooded with jobs. Snakemake will schedule them in a way such that the utilization of the provided cores will be maximized. The scheduling is also aware of the number of threads each job uses.
      If a job fails, or you have to quit the execution, on the next invokation, Snakemake will determine what was already computed last time and only calculate the missing stuff.
      If an input file happens to be changed, Snakemake will propose to rerun the subsequent part of the pipeline automatically (in other words, Snakemake automatically detects if one of your files is outdated).
      You can run the very same workflow definition on a single machine or a cluster, without the need to redefine anything in the Snakefile.
      Following the well known pattern of input-output-code, the Snakemake rules are very easy to read, and help to separate your commands from the parameters.
      For each of the output files created during the workflow, Snakemake will store metadata like used parameters, commands, and input files etc. which is nice for documentation.

      Best,
      Johannes

      Comment


      • #4
        Interested in learning more about #SNAKEMAKE?

        Register now for the first 2-day #SNAKEMAKE Workshop in Berlin with Johannes Köster https://johanneskoester.bitbucket.io/

        Dates 3-4 May 2022 This course will be held online in response to the coronavirus outbreak


        You will learn how to create modern and reproducible #bioinformatic workflows

        Comment

        Latest Articles

        Collapse

        • seqadmin
          Quality Control Essentials for Next-Generation Sequencing Workflows
          by seqadmin




          Like all molecular biology applications, next-generation sequencing (NGS) workflows require diligent quality control (QC) measures to ensure accurate and reproducible results. Proper QC begins at nucleic acid extraction and continues all the way through to data analysis. This article outlines the key QC steps in an NGS workflow, along with the commonly used tools and techniques.

          Nucleic Acid Quality Control
          Preparing for NGS starts with isolating the...
          02-10-2025, 01:58 PM
        • seqadmin
          An Introduction to the Technologies Transforming Precision Medicine
          by seqadmin


          In recent years, precision medicine has become a major focus for researchers and healthcare professionals. This approach offers personalized treatment and wellness plans by utilizing insights from each person's unique biology and lifestyle to deliver more effective care. Its advancement relies on innovative technologies that enable a deeper understanding of individual variability. In a joint documentary with our colleagues at Biocompare, we examined the foundational principles of precision...
          01-27-2025, 07:46 AM

        ad_right_rmr

        Collapse

        News

        Collapse

        Topics Statistics Last Post
        Started by seqadmin, 02-07-2025, 09:30 AM
        0 responses
        68 views
        0 likes
        Last Post seqadmin  
        Started by seqadmin, 02-05-2025, 10:34 AM
        0 responses
        108 views
        0 likes
        Last Post seqadmin  
        Started by seqadmin, 02-03-2025, 09:07 AM
        0 responses
        83 views
        0 likes
        Last Post seqadmin  
        Started by seqadmin, 01-31-2025, 08:31 AM
        0 responses
        47 views
        0 likes
        Last Post seqadmin  
        Working...
        X