Skip to content
Snippets Groups Projects
Commit e0729de8 authored by nina.marthe_ird.fr's avatar nina.marthe_ird.fr
Browse files

ajouté la détection des codons stop

parent a545e4ba
No related branches found
No related tags found
No related merge requests found
......@@ -266,8 +266,10 @@ def findOtherStart(cds,segments_on_target_genome):
# ajouter la vérification qu'on introduit/delete pas un codon stop
def print_variation_change(deleted_sequence,inserted_sequence):
stop=False
deleted_aa=traduction(get_rna(deleted_sequence))
inserted_aa=traduction(get_rna(inserted_sequence))
if (len(deleted_aa)!=0) & (len(inserted_aa)!=0):
if deleted_aa!=inserted_aa:
print("conséquence : changement de",",".join(deleted_aa),"en",",".join(inserted_aa))
......@@ -277,6 +279,10 @@ def print_variation_change(deleted_sequence,inserted_sequence):
print("conséquence : insertion de",",".join(inserted_aa))
else:
print("conséquence : deletion de",",".join(deleted_aa))
if ("*" in inserted_aa):
print("apparition d'un codon stop dans le cds du génome cible")
stop=True
return stop
version="new"
......@@ -286,7 +292,7 @@ for feature in Features.values():
for cds_id in cds_var.keys():
cds=Features[cds_id]
print("analyse des variations dans le cds",cds_id)
print("analyse des variations dans le cds",cds_id,"\n")
frame_shift=0
#for var in cds_var[cds_id]:
for index, var in enumerate(cds_var[cds_id]):
......@@ -320,7 +326,9 @@ for cds_id in cds_var.keys():
len_fragment_after=(3-length_ref)%3
deleted_sequence=cds.sequence[posVar[0]:posVar[0]+length_ref+len_fragment_after]
inserted_sequence=sequence_target[posVar[1]:posVar[1]+length_alt+len_fragment_after]
print_variation_change(deleted_sequence,inserted_sequence)
stop=print_variation_change(deleted_sequence,inserted_sequence)
if stop:
break
else: # taille diff 3k, position !=3k
print("variation au milieu d'un codon sans décalage du cadre de lecture")
......@@ -337,7 +345,9 @@ for cds_id in cds_var.keys():
total_ins=sequence_target[posVar[1]-len_fragment_before:posVar[1]+length_alt+len_fragment_after]
total_del=cds.sequence[posVar[0]-len_fragment_before:posVar[0]+length_ref+len_fragment_after]
print_variation_change(total_del,total_ins)
stop=print_variation_change(total_del,total_ins)
if stop:
break
# possibilité que j'ai print en compte une variation de trop, si on a un snp sur la premiere et la derniere base d'un codon :
# pour le traitement de la première j'ai également considéré la dernière !
......@@ -366,8 +376,10 @@ for cds_id in cds_var.keys():
len_fragment_after_ins=(3-(len_fragment_before_ins+length_alt))%3
total_ins=sequence_target[posVar[1]-len_fragment_before_ins:posVar[1]+length_alt+len_fragment_after_ins]
total_del=cds.sequence[posVar[0]-len_fragment_before_del:posVar[0]+length_ref+len_fragment_after_del]
print_variation_change(total_del,total_ins)
stop=print_variation_change(total_del,total_ins)
print("rétablissement du cadre de lecture originel")
if stop:
break
else:
# print changes from local to next var
......@@ -377,7 +389,9 @@ for cds_id in cds_var.keys():
if index==len(cds_var[cds_id])-1: # on est sur la dernière variation. traduire jusqu'à la fin du cds
total_total_del=cds.sequence[posVar[0]-len_fragment_before_del:]
total_total_ins=sequence_target[posVar[1]-len_fragment_before_ins:]
print_variation_change(total_total_del,total_total_ins)
stop=print_variation_change(total_total_del,total_total_ins)
if stop:
break
else:
nextVar=cds_var[cds_id][index+1]
posNextVar=[int(nextVar[12]),int(nextVar[13])]
......@@ -395,7 +409,9 @@ for cds_id in cds_var.keys():
len_fragment_before_ins_nextvar=(posNextVar[1])%3
total_total_del=cds.sequence[posVar[0]-len_fragment_before_del:posNextVar[0]-len_fragment_before_del_nextvar]
total_total_ins=sequence_target[posVar[1]-len_fragment_before_ins:posNextVar[1]-len_fragment_before_ins_nextvar]
print_variation_change(total_total_del,total_total_ins)
stop=print_variation_change(total_total_del,total_total_ins)
if stop:
break
......@@ -405,7 +421,7 @@ for cds_id in cds_var.keys():
if posVar[0]<=3: # pour l'instant on cherche pas d'autre start.
print("codon start touché donc gène non fonctionnel")
print("codon start touché, gène non fonctionnel")
#findOtherStart(cds,segments_on_target_genome)
break
......
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