L’article précédent nous avait permis de lire une banque de séquences biologiques au format FASTA, en introduisant à cette occasion l’instruction match
et quelques subtilités de la possession, du prêt et de l’emprunt de valeurs. Celui d’avant nous avait donné l’algorithme de Needleman et Wunsch pour aligner deux séquences et calculer leur score de similitude. Il ne nous reste plus qu’à combiner les deux pour obtenir tous les scores de la séquence d’intérêt contre celles de la banque. Ce travail de construction se fait aisément grâce aux caractéristiques de Rust : on s’est donné du mal pour avoir un programme qui compile, mais une fois que le compilateur a accepté notre code, il n’y a pas de mauvaises surprises à l’exécution.
Je retiens comme score final la valeur de la dernière case de la matrice (« en bas à droite ») : je n’ignore pas que d’autres choix sont loisibles.
Certaines lignes du programme sont placées en commentaire pour améliorer la concision et la lisibilité des résultats, mais il suffit de les « décommenter » pour obtenir le détail des matrices d’alignement.
Voici :
Et le programme de lecture des séquences, adapté de l’article précédent :