Mercurial > repos > iuc > iedb_api
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, |