pyxetabase 3.1.0.dev2__tar.gz → 4.0.0.dev81__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pyxetabase might be problematic. Click here for more details.
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/PKG-INFO +1 -1
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/commons.py +6 -6
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/opencga_config.py +59 -8
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/_parent_rest_clients.py +47 -13
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/admin_client.py +15 -9
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/clinical_analysis_client.py +17 -74
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/cohort_client.py +11 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/disease_panel_client.py +6 -13
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/file_client.py +13 -1
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/job_client.py +20 -1
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/meta_client.py +4 -3
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/study_client.py +30 -1
- pyxetabase-4.0.0.dev81/pyxetabase/rest_clients/user_tool_client.py +471 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/variant_operation_client.py +26 -27
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/workflow_client.py +1 -1
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase.egg-info/PKG-INFO +1 -1
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase.egg-info/SOURCES.txt +1 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/setup.py +1 -1
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/LICENSE +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/README.rst +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/__init__.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/exceptions.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/opencga_client.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/__init__.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/alignment_client.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/cvdb_client.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/family_client.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/federation_client.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/ga4gh_client.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/individual_client.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/organization_client.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/project_client.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/sample_client.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/user_client.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/variant_client.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_response.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/retry.py +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase.egg-info/dependency_links.txt +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase.egg-info/requires.txt +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase.egg-info/top_level.txt +0 -0
- {pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/setup.cfg +0 -0
|
@@ -145,22 +145,22 @@ def _fetch(config, sid, category, resource, method, subcategory=None, query_id=N
|
|
|
145
145
|
# Getting REST response
|
|
146
146
|
if method == 'get':
|
|
147
147
|
try:
|
|
148
|
-
r = requests.get(url, headers=header, cookies=config.cookies)
|
|
148
|
+
r = requests.get(url, headers=header, cookies=config.cookies, verify=not config.tlsAllowInvalidCertificates)
|
|
149
149
|
except requests.exceptions.ConnectionError:
|
|
150
150
|
sleep(1)
|
|
151
|
-
r = requests.get(url, headers=header, cookies=config.cookies)
|
|
151
|
+
r = requests.get(url, headers=header, cookies=config.cookies, verify=not config.tlsAllowInvalidCertificates)
|
|
152
152
|
elif method == 'post':
|
|
153
153
|
try:
|
|
154
|
-
r = requests.post(url, json=data, headers=header, cookies=config.cookies)
|
|
154
|
+
r = requests.post(url, json=data, headers=header, cookies=config.cookies, verify=not config.tlsAllowInvalidCertificates)
|
|
155
155
|
except requests.exceptions.ConnectionError:
|
|
156
156
|
sleep(1)
|
|
157
|
-
r = requests.post(url, json=data, headers=header, cookies=config.cookies)
|
|
157
|
+
r = requests.post(url, json=data, headers=header, cookies=config.cookies, verify=not config.tlsAllowInvalidCertificates)
|
|
158
158
|
elif method == 'delete':
|
|
159
159
|
try:
|
|
160
|
-
r = requests.delete(url, headers=header, cookies=config.cookies)
|
|
160
|
+
r = requests.delete(url, headers=header, cookies=config.cookies, verify=not config.tlsAllowInvalidCertificates)
|
|
161
161
|
except requests.exceptions.ConnectionError:
|
|
162
162
|
sleep(1)
|
|
163
|
-
r = requests.delete(url, headers=header, cookies=config.cookies)
|
|
163
|
+
r = requests.delete(url, headers=header, cookies=config.cookies, verify=not config.tlsAllowInvalidCertificates)
|
|
164
164
|
else:
|
|
165
165
|
raise NotImplementedError('method: ' + method + ' not implemented.')
|
|
166
166
|
|
|
@@ -37,12 +37,21 @@ class ClientConfiguration(object):
|
|
|
37
37
|
return config_dict
|
|
38
38
|
|
|
39
39
|
def get_sso_login_info(self):
|
|
40
|
+
# Checking if SSO login is specified
|
|
40
41
|
if (('sso_login' in self._config and self._config['sso_login']) or
|
|
41
42
|
('cookies' in self._config and self._config['cookies'])):
|
|
42
|
-
|
|
43
|
+
|
|
44
|
+
# Getting session file name
|
|
45
|
+
if 'name' in self._config['rest'] and self._config['rest']['name']:
|
|
46
|
+
host_name = self._config['rest']['name']
|
|
47
|
+
else:
|
|
48
|
+
host_name = 'opencga'
|
|
49
|
+
python_session_fhand = open(os.path.expanduser("~/.opencga/{}_session.json".format(host_name)), 'r')
|
|
50
|
+
|
|
51
|
+
# Loading info from session file
|
|
43
52
|
session_info = json.loads(python_session_fhand.read())
|
|
44
53
|
self._config['sso_login'] = True
|
|
45
|
-
self._config['cookies'] = session_info['cookies']
|
|
54
|
+
self._config['cookies'] = session_info['attributes']['cookies']
|
|
46
55
|
self._config['token'] = session_info['token']
|
|
47
56
|
|
|
48
57
|
def _validate_configuration(self):
|
|
@@ -55,16 +64,46 @@ class ClientConfiguration(object):
|
|
|
55
64
|
if 'host' not in self._config['rest'] or not self._config['rest']['host']:
|
|
56
65
|
raise ValueError('Missing configuration field "host".')
|
|
57
66
|
|
|
58
|
-
self._validate_host(
|
|
67
|
+
self._validate_host()
|
|
59
68
|
|
|
60
|
-
|
|
61
|
-
def _validate_host(host):
|
|
69
|
+
def _validate_host(self):
|
|
62
70
|
try:
|
|
63
|
-
r = requests.head(host, timeout=2)
|
|
71
|
+
r = requests.head(self.host, timeout=2, verify=not self.tlsAllowInvalidCertificates)
|
|
64
72
|
if r.status_code == 302:
|
|
65
73
|
return
|
|
74
|
+
except requests.exceptions.SSLError:
|
|
75
|
+
raise Exception('Invalid SSL certificate from "{}"'.format(self.host))
|
|
66
76
|
except requests.ConnectionError:
|
|
67
|
-
raise Exception('Unreachable host "{}"'.format(host))
|
|
77
|
+
raise Exception('Unreachable host "{}"'.format(self.host))
|
|
78
|
+
|
|
79
|
+
@property
|
|
80
|
+
def host(self):
|
|
81
|
+
return self._config['rest']['host']
|
|
82
|
+
|
|
83
|
+
@host.setter
|
|
84
|
+
def host(self, new_host):
|
|
85
|
+
self._config['rest']['host'] = new_host
|
|
86
|
+
|
|
87
|
+
@property
|
|
88
|
+
def tlsAllowInvalidCertificates(self):
|
|
89
|
+
if ('tlsAllowInvalidCertificates' in self._config['rest']
|
|
90
|
+
and self._config['rest']['tlsAllowInvalidCertificates'] is not None):
|
|
91
|
+
return self._config['rest']['tlsAllowInvalidCertificates']
|
|
92
|
+
else:
|
|
93
|
+
return False
|
|
94
|
+
|
|
95
|
+
@property
|
|
96
|
+
def version(self):
|
|
97
|
+
return self._config['version'] if 'version' in self._config else 'v2'
|
|
98
|
+
|
|
99
|
+
@property
|
|
100
|
+
def cookies(self):
|
|
101
|
+
if 'cookies' in self._config and self._config['cookies']:
|
|
102
|
+
python_session_fhand = open(os.path.expanduser("~/.opencga/python_session.json"), 'r')
|
|
103
|
+
session_info = json.loads(python_session_fhand.read())
|
|
104
|
+
return session_info['cookies']
|
|
105
|
+
else:
|
|
106
|
+
return None
|
|
68
107
|
|
|
69
108
|
@property
|
|
70
109
|
def configuration(self):
|
|
@@ -77,7 +116,19 @@ class ClientConfiguration(object):
|
|
|
77
116
|
@host.setter
|
|
78
117
|
def host(self, host):
|
|
79
118
|
self._config['rest']['host'] = host
|
|
80
|
-
self._validate_host(
|
|
119
|
+
self._validate_host()
|
|
120
|
+
|
|
121
|
+
@property
|
|
122
|
+
def tlsAllowInvalidCertificates(self):
|
|
123
|
+
if ('tlsAllowInvalidCertificates' in self._config['rest'] and
|
|
124
|
+
self._config['rest']['tlsAllowInvalidCertificates'] is not None):
|
|
125
|
+
return self._config['rest']['tlsAllowInvalidCertificates']
|
|
126
|
+
else:
|
|
127
|
+
return False
|
|
128
|
+
|
|
129
|
+
@tlsAllowInvalidCertificates.setter
|
|
130
|
+
def tlsAllowInvalidCertificates(self, tlsAllowInvalidCertificates):
|
|
131
|
+
self._config['rest']['tlsAllowInvalidCertificates'] = tlsAllowInvalidCertificates
|
|
81
132
|
|
|
82
133
|
@property
|
|
83
134
|
def version(self):
|
{pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/_parent_rest_clients.py
RENAMED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import os
|
|
2
|
+
import requests
|
|
2
3
|
|
|
3
|
-
from pyxetabase.commons import execute
|
|
4
|
+
from pyxetabase.commons import execute, _create_rest_url, snake_to_camel_case
|
|
4
5
|
from pyxetabase.rest_response import RestResponse
|
|
5
6
|
from pyxetabase.retry import retry
|
|
6
7
|
|
|
@@ -87,18 +88,23 @@ class _ParentRestClient(object):
|
|
|
87
88
|
def _post(self, category, resource, data=None, query_id=None, subcategory=None,
|
|
88
89
|
second_query_id=None, **options):
|
|
89
90
|
"""Queries the REST service and returns the result"""
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
data=data, **options
|
|
95
|
-
)
|
|
91
|
+
# Special treatment for the "/{apiVersion}/files/upload" endpoint
|
|
92
|
+
if category == 'files' and resource == 'upload':
|
|
93
|
+
response = self._upload(category=category, resource=resource, **options)
|
|
94
|
+
return RestResponse(response)
|
|
96
95
|
else:
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
96
|
+
if data is not None:
|
|
97
|
+
return self._rest_retry(
|
|
98
|
+
method='post', category=category, resource=resource, query_id=query_id,
|
|
99
|
+
subcategory=subcategory, second_query_id=second_query_id,
|
|
100
|
+
data=data, **options
|
|
101
|
+
)
|
|
102
|
+
else:
|
|
103
|
+
return self._rest_retry(
|
|
104
|
+
method='post', category=category, resource=resource, query_id=query_id,
|
|
105
|
+
subcategory=subcategory, second_query_id=second_query_id,
|
|
106
|
+
**options
|
|
107
|
+
)
|
|
102
108
|
|
|
103
109
|
def _delete(self, category, resource, query_id=None, subcategory=None,
|
|
104
110
|
second_query_id=None, **options):
|
|
@@ -108,3 +114,31 @@ class _ParentRestClient(object):
|
|
|
108
114
|
subcategory=subcategory, second_query_id=second_query_id,
|
|
109
115
|
**options
|
|
110
116
|
)
|
|
117
|
+
|
|
118
|
+
def _upload(self, category, resource, **options):
|
|
119
|
+
"""Upload files"""
|
|
120
|
+
|
|
121
|
+
# Checking that the parameter file contains the file path to upload
|
|
122
|
+
if 'file' not in options or not isinstance(options['file'], str):
|
|
123
|
+
raise ValueError('To upload a file, please specify the file path as the "file" parameter.')
|
|
124
|
+
|
|
125
|
+
# Creating URL and headers
|
|
126
|
+
url, header = _create_rest_url(host=self._cfg.host, version=self._cfg.version, sid=self.token,
|
|
127
|
+
category=category, resource=resource, options=options)
|
|
128
|
+
|
|
129
|
+
# Creating data
|
|
130
|
+
data = {}
|
|
131
|
+
for k, v in options.items():
|
|
132
|
+
if k == 'file': # Param "file" is not included in data
|
|
133
|
+
continue
|
|
134
|
+
data[snake_to_camel_case(k)] = v
|
|
135
|
+
|
|
136
|
+
# Uploading
|
|
137
|
+
fpath = os.path.realpath(os.path.expanduser(options['file']))
|
|
138
|
+
with open(fpath, "rb") as f:
|
|
139
|
+
fhand = {"file": (fpath, f, "application/octet-stream")}
|
|
140
|
+
response = requests.post(url, headers=header, files=fhand, data=data or None)
|
|
141
|
+
if response.status_code != 200:
|
|
142
|
+
raise Exception(response.content)
|
|
143
|
+
|
|
144
|
+
return response.json()
|
|
@@ -27,7 +27,7 @@ class Admin(_ParentRestClient):
|
|
|
27
27
|
:param str entity: Entity to be grouped by. Allowed values: ['AUDIT
|
|
28
28
|
NOTE ORGANIZATION USER PROJECT STUDY FILE SAMPLE JOB INDIVIDUAL
|
|
29
29
|
COHORT DISEASE_PANEL FAMILY CLINICAL_ANALYSIS INTERPRETATION
|
|
30
|
-
VARIANT ALIGNMENT CLINICAL EXPRESSION RGA FUNCTIONAL
|
|
30
|
+
VARIANT ALIGNMENT CLINICAL EXPRESSION RGA FUNCTIONAL EXTERNAL_TOOL
|
|
31
31
|
RESOURCE'] (REQUIRED)
|
|
32
32
|
:param str fields: Comma separated list of fields by which to group
|
|
33
33
|
by. (REQUIRED)
|
|
@@ -54,16 +54,23 @@ class Admin(_ParentRestClient):
|
|
|
54
54
|
|
|
55
55
|
return self._post(category='admin', resource='install', subcategory='catalog', data=data, **options)
|
|
56
56
|
|
|
57
|
-
def
|
|
57
|
+
def update_catalog_workspace(self, data=None, **options):
|
|
58
58
|
"""
|
|
59
|
-
|
|
60
|
-
PATH: /{apiVersion}/admin/catalog/
|
|
59
|
+
Update the OpenCGA Catalog workspace.
|
|
60
|
+
PATH: /{apiVersion}/admin/catalog/workspace/update
|
|
61
61
|
|
|
62
|
-
:param dict data: JSON containing the parameters. (REQUIRED)
|
|
63
|
-
|
|
62
|
+
:param dict data: JSON containing the workspace parameters. (REQUIRED)
|
|
63
|
+
"""
|
|
64
|
+
|
|
65
|
+
return self._post(category='admin', resource='update', subcategory='catalog/workspace', data=data, **options)
|
|
66
|
+
|
|
67
|
+
def list_organizations(self, **options):
|
|
68
|
+
"""
|
|
69
|
+
List current Organizations.
|
|
70
|
+
PATH: /{apiVersion}/admin/organizations/list
|
|
64
71
|
"""
|
|
65
72
|
|
|
66
|
-
return self.
|
|
73
|
+
return self._get(category='admin', resource='list', subcategory='organizations', **options)
|
|
67
74
|
|
|
68
75
|
def fetch_resource(self, data=None, **options):
|
|
69
76
|
"""
|
|
@@ -147,8 +154,7 @@ class Admin(_ParentRestClient):
|
|
|
147
154
|
|
|
148
155
|
def sync_users(self, data=None, **options):
|
|
149
156
|
"""
|
|
150
|
-
|
|
151
|
-
group in a study from catalog.
|
|
157
|
+
[DEPRECATED] Moved to /users/sync.
|
|
152
158
|
PATH: /{apiVersion}/admin/users/sync
|
|
153
159
|
|
|
154
160
|
:param dict data: JSON containing the parameters. (REQUIRED)
|
{pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/clinical_analysis_client.py
RENAMED
|
@@ -350,32 +350,6 @@ class ClinicalAnalysis(_ParentRestClient):
|
|
|
350
350
|
|
|
351
351
|
return self._get(category='analysis', resource='info', subcategory='clinical/interpretation', second_query_id=interpretations, **options)
|
|
352
352
|
|
|
353
|
-
def run_interpreter_cancer_tiering(self, data=None, **options):
|
|
354
|
-
"""
|
|
355
|
-
Run cancer tiering interpretation analysis.
|
|
356
|
-
PATH: /{apiVersion}/analysis/clinical/interpreter/cancerTiering/run
|
|
357
|
-
|
|
358
|
-
:param dict data: Cancer tiering interpretation analysis params.
|
|
359
|
-
(REQUIRED)
|
|
360
|
-
:param str study: Study [[organization@]project:]study where study and
|
|
361
|
-
project can be either the ID or UUID.
|
|
362
|
-
:param str job_id: Job ID. It must be a unique string within the
|
|
363
|
-
study. An ID will be autogenerated automatically if not provided.
|
|
364
|
-
:param str job_description: Job description.
|
|
365
|
-
:param str job_depends_on: Comma separated list of existing job IDs
|
|
366
|
-
the job will depend on.
|
|
367
|
-
:param str job_tags: Job tags.
|
|
368
|
-
:param str job_scheduled_start_time: Time when the job is scheduled to
|
|
369
|
-
start.
|
|
370
|
-
:param str job_priority: Priority of the job.
|
|
371
|
-
:param bool job_dry_run: Flag indicating that the job will be executed
|
|
372
|
-
in dry-run mode. In this mode, OpenCGA will validate that all
|
|
373
|
-
parameters and prerequisites are correctly set for successful
|
|
374
|
-
execution, but the job will not actually run.
|
|
375
|
-
"""
|
|
376
|
-
|
|
377
|
-
return self._post(category='analysis', resource='run', subcategory='clinical/interpreter/cancerTiering', data=data, **options)
|
|
378
|
-
|
|
379
353
|
def run_interpreter_exomiser(self, data=None, **options):
|
|
380
354
|
"""
|
|
381
355
|
Run exomiser interpretation analysis.
|
|
@@ -401,62 +375,31 @@ class ClinicalAnalysis(_ParentRestClient):
|
|
|
401
375
|
|
|
402
376
|
return self._post(category='analysis', resource='run', subcategory='clinical/interpreter/exomiser', data=data, **options)
|
|
403
377
|
|
|
404
|
-
def
|
|
405
|
-
"""
|
|
406
|
-
Run TEAM interpretation analysis.
|
|
407
|
-
PATH: /{apiVersion}/analysis/clinical/interpreter/team/run
|
|
408
|
-
|
|
409
|
-
:param dict data: TEAM interpretation analysis params. (REQUIRED)
|
|
410
|
-
:param str study: Study [[organization@]project:]study where study and
|
|
411
|
-
project can be either the ID or UUID.
|
|
412
|
-
:param str job_id: Job ID. It must be a unique string within the
|
|
413
|
-
study. An ID will be autogenerated automatically if not provided.
|
|
414
|
-
:param str job_description: Job description.
|
|
415
|
-
:param str job_depends_on: Comma separated list of existing job IDs
|
|
416
|
-
the job will depend on.
|
|
417
|
-
:param str job_tags: Job tags.
|
|
418
|
-
:param str job_scheduled_start_time: Time when the job is scheduled to
|
|
419
|
-
start.
|
|
420
|
-
:param str job_priority: Priority of the job.
|
|
421
|
-
:param bool job_dry_run: Flag indicating that the job will be executed
|
|
422
|
-
in dry-run mode. In this mode, OpenCGA will validate that all
|
|
423
|
-
parameters and prerequisites are correctly set for successful
|
|
424
|
-
execution, but the job will not actually run.
|
|
425
|
-
"""
|
|
426
|
-
|
|
427
|
-
return self._post(category='analysis', resource='run', subcategory='clinical/interpreter/team', data=data, **options)
|
|
428
|
-
|
|
429
|
-
def run_interpreter_tiering(self, data=None, **options):
|
|
378
|
+
def rd_interpreter(self, **options):
|
|
430
379
|
"""
|
|
431
|
-
|
|
432
|
-
PATH: /{apiVersion}/analysis/clinical/interpreter/
|
|
380
|
+
Rare disease interpretation analysis.
|
|
381
|
+
PATH: /{apiVersion}/analysis/clinical/interpreter/rd
|
|
433
382
|
|
|
434
|
-
:param
|
|
383
|
+
:param str clinical_analysis_id: Clinical analysis ID.
|
|
384
|
+
:param str proband_id: Proband ID.
|
|
385
|
+
:param str family_id: Family ID.
|
|
386
|
+
:param str panel_ids: List of panel IDs (separated by commas).
|
|
387
|
+
:param str disorder_id: Disorder ID.
|
|
388
|
+
:param str config_file: RD interpretation configuration file
|
|
389
|
+
(otherwise the default one will be used).
|
|
435
390
|
:param str study: Study [[organization@]project:]study where study and
|
|
436
391
|
project can be either the ID or UUID.
|
|
437
|
-
:param str job_id: Job ID. It must be a unique string within the
|
|
438
|
-
study. An ID will be autogenerated automatically if not provided.
|
|
439
|
-
:param str job_description: Job description.
|
|
440
|
-
:param str job_depends_on: Comma separated list of existing job IDs
|
|
441
|
-
the job will depend on.
|
|
442
|
-
:param str job_tags: Job tags.
|
|
443
|
-
:param str job_scheduled_start_time: Time when the job is scheduled to
|
|
444
|
-
start.
|
|
445
|
-
:param str job_priority: Priority of the job.
|
|
446
|
-
:param bool job_dry_run: Flag indicating that the job will be executed
|
|
447
|
-
in dry-run mode. In this mode, OpenCGA will validate that all
|
|
448
|
-
parameters and prerequisites are correctly set for successful
|
|
449
|
-
execution, but the job will not actually run.
|
|
450
392
|
"""
|
|
451
393
|
|
|
452
|
-
return self.
|
|
394
|
+
return self._get(category='analysis', resource='rd', subcategory='clinical/interpreter', **options)
|
|
453
395
|
|
|
454
|
-
def
|
|
396
|
+
def run_interpreter_rd(self, data=None, **options):
|
|
455
397
|
"""
|
|
456
|
-
Run
|
|
457
|
-
PATH: /{apiVersion}/analysis/clinical/interpreter/
|
|
398
|
+
Run interpretation analysis for rare diseases.
|
|
399
|
+
PATH: /{apiVersion}/analysis/clinical/interpreter/rd/run
|
|
458
400
|
|
|
459
|
-
:param dict data:
|
|
401
|
+
:param dict data: Parameters to execute the rare disease
|
|
402
|
+
interpretation analysis. (REQUIRED)
|
|
460
403
|
:param str study: Study [[organization@]project:]study where study and
|
|
461
404
|
project can be either the ID or UUID.
|
|
462
405
|
:param str job_id: Job ID. It must be a unique string within the
|
|
@@ -474,7 +417,7 @@ class ClinicalAnalysis(_ParentRestClient):
|
|
|
474
417
|
execution, but the job will not actually run.
|
|
475
418
|
"""
|
|
476
419
|
|
|
477
|
-
return self._post(category='analysis', resource='run', subcategory='clinical/interpreter/
|
|
420
|
+
return self._post(category='analysis', resource='run', subcategory='clinical/interpreter/rd', data=data, **options)
|
|
478
421
|
|
|
479
422
|
def load(self, data=None, **options):
|
|
480
423
|
"""
|
|
@@ -61,6 +61,9 @@ class Cohort(_ParentRestClient):
|
|
|
61
61
|
:param str status: status.
|
|
62
62
|
:param str internal_status: internalStatus.
|
|
63
63
|
:param str annotation: Cohort annotation.
|
|
64
|
+
:param str tags: Tags. Also admits basic regular expressions using the
|
|
65
|
+
operator '~', i.e. '~{perl-regex}' e.g. '~value' for case
|
|
66
|
+
sensitive, '~/value/i' for case insensitive search.
|
|
64
67
|
:param str acl: acl.
|
|
65
68
|
:param str samples: Cohort sample IDs.
|
|
66
69
|
:param str num_samples: Number of samples.
|
|
@@ -137,6 +140,9 @@ class Cohort(_ParentRestClient):
|
|
|
137
140
|
:param str uuid: Comma separated list of cohort IDs up to a maximum of
|
|
138
141
|
100.
|
|
139
142
|
:param str type: Cohort type.
|
|
143
|
+
:param str tags: Tags. Also admits basic regular expressions using the
|
|
144
|
+
operator '~', i.e. '~{perl-regex}' e.g. '~value' for case
|
|
145
|
+
sensitive, '~/value/i' for case insensitive search.
|
|
140
146
|
:param str creation_date: creationDate.
|
|
141
147
|
:param str modification_date: modificationDate.
|
|
142
148
|
:param bool deleted: deleted.
|
|
@@ -223,6 +229,9 @@ class Cohort(_ParentRestClient):
|
|
|
223
229
|
:param str uuid: Comma separated list of cohort IDs up to a maximum of
|
|
224
230
|
100.
|
|
225
231
|
:param str type: Cohort type.
|
|
232
|
+
:param str tags: Tags. Also admits basic regular expressions using the
|
|
233
|
+
operator '~', i.e. '~{perl-regex}' e.g. '~value' for case
|
|
234
|
+
sensitive, '~/value/i' for case insensitive search.
|
|
226
235
|
:param str creation_date: creationDate.
|
|
227
236
|
:param str modification_date: modificationDate.
|
|
228
237
|
:param bool deleted: deleted.
|
|
@@ -303,6 +312,8 @@ class Cohort(_ParentRestClient):
|
|
|
303
312
|
:param str annotation_sets_action: Action to be performed if the array
|
|
304
313
|
of annotationSets is being updated. Allowed values: ['ADD SET
|
|
305
314
|
REMOVE']
|
|
315
|
+
:param str tags_action: Action to be performed if the array of tags is
|
|
316
|
+
being updated. Allowed values: ['ADD SET REMOVE']
|
|
306
317
|
:param bool include_result: Flag indicating to include the created or
|
|
307
318
|
updated document result in the response.
|
|
308
319
|
:param dict data: body.
|
{pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/disease_panel_client.py
RENAMED
|
@@ -190,21 +190,14 @@ class DiseasePanel(_ParentRestClient):
|
|
|
190
190
|
Import panels.
|
|
191
191
|
PATH: /{apiVersion}/panels/import
|
|
192
192
|
|
|
193
|
+
:param str include: Fields included in the response, whole JSON path
|
|
194
|
+
must be provided.
|
|
195
|
+
:param str exclude: Fields excluded in the response, whole JSON path
|
|
196
|
+
must be provided.
|
|
193
197
|
:param str study: Study [[organization@]project:]study where study and
|
|
194
198
|
project can be either the ID or UUID.
|
|
195
|
-
:param
|
|
196
|
-
|
|
197
|
-
:param str job_depends_on: Comma separated list of existing job IDs
|
|
198
|
-
the job will depend on.
|
|
199
|
-
:param str job_description: Job description.
|
|
200
|
-
:param str job_tags: Job tags.
|
|
201
|
-
:param str job_scheduled_start_time: Time when the job is scheduled to
|
|
202
|
-
start.
|
|
203
|
-
:param str job_priority: Priority of the job.
|
|
204
|
-
:param bool job_dry_run: Flag indicating that the job will be executed
|
|
205
|
-
in dry-run mode. In this mode, OpenCGA will validate that all
|
|
206
|
-
parameters and prerequisites are correctly set for successful
|
|
207
|
-
execution, but the job will not actually run.
|
|
199
|
+
:param bool include_result: Flag indicating to include the created or
|
|
200
|
+
updated document result in the response.
|
|
208
201
|
:param dict data: Panel parameters.
|
|
209
202
|
"""
|
|
210
203
|
|
|
@@ -420,7 +420,7 @@ class File(_ParentRestClient):
|
|
|
420
420
|
MICROARRAY_EXPRESSION_TWOCHANNELS_GENEPIX DATAMATRIX_EXPRESSION
|
|
421
421
|
IDLIST IDLIST_RANKED ANNOTATION_GENEVSANNOTATION OTHER_NEWICK
|
|
422
422
|
OTHER_BLAST OTHER_INTERACTION OTHER_GENOTYPE OTHER_PLINK OTHER_VCF
|
|
423
|
-
OTHER_PED VCF4 VARIANT ALIGNMENT COVERAGE SEQUENCE PEDIGREE
|
|
423
|
+
OTHER_PED VCF4 CVDB VARIANT ALIGNMENT COVERAGE SEQUENCE PEDIGREE
|
|
424
424
|
REFERENCE_GENOME NONE UNKNOWN']
|
|
425
425
|
:param str checksum: Expected MD5 file checksum.
|
|
426
426
|
:param bool resource: Boolean field indicating whether the file is a
|
|
@@ -436,6 +436,18 @@ class File(_ParentRestClient):
|
|
|
436
436
|
|
|
437
437
|
return self._post(category='files', resource='upload', **options)
|
|
438
438
|
|
|
439
|
+
def update_uri(self, data=None, **options):
|
|
440
|
+
"""
|
|
441
|
+
Update URIs of files that have been manually moved in disk.
|
|
442
|
+
PATH: /{apiVersion}/files/uri/update
|
|
443
|
+
|
|
444
|
+
:param dict data: Parameters to modify. (REQUIRED)
|
|
445
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
446
|
+
project can be either the ID or UUID.
|
|
447
|
+
"""
|
|
448
|
+
|
|
449
|
+
return self._post(category='files', resource='update', subcategory='uri', data=data, **options)
|
|
450
|
+
|
|
439
451
|
def acl(self, files, **options):
|
|
440
452
|
"""
|
|
441
453
|
Return the acl defined for the file or folder. If member is provided,
|
|
@@ -56,6 +56,12 @@ class Job(_ParentRestClient):
|
|
|
56
56
|
search.
|
|
57
57
|
:param str tool_type: Tool type executed by the job [OPERATION,
|
|
58
58
|
ANALYSIS].
|
|
59
|
+
:param str tool.minimum_requirements.queue: Queue where the job is
|
|
60
|
+
expected to be executed.
|
|
61
|
+
:param str tool.minimum_requirements.processor_type: Processor type
|
|
62
|
+
required to run the job. Allowed values: [CPU, GPU, FPGA].
|
|
63
|
+
:param str execution.queue.id: Queue id where the job has been
|
|
64
|
+
submitted to be executed.
|
|
59
65
|
:param str user_id: User that created the job.
|
|
60
66
|
:param str priority: Priority of the job.
|
|
61
67
|
:param str status: Filter by status.
|
|
@@ -118,6 +124,12 @@ class Job(_ParentRestClient):
|
|
|
118
124
|
search.
|
|
119
125
|
:param str tool_type: Tool type executed by the job [OPERATION,
|
|
120
126
|
ANALYSIS].
|
|
127
|
+
:param str tool.minimum_requirements.queue: Queue where the job is
|
|
128
|
+
expected to be executed.
|
|
129
|
+
:param str tool.minimum_requirements.processor_type: Processor type
|
|
130
|
+
required to run the job. Allowed values: [CPU, GPU, FPGA].
|
|
131
|
+
:param str execution.queue.id: Queue id where the job has been
|
|
132
|
+
submitted to be executed.
|
|
121
133
|
:param str tool.external_executor.id: Id of the external executor.
|
|
122
134
|
This field is only applicable for jobs executed by an external
|
|
123
135
|
executor.
|
|
@@ -202,6 +214,12 @@ class Job(_ParentRestClient):
|
|
|
202
214
|
search.
|
|
203
215
|
:param str tool_type: Tool type executed by the job [OPERATION,
|
|
204
216
|
ANALYSIS].
|
|
217
|
+
:param str tool.minimum_requirements.queue: Queue where the job is
|
|
218
|
+
expected to be executed.
|
|
219
|
+
:param str tool.minimum_requirements.processor_type: Processor type
|
|
220
|
+
required to run the job. Allowed values: [CPU, GPU, FPGA].
|
|
221
|
+
:param str execution.queue.id: Queue id where the job has been
|
|
222
|
+
submitted to be executed.
|
|
205
223
|
:param str tool.external_executor.id: Id of the external executor.
|
|
206
224
|
This field is only applicable for jobs executed by an external
|
|
207
225
|
executor.
|
|
@@ -265,7 +283,8 @@ class Job(_ParentRestClient):
|
|
|
265
283
|
Execute an analysis from a custom binary.
|
|
266
284
|
PATH: /{apiVersion}/jobs/tool/run
|
|
267
285
|
|
|
268
|
-
:param dict data:
|
|
286
|
+
:param dict data: Container image to be executed and its requirements.
|
|
287
|
+
(REQUIRED)
|
|
269
288
|
:param str study: Study [[organization@]project:]study where study and
|
|
270
289
|
project can be either the ID or UUID.
|
|
271
290
|
:param str job_id: Job ID. It must be a unique string within the
|
|
@@ -55,15 +55,16 @@ class Meta(_ParentRestClient):
|
|
|
55
55
|
|
|
56
56
|
return self._get(category='meta', resource='model', **options)
|
|
57
57
|
|
|
58
|
-
def openapi(self, **options):
|
|
58
|
+
def openapi(self, url, **options):
|
|
59
59
|
"""
|
|
60
60
|
Opencga openapi json.
|
|
61
61
|
PATH: /{apiVersion}/meta/openapi
|
|
62
62
|
|
|
63
|
-
:param str
|
|
64
|
-
:param str
|
|
63
|
+
:param str url: Opencga host with environment. (REQUIRED)
|
|
64
|
+
:param str study: Opencga study to be default in queries.
|
|
65
65
|
"""
|
|
66
66
|
|
|
67
|
+
options['url'] = url
|
|
67
68
|
return self._get(category='meta', resource='openapi', **options)
|
|
68
69
|
|
|
69
70
|
def ping(self, **options):
|
|
@@ -139,7 +139,8 @@ class Study(_ParentRestClient):
|
|
|
139
139
|
:param str resource: Resource involved. Allowed values: ['AUDIT NOTE
|
|
140
140
|
ORGANIZATION USER PROJECT STUDY FILE SAMPLE JOB INDIVIDUAL COHORT
|
|
141
141
|
DISEASE_PANEL FAMILY CLINICAL_ANALYSIS INTERPRETATION VARIANT
|
|
142
|
-
ALIGNMENT CLINICAL EXPRESSION RGA FUNCTIONAL
|
|
142
|
+
ALIGNMENT CLINICAL EXPRESSION RGA FUNCTIONAL EXTERNAL_TOOL
|
|
143
|
+
RESOURCE']
|
|
143
144
|
:param str resource_id: Resource ID.
|
|
144
145
|
:param str resource_uuid: resource UUID.
|
|
145
146
|
:param str status: Filter by status. Allowed values: ['SUCCESS ERROR']
|
|
@@ -166,6 +167,19 @@ class Study(_ParentRestClient):
|
|
|
166
167
|
|
|
167
168
|
return self._get(category='studies', resource='groups', query_id=study, **options)
|
|
168
169
|
|
|
170
|
+
def sync_groups(self, study, data=None, **options):
|
|
171
|
+
"""
|
|
172
|
+
Associate a remote group from an authentication origin with a local
|
|
173
|
+
group in a study.
|
|
174
|
+
PATH: /{apiVersion}/studies/{study}/groups/sync
|
|
175
|
+
|
|
176
|
+
:param dict data: JSON containing the parameters. (REQUIRED)
|
|
177
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
178
|
+
project can be either the ID or UUID. (REQUIRED)
|
|
179
|
+
"""
|
|
180
|
+
|
|
181
|
+
return self._post(category='studies', resource='sync', query_id=study, subcategory='groups', data=data, **options)
|
|
182
|
+
|
|
169
183
|
def update_groups(self, study, data=None, **options):
|
|
170
184
|
"""
|
|
171
185
|
Add or remove a group.
|
|
@@ -386,6 +400,21 @@ class Study(_ParentRestClient):
|
|
|
386
400
|
|
|
387
401
|
return self._post(category='studies', resource='update', query_id=study, data=data, **options)
|
|
388
402
|
|
|
403
|
+
def sync_users(self, study, authentication_origin_id, **options):
|
|
404
|
+
"""
|
|
405
|
+
Synchronize all users from the remote groups of a given authentication
|
|
406
|
+
origin.
|
|
407
|
+
PATH: /{apiVersion}/studies/{study}/users/sync
|
|
408
|
+
|
|
409
|
+
:param str authentication_origin_id: Authentication origin ID.
|
|
410
|
+
(REQUIRED)
|
|
411
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
412
|
+
project can be either the ID or UUID. (REQUIRED)
|
|
413
|
+
"""
|
|
414
|
+
|
|
415
|
+
options['authenticationOriginId'] = authentication_origin_id
|
|
416
|
+
return self._post(category='studies', resource='sync', query_id=study, subcategory='users', **options)
|
|
417
|
+
|
|
389
418
|
def variable_sets(self, study, **options):
|
|
390
419
|
"""
|
|
391
420
|
Fetch variableSets from a study.
|
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
"""
|
|
2
|
+
WARNING: AUTOGENERATED CODE
|
|
3
|
+
|
|
4
|
+
This code was generated by a tool.
|
|
5
|
+
|
|
6
|
+
Manual changes to this file may cause unexpected behavior in your application.
|
|
7
|
+
Manual changes to this file will be overwritten if the code is regenerated.
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from pyxetabase.rest_clients._parent_rest_clients import _ParentRestClient
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class UserTool(_ParentRestClient):
|
|
14
|
+
"""
|
|
15
|
+
This class contains methods for the 'User Tools' webservices
|
|
16
|
+
PATH: /{apiVersion}/tools
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
def __init__(self, configuration, token=None, login_handler=None, *args, **kwargs):
|
|
20
|
+
super(UserTool, self).__init__(configuration, token, login_handler, *args, **kwargs)
|
|
21
|
+
|
|
22
|
+
def update_acl(self, members, action, data=None, **options):
|
|
23
|
+
"""
|
|
24
|
+
Update the set of user tool permissions granted for the member.
|
|
25
|
+
PATH: /{apiVersion}/tools/acl/{members}/update
|
|
26
|
+
|
|
27
|
+
:param dict data: JSON containing the parameters to update the
|
|
28
|
+
permissions. (REQUIRED)
|
|
29
|
+
:param str action: Action to be performed [ADD, SET, REMOVE or RESET].
|
|
30
|
+
Allowed values: ['SET ADD REMOVE RESET'] (REQUIRED)
|
|
31
|
+
:param str members: Comma separated list of user or group ids.
|
|
32
|
+
(REQUIRED)
|
|
33
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
34
|
+
project can be either the ID or UUID.
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
options['action'] = action
|
|
38
|
+
return self._post(category='tools', resource='update', subcategory='acl', second_query_id=members, data=data, **options)
|
|
39
|
+
|
|
40
|
+
def aggregation_stats(self, **options):
|
|
41
|
+
"""
|
|
42
|
+
Fetch user tool stats.
|
|
43
|
+
PATH: /{apiVersion}/tools/aggregationStats
|
|
44
|
+
|
|
45
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
46
|
+
project can be either the ID or UUID.
|
|
47
|
+
:param str id: Comma separated list of external tool IDs up to a
|
|
48
|
+
maximum of 100. Also admits basic regular expressions using the
|
|
49
|
+
operator '~', i.e. '~{perl-regex}' e.g. '~value' for case
|
|
50
|
+
sensitive, '~/value/i' for case insensitive search.
|
|
51
|
+
:param str name: Comma separated list of external tool names up to a
|
|
52
|
+
maximum of 100. Also admits basic regular expressions using the
|
|
53
|
+
operator '~', i.e. '~{perl-regex}' e.g. '~value' for case
|
|
54
|
+
sensitive, '~/value/i' for case insensitive search.
|
|
55
|
+
:param str uuid: Comma separated list of external tool UUIDs up to a
|
|
56
|
+
maximum of 100.
|
|
57
|
+
:param str tags: Comma separated list of tags.
|
|
58
|
+
:param bool draft: Boolean field indicating whether the workflow is a
|
|
59
|
+
draft or not.
|
|
60
|
+
:param str internal.registration_user_id: UserId that created the
|
|
61
|
+
workflow.
|
|
62
|
+
:param str type: External tool type. Allowed types: [CUSTOM_TOOL,
|
|
63
|
+
VARIANT_WALKER or WORKFLOW].
|
|
64
|
+
:param str scope: External tool scope. Allowed types:
|
|
65
|
+
[CLINICAL_INTERPRETATION, SECONDARY_ANALYSIS, RESEARCH or OTHER].
|
|
66
|
+
:param str workflow_repository_name: Workflow repository name.
|
|
67
|
+
:param str container_name: Container name.
|
|
68
|
+
:param str creation_date: Creation date. Format: yyyyMMddHHmmss.
|
|
69
|
+
Examples: >2018, 2017-2018, <201805.
|
|
70
|
+
:param str modification_date: Modification date. Format:
|
|
71
|
+
yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
|
|
72
|
+
:param str acl: Filter entries for which a user has the provided
|
|
73
|
+
permissions. Format: acl={user}:{permissions}. Example:
|
|
74
|
+
acl=john:WRITE,WRITE_ANNOTATIONS will return all entries for which
|
|
75
|
+
user john has both WRITE and WRITE_ANNOTATIONS permissions. Only
|
|
76
|
+
study owners or administrators can query by this field. .
|
|
77
|
+
:param str release: Release when it was created.
|
|
78
|
+
:param int snapshot: Snapshot value (Latest version of the entry in
|
|
79
|
+
the specified release).
|
|
80
|
+
:param bool deleted: Boolean to retrieve deleted entries.
|
|
81
|
+
:param str field: Field to apply aggregation statistics to (or a list
|
|
82
|
+
of fields separated by semicolons), e.g.:
|
|
83
|
+
studies;type;numSamples[0..10]:1;format:sum(size).
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
return self._get(category='tools', resource='aggregationStats', **options)
|
|
87
|
+
|
|
88
|
+
def run_custom_builder(self, data=None, **options):
|
|
89
|
+
"""
|
|
90
|
+
Execute an analysis from a custom binary.
|
|
91
|
+
PATH: /{apiVersion}/tools/custom/builder/run
|
|
92
|
+
|
|
93
|
+
:param dict data: body. (REQUIRED)
|
|
94
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
95
|
+
project can be either the ID or UUID.
|
|
96
|
+
:param str job_id: Job ID. It must be a unique string within the
|
|
97
|
+
study. An ID will be autogenerated automatically if not provided.
|
|
98
|
+
:param str job_description: Job description.
|
|
99
|
+
:param str job_depends_on: Comma separated list of existing job IDs
|
|
100
|
+
the job will depend on.
|
|
101
|
+
:param str job_tags: Job tags.
|
|
102
|
+
:param str job_scheduled_start_time: Time when the job is scheduled to
|
|
103
|
+
start.
|
|
104
|
+
:param str job_priority: Priority of the job.
|
|
105
|
+
:param bool job_dry_run: Flag indicating that the job will be executed
|
|
106
|
+
in dry-run mode. In this mode, OpenCGA will validate that all
|
|
107
|
+
parameters and prerequisites are correctly set for successful
|
|
108
|
+
execution, but the job will not actually run.
|
|
109
|
+
"""
|
|
110
|
+
|
|
111
|
+
return self._post(category='tools', resource='run', subcategory='custom/builder', data=data, **options)
|
|
112
|
+
|
|
113
|
+
def create_custom(self, data=None, **options):
|
|
114
|
+
"""
|
|
115
|
+
Register a new user tool of type CUSTOM_TOOL.
|
|
116
|
+
PATH: /{apiVersion}/tools/custom/create
|
|
117
|
+
|
|
118
|
+
:param dict data: JSON containing workflow information. (REQUIRED)
|
|
119
|
+
:param str include: Fields included in the response, whole JSON path
|
|
120
|
+
must be provided.
|
|
121
|
+
:param str exclude: Fields excluded in the response, whole JSON path
|
|
122
|
+
must be provided.
|
|
123
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
124
|
+
project can be either the ID or UUID.
|
|
125
|
+
:param bool include_result: Flag indicating to include the created or
|
|
126
|
+
updated document result in the response.
|
|
127
|
+
"""
|
|
128
|
+
|
|
129
|
+
return self._post(category='tools', resource='create', subcategory='custom', data=data, **options)
|
|
130
|
+
|
|
131
|
+
def run_custom_docker(self, data=None, **options):
|
|
132
|
+
"""
|
|
133
|
+
Execute an analysis from a custom binary.
|
|
134
|
+
PATH: /{apiVersion}/tools/custom/run
|
|
135
|
+
|
|
136
|
+
:param dict data: Custom tool run parameters. (REQUIRED)
|
|
137
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
138
|
+
project can be either the ID or UUID.
|
|
139
|
+
:param str job_id: Job ID. It must be a unique string within the
|
|
140
|
+
study. An ID will be autogenerated automatically if not provided.
|
|
141
|
+
:param str job_description: Job description.
|
|
142
|
+
:param str job_depends_on: Comma separated list of existing job IDs
|
|
143
|
+
the job will depend on.
|
|
144
|
+
:param str job_tags: Job tags.
|
|
145
|
+
:param str job_scheduled_start_time: Time when the job is scheduled to
|
|
146
|
+
start.
|
|
147
|
+
:param str job_priority: Priority of the job.
|
|
148
|
+
:param bool job_dry_run: Flag indicating that the job will be executed
|
|
149
|
+
in dry-run mode. In this mode, OpenCGA will validate that all
|
|
150
|
+
parameters and prerequisites are correctly set for successful
|
|
151
|
+
execution, but the job will not actually run.
|
|
152
|
+
"""
|
|
153
|
+
|
|
154
|
+
return self._post(category='tools', resource='run', subcategory='custom', data=data, **options)
|
|
155
|
+
|
|
156
|
+
def update_custom(self, tool_id, data=None, **options):
|
|
157
|
+
"""
|
|
158
|
+
Update some custom user tool attributes.
|
|
159
|
+
PATH: /{apiVersion}/tools/custom/{toolId}/update
|
|
160
|
+
|
|
161
|
+
:param str tool_id: Comma separated list of external tool IDs up to a
|
|
162
|
+
maximum of 100. Also admits basic regular expressions using the
|
|
163
|
+
operator '~', i.e. '~{perl-regex}' e.g. '~value' for case
|
|
164
|
+
sensitive, '~/value/i' for case insensitive search. (REQUIRED)
|
|
165
|
+
:param str include: Fields included in the response, whole JSON path
|
|
166
|
+
must be provided.
|
|
167
|
+
:param str exclude: Fields excluded in the response, whole JSON path
|
|
168
|
+
must be provided.
|
|
169
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
170
|
+
project can be either the ID or UUID.
|
|
171
|
+
:param bool include_result: Flag indicating to include the created or
|
|
172
|
+
updated document result in the response.
|
|
173
|
+
:param dict data: body.
|
|
174
|
+
"""
|
|
175
|
+
|
|
176
|
+
return self._post(category='tools', resource='update', subcategory='custom', second_query_id=tool_id, data=data, **options)
|
|
177
|
+
|
|
178
|
+
def distinct(self, field, **options):
|
|
179
|
+
"""
|
|
180
|
+
User tool distinct method.
|
|
181
|
+
PATH: /{apiVersion}/tools/distinct
|
|
182
|
+
|
|
183
|
+
:param str field: Comma separated list of fields for which to obtain
|
|
184
|
+
the distinct values. (REQUIRED)
|
|
185
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
186
|
+
project can be either the ID or UUID.
|
|
187
|
+
:param str id: Comma separated list of external tool IDs up to a
|
|
188
|
+
maximum of 100. Also admits basic regular expressions using the
|
|
189
|
+
operator '~', i.e. '~{perl-regex}' e.g. '~value' for case
|
|
190
|
+
sensitive, '~/value/i' for case insensitive search.
|
|
191
|
+
:param str name: Comma separated list of external tool names up to a
|
|
192
|
+
maximum of 100. Also admits basic regular expressions using the
|
|
193
|
+
operator '~', i.e. '~{perl-regex}' e.g. '~value' for case
|
|
194
|
+
sensitive, '~/value/i' for case insensitive search.
|
|
195
|
+
:param str uuid: Comma separated list of external tool UUIDs up to a
|
|
196
|
+
maximum of 100.
|
|
197
|
+
:param str tags: Comma separated list of tags.
|
|
198
|
+
:param bool draft: Boolean field indicating whether the workflow is a
|
|
199
|
+
draft or not.
|
|
200
|
+
:param str internal.registration_user_id: UserId that created the
|
|
201
|
+
workflow.
|
|
202
|
+
:param str type: External tool type. Allowed types: [CUSTOM_TOOL,
|
|
203
|
+
VARIANT_WALKER or WORKFLOW].
|
|
204
|
+
:param str scope: External tool scope. Allowed types:
|
|
205
|
+
[CLINICAL_INTERPRETATION, SECONDARY_ANALYSIS, RESEARCH or OTHER].
|
|
206
|
+
:param str workflow_repository_name: Workflow repository name.
|
|
207
|
+
:param str container_name: Container name.
|
|
208
|
+
:param str creation_date: Creation date. Format: yyyyMMddHHmmss.
|
|
209
|
+
Examples: >2018, 2017-2018, <201805.
|
|
210
|
+
:param str modification_date: Modification date. Format:
|
|
211
|
+
yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
|
|
212
|
+
:param str acl: Filter entries for which a user has the provided
|
|
213
|
+
permissions. Format: acl={user}:{permissions}. Example:
|
|
214
|
+
acl=john:WRITE,WRITE_ANNOTATIONS will return all entries for which
|
|
215
|
+
user john has both WRITE and WRITE_ANNOTATIONS permissions. Only
|
|
216
|
+
study owners or administrators can query by this field. .
|
|
217
|
+
:param str release: Release when it was created.
|
|
218
|
+
:param int snapshot: Snapshot value (Latest version of the entry in
|
|
219
|
+
the specified release).
|
|
220
|
+
:param bool deleted: Boolean to retrieve deleted entries.
|
|
221
|
+
"""
|
|
222
|
+
|
|
223
|
+
options['field'] = field
|
|
224
|
+
return self._get(category='tools', resource='distinct', **options)
|
|
225
|
+
|
|
226
|
+
def search(self, **options):
|
|
227
|
+
"""
|
|
228
|
+
User tool search method.
|
|
229
|
+
PATH: /{apiVersion}/tools/search
|
|
230
|
+
|
|
231
|
+
:param str include: Fields included in the response, whole JSON path
|
|
232
|
+
must be provided.
|
|
233
|
+
:param str exclude: Fields excluded in the response, whole JSON path
|
|
234
|
+
must be provided.
|
|
235
|
+
:param int limit: Number of results to be returned.
|
|
236
|
+
:param int skip: Number of results to skip.
|
|
237
|
+
:param bool count: Get the total number of results matching the query.
|
|
238
|
+
Deactivated by default.
|
|
239
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
240
|
+
project can be either the ID or UUID.
|
|
241
|
+
:param str id: Comma separated list of external tool IDs up to a
|
|
242
|
+
maximum of 100. Also admits basic regular expressions using the
|
|
243
|
+
operator '~', i.e. '~{perl-regex}' e.g. '~value' for case
|
|
244
|
+
sensitive, '~/value/i' for case insensitive search.
|
|
245
|
+
:param str name: Comma separated list of external tool names up to a
|
|
246
|
+
maximum of 100. Also admits basic regular expressions using the
|
|
247
|
+
operator '~', i.e. '~{perl-regex}' e.g. '~value' for case
|
|
248
|
+
sensitive, '~/value/i' for case insensitive search.
|
|
249
|
+
:param str uuid: Comma separated list of external tool UUIDs up to a
|
|
250
|
+
maximum of 100.
|
|
251
|
+
:param str tags: Comma separated list of tags.
|
|
252
|
+
:param bool draft: Boolean field indicating whether the workflow is a
|
|
253
|
+
draft or not.
|
|
254
|
+
:param str internal.registration_user_id: UserId that created the
|
|
255
|
+
workflow.
|
|
256
|
+
:param str type: External tool type. Allowed types: [CUSTOM_TOOL,
|
|
257
|
+
VARIANT_WALKER or WORKFLOW].
|
|
258
|
+
:param str scope: External tool scope. Allowed types:
|
|
259
|
+
[CLINICAL_INTERPRETATION, SECONDARY_ANALYSIS, RESEARCH or OTHER].
|
|
260
|
+
:param str workflow_repository_name: Workflow repository name.
|
|
261
|
+
:param str container_name: Container name.
|
|
262
|
+
:param str creation_date: Creation date. Format: yyyyMMddHHmmss.
|
|
263
|
+
Examples: >2018, 2017-2018, <201805.
|
|
264
|
+
:param str modification_date: Modification date. Format:
|
|
265
|
+
yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805.
|
|
266
|
+
:param str acl: Filter entries for which a user has the provided
|
|
267
|
+
permissions. Format: acl={user}:{permissions}. Example:
|
|
268
|
+
acl=john:WRITE,WRITE_ANNOTATIONS will return all entries for which
|
|
269
|
+
user john has both WRITE and WRITE_ANNOTATIONS permissions. Only
|
|
270
|
+
study owners or administrators can query by this field. .
|
|
271
|
+
:param str release: Release when it was created.
|
|
272
|
+
:param int snapshot: Snapshot value (Latest version of the entry in
|
|
273
|
+
the specified release).
|
|
274
|
+
:param bool deleted: Boolean to retrieve deleted entries.
|
|
275
|
+
"""
|
|
276
|
+
|
|
277
|
+
return self._get(category='tools', resource='search', **options)
|
|
278
|
+
|
|
279
|
+
def create_walker(self, data=None, **options):
|
|
280
|
+
"""
|
|
281
|
+
Register a new user tool of type VARIANT_WALKER.
|
|
282
|
+
PATH: /{apiVersion}/tools/walker/create
|
|
283
|
+
|
|
284
|
+
:param dict data: JSON containing workflow information. (REQUIRED)
|
|
285
|
+
:param str include: Fields included in the response, whole JSON path
|
|
286
|
+
must be provided.
|
|
287
|
+
:param str exclude: Fields excluded in the response, whole JSON path
|
|
288
|
+
must be provided.
|
|
289
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
290
|
+
project can be either the ID or UUID.
|
|
291
|
+
:param bool include_result: Flag indicating to include the created or
|
|
292
|
+
updated document result in the response.
|
|
293
|
+
"""
|
|
294
|
+
|
|
295
|
+
return self._post(category='tools', resource='create', subcategory='walker', data=data, **options)
|
|
296
|
+
|
|
297
|
+
def run_walker(self, data=None, **options):
|
|
298
|
+
"""
|
|
299
|
+
Execute an analysis from a custom binary.
|
|
300
|
+
PATH: /{apiVersion}/tools/walker/run
|
|
301
|
+
|
|
302
|
+
:param dict data: Variant walker params. (REQUIRED)
|
|
303
|
+
:param str project: Project [organization@]project where project can
|
|
304
|
+
be either the ID or the alias.
|
|
305
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
306
|
+
project can be either the ID or UUID.
|
|
307
|
+
:param str job_id: Job ID. It must be a unique string within the
|
|
308
|
+
study. An ID will be autogenerated automatically if not provided.
|
|
309
|
+
:param str job_description: Job description.
|
|
310
|
+
:param str job_depends_on: Comma separated list of existing job IDs
|
|
311
|
+
the job will depend on.
|
|
312
|
+
:param str job_tags: Job tags.
|
|
313
|
+
:param str job_scheduled_start_time: Time when the job is scheduled to
|
|
314
|
+
start.
|
|
315
|
+
:param str job_priority: Priority of the job.
|
|
316
|
+
:param bool job_dry_run: Flag indicating that the job will be executed
|
|
317
|
+
in dry-run mode. In this mode, OpenCGA will validate that all
|
|
318
|
+
parameters and prerequisites are correctly set for successful
|
|
319
|
+
execution, but the job will not actually run.
|
|
320
|
+
"""
|
|
321
|
+
|
|
322
|
+
return self._post(category='tools', resource='run', subcategory='walker', data=data, **options)
|
|
323
|
+
|
|
324
|
+
def update_walker(self, tool_id, data=None, **options):
|
|
325
|
+
"""
|
|
326
|
+
Update some variant walker tool attributes.
|
|
327
|
+
PATH: /{apiVersion}/tools/walker/{toolId}/update
|
|
328
|
+
|
|
329
|
+
:param str tool_id: Comma separated list of external tool IDs up to a
|
|
330
|
+
maximum of 100. Also admits basic regular expressions using the
|
|
331
|
+
operator '~', i.e. '~{perl-regex}' e.g. '~value' for case
|
|
332
|
+
sensitive, '~/value/i' for case insensitive search. (REQUIRED)
|
|
333
|
+
:param str include: Fields included in the response, whole JSON path
|
|
334
|
+
must be provided.
|
|
335
|
+
:param str exclude: Fields excluded in the response, whole JSON path
|
|
336
|
+
must be provided.
|
|
337
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
338
|
+
project can be either the ID or UUID.
|
|
339
|
+
:param bool include_result: Flag indicating to include the created or
|
|
340
|
+
updated document result in the response.
|
|
341
|
+
:param dict data: body.
|
|
342
|
+
"""
|
|
343
|
+
|
|
344
|
+
return self._post(category='tools', resource='update', subcategory='walker', second_query_id=tool_id, data=data, **options)
|
|
345
|
+
|
|
346
|
+
def create_workflow(self, data=None, **options):
|
|
347
|
+
"""
|
|
348
|
+
Register a new user tool of type WORKFLOW.
|
|
349
|
+
PATH: /{apiVersion}/tools/workflow/create
|
|
350
|
+
|
|
351
|
+
:param dict data: JSON containing workflow information. (REQUIRED)
|
|
352
|
+
:param str include: Fields included in the response, whole JSON path
|
|
353
|
+
must be provided.
|
|
354
|
+
:param str exclude: Fields excluded in the response, whole JSON path
|
|
355
|
+
must be provided.
|
|
356
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
357
|
+
project can be either the ID or UUID.
|
|
358
|
+
:param bool include_result: Flag indicating to include the created or
|
|
359
|
+
updated document result in the response.
|
|
360
|
+
"""
|
|
361
|
+
|
|
362
|
+
return self._post(category='tools', resource='create', subcategory='workflow', data=data, **options)
|
|
363
|
+
|
|
364
|
+
def import_workflow(self, data=None, **options):
|
|
365
|
+
"""
|
|
366
|
+
Import a user tool of type WORKFLOW.
|
|
367
|
+
PATH: /{apiVersion}/tools/workflow/import
|
|
368
|
+
|
|
369
|
+
:param dict data: Repository parameters. (REQUIRED)
|
|
370
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
371
|
+
project can be either the ID or UUID.
|
|
372
|
+
"""
|
|
373
|
+
|
|
374
|
+
return self._post(category='tools', resource='import', subcategory='workflow', data=data, **options)
|
|
375
|
+
|
|
376
|
+
def run_workflow(self, data=None, **options):
|
|
377
|
+
"""
|
|
378
|
+
Run a user tool of type WORKFLOW.
|
|
379
|
+
PATH: /{apiVersion}/tools/workflow/run
|
|
380
|
+
|
|
381
|
+
:param dict data: Workflow tool run parameters. (REQUIRED)
|
|
382
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
383
|
+
project can be either the ID or UUID.
|
|
384
|
+
:param str job_id: Job ID. It must be a unique string within the
|
|
385
|
+
study. An ID will be autogenerated automatically if not provided.
|
|
386
|
+
:param str job_description: Job description.
|
|
387
|
+
:param str job_depends_on: Comma separated list of existing job IDs
|
|
388
|
+
the job will depend on.
|
|
389
|
+
:param str job_tags: Job tags.
|
|
390
|
+
:param str job_scheduled_start_time: Time when the job is scheduled to
|
|
391
|
+
start.
|
|
392
|
+
:param str job_priority: Priority of the job.
|
|
393
|
+
:param bool job_dry_run: Flag indicating that the job will be executed
|
|
394
|
+
in dry-run mode. In this mode, OpenCGA will validate that all
|
|
395
|
+
parameters and prerequisites are correctly set for successful
|
|
396
|
+
execution, but the job will not actually run.
|
|
397
|
+
"""
|
|
398
|
+
|
|
399
|
+
return self._post(category='tools', resource='run', subcategory='workflow', data=data, **options)
|
|
400
|
+
|
|
401
|
+
def update_workflow(self, tool_id, data=None, **options):
|
|
402
|
+
"""
|
|
403
|
+
Update some user tool attributes.
|
|
404
|
+
PATH: /{apiVersion}/tools/workflow/{toolId}/update
|
|
405
|
+
|
|
406
|
+
:param str tool_id: Comma separated list of external tool IDs up to a
|
|
407
|
+
maximum of 100. Also admits basic regular expressions using the
|
|
408
|
+
operator '~', i.e. '~{perl-regex}' e.g. '~value' for case
|
|
409
|
+
sensitive, '~/value/i' for case insensitive search. (REQUIRED)
|
|
410
|
+
:param str include: Fields included in the response, whole JSON path
|
|
411
|
+
must be provided.
|
|
412
|
+
:param str exclude: Fields excluded in the response, whole JSON path
|
|
413
|
+
must be provided.
|
|
414
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
415
|
+
project can be either the ID or UUID.
|
|
416
|
+
:param bool include_result: Flag indicating to include the created or
|
|
417
|
+
updated document result in the response.
|
|
418
|
+
:param dict data: body.
|
|
419
|
+
"""
|
|
420
|
+
|
|
421
|
+
return self._post(category='tools', resource='update', subcategory='workflow', second_query_id=tool_id, data=data, **options)
|
|
422
|
+
|
|
423
|
+
def acl(self, tools, **options):
|
|
424
|
+
"""
|
|
425
|
+
Returns the acl of the user tools. If member is provided, it will only
|
|
426
|
+
return the acl for the member.
|
|
427
|
+
PATH: /{apiVersion}/tools/{tools}/acl
|
|
428
|
+
|
|
429
|
+
:param str tools: Comma separated of external tool ids. (REQUIRED)
|
|
430
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
431
|
+
project can be either the ID or UUID.
|
|
432
|
+
:param str member: User or group id.
|
|
433
|
+
:param bool silent: Boolean to retrieve all possible entries that are
|
|
434
|
+
queried for, false to raise an exception whenever one of the
|
|
435
|
+
entries looked for cannot be shown for whichever reason.
|
|
436
|
+
"""
|
|
437
|
+
|
|
438
|
+
return self._get(category='tools', resource='acl', query_id=tools, **options)
|
|
439
|
+
|
|
440
|
+
def delete(self, tools, **options):
|
|
441
|
+
"""
|
|
442
|
+
Delete user tools.
|
|
443
|
+
PATH: /{apiVersion}/tools/{tools}/delete
|
|
444
|
+
|
|
445
|
+
:param str tools: Comma separated of external tool ids. (REQUIRED)
|
|
446
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
447
|
+
project can be either the ID or UUID.
|
|
448
|
+
"""
|
|
449
|
+
|
|
450
|
+
return self._delete(category='tools', resource='delete', query_id=tools, **options)
|
|
451
|
+
|
|
452
|
+
def info(self, tools, **options):
|
|
453
|
+
"""
|
|
454
|
+
Get user tool information.
|
|
455
|
+
PATH: /{apiVersion}/tools/{tools}/info
|
|
456
|
+
|
|
457
|
+
:param str tools: Comma separated of external tool ids. (REQUIRED)
|
|
458
|
+
:param str include: Fields included in the response, whole JSON path
|
|
459
|
+
must be provided.
|
|
460
|
+
:param str exclude: Fields excluded in the response, whole JSON path
|
|
461
|
+
must be provided.
|
|
462
|
+
:param str study: Study [[organization@]project:]study where study and
|
|
463
|
+
project can be either the ID or UUID.
|
|
464
|
+
:param str version: Comma separated list of external tool versions.
|
|
465
|
+
'all' to get all the external tool versions. Not supported if
|
|
466
|
+
multiple external tool ids are provided.
|
|
467
|
+
:param bool deleted: Boolean to retrieve deleted entries.
|
|
468
|
+
"""
|
|
469
|
+
|
|
470
|
+
return self._get(category='tools', resource='info', query_id=tools, **options)
|
|
471
|
+
|
{pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/variant_operation_client.py
RENAMED
|
@@ -86,6 +86,32 @@ class VariantOperation(_ParentRestClient):
|
|
|
86
86
|
|
|
87
87
|
return self._delete(category='operation', resource='delete', subcategory='variant/annotation', **options)
|
|
88
88
|
|
|
89
|
+
def variant_annotation_extension_configure(self, data=None, **options):
|
|
90
|
+
"""
|
|
91
|
+
Install a variant annotation extension and configure the project to
|
|
92
|
+
use it.
|
|
93
|
+
PATH: /{apiVersion}/operation/variant/annotation/extension/configure
|
|
94
|
+
|
|
95
|
+
:param str job_id: Job ID. It must be a unique string within the
|
|
96
|
+
study. An ID will be autogenerated automatically if not provided.
|
|
97
|
+
:param str job_description: Job description.
|
|
98
|
+
:param str job_depends_on: Comma separated list of existing job IDs
|
|
99
|
+
the job will depend on.
|
|
100
|
+
:param str job_tags: Job tags.
|
|
101
|
+
:param str job_scheduled_start_time: Time when the job is scheduled to
|
|
102
|
+
start.
|
|
103
|
+
:param str job_priority: Priority of the job.
|
|
104
|
+
:param bool job_dry_run: Flag indicating that the job will be executed
|
|
105
|
+
in dry-run mode. In this mode, OpenCGA will validate that all
|
|
106
|
+
parameters and prerequisites are correctly set for successful
|
|
107
|
+
execution, but the job will not actually run.
|
|
108
|
+
:param str project: project.
|
|
109
|
+
:param dict data: Parameters to configure a variant annotation
|
|
110
|
+
extension.
|
|
111
|
+
"""
|
|
112
|
+
|
|
113
|
+
return self._post(category='operation', resource='configure', subcategory='variant/annotation/extension', data=data, **options)
|
|
114
|
+
|
|
89
115
|
def index_variant_annotation(self, data=None, **options):
|
|
90
116
|
"""
|
|
91
117
|
Create and load variant annotations into the database.
|
|
@@ -601,33 +627,6 @@ class VariantOperation(_ParentRestClient):
|
|
|
601
627
|
|
|
602
628
|
return self._post(category='operation', resource='secondaryIndex', subcategory='variant', data=data, **options)
|
|
603
629
|
|
|
604
|
-
def delete_variant_secondary_index(self, **options):
|
|
605
|
-
"""
|
|
606
|
-
Remove a secondary index from the search engine for a specific set of
|
|
607
|
-
samples.
|
|
608
|
-
PATH: /{apiVersion}/operation/variant/secondaryIndex/delete
|
|
609
|
-
|
|
610
|
-
:param str job_id: Job ID. It must be a unique string within the
|
|
611
|
-
study. An ID will be autogenerated automatically if not provided.
|
|
612
|
-
:param str job_description: Job description.
|
|
613
|
-
:param str job_depends_on: Comma separated list of existing job IDs
|
|
614
|
-
the job will depend on.
|
|
615
|
-
:param str job_tags: Job tags.
|
|
616
|
-
:param str job_scheduled_start_time: Time when the job is scheduled to
|
|
617
|
-
start.
|
|
618
|
-
:param str job_priority: Priority of the job.
|
|
619
|
-
:param bool job_dry_run: Flag indicating that the job will be executed
|
|
620
|
-
in dry-run mode. In this mode, OpenCGA will validate that all
|
|
621
|
-
parameters and prerequisites are correctly set for successful
|
|
622
|
-
execution, but the job will not actually run.
|
|
623
|
-
:param str study: Study [[organization@]project:]study where study and
|
|
624
|
-
project can be either the ID or UUID.
|
|
625
|
-
:param str samples: Samples to remove. Needs to provide all the
|
|
626
|
-
samples in the secondary index.
|
|
627
|
-
"""
|
|
628
|
-
|
|
629
|
-
return self._delete(category='operation', resource='delete', subcategory='variant/secondaryIndex', **options)
|
|
630
|
-
|
|
631
630
|
def setup_variant(self, data=None, **options):
|
|
632
631
|
"""
|
|
633
632
|
Execute Variant Setup to allow using the variant engine. This setup is
|
|
@@ -118,7 +118,7 @@ class Workflow(_ParentRestClient):
|
|
|
118
118
|
Execute a workflow analysis.
|
|
119
119
|
PATH: /{apiVersion}/workflows/run
|
|
120
120
|
|
|
121
|
-
:param dict data:
|
|
121
|
+
:param dict data: Workflow tool run parameters. (REQUIRED)
|
|
122
122
|
:param str study: Study [[organization@]project:]study where study and
|
|
123
123
|
project can be either the ID or UUID.
|
|
124
124
|
:param str job_id: Job ID. It must be a unique string within the
|
|
@@ -33,6 +33,7 @@ pyxetabase/rest_clients/project_client.py
|
|
|
33
33
|
pyxetabase/rest_clients/sample_client.py
|
|
34
34
|
pyxetabase/rest_clients/study_client.py
|
|
35
35
|
pyxetabase/rest_clients/user_client.py
|
|
36
|
+
pyxetabase/rest_clients/user_tool_client.py
|
|
36
37
|
pyxetabase/rest_clients/variant_client.py
|
|
37
38
|
pyxetabase/rest_clients/variant_operation_client.py
|
|
38
39
|
pyxetabase/rest_clients/workflow_client.py
|
|
@@ -14,7 +14,7 @@ with open(path.join(here, 'README.rst'), encoding='utf-8') as f:
|
|
|
14
14
|
|
|
15
15
|
setup(
|
|
16
16
|
name='pyxetabase',
|
|
17
|
-
version='
|
|
17
|
+
version='4.0.0.dev81',
|
|
18
18
|
description='A REST client for OpenCGA enterprise REST web services',
|
|
19
19
|
long_description=long_description,
|
|
20
20
|
long_description_content_type='text/x-rst',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/alignment_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/federation_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/individual_client.py
RENAMED
|
File without changes
|
{pyxetabase-3.1.0.dev2 → pyxetabase-4.0.0.dev81}/pyxetabase/rest_clients/organization_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|