julibinho / VDJ-Kernel

0 stars 0 forks source link

K Mers #3

Closed TeoBernier closed 3 years ago

TeoBernier commented 3 years ago

Du coup, j'ai vite fait implémenté un algo de k mers, et j'obtiens des résultats presque aussi bon qu'avec l'alignement, mais forcément, c'est bien plus rapide (comme on s'en doutait).

Le k est totalement paramétrable, et les gènes V, D, et J n'ont pas forcément le même k.

Et j'utilise une "range" dans laquelle je cherche si un gène à le même nombre d'un k-mers spécifiques que la partie de la séquence qui m'intéresse. (je sélectionne les gènes de [nb - range à nb + range] (les 2 inclus))

Je donne à chaque gène sélectionné 1 point et à la fin, je prends le gène qui a le plus de points. (je ne fais pas d'alignement ni rien pour l'instant, mais je pourrais très bien faire un alignement entre les 10 meilleures possibilités sans problèmes)

Je suis arrivé à un résultat correct pour :

Sinon, je pense comprendre sur quoi bloquent mes algorithmes et pourquoi leur précision max est de 70% pour les gènes V. En gros c'est parce qu'ils prédisent les fameux V.../OR... que je ne considère pas comme des allèles.

J'ai une idée de comment on pourrait remédier à ce problème, mais je n'ai pas encore d'idée d'implémentation. En gros, il faudrait récompenser les nucléotides identiques d'affiler, c'est à dire pénaliser une séquence de 5 ou 6 nucléotides totalement différents.

C'est vraiment la différence que mes algos ne font pas, car il maximise juste la ressemblance globale !

Par exemple avec une séquence comme celle-ci :

(0) g-[22]-a-[11]-a-[8]-g-[45]-aaccactacac-[7]-g-[16]-aaaggga-[19]-gtagtggtaatagtg-[28]-a-[20]-g-[62]-c-[10]-tgagag

(1) g-[22]-a-[11]-a-[8]-g-[45]-aaccactacac-[7]-g-[16]-gaaggga-[19]-gtagtggtaatagtg-[28]-a-[20]-g-[62]-g-[10]-tgaaa.

(2) .-[22]-g-[11]-.-[8]-a-[45]-gactactacat-[7]-a-[16]-gaagggg-[19]-ttagtagtagtagta-[28]-g-[20]-a-[62]-g-[10]-cgagag

(0) la séquence / (1) ma prédiction / (2) le résultat

Je ne vois pas comment prédire le résultat, j'ai l'impression que mon algo match juste mieux, et même si je sais que ce n'est pas la bonne réponse, j'aimerais voir ce que donne d'autres logiciels. Car je ne vois pas vraiment comment "améliorer" l'algo pour qu'il détecte ça.

Il y a-t'il des pattern de fin de gènes qui ne peuvent pas être muté ? Ou des trucs sur lequel mon algo pourrait s'appuyer ?

A tout à l'heure (si on se voit toujours ce matin) !