[med-svn] [Git][med-team/cutesv][master] 4 commits: New upstream version 1.0.13

Andreas Tille (@tille) gitlab at salsa.debian.org
Wed Jan 26 20:11:37 GMT 2022



Andreas Tille pushed to branch master at Debian Med / cutesv


Commits:
f652ffb0 by Andreas Tille at 2022-01-26T21:04:46+01:00
New upstream version 1.0.13
- - - - -
a9c314fa by Andreas Tille at 2022-01-26T21:04:46+01:00
routine-update: New upstream version

- - - - -
b44b078c by Andreas Tille at 2022-01-26T21:04:50+01:00
Update upstream source from tag 'upstream/1.0.13'

Update to upstream version '1.0.13'
with Debian dir 7951b45763b8cffb91f6f0df893f2cb9db39aceb
- - - - -
5bffe473 by Andreas Tille at 2022-01-26T21:10:52+01:00
Upload to unstable

- - - - -


10 changed files:

- README.md
- debian/changelog
- setup.py
- src/cuteSV/cuteSV
- src/cuteSV/cuteSV_Description.py
- src/cuteSV/cuteSV_genotype.py
- src/cuteSV/cuteSV_resolveDUP.py
- src/cuteSV/cuteSV_resolveINDEL.py
- src/cuteSV/cuteSV_resolveINV.py
- src/cuteSV/cuteSV_resolveTRA.py


Changes:

=====================================
README.md
=====================================
@@ -116,6 +116,10 @@ Please cite the manuscript of cuteSV before using these callsets.
 ---
 ### Changelog
 
+	cuteSV (v1.0.13):
+	1. Modify the breakpoints of alternative allele and reference allele. 
+	2. Fix an initialization error that will reproduce wrong diploid-assembly-based SV call.
+
 	cuteSV (v1.0.12):
 	1. Add Allele frequency (AF) info in the outputs.
 	2. Fix an index error when force calling BND variants.


=====================================
debian/changelog
=====================================
@@ -1,3 +1,9 @@
+cutesv (1.0.13-1) unstable; urgency=medium
+
+  * New upstream version
+
+ -- Andreas Tille <tille at debian.org>  Wed, 26 Jan 2022 21:09:42 +0100
+
 cutesv (1.0.12-1) unstable; urgency=medium
 
   * DEP3


