comparison create_or_update_organism.py @ 11:56b9a26694c0 draft

"planemo upload for repository https://github.com/galaxy-genome-annotation/galaxy-tools/tree/master/tools/apollo commit 81492a9c8b9e5649a3867bc30afe617a30fb47a1"
author gga
date Tue, 14 Apr 2020 10:39:32 -0400
parents c3b5bc8b4080
children f6e09a37bc8b
comparison
equal deleted inserted replaced
10:c3b5bc8b4080 11:56b9a26694c0
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 from __future__ import print_function 2 from __future__ import print_function
3 3
4 import argparse 4 import argparse
5 import glob
6 import json 5 import json
7 import logging 6 import logging
8 import os 7 import os
8 import re
9 import shutil 9 import shutil
10 import stat 10 import stat
11 import subprocess 11 import subprocess
12 import sys 12 import sys
13 import tarfile 13 import tarfile
14 import tempfile 14 import tempfile
15 import time 15 import time
16 from pathlib import Path
16 17
17 from apollo import accessible_organisms 18 from apollo import accessible_organisms
18 from apollo.util import GuessOrg, OrgOrGuess 19 from apollo.util import GuessOrg, OrgOrGuess
19 20
20 from arrow.apollo import get_apollo_instance 21 from arrow.apollo import get_apollo_instance
45 return False 46 return False
46 47
47 48
48 def IsRemote(): 49 def IsRemote():
49 return 'GALAXY_SHARED_DIR' not in os.environ or len(os.environ['GALAXY_SHARED_DIR'].lower().strip()) == 0 50 return 'GALAXY_SHARED_DIR' not in os.environ or len(os.environ['GALAXY_SHARED_DIR'].lower().strip()) == 0
51
52
53 def zip_data_dir(dataset_data_dir, tar):
54 tar.add(dataset_data_dir, arcname='./', recursive=False)
55 for r, d, f in os.walk(dataset_data_dir):
56 for file_name in f:
57 abs_file = os.path.join(r, file_name)
58 rel_dir = os.path.relpath(r, dataset_data_dir)
59 rel_file = os.path.join(rel_dir, file_name)
60 if not rel_file.startswith('./'):
61 rel_file = './' + rel_file
62 if os.path.islink(abs_file):
63 target = Path(abs_file).resolve().absolute().as_posix()
64 if re.match(r'.*/_metadata_files/[0-9]+/metadata_[0-9]+.dat', target):
65 # This is a metadata file generated by galaxy, symlink would certainly be dead on remote host, resolve it
66 abs_file = target
67 tar.add(abs_file, arcname=rel_file)
50 68
51 69
52 if __name__ == '__main__': 70 if __name__ == '__main__':
53 parser = argparse.ArgumentParser(description='Create or update an organism in an Apollo instance') 71 parser = argparse.ArgumentParser(description='Create or update an organism in an Apollo instance')
54 parser.add_argument('jbrowse_src', help='Source JBrowse Data Directory') 72 parser.add_argument('jbrowse_src', help='Source JBrowse Data Directory')
134 log.info("\tUpdating Organism") 152 log.info("\tUpdating Organism")
135 if IsRemote(): 153 if IsRemote():
136 with tempfile.NamedTemporaryFile(suffix='.tar.gz') as archive: 154 with tempfile.NamedTemporaryFile(suffix='.tar.gz') as archive:
137 with tarfile.open(archive.name, mode="w:gz") as tar: 155 with tarfile.open(archive.name, mode="w:gz") as tar:
138 dataset_data_dir = args.jbrowse_src 156 dataset_data_dir = args.jbrowse_src
139 for file in glob.glob(dataset_data_dir): 157 zip_data_dir(dataset_data_dir, tar)
140 tar.add(file, arcname=file.replace(dataset_data_dir, './'))
141 if IsBlatEnabled(): 158 if IsBlatEnabled():
142 tar.add(path_2bit, arcname="./searchDatabaseData/genome.2bit") 159 tar.add(path_2bit, arcname="./searchDatabaseData/genome.2bit")
143 data = wa.remote.update_organism( 160 data = wa.remote.update_organism(
144 org['id'], 161 org['id'],
145 archive, 162 archive,
175 192
176 if IsRemote(): 193 if IsRemote():
177 with tempfile.NamedTemporaryFile(suffix='.tar.gz') as archive: 194 with tempfile.NamedTemporaryFile(suffix='.tar.gz') as archive:
178 with tarfile.open(archive.name, mode="w:gz") as tar: 195 with tarfile.open(archive.name, mode="w:gz") as tar:
179 dataset_data_dir = args.jbrowse_src 196 dataset_data_dir = args.jbrowse_src
180 for file in glob.glob(dataset_data_dir): 197 zip_data_dir(dataset_data_dir, tar)
181 tar.add(file, arcname=file.replace(dataset_data_dir, './'))
182 if IsBlatEnabled(): 198 if IsBlatEnabled():
183 with tempfile.TemporaryDirectory() as empty_dir: 199 with tempfile.TemporaryDirectory() as empty_dir:
184 os.chmod(empty_dir, stat.S_IRUSR | stat.S_IXUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH) 200 os.chmod(empty_dir, stat.S_IRUSR | stat.S_IXUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
185 tar.add(empty_dir, arcname="./searchDatabaseData/") 201 tar.add(empty_dir, arcname="./searchDatabaseData/")
186 tar.add(path_2bit, arcname="./searchDatabaseData/genome.2bit") 202 tar.add(path_2bit, arcname="./searchDatabaseData/genome.2bit")