From 575ddd21e00d2d152ca947bfe2fe2e9723793f70 Mon Sep 17 00:00:00 2001
From: Loraine Gueguen <loraine.gueguen@sb-roscoff.fr>
Date: Tue, 11 May 2021 20:42:14 +0200
Subject: [PATCH] fix filepath for upload_from_galaxy_fs(). Factorize
 get_species_dir()

---
 gga_load_data.py | 10 +++++++---
 speciesData.py   | 12 ++++++++++--
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/gga_load_data.py b/gga_load_data.py
index 655f78a..22fbd35 100755
--- a/gga_load_data.py
+++ b/gga_load_data.py
@@ -28,6 +28,8 @@ Do not call this script before the galaxy container is ready
 GET_ORGANISMS_TOOL = "toolshed.g2.bx.psu.edu/repos/gga/chado_organism_get_organisms/organism_get_organisms/2.3.4+galaxy0"
 DELETE_ORGANISMS_TOOL = "toolshed.g2.bx.psu.edu/repos/gga/chado_organism_delete_organisms/organism_delete_organisms/2.3.4+galaxy0"
 
+HOST_DATA_DIR='src_data'
+CONTAINER_DATA_DIR_ROOT='/project_data'
 
 class LoadData(speciesData.SpeciesData):
     """
@@ -101,7 +103,7 @@ class LoadData(speciesData.SpeciesData):
 
         return histories
 
-    def setup_library(self, data_dir_root='./src_data'):
+    def setup_library(self):
         """
         Create a "Project Data" library in galaxy, mirroring the "src_data" folder of the current organism
         directory tree
@@ -109,7 +111,7 @@ class LoadData(speciesData.SpeciesData):
         :return:
         """
 
-        self.goto_species_dir()
+        data_dir_root=os.path.join(self.get_species_dir(), HOST_DATA_DIR)
 
         instance = GalaxyInstance(url=self.instance_url,
                                               email=self.config["galaxy_default_admin_email"],
@@ -181,9 +183,11 @@ class LoadData(speciesData.SpeciesData):
                             logging.info("Skipping useless file '%s'" % single_file)
                             continue
 
+                        single_file_path=os.path.join(CONTAINER_DATA_DIR_ROOT,single_file)
+
                         logging.info("Adding file '%s' with type '%s' and name '%s'" % (single_file, ftype, clean_name))
                         datasets = prj_lib.upload_from_galaxy_fs(
-                            single_file,
+                            single_file_path,
                             folder=folder,
                             link_data_only='link_to_files',
                             file_type=ftype,
diff --git a/speciesData.py b/speciesData.py
index b6af885..bb13d11 100755
--- a/speciesData.py
+++ b/speciesData.py
@@ -16,6 +16,15 @@ class SpeciesData:
 
     """
 
+    def get_species_dir(self):
+
+        species_dir = None
+        if os.path.isdir(self.main_dir) and not self.genus_species is None:
+            species_dir = os.path.join(self.main_dir, self.genus_species)
+        else:
+            logging.error("Cannot set species dir with '{0}/{1}'".format(self.main_dir,self.genus_species))
+        return species_dir
+
     def goto_species_dir(self):
         """
         Go to the species directory (starting from the main dir)
@@ -23,8 +32,7 @@ class SpeciesData:
         :return:
         """
 
-        os.chdir(self.main_dir)
-        species_dir = os.path.join(self.main_dir, self.genus_species) + "/"
+        species_dir = self.get_species_dir()
         try:
             os.chdir(species_dir)
         except OSError:
-- 
GitLab