annotate dgidb_annotator.py @ 0:28d72b995c6b draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
author devteam
date Mon, 09 Nov 2015 11:29:28 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
1 '''
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
2 Annotates a tabular file with information from the Drug-Gene Interaction (DGI) database.
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
3 '''
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
4
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
5 import optparse, json, urllib2, sys
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
6
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
7 def __main__():
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
8 # -- Parse command line. --
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
9 parser = optparse.OptionParser()
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
10 parser.add_option('-g', '--gene-name-col', dest='gene_name_col', help='column of gene names')
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
11 parser.add_option('-a', '--print-all', dest='print_all', action='store_true', help='print all lines, even though without a result')
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
12 parser.add_option('-e', '--expert-curated', dest='expert_curated', action='store_true', help='use only expert curated results')
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
13 (options, args) = parser.parse_args()
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
14 gene_name_col = int(options.gene_name_col) - 1
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
15
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
16 # Open input stream.
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
17 if len(args) > 0:
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
18 input_file = open(args[0], 'r')
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
19 else:
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
20 input_file = sys.stdin
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
21
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
22 # -- Set up gene list queries. --
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
23
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
24 # Get gene list.
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
25 gene_list = []
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
26 lines = []
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
27 for line in input_file:
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
28 entry = line.split('\t')[gene_name_col].strip()
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
29 # Some annotations may be of the form
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
30 # <gene_name>(<splicing_info>) or <gene_name>;<gene_name>(splicing_info)
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
31 gene_list.append(entry.split(';')[0].split('(')[0])
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
32 lines.append(line.strip())
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
33
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
34 # Set up gene lists to be ~8K because this is near the max HTTP request length.
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
35 gene_list = ','.join(set(gene_list))
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
36 queries = []
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
37 MAX_QUERY_SIZE = 8000
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
38 if len(gene_list) > MAX_QUERY_SIZE:
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
39 # Break queries.
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
40 queries = [ gene_list[i:i + MAX_QUERY_SIZE] for i in range(0, len(gene_list), MAX_QUERY_SIZE) ]
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
41
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
42 # Adjust queries to include whole genes.
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
43 for i, query in enumerate( queries[1:] ):
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
44 part_gene, comma, remainder = query.partition(',')
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
45 queries[i] += part_gene
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
46 queries[i+1] = remainder
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
47 else:
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
48 queries = [ gene_list ]
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
49
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
50 # -- Query and process results. --
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
51
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
52 # Query for results.
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
53 results = []
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
54 for genes in queries:
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
55 query_str = 'http://dgidb.genome.wustl.edu/api/v1/interactions.json?genes=%s' % genes
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
56 if options.expert_curated:
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
57 query_str += '&source_trust_levels=Expert%20curated'
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
58 raw_results = urllib2.urlopen(query_str).read()
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
59 results_dict = json.loads(raw_results)
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
60 results.extend(results_dict['matchedTerms'])
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
61
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
62 # Process results.
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
63 for result in results:
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
64 # Process result.
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
65 processed_results = []
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
66 result_fields = [ result['geneName'], result['geneLongName'], ','.join( result['geneCategories'] ) ]
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
67 for interaction in result['interactions']:
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
68 result_fields = result_fields[0:3]
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
69 result_fields.extend( [
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
70 interaction['interactionType'], interaction['drugName'], interaction['source']
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
71 ] )
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
72 processed_results.append( '\t'.join( result_fields ) )
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
73
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
74 # Store processed results.
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
75 results_dict[ result['searchTerm'] ] = processed_results
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
76
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
77 # -- Annotate input file and produce output. --
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
78 for line in lines:
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
79 fields = line.split('\t')
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
80 gene = fields[gene_name_col]
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
81 if gene in results_dict:
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
82 for result in results_dict[gene]:
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
83 print line.strip() + '\t' + result
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
84 elif options.print_all:
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
85 print line
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
86
28d72b995c6b planemo upload for repository https://github.com/galaxyproject/tools-devteam/tree/master/tools/dgidb_annotator commit 5a4e0ca9992af3a6e5ed2b533f04bb82ce761e0b
devteam
parents:
diff changeset
87 if __name__=="__main__": __main__()