=====================================
setup.py
=====================================
@@ -7,7 +7,7 @@ with open('README.md') as f:
 
 setup(
     name = "cuteSV",
-    version = "1.0.12",
+    version = "1.0.13",
     description = "Long-read-based human genomic structural variation detection with cuteSV",
     author = "Jiang Tao",
     author_email = "tjiang at hit.edu.cn",


=====================================
src/cuteSV/cuteSV
=====================================
@@ -4,8 +4,8 @@
  * All rights Reserved, Designed By HIT-Bioinformatics   
  * @Title: cuteSV 
  * @author: tjiang
- * @date: Oct 4th 2021
- * @version V1.0.12
+ * @date: Jan 24th 2022
+ * @version V1.0.13
 '''
 
 import pysam
@@ -463,7 +463,7 @@ def parse_read(read, Chr_name, SV_size, min_mapq, max_split_parts, min_read_len,
 
 	process_signal = detect_flag(read.flag)
 	if read.mapq >= min_mapq:
-		pos_start = read.reference_start
+		pos_start = read.reference_start # 0-based
 		pos_end = read.reference_end
 		shift_del = 0
 		shift_ins = 0
@@ -493,7 +493,6 @@ def parse_read(read, Chr_name, SV_size, min_mapq, max_split_parts, min_read_len,
 			if element[0] in [0, 2, 7, 8]:
 				shift_ins += element[1]
 			if element[0] == 1 and element[1] >= SV_size:
-				shift_ins += 1
 				Combine_sig_in_same_read_ins.append([pos_start+shift_ins, element[1],
 					str(read.query_sequence[shift_ins_read-element[1]-hardclip_left:shift_ins_read-hardclip_left])])
 


=====================================
src/cuteSV/cuteSV_Description.py
=====================================
@@ -2,12 +2,12 @@
  * All rights Reserved, Designed By HIT-Bioinformatics   
  * @Title:  cuteSV_Description.py
  * @author: tjiang
- * @date: Oct 4th 2021
- * @version V1.0.12
+ * @date: Jan 24th 2022
+ * @version V1.0.13
 '''
 import argparse
 
-VERSION = '1.0.12'
+VERSION = '1.0.13'
 
 class cuteSVdp(object):
 	'''


=====================================
src/cuteSV/cuteSV_genotype.py
=====================================
@@ -109,9 +109,9 @@ def generate_output(args, semi_result, contigINFO, argv, ref_g):
 			if abs(int(float(i[3]))) > args.max_size and args.max_size != -1:
 				continue
 			if i[1] == "INS":
-				cal_end = int(i[2]) + 1
+				cal_end = int(i[2])
 			else:
-				cal_end = int(i[2]) + 1 + abs(int(float(i[3])))
+				cal_end = int(i[2]) + abs(int(float(i[3])))
 			info_list = "{PRECISION};SVTYPE={SVTYPE};SVLEN={SVLEN};END={END};CIPOS={CIPOS};CILEN={CILEN};RE={RE};RNAMES={RNAMES}".format(
 				PRECISION = "IMPRECISE" if i[8] == "0/0" else "PRECISE", 
 				SVTYPE = i[1], 
@@ -134,7 +134,7 @@ def generate_output(args, semi_result, contigINFO, argv, ref_g):
 				filter_lable = "PASS" if float(i[11]) >= 5.0 else "q5"
 			file.write("{CHR}\t{POS}\t{ID}\t{REF}\t{ALT}\t{QUAL}\t{PASS}\t{INFO}\t{FORMAT}\t{GT}:{DR}:{RE}:{PL}:{GQ}\n".format(
 				CHR = i[0], 
-				POS = str(int(i[2]) + 1), 
+				POS = str(int(i[2])), 
 				ID = "cuteSV.%s.%d"%(i[1], svid[i[1]]),
 				REF = str(ref_g[i[0]].seq[max(int(i[2])-1, 0)]) if i[1] == 'INS' else str(ref_g[i[0]].seq[max(int(i[2])-1, 0):int(i[2])-int(i[3])]),
 				ALT = "%s"%(str(ref_g[i[0]].seq[max(int(i[2])-1, 0)])+i[13] if i[1] == 'INS' else str(ref_g[i[0]].seq[max(int(i[2])-1, 0)])), 
@@ -273,8 +273,8 @@ def generate_pvcf(args, result, contigINFO, argv, ref_g):
 			if abs(i[4]) > args.max_size and args.max_size != -1:
 				continue
 			elif i[12] == '<INS>':
-				ref = str(ref_g[i[0]].seq[max(i[1]-2, 0)])
-				alt = str(ref_g[i[0]].seq[max(i[1]-2, 0)]) + i[15]
+				ref = str(ref_g[i[0]].seq[max(i[1]-1, 0)])
+				alt = str(ref_g[i[0]].seq[max(i[1]-1, 0)]) + i[15]
 			else:
 				ref = i[11]
 				alt = i[12]
@@ -311,8 +311,8 @@ def generate_pvcf(args, result, contigINFO, argv, ref_g):
 			if abs(i[4]) > args.max_size and args.max_size != -1:
 				continue
 			elif i[12] == '<DEL>':
-				ref = str(ref_g[i[0]].seq[max(i[1]-2, 0):int(i[1])-1-int(i[4])])
-				alt = str(ref_g[i[0]].seq[max(int(i[1])-2, 0)])
+				ref = str(ref_g[i[0]].seq[max(int(i[1])-1, 0):int(i[1])-int(i[4])])
+				alt = str(ref_g[i[0]].seq[max(int(i[1])-1, 0)])
 			else:
 				ref = i[11]
 				alt = i[12]


=====================================
src/cuteSV/cuteSV_resolveDUP.py
=====================================
@@ -48,7 +48,11 @@ def resolution_DUP(path, chr, read_count, max_cluster_bias, sv_size,
 			semi_dup_cluster = []
 			semi_dup_cluster.append([pos_1, pos_2, read_id])
 		else:
-			semi_dup_cluster.append([pos_1, pos_2, read_id])
+			if semi_dup_cluster[-1][0] == semi_dup_cluster[-1][1] == 0:
+				semi_dup_cluster = []
+				semi_dup_cluster.append([pos_1, pos_2, read_id])
+			else:
+				semi_dup_cluster.append([pos_1, pos_2, read_id])
 
 	if len(semi_dup_cluster) >= read_count:
 		if semi_dup_cluster[-1][0] == semi_dup_cluster[-1][1] == 0:


=====================================
src/cuteSV/cuteSV_resolveINDEL.py
=====================================
@@ -77,7 +77,11 @@ def resolution_DEL(path, chr, svtype, read_count, threshold_gloab, max_cluster_b
 			semi_del_cluster = []
 			semi_del_cluster.append([pos, indel_len, read_id])
 		else:
-			semi_del_cluster.append([pos, indel_len, read_id])
+			if semi_del_cluster[-1][0] == semi_del_cluster[-1][1] == 0:
+				semi_del_cluster = []
+				semi_del_cluster.append([pos, indel_len, read_id])
+			else:
+				semi_del_cluster.append([pos, indel_len, read_id])
 
 	if len(semi_del_cluster) >= read_count:
 		if semi_del_cluster[-1][0] == semi_del_cluster[-1][1] == 0:
@@ -256,7 +260,11 @@ def resolution_INS(path, chr, svtype, read_count, threshold_gloab,
 			semi_ins_cluster = []
 			semi_ins_cluster.append([pos, indel_len, read_id, ins_seq])
 		else:
-			semi_ins_cluster.append([pos, indel_len, read_id, ins_seq])
+			if semi_ins_cluster[-1][0] == semi_ins_cluster[-1][1] == 0:
+				semi_ins_cluster = []
+				semi_ins_cluster.append([pos, indel_len, read_id, ins_seq])
+			else:
+				semi_ins_cluster.append([pos, indel_len, read_id, ins_seq])
 
 	if len(semi_ins_cluster) >= read_count:
 		if semi_ins_cluster[-1][0] == semi_ins_cluster[-1][1] == 0:


=====================================
src/cuteSV/cuteSV_resolveINV.py
=====================================
@@ -69,7 +69,11 @@ def resolution_INV(path, chr, svtype, read_count, max_cluster_bias, sv_size,
 			semi_inv_cluster = []
 			semi_inv_cluster.append([breakpoint_1_in_read, breakpoint_2_in_read, read_id, strand])
 		else:
-			semi_inv_cluster.append([breakpoint_1_in_read, breakpoint_2_in_read, read_id, strand])
+			if semi_inv_cluster[-1][0] == semi_inv_cluster[-1][1] == 0:
+				semi_inv_cluster = []
+				semi_inv_cluster.append([breakpoint_1_in_read, breakpoint_2_in_read, read_id, strand])
+			else:
+				semi_inv_cluster.append([breakpoint_1_in_read, breakpoint_2_in_read, read_id, strand])
 
 	if len(semi_inv_cluster) >= read_count:
 		if semi_inv_cluster[-1][0] == semi_inv_cluster[-1][1] == 0:


=====================================
src/cuteSV/cuteSV_resolveTRA.py
=====================================
@@ -62,7 +62,11 @@ def resolution_TRA(path, chr_1, chr_2, read_count, overlap_size, max_cluster_bia
 			semi_tra_cluster = []
 			semi_tra_cluster.append([pos_1, pos_2, read_id, BND_type])
 		else:
-			semi_tra_cluster.append([pos_1, pos_2, read_id, BND_type])
+			if semi_tra_cluster[-1][0] == semi_tra_cluster[-1][1] == 0:
+				semi_tra_cluster = []
+				semi_tra_cluster.append([pos_1, pos_2, read_id, BND_type])
+			else:
+				semi_tra_cluster.append([pos_1, pos_2, read_id, BND_type])
 
 	if len(semi_tra_cluster) >= read_count:
 		if semi_tra_cluster[-1][0] == semi_tra_cluster[-1][1] == 0:



View it on GitLab: https://salsa.debian.org/med-team/cutesv/-/compare/a4937bc1990b2f4ea2a91c3c8bab4d2d5ff4c30d...5bffe473f82339130b25314c4b044765c34b3224

-- 
View it on GitLab: https://salsa.debian.org/med-team/cutesv/-/compare/a4937bc1990b2f4ea2a91c3c8bab4d2d5ff4c30d...5bffe473f82339130b25314c4b044765c34b3224
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20220126/22d100c0/attachment-0001.htm>


More information about the debian-med-commit mailing list