hammerlab/guacamole — pull request #79 by timodonnell (2014-05-23 04:03:03+00:00)
Title: This commit gets a substantial performance improvement by replacing ADAM...

...Record with the classes defined in Read.scala.

These homegrown Read classes avoid implicit conversions, lazy vals, unused fields, and as much indirection as possible.

Limitation: Currently we do not support loading ADAM data. That will come later in a separate PR.

* Added a Read trait, and MappedRead and UnmappedRead case classes that implement it.
* Load Reads using hadoop-bam directly. ADAM loading for BAMs is inefficient: parses fields twice.
* Instead of String and Char for nucleotide bases, use Byte and Array[Byte]. Add Bases.scala: functions for manipulating sequences.
* Drop support for '-loci mapped' commandline argument. Now must either analyze all loci ('-loci all') or a specific set of them ('-loci chr1:100-200,...')
* Use SequenceDictionary instances to get contigs, instead of a distributed reduction on the reads.
* Fix bug in scripts/guacamole-demeter that had it ignoring $SPARK_JAVA_OPTS