2.2. Hello world!

In this chapter, we show how to create and use RNFtools on a Hello world example. Little knowledge of Python can be helpful, but it is not required.

RNFtools is based on Snakemake, a Python-based Make-like build system. To simulate reads or evaluate alignments, you create simple configuration Python scripts and RNFtools subsequently creates a set of rules to be run by Snakemake. The rules can be then executed in a single thread, in parallel (--cores Snakemake parameter), or on a cluster. For more details about Snakemake, please see its documentation.

This approach allows to create big and reproducible pipelines, which are easy to share (it suffices to publish a single configuration script).

Every RNFtools script consists of three parts:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 1) importing the rnftools Python package
import rnftools

# 2) all your Python code will go here
print("Hello world!")

# 3) including Snakemake rules created by RNFtools and defining the main
#    Snakemake rule (declaring which files are requested)
include: rnftools.include()
rule: input: rnftools.input()

As it is mentioned in the second comment, all your code should be inserted into part 2. Now save this file with name Snakefile and run

snakemake

in the same directory. A “Hello world” message will be printed, together with several Snakemake informative messages.