Filtrage par automate : prendre les N meilleures séquences et leurs « voisines »
En général je pense que #3217 (closed) avec N = 1 donnera de bons résultats (en gérant les ex-aequo). Mais on aura probablement des situations où la vraie séquence est en fait en 2è ou 3è position mais juste avec quelqes k-mers de moins.
On pourrait dire qu'on prend N = 5 pour prendre une marge de sécurité pour ces cas-là. Mais c'est dommage de prendre 5 gènes dans le cas où le premier est largement devant en termes de nombres de k-mers trouvés.
On pourrait plutôt se dire qu'on prend les N meilleures séquences et leurs voisines proches en termes de nombres de k-mers trouvés, si elles existent. Toute la question est comment définir que le nombre d'occurrences est suffisamment proche ?
S'il est à 0, on a un ex aequo et on considère déjà qu'on doit le prendre. Si on a 1 k-mer de moins, on sent bien que ce n'est pas très significatif et qu'on devrait prendre ce gène en considération aussi. Si on a une erreur de séquençage qui nous éloigne du vrai gène et qui nous rapproche, à tort, d'un autre gène, cela peut nous faire perdre k k-mers.
Mais la distance permise dépend aussi de la longueur du gène : il est normal de tolérer une distance plus grande pour des gènes plus grands.
Faut-il avoir des calculs de probabilités ?