diff --git a/Functions.py b/Functions.py index b47b6f911ba4b35e58fc5c174c533d9639908e9a..be2508f44be10050649d9a6fb74da851d13e05eb 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 c035e5d0a86de457553fbbffb967d1ba09d1e620..846958416f0fea0d92e9100854f45dba84a22cf6 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':