1. 13 Jan, 2017 11 commits
    • Mikaël Salson's avatar
    • Mikaël Salson's avatar
      IKmerStore: getIndexLoad depends on the type of index. · 9b256a64
      Mikaël Salson authored
      Some indexes store global informations regarding all the kmers (ArrayKmerStore and MapKmerStore).
      Other indexes have a more detailed view on the kmers that are stored (Aho-Corasick automaton).
      These indexes are more accurate on the index load per affectation.
      9b256a64
    • Mikaël Salson's avatar
      algo: Remove smallestAnalysableLength() · 85622c02
      Mikaël Salson authored
      At first, we considered that smallestAnalysableLength() would be enough
      to deal with differences between a k-mer index and an Aho-Corasick automaton.
      This is actually not the case.
      
      We need to have the length of the seed together with the affectation for the
      Aho-Corasick automaton. In the end this allows to get the same affectation
      strings than with a k-mer index. This would not have been possibble with the
      smallesAnalysableLength() function and it makes it useless.
      85622c02
    • Mikaël Salson's avatar
      getIndexLoad: Now depends on the kmer · 0de26304
      Mikaël Salson authored
      We calculate the index load depending on the type of Affectation stored.
      Thus we now need just one type of getIndexLoad() as the other one doesn't make sense any more.
      
      This change should allow to compute a confident e-value using the
      Aho-Corasick automaton
      0de26304
    • Mikaël Salson's avatar
      automaton.hpp: Number of kmers inserted depends on k · 1d84a40d
      Mikaël Salson authored
      Just counting the number of inserted k-mers is not sufficient.
      We need to count the number of kmers inserted for each value of k.
      Additionnally, the value must be counted only for final state (as they correspond to actuel germline kmers)
      1d84a40d
    • Mikaël Salson's avatar
      automaton.hpp: Iterative destructor · 0fb9cab6
      Mikaël Salson authored
      Delete the states iteratively rather than recursively.
      Quite logically a recursive destruction explodes the stack
      with real data.
      0fb9cab6
    • Mikaël Salson's avatar
      Index: Put the ID in the base class · e8ab3a56
      Mikaël Salson authored
      The ID was initialised in createIndex, but if it was not called,
      the ID was not initialised. By transferring the initialisation to
      the base constructor we ensure that the ID will be initialised.
      
      The drawback is that classes that should be virtual now have a constructor.
      e8ab3a56
    • Mikaël Salson's avatar
      IKmerStore: lowest level insert is virtual · 8585fdd5
      Mikaël Salson authored
      Since it can be redefined (and is redefined) we need to make the method
      virtual so that the redefinition will be called even by some code
      produced in IKmerStore.
      
      We also need to tell in PointerACAutomaton that we must use the other
      versions of insert that are defined in IKmerStore.
      8585fdd5
    • Mikaël Salson's avatar
      IKmerStore: smallestAnalysableLength() · 0d5f7ced
      Mikaël Salson authored
      Method which returns how many nucleotides at each time we can get.
      Useful to know what is the expected length of a getResults().
      0d5f7ced
    • Mikaël Salson's avatar
      IKmerStore: new finish_building() method · 63c1041e
      Mikaël Salson authored
      Must be called after having inserted all the sequences.
      63c1041e
    • Mikaël Salson's avatar
      Automaton: Aho-Corasick automaton · 0f9a0b5d
      Mikaël Salson authored
      Implements an Aho-Corasick automaton that extends the IKmerStore.
      0f9a0b5d