Mercurial > repos > rv43 > chess_tomo
annotate workflow/link_to_galaxy.py @ 34:ee2d59b83719 draft
planemo upload for repository https://github.com/rolfverberg/galaxytools commit 19fefed1d90e6d214dc6eb6998ad11eee8233f24-dirty
| author | rv43 |
|---|---|
| date | Wed, 22 Mar 2023 16:51:57 +0000 |
| parents | 9aa288729b9a |
| children |
| rev | line source |
|---|---|
|
4
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
1 #!/usr/bin/env python3 |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
2 |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
3 import logging |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
4 logger = logging.getLogger(__name__) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
5 |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
6 from bioblend.galaxy import GalaxyInstance |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
7 from nexusformat.nexus import * |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
8 from os import path |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
9 from yaml import safe_load |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
10 |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
11 from .models import import_scanparser, TomoWorkflow |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
12 |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
13 def get_folder_id(gi, path): |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
14 library_id = None |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
15 folder_id = None |
|
9aa288729b9a
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 [] |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
17 new_folders = folder_names |
|
9aa288729b9a
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]) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
19 if libs: |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
20 for lib in libs: |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
21 library_id = lib['id'] |
|
9aa288729b9a
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) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
23 for i, folder in enumerate(folders): |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
24 fid = folder['id'] |
|
9aa288729b9a
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) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
26 library_path = details['library_path'] |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
27 if library_path == folder_names: |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
28 return (library_id, fid, []) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
29 elif len(library_path) < len(folder_names): |
|
9aa288729b9a
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)]: |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
31 nf = folder_names[len(library_path):] |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
32 if len(nf) < len(new_folders): |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
33 folder_id = fid |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
34 new_folders = nf |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
35 return (library_id, folder_id, new_folders) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
36 |
|
9aa288729b9a
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: |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
38 # Read input file |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
39 extension = path.splitext(filename)[1] |
|
9aa288729b9a
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 |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
41 # if extension == '.yml' or extension == '.yaml': |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
42 # with open(filename, 'r') as f: |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
43 # data = safe_load(f) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
44 # elif extension == '.nxs': |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
45 if extension == '.nxs': |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
46 with NXFile(filename, mode='r') as nxfile: |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
47 data = nxfile.readfile() |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
48 else: |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
49 raise ValueError(f'Invalid filename extension ({extension})') |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
50 if isinstance(data, dict): |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
51 # Create Nexus format object from input dictionary |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
52 wf = TomoWorkflow(**data) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
53 if len(wf.sample_maps) > 1: |
|
9aa288729b9a
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') |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
55 nxroot = NXroot() |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
56 for sample_map in wf.sample_maps: |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
57 import_scanparser(sample_map.station) |
|
9aa288729b9a
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 |
|
9aa288729b9a
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) |
|
9aa288729b9a
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) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
61 nxentry = nxroot[nxroot.attrs['default']] |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
62 elif isinstance(data, NXroot): |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
63 nxentry = data[data.attrs['default']] |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
64 else: |
|
9aa288729b9a
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})') |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
66 |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
67 # Get a Galaxy instance |
|
9aa288729b9a
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 : |
|
9aa288729b9a
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) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
70 elif api_key is not None: |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
71 gi = GalaxyInstance(url=galaxy, key=api_key) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
72 else: |
|
9aa288729b9a
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.') |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
74 |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
75 cycle = nxentry.instrument.source.attrs['cycle'] |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
76 btr = nxentry.instrument.source.attrs['btr'] |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
77 sample = nxentry.sample.name |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
78 |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
79 # Create a Galaxy work library/folder |
|
9aa288729b9a
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 |
|
9aa288729b9a
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('/')] |
|
9aa288729b9a
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) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
83 if not library_id: |
|
9aa288729b9a
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) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
85 library_id = library['id'] |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
86 # if user: |
|
9aa288729b9a
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, |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
88 # manage_ids=user, modify_ids=user) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
89 logger.info(f'Created Library:\n{library}') |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
90 if len(folder_names): |
|
9aa288729b9a
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, |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
92 base_folder_id=folder_id)[0] |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
93 folder_id = folder['id'] |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
94 logger.info(f'Created Folder:\n{folder}') |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
95 folder_names.pop(0) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
96 while len(folder_names): |
|
9aa288729b9a
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], |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
98 description=None) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
99 folder_id = folder['id'] |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
100 logger.info(f'Created Folder:\n{folder}') |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
101 folder_names.pop(0) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
102 |
|
9aa288729b9a
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 |
|
9aa288729b9a
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), |
|
9aa288729b9a
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', |
|
9aa288729b9a
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] |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
107 |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
108 # Make a history for the data |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
109 history_name = f'tomo {btr} {sample}' |
|
9aa288729b9a
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) |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
111 logger.info(f'Created history:\n{history}') |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
112 history_id = history['id'] |
|
9aa288729b9a
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') |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
114 |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
115 # TODO add option to either |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
116 # get a URL to share the history |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
117 # or to share with specific users |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
118 # This might require using: |
|
9aa288729b9a
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 |
|
9aa288729b9a
planemo upload for repository https://github.com/rolfverberg/galaxytools commit f8c4bdb31c20c468045ad5e6eb255a293244bc6c-dirty
rv43
parents:
diff
changeset
|
120 |
