from bioblend import galaxy from bioblend.galaxy import GalaxyInstance import os """ Methods to run all Chado and Tripal tools on galaxy """ class ToolRunner: def __init__(self, parameters_dict, instance, history): self.history = history self.instance = instance self.parameters_dict = parameters_dict self.genus = parameters_dict["genus"] self.species = parameters_dict["species"] self.strain = parameters_dict["strain"] self.common = parameters_dict["common"] self.performed = parameters_dict["performed by"] self.genome_version = parameters_dict["genome version"] self.ogs_version = parameters_dict["ogs version"] self.sex = parameters_dict["sex"] self.date = parameters_dict["date"] self.custom_ga_file = None self.custom_ga_file_path = None self.preset_ga_file = None self.analysis = None self.organism = None self.program = None if self.strain != "": self.abbr = self.genus[0].lower() + "_" + self.species + "_" + self.strain self.full = "_".join([self.genus, self.species, self.strain, self.sex]) else: self.abbr = self.genus[0].lower() + "_" + self.species self.full = "_".join([self.genus, self.species, self.strain, self.sex]) self.ogs = str("OGS"+ self.ogs_version) self.genome = str(self.full + " genome v" + self.genome_version) def show_tool(self, tool_id): print(self.instance.tools.show_tool(tool_id=tool_id, io_details=True)) return self.instance.tools.show_tool(tool_id=tool_id, io_details=True) def purge_organism(self): self.show_tool(tool_id="toolshed.g2.bx.psu.edu/repos/gga/chado_organism_delete_organisms/organism_delete_organisms/2.3.2") self.instance.tools.run_tool(tool_id="toolshed.g2.bx.psu.edu/repos/gga/chado_organism_delete_organisms/organism_delete_organisms/2.3.2", history_id=self.history, tool_inputs={"name": self.organism}) def purge_analyses(self): return None def get_organism(self): """ Tool invocation must be as return (or else it executes but returns nothing when called) :return: """ return self.instance.tools.run_tool(tool_id="toolshed.g2.bx.psu.edu/repos/gga/chado_organism_get_organisms/organism_get_organisms/2.3.2", history_id=self.history, tool_inputs={"genus": self.genus, "species": self.species}) def get_ogs_analysis(self): """ Tool invocation must be as return (or else it executes but returns nothing when called) :return: """ return self.instance.tools.run_tool(tool_id="toolshed.g2.bx.psu.edu/repos/gga/chado_analysis_get_analyses/analysis_get_analyses/2.3.2", history_id=self.history, tool_inputs={"name": self.genus + " " + self.species + " OGS" + self.ogs_version}) def get_genome_analysis(self): """ Tool invocation must be as return (or else it executes but returns nothing when called) :return: """ return self.instance.tools.run_tool(tool_id="toolshed.g2.bx.psu.edu/repos/gga/chado_analysis_get_analyses/analysis_get_analyses/2.3.2", history_id=self.history, tool_inputs={"name": self.genus + " " + self.species + " genome v" + self.genome_version}) def add_organism(self): """ Tool invocation must be as return (or else it executes but returns nothing when called) :return: """ return self.instance.tools.run_tool(tool_id="toolshed.g2.bx.psu.edu/repos/gga/chado_organism_add_organism/organism_add_organism/2.3.2", history_id=self.history, tool_inputs={"abbr": self.abbr, "genus": self.genus, "species": self.species, "common": self.common }) def add_ogs(self): """ Tool invocation must be as return (or else it executes but returns nothing when called) :return: """ return self.instance.tools.run_tool(tool_id="toolshed.g2.bx.psu.edu/repos/gga/chado_analysis_add_analysis/analysis_add_analysis/2.3.2", history_id=self.history, tool_inputs={"name": self.genus + " " + self.species + " OGS" + self.ogs_version, "program": "Performed by Genoscope", "programversion": str("OGS" + self.genome_version), "sourcename": "Genoscope", "date_executed": self.date }) def add_genome(self): """ Tool invocation must be as return (or else it executes but returns nothing when called) :return: """ return self.instance.tools.run_tool(tool_id="toolshed.g2.bx.psu.edu/repos/gga/chado_analysis_add_analysis/analysis_add_analysis/2.3.2", history_id=self.history, tool_inputs={"name": self.genus + " " + self.species + " genome v" + self.genome_version, "program": "Performed by Genoscope", "programversion": str("genome v" + self.genome_version), "sourcename": "Genoscope", "date_executed": self.date }) def add_jbrowse(self, datasets): return self.instance.tools.run_tool(tool_id="toolshed.g2.bx.psu.edu/repos/iuc/jbrowse/jbrowse/1.16.5+galaxy7", history_id=self.history, tool_inputs={"genomes": datasets["genome_file"]}) def add_organism_jbrowse(self): return self.instance.tools.run_tool(tool_id="toolshed.g2.bx.psu.edu/repos/gga/jbrowse_to_container/jbrowse_to_container/0.5.1", history_id=self.history, tool_inputs={"multiple": "false", "name": "foo", "unique_id": "bar"}) # Homo sapiens deletion TODO: concat the 2 calls def get_sapiens_id(self): """ Tool invocation must be as return (or else it executes but returns nothing when called) :return: """ return self.instance.tools.run_tool(tool_id="toolshed.g2.bx.psu.edu/repos/gga/chado_organism_get_organisms/organism_get_organisms/2.3.2", history_id=self.history, tool_inputs={"genus": "Homo", "species": "species"}) def delete_sapiens(self, hs_id): """ Tool invocation must be as return (or else it executes but returns nothing when called) :return: """ return self.instance.tools.run_tool(tool_id="toolshed.g2.bx.psu.edu/repos/gga/chado_organism_delete_organisms/organism_delete_organisms/2.3.2", history_id=self.history, tool_inputs={"organism": hs_id}) # def load_fasta(self, inputs_dict): # """ # # :return: # """ # return self.instance.tools.run_tool(tool_id="toolshed.g2.bx.psu.edu/repos/gga/chado_feature_load_fasta/feature_load_fasta/2.3.2", # history_id=self.history, # tool_inputs=) def show_pannel(self): print(self.instance.tools.get_tool_panel()) return self.instance.tools.get_tool_panel()