Mercurial > repos > iuc > deg_annotate
annotate deg_annotate.py @ 2:e81fbbea6e8f draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit f926103056cdcd0c37c38f7c636870e5b1f9f8c5
| author | iuc | 
|---|---|
| date | Sat, 21 Jun 2025 13:03:14 +0000 | 
| parents | e98d4ab5b5bc | 
| children | 
| rev | line source | 
|---|---|
| 0 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 1 import argparse | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 2 import os | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 3 from collections import defaultdict | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 4 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 5 from BCBio import GFF | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 6 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 7 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 8 def strandardize(strand): | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 9 if str(strand) == '-1': | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 10 strand = '-' | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 11 elif str(strand) == '1': | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 12 strand = '+' | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 13 return strand | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 14 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 15 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 16 def gff_to_dict(f_gff, feat_type, idattr, txattr, attributes, input_type): | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 17 """ | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 18 It reads only exonic features because not all GFF files contain gene and trascript features. From the exonic | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 19 features it extracts gene names, biotypes, start and end positions. If any of these attributes do not exit | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 20 then they are set to NA. | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 21 """ | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 22 annotation = defaultdict(lambda: defaultdict(lambda: 'NA')) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 23 exon_pos = defaultdict(lambda: defaultdict(lambda: defaultdict(int))) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 24 tx_info = defaultdict(lambda: defaultdict(str)) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 25 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 26 with open(f_gff) as gff_handle: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 27 for rec in GFF.parse(gff_handle, limit_info=dict(gff_type=[feat_type]), target_lines=1): | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 28 for sub_feature in rec.features: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 29 start = sub_feature.location.start | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 30 end = sub_feature.location.end | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 31 strand = strandardize(sub_feature.location.strand) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 32 try: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 33 geneid = sub_feature.qualifiers[idattr][0] | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 34 except KeyError: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 35 print("No '" + idattr + "' attribute found for the feature at position " | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 36 + rec.id + ":" + str(start) + ":" + str(end) + ". Please check your GTF/GFF file.") | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 37 continue | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 38 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 39 annotation[geneid]['chr'] = rec.id | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 40 annotation[geneid]['strand'] = strand | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 41 if annotation[geneid]['start'] == 'NA' or start <= int(annotation[geneid]['start']): | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 42 annotation[geneid]['start'] = start | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 43 if annotation[geneid]['end'] == 'NA' or end >= int(annotation[geneid]['end']): | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 44 annotation[geneid]['end'] = end | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 45 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 46 for attr in attributes: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 47 if attr in annotation[geneid]: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 48 continue | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 49 try: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 50 annotation[geneid][attr] = sub_feature.qualifiers[attr][0] | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 51 except KeyError: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 52 annotation[geneid][attr] = 'NA' | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 53 # extract exon information only in case of dexseq output | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 54 if input_type != "dexseq": | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 55 continue | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 56 try: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 57 txid = sub_feature.qualifiers[txattr][0] | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 58 tx_info[txid]['chr'] = rec.id | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 59 tx_info[txid]['strand'] = strand | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 60 exon_pos[txid][int(start)][int(end)] = 1 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 61 except KeyError: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 62 print("No '" + txattr + "' attribute found for the feature at position " + rec.id + ":" + str( | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 63 start) + ":" + str(end) + ". Please check your GTF/GFF file.") | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 64 pass | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 65 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 66 bed_entries = [] | 
| 1 
e98d4ab5b5bc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit 44d3dae188cabf4a64dee7c1ebe41c855d95d1b0
 iuc parents: 
