From 9b956e3966b82b733077387701ce4b358295337a Mon Sep 17 00:00:00 2001 From: NMarthe <nina.marthe@ird.fr> Date: Tue, 7 Nov 2023 11:36:11 +0100 Subject: [PATCH] =?UTF-8?q?corrig=C3=A9=20la=20position=20des=20d=C3=A9l?= =?UTF-8?q?=C3=A9tions=20qui=20fonctionnait=20pas=20quand=20on=20deletait?= =?UTF-8?q?=20le=20premier=20segment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Functions.py | 15 +++++++++------ Functions_output.py | 2 +- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Functions.py b/Functions.py index b47b6f9..be2508f 100644 --- a/Functions.py +++ b/Functions.py @@ -342,6 +342,7 @@ def reset_var(variation): variation.type='' # type énuméré. variation.size_var=0 variation.start_var='' + variation.start_var_index=0 variation.ref='' variation.alt='' @@ -359,27 +360,29 @@ def get_old_new_pos_insertion(variation,feat_start,list_segfeat_azu,feat): pos_new=str(start_var-start_feat+1) return [pos_old,pos_new] # pos_old is the base right after the insertion. pos_new is the base after the first inserted base. -def get_old_new_pos_deletion(variation,feat_start,list_segfeat_azu,feat,i): +def get_old_new_pos_deletion(variation,feat_start,list_segfeat_azu,feat): + i=variation.start_var_index if i==0: - pos_old=int(Segments[variation.start_var].start)-int(feat_start)+Features[feat].pos_start+1 + pos_old=int(Segments[variation.start_var].start)-int(feat_start)+Features[feat].pos_start-1 else: pos_old=int(Segments[variation.start_var].start)-int(feat_start)+1 - if pos_old<1: - pos_old=1 + if pos_old<0: + pos_old=0 if variation.last_seg_in_target=="": # deletion of the beggining of the feature, so no segment placed in the new genome yet. - pos_new=1 + pos_new=0 else: start_feat=get_feature_start_on_genome(list_segfeat_azu[0][1:],feat) start_var=int(segments_on_target_genome[variation.last_seg_in_target][2])+1 pos_new=str(start_var-start_feat+1) - return [pos_old,pos_new] # pos_old is the first base deleted. pos_new is the base right after the deletion + return [pos_old,pos_new] # pos_old and pos_new are the bases right before the deletion def init_new_var(variation,type,list_segfeat_nb,list_segfeat_azu,i,j,seg_seq,feature): variation.type=type variation.start_var=list_segfeat_nb[i][1:] + variation.start_var_index=i if type=="substitution": variation.start_on_target=list_segfeat_azu[j][1:] variation.ref=get_segment_sequence(seg_seq,list_segfeat_nb[i]) diff --git a/Functions_output.py b/Functions_output.py index c035e5d..8469584 100644 --- a/Functions_output.py +++ b/Functions_output.py @@ -250,7 +250,7 @@ def print_current_var(variation,feat_start,list_segfeat_azu,feat,i): line=f'{variation.feature_id}\t{variation.feature_type}\t{variation.chr}\t{variation.start_new}\t{variation.stop_new}\t{variation.size_new}\t{variation.inversion}\t{variation.size_diff}\tinsertion\t-\t{variation.alt}\t{len(variation.alt)}\t{pos_old}\t{pos_new}{warning}\n' write_line(line,output_variations,False) elif variation.type=='deletion': - [pos_old,pos_new]=get_old_new_pos_deletion(variation,feat_start,list_segfeat_azu,feat,i) + [pos_old,pos_new]=get_old_new_pos_deletion(variation,feat_start,list_segfeat_azu,feat) line=f'{variation.feature_id}\t{variation.feature_type}\t{variation.chr}\t{variation.start_new}\t{variation.stop_new}\t{variation.size_new}\t{variation.inversion}\t{variation.size_diff}\tdeletion\t{variation.ref}\t-\t{len(variation.ref)}\t{pos_old}\t{pos_new}{warning}\n' write_line(line,output_variations,False) elif variation.type=='substitution': -- GitLab