From c38dc9b01f1534b298fd8539d2fc82840bcc6bba Mon Sep 17 00:00:00 2001
From: Pacome Riobe <pacome.riobe.etu@univ-lille.fr>
Date: Tue, 18 Feb 2025 16:36:24 +0100
Subject: [PATCH] Premier jet pour le parser et le tableau
---
Code | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
create mode 100644 Code
diff --git a/Code b/Code
new file mode 100644
index 0000000..d3cc521
--- /dev/null
+++ b/Code
@@ -0,0 +1,51 @@
+import gffutils
+import pandas as pd
+import os
+
+def gff_a_html(gff_file, output_html):
+ """
+ Analyse un fichier GFF et génère un tableau HTML avec les informations des gènes extraites
+
+ Parameters:
+ - gff_file (str): chemin de ou est enregistré le fichier GFF
+ - output_html (str): chemin de ou on veux que le fichier HTML s'enregistre
+
+ Returns:
+ - rien mais enregistre un fichier HTML avec un tableau de donnée la ou on lui a demandé
+ """
+ # base de données temporaire du fichier
+ db = gffutils.create_db(gff_file, dbfn=":memory:", force=True, keep_order=True, merge_strategy="create_unique", sort_attribute_values=True)
+ # memory : pour pas stocker sur disque (RAM)
+ #force = true : recrée base si elle existe déja
+ #merge_strategy="create_unique" : pour que les valeurs fusionnée reste unique
+ #sort_attribute_values=True : tri valeurs
+ data = [] # Liste stock infos
+
+ # éléments GFF
+ for feature in db.all_features(): #all_feature() est une methode des gffutils
+ entry = {
+ "Feature Type": feature.featuretype,
+ "ID": feature.id,
+ "Start": feature.start,
+ "End": feature.end,
+ "Strand": feature.strand,
+ "Locus ID": feature.attributes.get("locus_tag", ["N/A"])[0],
+ "Parent": feature.attributes.get("Parent", ["None"])[0],
+ "Gene Product": feature.attributes.get("product", ["Unknown"])[0],
+ }
+ data.append(entry)
+
+
+ # TABLEAU :
+ df = pd.DataFrame(data, columns=["ID", "Start", "End", "Locus ID", "Gene Product"])
+
+ # fichier HTML
+ df.to_html(output_html, index=False)
+
+ print(f"HTML table generated: {output_html}")
+
+
+if __name__ == "__main__":
+ gff_file = "/Users/claramoreno/PycharmProjects/PythonProjectPaster/exemple.gff.py"
+ output_html = "/Users/claramoreno/PycharmProjects/PythonProjectPaster/output.html"
+ print(gff_a_html(gff_file,output_html))
\ No newline at end of file
--
GitLab