0diff
changeset | 67 # create BED lines only for dexeq output | 
| 0 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 68 if input_type == "dexseq": | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 69 for txid in exon_pos.keys(): | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 70 starts = sorted(exon_pos[txid]) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 71 strand = tx_info[txid]['strand'] | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 72 if strand == '-': | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 73 starts = reversed(starts) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 74 for c, start in enumerate(starts, 1): | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 75 ends = sorted(exon_pos[txid][start]) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 76 if strand == '-': | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 77 ends = reversed(ends) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 78 for end in ends: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 79 bed_entries.append('\t'.join([tx_info[txid]['chr'], str(start), str(end), | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 80 txid + ':' + str(c), '0', strand])) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 81 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 82 return annotation, bed_entries | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 83 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 84 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 85 def main(): | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 86 parser = argparse.ArgumentParser(description='Annotate DESeq2/DEXSeq tables with information from GFF/GTF files') | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 87 parser.add_argument('-in', '--input', required=True, | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 88 help='DESeq2/DEXSeq output. It is allowed to have extra information, ' | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 89 'but make sure that the original output columns are not altered') | 
| 1 
e98d4ab5b5bc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit 44d3dae188cabf4a64dee7c1ebe41c855d95d1b0
 iuc parents: 
0diff
changeset | 90 parser.add_argument('-m', '--mode', required=True, choices=["degseq", "dexseq"], | 
| 
e98d4ab5b5bc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit 44d3dae188cabf4a64dee7c1ebe41c855d95d1b0
 iuc parents: 
0diff
changeset | 91 default='degseq', help='Input file type') | 
| 0 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 92 parser.add_argument('-g', '--gff', required=True, help='The same annotation GFF/GTF file used for couting') | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 93 parser.add_argument('-t', '--type', default='exon', required=False, | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 94 help='feature type (3rd column in GFF file) to be used (default: exon)') | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 95 parser.add_argument('-i', '--idattr', default='gene_id', required=False, | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 96 help='GFF attribute to be used as feature ID. ' | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 97 'This should match the first column of DESeq2 output(default: geneid)') | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 98 parser.add_argument('-x', '--txattr', default='transcript_id', required=False, | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 99 help='GFF attribute to be used as transcript ID. Used for DEXSeq output only.' | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 100 'This should match the first column of DESeq2 output(default: transcript_id)') | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 101 parser.add_argument('-a', '--attributes', default='gene_biotype, gene_name', required=False, | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 102 help='Comma separated attributes to include in output. Default: gene_biotype, gene_name') | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 103 parser.add_argument('-o', '--output', required=True, help='Output file') | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 104 args = parser.parse_args() | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 105 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 106 print("DE(X)Seq output file : %s" % args.input) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 107 print("Input file type : %s" % args.mode) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 108 print("Annotation file : %s" % args.gff) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 109 print("Feature type : %s" % args.type) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 110 print("ID attribute : %s" % args.idattr) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 111 print("Transcript attribute : %s" % args.txattr) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 112 print("Attributes to include : %s" % args.attributes) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 113 print("Annotated output file : %s" % args.output) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 114 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 115 attr = [x.strip() for x in args.attributes.split(',')] | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 116 annotation, bed_entries = gff_to_dict(args.gff, args.type, args.idattr, args.txattr, attr, args.mode) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 117 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 118 d_binexon = {} | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 119 skip_exon_annotation = False | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 120 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 121 if args.mode == "dexseq": | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 122 with open(args.input) as fh_input, open("input.bed", "w") as fh_input_bed: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 123 for line in fh_input: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 124 f = line.split('\t') | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 125 fh_input_bed.write('\t'.join([f[11], f[12], f[13], f[0], "0", f[15]]) + "\n") | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 126 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 127 if len(bed_entries) == 0 and args.mode == "dexseq": | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 128 print("It seems there are no transcript ids present in GFF file. Skipping exon annotation.") | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 129 skip_exon_annotation = True | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 130 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 131 if not skip_exon_annotation: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 132 with open("annotation.bed", "w") as fh_annotation_bed: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 133 for line in bed_entries: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 134 fh_annotation_bed.write(line + "\n") | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 135 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 136 # interset the DEXseq couting bins with exons in the GFF file | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 137 # overlaped positions can be later used to infer which bin corresponds to which exon | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 138 os.system("intersectBed -wo -s -a input.bed -b annotation.bed > overlap.txt") | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 139 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 140 with open("overlap.txt") as fh_overlap: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 141 for line in fh_overlap: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 142 binid = line.split('\t')[3] | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 143 exonid = line.split('\t')[9] | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 144 d_binexon.setdefault(binid, []).append(exonid) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 145 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 146 with open(args.input) as fh_input, open(args.output, 'w') as fh_output: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 147 for line in fh_input: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 148 annot = [] | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 149 # DEXSeq exonic bins might originate from aggrigating multiple genes. They are are separated by '+' | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 150 # Append the attributes from the GFF but keep the order of the aggregated genes and use '+' | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 151 # Aappend the transcript id and exon number from the annotation that correspond to the DEXseq counting bins | 
| 1 
e98d4ab5b5bc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit 44d3dae188cabf4a64dee7c1ebe41c855d95d1b0
 iuc parents: 
