seq_length=samfile.lengths[samfile.references.index(seq)]#Permet d'obtenir la longueur de la sequence
forpos_startinrange(0,seq_length-window_size+1,step_size):#Itère sur la sequence par "fenêtre" en fonction de la taille
pos_end=pos_start+window_size#pos_start + window_size donne la position de début de la fenêtre, puis grâce à min() et seq_length je peux définir position de fin. le min me permet d'être certain que pos_end < seq_lenght. C-a-d que si la fenêtre dépasse la taille de la sequence, j'aurais quand même pos_end
window_depths=[]#liste pour stocker la profondeur de chaque fenêtre
forpileupcolumninsamfile.pileup(seq,start=pos_start,stop=pos_end):#itère sur chaque colone de pileup
window_depths.append(pileupcolumn.n)#ajoute le nb de lecture couvrant cette position à la liste window_depths
ifwindow_depths:#calcul la profondeur moyenne pour chaque sequence
sys.stderr.write("\t entering calcul_depth_seq : thread numero %s\n"%numero_de_thread)
samfile=pysam.AlignmentFile(bamfile,"rb")
seq_length=samfile.lengths[samfile.references.index(seq)]#Permet d'obtenir la longueur de la sequence
forpos_startinrange(0,seq_length-window_size+1,step_size):#Itère sur la sequence par "fenêtre" en fonction de la taille
pos_end=pos_start+window_size#pos_start + window_size donne la position de début de la fenêtre, puis grâce à min() et seq_length je peux définir position de fin. le min me permet d'être certain que pos_end < seq_lenght. C-a-d que si la fenêtre dépasse la taille de la sequence, j'aurais quand même pos_end
window_depths=[]#liste pour stocker la profondeur de chaque fenêtre
forpileupcolumninsamfile.pileup(seq,start=pos_start,stop=pos_end):#itère sur chaque colone de pileup
window_depths.append(pileupcolumn.n)#ajoute le nb de lecture couvrant cette position à la liste window_depths
ifwindow_depths:#calcul la profondeur moyenne pour chaque sequence
sys.stderr.write("\t\t entering wd thread numero %s\n"%numero_de_thread)