Clone wiki

poolStat / Installing and Running poolStat

Installing poolStat

Step 1: Obtaining the source code

poolStat is hosted on bitbucket and can be cloned with the command:

git clone

Alternative, the source can also be downloaded as a zipped folder. This folder contains the latest C++ source code of poolStat. (See downloads page for more options).

Step 2: Compiling the code

After unzipping or cloning, the code must be compiled to obtain an executable. It is recommended to use the GNU C++ compiler g++, which is part of the GCC package and is pre-installed on any Linux system. On a Mac, g++ can be installed as part of the developer tools. On windows, it is advised to use the g++ compiler that ships with cygwin.

poolStat requires htslib to run. Make sure to have downloaded and installed / compiled htslib (see here for details).

If you have a system wide installation of htslib, then you can compile poolStat by simply typing 'make' in the base folder:


If you do not have a system wide installation of htslib, you need to specify the correct path to htslib in the make file (a file with name makefile). Specifically, you will need to change the line

$(CC) -O3 -o $(BIN) $(OBJ) -lz -lhts


$(CC) -O3 -o $(BIN) $(OBJ) -lz -lhts -LHTSLIBFOLDER

where HTSLIBFOLDER is the path of the folder where a compiled version of htslib is available.

That's it! poolStat is now ready to use.

Step 3: Launching poolStat

To launch poolStat from within the source base folder, type:

.. code:: bash


If you want to call poolStat from a different folder, you must specify the absolute path to it. It can thus be convenient to copy the executable somewhere else or to add the source folder to your $PATH variable (search on Google <>_ for more advice).

Passing arguments

poolStat is preferentially launched with the name of an arguments file as the only argument. All necessary arguments are then specified in the argument file. Basically, an argument file is a simple collection of pairs of argument names and corresponding values (separated by one or several white space characters, i.e. blanks or tabs), enriched with comments. While each name-value pair has to be at the beginning of a new line, the order is of no importance. Comments may either be added after a name-value pair or given on a line on their own. Note that all comments must be proceeded with a double slash ''//''. Empty lines may be present anywhere within the file and are ignored.

For example, if the argument file is named example.arguments, the program has to be launched as follows:

./poolStat example.arguments

Additionally, arguments may be passed on the command line. In that case, arguments that are also given in the input file will be overwritten. The required syntax is as follows:

./poolStat example.arguments name=value

where name is the name of an argument and value is the corresponding value. For instance,

./poolStat example.arguments window=10000

launches poolStat uses a window size of 10Kb instead of the window size that might be specified in example.arguments.

Note that there is no restriction on the number of arguments to be passed that way and arguments can also be specified on the command line only. Note further that the order in which the arguments are given, both in the input file or on the command line, is of no importance.

Progress Report & Log File

By default, poolStat writes only minimal information to the screen. To get a more detailed progress report printed to the screen, simply add the argument verbose either in the input file or on the command line.

./poolStat example.arguments verbose

To save the progress report into a file (e.g. out.txt) simply use the argument logFile, followed by the name of the desired file. Note that this will overwrite any existing file with that name. Note further that verbose and logFile can both be used at the same time.

Have fun!