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, |
