comparison peptide_pi_annotator.py @ 3:78afc81ab244 draft default tip

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tools/pi_db_tools commit decb06dc90d7069d317968b979f649a04720b264
author galaxyp
date Thu, 14 Sep 2017 11:55:02 -0400
parents 8a30d6e5b97d
children
comparison
equal deleted inserted replaced
2:77ddaee887a8 3:78afc81ab244
41 args.ignoremods): 41 args.ignoremods):
42 fp.write('\t'.join([str(x) for x in outline])) 42 fp.write('\t'.join([str(x) for x in outline]))
43 fp.write('\n') 43 fp.write('\n')
44 44
45 45
46 def get_first_matching_pattern(patterns, string): 46 def get_strip(strips, string):
47 for pattern in patterns: 47 for pattern in strips.keys():
48 if re.search(pattern, string): 48 if re.search(pattern, string):
49 return pattern 49 return strips[pattern]
50 return False 50 return False
51 51
52 52
53 def get_col_by_pattern(peptable, colpattern): 53 def get_col_by_pattern(peptable, colpattern):
54 with open(peptable) as fp: 54 with open(peptable) as fp:
69 with open(peptable) as fp: 69 with open(peptable) as fp:
70 header = next(fp).strip('\n').split('\t') 70 header = next(fp).strip('\n').split('\t')
71 yield header + ['Experimental pI', 'Predicted pI', 'Delta pI'] 71 yield header + ['Experimental pI', 'Predicted pI', 'Delta pI']
72 for line in fp: 72 for line in fp:
73 line = line.strip('\n').split('\t') 73 line = line.strip('\n').split('\t')
74 strip = strips[get_first_matching_pattern(strips.keys(),
75 line[stripcol])]
76 exp_pi = (strip['fr_width'] * int(line[frac_col]) +
77 strip['intercept'])
78
79 sequence = line[seqcol] 74 sequence = line[seqcol]
80 for weight in ignoremods: 75 for weight in ignoremods:
81 if weight == '*': 76 if weight == '*':
82 regex = '[+-]\d*\.\d*' 77 regex = '[+-]\d*\.\d*'
83 else: 78 else:
88 except KeyError: 83 except KeyError:
89 print('CANNOT PREDICT', sequence) 84 print('CANNOT PREDICT', sequence)
90 not_predicted_count += 1 85 not_predicted_count += 1
91 pred_pi, delta_pi = 'NA', 'NA' 86 pred_pi, delta_pi = 'NA', 'NA'
92 else: 87 else:
93 delta_pi = exp_pi - pred_pi
94 predicted_count += 1 88 predicted_count += 1
89 strip = get_strip(strips, line[stripcol])
90 if not strip:
91 exp_pi, delta_pi = 'NA', 'NA'
92 else:
93 try:
94 exp_pi = (strip['fr_width'] * int(line[frac_col]) +
95 strip['intercept'])
96 except ValueError:
97 print('Cannot detect fraction for PSM {}'.format(sequence))
98 exp_pi, delta_pi = 'NA', 'NA'
99 else:
100 if pred_pi != 'NA':
101 delta_pi = exp_pi - pred_pi
102 else:
103 delta_pi = 'NA'
95 yield line + [exp_pi, pred_pi, delta_pi] 104 yield line + [exp_pi, pred_pi, delta_pi]
96 print('Number of peptides without pI prediction: {}\n' 105 print('Number of peptides without pI prediction: {}\n'
97 'Number of peptides with predicion: {}\n'.format(not_predicted_count, 106 'Number of peptides predicted: {}\n'.format(not_predicted_count,
98 predicted_count)) 107 predicted_count))
99 108
100 109
101 def parse_commandline(): 110 def parse_commandline():
102 parser = argparse.ArgumentParser( 111 parser = argparse.ArgumentParser(
103 formatter_class=argparse.RawTextHelpFormatter) 112 formatter_class=argparse.RawTextHelpFormatter)