Forum de l’article
ISSN 2271-3905
Cliquez ici si vous voulez visiter mon autre site, orienté vers des sujets moins techniques.
On peut même faire encore mieux, et encoder efficacement une séquence sur 2 bits (voir lien, en anglais) !
Mais dans les deux cas, une implémentation propre serait de créer un wrapper de Vec, et d’implémenter soi-mếme les traits Display et Debug, de manière à pouvoir visualiser la séquence sous forme de texte (ce qui se fait de façon triviale avec std::str::from_utf8_unchecked, si on respecte l’invariant que le Vec ne contient que des caractères alphanumériques).
Dans les faits en bioinformatique de plus en plus de méthodes se basent sur des k-mers et des tableaux associatifs pour éviter de calculer des alignements sur l’ensemble du génome. Cela permet aussi de ne plus avoir besoin de charger l’intégralité de la séquence en mémoire, puisqu’on peut analyser les k-mers bloc par bloc, et donc drastiquement réduire la mémoire utilisée. Cependant charger la séquence sous forme d’octets permet quand même d’accélerer le calcul du hash des k-mers !
(Petit détail d’implémentation : il me semble que tu te compliques la vie avec fasta_read_seq, je pense que tu peux juste utiliser std::fs::read)