From 63b0179453f0fdd59a8f3a15878e4cd41f91b79d Mon Sep 17 00:00:00 2001
From: Arthur Le Bars <arthur.le-bars@sb-roscoff.fr>
Date: Thu, 5 Mar 2020 16:54:29 +0100
Subject: [PATCH] Added Homo sapiens deletion from chado database

---
 loader.sh     |  1 +
 main.py       | 16 +++++++++++++---
 toolrunner.py | 13 +++----------
 3 files changed, 17 insertions(+), 13 deletions(-)
 create mode 100755 loader.sh

diff --git a/loader.sh b/loader.sh
new file mode 100755
index 0000000..212c4ba
--- /dev/null
+++ b/loader.sh
@@ -0,0 +1 @@
+#!/usr/bin/env bash
\ No newline at end of file
diff --git a/main.py b/main.py
index 7cd904d..7b06b6c 100644
--- a/main.py
+++ b/main.py
@@ -9,10 +9,7 @@ import json
 import urllib3 as ul
 from chado import ChadoInstance
 from workflow import Workflow
-from filetransfer import FileTransfer
 from toolrunner import ToolRunner
-from webscrap import WebScrap
-
 """
 TODO: script description
 python3 ~/PycharmProjects/ggauto/gga_load_data/main.py ~/PycharmProjects/ggauto/gga_load_data/dataloader.json
@@ -207,6 +204,19 @@ def main():
         gi.histories.upload_dataset_from_library(history_id=current_hi_id, lib_dataset_id=datasets["transcripts_file"])
         gi.histories.upload_dataset_from_library(history_id=current_hi_id, lib_dataset_id=datasets["proteins_file"])
 
+        # Delete Homo sapiens from Chado database
+        toolrunner = ToolRunner(parameters_dict=sp_dict, instance=gi, history=current_hi_id)
+        sapiens_id = None
+        sapiens = toolrunner.get_sapiens_id()
+        sapiens_job_out = sapiens["outputs"][0]["id"]
+        sapiens_json_output = gi.datasets.download_dataset(dataset_id=sapiens_job_out)
+        try:
+            sapiens_output = json.loads(sapiens_json_output)[0]
+            sapiens_id = str(sapiens_output["organism_id"])  # needs to be str to be recognized by the chado tool
+            toolrunner.delete_sapiens(hs_id=sapiens_id)
+        except bb.ConnectionError:
+            print("Homo sapiens isn't in the database")
+
         # Workflow generation
         workflow = Workflow(parameters_dict=sp_dict, instance=gi, history_id = current_hi_id)
         wf_dict_json = workflow.generate(working_directory=wd, main_directory=main_dir, workflow_name="preset_workflow")
diff --git a/toolrunner.py b/toolrunner.py
index b1e65a0..453284c 100644
--- a/toolrunner.py
+++ b/toolrunner.py
@@ -45,6 +45,7 @@ class ToolRunner:
         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
 
@@ -101,6 +102,7 @@ class ToolRunner:
                                                          "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)
@@ -144,16 +146,7 @@ class ToolRunner:
         """
         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=)
+                                            tool_inputs={"organism": str(hs_id)})
 
     def show_pannel(self):
         print(self.instance.tools.get_tool_panel())
-- 
GitLab