Skip to content
Snippets Groups Projects
Commit 6e4d6167 authored by fadwael.khaddar_ird.fr's avatar fadwael.khaddar_ird.fr
Browse files

Ajout de la fonction glob et d'autres modification

parent 10546340
No related branches found
No related tags found
No related merge requests found
import re
import pandas as pd
import glob
# Utilisation de glob pour pouvoir tourner le script sur tous les fichiers tsv.
path = r"/home/fadwa/Téléchargements/test"
filenames = glob.glob(path + '/*.tsv')
# Définition des fonctions
def CpG_contexte(methylated):
"""
Cette fonction a pour but d'identifier la présence de la méthylation type CpG
et de calculer le pourcentage
def CpG_context(methylated):
"""
global CpG
motif_counts = {} # Création d'un dictionnaire pour stocker le comptage de chaque motif
for motif in CpG:
motif_counts[motif] = 0
# Boucler à travers chaque k_mer dans methylated dataset
# Boucler à travers chaque k_mer dans df dataset
for kmer in methylated["k_mer"][2:]:
sub_kmer = kmer[2:4]
......@@ -26,13 +35,18 @@ def CpG_context(methylated):
# Calculer le total des occurences de chaque sub_kmer
total_len = len(methylated["k_mer"])
total_count = sum(motif_counts.values())
pourcentage = (total_count * 100) / total_len
pourcentage = (total_count / total_len) * 100
print(f"Le pourcentage de la méthylation type CpG est : {pourcentage: .2f}% ")
def CHG_context(methylated):
"""
Cette fonction a pour but d'identifier la présence de la méthylation type CHG
et de calculer le pourcentage
"""
motif_counts = {} # Création d'un dictionnaire pour stocker le comptage de chaque motif
global CHG
for motif in CHG:
......@@ -53,12 +67,17 @@ def CHG_context(methylated):
# Calculer le total des occurences de chaque sub_kmer
total_len = len(methylated["k_mer"])
total_count = sum(motif_counts.values())
pourcentage = (total_count * 100) / total_len
pourcentage = (total_count / total_len) * 100
print(f"Le pourcentage de la méthylation type CHG est: {pourcentage: .2f}% ")
def CHH_context(methylated):
"""
Cette fonction a pour but d'identifier la présence de la méthylation type CpG
et de calculer le pourcentage
"""
global CHH
motif_counts = {} # Création d'un dictionnaire pour stocker le comptage de chaque motif
for motif in CHH:
......@@ -79,7 +98,7 @@ def CHH_context(methylated):
# Calculer le total des occurences de chaque sub_kmer
total_len = len(methylated["k_mer"])
total_count = sum(motif_counts.values())
pourcentage = (total_count * 100) / total_len
pourcentage = (total_count / total_len) * 100
print(f"Le pourcentage de la méthylation type CHH est : {pourcentage: .2f}% ")
......@@ -88,22 +107,24 @@ def CHH_context(methylated):
CpG = ["CG"]
CHG = ["CCG", "CAG", "CTG"]
CHH = ["CCC", "CAA", "CTT", "CCA", "CCT", "CAT", "CAC", "CTA", "CTC"]
seuil = 5
# Lecture de fichier
names = ["Chromosome", "position","strand", "pos_in_strand", "readname", "read_strand", "prob_0", "prob_1", "called_label", "k_mer"]
call_mods = pd.read_csv("/home/fadwa/Téléchargements/FAS08151_fast5s.C_call_mods.tsv", sep='\t', names=names)
for file in filenames:
print(f"Statistiques pour le fichier {file}")
names = ["Chromosome", "position","strand", "pos_in_strand", "prob_0_sum", "prob_1_sum", "count_modified", "count_unmodified", "coverage", "modification_frequency", "k_mer"]
call_mods = pd.read_csv(file, sep='\t', names=names)
# Création du DataFrame
df = pd.DataFrame(call_mods)
# Extraction des reads méthylés
methylated= df[df["called_label"] == 1]
methylated=pd.DataFrame(methylated)
methyl= df[df["count_modified"] >= seuil]
methylated=pd.DataFrame(methyl)
#methylated.to_csv("/home/fadwa/Téléchargements/FAS08151_methylated.tsv", sep='\t')
CpG_contexte(methylated)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment