rcsb.workflow 0.41__tar.gz → 0.43__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.
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/HISTORY.txt +4 -0
- {rcsb.workflow-0.41/rcsb.workflow.egg-info → rcsb_workflow-0.43}/PKG-INFO +11 -2
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb/workflow/chem/__init__.py +1 -1
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb/workflow/targets/ProteinTargetSequenceExecutionWorkflow.py +13 -1
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb/workflow/targets/ProteinTargetSequenceWorkflow.py +62 -30
- {rcsb.workflow-0.41 → rcsb_workflow-0.43/rcsb.workflow.egg-info}/PKG-INFO +11 -2
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/setup.cfg +1 -1
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/LICENSE +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/MANIFEST.in +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/README.md +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb/__init__.py +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb/workflow/__init__.py +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb/workflow/chem/ChemCompFileWorkflow.py +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb/workflow/chem/ChemCompImageWorkflow.py +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb/workflow/chem/ChemCompSearchIndexWorkflow.py +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb/workflow/targets/__init__.py +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb.workflow.egg-info/SOURCES.txt +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb.workflow.egg-info/dependency_links.txt +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb.workflow.egg-info/not-zip-safe +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb.workflow.egg-info/requires.txt +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb.workflow.egg-info/top_level.txt +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/requirements.txt +0 -0
- {rcsb.workflow-0.41 → rcsb_workflow-0.43}/setup.py +0 -0
|
@@ -31,3 +31,7 @@
|
|
|
31
31
|
22-May-2023 - V0.39 Add retries to tox task for MMseqs2 download
|
|
32
32
|
1-Jun-2023 - V0.40 Don't back up resources to GitHub during cache update workflows
|
|
33
33
|
12-Jun-2023 - V0.41 Set useTaxonomy filter to False for CARD annotations
|
|
34
|
+
19-Sep-2023 - V0.42 Don't overwrite Buildlocker files if there is no data;
|
|
35
|
+
Reduce resource footprint for Azure tests;
|
|
36
|
+
Make CARDTargetOntologyProvider stashable on Buildlocker
|
|
37
|
+
21-May-2024 - V0.43 Fix pylinting
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: rcsb.workflow
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.43
|
|
4
4
|
Summary: RCSB Python data processing and ETL/ELT workflow entry points
|
|
5
5
|
Home-page: https://github.com/rcsb/py-rcsb_workflow
|
|
6
6
|
Author: John Westbrook
|
|
@@ -14,9 +14,18 @@ Classifier: Programming Language :: Python
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.8
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Requires-Dist: OpenEye-toolkits>=2020.2.2
|
|
19
|
+
Requires-Dist: rcsb.utils.chem>=0.75
|
|
20
|
+
Requires-Dist: rcsb.utils.seq>=0.63
|
|
21
|
+
Requires-Dist: rcsb.utils.targets>=0.57
|
|
22
|
+
Requires-Dist: rcsb.utils.seqalign>=0.24
|
|
23
|
+
Requires-Dist: rcsb.exdb>=0.87
|
|
24
|
+
Requires-Dist: rcsb.utils.io>=1.20
|
|
17
25
|
Provides-Extra: dev
|
|
26
|
+
Requires-Dist: check-manifest; extra == "dev"
|
|
18
27
|
Provides-Extra: test
|
|
19
|
-
|
|
28
|
+
Requires-Dist: coverage; extra == "test"
|
|
20
29
|
|
|
21
30
|
# py-rcsb_workflow
|
|
22
31
|
|
|
@@ -227,20 +227,32 @@ def fullWorkflow():
|
|
|
227
227
|
"""Entry point for the full targets sequence and cofactor update workflow."""
|
|
228
228
|
ptsWf = ProteinTargetSequenceExecutionWorkflow()
|
|
229
229
|
ok = ptsWf.cacheTaxonomy()
|
|
230
|
+
logger.info("cacheTaxonomy status %r", ok)
|
|
230
231
|
ok = ptsWf.updateUniProtTaxonomy() and ok
|
|
232
|
+
logger.info("updateUniProtTaxonomy status %r", ok)
|
|
231
233
|
ok = ptsWf.fetchProteinEntityData() and ok
|
|
234
|
+
logger.info("fetchProteinEntityData status %r", ok)
|
|
232
235
|
ok = ptsWf.fetchChemicalReferenceMappingData() and ok
|
|
236
|
+
logger.info("fetchChemicalReferenceMappingData status %r", ok)
|
|
233
237
|
ok = ptsWf.fetchLigandNeighborMappingData() and ok
|
|
238
|
+
logger.info("fetchLigandNeighborMappingData status %r", ok)
|
|
234
239
|
ok = ptsWf.exportFasta() and ok
|
|
240
|
+
logger.info("exportFasta status %r", ok)
|
|
235
241
|
ok = ptsWf.createSearchDatabases() and ok
|
|
242
|
+
logger.info("createSearchDatabases status %r", ok)
|
|
236
243
|
ok = ptsWf.searchDatabases() and ok
|
|
244
|
+
logger.info("searchDatabases status %r", ok)
|
|
237
245
|
ok = ptsWf.buildFeatures() and ok
|
|
246
|
+
logger.info("buildFeatures status %r", ok)
|
|
247
|
+
# To rebuild ChEMBL-target-activity data from scratch (non-incremental), set skip=None in fetchTargetActivityDataMulti()
|
|
238
248
|
ok = ptsWf.buildActivityData() and ok
|
|
249
|
+
logger.info("buildActivityData status %r", ok)
|
|
239
250
|
ok = ptsWf.buildCofactorData() and ok
|
|
251
|
+
logger.info("buildCofactorData status %r", ok)
|
|
240
252
|
ptsWf.resourceCheck()
|
|
241
253
|
return ok
|
|
242
254
|
|
|
243
255
|
|
|
244
256
|
if __name__ == "__main__":
|
|
245
257
|
status = fullWorkflow()
|
|
246
|
-
|
|
258
|
+
logger.info("Full workflow completion status (%r)", status)
|
{rcsb.workflow-0.41 → rcsb_workflow-0.43}/rcsb/workflow/targets/ProteinTargetSequenceWorkflow.py
RENAMED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
# 5-May-2023 Restore from stash if fromDbPharos and reloadPharos parameters are False
|
|
15
15
|
# 1-Jun-2023 aae Don't back up resources to GitHub during cache update workflows
|
|
16
16
|
# 12-Jun-2023 dwp Set useTaxonomy filter to False for CARD annotations
|
|
17
|
+
# 6-Jul-2023 aae Don't overwrite Buildlocker files if there is no data
|
|
17
18
|
##
|
|
18
19
|
__docformat__ = "google en"
|
|
19
20
|
__author__ = "John Westbrook"
|
|
@@ -33,6 +34,7 @@ from rcsb.utils.seqalign.MMseqsUtils import MMseqsUtils
|
|
|
33
34
|
from rcsb.utils.seq.UniProtIdMappingProvider import UniProtIdMappingProvider
|
|
34
35
|
from rcsb.utils.targets.CARDTargetProvider import CARDTargetProvider
|
|
35
36
|
from rcsb.utils.targets.CARDTargetAnnotationProvider import CARDTargetAnnotationProvider
|
|
37
|
+
from rcsb.utils.targets.CARDTargetOntologyProvider import CARDTargetOntologyProvider
|
|
36
38
|
from rcsb.utils.targets.ChEMBLTargetProvider import ChEMBLTargetProvider
|
|
37
39
|
from rcsb.utils.targets.ChEMBLTargetActivityProvider import ChEMBLTargetActivityProvider
|
|
38
40
|
from rcsb.utils.targets.ChEMBLTargetCofactorProvider import ChEMBLTargetCofactorProvider
|
|
@@ -67,9 +69,12 @@ class ProteinTargetSequenceWorkflow(object):
|
|
|
67
69
|
ok = False
|
|
68
70
|
try:
|
|
69
71
|
crmP = ChemRefMappingProvider(self.__cachePath, useCache=False)
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
ok = crmP.fetchChemRefMapping(self.__cfgOb)
|
|
73
|
+
logger.info("Completed fetch ChemRefMappingProvider (%r)", ok)
|
|
74
|
+
crmP.reload()
|
|
75
|
+
if ok and crmP.testCache(minCount=1):
|
|
76
|
+
ok = crmP.backup(self.__cfgOb, self.__configName, useStash=True, useGit=False)
|
|
77
|
+
logger.info("Completed backup ChemRefMappingProvider (%r)", ok)
|
|
73
78
|
except Exception as e:
|
|
74
79
|
logger.exception("Failing with %s", str(e))
|
|
75
80
|
return ok
|
|
@@ -79,9 +84,12 @@ class ProteinTargetSequenceWorkflow(object):
|
|
|
79
84
|
ok = False
|
|
80
85
|
try:
|
|
81
86
|
crmP = LigandNeighborMappingProvider(self.__cachePath, useCache=False)
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
87
|
+
ok = crmP.fetchLigandNeighborMapping(self.__cfgOb)
|
|
88
|
+
logger.info("Completed fetch LigandNeighborMappingProvider (%r)", ok)
|
|
89
|
+
crmP.reload()
|
|
90
|
+
if ok and crmP.testCache(minCount=1):
|
|
91
|
+
ok = crmP.backup(self.__cfgOb, self.__configName, useStash=True, useGit=False)
|
|
92
|
+
logger.info("Completed backup LigandNeighborMappingProvider (%r)", ok)
|
|
85
93
|
except Exception as e:
|
|
86
94
|
logger.exception("Failing with %s", str(e))
|
|
87
95
|
return ok
|
|
@@ -117,11 +125,12 @@ class ProteinTargetSequenceWorkflow(object):
|
|
|
117
125
|
startTime = time.time()
|
|
118
126
|
umP = UniProtIdMappingProvider(cachePath=self.__cachePath)
|
|
119
127
|
umP.clearCache()
|
|
120
|
-
|
|
121
|
-
logger.info("Completed building UniProt Id mapping (%r) at %s (%.4f seconds)",
|
|
122
|
-
if
|
|
123
|
-
|
|
124
|
-
|
|
128
|
+
ok = umP.reload(useCache=True, useLegacy=False, fmt="tdd", mapNames=["NCBI-taxon"])
|
|
129
|
+
logger.info("Completed building UniProt Id mapping (%r) at %s (%.4f seconds)", ok, time.strftime("%Y %m %d %H:%M:%S", time.localtime()), time.time() - startTime)
|
|
130
|
+
if ok and umP.testCache():
|
|
131
|
+
ok = umP.backup(self.__cfgOb, self.__configName)
|
|
132
|
+
logger.info("Completed backup UniProt Id mapping (%r)", ok)
|
|
133
|
+
return ok
|
|
125
134
|
|
|
126
135
|
def exportTargetsFasta(self, resourceNameList=None, useCache=True, addTaxonomy=False, reloadPharos=False, fromDbPharos=False, backupPharos=False, remotePrefix=None):
|
|
127
136
|
"""Export the target FASTA files for the input data resources.
|
|
@@ -151,7 +160,7 @@ class ProteinTargetSequenceWorkflow(object):
|
|
|
151
160
|
backupPharos=backupPharos,
|
|
152
161
|
remotePrefix=remotePrefix
|
|
153
162
|
)
|
|
154
|
-
logger.info("Completed loading %s targets (status %r)at %s (%.4f seconds)", resourceName, ok, time.strftime("%Y %m %d %H:%M:%S", time.localtime()), time.time() - startTime)
|
|
163
|
+
logger.info("Completed loading %s targets (status %r) at %s (%.4f seconds)", resourceName, ok, time.strftime("%Y %m %d %H:%M:%S", time.localtime()), time.time() - startTime)
|
|
155
164
|
retOk = retOk and ok
|
|
156
165
|
return retOk
|
|
157
166
|
|
|
@@ -163,6 +172,7 @@ class ProteinTargetSequenceWorkflow(object):
|
|
|
163
172
|
taxonPath = self.__getTaxonPath(resourceName)
|
|
164
173
|
if resourceName == "card":
|
|
165
174
|
cardtP = CARDTargetProvider(cachePath=self.__cachePath, useCache=useCache)
|
|
175
|
+
cardtP.reload()
|
|
166
176
|
if cardtP.testCache():
|
|
167
177
|
ok = cardtP.exportCardFasta(fastaPath, taxonPath)
|
|
168
178
|
elif resourceName == "drugbank":
|
|
@@ -173,6 +183,7 @@ class ProteinTargetSequenceWorkflow(object):
|
|
|
173
183
|
ok = dbtP.exportFasta(fastaPath, taxonPath, addTaxonomy=addTaxonomy)
|
|
174
184
|
elif resourceName == "chembl":
|
|
175
185
|
chtP = ChEMBLTargetProvider(cachePath=self.__cachePath, useCache=useCache)
|
|
186
|
+
chtP.reload()
|
|
176
187
|
if chtP.testCache():
|
|
177
188
|
ok = chtP.exportFasta(fastaPath, taxonPath, addTaxonomy=addTaxonomy)
|
|
178
189
|
elif resourceName == "pharos":
|
|
@@ -181,7 +192,7 @@ class ProteinTargetSequenceWorkflow(object):
|
|
|
181
192
|
ptP = PharosTargetProvider(cachePath=self.__cachePath, useCache=useCache, reloadDb=reloadPharos, fromDb=fromDbPharos, mysqlUser=user, mysqlPassword=pw)
|
|
182
193
|
if ptP.testCache():
|
|
183
194
|
ok = ptP.exportProteinFasta(fastaPath, taxonPath, addTaxonomy=addTaxonomy)
|
|
184
|
-
if backupPharos:
|
|
195
|
+
if ok and backupPharos and ptP.testCache():
|
|
185
196
|
okB = ptP.backup(self.__cfgOb, self.__configName, remotePrefix=remotePrefix, useStash=True, useGit=False)
|
|
186
197
|
logger.info("%r targets backup status (%r)", resourceName, okB)
|
|
187
198
|
elif not (reloadPharos or fromDbPharos):
|
|
@@ -190,6 +201,7 @@ class ProteinTargetSequenceWorkflow(object):
|
|
|
190
201
|
ok = ptP.exportProteinFasta(fastaPath, taxonPath, addTaxonomy=addTaxonomy)
|
|
191
202
|
elif resourceName == "sabdab":
|
|
192
203
|
stP = SAbDabTargetProvider(cachePath=self.__cachePath, useCache=False)
|
|
204
|
+
stP.reload()
|
|
193
205
|
if stP.testCache():
|
|
194
206
|
ok = stP.exportFasta(fastaPath)
|
|
195
207
|
elif resourceName == "pdbprent":
|
|
@@ -341,22 +353,30 @@ class ProteinTargetSequenceWorkflow(object):
|
|
|
341
353
|
if resourceName == "sabdab":
|
|
342
354
|
fP = SAbDabTargetFeatureProvider(cachePath=self.__cachePath, useCache=True)
|
|
343
355
|
ok = fP.buildFeatureList(resultPath)
|
|
344
|
-
|
|
356
|
+
fP.reload()
|
|
357
|
+
if ok and backup and fP.testCache():
|
|
345
358
|
okB = fP.backup(self.__cfgOb, self.__configName, remotePrefix=remotePrefix, useStash=True, useGit=False)
|
|
346
359
|
logger.info("%r features backup status (%r)", resourceName, okB)
|
|
347
360
|
elif resourceName == "card":
|
|
348
361
|
fP = CARDTargetAnnotationProvider(cachePath=self.__cachePath, useCache=True)
|
|
349
362
|
ok = fP.buildAnnotationList(resultPath, useTaxonomy=useTaxonomy)
|
|
350
|
-
|
|
363
|
+
fP.reload()
|
|
364
|
+
if ok and backup and fP.testCache():
|
|
351
365
|
okB = fP.backup(self.__cfgOb, self.__configName, remotePrefix=remotePrefix, useStash=True, useGit=False)
|
|
352
366
|
logger.info("%r annotations backup status (%r)", resourceName, okB)
|
|
367
|
+
fP = CARDTargetOntologyProvider(cachePath=self.__cachePath, useCache=False)
|
|
368
|
+
ok = fP.reload()
|
|
369
|
+
if ok and backup and fP.testCache():
|
|
370
|
+
okB = fP.backup(self.__cfgOb, self.__configName, remotePrefix=remotePrefix, useStash=True, useGit=False)
|
|
371
|
+
logger.info("%r ontology backup status (%r)", resourceName, okB)
|
|
353
372
|
elif resourceName == "imgt":
|
|
354
373
|
fP = IMGTTargetFeatureProvider(cachePath=self.__cachePath, useCache=True)
|
|
355
374
|
ok = fP.buildFeatureList(useCache=True)
|
|
356
|
-
|
|
375
|
+
fP.reload()
|
|
376
|
+
if ok and backup and fP.testCache():
|
|
357
377
|
okB = fP.backup(self.__cfgOb, self.__configName, remotePrefix=remotePrefix, useStash=True, useGit=False)
|
|
358
378
|
logger.info("%r features backup status (%r)", resourceName, okB)
|
|
359
|
-
return ok
|
|
379
|
+
return ok and okB
|
|
360
380
|
except Exception as e:
|
|
361
381
|
logger.exception("Failing with %s", str(e))
|
|
362
382
|
return False
|
|
@@ -394,7 +414,7 @@ class ProteinTargetSequenceWorkflow(object):
|
|
|
394
414
|
def __buildActivityData(self, referenceResourceName, resourceName, backup=False, remotePrefix=None, maxTargets=None):
|
|
395
415
|
"""Build features inferred from sequence comparison results between the input resources."""
|
|
396
416
|
try:
|
|
397
|
-
okB = okC = True
|
|
417
|
+
okB = okC = okD = True
|
|
398
418
|
resultPath = self.__getFilteredSearchResultPath(resourceName, referenceResourceName)
|
|
399
419
|
#
|
|
400
420
|
if resourceName == "chembl":
|
|
@@ -406,26 +426,30 @@ class ProteinTargetSequenceWorkflow(object):
|
|
|
406
426
|
pass
|
|
407
427
|
targetIdList = aP.getTargetIdList(resultPath)
|
|
408
428
|
targetIdList = targetIdList[:maxTargets] if maxTargets else targetIdList
|
|
429
|
+
# To rebuild ChEMBL-target-activity data from scratch (non-incremental), change skip=None
|
|
409
430
|
ok = aP.fetchTargetActivityDataMulti(targetIdList, skip="tried", chunkSize=50, numProc=6)
|
|
410
431
|
#
|
|
411
|
-
|
|
432
|
+
aP.reload()
|
|
433
|
+
if ok and backup and aP.testCache():
|
|
412
434
|
okB = aP.backup(self.__cfgOb, self.__configName, remotePrefix=remotePrefix, useStash=True, useGit=False)
|
|
413
435
|
logger.info("%r activity backup status (%r)", resourceName, okB)
|
|
414
436
|
elif resourceName == "pharos":
|
|
415
437
|
aP = PharosTargetActivityProvider(cachePath=self.__cachePath, useCache=True)
|
|
416
438
|
ok = aP.fetchTargetActivityData()
|
|
417
|
-
|
|
439
|
+
aP.reload()
|
|
440
|
+
if ok and backup and aP.testCache(minCount=1):
|
|
418
441
|
okB = aP.backup(self.__cfgOb, self.__configName, remotePrefix=remotePrefix, useStash=True, useGit=False)
|
|
419
442
|
logger.info("%r activity data backup status (%r)", resourceName, okB)
|
|
420
443
|
#
|
|
421
444
|
chemblIdList = aP.fetchCompoundIdentifiers()
|
|
422
445
|
phP = PharosProvider(cachePath=self.__cachePath, useCache=False)
|
|
423
|
-
phP.load(chemblIdList, "identifiers", fmt="json", indent=0)
|
|
424
|
-
|
|
425
|
-
|
|
446
|
+
okC = phP.load(chemblIdList, "identifiers", fmt="json", indent=0)
|
|
447
|
+
phP.reload()
|
|
448
|
+
if okC and backup and phP.testCache(minCount=1):
|
|
449
|
+
okD = phP.backup(self.__cfgOb, self.__configName, remotePrefix=remotePrefix, useStash=True, useGit=False)
|
|
426
450
|
logger.info("%r identifier backup status (%r)", resourceName, okC)
|
|
427
451
|
|
|
428
|
-
return ok and okB and okC
|
|
452
|
+
return ok and okB and okC and okD
|
|
429
453
|
except Exception as e:
|
|
430
454
|
logger.exception("Failing with %s", str(e))
|
|
431
455
|
return False
|
|
@@ -472,26 +496,34 @@ class ProteinTargetSequenceWorkflow(object):
|
|
|
472
496
|
if resourceName == "chembl":
|
|
473
497
|
aP = ChEMBLTargetCofactorProvider(cachePath=self.__cachePath, useCache=True)
|
|
474
498
|
ok = aP.buildCofactorList(resultPath, crmpObj=crmpObj, lnmpObj=lnmpObj, maxActivity=maxActivity)
|
|
499
|
+
ok = aP.reload() and ok
|
|
500
|
+
logger.info("%r cofactor data build status (%r)", resourceName, ok)
|
|
475
501
|
#
|
|
476
|
-
if backup:
|
|
502
|
+
if ok and backup and aP.testCache():
|
|
477
503
|
okB = aP.backup(self.__cfgOb, self.__configName, remotePrefix=remotePrefix, useStash=True, useGit=False)
|
|
478
|
-
logger.info("%r cofactor backup status (%r)", resourceName, okB)
|
|
504
|
+
logger.info("%r cofactor data backup status (%r)", resourceName, okB)
|
|
479
505
|
|
|
480
506
|
elif resourceName == "pharos":
|
|
481
507
|
aP = PharosTargetCofactorProvider(cachePath=self.__cachePath, useCache=True, useStash=True, useGit=True)
|
|
482
508
|
ok = aP.buildCofactorList(resultPath, crmpObj=crmpObj, lnmpObj=lnmpObj, maxActivity=maxActivity)
|
|
483
|
-
|
|
509
|
+
ok = aP.reload() and ok
|
|
510
|
+
logger.info("%r cofactor data build status (%r)", resourceName, ok)
|
|
511
|
+
#
|
|
512
|
+
if ok and backup and aP.testCache():
|
|
484
513
|
okB = aP.backup(self.__cfgOb, self.__configName, remotePrefix=remotePrefix, useStash=True, useGit=False)
|
|
485
514
|
logger.info("%r cofactor data backup status (%r)", resourceName, okB)
|
|
486
515
|
|
|
487
516
|
elif resourceName == "drugbank":
|
|
488
517
|
aP = DrugBankTargetCofactorProvider(cachePath=self.__cachePath, useCache=True)
|
|
489
518
|
ok = aP.buildCofactorList(resultPath, crmpObj=crmpObj, lnmpObj=lnmpObj)
|
|
490
|
-
|
|
519
|
+
ok = aP.reload() and ok
|
|
520
|
+
logger.info("%r cofactor data build status (%r)", resourceName, ok)
|
|
521
|
+
#
|
|
522
|
+
if ok and backup and aP.testCache():
|
|
491
523
|
okB = aP.backup(self.__cfgOb, self.__configName, remotePrefix=remotePrefix, useStash=True, useGit=False)
|
|
492
524
|
logger.info("%r cofactor data backup status (%r)", resourceName, okB)
|
|
493
|
-
|
|
494
|
-
return ok
|
|
525
|
+
#
|
|
526
|
+
return ok and okB
|
|
495
527
|
except Exception as e:
|
|
496
528
|
logger.exception("Failing with %s", str(e))
|
|
497
529
|
return False
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: rcsb.workflow
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.43
|
|
4
4
|
Summary: RCSB Python data processing and ETL/ELT workflow entry points
|
|
5
5
|
Home-page: https://github.com/rcsb/py-rcsb_workflow
|
|
6
6
|
Author: John Westbrook
|
|
@@ -14,9 +14,18 @@ Classifier: Programming Language :: Python
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.8
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
|
+
License-File: LICENSE
|
|
18
|
+
Requires-Dist: OpenEye-toolkits>=2020.2.2
|
|
19
|
+
Requires-Dist: rcsb.utils.chem>=0.75
|
|
20
|
+
Requires-Dist: rcsb.utils.seq>=0.63
|
|
21
|
+
Requires-Dist: rcsb.utils.targets>=0.57
|
|
22
|
+
Requires-Dist: rcsb.utils.seqalign>=0.24
|
|
23
|
+
Requires-Dist: rcsb.exdb>=0.87
|
|
24
|
+
Requires-Dist: rcsb.utils.io>=1.20
|
|
17
25
|
Provides-Extra: dev
|
|
26
|
+
Requires-Dist: check-manifest; extra == "dev"
|
|
18
27
|
Provides-Extra: test
|
|
19
|
-
|
|
28
|
+
Requires-Dist: coverage; extra == "test"
|
|
20
29
|
|
|
21
30
|
# py-rcsb_workflow
|
|
22
31
|
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|