Mercurial > repos > iuc > transit_resampling
annotate gff_to_prot.py @ 2:173bf0f6ca1e draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
| author | iuc |
|---|---|
| date | Thu, 28 Feb 2019 09:04:07 -0500 |
| parents | |
| children | 3fcb70c1ca78 |
| rev | line source |
|---|---|
|
2
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
1 #!/usr/bin/env python |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
2 import sys |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
3 import os |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
4 import csv |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
5 |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
6 def get_description(line, parent): |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
7 cols = line.split('\t') |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
8 labels = {} |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
9 for pair in cols[8].split(";"): |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
10 k, v = pair.split('=') |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
11 labels[k] = v |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
12 |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
13 if (cols[2]) == "CDS" and labels["Parent"] == parent: |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
14 return labels.get("Note", '-') |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
15 return '-' |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
16 |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
17 |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
18 def convert_to_prot_table(fname, output_name): |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
19 gff_file = open(fname) |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
20 output_file = open(output_name, 'w') |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
21 writer = csv.writer(output_file, delimiter='\t') |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
22 lines = gff_file.readlines() |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
23 gff_file.close() |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
24 for i, line in enumerate(lines): |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
25 lie = line.strip() |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
26 if line.startswith('#'): continue |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
27 cols = line.split('\t') |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
28 if (len(cols) < 9): |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
29 print("Ignoring invalid row with entries: {0}".format(cols)) |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
30 elif (cols[2]) == "region": continue |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
31 elif (cols[2]) == "CDS": continue |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
32 elif (cols[2]) == "gene": |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
33 start = int(cols[3]) |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
34 end = int(cols[4]) |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
35 strand = cols[6].strip() |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
36 labels = {} |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
37 diff = int(abs(end - start)/3) ## What is this called? |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
38 for pair in cols[8].split(";"): |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
39 k, v = pair.split('=') |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
40 labels[k.strip()] = v.strip() |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
41 |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
42 Rv = labels["locus_tag"].strip() # error out if not found |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
43 gene = labels.get('Name', '') |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
44 desc = get_description(lines[i + 1], labels.get("ID", "")) if (i + 1) < len(lines) else '-' |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
45 vals = [desc, start, end, strand, diff, '-', '-', gene, Rv, '-'] |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
46 writer.writerow(vals) |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
47 output_file.close() |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
48 |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
49 if __name__ == "__main__": |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
50 usage_string = "Usage: python gff-prot-converter.py <gff filename> <output filename>" |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
51 |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
52 if len(sys.argv) < 3: |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
53 print(usage_string) |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
54 sys.exit(0) |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
55 file_name = sys.argv[1] |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
56 if not os.path.exists(file_name): |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
57 print("File not found. Exiting...") |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
58 print(usage_string) |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
59 sys.exit(0) |
|
173bf0f6ca1e
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/transit/ commit 9ffba16c072c7dafe4ef0b70cd2ef166fbe903d0-dirty
iuc
parents:
diff
changeset
|
60 convert_to_prot_table(file_name, sys.argv[2]) |
