comparison find_str.py @ 19:db5523378e5c draft

planemo upload for repository https://github.com/fubar2/microsatbed commit d952bc313f408735456747c3d33e09a3170c8f59-dirty
author fubar
date Wed, 17 Jul 2024 07:40:00 +0000
parents 264d79548d19
children 410144c7b2d6
comparison
equal deleted inserted replaced
18:607620f93b4c 19:db5523378e5c
21 specific = None 21 specific = None
22 if args.specific: 22 if args.specific:
23 specific = args.specific.upper().split(",") 23 specific = args.specific.upper().split(",")
24 fa = Fastx(args.fasta, uppercase=True) 24 fa = Fastx(args.fasta, uppercase=True)
25 for name, seq in fa: 25 for name, seq in fa:
26 if args.specific: 26 for ssr in pytrf.STRFinder(
27 ssrs = pytrf.STRFinder(
28 name, 27 name,
29 seq, 28 seq,
30 args.monomin, 29 args.monomin,
31 args.dimin, 30 args.dimin,
32 args.trimin, 31 args.trimin,
33 args.tetramin, 32 args.tetramin,
34 args.pentamin, 33 args.pentamin,
35 args.hexamin, 34 args.hexamin,
36 ) 35 ):
37 else:
38 ssrs = pytrf.STRFinder(
39 name,
40 seq,
41 args.monomin,
42 args.dimin,
43 args.trimin,
44 args.tetramin,
45 args.pentamin,
46 args.hexamin,
47 )
48 for ssr in ssrs:
49 row = ( 36 row = (
50 ssr.chrom, 37 ssr.chrom,
51 ssr.start - 1, 38 ssr.start,
52 ssr.end, 39 ssr.end,
53 ssr.motif, 40 ssr.motif,
54 ssr.repeat, 41 ssr.repeat,
55 ssr.length, 42 ssr.length,
56 ) 43 )
57 # pytrf reports a 1 based start position so start-1 fixes the bed interval lengths 44 # pytrf reports a 1 based start position so start-1 fixes the bed interval lengths
58 if args.specific and ssr.motif in specific and ssr.repeat >= args.minreps: 45 if args.specific and ssr.motif in specific:
59 bed.append(row) 46 bed.append(row)
60 elif args.mono and len(ssr.motif) == 1: 47 elif args.mono and len(ssr.motif) == 1:
61 bed.append(row) 48 bed.append(row)
62 elif args.di and len(ssr.motif) == 2: 49 elif args.di and len(ssr.motif) == 2:
63 bed.append(row) 50 bed.append(row)