annotate gd_composite.py @ 0:3be071295340 default tip

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