Streaming quantification for high-throughput sequencing




11.18.2013 • eXpress is now on GitHub!

In order to speed up development, we're excited to announce that the eXpress codebase will now be stored on a public repository at GitHub (

If you have a feature you want to add or a bug you want to fix, please feel free to make a pull request. If you're just interested in helping further the project along but don't have anything specific in mind, check out the Issues page or contact us! We always have a few more ideas than we have time to implement.

Thanks to everyone for their contributions so far. We hope you can help make eXpress even better!

11.17.2013 • eXpress 1.5.0 released

This update contains the following fixes and improvements:

  • Now compatible with inputs containing more than 2 haplotypes. Just create a comma-separate list of haplotypes, one set per line, and use the -H,--haplotype-file option. Thanks to Lindy McBride for helping test this feature.
  • Added TPM to output. Thanks to Richard Smith for the implementation!
  • Made auxiliary parameter updates atomic to correct biases that are most apparent in ASE analyses. Leads to significant improvements in accuracy even in non-ASE settings. See the user group for more details. Thanks to William Nelson for helping squash this bug.

More exciting news coming later this week...stay tuned!

09.26.2013 • eXpress 1.4.1 released

This update is a minor patch containing the following bug fixes:

  • Fixed bug occasionally causing NaNs to appear in output for single-end datasets.
  • Slight correction to likelihood calculation for very short targets.
  • Fixed crash when using --no-error-model.

07.29.2013 • eXpress 1.4.0 released

Major Changes:

  • Added improved support for allele-specific expression for phased transcripts. See the -H,--haplotype-file option for more details.
  • Improved logging, now using stderr by default.
  • Made bundle handling and merging threadsafe.
  • Added max-read-len option and related error message.
  • Optional compilation using GooglePerfTools TCMalloc for improved speed.
  • Various minor bug fixes and performance improvements.

07.21.2013 • Sneak peak at eXpress 2

We are presenting a poster at ISMB 2013 highlighting the new "RNA-DNA Difference/RNA Editing" detection feature coming in eXpress 2 this fall. If you aren't at the conference, you can view the poster here.

06.03.2013 • ReXpress now available!

The developers of eXpress along with UC Berkeley MCB graduate student Lorian Schaeffer have developed a new method for updating abundance estimates after a change in the annotation. Details on the method can be found in our recent Bioinformatics paper.

The method has been implemented in a software tool called ReXpress, which can be found at

03.15.2013 • User Forum • eXpress 1.3.1 released

We have now created a User Forum for users to ask questions, provide assistance, share best practices, and post useful scripts. This is a great first stop if you need help using eXpress!

eXpress 1.3.1 Changes:

  • Corrected an issue where output SAM/BAM files were partially truncated.
  • Removed a directional (RF) warning that occurred improperly.
  • '/1' and '/2' are now automatically stripped from the suffix of read names.
  • FPKM is now reported in scientific notation.
  • Online estimates are now rescaled and projected before additional batch rounds.

01.17.2013 • eXpress 1.3.0 released


  • Fixed an issue where indel parameters were not properly used in the likelihood.
  • Added indel parameters to the params.xprs output file.
  • Position indexing in params.xrps is now 1-based.
  • Added the ability to load parameters from a params.xprs file. See the --aux-param-file option in Manual for more details.
  • Corrected minor issue that could effect variance bounding.
  • Added --library-size option for FPKM calculations. See the Manual for more details.
  • Added warning when dataset is too small for computing bias parameters.

11.26.2012 • eXpress 1.2.2 released


  • Fixed an issue affecting the variance, which led to unreasonably large confidence intervals and invalid ambiguous count distribution parameters. These parameters (alpha and beta) will now always be greater than 0.
  • Fixed an in issue making it impossible to enable additional batch rounds using the -B/--additional-batch option.
  • Added options for single-end strand-specific protocols (--f-stranded and --r-stranded). See the Manual for more details.
  • Added a warning message when a library is likely strand-specific but the proper flag has not been given.
  • The beta binomial distribution parameters are now reported in scientific notation in results.xprs.

11.19.2012 • eXpress manuscript now available online!

The eXpress manuscript will appear in the January issue of Nature Methods. However, an early online version is now available on the Nature Methods website:

    Roberts A and Pachter L (2012). Streaming fragment assignment for real-time analysis of sequencing experiments. Nature Methods.doi:10.1038/nmeth.2251

