samfile=pysam.AlignmentFile("/home/theo/Documents/alternance/Projet Alternance/dijex8000.bam","rb")#Importation du fichier bam
samfile=pysam.AlignmentFile("/home/theo/dev/git/cnvCallerGPU/3544.bam","rb")#Importation du fichier bam
forreadinsamfile.fetch(until_eof=True):#Boucle qui va lire le fichier bam en entier
forreadinsamfile.fetch(until_eof=True):#Boucle qui va lire le fichier bam en entier
seq_id=read.query_name#Attribution de l'ID de la sequence
seq_id=read.query_name#Attribution de l'ID de la sequence
...
@@ -12,20 +12,20 @@ for read in samfile.fetch(until_eof=True):#Boucle qui va lire le fichier bam en
...
@@ -12,20 +12,20 @@ for read in samfile.fetch(until_eof=True):#Boucle qui va lire le fichier bam en
end=read.reference_end#Attribution position fin
end=read.reference_end#Attribution position fin
seq_inf[chro]={}#Création d'un nouveau dictionnaire avec le nom du chromosome à chaque itération de boucle
seq_inf[chro]={}#Création d'un nouveau dictionnaire avec le nom du chromosome à chaque itération de boucle
seq_inf[chro].append({"seq_id":seq_id,"start":start,"end":end,"lenght":lenght,"depth":0})#attribution de différentes informations pour chaque chromosome à chaque itération de boucle
seq_inf[chro]=({"seq_id":seq_id,"start":start,"end":end,"lenght":lenght,"depth":0})#attribution de différentes informations pour chaque chromosome à chaque itération de boucle
samfile.close()
samfile.close()
defdepth_function(data):#Definition d'une fonction qui va calculer la profondeur
defdepth_function(data):#Definition d'une fonction qui va calculer la profondeur
forchro,datainseq_inf.items():
forchro,datainseq_inf.items():
depth=[0]*[-1]["end"]+1#on crée une liste qui stock la profondeur de chaque chromosome. On prend la dernière position lue de chaque dictionnaire. On rajoute +1 parce que ça compte à partir de 0.
depth=[0]*[-1]["end"]+1#on crée une liste qui stock la profondeur de chaque chromosome. On prend la dernière position lue de chaque dictionnaire. On rajoute +1 parce que ça compte à partir de 0.
forpositioninrange(start,end+1):#on reprend les position start et end défini au début
forpositioninrange(start,end+1):#on reprend les position start et end défini au début
depth[position]+=1#On calcule la profondeur en ajoutant +1 à chaque itération
depth[position]+=1#On calcule la profondeur en ajoutant +1 à chaque itération
depth_function(seq_info)#On fait appel à la fonction pour le dictionnaire de base
depth_function(seq_inf)#On fait appel à la fonction pour le dictionnaire de base