alt text


Version Build Status License: GPL v3 Issues

Portcullis stands for PORTable CULLing of Invalid Splice junctions from pre-aligned RNA-seq data. It is known that RNAseq mapping tools generate many invalid junction predictions, particularly in deep datasets with high coverage over splice sites. In order to address this, instead for creating a new RNAseq mapper, with a focus on SJ accuracy we created a tool that takes in a BAM file generated by an RNAseq mapper of the user’s own choice (e.g. Tophat2, Gsnap, STAR2 or HISAT2) as input (i.e. it’s portable). It then, analyses and quantifies all splice junctions in the file before, filtering (culling) those which are unlikely to be genuine. Portcullis output’s junctions in a variety of formats making it suitable for downstream analysis (such as differential splicing analysis and gene modelling) without additional work. Portcullis can also filter the original BAM file removing alignments associated with bad junctions. Both the filtered junctions and BAM files are cleaner and more usable resources which can more effectively be used to assist in downstream analyses such as gene prediction and genome annotation.


We support multiple methods for installing and running portcullis. Hopefully your favourite container or package manager is supported below. If not let us know and we’ll try to work to get it integrated there.


Docker Pulls

# Keep in mind you need to mount in any working directories to the container with the `-v` option.
# Ideally, mount these into the /data directory which is the container's working directory.
docker run --it --rm -v /abspath/to/data/on/host:/data maplesond/portcullis:stable portcullis --help


# First download the container:
singularity pull --name portcullis.img shub://maplesond/portcullis:master

# Then to execute commands in the container:
singularity exec portcullis.img portcullis --help


Anaconda-Server Badge Anaconda-Server Badge Anaconda-Server Badge

conda install portcullis --channel=bioconda


brew install brewsci/bio/portcullis

From source


If you wish to install from source please first confirm that first you have these dependencies are installed and configured:

Then proceed with the following steps:

# Clone the repo
git clone

# Move into repo directory
cd portcullis

# Generate configure script

# Confirm dependencies and generate makefiles
# Adding --prefix <dir> will tell make install to put everything in a 
# particular directory.  Default is /usr/local.

# Compile (increasing -j will make it go faster!
make -j 2

# Run some unit tests (you can increase -j here too)
make -j 2 check

# Install to prefix dir
make install

Common problems


After portcullis has been installed, the portcullis executable should be available. Typing portcullis or portcullis --help at the command line will present you with the portcullis help message.

These modes are available:

Typing portcullis <mode> --help will bring up help and usage information specific to that mode.

In addition to portcullis, we provide a tool-suite for manipulating junction files called junctools. Typing junctools --help will provide you with the program options.

For much more information about portcullis’ capabilities and how to configure and run it, an online version of the manual can be found here:


GNU GPL V3. See COPYING file for more details.


See AUTHORS file for more details.


Affiliation: The Earlham Institute (EI) Funding: The Biotechnology and Biological Sciences Research Council (BBSRC)