10.19.2012 • eXpress 1.2.1 released

This release includes changes to the available options as well as patches for the bugs listed below.

  • Made some previously hidden options available as "Advanced Options". See the Manual for more details.
  • Fixed a rare issue affecting indels whereby indels were not properly being penalized in alignment likelihoods. Added a maximum allowed indel size along with geometrically distributed prior on indel length probabilities to correct this issue. See --max-indel-size argument in the Manual for more details.
  • Fixed a bug leading to incorrect learning of mismatch parameters (introduced in 1.2.0).
  • Fixed a bug leading to a segfault when using single-end reads (introduced in 1.2.0).
  • Added missing CMake configuration file to source tarball.

09.27.2012 • eXpress 1.2.0 released

This maintenance release includes major refactoring and patches for the bugs listed below.

  • Refactored fragment objects for readability and performance improvements.
  • Fully completed source documentation and improved formatting style.
  • Now ignores paired-end fragments where the upstream read is reverse complemented and/or the downstream read is not.
  • Fixed a bug where average bias was computed incorrectly, affecting estimation accuracy.
  • Fixed a bug where soft clipping was ignored, leading to a segfault.
  • Fixed a bug where very long reads (> 200 bp) would cause a segfault.
  • Fixed a bug where small fragment length standard deviations could lead to NaNs.

Thanks to the users who reported and helped fix these bugs.

06.30.2012 • eXpress Walkthrough

Harold Pimentel has made an excellent walkthrough for today's *Seq I Meeting, which is available here. New users should have a look if you need help getting started with eXpress!

06.24.2012 • eXpress 1.1.1 released

This release includes patches for the minor bugs listed below.

  • The stand-specific modes (--fr-stranded and --rf-stranded) were not being enabled by the command-line arguments. This has been corrected.
  • In rare cases, NaN and negative counts were being output in results.xprs. This issue has also been corrected.
  • Linux build is now compiled on CentOS 5 with GCC 4.4.6 for improved compatibility with older installations.

Thanks to the users who reported and helped fix these bugs.

05.22.2012 • eXpress 1.1.0 Released

This release brings an important new feature allowing users to combine reads from a single sample sequenced from different library prepartions or using different reads lengths. Please read the FAQ and Manual for details on how to use this feature.

The Bowtie2 "bug" we reported previously was actually due to mistakes made by several users in sorting files. Output from Bowtie and Bowtie2 are already in the correct order with alignments grouped by read and do not need to be re-sorted. If you are using a different aligner, you may need to sort the alignments. See the Manual for more details and sorting commands. To help avoid these issues in the future, we have implemented a method that will detect improperly ordered alignments in input files (see Release Notes below).

Release Notes:

  • Added the ability to combine reads sequenced from different library preparations or using different read lengths. See the FAQ for important details if using this feature.
  • Added a method to detect improperly ordered SAM/BAM files.
  • Fixed bug where it was not possible to enable additional-batch mode.

05.01.2012 • Follow-up for Bowtie2 users

UPDATE (05.22.2012): It has been discovered that this "bug" was not related to Bowtie2 but was due to users imporoperly sorting their alignment files. See the 05.22.2012 announcement for more details.

Some users have asked questions about the Bowtie2 bug we reported yesterday. We have developed a way to test if this bug will affect your results and by how much. You should run one of the pairs of commands below (depending on if you file is in SAM or BAM format). The first command prints how many reads (+ header lines) eXpress will see due to the bug and the second command prints how many reads (+ header lines) eXpress would see without the bug (the correct number). The difference between the two will tell you how many reads are being "double counted" by eXpress. If this number is relatively small, there is no cause for alarm. If it is large, you should sort your file and rerun eXpress. The commands to do this sorting can be found in the Manual. Please let us know if you have any further questions about this by emailing us at

Test commands:

(w/ SAM files)

  1. cut -f1 hits.sam | uniq | sort | wc -l
    cut -f1 hits.sam | uniq | sort | uniq | wc -l

(w/ BAM files)

  1. samtools view hits.bam | cut -f1 | uniq | sort | wc -l
    samtools view hits.bam | cut -f1 | uniq | sort | uniq | wc -l