0diff
changeset | 152 if args.mode == "dexseq": | 
| 0 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 153 geneids = line.split('\t')[1].split('+') | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 154 for a in attr: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 155 tmp = [] | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 156 for geneid in geneids: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 157 tmp.append(str(annotation[geneid][a])) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 158 annot.append('+'.join(tmp)) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 159 if not skip_exon_annotation: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 160 binid = line.split('\t')[0] | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 161 try: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 162 annot.append(','.join(sorted(set(d_binexon[binid])))) | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 163 except KeyError: | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 164 annot.append('NA') | 
| 1 
e98d4ab5b5bc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit 44d3dae188cabf4a64dee7c1ebe41c855d95d1b0
 iuc parents: 
0diff
changeset | 165 # Append the extra information from GFF to DESeq2/edgeR/limma output | 
| 
e98d4ab5b5bc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit 44d3dae188cabf4a64dee7c1ebe41c855d95d1b0
 iuc parents: 
0diff
changeset | 166 else: | 
| 
e98d4ab5b5bc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit 44d3dae188cabf4a64dee7c1ebe41c855d95d1b0
 iuc parents: 
0diff
changeset | 167 geneid = line.split('\t')[0] | 
| 
e98d4ab5b5bc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit 44d3dae188cabf4a64dee7c1ebe41c855d95d1b0
 iuc parents: 
0diff
changeset | 168 annot = [str(annotation[geneid]['chr']), | 
| 
e98d4ab5b5bc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit 44d3dae188cabf4a64dee7c1ebe41c855d95d1b0
 iuc parents: 
0diff
changeset | 169 str(annotation[geneid]['start']), | 
| 
e98d4ab5b5bc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit 44d3dae188cabf4a64dee7c1ebe41c855d95d1b0
 iuc parents: 
0diff
changeset | 170 str(annotation[geneid]['end']), | 
| 
e98d4ab5b5bc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit 44d3dae188cabf4a64dee7c1ebe41c855d95d1b0
 iuc parents: 
0diff
changeset | 171 str(annotation[geneid]['strand'])] | 
| 
e98d4ab5b5bc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit 44d3dae188cabf4a64dee7c1ebe41c855d95d1b0
 iuc parents: 
0diff
changeset | 172 for a in attr: | 
| 
e98d4ab5b5bc
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit 44d3dae188cabf4a64dee7c1ebe41c855d95d1b0
 iuc parents: 
0diff
changeset | 173 annot.append(annotation[geneid][a]) | 
| 0 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 174 fh_output.write(line.rstrip('\n') + '\t' + '\t'.join(annot) + '\n') | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 175 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 176 | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 177 if __name__ == "__main__": | 
| 
b42373cddb77
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/deg_annotate commit bc766aeec78fe74a1d70d608d2f73ba3f2a3e047
 iuc parents: diff
changeset | 178 main() | 
