annotate dexseq_helper.py @ 6:1987b22e6eff draft

Uploaded
author pavanvidem
date Fri, 28 Aug 2015 11:18:22 -0400
parents bc7eab5753a8
children 7aa851f87974
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
1
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
2 from galaxy.tools.parameters import DataToolParameter
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
3
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
4 def get_matrix_header( input_dataset ):
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
5 """
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
6 Not used currently, because the reload of the ckeckboxes did not work.
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
7 """
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
8 input_handle = open( input_dataset.file_name )
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
9 first_header = input_handle.readline()
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
10 second_header = input_handle.readline()
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
11 return [('%s::%s' % (cname2,cname1), str(int(col_num) + 1), False) for col_num, (cname2, cname1) in enumerate(zip(second_header.split()[1:],first_header.split()[1:])) ]
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
12
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
13
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
14
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
15 def _construct_error_map( error_map, rep_dict, rep_parent, child, error_value ):
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
16 """
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
17 Its no so easy to create a propper error_map for repetitions in Galaxy.
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
18 This is a helper function.
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
19 """
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
20
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
21 error_map[ rep_parent ] = [ dict() for t in rep_dict ]
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
22 for i in range( len( rep_dict ) ):
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
23 error_map[ rep_parent ][i][ child ] = error_value
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
24
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
25
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
26
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
27 def validate_input( trans, error_map, param_values, page_param_map ):
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
28 """
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
29 Validates the user input, before execution.
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
30 """
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
31 factors = param_values['rep_factorName']
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
32 factor_name_list = []
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
33 factor_duplication = False
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
34 level_duplication = False
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
35 overlapping_selection = False
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
36
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
37 first_condition = True
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
38 factor_indieces = list()
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
39
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
40 for factor in factors:
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
41 # factor names should be unique
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
42 fn = factor['factorName']
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
43 if fn in factor_name_list:
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
44 factor_duplication = True
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
45 break
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
46 factor_name_list.append( fn )
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
47
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
48 level_name_list = list()
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
49 factor_index_list = list()
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
50
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
51 if first_condition and len( factor['rep_factorLevel'] ) < 2:
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
52 # first condition needs to have at least 2 levels
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
53 _construct_error_map( error_map, factors, 'rep_factorName', 'rep_factorLevel', [ {'factorLevel': 'The first condition should have at least 2 factor'} for t in factor['rep_factorLevel'] ] )
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
54
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
55 for level in factor['rep_factorLevel']:
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
56 # level names under one factor should be unique
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
57 fl = level['factorLevel']
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
58 if fl in level_name_list:
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
59 level_duplication = True
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
60 level_name_list.append( fl )
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
61
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
62 fi = level['factorIndex']
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
63 if fi:
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
64 # the checkboxes should not have an overlap
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
65 for check in fi:
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
66 if check in factor_index_list:
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
67 overlapping_selection = True
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
68 factor_index_list.append( check )
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
69
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
70 print set(factor_index_list)
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
71 print factor_indieces
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
72 if set(factor_index_list) in factor_indieces:
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
73 _construct_error_map( error_map, factors, 'rep_factorName', 'rep_factorLevel', [ {'factorLevel': 'It is not allowed to have two identical factors, that means two factors with the same toggeled checked boxes. '} for t in factor['rep_factorLevel'] ] )
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
74 else:
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
75 factor_indieces.append( set(factor_index_list) )
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
76
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
77
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
78
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
79 if level_duplication:
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
80 error_map['rep_factorName'] = [ dict() for t in factors ]
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
81 for i in range( len( factors ) ):
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
82 error_map['rep_factorName'][i]['rep_factorLevel'] = [ {'factorLevel': 'Factor levels for each factor need to be unique'} for t in factor['rep_factorLevel'] ]
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
83 break
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
84 if overlapping_selection:
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
85 error_map['rep_factorName'] = [ dict() for t in factors ]
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
86 for i in range( len( factors ) ):
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
87 error_map['rep_factorName'][i]['rep_factorLevel'] = [ {'factorIndex': 'The samples from different factors are not allowed to overlap'} for t in factor['rep_factorLevel'] ]
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
88 break
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
89
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
90 first_condition = False
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
91
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
92 if factor_duplication:
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
93 _construct_error_map( error_map, factors, 'rep_factorName', 'factorName', 'Factor names need to be unique' )
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
94 """
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
95 error_map['rep_factorName'] = [ dict() for t in factors ]
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
96 for i in range( len( factors ) ):
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
97 error_map['rep_factorName'][i]['factorName'] = 'Factor names need to be unique'
bc7eab5753a8 Uploaded
pavanvidem
parents:
diff changeset
98 """