Skip to content

Commit dc15db1

Browse files
authored
Merge pull request #105 from J35P312/master
3.6.0
2 parents f5218d1 + 237d9f6 commit dc15db1

4 files changed

Lines changed: 24 additions & 15 deletions

File tree

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@
2020

2121
setup(
2222
name = 'tiddit',
23-
version = '3.5.2',
23+
version = '3.6.0',
24+
2425

2526
url = "https://github.com/SciLifeLab/TIDDIT",
2627
author = "Jesper Eisfeldt",

tiddit/__main__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import tiddit.tiddit_contig_analysis as tiddit_contig_analysis
1818

1919
def main():
20-
version="3.5.2"
20+
version="3.6.0"
2121
parser = argparse.ArgumentParser("""tiddit-{}""".format(version),add_help=False)
2222
parser.add_argument("--sv" , help="call structural variation", required=False, action="store_true")
2323
parser.add_argument("--cov" , help="generate a coverage bed file", required=False, action="store_true")
@@ -155,7 +155,7 @@ def main():
155155
args.e=int(library["avg_insert_size"]/2.0)
156156

157157
t=time.time()
158-
sv_clusters=tiddit_cluster.main(prefix,contigs,contig_length,samples,library["mp"],args.e,args.l,max_ins_len,args.min_contig,args.skip_assembly)
158+
sv_clusters=tiddit_cluster.main(prefix,contigs,contig_length,samples,library["mp"],args.e,args.l,max_ins_len,args.min_contig,args.skip_assembly,args.r)
159159

160160
print("generated clusters in")
161161
print(time.time()-t)

tiddit/tiddit_cluster.pyx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def find_discordant_pos(fragment,is_mp):
3737

3838
return(posA,posB)
3939

40-
def main(prefix,chromosomes,contig_length,samples,is_mp,epsilon,m,max_ins_len,min_contig,skip_assembly):
40+
def main(prefix,chromosomes,contig_length,samples,is_mp,epsilon,m,max_ins_len,min_contig,skip_assembly,min_reads):
4141

4242
discordants={}
4343
contigs=set([])
@@ -265,13 +265,18 @@ def main(prefix,chromosomes,contig_length,samples,is_mp,epsilon,m,max_ins_len,mi
265265
candidates[chrA][chrB][candidate]["N_splits"]=len(candidates[chrA][chrB][candidate]["splits"])
266266
candidates[chrA][chrB][candidate]["N_contigs"]=len(candidates[chrA][chrB][candidate]["contigs"])
267267

268-
if candidates[chrA][chrB][candidate]["N_contigs"]:
268+
269+
if candidates[chrA][chrB][candidate]["N_splits"] and min_reads <= candidates[chrA][chrB][candidate]["N_splits"]:
270+
candidates[chrA][chrB][candidate]["posA"]=mode(candidates[chrA][chrB][candidate]["positions_A"]["splits"])
271+
candidates[chrA][chrB][candidate]["posB"]=mode(candidates[chrA][chrB][candidate]["positions_B"]["splits"])
272+
273+
elif candidates[chrA][chrB][candidate]["N_contigs"]:
269274
candidates[chrA][chrB][candidate]["posA"]=mode(candidates[chrA][chrB][candidate]["positions_A"]["contigs"])
270275
candidates[chrA][chrB][candidate]["posB"]=mode(candidates[chrA][chrB][candidate]["positions_B"]["contigs"])
276+
271277
elif candidates[chrA][chrB][candidate]["N_splits"]:
272278
candidates[chrA][chrB][candidate]["posA"]=mode(candidates[chrA][chrB][candidate]["positions_A"]["splits"])
273-
candidates[chrA][chrB][candidate]["posB"]=mode(candidates[chrA][chrB][candidate]["positions_B"]["splits"])
274-
279+
candidates[chrA][chrB][candidate]["posB"]=mode(candidates[chrA][chrB][candidate]["positions_B"]["splits"])
275280

276281
else:
277282
reverse_A = candidates[chrA][chrB][candidate]["positions_A"]["orientation_discordants"].count("True")
@@ -328,10 +333,6 @@ def main(prefix,chromosomes,contig_length,samples,is_mp,epsilon,m,max_ins_len,mi
328333
candidates[chrA][chrB][candidate]["posB"]=mode(candidates[chrA][chrB][candidate]["positions_B"]["discordants"])
329334

330335

331-
332-
candidates[chrA][chrB][candidate]["posA"]
333-
candidates[chrA][chrB][candidate]["posB"]
334-
335336
candidates[chrA][chrB][candidate]["startB"]=min(candidates[chrA][chrB][candidate]["positions_B"]["start"])
336337
candidates[chrA][chrB][candidate]["endB"]=max(candidates[chrA][chrB][candidate]["positions_B"]["end"])
337338

tiddit/tiddit_signal.pyx

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,13 @@ def SA_analysis(read,min_q,tag,reference_name):
6565

6666
cdef long read_query_alignment_end=read.query_alignment_end
6767

68-
if (read.query_alignment_start ) < (read.query_length - read_query_alignment_end):
68+
clip_before=False
69+
70+
supplementry_alignment=find_SA_query_range(SA_data)
71+
if supplementry_alignment.query_alignment_start < read.query_alignment_start:
72+
clip_before=True
73+
74+
if not clip_before:
6975
if read.is_reverse:
7076

7177

@@ -78,7 +84,6 @@ def SA_analysis(read,min_q,tag,reference_name):
7884
else:
7985
split_pos=read.reference_start+1
8086

81-
supplementry_alignment=find_SA_query_range(SA_data)
8287
SA_chr=SA_data[0]
8388

8489
startA=read.reference_start+1
@@ -87,8 +92,7 @@ def SA_analysis(read,min_q,tag,reference_name):
8792
startB=supplementry_alignment.reference_start
8893
endB=supplementry_alignment.reference_end
8994

90-
91-
if (supplementry_alignment.query_alignment_start ) < (supplementry_alignment.query_length - read_query_alignment_end):
95+
if clip_before:
9296
if SA_data[2] == "-":
9397

9498
SA_split_pos=supplementry_alignment.reference_start
@@ -192,6 +196,9 @@ def worker(str chromosome, str bam_file_name,str ref,str prefix,int min_q,int ma
192196
if read.mate_is_unmapped:
193197
continue
194198

199+
if not read.is_paired:
200+
continue
201+
195202

196203
if ( abs(read.isize) > max_ins or mate_chromosome != read_chromosome ):
197204
read_query_name=read.query_name

0 commit comments

Comments
 (0)