Mercurial > repos > peterjc > mira4_assembler
annotate tools/mira4_0/mira4_validator.py @ 34:0785a6537f3e draft
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit 6405ba93fcec7ea93452bf54d559c7507ee7a57c
author | peterjc |
---|---|
date | Wed, 07 Jun 2017 12:33:39 -0400 |
parents | 56b421d59805 |
children | cee8f9005e43 |
rev | line source |
---|---|
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
1 # Called from the Galaxy Tool XML file |
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
2 # import sys |
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
3 |
25 | 4 |
5 def validate_input(trans, error_map, param_values, page_param_map): | |
6 """Validates the min_size/max_size user input, before execution.""" | |
7 err_list = [] | |
8 for read_group in param_values["read_group"]: | |
9 err = dict() | |
10 segments = read_group["segments"] | |
11 if str(segments["type"]) != "paired": | |
12 err_list.append(dict()) | |
13 continue | |
14 | |
15 min_size = str(segments["min_size"]).strip() | |
16 max_size = str(segments["max_size"]).strip() | |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
17 # sys.stderr.write("DEBUG min_size=%r, max_size=%r\n" % (min_size, max_size)) |
25 | 18 |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
19 # Somehow Galaxy seems to turn an empty field into string "None"... |
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
20 if min_size == "None": |
25 | 21 min_size = "" |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
22 if max_size == "None": |
25 | 23 max_size = "" |
24 | |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
25 if min_size == "" and max_size == "": |
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
26 # Both missing is good |
25 | 27 pass |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
28 elif min_size == "": |
25 | 29 err["min_size"] = "Minimum size required if maximum size given" |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
30 elif max_size == "": |
25 | 31 err["max_size"] = "Maximum size required if minimum size given" |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
32 |
25 | 33 if min_size: |
34 try: | |
35 min_size_int = int(min_size) | |
36 if min_size_int < 0: | |
37 err["min_size"] = "Minumum size must not be negative (%i)" % min_size_int | |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
38 min_size = None # Avoid doing comparison below |
25 | 39 except ValueError: |
40 err["min_size"] = "Minimum size is not an integer (%s)" % min_size | |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
41 min_size = None # Avoid doing comparison below |
25 | 42 |
43 if max_size: | |
44 try: | |
45 max_size_int = int(max_size) | |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
46 if max_size_int < 0: |
25 | 47 err["max_size"] = "Maximum size must not be negative (%i)" % max_size_int |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
48 max_size = None # Avoid doing comparison below |
25 | 49 except ValueError: |
50 err["max_size"] = "Maximum size is not an integer (%s)" % max_size | |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
51 max_size = None # Avoid doing comparison below |
25 | 52 |
53 if min_size and max_size and min_size_int > max_size_int: | |
54 msg = "Minimum size must be less than maximum size (%i vs %i)" % (min_size_int, max_size_int) | |
55 err["min_size"] = msg | |
56 err["max_size"] = msg | |
57 | |
58 if err: | |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
59 err_list.append({"segments": err}) |
25 | 60 else: |
61 err_list.append(dict()) | |
62 | |
63 if any(err_list): | |
32
56b421d59805
planemo upload for repository https://github.com/peterjc/galaxy_mira/tree/master/tools/mira4_0 commit fd979d17340cde155de176604744831d9597c6b6
peterjc
parents:
25
diff
changeset
|
64 # Return an error map only if any readgroup gave errors |
25 | 65 error_map["read_group"] = err_list |