annotate workflow/link_to_galaxy.py @ 0:98e23dff1de2 draft default tip

planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
author rv43
date Tue, 21 Mar 2023 16:22:42 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
1 #!/usr/bin/env python3
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
2
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
3 import logging
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
4 logger = logging.getLogger(__name__)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
5
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
6 from bioblend.galaxy import GalaxyInstance
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
7 from nexusformat.nexus import *
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
8 from os import path
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
9 from yaml import safe_load
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
10
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
11 from .models import import_scanparser, TomoWorkflow
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
12
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
13 def get_folder_id(gi, path):
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
14 library_id = None
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
15 folder_id = None
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
16 folder_names = path[1:] if len(path) > 1 else []
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
17 new_folders = folder_names
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
18 libs = gi.libraries.get_libraries(name=path[0])
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
19 if libs:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
20 for lib in libs:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
21 library_id = lib['id']
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
22 folders = gi.libraries.get_folders(library_id, folder_id=None, name=None)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
23 for i, folder in enumerate(folders):
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
24 fid = folder['id']
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
25 details = gi.libraries.show_folder(library_id, fid)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
26 library_path = details['library_path']
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
27 if library_path == folder_names:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
28 return (library_id, fid, [])
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
29 elif len(library_path) < len(folder_names):
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
30 if library_path == folder_names[:len(library_path)]:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
31 nf = folder_names[len(library_path):]
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
32 if len(nf) < len(new_folders):
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
33 folder_id = fid
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
34 new_folders = nf
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
35 return (library_id, folder_id, new_folders)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
36
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
37 def link_to_galaxy(filename:str, galaxy=None, user=None, password=None, api_key=None) -> None:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
38 # Read input file
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
39 extension = path.splitext(filename)[1]
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
40 # RV yaml input not incorporated yet, since Galaxy can't use pyspec right now
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
41 # if extension == '.yml' or extension == '.yaml':
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
42 # with open(filename, 'r') as f:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
43 # data = safe_load(f)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
44 # elif extension == '.nxs':
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
45 if extension == '.nxs':
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
46 with NXFile(filename, mode='r') as nxfile:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
47 data = nxfile.readfile()
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
48 else:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
49 raise ValueError(f'Invalid filename extension ({extension})')
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
50 if isinstance(data, dict):
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
51 # Create Nexus format object from input dictionary
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
52 wf = TomoWorkflow(**data)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
53 if len(wf.sample_maps) > 1:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
54 raise ValueError(f'Multiple sample maps not yet implemented')
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
55 nxroot = NXroot()
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
56 for sample_map in wf.sample_maps:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
57 import_scanparser(sample_map.station)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
58 # RV raw data must be included, since Galaxy can't use pyspec right now
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
59 # sample_map.construct_nxentry(nxroot, include_raw_data=False)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
60 sample_map.construct_nxentry(nxroot, include_raw_data=True)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
61 nxentry = nxroot[nxroot.attrs['default']]
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
62 elif isinstance(data, NXroot):
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
63 nxentry = data[data.attrs['default']]
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
64 else:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
65 raise ValueError(f'Invalid input file data ({data})')
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
66
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
67 # Get a Galaxy instance
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
68 if user is not None and password is not None :
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
69 gi = GalaxyInstance(url=galaxy, email=user, password=password)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
70 elif api_key is not None:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
71 gi = GalaxyInstance(url=galaxy, key=api_key)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
72 else:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
73 exit('Please specify either a valid Galaxy username/password or an API key.')
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
74
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
75 cycle = nxentry.instrument.source.attrs['cycle']
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
76 btr = nxentry.instrument.source.attrs['btr']
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
77 sample = nxentry.sample.name
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
78
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
79 # Create a Galaxy work library/folder
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
80 # Combine the cycle, BTR and sample name as the base library name
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
81 lib_path = [p.strip() for p in f'{cycle}/{btr}/{sample}'.split('/')]
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
82 (library_id, folder_id, folder_names) = get_folder_id(gi, lib_path)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
83 if not library_id:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
84 library = gi.libraries.create_library(lib_path[0], description=None, synopsis=None)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
85 library_id = library['id']
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
86 # if user:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
87 # gi.libraries.set_library_permissions(library_id, access_ids=user,
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
88 # manage_ids=user, modify_ids=user)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
89 logger.info(f'Created Library:\n{library}')
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
90 if len(folder_names):
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
91 folder = gi.libraries.create_folder(library_id, folder_names[0], description=None,
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
92 base_folder_id=folder_id)[0]
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
93 folder_id = folder['id']
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
94 logger.info(f'Created Folder:\n{folder}')
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
95 folder_names.pop(0)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
96 while len(folder_names):
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
97 folder = gi.folders.create_folder(folder['id'], folder_names[0],
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
98 description=None)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
99 folder_id = folder['id']
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
100 logger.info(f'Created Folder:\n{folder}')
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
101 folder_names.pop(0)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
102
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
103 # Create a sym link for the Nexus file
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
104 dataset = gi.libraries.upload_from_galaxy_filesystem(library_id, path.abspath(filename),
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
105 folder_id=folder_id, file_type='auto', dbkey='?', link_data_only='link_to_files',
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
106 roles='', preserve_dirs=False, tag_using_filenames=False, tags=None)[0]
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
107
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
108 # Make a history for the data
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
109 history_name = f'tomo {btr} {sample}'
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
110 history = gi.histories.create_history(name=history_name)
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
111 logger.info(f'Created history:\n{history}')
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
112 history_id = history['id']
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
113 gi.histories.copy_dataset(history_id, dataset['id'], source='library')
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
114
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
115 # TODO add option to either
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
116 # get a URL to share the history
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
117 # or to share with specific users
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
118 # This might require using:
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
119 # https://bioblend.readthedocs.io/en/latest/api_docs/galaxy/docs.html#using-bioblend-for-raw-api-calls
98e23dff1de2 planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff changeset
120