Skip to main content

Add your description here

Project description

Projet d'Annotation Génomique

Script d'Annotation Génomique : annotation.py

Introduction

Ce projet permet l'annotation génomique à partir de fichiers GFF. Nous avons choisi de structurer les informations à l'aide de trois classes principales : Gene, Transcrit, et Exon. Ces classes permettent de gérer, de manipuler et de visualiser les informations des gènes, transcrits et exons extraits d'un fichier GFF. Le projet inclut également une fonction permettant de générer un boxplot des longueurs des exons par gène.

Libertés prises par rapport à l'énoncé

Nous avons pris plusieurs libertés par rapport à l'énoncé initial pour mieux répondre aux besoins spécifiques du projet tout en simplifiant certaines parties du processus d'annotation génomique. Voici les principales modifications et ajustements apportés :

1. Structure des classes

Les classes Gene, Transcrit,Exon et Annotation ont été créées pour encapsuler les informations relatives aux gènes, transcrits et exons, suivant l'énoncé. Ces classes contiennent les attributs suivants :

  • Gene : ID du gène, nom, coordonnées de début et de fin, brin, et la liste des transcrits associés et la ligne de fichier gff associée.
  • Transcrit : ID du transcrit, ID du gène parent, coordonnées de début et de fin, brin, la liste des exons associés et la ligne de fichier gff associée.
  • Exon : ID de l'exon, ID du transcrit parent, ID du gène parent, coordonnées de début et de fin, le brin et la ligne de fichier gff associée.
  • Annotation : dictionnaire de gènes associés.

2. Méthodes classiques de l'énoncé

Les fonctions classiques telles que __init__, __add__, et __eq__ ont été implémentées de manière standard, conformément à l'énoncé. Le constructeur __init__ initialise les attributs des classes Gene, Transcrit, et Exon lors de la création des objets. La méthode __add__ permet d'ajouter des objets de la même classe avec l'opérateur +, avec une vérification préalable pour s'assurer que les objets sont de même nature. Quant à __eq__, elle compare l'égalité de deux objets en vérifiant l'identité de leurs attributs principaux. Ces fonctions ont été réalisées de façon standard tout en garantissant la validité des opérations entre objets de même type.

3. Méthode rna_lens

Une fonction spécifique rna_lens a été développée pour créer un boxplot représentant les longueurs des exons pour chaque gène. Cette fonction prend en entrée une annotation et génère un graphique illustrant la distribution des longueurs des exons par gène. Ce graphique permet de visualiser la variation de taille des exons entre différents gènes. Le développement de cette fonction a nécessité l'ajout d'une méthode auxiliaire, _calculate_transcript_lengths, qui calcule les longueurs des transcrits en sommant les longueurs des exons pour chaque gène. Cette méthode est utilisée par rna_lens afin de simplifier et raccourcir le code. De plus, la fonction fait appel à la bibliothèque matplotlib pour personnaliser et améliorer le visuel du graphique généré, assurant ainsi une meilleure lisibilité des résultats.

4. Parsing des attributs GFF

Nous avons développé un mécanisme pour parser les attributs de chaque ligne GFF et les associer aux entités correspondantes. Pour cela, nous avons développé les méthodes _parse_gff et _parse_attributes. Cette approche permet d'extraire des informations spécifiques comme les IDs et noms des gènes, transcrits et exons, facilitant ainsi l'annotation complète des données génétiques. La gestion des erreurs dans ce projet a été améliorée, notamment dans pour traiter les fichiers GFF malformés (lignes manquantes ou malformées), ce qui garantit une robustesse accrue du programme dans des contextes variés.

Fonctionnalités supplémentaires

  • Statistiques des annotations : Une fonctionnalité dédiée permet de générer des statistiques détaillées sur les gènes, transcrits et exons, offrant une vue d'ensemble des annotations génomiques.
  • Améliorations structurelles : L'ajout des méthodes spéciales comme __iter__ et __getitem__ dans la classe Annotation a permis de parcourir et d'accéder facilement aux données des annotations, rendant leur manipulation plus intuitive et efficace.
  • Execution depuis le terminal : Ajout d'un fichier script_annotation.py permettant d'executer certaines fonctionnalités depuis le terminal (cf. Script d'Annotation Génomique : script_annotation.py)

Instructions d'utilisation

  1. Importer le fichier GFF : Utilisez la classe Annotation pour parser un fichier GFF contenant les annotations génomiques.
  2. Visualiser les exons : Appelez la fonction rna_lens pour générer un boxplot des longueurs des exons par gène.
  3. Fusionner des annotations : Utilisez l'opérateur + pour fusionner des objets Gene ou Annotation.

Aide

En exécutant print(help.nom_méthode), dans un interpreteur python, vous obtenez des informations supplémentaires sur la méthode spécifiée, y compris sa description, ses paramètres et son comportement.


Script d'Annotation Génomique : script_annotation.py

Le script script_annotation.py permet d'analyser les annotations biologiques à partir d'un fichier au format GFF directement depuis le terminal. Il offre deux fonctionnalités principales :

  1. Générer et sauvegarder un boxplot des longueurs des transcrits avec l'option --output ou -o.
  2. Afficher des statistiques détaillées sur les gènes, transcrits et exons avec l'option --stats.

Utilisation

Pour exécuter ce script, vous devez fournir un fichier d'annotation GFF en argument et choisir l'option que vous souhaitez utiliser.

Commandes disponibles

  • Fournir en argument le chemin du fichier d'annotation GFF.
  • Ajouter l'option --stats pour afficher les statistiques des annotations.
  • Ajouter l'option --output <chemin> pour générer un boxplot et le sauvegarder dans le fichier spécifié.
  • Ajouter l'option --help pour afficher un message d'aide.

Exemples de commandes bash :

  1. Afficher les statistiques des annotations :
    > python3 script_annotation.py fichier.gff --stats
    
  2. Générer un boxplot des longueurs des transcrits :
    > python3 script_annotation.py fichier.gff --output monplot.png
    

Conclusion

Ce projet simplifie et enrichit le processus d'annotation génomique en fournissant des structures de données adaptées et des outils de visualisation efficaces. Les libertés prises par rapport à l'énoncé permettent une meilleure flexibilité et une intégration facilitée dans des workflows génomiques complexes.

Projet réalisé par : Auré Magloire AGBOMAKOUNZO et Séverin JORRY

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gffanalyzer_m1bioinfo-0.1.0.tar.gz (2.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gffanalyzer_m1bioinfo-0.1.0-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file gffanalyzer_m1bioinfo-0.1.0.tar.gz.

File metadata

File hashes

Hashes for gffanalyzer_m1bioinfo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 36962b35efb6f02140adf4253955d5e153a40901dd4717758078a69c1f78c889
MD5 a5ff283e6e9fcdc48fc48c332d2725ea
BLAKE2b-256 346522ceca11be0e7c0457f9fac98ae0e20dd7e0db10b6ed8684bf7939505cab

See more details on using hashes here.

File details

Details for the file gffanalyzer_m1bioinfo-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for gffanalyzer_m1bioinfo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a9d5b1623af47bf92ddf987a16b9c51ad806383f0d4582865fef0189cb4b6e3c
MD5 b5b4fb14a1f63a24c201f01040c62de3
BLAKE2b-256 f18d9a7882553370b84de12f1fe5c2a86610597029fcfad5305ff76d0e7b6235

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page