Improve E-values for multiple short DB sequences
authorMartin C. Frith
Mon Oct 07 10:02:38 2019 +0900 (6 weeks ago)
changeset 98549caf55d4d4d
parent 984 fb43f850eba2
child 986 88adecc284af
Improve E-values for multiple short DB sequences
doc/last-evalues.txt
src/LastEvaluer.cc
src/LastEvaluer.hh
src/LastalArguments.cc
src/LastalArguments.hh
src/lastal.cc
src/lastdb.cc
test/last-test.out
     1.1 --- a/doc/last-evalues.txt	Wed Aug 21 14:32:10 2019 +0900
     1.2 +++ b/doc/last-evalues.txt	Mon Oct 07 10:02:38 2019 +0900
     1.3 @@ -18,7 +18,7 @@
     1.4  
     1.5  **E** is the expected number of alignments with greater or equal
     1.6  score, between: a random sequence with the same length as the query
     1.7 -sequence, and a random sequence with the same length as the database.
     1.8 +sequence, and random sequences with the same length as the database.
     1.9  
    1.10  In this example, the two alignments are identical, but their "E"
    1.11  values are not.  That is because the query sequences have different
    1.12 @@ -67,7 +67,7 @@
    1.13  
    1.14  EG2 is calculated from the score like this::
    1.15  
    1.16 -  EG2 = K * (1 billion) * (1 billion) * exp(-lambda * score)
    1.17 +  EG2 = K * exp(-lambda * score) * (1 billion) * (1 billion)
    1.18  
    1.19  The parameters lambda and K are printed in the header of lastal's
    1.20  output.
    1.21 @@ -77,22 +77,26 @@
    1.22  
    1.23  E is calculated by this formula::
    1.24  
    1.25 -  E = K * area * exp(-lambda * score) * (number of strands)
    1.26 +  E = K * exp(-lambda * score) * strands * area(m, n, score) * N / n,
    1.27  
    1.28 -This depends on the number of strands that are searched, either 1 or
    1.29 -2.
    1.30 +where:
    1.31  
    1.32 -The area is approximately (database length) * (query length). However,
    1.33 -if the query (or database) is very short, this formula over-estimates
    1.34 -E.  LAST uses a "finite-size correction" to calculate E more
    1.35 -accurately.
    1.36 +* ``strands`` is either 1 or 2 (if forward and reverse DNA strands are
    1.37 +  searched).
    1.38 +* ``m`` is the length of the query sequence.
    1.39 +* ``n`` is the length of the longest sequence in the database.
    1.40 +* ``N`` is the total length of all database sequences.
    1.41 +* ``area(m, n, score)`` is `slightly less than
    1.42 +  <https://doi.org/10.1186/1756-0500-5-286>`_ ``m * n``.
    1.43  
    1.44  Effect of option -D
    1.45  ~~~~~~~~~~~~~~~~~~~
    1.46  
    1.47 -Option -D indirectly sets the EG2 threshold, via this formula::
    1.48 +Option -D sets the minimum alignment score, by this formula::
    1.49  
    1.50 -  1 = EG2 * (database length)/1e9 * (option -D)/1e9 * (number of strands)
    1.51 +  K * exp(-lambda * score) * strands * D * length(n, score) * N / n  ≤  1,
    1.52 +
    1.53 +where ``length(n, score)`` is slightly less than ``n``.
    1.54  
    1.55  Bit score
    1.56  ~~~~~~~~~
     2.1 --- a/src/LastEvaluer.cc	Wed Aug 21 14:32:10 2019 +0900
     2.2 +++ b/src/LastEvaluer.cc	Mon Oct 07 10:02:38 2019 +0900
     2.3 @@ -403,6 +403,16 @@
     2.4    }
     2.5  }
     2.6  
     2.7 +int LastEvaluer::minScore(double queryLettersPerRandomAlignment) const {
     2.8 +  if (!isGood()) return -1;
     2.9 +  double huge = 1e9;
    2.10 +  double f = queryLettersPerRandomAlignment / huge;
    2.11 +  for (int score = 1; ; ++score) {
    2.12 +    double evalue = area(score, huge) * evaluePerArea(score);
    2.13 +    if (evalue * f <= 1) return score;
    2.14 +  }
    2.15 +}
    2.16 +
    2.17  void LastEvaluer::writeCommented(std::ostream& out) const {
    2.18    if (evaluer.isGood()) {
    2.19      const Sls::ALP_set_of_parameters &p = evaluer.parameters();
     3.1 --- a/src/LastEvaluer.hh	Wed Aug 21 14:32:10 2019 +0900
     3.2 +++ b/src/LastEvaluer.hh	Mon Oct 07 10:02:38 2019 +0900
     3.3 @@ -54,9 +54,11 @@
     3.4  	    int verbosity);
     3.5  
     3.6    void setSearchSpace(double databaseLength,  // number of database letters
     3.7 +		      double databaseMaxSeqLength,  // length of longest seq
     3.8  		      double numOfStrands) {  // 1 or 2
     3.9 -    this->databaseLength = databaseLength;
    3.10 -    this->numOfStrands = numOfStrands;
    3.11 +    this->databaseSeqLen = databaseMaxSeqLength;
    3.12 +    if (databaseMaxSeqLength > 0) databaseLength /= databaseMaxSeqLength;
    3.13 +    this->databaseSeqNum = numOfStrands * databaseLength;
    3.14    }
    3.15  
    3.16    bool isGood() const
    3.17 @@ -70,10 +72,10 @@
    3.18  
    3.19    // Don't call this in the "bad" state or before calling setSearchSpace:
    3.20    double area(double score, double queryLength) const {
    3.21 -    return numOfStrands *
    3.22 +    return databaseSeqNum *
    3.23        (evaluer.isGood()
    3.24 -       ?           evaluer.area(score, queryLength, databaseLength)
    3.25 -       : frameshiftEvaluer.area(score, queryLength, databaseLength));
    3.26 +       ?           evaluer.area(score, queryLength, databaseSeqLen)
    3.27 +       : frameshiftEvaluer.area(score, queryLength, databaseSeqLen));
    3.28    }
    3.29  
    3.30    // Don't call this in the "bad" state:
    3.31 @@ -86,6 +88,11 @@
    3.32    // "evalue", which is always > 0.  Otherwise: returns -1.
    3.33    int minScore(double evalue, double area) const;
    3.34  
    3.35 +  // In the "good" state, after calling setSearchSpace: returns the
    3.36 +  // minimum positive score with E-value <= 1 per this many query
    3.37 +  // letters.  In the "bad" state: returns -1.
    3.38 +  int minScore(double queryLettersPerRandomAlignment) const;
    3.39 +
    3.40    // Writes some parameters preceded by "#".  Does nothing in the "bad" state.
    3.41    void writeCommented(std::ostream& out) const;
    3.42  
    3.43 @@ -95,8 +102,8 @@
    3.44  private:
    3.45    Sls::AlignmentEvaluer evaluer;
    3.46    Sls::FrameshiftAlignmentEvaluer frameshiftEvaluer;
    3.47 -  double databaseLength;
    3.48 -  double numOfStrands;
    3.49 +  double databaseSeqLen;
    3.50 +  double databaseSeqNum;
    3.51  };
    3.52  
    3.53  }
     4.1 --- a/src/LastalArguments.cc	Wed Aug 21 14:32:10 2019 +0900
     4.2 +++ b/src/LastalArguments.cc	Mon Oct 07 10:02:38 2019 +0900
     4.3 @@ -439,7 +439,6 @@
     4.4  }
     4.5  
     4.6  void LastalArguments::setDefaultsFromAlphabet( bool isDna, bool isProtein,
     4.7 -					       double numLettersInReference,
     4.8  					       bool isKeepRefLowercase,
     4.9  					       int refTantanSetting,
    4.10                                                 bool isCaseSensitiveSeeds,
    4.11 @@ -486,11 +485,6 @@
    4.12      // use a lower target %identity than we otherwise would.
    4.13    }
    4.14  
    4.15 -  if( maxEvalue < 0 ){
    4.16 -    double r = std::max( numLettersInReference, 1.0 );  // avoid divide-by-0
    4.17 -    maxEvalue = 1e18 / (numOfStrands() * r * queryLettersPerRandomAlignment);
    4.18 -  }
    4.19 -
    4.20    if (insOpenCosts.empty()) insOpenCosts = delOpenCosts;
    4.21    if (insGrowCosts.empty()) insGrowCosts = delGrowCosts;
    4.22  
    4.23 @@ -560,7 +554,9 @@
    4.24    return (percentage == 100) ? val : val * percentage / 100;
    4.25  }
    4.26  
    4.27 -void LastalArguments::setDefaultsFromMatrix( double lambda, int minScore ){
    4.28 +void LastalArguments::setDefaultsFromMatrix(double lambda, int minScore,
    4.29 +					    double maxEvalueDefault) {
    4.30 +  if (maxEvalue < 0) maxEvalue = maxEvalueDefault;
    4.31    if( outputType < 2 && minScoreGapped < 0 ) minScoreGapped = minScoreGapless;
    4.32    if( minScoreGapped < 0 ){
    4.33      if( outputType > 0 && minScore < 0 )
    4.34 @@ -611,7 +607,8 @@
    4.35    stream << " y=" << maxDropGapless;
    4.36    stream << " z=" << maxDropFinal;
    4.37    stream << " D=" << queryLettersPerRandomAlignment;
    4.38 -  stream << " E=" << maxEvalue;
    4.39 +  if (maxEvalue >= 0)
    4.40 +    stream << " E=" << maxEvalue;
    4.41    stream << '\n';
    4.42  
    4.43    stream << '#';
     5.1 --- a/src/LastalArguments.hh	Wed Aug 21 14:32:10 2019 +0900
     5.2 +++ b/src/LastalArguments.hh	Mon Oct 07 10:02:38 2019 +0900
     5.3 @@ -35,12 +35,12 @@
     5.4  
     5.5    // set default option values that depend on input files:
     5.6    void setDefaultsFromAlphabet( bool isDna, bool isProtein,
     5.7 -				double numLettersInReference,
     5.8  				bool isKeepRefLowercase, int refTantanSetting,
     5.9                                  bool isCaseSensitiveSeeds, bool isVolumes,
    5.10  				size_t refMinimizerWindow,
    5.11  				unsigned realNumOfThreads );
    5.12 -  void setDefaultsFromMatrix( double lambda, int minScore );
    5.13 +  void setDefaultsFromMatrix(double lambda, int minScore,
    5.14 +			     double maxEvalueDefault);
    5.15  
    5.16    // write the parameter settings, starting each line with "#":
    5.17    void writeCommented( std::ostream& stream ) const;
     6.1 --- a/src/lastal.cc	Wed Aug 21 14:32:10 2019 +0900
     6.2 +++ b/src/lastal.cc	Mon Oct 07 10:02:38 2019 +0900
     6.3 @@ -253,7 +253,7 @@
     6.4  
     6.5  // Calculate statistical parameters for the alignment scoring scheme
     6.6  static void calculateScoreStatistics(const std::string& matrixName,
     6.7 -				     countT refLetters) {
     6.8 +				     countT refLetters, countT refMaxSeqLen) {
     6.9    const mcf::SubstitutionMatrixStats &stats = fwdMatrices.stats;
    6.10    if (stats.isBad()) return;
    6.11    const char *canonicalMatrixName = ScoreMatrix::canonicalName( matrixName );
    6.12 @@ -270,7 +270,8 @@
    6.13  		  del.openCost, del.growCost, ins.openCost, ins.growCost,
    6.14                    args.frameshiftCost, geneticCode, isStandardGeneticCode,
    6.15  		  args.verbosity );
    6.16 -    evaluer.setSearchSpace( refLetters, args.numOfStrands() );
    6.17 +    countT m = std::min(refMaxSeqLen, refLetters);
    6.18 +    evaluer.setSearchSpace(refLetters, m, args.numOfStrands());
    6.19      if( args.verbosity > 0 ) evaluer.writeParameters( std::cerr );
    6.20    }catch( const Sls::error& e ){
    6.21      LOG( "can't get E-value parameters for this scoring scheme" );
    6.22 @@ -281,7 +282,8 @@
    6.23  void readOuterPrj( const std::string& fileName, unsigned& volumes,
    6.24                     size_t& refMinimizerWindow, size_t& minSeedLimit,
    6.25  		   bool& isKeepRefLowercase, int& refTantanSetting,
    6.26 -                   countT& refSequences, countT& refLetters ){
    6.27 +                   countT& refSequences, countT& refLetters,
    6.28 +		   countT& refMaxSeqLen ){
    6.29    std::ifstream f( fileName.c_str() );
    6.30    if( !f ) ERR( "can't open file: " + fileName );
    6.31    unsigned version = 0;
    6.32 @@ -299,6 +301,7 @@
    6.33      if( word == "version" ) iss >> version;
    6.34      if( word == "alphabet" ) iss >> alph;
    6.35      if( word == "numofsequences" ) iss >> refSequences;
    6.36 +    if( word == "maxsequencelength" ) iss >> refMaxSeqLen;
    6.37      if( word == "numofletters" ) iss >> refLetters;
    6.38      if( word == "maxunsortedinterval" ) iss >> minSeedLimit;
    6.39      if( word == "keeplowercase" ) iss >> isKeepRefLowercase;
    6.40 @@ -313,6 +316,7 @@
    6.41  
    6.42    if( f.eof() && !f.bad() ) f.clear();
    6.43    if( alph.letters.empty() || refSequences+1 == 0 || refLetters+1 == 0 ||
    6.44 +      (refMaxSeqLen == 0 && refLetters != 0) ||
    6.45        isCaseSensitiveSeeds < 0 || numOfIndexes > maxNumOfIndexes ||
    6.46        referenceFormat == sequenceFormat::prb ||
    6.47        referenceFormat == sequenceFormat::pssm ){
    6.48 @@ -1106,12 +1110,13 @@
    6.49    size_t minSeedLimit = 0;
    6.50    countT refSequences = -1;
    6.51    countT refLetters = -1;
    6.52 +  countT refMaxSeqLen = -1;
    6.53    bool isKeepRefLowercase = true;
    6.54    int refTantanSetting = 0;
    6.55    readOuterPrj( args.lastdbName + ".prj", volumes,
    6.56  		refMinimizerWindow, minSeedLimit,
    6.57  		isKeepRefLowercase, refTantanSetting,
    6.58 -		refSequences, refLetters );
    6.59 +		refSequences, refLetters, refMaxSeqLen );
    6.60    bool isDna = (alph.letters == alph.dna);
    6.61    bool isProtein = alph.isProtein();
    6.62  
    6.63 @@ -1140,7 +1145,7 @@
    6.64    aligners.resize( decideNumberOfThreads( args.numOfThreads,
    6.65  					  args.programName, args.verbosity ) );
    6.66    bool isMultiVolume = (volumes+1 > 0 && volumes > 1);
    6.67 -  args.setDefaultsFromAlphabet( isDna, isProtein, refLetters,
    6.68 +  args.setDefaultsFromAlphabet( isDna, isProtein,
    6.69  				isKeepRefLowercase, refTantanSetting,
    6.70                                  isCaseSensitiveSeeds, isMultiVolume,
    6.71  				refMinimizerWindow, aligners.size() );
    6.72 @@ -1167,9 +1172,16 @@
    6.73      query.initForAppending(1);
    6.74    }
    6.75  
    6.76 -  if( args.outputType > 0 ) calculateScoreStatistics( matrixName, refLetters );
    6.77 -  int minScore = evaluer.minScore( args.maxEvalue, 1e18 );
    6.78 -  args.setDefaultsFromMatrix( fwdMatrices.stats.lambda(), minScore );
    6.79 +  if (args.outputType > 0) {
    6.80 +    calculateScoreStatistics(matrixName, refLetters, refMaxSeqLen);
    6.81 +  }
    6.82 +
    6.83 +  int minScore = (args.maxEvalue > 0) ? evaluer.minScore(args.maxEvalue, 1e18)
    6.84 +    : evaluer.minScore(args.queryLettersPerRandomAlignment);
    6.85 +
    6.86 +  double eg2 = evaluer.isGood() ? 1e18 * evaluer.evaluePerArea(minScore) : -1;
    6.87 +  args.setDefaultsFromMatrix(fwdMatrices.stats.lambda(), minScore, eg2);
    6.88 +
    6.89    minScoreGapless = calcMinScoreGapless(refLetters);
    6.90    if( !isMultiVolume ) args.minScoreGapless = minScoreGapless;
    6.91    if( args.outputType > 0 ) makeQualityScorers();
     7.1 --- a/src/lastdb.cc	Wed Aug 21 14:32:10 2019 +0900
     7.2 +++ b/src/lastdb.cc	Mon Oct 07 10:02:38 2019 +0900
     7.3 @@ -97,7 +97,7 @@
     7.4  
     7.5  void writePrjFile( const std::string& fileName, const LastdbArguments& args,
     7.6  		   const Alphabet& alph, countT sequenceCount,
     7.7 -		   const std::vector<countT>& letterCounts,
     7.8 +		   size_t maxSeqLen, const std::vector<countT>& letterCounts,
     7.9  		   bool isFastq, unsigned volumes, unsigned numOfIndexes,
    7.10  		   const std::string& seedText ){
    7.11    countT letterTotal = std::accumulate( letterCounts.begin(),
    7.12 @@ -109,6 +109,7 @@
    7.13      << '\n';
    7.14    f << "alphabet=" << alph << '\n';
    7.15    f << "numofsequences=" << sequenceCount << '\n';
    7.16 +  f << "maxsequencelength=" << maxSeqLen << '\n';
    7.17    f << "numofletters=" << letterTotal << '\n';
    7.18    f << "letterfreqs=";
    7.19    for( unsigned i = 0; i < letterCounts.size(); ++i ){
    7.20 @@ -176,11 +177,11 @@
    7.21  }
    7.22  
    7.23  // Make one database volume, from one batch of sequences
    7.24 -void makeVolume( std::vector< CyclicSubsetSeed >& seeds,
    7.25 -		 MultiSequence& multi, const LastdbArguments& args,
    7.26 -		 const Alphabet& alph, std::vector<countT>& letterCounts,
    7.27 -		 const TantanMasker& masker, unsigned numOfThreads,
    7.28 -		 const std::string& seedText, const std::string& baseName ){
    7.29 +void makeVolume(std::vector<CyclicSubsetSeed>& seeds, MultiSequence& multi,
    7.30 +		const LastdbArguments& args, const Alphabet& alph,
    7.31 +		std::vector<countT>& letterCounts, size_t& maxSeqLenSeen,
    7.32 +		const TantanMasker& masker, unsigned numOfThreads,
    7.33 +		const std::string& seedText, const std::string& baseName) {
    7.34    size_t numOfIndexes = seeds.size();
    7.35    size_t numOfSequences = multi.finishedSequences();
    7.36    size_t textLength = multi.seqBeg(numOfSequences);
    7.37 @@ -192,6 +193,13 @@
    7.38      letterCounts[c] += letterCountsInThisVolume[c];
    7.39    }
    7.40  
    7.41 +  size_t maxSeqLenInThisVolume = 0;
    7.42 +  for (size_t i = 0; i < numOfSequences; ++i) {
    7.43 +    size_t s = multi.seqLen(i);
    7.44 +    maxSeqLenInThisVolume = std::max(maxSeqLenInThisVolume, s);
    7.45 +  }
    7.46 +  maxSeqLenSeen = std::max(maxSeqLenSeen, maxSeqLenInThisVolume);
    7.47 +
    7.48    if (args.isCountsOnly) return;
    7.49  
    7.50    if( args.tantanSetting ){
    7.51 @@ -201,8 +209,8 @@
    7.52  
    7.53    LOG( "writing..." );
    7.54    writePrjFile( baseName + ".prj", args, alph, numOfSequences,
    7.55 -		letterCountsInThisVolume, multi.qualsPerLetter(), -1,
    7.56 -		numOfIndexes, seedText );
    7.57 +		maxSeqLenInThisVolume, letterCountsInThisVolume,
    7.58 +		multi.qualsPerLetter(), -1, numOfIndexes, seedText );
    7.59    multi.toFiles( baseName );
    7.60  
    7.61    for( unsigned x = 0; x < numOfIndexes; ++x ){
    7.62 @@ -289,6 +297,7 @@
    7.63    countT sequenceCount = 0;
    7.64    std::vector<countT> letterCounts( alph.size );
    7.65    indexT maxSeqLen = 0;
    7.66 +  size_t maxSeqLenSeen = 0;
    7.67  
    7.68    char defaultInputName[] = "-";
    7.69    char* defaultInput[] = { defaultInputName, 0 };
    7.70 @@ -320,7 +329,7 @@
    7.71  	    } else {
    7.72  	      std::string baseName =
    7.73  		args.lastdbName + stringify(volumeNumber++);
    7.74 -	      makeVolume(seeds, multi, args, alph, letterCounts,
    7.75 +	      makeVolume(seeds, multi, args, alph, letterCounts, maxSeqLenSeen,
    7.76  			 tantanMasker, numOfThreads, seedText, baseName);
    7.77  	      multi.eraseAllButTheLastSequence();
    7.78  	    }
    7.79 @@ -332,7 +341,7 @@
    7.80        }
    7.81        else{
    7.82  	std::string baseName = args.lastdbName + stringify(volumeNumber++);
    7.83 -	makeVolume( seeds, multi, args, alph, letterCounts,
    7.84 +	makeVolume( seeds, multi, args, alph, letterCounts, maxSeqLenSeen,
    7.85  		    tantanMasker, numOfThreads, seedText, baseName );
    7.86  	multi.reinitForAppending();
    7.87        }
    7.88 @@ -341,18 +350,18 @@
    7.89  
    7.90    if( multi.finishedSequences() > 0 ){
    7.91      if( volumeNumber == 0 && !args.isCountsOnly ){
    7.92 -      makeVolume( seeds, multi, args, alph, letterCounts,
    7.93 +      makeVolume( seeds, multi, args, alph, letterCounts, maxSeqLenSeen,
    7.94  		  tantanMasker, numOfThreads, seedText, args.lastdbName );
    7.95        return;
    7.96      }
    7.97      std::string baseName = args.lastdbName + stringify(volumeNumber++);
    7.98 -    makeVolume( seeds, multi, args, alph, letterCounts,
    7.99 +    makeVolume( seeds, multi, args, alph, letterCounts, maxSeqLenSeen,
   7.100  		tantanMasker, numOfThreads, seedText, baseName );
   7.101    }
   7.102  
   7.103    writePrjFile( args.lastdbName + ".prj", args, alph, sequenceCount,
   7.104 -		letterCounts, multi.qualsPerLetter(), volumeNumber,
   7.105 -		seeds.size(), seedText );
   7.106 +		maxSeqLenSeen, letterCounts, multi.qualsPerLetter(),
   7.107 +		volumeNumber, seeds.size(), seedText );
   7.108  }
   7.109  
   7.110  int main( int argc, char** argv )
     8.1 --- a/test/last-test.out	Wed Aug 21 14:32:10 2019 +0900
     8.2 +++ b/test/last-test.out	Mon Oct 07 10:02:38 2019 +0900
     8.3 @@ -1,6 +1,6 @@
     8.4  TEST lastal -fMAF -u1 -j5 -p ../data/HOXD70.mat -z3400 -e2500 /tmp/last-test galGal3-M-32.fa
     8.5  #
     8.6 -# a=400 b=30 A=400 B=30 e=2500 d=1384 x=3400 y=962 z=3400 D=1e+06 E=2.80852e+07
     8.7 +# a=400 b=30 A=400 B=30 e=2500 d=1384 x=3400 y=962 z=3400 D=1e+06 E=2.80488e+07
     8.8  # R=10 u=1 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=96.1735 g=1 j=5 Q=0
     8.9  # /tmp/last-test
    8.10  # Reference sequences=2 normal letters=17803
    8.11 @@ -104,7 +104,7 @@
    8.12  
    8.13  TEST lastal -fTAB -i1 -w0 -e40 /tmp/last-test galGal3-M-32.fa
    8.14  #
    8.15 -# a=7 b=1 A=7 B=1 e=40 d=-1 x=39 y=9 z=39 D=1e+06 E=2.80852e+07
    8.16 +# a=7 b=1 A=7 B=1 e=40 d=-1 x=39 y=9 z=39 D=1e+06 E=1.13155e+07
    8.17  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=0 t=0.910239 j=3 Q=0
    8.18  # /tmp/last-test
    8.19  # Reference sequences=2 normal letters=17803
    8.20 @@ -150,7 +150,7 @@
    8.21  
    8.22  TEST lastal -j0 -i1 -s0 /tmp/last-test galGal3-M-32.fa
    8.23  #
    8.24 -# a=7 b=1 A=7 B=1 e=-1 d=-1 x=0 y=0 z=0 D=1e+06 E=5.61703e+07
    8.25 +# a=7 b=1 A=7 B=1 e=-1 d=-1 x=0 y=0 z=0 D=1e+06
    8.26  # R=10 u=0 s=0 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=-1 j=0 Q=0
    8.27  # /tmp/last-test
    8.28  # Reference sequences=2 normal letters=17803
    8.29 @@ -193,7 +193,7 @@
    8.30  
    8.31  TEST lastal -Q1 -e90 -a9 /tmp/last-test SRR001981-1k.fastq
    8.32  #
    8.33 -# a=9 b=9 A=9 B=9 e=90 d=-1 x=89 y=44 z=89 D=1e+06 E=2.80852e+07
    8.34 +# a=9 b=9 A=9 B=9 e=90 d=-1 x=89 y=44 z=89 D=1e+06 E=2.38195e+07
    8.35  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=4.36661 j=3 Q=1
    8.36  # /tmp/last-test
    8.37  # Reference sequences=2 normal letters=17803
    8.38 @@ -290,7 +290,7 @@
    8.39  
    8.40  TEST lastal -F12 -pBL62 -e40 -G ../examples/vertebrateMito.gc -j1 /tmp/last-test galGal3-M-32.fa
    8.41  #
    8.42 -# a=11 b=2 A=11 B=2 F=12 e=40 d=40 x=39 y=31 z=39 D=1e+06 E=1.01833e+09
    8.43 +# a=11 b=2 A=11 B=2 F=12 e=40 d=40 x=39 y=31 z=39 D=1e+06 E=1.06052e+09
    8.44  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=3.08611 j=1 Q=0
    8.45  # /tmp/last-test
    8.46  # Reference sequences=1 normal letters=491
    8.47 @@ -374,7 +374,7 @@
    8.48  
    8.49  TEST lastal -s0 -f0 -e18 /tmp/last-test galGal3-M-32.fa
    8.50  #
    8.51 -# a=7 b=1 A=7 B=1 e=18 d=13 x=17 y=9 z=17 D=1e+06 E=5.61703e+07
    8.52 +# a=7 b=1 A=7 B=1 e=18 d=13 x=17 y=9 z=17 D=1e+06 E=3.38586e+07
    8.53  # R=10 u=2 s=0 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=0.910239 j=3 Q=0
    8.54  # /tmp/last-test
    8.55  # Reference sequences=2 normal letters=17803
    8.56 @@ -410,7 +410,7 @@
    8.57  
    8.58  TEST lastal -s0 -f0 -p asymmetric.mat -e2000 /tmp/last-test galGal3-M-32.fa
    8.59  #
    8.60 -# a=500 b=50 A=500 B=50 e=2000 d=1428 x=1999 y=992 z=1999 D=1e+06 E=5.61703e+07
    8.61 +# a=500 b=50 A=500 B=50 e=2000 d=1428 x=1999 y=992 z=1999 D=1e+06 E=5.62802e+07
    8.62  # R=10 u=2 s=0 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=99.2157 j=3 Q=0
    8.63  # /tmp/last-test
    8.64  # Reference sequences=2 normal letters=17803
    8.65 @@ -446,7 +446,7 @@
    8.66  
    8.67  TEST lastal -Q3 -e110 /tmp/last-test illumina100.txt
    8.68  #
    8.69 -# a=21 b=9 A=21 B=9 e=110 d=63 x=109 y=44 z=109 D=1e+06 E=2.80852e+07
    8.70 +# a=21 b=9 A=21 B=9 e=110 d=63 x=109 y=44 z=109 D=1e+06 E=2.59649e+07
    8.71  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=4.36661 j=3 Q=3
    8.72  # /tmp/last-test
    8.73  # Reference sequences=2 normal letters=17803
    8.74 @@ -488,7 +488,7 @@
    8.75  
    8.76  TEST lastal -Q4 -e90 /tmp/last-test mouse_tss_prb.txt
    8.77  #
    8.78 -# a=21 b=9 A=21 B=9 e=90 d=63 x=89 y=44 z=89 D=1e+06 E=2.80852e+07
    8.79 +# a=21 b=9 A=21 B=9 e=90 d=63 x=89 y=44 z=89 D=1e+06 E=2.59649e+07
    8.80  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=4.36661 j=3 Q=4
    8.81  # /tmp/last-test
    8.82  # Reference sequences=2 normal letters=17803
    8.83 @@ -545,7 +545,7 @@
    8.84  
    8.85  TEST lastal -Q1 -j6 -e90 -a9 /tmp/last-test SRR001981-1k.fastq
    8.86  #
    8.87 -# a=9 b=9 A=9 B=9 e=90 d=63 x=89 y=44 z=89 D=1e+06 E=2.80852e+07
    8.88 +# a=9 b=9 A=9 B=9 e=90 d=63 x=89 y=44 z=89 D=1e+06 E=2.38195e+07
    8.89  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=4.36661 g=1 j=6 Q=1
    8.90  # /tmp/last-test
    8.91  # Reference sequences=2 normal letters=17803
    8.92 @@ -653,7 +653,7 @@
    8.93  
    8.94  TEST lastal -r3 -q3 -a21 -c2 -e60 -f0 /tmp/last-test galGal3-M-32.fa
    8.95  #
    8.96 -# a=21 b=1 A=21 B=1 c=2 e=60 d=39 x=59 y=27 z=59 D=1e+06 E=2.80852e+07
    8.97 +# a=21 b=1 A=21 B=1 c=2 e=60 d=39 x=59 y=27 z=59 D=1e+06 E=2.46893e+07
    8.98  # R=10 u=2 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=2.73072 j=3 Q=0
    8.99  # /tmp/last-test
   8.100  # Reference sequences=2 normal letters=17803
   8.101 @@ -695,7 +695,7 @@
   8.102  
   8.103  TEST lastal -F12 -pBL62 -c2 -e40 -f0 /tmp/last-test galGal3-M-32.fa
   8.104  #
   8.105 -# a=11 b=2 A=11 B=2 c=2 F=12 e=40 d=33 x=39 y=31 z=39 D=1e+06 E=1.01833e+09
   8.106 +# a=11 b=2 A=11 B=2 c=2 F=12 e=40 d=33 x=39 y=31 z=39 D=1e+06 E=8.45245e+08
   8.107  # R=10 u=2 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=3.08611 j=3 Q=0
   8.108  # /tmp/last-test
   8.109  # Reference sequences=1 normal letters=491
   8.110 @@ -752,7 +752,7 @@
   8.111  
   8.112  TEST lastal -j1 -f0 -e37 -m100 /tmp/last-test Q2LCP8.fa
   8.113  #
   8.114 -# a=11 b=2 A=11 B=2 e=37 d=37 x=36 y=31 z=36 D=1e+06 E=2.03666e+09
   8.115 +# a=11 b=2 A=11 B=2 e=37 d=37 x=36 y=31 z=36 D=1e+06 E=1.84673e+09
   8.116  # R=10 u=2 s=1 S=0 M=0 T=0 m=100 l=1 n=100 k=1 w=1000 t=3.08611 j=1 Q=0
   8.117  # /tmp/last-test
   8.118  # Reference sequences=1 normal letters=491
   8.119 @@ -809,7 +809,7 @@
   8.120  
   8.121  TEST lastal -Q1 -r1 -q2 -a1 -b1 -e44 -m100 -s0 /tmp/last-test sd-ccs-100.fq
   8.122  #
   8.123 -# a=1 b=1 A=1 B=1 e=44 d=10 x=43 y=8 z=43 D=1e+06 E=2.18336e+07
   8.124 +# a=1 b=1 A=1 B=1 e=44 d=10 x=43 y=8 z=43 D=1e+06 E=1.06199e+07
   8.125  # R=10 u=0 s=0 S=0 M=0 T=0 m=100 l=1 n=100 k=1 w=1000 t=0.750353 j=3 Q=1
   8.126  # /tmp/last-test
   8.127  # Reference sequences=100 normal letters=45801
   8.128 @@ -840,7 +840,7 @@
   8.129  # batch 1
   8.130  # batch 2
   8.131  # batch 3
   8.132 -a score=212 EG2=3.7e-88 E=2e-99
   8.133 +a score=212 EG2=3.7e-88 E=1.2e-99
   8.134  s S1_100   0 239 + 239 TGCGATGTTGACACGTCTTATCCTTCAATGTCGGATGCGAC-CTGCCGCGTCTTATCCGACCTACGGTTGGCACGCATCCGGCAATGTTGTAAGGCTACAACCCTAACGCA-ATTTCAGCGCCTGACGTTT-AACACGCCAGCACGCTCTG-CCGCCATTAACCCGAGATTACGCACAAAACGCAGCGGCGGCAGATTATTA-TGAATCCGGCATAAAACAGATCCA-ACCACTTTGCATAATGA
   8.135  q S1_100               <5~\Nm@b;l]5Il:SUH\+NFNL?~Pb7f@&w~\IPXrZ?-TOV;H<a_UO~~]Ho\UWQJUQEA~KaF*;RFH;N_0~NX=JDvO<E6PTP78i4f~S9$^[F6kQSw@-/C9<SaIM4O~I_h?Cx*B-N;~>R+,8SU`PH)IBE:I-N~sNFF(RW}DrJ<TF_V4m=JEKOFfNH~pmVN/~h1?L~P.7JW;9@A-]9H+Co44GLa~*HK2-@nBIlNL-Zudk`*f<q<>;a'~i<
   8.136  s S1_55  276 241 - 578 TGCGATGTTGACACGTCTTATCCTTCAATGTCGGATGCGACGCTGCCGCGTCT-ATCCGACC-ACGGTTGGCACGCATCCGGCAATGTTGTAAGGCTACA-CCCTAACGCATATTTCAGCGCCTGACGTTTCAACACGCCAGCACGCTCTGCCCGCCATTAACCCGAGATTACGCACAAAACGCAGCGGCGGCAGATTATTACTGAATCCGGCATAAAACAGATCCATACCAC-TTGCATAATGA
   8.137 @@ -848,7 +848,7 @@
   8.138  
   8.139  # batch 4
   8.140  # batch 5
   8.141 -a score=212 EG2=3.7e-88 E=1.4e-106
   8.142 +a score=212 EG2=3.7e-88 E=1.1e-106
   8.143  s S1_55  61 241 + 578 TCATTATGCAA-GTGGTATGGATCTGTTTTATGCCGGATTCAGTAATAATCTGCCGCCGCTGCGTTTTGTGCGTAATCTCGGGTTAATGGCGGGCAGAGCGTGCTGGCGTGTTGAAACGTCAGGCGCTGAAATATGCGTTAGGG-TGTAGCCTTACAACATTGCCGGATGCGTGCCAACCGT-GGTCGGAT-AGACGCGGCAGCGTCGCATCCGACATTGAAGGATAAGACGTGTCAACATCGCA
   8.144  q S1_55               ?-;F8)M='&1-J+1B(&-27B&,@<L.917D'=/>Q*55,7?)4%H7DFD1>F8.8.-(9>>4*ME)(11/9%*NC%.6='A+?'3%0:);&B@,9;';>3</+@!A:../(A4BC9BFG>/I0&FB=K-3(D4%44AM4AR7-93'3><%:20742+OT(,*KA8M,I8G)0F:D/5WL'-%8,(B95M-1,B6(8&;7-1Z)5'RAH%-=?&>&.:;9A:EM+)&>*5L)??XJA@>7@>+0
   8.145  s S1_100  0 239 - 239 TCATTATGCAAAGTGGT-TGGATCTGTTTTATGCCGGATTCA-TAATAATCTGCCGCCGCTGCGTTTTGTGCGTAATCTCGGGTTAATGGCGG-CAGAGCGTGCTGGCGTGTT-AAACGTCAGGCGCTGAAAT-TGCGTTAGGGTTGTAGCCTTACAACATTGCCGGATGCGTGCCAACCGTAGGTCGGATAAGACGCGGCAG-GTCGCATCCGACATTGAAGGATAAGACGTGTCAACATCGCA
   8.146 @@ -858,7 +858,7 @@
   8.147  
   8.148  TEST lastal -Q1 -e90 -a9 -f0 /tmp/last-test0 SRR001981-1k.fastq
   8.149  #
   8.150 -# a=9 b=9 A=9 B=9 e=90 d=63 x=89 y=44 z=89 D=1e+06 E=2.98063e+07
   8.151 +# a=9 b=9 A=9 B=9 e=90 d=63 x=89 y=44 z=89 D=1e+06 E=2.97882e+07
   8.152  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=4.36661 j=3 Q=1
   8.153  # /tmp/last-test0
   8.154  # Reference sequences=1 normal letters=16775
   8.155 @@ -906,7 +906,7 @@
   8.156  
   8.157  TEST lastal -s0 -f0 -e18 /tmp/last-test galGal3-M-32.fa
   8.158  #
   8.159 -# a=7 b=1 A=7 B=1 e=18 d=12 x=17 y=9 z=17 D=1e+06 E=5.61703e+07
   8.160 +# a=7 b=1 A=7 B=1 e=18 d=12 x=17 y=9 z=17 D=1e+06 E=3.38586e+07
   8.161  # R=10 u=2 s=0 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=0.910239 j=3 Q=0
   8.162  # /tmp/last-test
   8.163  # Reference sequences=2 normal letters=17803
   8.164 @@ -942,7 +942,7 @@
   8.165  
   8.166  TEST lastal -s0 -f0 -e18 /tmp/last-test galGal3-M-32.fa
   8.167  #
   8.168 -# a=7 b=1 A=7 B=1 e=18 d=13 x=17 y=9 z=17 D=1e+06 E=5.61703e+07
   8.169 +# a=7 b=1 A=7 B=1 e=18 d=13 x=17 y=9 z=17 D=1e+06 E=3.38586e+07
   8.170  # R=10 u=2 s=0 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=0.910239 j=3 Q=0
   8.171  # /tmp/last-test
   8.172  # Reference sequences=2 normal letters=17803
   8.173 @@ -978,7 +978,7 @@
   8.174  
   8.175  TEST lastal -T1 -Q1 -e60 -a9 -f0 /tmp/last-test SRR001981-1k.fastq
   8.176  #
   8.177 -# a=9 b=9 A=9 B=9 e=60 d=60 x=59 y=44 z=59 D=1e+06 E=2.80852e+07
   8.178 +# a=9 b=9 A=9 B=9 e=60 d=60 x=59 y=44 z=59 D=1e+06 E=2.38195e+07
   8.179  # R=10 u=0 s=2 S=0 M=0 T=1 m=10 l=1 n=10 k=1 w=1000 t=4.36661 j=3 Q=1
   8.180  # /tmp/last-test
   8.181  # Reference sequences=2 normal letters=17803
   8.182 @@ -1017,7 +1017,7 @@
   8.183  
   8.184  TEST lastal -T1 -Q1 -e60 -a9 -j4 /tmp/last-test SRR001981-1k.fastq
   8.185  #
   8.186 -# a=9 b=9 A=9 B=9 e=60 d=60 x=59 y=44 z=59 D=1e+06 E=2.80852e+07
   8.187 +# a=9 b=9 A=9 B=9 e=60 d=60 x=59 y=44 z=59 D=1e+06 E=2.38195e+07
   8.188  # R=10 u=0 s=2 S=0 M=0 T=1 m=10 l=1 n=10 k=1 w=1000 t=4.36661 j=4 Q=1
   8.189  # /tmp/last-test
   8.190  # Reference sequences=2 normal letters=17803
   8.191 @@ -1077,7 +1077,7 @@
   8.192  
   8.193  TEST lastal -T1 -Q1 -e60 -j1 -fTAB /tmp/last-test SRR001981-1k.fastq
   8.194  #
   8.195 -# a=21 b=9 A=21 B=9 e=60 d=60 x=59 y=44 z=59 D=1e+06 E=2.80852e+07
   8.196 +# a=21 b=9 A=21 B=9 e=60 d=60 x=59 y=44 z=59 D=1e+06 E=2.56174e+07
   8.197  # R=10 u=0 s=2 S=0 M=0 T=1 m=10 l=1 n=10 k=1 w=1000 t=4.36661 j=1 Q=1
   8.198  # /tmp/last-test
   8.199  # Reference sequences=2 normal letters=17803
   8.200 @@ -1117,7 +1117,7 @@
   8.201  
   8.202  TEST lastal -s0 -e18 -j7 /tmp/last-test galGal3-M-32.fa
   8.203  #
   8.204 -# a=7 b=1 A=7 B=1 e=18 d=13 x=17 y=9 z=17 D=1e+06 E=5.61703e+07
   8.205 +# a=7 b=1 A=7 B=1 e=18 d=13 x=17 y=9 z=17 D=1e+06 E=3.38586e+07
   8.206  # R=10 u=0 s=0 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=0.910239 j=7 Q=0
   8.207  # /tmp/last-test
   8.208  # Reference sequences=2 normal letters=17803
   8.209 @@ -1180,7 +1180,7 @@
   8.210  
   8.211  TEST lastal -e34 -k128 -f0 /tmp/last-test galGal3-M-32.fa
   8.212  #
   8.213 -# a=7 b=1 A=7 B=1 e=34 d=11 x=33 y=9 z=33 D=1e+06 E=3.01732e+07
   8.214 +# a=7 b=1 A=7 B=1 e=34 d=11 x=33 y=9 z=33 D=1e+06 E=1.13155e+07
   8.215  # R=10 u=2 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=128 w=1000 t=0.910239 j=3 Q=0
   8.216  # /tmp/last-test
   8.217  # Reference sequences=1 normal letters=16571
   8.218 @@ -1220,7 +1220,7 @@
   8.219  
   8.220  TEST lastal -pHOXD70 -e4500 -k128 -f0 /tmp/last-test galGal3-M-32.fa
   8.221  #
   8.222 -# a=400 b=30 A=400 B=30 e=4500 d=1177 x=4499 y=962 z=4499 D=1e+06 E=3.01732e+07
   8.223 +# a=400 b=30 A=400 B=30 e=4500 d=1177 x=4499 y=962 z=4499 D=1e+06 E=3.02506e+07
   8.224  # R=10 u=2 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=128 w=1000 t=96.1735 j=3 Q=0
   8.225  # /tmp/last-test
   8.226  # Reference sequences=1 normal letters=16571
   8.227 @@ -1256,7 +1256,7 @@
   8.228  
   8.229  TEST lastal -e34 -C2 -f0 /tmp/last-test galGal3-M-32.fa
   8.230  #
   8.231 -# a=7 b=1 A=7 B=1 e=34 d=12 x=33 y=9 z=33 D=1e+06 E=3.01732e+07
   8.232 +# a=7 b=1 A=7 B=1 e=34 d=12 x=33 y=9 z=33 D=1e+06 E=1.13155e+07
   8.233  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 C=2 k=1 w=1000 t=0.910239 j=3 Q=0
   8.234  # /tmp/last-test
   8.235  # Reference sequences=1 normal letters=16571
   8.236 @@ -1296,7 +1296,7 @@
   8.237  
   8.238  TEST lastal -e34 -f0 -l30 /tmp/last-test galGal3-M-32.fa
   8.239  #
   8.240 -# a=7 b=1 A=7 B=1 e=34 d=12 x=33 y=9 z=33 D=1e+06 E=3.01732e+07
   8.241 +# a=7 b=1 A=7 B=1 e=34 d=12 x=33 y=9 z=33 D=1e+06 E=1.13155e+07
   8.242  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=30 n=10 k=1 w=1000 t=0.910239 j=3 Q=0
   8.243  # /tmp/last-test
   8.244  # Reference sequences=1 normal letters=16571
   8.245 @@ -1335,7 +1335,7 @@
   8.246  
   8.247  TEST lastal -j0 -l4 -L11 -s0 /tmp/last-test galGal3-M-32.fa
   8.248  #
   8.249 -# a=7 b=1 A=7 B=1 e=-1 d=-1 x=0 y=0 z=0 D=1e+06 E=5.61703e+07
   8.250 +# a=7 b=1 A=7 B=1 e=-1 d=-1 x=0 y=0 z=0 D=1e+06
   8.251  # R=10 u=0 s=0 S=0 M=0 T=0 m=10 l=4 L=11 n=10 k=1 w=1000 t=-1 j=0 Q=0
   8.252  # /tmp/last-test
   8.253  # Reference sequences=2 normal letters=17803
   8.254 @@ -1371,7 +1371,7 @@
   8.255  
   8.256  TEST lastal -e40 /tmp/last-test hg19-M.fa
   8.257  #
   8.258 -# a=7 b=1 A=7 B=1 e=40 d=13 x=39 y=9 z=39 D=1e+06 E=2.80852e+07
   8.259 +# a=7 b=1 A=7 B=1 e=40 d=13 x=39 y=9 z=39 D=1e+06 E=1.13155e+07
   8.260  # R=01 u=2 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=0.910239 j=3 Q=0
   8.261  # /tmp/last-test
   8.262  # Reference sequences=2 normal letters=17803
   8.263 @@ -1427,7 +1427,7 @@
   8.264  
   8.265  TEST lastal -e100 /tmp/last-test Q5GS15.fa
   8.266  #
   8.267 -# a=11 b=2 A=11 B=2 e=100 d=33 x=99 y=31 z=99 D=1e+06 E=2.03666e+09
   8.268 +# a=11 b=2 A=11 B=2 e=100 d=33 x=99 y=31 z=99 D=1e+06 E=2.01411e+09
   8.269  # R=01 u=2 s=1 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=3.08611 j=3 Q=0
   8.270  # /tmp/last-test
   8.271  # Reference sequences=1 normal letters=491
   8.272 @@ -1474,7 +1474,7 @@
   8.273  
   8.274  TEST lastal -F15 -pBLOSUM62 -e100 /tmp/last-test galGal3-M-32.fa
   8.275  #
   8.276 -# a=11 b=2 A=11 B=2 F=15 e=100 d=33 x=99 y=31 z=99 D=1e+06 E=1.01833e+09
   8.277 +# a=11 b=2 A=11 B=2 F=15 e=100 d=33 x=99 y=31 z=99 D=1e+06 E=8.74201e+08
   8.278  # R=01 u=2 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=3.08611 j=3 Q=0
   8.279  # /tmp/last-test
   8.280  # Reference sequences=1 normal letters=491
   8.281 @@ -1522,7 +1522,7 @@
   8.282  
   8.283  TEST lastal -pAT77 -e100 -s0 /tmp/last-test at-rich.fa
   8.284  #
   8.285 -# a=15 b=2 A=15 B=2 e=100 d=46 x=99 y=29 z=99 D=1e+06 E=1.66834e+07
   8.286 +# a=15 b=2 A=15 B=2 e=100 d=46 x=99 y=29 z=99 D=1e+06 E=1.60098e+07
   8.287  # R=02 u=2 s=0 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=2.9408 j=3 Q=0
   8.288  # /tmp/last-test
   8.289  # Reference sequences=1 normal letters=59940
   8.290 @@ -1634,7 +1634,7 @@
   8.291  
   8.292  TEST lastal -Q1 -a15 -b3 -e80 /tmp/last-test nano.fq
   8.293  #
   8.294 -# a=15 b=3 A=15 B=3 e=80 d=63 x=79 y=44 z=79 D=1e+06 E=2.80852e+07
   8.295 +# a=15 b=3 A=15 B=3 e=80 d=63 x=79 y=44 z=79 D=1e+06 E=2.60518e+07
   8.296  # R=01 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=4.36661 j=3 Q=1
   8.297  # /tmp/last-test
   8.298  # Reference sequences=2 normal letters=17803
   8.299 @@ -1673,7 +1673,7 @@
   8.300  TEST lastal -a1 -D1000 /tmp/last-test galGal3-M-32.fa
   8.301  lastal: quality data not used for non-fastq query versus fastq reference
   8.302  #
   8.303 -# a=1 b=1 A=1 B=1 e=23 d=14 x=22 y=9 z=22 D=1000 E=1.09168e+10
   8.304 +# a=1 b=1 A=1 B=1 e=23 d=14 x=22 y=9 z=22 D=1000 E=6.44057e+09
   8.305  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=0.910239 j=3 Q=0
   8.306  # /tmp/last-test
   8.307  # Reference sequences=100 normal letters=45801
   8.308 @@ -1701,17 +1701,17 @@
   8.309  # name start alnSize strand seqSize alignment
   8.310  #
   8.311  # batch 0
   8.312 -a score=24 EG2=3.3e+09 E=5.1
   8.313 +a score=24 EG2=3.3e+09 E=4.4
   8.314  s S1_36   411 53 +   604 GAATGGCATCAGAAGGAGCTAATAATGAGCAGAAAAACCCAACGTTACTCTAA
   8.315  q S1_36                  XWl?TeW3A~]_PEo~Q]rL[m5T@DV~P[F<Ex6u\M~~LJJ[^CV~]OJ7G
   8.316  s chrM  11090 52 + 16775 GAATGAACTCAGGGCG-GCTTAGAATGAGCAGAATAACAGAAAGTTAGTCTAA
   8.317  
   8.318 -a score=23 EG2=6.4e+09 E=9.8
   8.319 +a score=23 EG2=6.4e+09 E=8.6
   8.320  s S1_32   18 45 +   545 CCTGGCGGAAAAGAGA-TC-CTATACCG-AAGGTAAAGATGAAATGGC
   8.321  q S1_32                 GQ6tRL?88?6M%=>E-=0-==:4_+E3-Qo&4<k;Z;0GKK5@\]@H
   8.322  s chrM  2456 48 + 16775 CCCGGCGCAATAGAGGCTAACTGTACCGCAAGGGAAAGATGAAATAGC
   8.323  
   8.324 -a score=23 EG2=6.4e+09 E=9.8
   8.325 +a score=23 EG2=6.4e+09 E=8.6
   8.326  s S1_77   55 63 +   339 CAATAGATTTTACTC-TAACCAGTGTGCTATT--TTTTAGC-AGACTTATACATGGACGAATACTCA
   8.327  q S1_77                 4r=ShVl8SDFTR:\-ZAK=?KnOPb`SUWBI--)R~7O6D-%'@`V760BIQ5?UCDHARA:Jbb+
   8.328  s chrM  1295 63 + 16775 CAAAAGACTT-AGTCCTAACC--TTT-CTATTGGTTTTTGCTAGACATATACATGCAAGTATCCGCA
   8.329 @@ -1722,7 +1722,7 @@
   8.330  TEST lastal -Q4 -a1 -D100 /tmp/last-test mouse_tss_prb.txt
   8.331  lastal: quality data not used for non-fastq query versus fastq reference
   8.332  #
   8.333 -# a=1 b=9 A=1 B=9 e=75 d=67 x=74 y=44 z=74 D=100 E=1.09168e+11
   8.334 +# a=1 b=9 A=1 B=9 e=75 d=67 x=74 y=44 z=74 D=100 E=1.07541e+11
   8.335  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=4.36661 j=3 Q=4
   8.336  # /tmp/last-test
   8.337  # Reference sequences=100 normal letters=45801
   8.338 @@ -1756,7 +1756,7 @@
   8.339  s 12    13 14 -  36 GTTTTCCCGAAGAA
   8.340  q 12                hhhhhhhhhhhhhh
   8.341  
   8.342 -a score=82 EG2=2.8e+10 E=0.036
   8.343 +a score=82 EG2=2.8e+10 E=0.035
   8.344  s S1_98 201 18 + 401 GG-TATGGGTGCGGCGCTG
   8.345  q S1_98              j}-J~i~~y~~BPs_M~;{
   8.346  s 22      0 18 +  36 GGATAT-GGTGCGGCGCTG
   8.347 @@ -1768,13 +1768,13 @@
   8.348  s 33    14 14 -  36 GTTTTCCCGAAGAA
   8.349  q 33                hhhhhhhhhhhhhh
   8.350  
   8.351 -a score=78 EG2=6e+10 E=0.083
   8.352 +a score=78 EG2=6e+10 E=0.082
   8.353  s S1_63 503 13 + 727 TGCTGGTGATTGT
   8.354  q S1_63              3EPTS<J~N7zc~
   8.355  s 61      4 13 +  36 TGCTGGTGATTGT
   8.356  q 61                 hhhhhhhhhhhhh
   8.357  
   8.358 -a score=85 EG2=1.6e+10 E=0.019
   8.359 +a score=85 EG2=1.6e+10 E=0.018
   8.360  s S1_100 133 22 + 239 CGCCAGCACGCTCTGCCGCCAT
   8.361  q S1_100              R+,8SU`PH)IBE:IN~sNFF(
   8.362  s 83       0 19 -  36 CGCC-G--CGCTCTGCCGCCAT
   8.363 @@ -1791,7 +1791,7 @@
   8.364  TEST lastal -Q1 -pBL62 -F12 -D1000 /tmp/last-test sd-ccs-100.fq
   8.365  lastal: quality data not used for DNA-versus-protein alignment
   8.366  #
   8.367 -# a=11 b=2 A=11 B=2 F=12 e=36 d=33 x=35 y=31 z=35 D=1000 E=1.01833e+12
   8.368 +# a=11 b=2 A=11 B=2 F=12 e=36 d=33 x=35 y=31 z=35 D=1000 E=8.12312e+11
   8.369  # R=00 u=2 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=3.08611 j=3 Q=1
   8.370  # /tmp/last-test
   8.371  # Reference sequences=1 normal letters=491
   8.372 @@ -1943,7 +1943,7 @@
   8.373  
   8.374  TEST lastal -fBlastTab -pBL62 -b1 -F15 -D1e3 /tmp/last-test galGal3-M-32.fa
   8.375  #
   8.376 -# a=11 b=1 A=11 B=1 F=15 e=36 d=33 x=35 y=31 z=35 D=1000 E=1.01833e+12
   8.377 +# a=11 b=1 A=11 B=1 F=15 e=36 d=33 x=35 y=31 z=35 D=1000 E=9.29879e+11
   8.378  # R=00 u=2 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=3.08611 j=3 Q=0
   8.379  # /tmp/last-test
   8.380  # Reference sequences=1 normal letters=491
   8.381 @@ -2019,7 +2019,7 @@
   8.382  
   8.383  TEST lastal -fBlastTab+ -pBL62 -b1 -F15 -D1e3 /tmp/last-test galGal3-M-32.fa
   8.384  #
   8.385 -# a=11 b=1 A=11 B=1 F=15 e=36 d=33 x=35 y=31 z=35 D=1000 E=1.01833e+12
   8.386 +# a=11 b=1 A=11 B=1 F=15 e=36 d=33 x=35 y=31 z=35 D=1000 E=9.29879e+11
   8.387  # R=00 u=2 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=3.08611 j=3 Q=0
   8.388  # /tmp/last-test
   8.389  # Reference sequences=1 normal letters=491
   8.390 @@ -2095,7 +2095,7 @@
   8.391  
   8.392  TEST lastal -fTAB -pBL62 -b1 -F0 -D1e3 /tmp/last-test galGal3-M-32.fa
   8.393  #
   8.394 -# a=11 b=1 A=11 B=1 F=0 e=36 d=33 x=35 y=31 z=35 D=1000 E=1.01833e+12
   8.395 +# a=11 b=1 A=11 B=1 F=0 e=36 d=33 x=35 y=31 z=35 D=1000 E=8.72478e+11
   8.396  # R=00 u=2 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=3.08611 j=3 Q=0
   8.397  # /tmp/last-test
   8.398  # Reference sequences=1 normal letters=491
   8.399 @@ -2175,7 +2175,7 @@
   8.400  
   8.401  TEST lastal -S1 -pBISF -Q1 -e120 -f0 -j4 /tmp/last-test bs100.fastq
   8.402  #
   8.403 -# a=21 b=9 A=21 B=9 e=120 d=63 x=119 y=44 z=119 D=1e+06 E=3.01732e+07
   8.404 +# a=21 b=9 A=21 B=9 e=120 d=63 x=119 y=44 z=119 D=1e+06 E=2.97648e+07
   8.405  # R=10 u=0 s=2 S=1 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=4.37109 j=4 Q=1
   8.406  # /tmp/last-test
   8.407  # Reference sequences=1 normal letters=16571
   8.408 @@ -2302,7 +2302,7 @@
   8.409  
   8.410  TEST lastal -D1000 -fTAB -K2 /tmp/last-test galGal3-M-32.fa
   8.411  #
   8.412 -# a=7 b=1 A=7 B=1 e=15 d=13 x=14 y=9 z=14 D=1000 E=3.01732e+10
   8.413 +# a=7 b=1 A=7 B=1 e=15 d=13 x=14 y=9 z=14 D=1000 E=2.43016e+10
   8.414  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 K=2 k=1 w=1000 t=0.910239 j=3 Q=0
   8.415  # /tmp/last-test
   8.416  # Reference sequences=1 normal letters=16571
   8.417 @@ -2484,7 +2484,7 @@
   8.418  
   8.419  TEST lastal -W19 -fTAB /tmp/last-test hg19-M.fa
   8.420  #
   8.421 -# a=7 b=1 A=7 B=1 e=22 d=13 x=21 y=9 z=21 D=1e+06 E=2.80852e+07
   8.422 +# a=7 b=1 A=7 B=1 e=22 d=13 x=21 y=9 z=21 D=1e+06 E=1.13155e+07
   8.423  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 W=19 w=1000 t=0.910239 j=3 Q=0
   8.424  # /tmp/last-test
   8.425  # Reference sequences=2 normal letters=17803
   8.426 @@ -2515,12 +2515,12 @@
   8.427  540	chrM	11243	1829	+	16775	chrM	10518	1821	+	16571	1692,8:0,129	EG2=3.1e-240	E=1.6e-249
   8.428  538	chrM	4097	1794	+	16775	chrM	3334	1787	+	16571	914,0:2,27,2:0,44,9:0,66,0:3,61,1:0,670	EG2=2.8e-239	E=1.4e-248
   8.429  524	chrM	14904	1124	+	16775	chrM	14756	1124	+	16571	1124	EG2=1.3e-232	E=6.6e-242
   8.430 -509	chrM	9353	1389	+	16775	chrM	8638	1389	+	16571	1389	EG2=1.8e-225	E=9.2e-235
   8.431 +509	chrM	9353	1389	+	16775	chrM	8638	1389	+	16571	1389	EG2=1.8e-225	E=9.1e-235
   8.432  473	chrM	13197	1385	+	16775	chrM	12461	1388	+	16571	510,0:3,875	EG2=2.4e-208	E=1.3e-217
   8.433  186	chrM	1702	574	+	16775	chrM	1042	564	+	16571	114,2:0,92,4:0,33,1:0,27,1:0,45,0:1,32,0:1,61,6:0,55,0:2,101	EG2=9.8e-72	E=5.5e-81
   8.434  160	chrM	3629	255	+	16775	chrM	2908	255	+	16571	146,1:0,53,0:1,55	EG2=2.3e-59	E=1.3e-68
   8.435  122	chrM	3112	338	+	16775	chrM	2409	334	+	16571	41,0:2,38,1:0,32,2:0,37,3:0,184	EG2=2.8e-41	E=1.6e-50
   8.436 -114	chrM	5978	529	+	16775	chrM	5208	523	+	16571	233,0:3,84,5:0,39,3:0,14,0:1,69,2:0,80	EG2=1.8e-37	E=1.1e-46
   8.437 +114	chrM	5978	529	+	16775	chrM	5208	523	+	16571	233,0:3,84,5:0,39,3:0,14,0:1,69,2:0,80	EG2=1.8e-37	E=1e-46
   8.438  108	chrM	1243	356	+	16775	chrM	595	352	+	16571	56,0:1,82,3:0,63,1:0,19,1:0,55,0:1,57,1:0,18	EG2=1.3e-34	E=7.5e-44
   8.439  95	chrM	2432	295	+	16775	chrM	1742	281	+	16571	26,1:0,12,4:0,25,4:0,11,2:0,57,0:1,42,1:0,24,3:0,83	EG2=2e-28	E=1.2e-37
   8.440  92	chrM	10825	349	+	16775	chrM	10106	346	+	16571	299,3:0,47	EG2=5.4e-27	E=3.1e-36
   8.441 @@ -2534,7 +2534,7 @@
   8.442  
   8.443  TEST lastal -W1 -M -fTAB /tmp/last-test hg19-M.fa
   8.444  #
   8.445 -# a=0 b=4 A=0 B=4 e=42 d=23 x=41 y=16 z=41 D=1e+06 E=2.80852e+07
   8.446 +# a=0 b=4 A=0 B=4 e=42 d=23 x=41 y=16 z=41 D=1e+06 E=2.19598e+07
   8.447  # R=10 u=0 s=2 S=0 M=1 T=0 m=10 l=1 n=10 k=1 w=1000 t=1.57796 j=3 Q=0
   8.448  # /tmp/last-test
   8.449  # Reference sequences=2 normal letters=17803
   8.450 @@ -2563,7 +2563,7 @@
   8.451  # batch 0
   8.452  1757	chrM	6536	2451	+	16775	chrM	5790	2456	+	16571	27,0:1,2,1:0,21,1:0,1,1:0,14,1:0,3,0:1,15,3:0,19,0:8,61,1:0,3,0:1,71,0:1,2,0:1,2,1:0,2,1:0,105,0:1,4,1:0,70,1:0,2,0:1,79,1:0,4,0:1,34,0:1,5,0:2,21,1:0,2,0:1,48,0:1,2,1:0,48,1:0,2,0:1,15,1:0,7,0:1,387,0:1,6,1:0,292,0:1,4,1:0,52,0:1,2,1:0,51,1:0,2,0:1,58,1:0,4,0:1,5,1:0,3,1:0,3,0:1,1,0:1,59,0:1,2,0:1,1,0:1,23,1:0,4,0:1,23,2:0,6,1:0,2,1:0,2,0:1,3,1:0,4,1:0,17,0:1,3,1:0,7,1:0,4,0:1,5,1:0,3,0:1,10,1:0,19,1:0,5,0:1,6,1:0,11,0:1,2,1:0,93,0:2,4,1:0,4,1:0,23,0:1,1,0:1,1,0:1,182,0:1,11,1:0,286,1:0,2,0:1,20	EG2=0	E=0
   8.453  1264	chrM	11669	2917	+	16775	chrM	10944	2907	+	16571	21,1:0,3,0:1,45,1:0,3,0:1,3,2:0,6,0:2,38,0:1,4,1:0,48,0:1,2,1:0,22,1:0,8,0:1,49,1:0,3,0:1,14,1:0,4,0:1,21,1:0,2,0:1,15,1:0,10,3:0,2,1:0,2,1:0,20,0:1,1,0:1,3,0:2,3,0:1,1,0:1,15,0:2,1,0:2,5,1:0,7,2:0,1,1:0,28,1:0,5,0:1,142,0:1,4,1:0,255,1:0,4,0:1,139,0:2,14,1:0,4,1:0,4,1:0,3,1:0,5,0:2,12,1:0,2,0:1,17,0:1,2,1:0,16,0:2,9,1:0,2,1:0,6,0:1,5,0:1,6,2:0,16,1:0,6,0:1,16,1:0,6,0:1,5,1:0,10,0:1,22,0:1,9,1:0,47,1:0,2,0:1,4,0:2,4,1:0,1,1:0,12,3:0,1,5:0,4,0:1,2,1:0,20,1:0,12,1:0,5,0:1,3,0:1,79,2:0,1,1:0,2,1:0,1,1:0,1,1:0,5,0:1,2,1:0,1,1:0,1,2:0,18,0:1,3,1:0,17,3:0,20,0:1,3,0:1,17,0:2,4,0:1,6,0:1,5,0:3,52,1:0,4,0:1,27,0:1,3,2:0,13,0:1,27,1:0,2,0:1,136,1:0,3,0:1,159,1:0,5,0:1,9,0:1,14,1:0,34,0:1,4,1:0,10,0:1,4,0:2,158,2:0,1,1:0,1,3:0,3,1:0,1,1:0,11,0:2,3,0:1,1,0:1,2,0:1,1,0:1,2,0:1,2,0:1,15,2:0,11,0:1,2,0:1,170,0:1,4,1:0,174,1:0,3,1:0,2,0:1,1,0:1,38,0:1,3,1:0,9,0:1,3,1:0,6,0:1,4,1:0,17,1:0,2,0:1,11,1:0,7,0:1,16,0:1,4,0:1,11,1:0,4,1:0,25,1:0,2,0:1,6,3:0,3,2:0,12,0:2,4,0:1,16,0:1,4,0:1,7,1:0,3,1:0,2,1:0,2,0:1,2,0:1,7,0:1,44,1:0,1,1:0,5	EG2=4.8e-283	E=2.4e-292
   8.454 -813	chrM	14883	1145	+	16775	chrM	14737	1143	+	16571	5,0:1,6,1:0,1,1:0,6,1:0,5,0:1,7,1:0,40,0:1,4,1:0,41,0:1,5,1:0,91,1:0,8,0:1,147,0:1,1,0:1,2,1:0,3,1:0,101,0:1,7,1:0,36,0:1,5,1:0,55,1:0,7,0:1,113,1:0,2,0:1,8,0:1,6,1:0,68,1:0,2,0:1,155,0:1,2,1:0,28,1:0,4,0:1,53,1:0,3,0:1,34,0:1,4,1:0,61	EG2=3.9e-176	E=2.1e-185
   8.455 +813	chrM	14883	1145	+	16775	chrM	14737	1143	+	16571	5,0:1,6,1:0,1,1:0,6,1:0,5,0:1,7,1:0,40,0:1,4,1:0,41,0:1,5,1:0,91,1:0,8,0:1,147,0:1,1,0:1,2,1:0,3,1:0,101,0:1,7,1:0,36,0:1,5,1:0,55,1:0,7,0:1,113,1:0,2,0:1,8,0:1,6,1:0,68,1:0,2,0:1,155,0:1,2,1:0,28,1:0,4,0:1,53,1:0,3,0:1,34,0:1,4,1:0,61	EG2=3.9e-176	E=2e-185
   8.456  711	chrM	9633	1385	+	16775	chrM	8918	1381	+	16571	23,0:1,5,1:0,123,0:1,10,2:0,13,1:0,10,0:1,3,0:1,5,0:1,3,1:0,124,0:1,4,1:0,108,1:0,2,0:1,10,1:0,4,0:1,169,0:1,7,1:0,145,1:0,3,0:1,56,1:0,6,0:1,129,0:1,6,1:0,129,1:0,12,1:0,1,1:0,4,0:2,19,0:1,4,0:1,3,1:0,4,1:0,4,0:1,7,1:0,2,3:0,6,1:0,2,1:0,2,0:1,2,0:1,5,1:0,4,0:1,23,0:1,6,1:0,12,1:0,1,1:0,5,0:1,2,0:1,70,0:2,3,1:0,1,1:0,55	EG2=5.8e-152	E=3.1e-161
   8.457  461	chrM	4084	702	+	16775	chrM	3319	704	+	16571	5,0:2,2,0:1,5,1:0,169,1:0,6,0:1,33,1:0,4,0:1,8,1:0,5,0:1,11,0:1,4,1:0,2,0:1,4,1:0,8,0:1,2,1:0,185,0:1,10,1:0,14,1:0,2,0:1,15,1:0,13,0:1,185	EG2=1.1e-92	E=5.9e-102
   8.458  390	chrM	1707	603	+	16775	chrM	1047	592	+	16571	72,1:0,3,0:1,2,0:1,3,0:1,3,1:0,1,1:0,18,1:0,4,1:0,75,1:0,2,0:1,2,0:1,2,1:0,11,2:0,3,2:0,28,1:0,10,0:1,5,1:0,11,0:1,2,1:0,3,1:0,3,1:0,3,0:1,34,0:1,30,0:1,56,2:0,3,2:0,4,2:0,53,1:0,1,1:0,1,1:0,3,1:0,1,1:0,6,0:2,8,0:2,10,0:1,8,0:1,1,0:1,52,0:1,3,0:1,2,1:0,7,1:0,4,1:0,20	EG2=7.1e-76	E=4e-85
   8.459 @@ -2583,7 +2583,7 @@
   8.460  
   8.461  TEST lastal -fTAB -j4 -A2 -B2 /tmp/last-test hg19-M.fa
   8.462  #
   8.463 -# a=7 b=1 A=2 B=2 e=22 d=13 x=21 y=9 z=21 D=1e+06 E=2.80852e+07
   8.464 +# a=7 b=1 A=2 B=2 e=22 d=13 x=21 y=9 z=21 D=1e+06 E=1.16774e+07
   8.465  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 W=3 w=1000 t=0.910239 j=4 Q=0
   8.466  # /tmp/last-test
   8.467  # Reference sequences=2 normal letters=17803
   8.468 @@ -2613,11 +2613,11 @@
   8.469  1116	chrM	6510	2477	+	16775	chrM	5764	2482	+	16571	78,2:0,35,3:0,17,0:8,445,0:1,8,0:2,1082,0:3,67,5:0,57,1:0,19,1:0,150,0:2,4,0:1,503	EG2=0	E=0	fullScore=1.13e+03
   8.470  583	chrM	9353	1821	+	16775	chrM	8638	1814	+	16571	432,0:1,10,2:0,28,0:1,934,1:0,21,0:1,26,4:0,313,3:0,47	EG2=2.8e-259	E=1.4e-268	fullScore=593
   8.471  545	chrM	4097	1794	+	16775	chrM	3334	1787	+	16571	914,0:2,27,2:0,26,0:1,13,10:0,70,0:3,61,1:0,670	EG2=2.7e-241	E=1.4e-250	fullScore=558
   8.472 -540	chrM	11243	1829	+	16775	chrM	10518	1821	+	16571	1692,8:0,129	EG2=6.3e-239	E=3.3e-248	fullScore=547
   8.473 +540	chrM	11243	1829	+	16775	chrM	10518	1821	+	16571	1692,8:0,129	EG2=6.3e-239	E=3.2e-248	fullScore=547
   8.474  524	chrM	14904	1124	+	16775	chrM	14756	1124	+	16571	1124	EG2=2.4e-231	E=1.2e-240	fullScore=528
   8.475  475	chrM	13197	1385	+	16775	chrM	12461	1388	+	16571	510,0:3,875	EG2=3.8e-208	E=2e-217	fullScore=490
   8.476  203	chrM	1702	617	+	16775	chrM	1042	606	+	16571	114,2:0,92,4:0,33,1:0,27,1:0,45,0:1,32,0:1,61,6:0,54,0:1,10,0:1,85,0:1,14,2:0,34	EG2=2.3e-79	E=1.3e-88	fullScore=221
   8.477 -164	chrM	3629	255	+	16775	chrM	2908	255	+	16571	146,1:0,53,0:1,55	EG2=6.8e-61	E=3.9e-70	fullScore=169
   8.478 +164	chrM	3629	255	+	16775	chrM	2908	255	+	16571	146,1:0,53,0:1,55	EG2=6.8e-61	E=3.8e-70	fullScore=169
   8.479  131	chrM	2890	560	+	16775	chrM	2171	572	+	16571	27,0:3,8,0:3,32,0:1,15,0:1,24,0:2,37,0:2,22,0:1,13,0:2,19,0:1,66,0:2,38,1:0,32,2:0,37,3:0,184	EG2=2.9e-45	E=1.6e-54	fullScore=151
   8.480  120	chrM	5978	529	+	16775	chrM	5208	523	+	16571	233,0:3,84,5:0,39,3:0,14,0:1,69,2:0,80	EG2=4.6e-40	E=2.7e-49	fullScore=131
   8.481  119	chrM	1234	365	+	16775	chrM	585	362	+	16571	9,0:1,56,0:1,82,3:0,63,1:0,19,1:0,55,0:1,57,1:0,18	EG2=1.4e-39	E=7.9e-49	fullScore=127
   8.482 @@ -2636,7 +2636,7 @@
   8.483  
   8.484  TEST lastal -fTAB -j4 -Q1 -e90 -a7 -A12 -B4 /tmp/last-test SRR001981-1k.fastq
   8.485  #
   8.486 -# a=7 b=9 A=12 B=4 e=90 d=63 x=89 y=44 z=89 D=1e+06 E=2.80852e+07
   8.487 +# a=7 b=9 A=12 B=4 e=90 d=63 x=89 y=44 z=89 D=1e+06 E=2.41478e+07
   8.488  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 W=3 w=1000 t=4.36661 j=4 Q=1
   8.489  # /tmp/last-test
   8.490  # Reference sequences=2 normal letters=17803
   8.491 @@ -2684,7 +2684,7 @@
   8.492  
   8.493  TEST lastal -fTAB -j4 -Q0 -e90 -a7 -A12 -B4 -b9 -r6 -q18 /tmp/last-test SRR001981-1k.fastq
   8.494  #
   8.495 -# a=7 b=9 A=12 B=4 e=90 d=63 x=89 y=44 z=89 D=1e+06 E=2.80852e+07
   8.496 +# a=7 b=9 A=12 B=4 e=90 d=63 x=89 y=44 z=89 D=1e+06 E=2.41478e+07
   8.497  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 W=3 w=1000 t=4.36661 j=4 Q=0
   8.498  # /tmp/last-test
   8.499  # Reference sequences=2 normal letters=17803
   8.500 @@ -2726,7 +2726,7 @@
   8.501  
   8.502  TEST lastal -N2 /tmp/last-test hg19-M.fa
   8.503  #
   8.504 -# a=7 b=1 A=7 B=1 e=22 d=13 x=21 y=9 z=21 D=1e+06 E=2.80852e+07
   8.505 +# a=7 b=1 A=7 B=1 e=22 d=13 x=21 y=9 z=21 D=1e+06 E=1.13155e+07
   8.506  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 N=2 k=1 W=3 w=1000 t=0.910239 j=3 Q=0
   8.507  # /tmp/last-test
   8.508  # Reference sequences=2 normal letters=17803
   8.509 @@ -2770,7 +2770,7 @@
   8.510  
   8.511  TEST tr Tt Uu < hg19-M.fa | lastal -N2 /tmp/last-test
   8.512  #
   8.513 -# a=7 b=1 A=7 B=1 e=22 d=13 x=21 y=9 z=21 D=1e+06 E=2.80852e+07
   8.514 +# a=7 b=1 A=7 B=1 e=22 d=13 x=21 y=9 z=21 D=1e+06 E=1.13155e+07
   8.515  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 N=2 k=1 W=3 w=1000 t=0.910239 j=3 Q=0
   8.516  # /tmp/last-test
   8.517  # Reference sequences=2 normal letters=17803
   8.518 @@ -2814,7 +2814,7 @@
   8.519  
   8.520  TEST lastal -W19 -z50% -fTAB /tmp/last-test hg19-M.fa
   8.521  #
   8.522 -# a=7 b=1 A=7 B=1 e=22 d=13 x=10 y=9 z=10 D=1e+06 E=2.80852e+07
   8.523 +# a=7 b=1 A=7 B=1 e=22 d=13 x=10 y=9 z=10 D=1e+06 E=1.13155e+07
   8.524  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 W=19 w=1000 t=0.910239 j=3 Q=0
   8.525  # /tmp/last-test
   8.526  # Reference sequences=2 normal letters=17803
   8.527 @@ -2843,7 +2843,7 @@
   8.528  # batch 0
   8.529  586	chrM	7095	1072	+	16775	chrM	6355	1072	+	16571	1072	EG2=3.9e-262	E=2e-271
   8.530  524	chrM	14904	1124	+	16775	chrM	14756	1124	+	16571	1124	EG2=1.3e-232	E=6.6e-242
   8.531 -404	chrM	9824	918	+	16775	chrM	9109	918	+	16571	918	EG2=1.7e-175	E=9e-185
   8.532 +404	chrM	9824	918	+	16775	chrM	9109	918	+	16571	918	EG2=1.7e-175	E=8.9e-185
   8.533  376	chrM	11669	982	+	16775	chrM	10944	982	+	16571	982	EG2=3.6e-162	E=1.9e-171
   8.534  309	chrM	4097	689	+	16775	chrM	3334	689	+	16571	689	EG2=2.8e-130	E=1.5e-139
   8.535  251	chrM	6645	445	+	16775	chrM	5902	445	+	16571	445	EG2=1.1e-102	E=6.2e-112
   8.536 @@ -2882,7 +2882,7 @@
   8.537  
   8.538  TEST lastal -W19 -x1g -fTAB /tmp/last-test hg19-M.fa
   8.539  #
   8.540 -# a=7 b=1 A=7 B=1 e=22 d=13 x=8 y=8 z=21 D=1e+06 E=2.80852e+07
   8.541 +# a=7 b=1 A=7 B=1 e=22 d=13 x=8 y=8 z=21 D=1e+06 E=1.13155e+07
   8.542  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 W=19 w=1000 t=0.910239 j=3 Q=0
   8.543  # /tmp/last-test
   8.544  # Reference sequences=2 normal letters=17803
   8.545 @@ -2913,12 +2913,12 @@
   8.546  540	chrM	11243	1829	+	16775	chrM	10518	1821	+	16571	1692,8:0,129	EG2=3.1e-240	E=1.6e-249
   8.547  538	chrM	4097	1794	+	16775	chrM	3334	1787	+	16571	914,0:2,27,2:0,44,9:0,66,0:3,61,1:0,670	EG2=2.8e-239	E=1.4e-248
   8.548  524	chrM	14904	1124	+	16775	chrM	14756	1124	+	16571	1124	EG2=1.3e-232	E=6.6e-242
   8.549 -509	chrM	9353	1389	+	16775	chrM	8638	1389	+	16571	1389	EG2=1.8e-225	E=9.2e-235
   8.550 +509	chrM	9353	1389	+	16775	chrM	8638	1389	+	16571	1389	EG2=1.8e-225	E=9.1e-235
   8.551  473	chrM	13197	1385	+	16775	chrM	12461	1388	+	16571	510,0:3,875	EG2=2.4e-208	E=1.3e-217
   8.552  186	chrM	1702	574	+	16775	chrM	1042	564	+	16571	114,2:0,92,4:0,33,1:0,27,1:0,45,0:1,32,0:1,61,6:0,55,0:2,101	EG2=9.8e-72	E=5.5e-81
   8.553  160	chrM	3629	255	+	16775	chrM	2908	255	+	16571	146,1:0,53,0:1,55	EG2=2.3e-59	E=1.3e-68
   8.554  122	chrM	3112	338	+	16775	chrM	2409	334	+	16571	41,0:2,38,1:0,32,2:0,37,3:0,184	EG2=2.8e-41	E=1.6e-50
   8.555 -114	chrM	5978	529	+	16775	chrM	5208	523	+	16571	233,0:3,84,5:0,39,3:0,14,0:1,69,2:0,80	EG2=1.8e-37	E=1.1e-46
   8.556 +114	chrM	5978	529	+	16775	chrM	5208	523	+	16571	233,0:3,84,5:0,39,3:0,14,0:1,69,2:0,80	EG2=1.8e-37	E=1e-46
   8.557  108	chrM	1243	356	+	16775	chrM	595	352	+	16571	56,0:1,82,3:0,63,1:0,19,1:0,55,0:1,57,1:0,18	EG2=1.3e-34	E=7.5e-44
   8.558  95	chrM	2432	295	+	16775	chrM	1742	281	+	16571	26,1:0,12,4:0,25,4:0,11,2:0,57,0:1,42,1:0,24,3:0,83	EG2=2e-28	E=1.2e-37
   8.559  92	chrM	10825	349	+	16775	chrM	10106	346	+	16571	299,3:0,47	EG2=5.4e-27	E=3.1e-36
   8.560 @@ -2929,7 +2929,7 @@
   8.561  
   8.562  TEST lastal -L9 -m0 -j1 -q0 -d5 -n6 -fTAB /tmp/last-test tttttccccc.fa
   8.563  #
   8.564 -# a=7 b=1 A=7 B=1 e=5 d=5 x=4 y=0 z=4 D=1e+06 E=2.80852e+07
   8.565 +# a=7 b=1 A=7 B=1 e=5 d=5 x=4 y=0 z=4 D=1e+06
   8.566  # R=10 u=0 s=2 S=0 M=0 T=0 m=0 l=1 L=9 n=6 k=1 W=3 w=1000 t=-1 j=1 Q=0
   8.567  # /tmp/last-test
   8.568  # Reference sequences=2 normal letters=17803
   8.569 @@ -2957,7 +2957,7 @@
   8.570  
   8.571  TEST lastal -Q1 -T1 -j1 -s0 /tmp/last-test SRR001981-1k.fastq
   8.572  #
   8.573 -# a=21 b=9 A=21 B=9 e=105 d=105 x=104 y=44 z=104 D=1e+06 E=2.78234e+07
   8.574 +# a=21 b=9 A=21 B=9 e=102 d=102 x=101 y=44 z=101 D=1e+06 E=5.09225e+07
   8.575  # R=01 u=2 s=0 S=0 M=0 T=1 m=10 l=1 n=10 k=1 w=1000 t=4.36661 j=1 Q=1
   8.576  # /tmp/last-test
   8.577  # Reference sequences=1000 normal letters=35941
   8.578 @@ -2985,68 +2985,92 @@
   8.579  # name start alnSize strand seqSize alignment
   8.580  #
   8.581  # batch 0
   8.582 -a score=180 EG2=0.89 E=1.4e-13
   8.583 +a score=103 EG2=4e+07 E=1.3e-05
   8.584 +s SRR001981.110  0 21 + 36 GCTTACAAATAAAGACTGTTC
   8.585 +q SRR001981.110            IIIIIIIIIIIIIIIIIIIII
   8.586 +s SRR001981.24  15 21 - 36 GCTTGCAAATAAAGACTGTTC
   8.587 +q SRR001981.24             I+II<IIIIIIIIIIIIIIII
   8.588 +
   8.589 +a score=103 EG2=4e+07 E=1.3e-05
   8.590 +s SRR001981.24   0 21 + 36 GAACAGTCTTTATTTGCAAGC
   8.591 +q SRR001981.24             IIIIIIIIIIIIIIII<II+I
   8.592 +s SRR001981.110 15 21 - 36 GAACAGTCTTTATTTGTAAGC
   8.593 +q SRR001981.110            IIIIIIIIIIIIIIIIIIIII
   8.594 +
   8.595 +a score=180 EG2=0.89 E=2.4e-14
   8.596  s SRR001981.530 0 30 + 36 GTTTTTCCAAATTTCGGTCATCAAATAATC
   8.597  q SRR001981.530           IIIIIIIIIIIIIIIIIIIIIIIIIIIII<
   8.598  s SRR001981.125 6 30 - 36 GTTTTTCCAAATTTCGGTCATCAAATAATC
   8.599  q SRR001981.125           I?-?;.+8IIIBI3IIIIIIIIIIIIII>I
   8.600  
   8.601 -a score=108 EG2=1.3e+07 E=7.9e-06
   8.602 +a score=108 EG2=1.3e+07 E=3.8e-06
   8.603  s SRR001981.412 14 22 + 36 ATTTTTCACTTATACACATAAT
   8.604  q SRR001981.412            IIIIIIIIIIIIIIAIIIII3I
   8.605  s SRR001981.172  0 22 - 36 ATTTTTCACTTATACATATAAT
   8.606  q SRR001981.172            II=.+8III2IIIIIIIIIIII
   8.607  
   8.608  # batch 1
   8.609 -a score=182 EG2=0.56 E=8.4e-14
   8.610 +a score=182 EG2=0.56 E=1.3e-14
   8.611  s SRR001981.589 0 34 + 36 GTTTTGAGCAGCTAATTACCAGTGATAACGTTCC
   8.612  q SRR001981.589           I@IIIAIIIGIDIIAIIIIII,I9'II-I%%II,
   8.613  s SRR001981.293 2 34 - 36 GTTTTGAGCAGCTAATTACCAGTGCTAACGATCC
   8.614  q SRR001981.293           IFII>IIIIIII<III@IIIIIIIIIIIIIIIII
   8.615  
   8.616 -a score=171 EG2=7 E=1.5e-12
   8.617 +a score=171 EG2=7 E=3e-13
   8.618  s SRR001981.530 6 30 + 36 CCAAATTTCGGTCATCAAATAATCATTTAT
   8.619  q SRR001981.530           IIIIIIIIIIIIIIIIIIIIIII<=IIIII
   8.620  s SRR001981.394 0 30 - 36 ACAAATTTCGGTCATCAAATAATCATTTAT
   8.621  q SRR001981.394           %/III5=5II5I,IBIIIIIIIIIIIGIII
   8.622  
   8.623 -a score=108 EG2=1.3e+07 E=7.9e-06
   8.624 +a score=108 EG2=1.3e+07 E=3.8e-06
   8.625  s SRR001981.172 14 22 + 36 ATTATATGTATAAGTGAAAAAT
   8.626  q SRR001981.172            IIIIIIIIIIII2III8+.=II
   8.627  s SRR001981.412  0 22 - 36 ATTATGTGTATAAGTGAAAAAT
   8.628  q SRR001981.412            I3IIIIIAIIIIIIIIIIIIII
   8.629  
   8.630  # batch 2
   8.631 -a score=171 EG2=7 E=1.5e-12
   8.632 +a score=102 EG2=5.1e+07 E=1.7e-05
   8.633 +s SRR001981.873  0 25 + 36 GTCAGAATATGGAATGTCATACTTC
   8.634 +q SRR001981.873            IIIIIIIIIIIIHIIIIIIIIIIII
   8.635 +s SRR001981.483 11 25 - 36 GTCTGAATATGGAATGTCATACCTC
   8.636 +q SRR001981.483            III>III<I9IIIIIIAIIIIIIII
   8.637 +
   8.638 +a score=171 EG2=7 E=3e-13
   8.639  s SRR001981.394 6 30 + 36 ATAAATGATTATTTGATGACCGAAATTTGT
   8.640  q SRR001981.394           IIIGIIIIIIIIIIIBI,I5II5=5III/%
   8.641  s SRR001981.530 0 30 - 36 ATAAATGATTATTTGATGACCGAAATTTGG
   8.642  q SRR001981.530           IIIII=<IIIIIIIIIIIIIIIIIIIIIII
   8.643  
   8.644 -a score=180 EG2=0.89 E=1.4e-13
   8.645 +a score=180 EG2=0.89 E=2.4e-14
   8.646  s SRR001981.125 0 30 + 36 GATTATTTGATGACCGAAATTTGGAAAAAC
   8.647  q SRR001981.125           I>IIIIIIIIIIIIII3IBIII8+.;?-?I
   8.648  s SRR001981.530 6 30 - 36 GATTATTTGATGACCGAAATTTGGAAAAAC
   8.649  q SRR001981.530           <IIIIIIIIIIIIIIIIIIIIIIIIIIIII
   8.650  
   8.651 -a score=108 EG2=1.3e+07 E=7.9e-06
   8.652 +a score=108 EG2=1.3e+07 E=3.8e-06
   8.653  s SRR001981.393  0 18 + 36 ACCGAAATTTGGAAAAAC
   8.654  q SRR001981.393            I>IIIIIIIHIIIIIIII
   8.655  s SRR001981.530 18 18 - 36 ACCGAAATTTGGAAAAAC
   8.656  q SRR001981.530            IIIIIIIIIIIIIIIIII
   8.657  
   8.658 -a score=182 EG2=0.56 E=8.4e-14
   8.659 +a score=182 EG2=0.56 E=1.3e-14
   8.660  s SRR001981.293 0 34 + 36 GGATCGTTAGCACTGGTAATTAGCTGCTCAAAAC
   8.661  q SRR001981.293           IIIIIIIIIIIIIIIII@III<IIIIIII>IIFI
   8.662  s SRR001981.589 2 34 - 36 GGAACGTTATCACTGGTAATTAGCTGCTCAAAAC
   8.663  q SRR001981.589           ,II%%I-II'9I,IIIIIIAIIDIGIIIAIII@I
   8.664  
   8.665  # batch 3
   8.666 +a score=102 EG2=5.1e+07 E=1.7e-05
   8.667 +s SRR001981.483  0 25 + 36 GAGGTATGACATTCCATATTCAGAC
   8.668 +q SRR001981.483            IIIIIIIIAIIIIII9I<III>III
   8.669 +s SRR001981.873 11 25 - 36 GAAGTATGACATTCCATATTCTGAC
   8.670 +q SRR001981.873            IIIIIIIIIIIIHIIIIIIIIIIII
   8.671 +
   8.672  # batch 4
   8.673  # Query sequences=1000
   8.674  
   8.675  #
   8.676 -# a=10 b=1 A=10 B=1 e=36 d=20 x=35 y=18 z=35 D=1e+06 E=9.86193e+08
   8.677 +# a=10 b=1 A=10 B=1 e=36 d=20 x=35 y=18 z=35 D=1e+06 E=7.76903e+08
   8.678  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=1.82048 j=3 Q=0
   8.679  # /tmp/last-test
   8.680  # Reference sequences=1 normal letters=507
   8.681 @@ -3081,7 +3105,7 @@
   8.682  
   8.683  # Query sequences=1
   8.684  #
   8.685 -# a=10 b=1 A=10 B=1 e=36 d=20 x=35 y=18 z=35 D=1e+06 E=9.86193e+08
   8.686 +# a=10 b=1 A=10 B=1 e=36 d=20 x=35 y=18 z=35 D=1e+06 E=7.76903e+08
   8.687  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=1.82048 j=3 Q=0
   8.688  # /tmp/last-test
   8.689  # Reference sequences=1 normal letters=507
   8.690 @@ -3115,7 +3139,7 @@
   8.691  
   8.692  # Query sequences=1
   8.693  #
   8.694 -# a=10 b=1 A=10 B=1 e=36 d=20 x=35 y=18 z=35 D=1e+06 E=9.86193e+08
   8.695 +# a=10 b=1 A=10 B=1 e=36 d=20 x=35 y=18 z=35 D=1e+06 E=7.76903e+08
   8.696  # R=10 u=0 s=2 S=0 M=0 T=0 m=10 l=1 n=10 k=1 w=1000 t=1.82048 j=3 Q=0
   8.697  # /tmp/last-test
   8.698  # Reference sequences=1 normal letters=507