rcsb.workflow 0.67__tar.gz → 0.69__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.
Files changed (40) hide show
  1. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/HISTORY.txt +2 -0
  2. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/PKG-INFO +1 -1
  3. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/pyproject.toml +1 -1
  4. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/bcif/task_functions.py +8 -1
  5. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/cli/BcifExec.py +8 -0
  6. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/targets/ProteinTargetSequenceExecutionWorkflow.py +10 -5
  7. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/targets/ProteinTargetSequenceWorkflow.py +2 -1
  8. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/wuw/BcifWorkflow.py +3 -1
  9. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/.gitignore +0 -0
  10. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/LICENSE +0 -0
  11. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/README.md +0 -0
  12. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/__init__.py +0 -0
  13. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/__init__.py +0 -0
  14. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/bcif/__init__.py +0 -0
  15. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/chem/ChemCompFileWorkflow.py +0 -0
  16. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/chem/ChemCompImageWorkflow.py +0 -0
  17. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/chem/ChemCompSearchIndexWorkflow.py +0 -0
  18. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/chem/__init__.py +0 -0
  19. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/cli/ChemSearchIndexExec.py +0 -0
  20. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/cli/ExDbExec.py +0 -0
  21. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/cli/ImgExec.py +0 -0
  22. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/cli/__init__.py +0 -0
  23. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/refstats/LigandQualityReferenceGenerator.py +0 -0
  24. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/refstats/ResidueRsccReferenceGenerator.py +0 -0
  25. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/refstats/__init__.py +0 -0
  26. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/targets/__init__.py +0 -0
  27. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/tests/__init__.py +0 -0
  28. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/tests/fixturePdbxLoader.py +0 -0
  29. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/tests/testBcifWorkflow.py +0 -0
  30. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/tests/testChemCompFileWorkflow.py +0 -0
  31. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/tests/testChemCompImageWorkflow.py +0 -0
  32. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/tests/testChemCompSearchIndexWorkflow.py +0 -0
  33. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/tests/testExDbWorkflow.py +0 -0
  34. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/tests/testLigandQualityReferenceGenerator.py +0 -0
  35. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/tests/testProteinTargetSequenceWorkflow.py +0 -0
  36. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/tests/testResidueRsccReferenceGenerator.py +0 -0
  37. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/wuw/ExDbWorkflow.py +0 -0
  38. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/wuw/PdbCsmImageWorkflow.py +0 -0
  39. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/wuw/WuwUtils.py +0 -0
  40. {rcsb_workflow-0.67 → rcsb_workflow-0.69}/rcsb/workflow/wuw/__init__.py +0 -0
@@ -62,3 +62,5 @@
62
62
  2-Mar-2026 - V0.66 Add refstats subpackage for ligand and RSCC reference generation;
63
63
  Update test pipelines to python 3.13
64
64
  7-May-2026 - V0.67 Configure logging at start of CLI executable scripts
65
+ 11-May-2026 - V0.68 Temporarily skip DrugBank data processing until dataset becomes available
66
+ 17-Jul-2026 - V0.69 Add shortlink support for bcif generation
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rcsb.workflow
3
- Version: 0.67
3
+ Version: 0.69
4
4
  Summary: RCSB Python data processing and ETL/ELT workflow entry points
5
5
  Project-URL: Homepage, https://github.com/rcsb/py-rcsb_workflow
6
6
  Author-email: John Westbrook <john.westbrook@rcsb.org>
@@ -5,7 +5,7 @@ build-backend = "hatchling.build"
5
5
  [project]
6
6
  name = "rcsb.workflow"
7
7
  description = "RCSB Python data processing and ETL/ELT workflow entry points"
8
- version = "0.67"
8
+ version = "0.69"
9
9
  readme = "README.md"
