All Projects → EI-CoreBioinformatics → portcullis

EI-CoreBioinformatics / portcullis

Licence: GPL-3.0 license
Splice junction analysis and filtering from BAM files

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
M4
1887 projects
Makefile
30231 projects
shell
77523 projects
Singularity
16 projects

Projects that are alternatives of or similar to portcullis

PHAT
Pathogen-Host Analysis Tool - A modern Next-Generation Sequencing (NGS) analysis platform
Stars: ✭ 17 (-41.38%)
Mutual labels:  bam-files
Elements-of-Functional-Programming-in-Python
Learn how to how to use the lambda, map, filter and reduce functions in Python to transform data structures.
Stars: ✭ 14 (-51.72%)
Mutual labels:  filter
MedianFilter
A fast one-dimensional median filter algorithm
Stars: ✭ 43 (+48.28%)
Mutual labels:  filter
raptor
A fast and space-efficient pre-filter for querying very large collections of nucleotide sequences.
Stars: ✭ 37 (+27.59%)
Mutual labels:  filter
modjpeg-nginx
NGINX filter module for adding overlays and logos to JPEGs on-the-fly without degrading the quality of the image.
Stars: ✭ 18 (-37.93%)
Mutual labels:  filter
vembrane
vembrane filters VCF records using python expressions
Stars: ✭ 46 (+58.62%)
Mutual labels:  filter
angsd-wrapper
Utilities for analyzing next generation sequencing data.
Stars: ✭ 13 (-55.17%)
Mutual labels:  bam-files
react-search-autocomplete
A search box that filters the provided array of objects
Stars: ✭ 152 (+424.14%)
Mutual labels:  filter
MacOSX-VFS-redirector
Mac OS X file system filter to redirect file operations
Stars: ✭ 38 (+31.03%)
Mutual labels:  filter
esa-httpclient
An asynchronous event-driven HTTP client based on netty.
Stars: ✭ 82 (+182.76%)
Mutual labels:  filter
AdBlock-Acceleration
Accelerated subscription for international/China region ad filtering rules(国际/中国地区广告过滤规则的加速订阅)
Stars: ✭ 327 (+1027.59%)
Mutual labels:  filter
amino-bot
Bot for aminoapps.com
Stars: ✭ 21 (-27.59%)
Mutual labels:  filter
sparkar-pixelate-shader
simple script-only pixelate shader with Facebook SparkAR.
Stars: ✭ 35 (+20.69%)
Mutual labels:  filter
picardmetrics
🚦 Run Picard on BAM files and collate 90 metrics into one file.
Stars: ✭ 38 (+31.03%)
Mutual labels:  bam-files
covtobed
⛰ covtobed | Convert the coverage track from a BAM file into a BED file
Stars: ✭ 37 (+27.59%)
Mutual labels:  bam-files
BioAlignments.jl
Sequence alignment tools
Stars: ✭ 49 (+68.97%)
Mutual labels:  bam-files
porn-domains
A collection of domains used for explicit adult content like porn websites.
Stars: ✭ 97 (+234.48%)
Mutual labels:  filter
spec-pattern
Specification design pattern for JavaScript and TypeScript with bonus classes
Stars: ✭ 43 (+48.28%)
Mutual labels:  filter
scotty
java proxy
Stars: ✭ 44 (+51.72%)
Mutual labels:  filter
django-admin-search
Modal filter for django admin
Stars: ✭ 60 (+106.9%)
Mutual labels:  filter

alt text

Portcullis

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.

Installation

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

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

Singularity

# 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

Conda

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

conda install portcullis --channel=bioconda

Brew

brew install brewsci/bio/portcullis

From source

Downloads

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

  • GCC V4.8+
  • autoconf V2.53+
  • automake V1.11+
  • make
  • libtool V2.4.2+
  • zlib-dev
  • pthreads
  • boost-dev V1.52+
  • samtools V1.2+
  • Python3-dev V3.5+ (Make sure the following packages are installed: pandas, matplotlib, setuptools, sphinx, tabulate)

Then proceed with the following steps:

# Clone the repo
git clone [email protected]:maplesond/portcullis.git

# Move into repo directory
cd portcullis

# Generate configure script
./autogen.sh

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

# 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

  • Many system python installations do not come with the C API immediately available, which prevents Portcullis from embedding python code. We typically would recommend installing anaconda3 as this would include the latest version of python, all required python packages as well as the C API. If you are running a debian system and the C libraries are not available by default and you wish to use the system python installation the you can install them using: sudo apt-get install python-dev. Also, if you have installed python to a custom location please verify that the bin directors on the PATH environment variable, and the lib (or lib64) directory is on the LD_LIBRARY_PATH or LD_RUN_PATH as appropriate.

  • If Portcullis is failing at the ./autogen.sh step you will likely need to install autotools. The following command should do this on MacOS: brew install autoconf automake libtool. On a debian system this can be done with: sudo apt-get install autoconf automake libtool.

Quickstart

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:

  • prep - Prepares input data so that it is suitable for junction analysis
  • junc - Calculates junction metrics for the prepared data
  • filter - Separates alignments based on whether they are likely to represent genuine splice junctions or not
  • bamfilt - Filters a BAM to remove any reads associated with invalid junctions
  • full - Runs prep, junc, filter and optionally bamfilt as a complete pipeline

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: https://portcullis.readthedocs.org/en/latest/.

Licensing

GNU GPL V3. See COPYING file for more details.

Authors

  • Daniel Mapleson
  • Luca Venturini
  • David Swarbreck

See AUTHORS file for more details.

Acknowledgements

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].