04.30.2012 • Warning for Bowtie2 users (UPDATED)

UPDATE (05.22.2012): It has been discovered that this "bug" was not related to Bowtie2 but was due to users imporoperly sorting their alignment files. See the 05.22.2012 announcement for more details.

Due to a bug in Bowtie2, the alignments for a given read aren't guaranteed to be in a consecutive block in the SAM output. Therefore, you must use the --reorder option until the bug is fixed or sort your alignment file using the commands in the Manual.

This bug will cause eXpress to produce incorrect results with no errors or notifications.

04.08.2012 • eXpress 1.0.0 released

We are happy to announce the release of eXpress 1.0.0 following numerous tests on simulated and real data, and improvements based on feedback from early users.

Release Notes:

  • New output format (see Manual)
  • Indel support including mappings made with Bowtie2.
  • Bias model improved
  • Minor bug fixes and speed increases

02.16.2012 • eXpress 0.9.5 BETA released

Release Notes:

  • Numerous speed improvements.
  • Reduced memory requirements.
  • Improved bias model.
  • Re-added effective count fields to output.
  • Renamed "post_count_mean" field to "post_count_mode".

01.05.2012 • eXpress 0.9.4 BETA released

Release Notes:

  • Greatly increased speed of BAM parsing (thanks to improvements in BamTools)
  • Fixed bug where software stalled on first additional EM round in some cases
  • --output-alignments option has been renamed to --output-align-prob
  • Added new option (--output-align-samp) that outputs one alignment for each fragment, sampled at random based on the alignment likelihood
  • Additional EM rounds now defaults to 0 (instead of 1)
  • Removed effective count fields (which can be easily calculated from other fields)

10.19.2011 • eXpress 0.9.3 BETA released

Release Notes:

  • Windows binary now available!
  • Added automatic second round of EM (when input comes from file instead of streaming) that improves results
  • Added new option (--output-alignments) that outputs the alignments in SAM/BAM format along with the probabilistic assignment for each multi-hit
  • No more hash collisions!
  • Fixed bug in polytope projection that led to mean posterior counts outside of the interval between unique and total counts

10.07.2011 • A note to Windows users

While the eXpress code is compatible with Windows, some of its dependencies (Boost, BamTools) have made the compilation on Windows non-trivial. We know that many users wish to run eXpress on their Window's laptop or desktop since it requires so few resources. We are working to make this a reality and hope to have a Windows 7 binary available in the coming weeks.

If you have successfully built eXpress on Windows, please share your magic with us at

09.27.2011 • eXpress 0.9.2 BETA released

Release Notes:

  • Added eff_count_mean and eff_count_var columns to report bias-corrected counts
  • Fixed bug in polytope projection that led to mean posterior counts outside of the interval between unique and total counts
  • Fixed compatibility issue with Linux binary

09.14.2011 • eXpress 0.9.1 BETA released

Release Notes:

  • Fixed bug relating to bias estimation in single-end reads
  • Added variance-covariance file (varcov.xprs)
  • Added parameter (bias, fld, errors, etc.) output file (params.xprs)
  • Added FPKM confidence intervals to results.xprs
  • Column name changes (est_counts->post_counts_mean, est_counts_var->post_counts_var) in results.xprs
  • Estimated (mean posterior) counts are now guaranteed to lay between the total and unique counts using polytope projection

09.01.2011 • eXpress 0.9.0 BETA released

We are pleased to announce the release of the first public beta of eXpress! The software is freely available under the OSI-approved Artistic License 2.0.

Please send us any comments, suggestions, and bug fixes to


Current Release

eXpress 1.5.0
Mac OS X (64-bit) Binary
Linux (64-bit) Binary
Windows (64-bit) Binary

Previous Versions

View All


Email your questions to
Share with other users on our User Forum
Sign Up for Announcements:


Adam Roberts


Lior Pachter



  • Roberts A (2013). Thesis: Ambiguous fragment assignment for high-throughput sequencing experiments. EECS Department, University of California, Berkeley.
  • Roberts A and Pachter L (2013). Streaming fragment assignment for real-time analysis of sequencing experiments. Nature Methods.
  • Roberts A, Trapnell C, Donaghey J, Rinn JL, Pachter L (2011). Improving RNA-Seq expression estimates by correcting for fragment bias. Genome Biology.