comparison iedb_api.py @ 3:e95d3221b7f0 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/iedb_api commit 863578373c7dadc5880633115b0c348f73dac782"
author iuc
date Fri, 11 Sep 2020 21:02:34 +0000
parents 6cf84410cb2e
children 7ed6dda64a81
comparison
equal deleted inserted replaced
2:a09849898387 3:e95d3221b7f0
33 'processing': range(8, 15), 33 'processing': range(8, 15),
34 'mhcnp': range(8, 12), 34 'mhcnp': range(8, 12),
35 'bcell': range(8, 16)} 35 'bcell': range(8, 16)}
36 36
37 37
38 def parse_alleles(allelefile, lengths): 38 def parse_alleles(allelefile, query_lengths):
39 alleles = [] 39 alleles = []
40 lengths = [] 40 lengths = []
41 with open(allelefile, 'r') as fh: 41 with open(allelefile, 'r') as fh:
42 for i, line in enumerate(fh): 42 for i, line in enumerate(fh):
43 fields = line.strip().split(',') 43 fields = line.strip().split(',')
45 if allele: 45 if allele:
46 if len(fields) > 1: 46 if len(fields) > 1:
47 for alen in fields[1:]: 47 for alen in fields[1:]:
48 alleles.append(allele) 48 alleles.append(allele)
49 lengths.append(alen) 49 lengths.append(alen)
50 elif lengths: 50 elif query_lengths:
51 for alen in str(lengths).split(','): 51 lens = []
52 for ql in query_lengths:
53 lens.extend(str(ql).split(','))
54 for alen in lens:
52 alleles.append(allele) 55 alleles.append(allele)
53 lengths.append(alen) 56 lengths.append(alen)
54 else: 57 else:
55 alleles.append(allele) 58 alleles.append(allele)
56 return (alleles, lengths) 59 return (alleles, lengths)
155 default=None, 158 default=None,
156 help='File of HLA alleles') 159 help='File of HLA alleles')
157 parser.add_argument('-l', '--length', 160 parser.add_argument('-l', '--length',
158 action="append", 161 action="append",
159 default=[], 162 default=[],
160 help='lengths for which to make predictions, ' 163 help='lengths for which to make predictions for alleles')
161 '1 per allele')
162 parser.add_argument('-w', '--window_size', 164 parser.add_argument('-w', '--window_size',
163 type=int, 165 type=int,
164 default=None, 166 default=None,
165 help='window_size for bcell prediction') 167 help='window_size for bcell prediction')
166 parser.add_argument('-i', '--input', 168 parser.add_argument('-i', '--input',
167 default=None, 169 default=None,
168 help='Input file for peptide sequences ' 170 help='Input file for peptide sequences '
169 '(fasta or tabular)') 171 + '(fasta or tabular)')
170 parser.add_argument('-c', '--column', 172 parser.add_argument('-c', '--column',
171 default=None, 173 default=None,
172 help='Peptide Column in a tabular input file') 174 help='Peptide Column in a tabular input file')
173 parser.add_argument('-C', '--id_column', 175 parser.add_argument('-C', '--id_column',
174 default=None, 176 default=None,
203 if not args.allele and not args.allelefile: 205 if not args.allele and not args.allelefile:
204 warn_err('-a allele or -A allelefile required\n', exit_code=1) 206 warn_err('-a allele or -A allelefile required\n', exit_code=1)
205 207
206 if not (args.sequence or args.input): 208 if not (args.sequence or args.input):
207 warn_err('NO Sequences given: ' 209 warn_err('NO Sequences given: '
208 'either -s sequence or -i input_file is required\n', 210 + 'either -s sequence or -i input_file is required\n',
209 exit_code=1) 211 exit_code=1)
210 212
211 if args.output is not None: 213 if args.output is not None:
212 try: 214 try:
213 outputPath = os.path.abspath(args.output) 215 outputPath = os.path.abspath(args.output)
226 if args.allelefile: 228 if args.allelefile:
227 (alleles, lengths) = parse_alleles(args.allelefile, args.length) 229 (alleles, lengths) = parse_alleles(args.allelefile, args.length)
228 if args.allele: 230 if args.allele:
229 for i, allele in enumerate(args.allele): 231 for i, allele in enumerate(args.allele):
230 alleles.append(allele) 232 alleles.append(allele)
231 alen = args.length[i] if i < len(args.length) else args.length[-1] 233 alen = args.length[i] if i < len(args.length)\
234 else args.length[-1]
232 lengths.append(alen) 235 lengths.append(alen)
233 allele = ','.join(alleles) if alleles else None 236 allele = ','.join(alleles) if alleles else None
234 length = ','.join(lengths) if lengths else None 237 length = ','.join(lengths) if lengths else None
235 method = args.method 238 method = args.method
236 proteasome = args.proteasome if args.prediction == 'processcing' else None 239 proteasome = args.proteasome if args.prediction == 'processcing' else None
237 url = 'http://tools-cluster-interface.iedb.org/tools_api/%s/' %\ 240 url = 'http://tools-cluster-interface.iedb.org/tools_api/%s/' %\
238 args.prediction 241 args.prediction
239 242
240 # results 243 # results
241 results = {'prediction': {'header': None, 'entries': []}, 'detail': {'header': None, 'entries': []}} 244 results = {'prediction': {'header': None, 'entries': []},
245 'detail': {'header': None, 'entries': []}}
242 246
243 if args.sequence: 247 if args.sequence:
244 for i, seq in enumerate(args.sequence): 248 for i, seq in enumerate(args.sequence):
245 seqid = 'pep_%d' % i 249 seqid = 'pep_%d' % i
246 query(url, args.prediction, seq, allele, length, results, 250 query(url, args.prediction, seq, allele, length, results,