Commit f4bf8215 authored by aknecht2's avatar aknecht2
Browse files

Fixed stdout & stderr type handling. Fixed incorrect type in align.yaml. Fixed typo in config.

parent 28e76d80
...@@ -51,7 +51,7 @@ resources = { ...@@ -51,7 +51,7 @@ resources = {
argument_types = { argument_types = {
"argument": ["argument"], "argument": ["argument"],
"file": ["file", "stdout", "stderr"] "file": ["file", "stdout", "stderr"]
] }
# param keys # param keys
param_keys = { param_keys = {
......
...@@ -91,7 +91,7 @@ align: ...@@ -91,7 +91,7 @@ align:
type: file type: file
outputs: outputs:
- align.sam: - align.sam:
type: stdout type: file
- align.quality: - align.quality:
type: stderr type: stderr
paired[read_end]: paired[read_end]:
...@@ -120,7 +120,7 @@ align: ...@@ -120,7 +120,7 @@ align:
type: file type: file
outputs: outputs:
- align.sam: - align.sam:
type: stdout type: file
- align.quality: - align.quality:
type: stderr type: stderr
- samtools_sam_to_bam: - samtools_sam_to_bam:
......
...@@ -197,16 +197,30 @@ class WorkflowJob(object): ...@@ -197,16 +197,30 @@ class WorkflowJob(object):
key, index = arg_info["default"].split(".") key, index = arg_info["default"].split(".")
arg_list.append(arg) arg_list.append(arg)
# We only add the file object if the passed argument is # We only add the file object if the passed argument is
# has type == file # has type == file. We don't want to process
arg_list.append(argument_map[key][int(index)]["file"] if argument_map[key][int(index)]["type"] == "file" else argument_map[key][int(index)]["value"]) # stdout / stderr arguments here.
if argument_map[key][int(index)]["type"] == "file":
arg_list.append(argument_map[key][int(index)]["file"])
elif argument_map[key][int(index)]["type"] == "argument":
arg_list.append(argument_map[key][int(index)]["value"])
else:
print "Error with argument '%s' for file %s. Check the yaml file." % (arg, self.jobname)
sys.exit(1)
else: else:
arg_list.append("%s %s" % (arg, arg_info["default"])) arg_list.append("%s %s" % (arg, arg_info["default"]))
else: else:
if not isinstance(arg, bool) and arg[:1] == "$": if not isinstance(arg, bool) and arg[:1] == "$":
key, index = arg.split(".") key, index = arg.split(".")
# We only add the file object if the passed argument is # We only add the file object if the passed argument
# has type == file # has type == file. We don't want to process
arg_list.append(argument_map[key][int(index)]["file"] if argument_map[key][int(index)]["type"] == "file" else argument_map[key][int(index)]["value"]) # stdout / stderr arguments here.
if argument_map[key][int(index)]["type"] == "file":
arg_list.append(argument_map[key][int(index)]["file"])
elif argument_map[key][int(index)]["type"] == "argument":
arg_list.append(argument_map[key][int(index)]["value"])
else:
print "Error with argument '%s' for file %s. Check the yaml file." % (arg, self.jobname)
sys.exit(1)
else: else:
arg_list.append(arg) arg_list.append(arg)
return arg_list return arg_list
...@@ -131,7 +131,7 @@ class WorkflowModule(object): ...@@ -131,7 +131,7 @@ class WorkflowModule(object):
param_name = param_dict.keys()[0] param_name = param_dict.keys()[0]
param = param_dict[param_name] param = param_dict[param_name]
# Make sure param is one of the file types # Make sure param is one of the file types
if param["type"] in conf.argument_types["file"]: if param["type"] in chipathlon.conf.argument_types["file"]:
if param_name not in [x["name"] for x in param_list] and param_name not in [x["name"] for x in output_files]: if param_name not in [x["name"] for x in param_list] and param_name not in [x["name"] for x in output_files]:
if prefix is None or self._get_full_name(prefix, markers, param_name) not in master_files: if prefix is None or self._get_full_name(prefix, markers, param_name) not in master_files:
param_list.append({"name": param_name, "type": "file"}) param_list.append({"name": param_name, "type": "file"})
...@@ -172,7 +172,7 @@ class WorkflowModule(object): ...@@ -172,7 +172,7 @@ class WorkflowModule(object):
for job_dict in job_info[param_type]: for job_dict in job_info[param_type]:
param_name = job_dict.keys()[0] param_name = job_dict.keys()[0]
param = job_dict[param_name] param = job_dict[param_name]
if param["type"] in conf.argument_types["file"]: if param["type"] in chipathlon.conf.argument_types["file"]:
full_name = self._get_full_name(prefix, markers, param_name) full_name = self._get_full_name(prefix, markers, param_name)
# If file is an output file, add to master_files # If file is an output file, add to master_files
if param_type == "outputs": if param_type == "outputs":
...@@ -233,7 +233,7 @@ class WorkflowModule(object): ...@@ -233,7 +233,7 @@ class WorkflowModule(object):
} }
data = module_params data = module_params
for arg_params, param_key in zip([inputs, additional_files], ["inputs", "additional_files"]): for arg_params, param_key in zip([inputs, additional_files], ["inputs", "additional_files"]):
for file_dict in [file_param for file_param in module_params[param_key] if file_param["type"] in conf.argument_types["file"]]: for file_dict in [file_param for file_param in module_params[param_key] if file_param["type"] in chipathlon.conf.argument_types["file"]]:
file_name = file_dict["name"] file_name = file_dict["name"]
if file_name not in module_params[param_key]: if file_name not in module_params[param_key]:
valid_params = False valid_params = False
...@@ -242,7 +242,7 @@ class WorkflowModule(object): ...@@ -242,7 +242,7 @@ class WorkflowModule(object):
valid_params = False valid_params = False
msg += "Error loading '%s' jobs. File with name '%s', value '%s', does not exist in master_files.\n" % (self.name, file_name, arg_params[file_name]) msg += "Error loading '%s' jobs. File with name '%s', value '%s', does not exist in master_files.\n" % (self.name, file_name, arg_params[file_name])
for param_dict in module_params[param_key]: for param_dict in module_params[param_key]:
if param_dict["type"] in conf.argument_types["file"]: if param_dict["type"] in chipathlon.conf.argument_types["file"]:
file_name = param_dict["name"] file_name = param_dict["name"]
if file_name not in arg_params: if file_name not in arg_params:
valid_params = False valid_params = False
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment