Awesome Open Source
Awesome Open Source


ABRA2 is an updated implementation of ABRA featuring:

  • RNA support
  • Improved scalability (Human whole genomes now supported)
  • Improved accuracy
  • Improved stability and usability (BWA is no longer required to run ABRA although we do recommend BWA as the initial aligner for DNA)



ABRA2 requires Java 8.

We recommend running from a pre-compiled release. Go to the Releases tab to download a recent version.


Sample command for DNA:

java -Xmx16G -jar abra2.jar --in normal.bam,tumor.bam --out normal.abra.bam,tumor.abra.bam --ref hg38.fa --threads 8 --targets targets.bed --tmpdir /your/tmpdir > abra.log

The above accepts normal.bam and tumor.bam as input and outputs sorted realigned BAM files named normal.abra.bam and tumor.abra.bam

  • Input files must be sorted by coordinate and index
  • Output files are sorted
  • The tmpdir may grow large. Be sure you have sufficient space there (at least equal to the input file size)
  • The targets argument is not required. When omitted, the entire genome will be eligible for realignment.


ABRA2 is capable of utilizing junction information to aid in assembly and realignment. It has been tested only on STAR output to date.

Sample command for RNA:

java -Xmx16G -jar abra2.jar --in star.bam --out star.abra.bam --ref hg38.fa --junctions bam --threads 8 --gtf gencode.v26.annotation.gtf --dist 500000 --sua --tmpdir /your/tmpdir > abra2.log 2>&1

Here, star.bam is the input bam file and star.abra.bam is the output bam file.

Junctions observed during alignment can be passed in using the --junctions param. The input file format is similar to the file output by STAR. If bam is specified, ABRA2 will dynamically identify splice junctions from the BAM file on the fly. Note that the file contains only junctions deemed "high quality" by STAR. The complete set of all splice junctions can be identified using the program abra.cadabra.SpliceJunctionCounter

Annotated junctions can be passed in using the --gtf param. See:
It is beneficial to use both of the junction related options.

Known indels can be passed in using the --in-vcf argument. Unannotated junctions originally identified as splices by the aligner may be converted to deletions if a known deletion is matched. Consider this option if you have indels detected from DNA for the same sample / subject. It is not recommended to use large datasets when using this option (i.e. don't pass in dbSNP).

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
java (31,533
ngs (28
dna (22