Add your description here
Project description
Package : gffanalyzer_m1bioinfo
gffanalyzer_m1bioinfo est un package Python conçu pour analyser et manipuler des fichiers au format GFF (General Feature Format). Il propose des outils permettant l'extraction et la manipulation d'informations génomiques, notamment la gestion des annotations de gènes, transcrits et exons, ainsi que des visualisations telles que la distribution des longueurs de transcrits.
Ce projet a été développé dans le cadre de l'UE Programmation Orientée Objet (POO) du Master 1 Bio-Informatique à l'Université Claude Bernard - Lyon 1.
Structure du package
Fichiers principaux :
-
__init__.py
Initialise le package Python, permet d'importer les modules nécessaires pour manipuler les fichiers GFF et contient un outil de statistiques et de visualisation de fichier GFF. Inclutplot_and_stats, cette fonction travaille avec un fichier GFF et propose deux fonctionnalités principales en fonction des arguments fournis. Si l'argumentstatsestTrue, la fonction affiche les statistiques des annotations. Si l'argumentplot_outest spécifié, la fonction génère un boxplot des longueurs des ARN et le sauvegarde à l'emplacement indiqué. Les deux fonctionnalités peuvent être utilisées séparément ou ensemble, selon les besoins. -
__main__.py
Contient le point d'entrée pour exécuter le programme en ligne de commande. Ce fichier permet de charger un fichier GFF, d'exécuter des analyses, et de générer des visualisations via le terminal. -
annotation.py
Définit les classesAnnotation,Gene,Transcrit,Exonpour modéliser, ajouter et manipuler les annotations génomiques.
Fonctionnalités
Classe Gene
- Modélisation des gènes :
- Stocke les informations essentielles : ID, nom, coordonnées génomiques (
start,end), brin (strand), et ligne GFF associée. - Permet d'ajouter et de gérer des transcrits liés au gène via une méthode dédiée (
add_transcrit). - Offre une méthode pour fusionner deux gènes en combinant leurs transcrits, tout en éliminant les doublons.
- Inclut une représentation textuelle claire pour afficher les informations principales.
- Stocke les informations essentielles : ID, nom, coordonnées génomiques (
Classe Transcrit
- Modélisation des transcrits :
- Stocke les informations essentielles : ID, ID du gène parent, coordonnées génomiques (
start,end), brin (strand), et ligne GFF associée. - Permet de gérer des exons associés via la méthode
add_exon. - Fournit une méthode d'égalité (
__eq__) pour comparer les transcrits basés sur leurs IDs et gènes parents. - Inclut une représentation textuelle claire des informations clés.
- Stocke les informations essentielles : ID, ID du gène parent, coordonnées génomiques (
Classe Exon
- Modélisation des exons :
- Stocke les informations essentielles : ID de l'exon, IDs du transcrit et du gène parents, coordonnées génomiques (
start,end), brin (strand), et ligne GFF associée. - Conçue pour structurer les données d'annotation génomique.
- Stocke les informations essentielles : ID de l'exon, IDs du transcrit et du gène parents, coordonnées génomiques (
Utilisation
Installation :
Installez le package avec pip :
> pip install gffanalyzer_m1bioinfo
Pré-requis
-
Python : Version 3.10 ou plus récent.
-
Bibliothèques Python :
- matplotlib >= 3.9.2
Exemple d'execution
Test d'installation
import gffanalyzer_m1bioinfo as gff
gff.test_install()
# Le package gffanalyzer est bien installé !
Test Classe Annotation
# Importation de la classe Annotation depuis le module gffanalyzer_m1bioin
from gffanalyzer_m1bioin import Annotation
# Création de deux objets Annotation à partir de deux fichiers GFF
annotation1 = Annotation("your/path/gff_file")
annotation2 = Annotation("yout/path/gff_file")
# Affichage des informations sur chaque annotation
print(annotation1)
print(annotation2)
# Fusion des deux annotations en un seul objet annot_fusion puis affichage
annot_fusion = annotation1 + annotation2
print(annot_fusion)
# Affichage des statistiques de l'annotation fusionnée
annot_fusion.stats()
# Génération et exportation d'un graphique des longueurs d'ARN à partir de l'annotation fusionnée
annot_fusion.rna_lens("your/path/to/export/your/plot")
# Recherche un gène dans une annotation par son ID, puis affichage
gene = annot_fusion.get_gene("GeneID_to_search")
print(gene)
Test Autres Classes
# Importation des classes nécessaires du module gffanalyzer_m1bioinfo
from gffanalyzer_m1bioinfo import Annotation, Gene, Transcrit, Exon
# Création d'un objet Transcrit représentant un transcrit (ARN) d'un gène
transcrit = Transcrit("transcrit1", "gene1", 100, 200, "+")
# Création de deux objets Exon représentant des exons du transcrit
exon1 = Exon("exon1", "transcrit1", "gene1", 100, 150, "+")
exon2 = Exon("exon2", "transcrit1", "gene1", 160, 200, "+")
# Ajout des exons au transcrit
transcrit.add_exon(exon1)
transcrit.add_exon(exon2)
# Affichage de l'objet Transcrit, montrant ses informations et les exons associés
print(transcrit)
# Création d'un objet Gene représentant un gène avec des coordonnées génomiques
gene = Gene("gene1", "gene_name1", 100, 1000, "+")
print(gene) # Vérifie l'affichage du gène, sans transcrit pour le moment
# Création de deux objets Transcrit et ajout à un gène
transcrit1 = Transcrit("transcrit1", "gene1", 100, 500, "+")
transcrit2 = Transcrit("transcrit2", "gene1", 600, 1000, "+")
gene.add_transcrit(transcrit1)
gene.add_transcrit(transcrit2)
# Affichage du gène avec les transcrits ajoutés
print(gene) # Vérifie que les deux transcrits ont été ajoutés au gène
# Création de deux gènes avec le même ID mais des coordonnées génomiques légèrement différentes
gene1 = Gene("gene1", "gene_name1", 100, 1000, "+")
gene2 = Gene("gene1", "gene_name1", 50, 1100, "+")
# Création de transcrits pour chaque gène
transcrit1 = Transcrit("transcrit1", "gene1", 100, 500, "+")
transcrit2 = Transcrit("transcrit2", "gene1", 600, 1000, "+")
# Ajout des transcrits aux gènes respectifs
gene1.add_transcrit(transcrit1)
gene2.add_transcrit(transcrit2)
# Fusion des deux gènes en un seul
merged_gene = gene1 + gene2
# Affichage du gène fusionné et de ses informations
print(merged_gene) # Vérifie que les gènes sont fusionnés correctement
# Affichage de tous les transcrits du gène fusionné
for tran in merged_gene.transcrits:
print(tran) # Affiche les transcrits associés au gène fusionné
Execution via le terminal
Conseil: Installer le package dans un environement virtuel
> python3 -m venv < Mon_evironement >
- activer l'environement: source Mon_evironement/bin/activate
Pour afficher les grandes statistiques d'un fichier GFF :
> python3 -m gffanalyzer_m1bioinfo data/example.gff --stats
Pour générer un boxplot de la distribution des longueurs des transcrits :
> python3 -m gffanalyzer_m1bioinfo data/example.gff --output "your/path/to/export/your_plot.png"
Réalisation
- Auré Magloire AGBOMAKOUNZO
- Séverin JORRY
Enseignants - Encadrants
- Arnaud MARY
- Guillaume LAUNAY
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gffanalyzer_m1bioinfo-0.2.2.tar.gz.
File metadata
- Download URL: gffanalyzer_m1bioinfo-0.2.2.tar.gz
- Upload date:
- Size: 3.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7139e1bd3d1333a1001155c0d28f7b476bfdc7d4248be1e5c7a29b8ed5ce84c0
|
|
| MD5 |
ad568874d89583cbf45abf1457d34985
|
|
| BLAKE2b-256 |
bee3a3458a98f24f8eb663577da9424f39923072dc28ead3473cd7955fd288f8
|
File details
Details for the file gffanalyzer_m1bioinfo-0.2.2-py3-none-any.whl.
File metadata
- Download URL: gffanalyzer_m1bioinfo-0.2.2-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ededbb0639b7c3ea1f55aac38af1984fe18759816188f50f74965cd2543073f2
|
|
| MD5 |
fd228bf72dc593f249d6f710e1d95456
|
|
| BLAKE2b-256 |
6f347e4b5cc455f3c4b49d6e85d862ab991589ff73c6ea29b55c71c1d557249e
|