diff --git a/chipathlon/conf.py b/chipathlon/conf.py index fdd8697b4f1cf52e9ef40dc2231aa8ef5e8dd37e..c0a961f3f66f129c94d63b50bb65c9b9d0b225bf 100644 --- a/chipathlon/conf.py +++ b/chipathlon/conf.py @@ -42,7 +42,6 @@ peak_tools = [ executables = [ "bedtools", - "bamtools", "samtools", "idr", "picard", @@ -52,7 +51,8 @@ executables = [ "gem", "peakranger", "MUSIC", - "CCAT" + "CCAT", + "run_spp_nodups" ] # Peak_type validation diff --git a/chipathlon/workflow.py b/chipathlon/workflow.py index a722ba87b4c2893a26bfc8c6ee2eb2a2036f8936..d13cded8bdae653fe99aba9cbf9b305e50c9ad5f 100644 --- a/chipathlon/workflow.py +++ b/chipathlon/workflow.py @@ -36,9 +36,9 @@ class Workflow(object): :type username: str :param password: The password to authenticate for MongoDB access. :type password: str - :param execute_sites: A list of sites to submit jobs to. These sites should + :param execute_site: A list of sites to submit jobs to. These sites should be defined in the configuration file. - :type execute_sites: list + :type execute_site: list :param output_site: The output site to transfer files to. This site should be defined in the configuration file. :type output_site: str @@ -164,7 +164,7 @@ class Workflow(object): return def _add_executable(self, name, path, os_type="linux", arch="x86_64", site="local"): - self.executables[name] = Executable(name=name, os=os_type, arch=arch) + self.executables[name] = Executable(name=name, os=os_type.lower(), arch=arch) self.executables[name].addPFN(PFN(os.path.join("file://", path), site)) self.dax.addExecutable(self.executables[name]) if self.debug: @@ -173,7 +173,8 @@ class Workflow(object): def _load_executables(self, os_type="linux", arch="x86_64"): # Load actual executables don't need no wrappers - for executable in executables: + for executable in chipathlon.conf.executables: + found = False for install_path in self.config["install_paths"]: if os.path.isfile(os.path.join(install_path, executable)): self._add_executable( @@ -183,8 +184,10 @@ class Workflow(object): arch=self.config["sites"][self.execute_site].get("arch", "x86_64"), os_type=self.config["sites"][self.execute_site].get("os", "linux") ) + found = True break - self.errors.append("Could not find executable %s" % (executable,)) + if not found: + self.errors.append("Could not find executable %s" % (executable,)) # Load actual scripts for root, dirs, files in os.walk("%s/%s" % (os.path.dirname(os.path.realpath(__file__)), chipathlon.conf.job_scripts)): for f in files: @@ -328,7 +331,7 @@ class Workflow(object): --randomdir \\ """ % ( self.config.properties_file, - ",".join(self.execute_sites), + self.execute_site, self.output_site, os.path.join(self.base_path, "work"), os.path.join(self.base_path, "input/chipathlon.dax")