Stage refonte python¶
Sujet de Stage M1, printemps 2026
Refonte du code support de recherche de CRISPR-arrays, CRISPRCasFinder
La base de données CRISPR-Cas++ recense 2 types d'éléments génétiques particuliers des procaryotes leur conférant une immunité adaptative contre les éléments génétiques mobiles exogènes (phages ou plasmides), d'une part les CRISPR-arrays (clustered regularly interspaced short palindromic repeats) et d'autre part les gènes codants pour les protéines qui leur sont associées (CRISPR associated proteins).
Cette base de donnée présente une audience internationale. Ainsi la maintenance des codes informatiques supportant la mise à jour des données et leur mise à disposition par un serveur web sont donc primordiaux.
Le code de recherche et d’identification des CRIPSR-arrays a été développé en 2001 en langage Perl et amélioré successivement. Les possibilités apportées par l'IA aujourd'hui permettent d'envisager la refonte de ce code dans un langage pour en faciliter sa maintenance.
Le sujet de stage proposé serait donc de mener à bien cette refonte de code.
Pour cela, plusieurs étapes sont nécessaires :
- Constituer un jeu d'exemples fonctionnels à partir de séquences génomiques proposées pour refléter différentes réponses possibles de CRISPRCasFinder
- Identifier les CRISPR-arrays et les Cas dans ces séquences, observer les fichiers produits
- Séparer les parties "mortes" des parties actives du code CRISPRCasFinder
- Traduire en langage python (ou C) les parties actives
- Vérifier la concordance des résultats de la refonte et de la version initiale sur un jeu de séquence + important que le jeu d'exemple fonctionnel (300 génomes de taxon différents)
- Inclure les fonctions obtenues dans un gestionnaire de workflow snakemake (ou nextflow)
Des détails supplémentaires sont proposés ici : https://crisprcas.i2bc.paris-saclay.fr/CrisprCasFinder/Index et le code est accessible ici : https://crisprcas.i2bc.paris-saclay.fr/Home/Download
Qq interrogations à préciser :
- travail à partir de la version standalone plutôt que celle directement liée au cluster ?
- établir la liste des génomes du test fonctionnel
- quid de l'install des outils tiers ? est-ce que l'utilisation du docker permet de modifier le code ?
- est-ce que seulement la refonte de CRISPRCasFinder suffit ou il faut aussi penser aux interactions avec la maj de la DB ?