annotate gd_composite.py @ 0:99a67ac88802 default tip

Uploaded
author rico
date Thu, 05 Apr 2012 14:22:50 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
99a67ac88802 Uploaded
rico
parents:
diff changeset
1 #!/usr/bin/env python
99a67ac88802 Uploaded
rico
parents:
diff changeset
2
99a67ac88802 Uploaded
rico
parents:
diff changeset
3 from galaxy import eggs
99a67ac88802 Uploaded
rico
parents:
diff changeset
4 import pkg_resources
99a67ac88802 Uploaded
rico
parents:
diff changeset
5 pkg_resources.require( "Cheetah" )
99a67ac88802 Uploaded
rico
parents:
diff changeset
6 from Cheetah.Template import Template
99a67ac88802 Uploaded
rico
parents:
diff changeset
7
99a67ac88802 Uploaded
rico
parents:
diff changeset
8 import errno
99a67ac88802 Uploaded
rico
parents:
diff changeset
9 import os
99a67ac88802 Uploaded
rico
parents:
diff changeset
10 from datetime import datetime
99a67ac88802 Uploaded
rico
parents:
diff changeset
11
99a67ac88802 Uploaded
rico
parents:
diff changeset
12 ################################################################################
99a67ac88802 Uploaded
rico
parents:
diff changeset
13
99a67ac88802 Uploaded
rico
parents:
diff changeset
14 def die(message):
99a67ac88802 Uploaded
rico
parents:
diff changeset
15 print >> sys.stderr, message
99a67ac88802 Uploaded
rico
parents:
diff changeset
16 sys.exit(1)
99a67ac88802 Uploaded
rico
parents:
diff changeset
17
99a67ac88802 Uploaded
rico
parents:
diff changeset
18 def mkdir_p(path):
99a67ac88802 Uploaded
rico
parents:
diff changeset
19 try:
99a67ac88802 Uploaded
rico
parents:
diff changeset
20 os.makedirs(path)
99a67ac88802 Uploaded
rico
parents:
diff changeset
21 except OSError, e:
99a67ac88802 Uploaded
rico
parents:
diff changeset
22 if e.errno <> errno.EEXIST:
99a67ac88802 Uploaded
rico
parents:
diff changeset
23 raise
99a67ac88802 Uploaded
rico
parents:
diff changeset
24
99a67ac88802 Uploaded
rico
parents:
diff changeset
25 ################################################################################
99a67ac88802 Uploaded
rico
parents:
diff changeset
26
99a67ac88802 Uploaded
rico
parents:
diff changeset
27 class Display(object):
99a67ac88802 Uploaded
rico
parents:
diff changeset
28 def display(self, parameter):
99a67ac88802 Uploaded
rico
parents:
diff changeset
29 print parameter
99a67ac88802 Uploaded
rico
parents:
diff changeset
30
99a67ac88802 Uploaded
rico
parents:
diff changeset
31 class DisplayFile(Display):
99a67ac88802 Uploaded
rico
parents:
diff changeset
32 def display(self, parameter):
99a67ac88802 Uploaded
rico
parents:
diff changeset
33 return '<a href="{0}">{1}</a>'.format(parameter.value, parameter.name)
99a67ac88802 Uploaded
rico
parents:
diff changeset
34
99a67ac88802 Uploaded
rico
parents:
diff changeset
35 class DisplayValue(Display):
99a67ac88802 Uploaded
rico
parents:
diff changeset
36 def display(self, parameter):
99a67ac88802 Uploaded
rico
parents:
diff changeset
37 if parameter.value is not None:
99a67ac88802 Uploaded
rico
parents:
diff changeset
38 return '{0}: {1}'.format(parameter.description, parameter.value)
99a67ac88802 Uploaded
rico
parents:
diff changeset
39 else:
99a67ac88802 Uploaded
rico
parents:
diff changeset
40 return '{0}'.format(parameter.description)
99a67ac88802 Uploaded
rico
parents:
diff changeset
41
99a67ac88802 Uploaded
rico
parents:
diff changeset
42 class DisplayTagList(Display):
99a67ac88802 Uploaded
rico
parents:
diff changeset
43 def display(self, parameter):
99a67ac88802 Uploaded
rico
parents:
diff changeset
44 rv = []
99a67ac88802 Uploaded
rico
parents:
diff changeset
45 if parameter.name:
99a67ac88802 Uploaded
rico
parents:
diff changeset
46 rv.append(parameter.name)
99a67ac88802 Uploaded
rico
parents:
diff changeset
47 rv.append('<ol>')
99a67ac88802 Uploaded
rico
parents:
diff changeset
48 for tag in parameter.value:
99a67ac88802 Uploaded
rico
parents:
diff changeset
49 col, individual_name = tag.split(':')
99a67ac88802 Uploaded
rico
parents:
diff changeset
50 rv.append('<li>{0}</li>'.format(individual_name))
99a67ac88802 Uploaded
rico
parents:
diff changeset
51 rv.append('</ol>')
99a67ac88802 Uploaded
rico
parents:
diff changeset
52 return '\n'.join(rv)
99a67ac88802 Uploaded
rico
parents:
diff changeset
53
99a67ac88802 Uploaded
rico
parents:
diff changeset
54 class DisplayPopulationList(Display):
99a67ac88802 Uploaded
rico
parents:
diff changeset
55 def display(self, parameter):
99a67ac88802 Uploaded
rico
parents:
diff changeset
56 rv = []
99a67ac88802 Uploaded
rico
parents:
diff changeset
57 rv.append('Populations')
99a67ac88802 Uploaded
rico
parents:
diff changeset
58 rv.append('<ul>')
99a67ac88802 Uploaded
rico
parents:
diff changeset
59 for population in parameter.value:
99a67ac88802 Uploaded
rico
parents:
diff changeset
60 rv.append('<li>')
99a67ac88802 Uploaded
rico
parents:
diff changeset
61 if population.name is not None:
99a67ac88802 Uploaded
rico
parents:
diff changeset
62 rv.append(population.name)
99a67ac88802 Uploaded
rico
parents:
diff changeset
63 rv.append('<ol>')
99a67ac88802 Uploaded
rico
parents:
diff changeset
64 for name in population.individual_names():
99a67ac88802 Uploaded
rico
parents:
diff changeset
65 rv.append('<li>{0}</li>'.format(name))
99a67ac88802 Uploaded
rico
parents:
diff changeset
66 rv.append('</ol>')
99a67ac88802 Uploaded
rico
parents:
diff changeset
67 rv.append('</li>')
99a67ac88802 Uploaded
rico
parents:
diff changeset
68 rv.append('</ul>')
99a67ac88802 Uploaded
rico
parents:
diff changeset
69 return '\n'.join(rv)
99a67ac88802 Uploaded
rico
parents:
diff changeset
70
99a67ac88802 Uploaded
rico
parents:
diff changeset
71 # def display(self, parameter, name=''):
99a67ac88802 Uploaded
rico
parents:
diff changeset
72 # print '<ul> {0}'.format(name)
99a67ac88802 Uploaded
rico
parents:
diff changeset
73 # for individual_name in parameter.individual_names():
99a67ac88802 Uploaded
rico
parents:
diff changeset
74 # print '<li>{0}>/li>'.format(individual_name)
99a67ac88802 Uploaded
rico
parents:
diff changeset
75 # print '</ul>'
99a67ac88802 Uploaded
rico
parents:
diff changeset
76
99a67ac88802 Uploaded
rico
parents:
diff changeset
77
99a67ac88802 Uploaded
rico
parents:
diff changeset
78 class Parameter(object):
99a67ac88802 Uploaded
rico
parents:
diff changeset
79 def __init__(self, name=None, value=None, description=None, display_type=None):
99a67ac88802 Uploaded
rico
parents:
diff changeset
80 self.name = name
99a67ac88802 Uploaded
rico
parents:
diff changeset
81 self.value = value
99a67ac88802 Uploaded
rico
parents:
diff changeset
82 self.description = description
99a67ac88802 Uploaded
rico
parents:
diff changeset
83 if display_type is None:
99a67ac88802 Uploaded
rico
parents:
diff changeset
84 self.display_type = Display()
99a67ac88802 Uploaded
rico
parents:
diff changeset
85 else:
99a67ac88802 Uploaded
rico
parents:
diff changeset
86 self.display_type = display_type
99a67ac88802 Uploaded
rico
parents:
diff changeset
87
99a67ac88802 Uploaded
rico
parents:
diff changeset
88 def display(self):
99a67ac88802 Uploaded
rico
parents:
diff changeset
89 return self.display_type.display(self)
99a67ac88802 Uploaded
rico
parents:
diff changeset
90
99a67ac88802 Uploaded
rico
parents:
diff changeset
91 class InfoPage(object):
99a67ac88802 Uploaded
rico
parents:
diff changeset
92 _realpath = os.path.realpath(__file__)
99a67ac88802 Uploaded
rico
parents:
diff changeset
93 _script_dir = os.path.dirname(_realpath)
99a67ac88802 Uploaded
rico
parents:
diff changeset
94 template_file = os.path.join(_script_dir, 'gd_composite_template.html')
99a67ac88802 Uploaded
rico
parents:
diff changeset
95 def __init__(self):
99a67ac88802 Uploaded
rico
parents:
diff changeset
96 self.timestamp = datetime.now().strftime('%Y-%m-%d %I:%M:%S %p')
99a67ac88802 Uploaded
rico
parents:
diff changeset
97 self.title = 'Genome Diversity Composite Dataset'
99a67ac88802 Uploaded
rico
parents:
diff changeset
98 self.inputs = []
99a67ac88802 Uploaded
rico
parents:
diff changeset
99 self.outputs = []
99a67ac88802 Uploaded
rico
parents:
diff changeset
100 self.misc = ''
99a67ac88802 Uploaded
rico
parents:
diff changeset
101 self.template = self.load_template()
99a67ac88802 Uploaded
rico
parents:
diff changeset
102
99a67ac88802 Uploaded
rico
parents:
diff changeset
103 def load_template(self):
99a67ac88802 Uploaded
rico
parents:
diff changeset
104 with open(self.template_file) as f:
99a67ac88802 Uploaded
rico
parents:
diff changeset
105 return f.read().rstrip('\r\n')
99a67ac88802 Uploaded
rico
parents:
diff changeset
106
99a67ac88802 Uploaded
rico
parents:
diff changeset
107 def set_title(self, title):
99a67ac88802 Uploaded
rico
parents:
diff changeset
108 self.title = title
99a67ac88802 Uploaded
rico
parents:
diff changeset
109
99a67ac88802 Uploaded
rico
parents:
diff changeset
110 def add_input_parameter(self, parameter):
99a67ac88802 Uploaded
rico
parents:
diff changeset
111 self.inputs.append(parameter)
99a67ac88802 Uploaded
rico
parents:
diff changeset
112
99a67ac88802 Uploaded
rico
parents:
diff changeset
113 def add_output_parameter(self, parameter):
99a67ac88802 Uploaded
rico
parents:
diff changeset
114 self.outputs.append(parameter)
99a67ac88802 Uploaded
rico
parents:
diff changeset
115
99a67ac88802 Uploaded
rico
parents:
diff changeset
116 def add_misc(self, misc):
99a67ac88802 Uploaded
rico
parents:
diff changeset
117 self.misc = misc
99a67ac88802 Uploaded
rico
parents:
diff changeset
118
99a67ac88802 Uploaded
rico
parents:
diff changeset
119 def render(self):
99a67ac88802 Uploaded
rico
parents:
diff changeset
120 return Template(self.template, searchList=[{'tool': self}])
99a67ac88802 Uploaded
rico
parents:
diff changeset
121
99a67ac88802 Uploaded
rico
parents:
diff changeset
122
99a67ac88802 Uploaded
rico
parents:
diff changeset
123
99a67ac88802 Uploaded
rico
parents:
diff changeset
124
99a67ac88802 Uploaded
rico
parents:
diff changeset
125
99a67ac88802 Uploaded
rico
parents:
diff changeset
126
99a67ac88802 Uploaded
rico
parents:
diff changeset
127
99a67ac88802 Uploaded
rico
parents:
diff changeset
128