10
10
  authors = [
11
11
  { name="John Westbrook", email="john.westbrook@rcsb.org" }
@@ -50,6 +50,7 @@ def convertCifFilesToBcif(
50
50
  rcsbDict: str,
51
51
  ihmDict: str,
52
52
  flrDict: str,
53
+ shortlink: bool,
53
54
  ):
54
55
  """
55
56
  Converts CIF files to BCIF format based on a given list file.
@@ -107,6 +108,7 @@ def convertCifFilesToBcif(
107
108
  contentType,
108
109
  dictionaryApi,
109
110
  temppath,
111
+ shortlink,
110
112
  )
111
113
  singleTask(*args)
112
114
  elif batchSize > 1:
@@ -125,6 +127,7 @@ def convertCifFilesToBcif(
125
127
  contentType,
126
128
  dictionaryApi,
127
129
  temppath,
130
+ shortlink,
128
131
  )
129
132
  results.append(pool.apply_async(singleTask, args))
130
133
  for r in results:
@@ -167,6 +170,7 @@ def singleTask(
167
170
  contentType: str,
168
171
  dictionaryApi: DictionaryApi,
169
172
  temppath: str,
173
+ shortlink: bool,
170
174
  ) -> None:
171
175
  remoteFileName = "%s%s" % (
172
176
  getInputPdbId(pdbId, contentType),
@@ -174,7 +178,10 @@ def singleTask(
174
178
  )
175
179
 
176
180
  # form input cifFilePath
177
- if not remotePath.startswith("http"):
181
+ if shortlink:
182
+ # Use remote path without hash
183
+ cifFilePath = os.path.join(remotePath, remoteFileName)
184
+ elif not remotePath.startswith("http"):
178
185
  # local file
179
186
  cifFilePath = os.path.join(remotePath, remoteFileName)
180
187
  if inputHash:
@@ -126,6 +126,14 @@ def main():
126
126
  default="https://raw.githubusercontent.com/ihmwg/flrCIF/refs/heads/master/dist/mmcif_ihm_flr_ext.dic",
127
127
  required=False,
128
128
  )
129
+ parser.add_argument(
130
+ "--shortlink",
131
+ action="store_true",
132
+ default=False,
133
+ required=False,
134
+ help="Build remote file path without a hash",
135
+ )
136
+
129
137
  # logging
130
138
  parser.add_argument("--log_file_path", required=False)
131
139
  parser.add_argument("--debug", action="store_true", default=False, required=False)
@@ -176,7 +176,8 @@ class ProteinTargetSequenceExecutionWorkflow(object):
176
176
  addTaxonomy=True,
177
177
  reloadPharos=reloadPharos,
178
178
  fromDbPharos=fromDbPharos,
179
- resourceNameList=["sabdab", "card", "drugbank", "chembl", "pharos"],
179
+ # resourceNameList=["sabdab", "card", "drugbank", "chembl", "pharos"],
180
+ resourceNameList=["sabdab", "card", "chembl", "pharos"],
180
181
  backupPharos=True,
181
182
  remotePrefix=self.__stashRemotePrefix
182
183
  )
@@ -199,7 +200,8 @@ class ProteinTargetSequenceExecutionWorkflow(object):
199
200
  ok = False
200
201
  try:
201
202
  ptsW = ProteinTargetSequenceWorkflow(self.__cfgOb, self.__cachePath)
202
- ok = ptsW.createSearchDatabases(resourceNameList=["sabdab", "card", "drugbank", "chembl", "pharos", "pdbprent"], addTaxonomy=True, timeOutSeconds=3600, verbose=False)
203
+ # ok = ptsW.createSearchDatabases(resourceNameList=["sabdab", "card", "drugbank", "chembl", "pharos", "pdbprent"], addTaxonomy=True, timeOutSeconds=3600, verbose=False)
204
+ ok = ptsW.createSearchDatabases(resourceNameList=["sabdab", "card", "chembl", "pharos", "pdbprent"], addTaxonomy=True, timeOutSeconds=3600, verbose=False)
203
205
  except Exception as e:
204
206
  logger.exception("Failing with %s", str(e))
205
207
  return ok
@@ -234,7 +236,8 @@ class ProteinTargetSequenceExecutionWorkflow(object):
234
236
  ptsW = ProteinTargetSequenceWorkflow(self.__cfgOb, self.__cachePath)
235
237
  ok1 = ptsW.search(
236
238
  referenceResourceName="pdbprent",
237
- resourceNameList=["sabdab", "drugbank", "chembl", "pharos"],
239
+ # resourceNameList=["sabdab", "drugbank", "chembl", "pharos"],
240
+ resourceNameList=["sabdab", "chembl", "pharos"],
238
241
  identityCutoff=0.95,
239
242
  sensitivity=4.5,
240
243
  timeOutSeconds=1000,
@@ -288,7 +291,8 @@ class ProteinTargetSequenceExecutionWorkflow(object):
288
291
  ok = False
289
292
  try:
290
293
  ptsW = ProteinTargetSequenceWorkflow(self.__cfgOb, self.__cachePath)
291
- ok = ptsW.buildCofactorData(referenceResourceName="pdbprent", resourceNameList=["chembl", "pharos", "drugbank"], backup=True, remotePrefix=self.__stashRemotePrefix)
294
+ # ok = ptsW.buildCofactorData(referenceResourceName="pdbprent", resourceNameList=["chembl", "pharos", "drugbank"], backup=True, remotePrefix=self.__stashRemotePrefix)
295
+ ok = ptsW.buildCofactorData(referenceResourceName="pdbprent", resourceNameList=["chembl", "pharos"], backup=True, remotePrefix=self.__stashRemotePrefix)
292
296
  except Exception as e:
293
297
  logger.exception("Failing with %s", str(e))
294
298
  return ok
@@ -299,7 +303,8 @@ class ProteinTargetSequenceExecutionWorkflow(object):
299
303
  ok = False
300
304
  try:
301
305
  ptsW = ProteinTargetSequenceWorkflow(self.__cfgOb, self.__cachePath)
302
- ok = ptsW.loadTargetCofactorData(resourceNameList=["chembl", "pharos", "drugbank"])
306
+ # ok = ptsW.loadTargetCofactorData(resourceNameList=["chembl", "pharos", "drugbank"])
307
+ ok = ptsW.loadTargetCofactorData(resourceNameList=["chembl", "pharos"])
303
308
  except Exception as e:
304
309
  logger.exception("Failing with %s", str(e))
305
310
  return ok
@@ -64,7 +64,8 @@ class ProteinTargetSequenceWorkflow(object):
64
64
  self.__configName = cfgOb.getDefaultSectionName()
65
65
  self.__cachePath = os.path.abspath(cachePath)
66
66
  self.__umP = None
67
- self.__defaultResourceNameList = ["sabdab", "card", "drugbank", "chembl", "pdbprent"]
67
+ # self.__defaultResourceNameList = ["sabdab", "card", "drugbank", "chembl", "pdbprent"]
68
+ self.__defaultResourceNameList = ["sabdab", "card", "chembl", "pdbprent"]
68
69
 
69
70
  def testCache(self):
70
71
  return True
@@ -37,6 +37,7 @@ class BcifWorkflow:
37
37
  self.outputHash = bool(args.outputHash)
38
38
  self.inputHash = bool(args.inputHash)
39
39
  self.batchSize = int(args.batchSize)
40
+ self.shortlink = bool(args.shortlink)
40
41
  # config
41
42
  self.pdbxDict = args.pdbxDict
42
43
  self.maDict = args.maDict
@@ -83,5 +84,6 @@ class BcifWorkflow:
83
84
  self.maDict,
84
85
  self.rcsbDict,
85
86
  self.ihmDict,
86
- self.flrDict
87
+ self.flrDict,
88
+ self.shortlink,
87
89
  )
File without changes
File without changes
File without changes