Upgrade of trim-low-abund for better, more profitable streaming.

Support for k-mer spectral error analysis, sublinear error profile calculations from shotgun data sets (sandbox/calc-error-profile.py), adaptive variant collection based on graphalign (sandbox/collect-variants.py), streaming error correction (sandbox/correct-errors.py), and streaming error trimming (sandbox/trim-low-abund.py).  The k-mer spectral error analysis and error profile/trimming is part of the 2014-streaming paper (https://github.com/ctb/2014-streaming).
On Sun, Dec 14, 2014 at 12:05:20PM -0800, Michael R. Crusoe wrote:
> > +    // did we bypass some erroneous k-mers? call the last one.
> > +    if (kmers.get_start_pos() > 0) {
> > +        // if we are well past the first k, forget the whole thing (!? @CTB)
> > +        if (kmers.get_start_pos() >= _ksize && 0) {
> > +            return posns;
> > +        }
> > +        posns.push_back(kmers.get_start_pos() - 1);
> > +    }
> > +
> > +    while (!kmers.done()) {
> > +        kmer = kmers.next();
> > +        if (get_count(kmer) <= max_abund) { // error!
> > +            posns.push_back(kmers.get_end_pos() - 1);
> > +
> > +            // find next good
> > +            while (!kmers.done()) {
> 
> I see now. You're only returning the index of k-mers at the high/low coverage boundary. I would say the method is not well named then. Perhaps "find_likely_bad_kmers"?

How about 'find_spectral_error_positions'?