diff --git a/run_workflow_phaeoexplorer.py b/run_workflow_phaeoexplorer.py index 2c863e1be5f7af3c744d80de41be42a3d6297d5d..c03b91762cc79d8a55c520a0968e285e9056f54b 100755 --- a/run_workflow_phaeoexplorer.py +++ b/run_workflow_phaeoexplorer.py @@ -49,14 +49,33 @@ class StrainWorkflowParam: self.email = email self.password = password - def check_param_for_workflow_load_fasta_gff_jbrowse(self, param): - # Look for empty parameters values, throw a critical error if a parameter value is invalid - if param is None or param == "": + def check_param(self, params): + if not utilities.no_empty_items(params): logging.critical( - "Empty parameter value found for organism {0} (parameter: {1}, parameter value: {2})".format( - org_full_name, param_name, param_value)) + "One empty workflow parameter found for organism {0}: {1})".format(org_full_name, params)) sys.exit() + def check_param_for_workflow_load_fasta_gff_jbrowse(self, params): + params = [self.genus_species, self.strain_sex, self.genus, self.species, self.sex, self.strain, self.full_name, + self.species_folder_name, self.org_id, + self.genome_analysis_id, self.ogs_analysis_id, self.hda_ids, self.history_id, + self.instance, self.instance_url, self.email, self.password] + self.check_param(params) + + def check_param_for_workflow_blast(self, params): + params = [self.genus_species, self.strain_sex, self.genus, self.species, self.sex, self.strain, self.full_name, + self.species_folder_name, self.org_id, + self.blastp_analysis_id, self.hda_ids, self.history_id, + self.instance, self.instance_url, self.email, self.password] + self.check_param(params) + + def check_param_for_workflow_interpro(self, params): + params = [self.genus_species, self.strain_sex, self.genus, self.species, self.sex, self.strain, self.full_name, + self.species_folder_name, self.org_id, + self.interpro_analysis_id, self.hda_ids, self.history_id, + self.instance, self.instance_url, self.email, self.password] + self.check_param(params) + class RunWorkflow(speciesData.SpeciesData): """ @@ -796,6 +815,7 @@ def get_sp_workflow_param(sp_dict, main_dir, config, workflow_type): email=config[constants.CONF_GALAXY_DEFAULT_ADMIN_EMAIL], password=config[constants.CONF_GALAXY_DEFAULT_ADMIN_PASSWORD] ) + sp_wf_param.check_param_for_workflow_load_fasta_gff_jbrowse() if workflow_type == "blast": @@ -824,7 +844,7 @@ def get_sp_workflow_param(sp_dict, main_dir, config, workflow_type): email=config[constants.CONF_GALAXY_DEFAULT_ADMIN_EMAIL], password=config[constants.CONF_GALAXY_DEFAULT_ADMIN_PASSWORD] ) - + sp_wf_param.check_param_for_workflow_blast() if workflow_type == "interpro": @@ -853,7 +873,7 @@ def get_sp_workflow_param(sp_dict, main_dir, config, workflow_type): email=config[constants.CONF_GALAXY_DEFAULT_ADMIN_EMAIL], password=config[constants.CONF_GALAXY_DEFAULT_ADMIN_PASSWORD] ) - + sp_wf_param.check_param_for_workflow_interpro() return sp_wf_param @@ -1019,34 +1039,10 @@ if __name__ == "__main__": org_org_id = sp_workflow_param.org_id org_genome_analysis_id = sp_workflow_param.genome_analysis_id org_ogs_analysis_id = sp_workflow_param.ogs_analysis_id - org_genome_hda_id = org_dict["hda_ids"]["genome_hda_id"] - org_transcripts_hda_id = org_dict["hda_ids"]["transcripts_hda_id"] - org_proteins_hda_id = org_dict["hda_ids"]["proteins_hda_id"] - org_gff_hda_id = org_dict["hda_ids"]["gff_hda_id"] - - # Store these values into a dict for parameters logging/validation - org_parameters_dict = { - "org_genus": org_genus, - "org_species": org_species, - "org_genus_species": org_genus_species, - "org_species_folder_name": org_species_folder_name, - "org_full_name": org_full_name, - "org_strain": org_strain, - "org_sex": org_sex, - "org_org_id": org_org_id, - "org_genome_analysis_id": org_genome_analysis_id, - "org_ogs_analysis_id": org_ogs_analysis_id, - "org_genome_hda_id": org_genome_hda_id, - "org_transcripts_hda_id": org_transcripts_hda_id, - "org_proteins_hda_id": org_proteins_hda_id, - "org_gff_hda_id": org_gff_hda_id, - } - - # Look for empty parameters values, throw a critical error if a parameter value is invalid - for param_name, param_value in org_parameters_dict.items(): - if param_value is None or param_value == "": - logging.critical("Empty parameter value found for organism {0} (parameter: {1}, parameter value: {2})".format(org_full_name, param_name, param_value)) - sys.exit() + org_genome_hda_id = sp_workflow_param.hda_ids["genome_hda_id"] + org_transcripts_hda_id = sp_workflow_param.hda_ids["transcripts_hda_id"] + org_proteins_hda_id = sp_workflow_param.hda_ids["proteins_hda_id"] + org_gff_hda_id = sp_workflow_param.hda_ids["gff_hda_id"] # Set the workflow parameters (individual tools runtime parameters in the workflow) workflow_parameters = {} diff --git a/utilities.py b/utilities.py index 68f59cfe70f7d0850e74c16b0ca32772d6dad751..d1bb0890457f91be90fa0e81703c891fc62105cf 100755 --- a/utilities.py +++ b/utilities.py @@ -76,6 +76,13 @@ def filter_empty_not_empty_items(li): filtered_dict["not_empty"].append(i) return filtered_dict +def no_empty_items(li): + + empty = True + for i in li: + if i is None or i == "": + empty = False + return empty def check_galaxy_state(network_name, script_dir): """