MACS

Overview

Model-based Analysis of ChIP-Seq (MACS3)

Restrictions on use

MACS is open source software and available to all users of the system. It is released under the BSD 3-Clause License and all usage must adhere to that license.

Please ensure you cite your usage in any results and publications, as described in:

Set up procedure

We now recommend loading modulefiles within your jobscript so that you have a full record of how the job was run. See the example jobscript below for how to do this.

# MACS3
module load apps/python/macs/3.1.0   # Python 3.14 (extensions compiled with GCC 14.2.0)

# MACS2 Python3-based versions
module load apps/python/macs2/2.2.5

# MACS2 Python2-based versions
module load apps/python/macs2/2.1.3.3

This will also automatically load the required version of python for you.

Below are legacy versions no longer supported on the CSF3. Try the Bio-informatics Helper Modulefile if you really have to use them.

module load apps/macs/2.1.2
module load apps/macs/2.1.1.20160309
module load apps/macs/2.1.0.20150731
module load apps/macs/2.1.0.20150420
module load apps/macs/2.1.0

Running the application

Please do not run MACS on the login node. Jobs should be submitted to the compute nodes via batch.

You may run the following command on the login node to get some help with running MACS:

macs3 -h      # for MACS3
macs2 -h      # for MACS2

This will show the list of available commands (algorithms) that can be run:

callpeak, bdgpeakcall, bdgbroadcall, bdgcmp,
bdgopt,   cmbreps,     bdgdiff,      filterdup,
predictd, pileup,      randsample,   refinepeak
callvar, hmmratac

To get help with each individual command, run:

macs3 command -h
# OR
macs2 command -h

Serial batch job submission

Create a batch submission script (which will load the modulefile in the jobscript), for example:

#!/bin/bash --login
#SBATCH -p serial
#SBATCH -t 0-6

# We recommend loading modulefiles in jobscripts. Use your required version.
module purge
module load apps/python/macs/3.1.0

macs3 command arg1 arg2 ... --threads $SLURM_CPUS_PER_TASK

Submit the jobscript using:

sbatch scriptname

where scriptname is the name of your jobscript.

Parallel batch job submission

More info on parallel execution is available in the official documentation.

Jobscript example:

#!/bin/bash --login
#SBATCH -p multicore_small
#SBATCH -t 0-6
#SBATCH -c 8

module purge
module load apps/python/macs/3.1.0

macs3 command arg1 arg2 ... --threads $SLURM_CPUS_PER_TASK

Submit the jobscript using:

sbatch scriptname

where scriptname is the name of your jobscript.

Installation in a conda environment

If a newer or older version of MACS is required, it can be easily installed in a conda environment in your home directory. Here is an example of commands to follow:

module load apps/binapps/conda/miniforge3/26.9.4-0-w-mamba 
conda create --name macs3_env --strict-channel-priority macs3
# Answer y (for yes) when prompted
conda activate macs3_env
macs3 -h

Then inside your jobscript, you would also need to add the following line – just after loading the miniforge module – to activate your environment:

conda activate macs3_env

Further info

Updates

None.

Last modified on November 12, 2026 at 5:53 pm by Paraskevas Mitsides