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.
