annotate range2tag.py @ 2:7d4ec8f51253 draft

planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 24aafe8e14a7e61886d9361efe9fbf5ea59c4294
author gpovysil
date Wed, 16 May 2018 09:26:43 -0400
parents 0b486eaca66e
children e66e151e07ab
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
1 """range2tag.py
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
2
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
3 Author -- Gundula Povysil
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
4 Contact -- povysil@bioinf.jku.at
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
5
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
6 Takes a SAM file, start and stop positions as input and prints all tags
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
7 of reads that overlap with regions to user specified output file.
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
8 ======= ========== ================= ================================
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
9 Version Date Author Description
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
10 0.0.2 2018-05-15 Gundula Povysil -
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
11 ======= ========== ================= ================================
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
12
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
13 USAGE: python range2tag.py inputFile.sam ranges.txt outputFile.txt
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
14 """
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
15
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
16
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
17 import numpy as np
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
18 import re
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
19 import argparse
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
20 import sys
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
21 import os
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
22
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
23 def make_argparser():
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
24 parser = argparse.ArgumentParser(description='Takes a SAM file, start and stop positions as input and prints all tags of reads that overlap with regions to user specified output file.')
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
25 parser.add_argument('inputFile',
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
26 help='SAM file with aligned reads.')
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
27 parser.add_argument('rangesFile',
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
28 help='TXT file with start and stop positions.')
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
29 parser.add_argument('outputFile',
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
30 help='Output TXT file with tags that are within specified regions.')
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
31 return parser
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
32
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
33 def range2tag(argv):
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
34 parser = make_argparser()
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
35 args=parser.parse_args(argv[1:])
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
36
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
37 inputFile = args.inputFile
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
38 rangesFile = args.rangesFile
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
39 outputFile = args.outputFile
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
40
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
41 if os.path.isfile(inputFile) is False:
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
42 print("Error: Could not find '{}'".format(inputFile))
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
43 exit(0)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
44
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
45 if os.path.isfile(rangesFile) is False:
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
46 print("Error: Could not find '{}'".format(rangesFile))
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
47 exit(0)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
48
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
49 with open(rangesFile, 'r') as regs:
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
50 range_array = np.genfromtxt(regs, skip_header=0, delimiter='\t', comments='#')
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
51
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
52 start_posList = range_array[:,0].astype(int)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
53 stop_posList = range_array[:,1].astype(int)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
54
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
55 print(start_posList)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
56 print(stop_posList)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
57
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
58 if len(start_posList) == 0:
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
59 print("Error: start_positions is empty")
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
60 exit(2)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
61
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
62 if len(stop_posList) == 0:
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
63 print("Error: end_positions is empty")
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
64 exit(3)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
65
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
66 if len(start_posList) != len(stop_posList):
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
67 print("start_positions and end_positions do not have the same length")
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
68 exit(3)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
69
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
70 with open(inputFile, 'r') as sam:
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
71 data_array = np.genfromtxt(sam, skip_header=0, delimiter='\t', usecols=range(11), comments='#', dtype='string')
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
72
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
73 tags = np.array(data_array[:, 0])
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
74 ref_pos = np.array(data_array[:, 3]).astype(int)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
75 cigar = np.array(data_array[:, 5])
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
76
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
77 lst = []
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
78 ind = []
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
79 start_posList = np.array(start_posList).astype(int)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
80 stop_posList = np.array(stop_posList).astype(int)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
81
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
82 for start_pos, stop_pos in zip(start_posList, stop_posList):
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
83 start_pos = start_pos - 3
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
84 stop_pos = stop_pos + 3
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
85 mut_tags = None
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
86 for t in range(0, len(tags)):
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
87 c_split = re.split('([A-Z])', cigar[t])
2
7d4ec8f51253 planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 24aafe8e14a7e61886d9361efe9fbf5ea59c4294
gpovysil
parents: 0
diff changeset
88 print(c_split)
0
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
89 cigar_long = None
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
90
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
91 for i in range(1, len(c_split), 2):
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
92 if cigar_long is None:
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
93 cigar_long = np.repeat(c_split[i], c_split[i - 1])
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
94 else:
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
95 cigar_long = np.concatenate((cigar_long, np.repeat(c_split[i], c_split[i - 1])), axis=0)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
96
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
97 pos = ref_pos[t]
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
98 seq_pos = 0
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
99 # print(pos)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
100 if pos < stop_pos:
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
101 for j in range(0, len(cigar_long)):
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
102 if pos >= stop_pos:
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
103 break
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
104 if cigar_long[j] in ("M", "D", "N"):
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
105 pos += 1
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
106 # print(pos)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
107 if pos > start_pos:
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
108 if mut_tags is None:
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
109 mut_tags = np.array((tags[t]))
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
110 else:
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
111 mut_tags = np.vstack((mut_tags, np.array(tags[t])))
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
112
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
113 index = np.repeat("{}_{}".format(start_pos, stop_pos), len(mut_tags))
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
114 ind.append(index)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
115 lst.append(mut_tags)
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
116
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
117 index = np.concatenate((ind))
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
118 tags = np.concatenate((lst))
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
119 mut_tags = np.column_stack((index, tags))
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
120
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
121 np.savetxt(outputFile, mut_tags, fmt="%s")
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
122 print("File saved under {} in {}!".format(outputFile, os.getcwd()))
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
123
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
124
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
125 if __name__ == '__main__':
0b486eaca66e planemo upload for repository https://github.com/gpovysil/galaxy/tools/range2tag commit 16b1092dfe1052f9560188e67f39009f1e4b32bc
gpovysil
parents:
diff changeset
126 sys.exit(range2tag(sys.argv))