[12:16:07] Job 62174d5e created for target: NUDT5
[12:16:07] Initializing workspace for NUDT5...
[12:16:07] Job 62174d5e started: 2026-06-05 12:16:07
[12:16:07] 📦 Copying assets from pipeline_assets → jobs/62174d5e ...
[12:16:07] 🧾 Wrote input.csv and Protein_Data.csv
[12:16:07] 🚀 Running 1_GRABBER.py...
[12:16:07] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:16:07] [mem] before 1_GRABBER.py parent=136.4MB combined=136.4MB
[12:16:07] 🧵 Worker caps for 1_GRABBER.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:16:07] ⏱ No-output watchdog for 1_GRABBER.py: 180s
[12:16:07] [mem] running 1_GRABBER.py parent=136.4MB child_tree=0.7MB combined=137.1MB
🤖 AUTOMATED MODE: Processing input.csv
=== Processing NUDT5 ===
    🔄 Switching to EBI Backup Search for 'ADP-sugar pyrophosphatase 8-OXO-2'-DEOXY-GUANOSINE-5'-MONOPHOSPHATE 8OG bound inhibitor Homo sapiens'...
  → Found 70 candidates
  → Candidates=70 attempted=70 verified=70 failed=0
  → CIF output directory: /app/jobs/62174d5e/WAR/NUDT5
  → Sample verified CIFs: ['WAR/NUDT5/3aca.cif', 'WAR/NUDT5/3l85.cif', 'WAR/NUDT5/2dsc.cif', 'WAR/NUDT5/5qj5.cif', 'WAR/NUDT5/5nqr.cif']
=== DONE ===
✅ Wrote queries.csv with MW_min=250.0, MW_max=700.0, MinID=90.0
✅ CIF manifest rows=70 verified=70 failed=0 root=/app/jobs/62174d5e/WAR
✅ Sample manifest CIF paths: ['WAR/NUDT5/3aca.cif', 'WAR/NUDT5/3l85.cif', 'WAR/NUDT5/2dsc.cif', 'WAR/NUDT5/5qj5.cif', 'WAR/NUDT5/5nqr.cif', 'WAR/NUDT5/5qj4.cif', 'WAR/NUDT5/3ac9.cif', 'WAR/NUDT5/5qj6.cif', 'WAR/NUDT5/3bm4.cif', 'WAR/NUDT5/2dsd.cif']
[12:16:12] [mem] after 1_GRABBER.py parent=136.4MB delta=+0.0MB combined_peak=236.6MB child_peak=100.2MB
[12:16:12] 🚀 Running 2_SQchk.py...
[12:16:12] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:16:12] [mem] before 2_SQchk.py parent=136.4MB combined=136.4MB
[12:16:12] 🧵 Worker caps for 2_SQchk.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:16:12] ⏱ No-output watchdog for 2_SQchk.py: 180s
[12:16:12] [mem] running 2_SQchk.py parent=136.4MB child_tree=1.9MB combined=138.3MB
🚀 Running Sequence Identity Analysis...
   Proteins missing fasta/name rows skipped: 0
   MW_min=250.0  MW_max=700.0  (MW filters currently ignored for ligand debug)
   Total PDB jobs to process: 70
   Worker mode=threadpool max_workers=2
  0%|          | 0/70 [00:00<?, ?it/s]DEBUG: 2dsc Chain(s) ['A', 'B'] -> Match: 92.0%
  1%|▏         | 1/70 [00:00<00:23,  2.91it/s]DEBUG: 2dsb Chain(s) ['A', 'B', 'C', 'D'] -> Match: 85.9%
DEBUG: 2dsd Chain(s) ['A', 'B'] -> Match: 92.0%
  4%|▍         | 3/70 [00:00<00:14,  4.63it/s]DEBUG: 3ac9 Chain(s) ['A', 'B'] -> Match: 100.0%
DEBUG: 3bm4 Chain(s) ['A', 'B'] -> Match: 92.9%
  7%|▋         | 5/70 [00:01<00:12,  5.12it/s]DEBUG: 3aca Chain(s) ['A', 'B'] -> Match: 99.5%
DEBUG: 3l85 Chain(s) ['A', 'B'] -> Match: 100.0%
 10%|█         | 7/70 [00:01<00:11,  5.49it/s]DEBUG: 5nqr Chain(s) ['A', 'B'] -> Match: 89.0%
 13%|█▎        | 9/70 [00:01<00:10,  5.79it/s]DEBUG: 5qj4 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
DEBUG: 5qj5 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 16%|█▌        | 11/70 [00:02<00:10,  5.74it/s]DEBUG: 5qj6 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
DEBUG: 5qj7 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 19%|█▊        | 13/70 [00:02<00:10,  5.69it/s]DEBUG: 5qj8 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
DEBUG: 5qj9 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 21%|██▏       | 15/70 [00:02<00:09,  5.66it/s]DEBUG: 5qja Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
DEBUG: 5qjb Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 24%|██▍       | 17/70 [00:03<00:09,  5.65it/s]DEBUG: 5qjc Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
DEBUG: 5qjd Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 27%|██▋       | 19/70 [00:03<00:09,  5.66it/s]DEBUG: 5qje Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 30%|███       | 21/70 [00:03<00:08,  5.84it/s]DEBUG: 5qjg Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
DEBUG: 5qjh Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 33%|███▎      | 23/70 [00:04<00:08,  5.81it/s]DEBUG: 5qji Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
DEBUG: 5qjj Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 36%|███▌      | 25/70 [00:04<00:07,  5.80it/s]DEBUG: 5qjk Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
DEBUG: 5qjl Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 39%|███▊      | 27/70 [00:04<00:07,  5.77it/s]DEBUG: 5qjm Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
DEBUG: 5qjn Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
[12:16:17] [mem] running 2_SQchk.py parent=136.4MB child_tree=86.8MB combined=223.2MB
 41%|████▏     | 29/70 [00:05<00:07,  5.75it/s]DEBUG: 5qjo Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
DEBUG: 5qjp Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 44%|████▍     | 31/70 [00:05<00:06,  5.76it/s]DEBUG: 5qjq Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 46%|████▌     | 32/70 [00:05<00:06,  5.93it/s]DEBUG: 5qjr Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 47%|████▋     | 33/70 [00:05<00:06,  5.88it/s]DEBUG: 5qjs Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 49%|████▊     | 34/70 [00:06<00:06,  5.84it/s]DEBUG: 5qjt Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 50%|█████     | 35/70 [00:06<00:05,  5.89it/s]DEBUG: 5qju Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 51%|█████▏    | 36/70 [00:06<00:05,  5.78it/s]DEBUG: 5qjv Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 53%|█████▎    | 37/70 [00:06<00:05,  5.80it/s]DEBUG: 5qjw Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 54%|█████▍    | 38/70 [00:06<00:05,  5.77it/s]DEBUG: 5qjx Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 56%|█████▌    | 39/70 [00:06<00:05,  5.74it/s]DEBUG: 5qjy Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 57%|█████▋    | 40/70 [00:07<00:05,  5.72it/s]
 59%|█████▊    | 41/70 [00:07<00:04,  6.09it/s]
 60%|██████    | 42/70 [00:07<00:04,  5.96it/s]DEBUG: 5qk1 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 61%|██████▏   | 43/70 [00:07<00:04,  5.94it/s]DEBUG: 5qk2 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 63%|██████▎   | 44/70 [00:07<00:04,  5.82it/s]DEBUG: 5qk3 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 64%|██████▍   | 45/70 [00:07<00:04,  5.81it/s]DEBUG: 5qk4 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 66%|██████▌   | 46/70 [00:08<00:04,  5.75it/s]DEBUG: 5qk5 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 67%|██████▋   | 47/70 [00:08<00:03,  5.78it/s]DEBUG: 5qk6 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 69%|██████▊   | 48/70 [00:08<00:03,  5.72it/s]DEBUG: 5qk7 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 70%|███████   | 49/70 [00:08<00:03,  5.72it/s]DEBUG: 5qk8 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 71%|███████▏  | 50/70 [00:08<00:03,  5.66it/s]DEBUG: 5qk9 Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 73%|███████▎  | 51/70 [00:08<00:03,  6.08it/s]DEBUG: 5qka Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 74%|███████▍  | 52/70 [00:09<00:03,  5.56it/s]
 76%|███████▌  | 53/70 [00:09<00:02,  6.41it/s]DEBUG: 5qtl Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 77%|███████▋  | 54/70 [00:09<00:02,  5.39it/s]DEBUG: 5qtm Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 80%|████████  | 56/70 [00:09<00:02,  5.79it/s]DEBUG: 5qto Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 81%|████████▏ | 57/70 [00:09<00:02,  6.46it/s]DEBUG: 5qtp Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 83%|████████▎ | 58/70 [00:10<00:02,  5.85it/s]DEBUG: 5qtq Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 84%|████████▍ | 59/70 [00:10<00:01,  6.21it/s]
[12:16:23] [mem] running 2_SQchk.py parent=136.4MB child_tree=86.9MB combined=223.3MB
 86%|████████▌ | 60/70 [00:10<00:01,  6.01it/s]
 87%|████████▋ | 61/70 [00:10<00:01,  6.40it/s]DEBUG: 6gru Chain(s) ['A', 'B', 'C', 'D'] -> Match: 93.3%
 89%|████████▊ | 62/70 [00:10<00:01,  5.68it/s]DEBUG: 8otv Chain(s) ['A', 'B'] -> Match: 36.8%
 90%|█████████ | 63/70 [00:10<00:01,  6.11it/s]DEBUG: 8ptt Chain(s) ['A', 'B', 'C', 'D'] -> Match: 89.0%
 91%|█████████▏| 64/70 [00:11<00:01,  5.57it/s]DEBUG: 8rdz Chain(s) ['A', 'B', 'C', 'D'] -> Match: 89.0%
 93%|█████████▎| 65/70 [00:11<00:00,  5.96it/s]DEBUG: 8riy Chain(s) ['AAA', 'BBB'] -> Match: 93.3%
 94%|█████████▍| 66/70 [00:11<00:00,  5.51it/s]DEBUG: 9g6y Chain(s) ['A', 'B'] -> Match: 89.0%
 96%|█████████▌| 67/70 [00:11<00:00,  5.95it/s]DEBUG: 9q0m Chain(s) ['A', 'B', 'C', 'D'] -> Match: 19.9%
DEBUG: 9q0m Chain(s) ['E', 'F', 'G', 'H'] -> Match: 80.5%
 97%|█████████▋| 68/70 [00:11<00:00,  5.42it/s]DEBUG: 9q0n Chain(s) ['A', 'B', 'C', 'D'] -> Match: 20.1%
DEBUG: 9q0n Chain(s) ['E', 'F', 'G', 'H'] -> Match: 87.0%
 99%|█████████▊| 69/70 [00:11<00:00,  5.87it/s]DEBUG: 9q0o Chain(s) ['A', 'B', 'C', 'D'] -> Match: 20.1%
DEBUG: 9q0o Chain(s) ['E', 'F', 'G', 'H'] -> Match: 87.0%
100%|██████████| 70/70 [00:12<00:00,  5.34it/s]
100%|██████████| 70/70 [00:12<00:00,  5.73it/s]
DONE
✅ PDBs processed OK: 62
❌ PDBs failed: 8
📌 Failure reasons:
   - no_ebi_meta: 8
[12:16:25] [mem] after 2_SQchk.py parent=136.4MB delta=+0.0MB combined_peak=223.3MB child_peak=86.9MB
[12:16:25] 🚀 Running 3_PDBmkr.py...
[12:16:25] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:16:25] [mem] before 3_PDBmkr.py parent=136.4MB combined=136.4MB
[12:16:25] 🧵 Worker caps for 3_PDBmkr.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:16:25] ⏱ No-output watchdog for 3_PDBmkr.py: 180s
[12:16:25] [mem] running 3_PDBmkr.py parent=136.4MB child_tree=0.6MB combined=137.0MB
📁 Step 3 output root: /app/jobs/62174d5e/WAR_PDB
🧾 CIF sources: manifest_rows=70 verified_manifest=70 indexed_cifs=70
📊 Similarity Stats: Max found = 100.00% (Threshold: 90.0%)
⚠️ No 5-letter ligands detected. Renaming map not required.
🛑 Created Skip4.txt — Step 4 will be skipped.
🚀 BUILDING 120 PDB CHAINS...
🧾 Step 3 selected build rows=120 resolvable_cifs=120 missing_cifs=0
🧵 Worker mode=threadpool max_workers=2
🧾 Step 3 sample CIF resolutions: ['2dsc:manifest_path:WAR/NUDT5/2dsc.cif', '2dsc:manifest_path:WAR/NUDT5/2dsc.cif', '3ac9:manifest_path:WAR/NUDT5/3ac9.cif', '3ac9:manifest_path:WAR/NUDT5/3ac9.cif', '3bm4:manifest_path:WAR/NUDT5/3bm4.cif', '3aca:manifest_path:WAR/NUDT5/3aca.cif', '3aca:manifest_path:WAR/NUDT5/3aca.cif', '3l85:manifest_path:WAR/NUDT5/3l85.cif', '5qj4:manifest_path:WAR/NUDT5/5qj4.cif', '5qj4:manifest_path:WAR/NUDT5/5qj4.cif']
/app/.heroku/python/lib/python3.11/site-packages/Bio/PDB/StructureBuilder.py:100: PDBConstructionWarning: WARNING: Chain A is discontinuous at line 3032.
  warnings.warn(
/app/.heroku/python/lib/python3.11/site-packages/Bio/PDB/StructureBuilder.py:100: PDBConstructionWarning: WARNING: Chain A is discontinuous at line 3030.
  warnings.warn(
/app/.heroku/python/lib/python3.11/site-packages/Bio/PDB/StructureBuilder.py:100: PDBConstructionWarning: WARNING: Chain B is discontinuous at line 3033.
  warnings.warn(
/app/.heroku/python/lib/python3.11/site-packages/Bio/PDB/StructureBuilder.py:100: PDBConstructionWarning: WARNING: Chain A is discontinuous at line 3108.
  warnings.warn(
/app/.heroku/python/lib/python3.11/site-packages/Bio/PDB/StructureBuilder.py:100: PDBConstructionWarning: WARNING: Chain B is discontinuous at line 3261.
  warnings.warn(
  0%|          | 0/120 [00:00<?, ?it/s]
  7%|▋         | 8/120 [00:00<00:04, 23.93it/s]
  9%|▉         | 11/120 [00:00<00:08, 13.12it/s]
 11%|█         | 13/120 [00:01<00:11,  9.12it/s]
 12%|█▏        | 14/120 [00:01<00:15,  6.67it/s]
 13%|█▎        | 16/120 [00:01<00:17,  6.01it/s]
 15%|█▌        | 18/120 [00:02<00:18,  5.57it/s]
 17%|█▋        | 20/120 [00:02<00:19,  5.23it/s]
 18%|█▊        | 22/120 [00:03<00:19,  5.10it/s]
 20%|██        | 24/120 [00:03<00:18,  5.12it/s]
 22%|██▏       | 26/120 [00:04<00:18,  4.99it/s]
[12:16:30] [mem] running 3_PDBmkr.py parent=136.4MB child_tree=133.2MB combined=269.6MB
 23%|██▎       | 28/120 [00:04<00:18,  4.98it/s]
 25%|██▌       | 30/120 [00:04<00:18,  4.92it/s]
 27%|██▋       | 32/120 [00:05<00:18,  4.84it/s]
 28%|██▊       | 34/120 [00:05<00:17,  4.92it/s]
 30%|███       | 36/120 [00:06<00:17,  4.81it/s]
 32%|███▏      | 38/120 [00:06<00:17,  4.77it/s]
 33%|███▎      | 40/120 [00:06<00:16,  4.77it/s]
 35%|███▌      | 42/120 [00:07<00:16,  4.72it/s]
 37%|███▋      | 44/120 [00:07<00:15,  4.77it/s]
 38%|███▊      | 46/120 [00:08<00:15,  4.63it/s]
 40%|████      | 48/120 [00:08<00:15,  4.57it/s]
 42%|████▏     | 50/120 [00:09<00:15,  4.39it/s]
[12:16:35] [mem] running 3_PDBmkr.py parent=136.4MB child_tree=134.3MB combined=270.7MB
 43%|████▎     | 52/120 [00:09<00:15,  4.41it/s]
 45%|████▌     | 54/120 [00:10<00:14,  4.60it/s]
 47%|████▋     | 56/120 [00:10<00:14,  4.55it/s]
 48%|████▊     | 58/120 [00:10<00:13,  4.57it/s]
 50%|█████     | 60/120 [00:11<00:13,  4.51it/s]
 52%|█████▏    | 62/120 [00:11<00:13,  4.37it/s]
 53%|█████▎    | 64/120 [00:12<00:13,  4.26it/s]
 55%|█████▌    | 66/120 [00:12<00:13,  3.99it/s]
 57%|█████▋    | 68/120 [00:13<00:13,  3.76it/s]
 58%|█████▊    | 70/120 [00:14<00:13,  3.63it/s]
[12:16:40] [mem] running 3_PDBmkr.py parent=136.4MB child_tree=137.6MB combined=274.0MB
 60%|██████    | 72/120 [00:14<00:13,  3.67it/s]
 62%|██████▏   | 74/120 [00:15<00:12,  3.74it/s]
 63%|██████▎   | 76/120 [00:15<00:12,  3.62it/s]
 65%|██████▌   | 78/120 [00:16<00:12,  3.47it/s]
 67%|██████▋   | 80/120 [00:16<00:11,  3.49it/s]
 68%|██████▊   | 82/120 [00:17<00:10,  3.65it/s]
 69%|██████▉   | 83/120 [00:17<00:10,  3.56it/s]
 70%|███████   | 84/120 [00:18<00:09,  3.61it/s]
 72%|███████▏  | 86/120 [00:18<00:09,  3.73it/s]
 72%|███████▎  | 87/120 [00:18<00:08,  4.02it/s]
 73%|███████▎  | 88/120 [00:19<00:08,  3.95it/s]
[12:16:45] [mem] running 3_PDBmkr.py parent=136.4MB child_tree=138.7MB combined=275.1MB
 75%|███████▌  | 90/120 [00:19<00:08,  3.46it/s]
 77%|███████▋  | 92/120 [00:20<00:08,  3.22it/s]
 78%|███████▊  | 94/120 [00:20<00:07,  3.64it/s]
 79%|███████▉  | 95/120 [00:20<00:06,  3.94it/s]
 80%|████████  | 96/120 [00:21<00:06,  3.90it/s]
 82%|████████▏ | 98/120 [00:21<00:05,  4.09it/s]
 83%|████████▎ | 100/120 [00:22<00:04,  4.35it/s]
 84%|████████▍ | 101/120 [00:22<00:04,  4.49it/s]
 85%|████████▌ | 102/120 [00:22<00:03,  4.57it/s]
 86%|████████▌ | 103/120 [00:22<00:03,  5.26it/s]
 87%|████████▋ | 104/120 [00:22<00:03,  4.51it/s]
 88%|████████▊ | 106/120 [00:23<00:03,  4.47it/s]
 90%|█████████ | 108/120 [00:23<00:02,  4.42it/s]
 92%|█████████▏| 110/120 [00:24<00:02,  4.51it/s]
[12:16:50] [mem] running 3_PDBmkr.py parent=136.4MB child_tree=141.2MB combined=277.6MB
 93%|█████████▎| 112/120 [00:24<00:01,  4.49it/s]
 95%|█████████▌| 114/120 [00:25<00:01,  4.66it/s]
 97%|█████████▋| 116/120 [00:25<00:00,  4.43it/s]
 98%|█████████▊| 118/120 [00:26<00:00,  4.54it/s]
100%|██████████| 120/120 [00:26<00:00,  5.93it/s]
100%|██████████| 120/120 [00:26<00:00,  4.60it/s]
📁 Step 3 output root resolved: /app/jobs/62174d5e/WAR_PDB
📊 Step 3 requested=120 built=120 on_disk=120
🧾 Step 3 sample PDBs: ['NUDT5/2dsc_A_APR.pdb', 'NUDT5/2dsc_B_APR.pdb', 'NUDT5/3ac9_A_8GD.pdb', 'NUDT5/3ac9_B_8GD.pdb', 'NUDT5/3aca_A_8DD.pdb', 'NUDT5/3aca_B_8DD.pdb', 'NUDT5/3bm4_B_ADV.pdb', 'NUDT5/3l85_A_8OG.pdb', 'NUDT5/5qj4_A_K04.pdb', 'NUDT5/5qj4_B_K04.pdb']
✅ All PDBs built successfully.
✅ Wrote 5CharMAP.csv as headers-only (no 5-letter ligands detected).
[12:16:52] [mem] after 3_PDBmkr.py parent=136.4MB delta=+0.0MB combined_peak=278.7MB child_peak=142.3MB
[12:16:52] 🚀 Running 4_PDBfxr.py...
[12:16:52] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:16:52] [mem] before 4_PDBfxr.py parent=136.4MB combined=136.4MB
[12:16:52] 🧵 Worker caps for 4_PDBfxr.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:16:52] ⏱ No-output watchdog for 4_PDBfxr.py: 180s
[12:16:52] [mem] running 4_PDBfxr.py parent=136.4MB child_tree=0.7MB combined=137.1MB
🛑 Skip4.txt detected — no ligand5→ligandX renaming required.
✅ Step 4 exiting safely.
[12:16:52] [mem] after 4_PDBfxr.py parent=136.4MB delta=+0.0MB combined_peak=137.1MB child_peak=0.7MB
[12:16:52] 🚀 Running 5_PDBcln.py...
[12:16:52] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:16:52] [mem] before 5_PDBcln.py parent=136.4MB combined=136.4MB
[12:16:52] 🧵 Worker caps for 5_PDBcln.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:16:52] ⏱ No-output watchdog for 5_PDBcln.py: 180s
[12:16:52] [mem] running 5_PDBcln.py parent=136.4MB child_tree=0.7MB combined=137.1MB
📁 ROOT DIRECTORY: WAR_PDB
📁 Step 5 input root resolved: /app/jobs/62174d5e/WAR_PDB
📊 Step 5 input PDB count before cleaning: 120
=============================
🔬 Processing Protein: NUDT5
📂 Folder: WAR_PDB/NUDT5
=============================
🧪 Cleaning 5qja_A_K0A.pdb  | Keeping ligand: K0A
✔ Cleaned: 5qja_A_K0A.pdb
🧪 Cleaning 5qju_A_K2G.pdb  | Keeping ligand: K2G
✔ Cleaned: 5qju_A_K2G.pdb
🧪 Cleaning 5qj7_A_JMM.pdb  | Keeping ligand: JMM
✔ Cleaned: 5qj7_A_JMM.pdb
🧪 Cleaning 5qto_B_PWG.pdb  | Keeping ligand: PWG
✔ Cleaned: 5qto_B_PWG.pdb
🧪 Cleaning 5qj5_B_K0G.pdb  | Keeping ligand: K0G
✔ Cleaned: 5qj5_B_K0G.pdb
🧪 Cleaning 5qk9_C_K3V.pdb  | Keeping ligand: K3V
✔ Cleaned: 5qk9_C_K3V.pdb
🧪 Cleaning 5qjk_D_K1D.pdb  | Keeping ligand: K1D
✔ Cleaned: 5qjk_D_K1D.pdb
🧪 Cleaning 5qj9_C_K0D.pdb  | Keeping ligand: K0D
✔ Cleaned: 5qj9_C_K0D.pdb
🧪 Cleaning 5qjn_A_K1J.pdb  | Keeping ligand: K1J
✔ Cleaned: 5qjn_A_K1J.pdb
🧪 Cleaning 2dsc_A_APR.pdb  | Keeping ligand: APR
✔ Cleaned: 2dsc_A_APR.pdb
🧪 Cleaning 5qj5_D_K0G.pdb  | Keeping ligand: K0G
✔ Cleaned: 5qj5_D_K0G.pdb
🧪 Cleaning 3l85_A_8OG.pdb  | Keeping ligand: 8OG
✔ Cleaned: 3l85_A_8OG.pdb
🧪 Cleaning 5qjk_B_K1D.pdb  | Keeping ligand: K1D
✔ Cleaned: 5qjk_B_K1D.pdb
🧪 Cleaning 5qjk_A_K1D.pdb  | Keeping ligand: K1D
✔ Cleaned: 5qjk_A_K1D.pdb
🧪 Cleaning 3aca_B_8DD.pdb  | Keeping ligand: 8DD
✔ Cleaned: 3aca_B_8DD.pdb
🧪 Cleaning 5qjd_C_K0M.pdb  | Keeping ligand: K0M
✔ Cleaned: 5qjd_C_K0M.pdb
🧪 Cleaning 5qk6_A_K3M.pdb  | Keeping ligand: K3M
✔ Cleaned: 5qk6_A_K3M.pdb
🧪 Cleaning 5qjp_C_K1P.pdb  | Keeping ligand: K1P
✔ Cleaned: 5qjp_C_K1P.pdb
🧪 Cleaning 5qtl_C_PW7.pdb  | Keeping ligand: PW7
✔ Cleaned: 5qtl_C_PW7.pdb
🧪 Cleaning 5qk9_B_K3V.pdb  | Keeping ligand: K3V
✔ Cleaned: 5qk9_B_K3V.pdb
🧪 Cleaning 5qtl_D_PW7.pdb  | Keeping ligand: PW7
✔ Cleaned: 5qtl_D_PW7.pdb
🧪 Cleaning 5qk4_A_K3D.pdb  | Keeping ligand: K3D
✔ Cleaned: 5qk4_A_K3D.pdb
🧪 Cleaning 3bm4_B_ADV.pdb  | Keeping ligand: ADV
✔ Cleaned: 3bm4_B_ADV.pdb
🧪 Cleaning 5qtq_B_PWM.pdb  | Keeping ligand: PWM
✔ Cleaned: 5qtq_B_PWM.pdb
🧪 Cleaning 5qjo_D_K41.pdb  | Keeping ligand: K41
✔ Cleaned: 5qjo_D_K41.pdb
🧪 Cleaning 5qje_B_K0P.pdb  | Keeping ligand: K0P
✔ Cleaned: 5qje_B_K0P.pdb
🧪 Cleaning 5qjq_C_K1S.pdb  | Keeping ligand: K1S
✔ Cleaned: 5qjq_C_K1S.pdb
🧪 Cleaning 5qje_D_K0P.pdb  | Keeping ligand: K0P
✔ Cleaned: 5qje_D_K0P.pdb
🧪 Cleaning 5qjh_A_K0Y.pdb  | Keeping ligand: K0Y
✔ Cleaned: 5qjh_A_K0Y.pdb
🧪 Cleaning 5qj6_B_GQJ.pdb  | Keeping ligand: GQJ
✔ Cleaned: 5qj6_B_GQJ.pdb
🧪 Cleaning 5qk2_B_JH4.pdb  | Keeping ligand: JH4
✔ Cleaned: 5qk2_B_JH4.pdb
🧪 Cleaning 5qjc_C_K0J.pdb  | Keeping ligand: K0J
✔ Cleaned: 5qjc_C_K0J.pdb
🧪 Cleaning 5qjg_C_K0V.pdb  | Keeping ligand: K0V
✔ Cleaned: 5qjg_C_K0V.pdb
🧪 Cleaning 5qjj_C_6SU.pdb  | Keeping ligand: 6SU
✔ Cleaned: 5qjj_C_6SU.pdb
🧪 Cleaning 5qk1_C_K34.pdb  | Keeping ligand: K34
✔ Cleaned: 5qk1_C_K34.pdb
🧪 Cleaning 5qja_B_K0A.pdb  | Keeping ligand: K0A
✔ Cleaned: 5qja_B_K0A.pdb
🧪 Cleaning 5qju_D_K2G.pdb  | Keeping ligand: K2G
✔ Cleaned: 5qju_D_K2G.pdb
🧪 Cleaning 5qjr_A_K1V.pdb  | Keeping ligand: K1V
✔ Cleaned: 5qjr_A_K1V.pdb
🧪 Cleaning 5qjt_A_K24.pdb  | Keeping ligand: K24
✔ Cleaned: 5qjt_A_K24.pdb
🧪 Cleaning 5qtq_C_PWM.pdb  | Keeping ligand: PWM
✔ Cleaned: 5qtq_C_PWM.pdb
🧪 Cleaning 5qka_A_K3Y.pdb  | Keeping ligand: K3Y
✔ Cleaned: 5qka_A_K3Y.pdb
🧪 Cleaning 5qju_B_K2G.pdb  | Keeping ligand: K2G
✔ Cleaned: 5qju_B_K2G.pdb
🧪 Cleaning 8riy_BBB_W0O.pdb  | Keeping ligand: W0O
✔ Cleaned: 8riy_BBB_W0O.pdb
🧪 Cleaning 5qjb_A_K07.pdb  | Keeping ligand: K07
✔ Cleaned: 5qjb_A_K07.pdb
🧪 Cleaning 5qjw_D_K2M.pdb  | Keeping ligand: K2M
✔ Cleaned: 5qjw_D_K2M.pdb
🧪 Cleaning 5qjm_D_K1G.pdb  | Keeping ligand: K1G
✔ Cleaned: 5qjm_D_K1G.pdb
🧪 Cleaning 5qjl_C_JJM.pdb  | Keeping ligand: JJM
✔ Cleaned: 5qjl_C_JJM.pdb
🧪 Cleaning 5qtp_C_PWJ.pdb  | Keeping ligand: PWJ
✔ Cleaned: 5qtp_C_PWJ.pdb
🧪 Cleaning 3aca_A_8DD.pdb  | Keeping ligand: 8DD
✔ Cleaned: 3aca_A_8DD.pdb
🧪 Cleaning 5qj5_A_K0G.pdb  | Keeping ligand: K0G
✔ Cleaned: 5qj5_A_K0G.pdb
🧪 Cleaning 5qjw_A_K2M.pdb  | Keeping ligand: K2M
✔ Cleaned: 5qjw_A_K2M.pdb
🧪 Cleaning 5qto_C_PWG.pdb  | Keeping ligand: PWG
✔ Cleaned: 5qto_C_PWG.pdb
🧪 Cleaning 5qtq_A_PWM.pdb  | Keeping ligand: PWM
✔ Cleaned: 5qtq_A_PWM.pdb
🧪 Cleaning 5qjo_A_K41.pdb  | Keeping ligand: K41
✔ Cleaned: 5qjo_A_K41.pdb
🧪 Cleaning 5qk3_A_K3A.pdb  | Keeping ligand: K3A
✔ Cleaned: 5qk3_A_K3A.pdb
🧪 Cleaning 5qtq_D_PWM.pdb  | Keeping ligand: PWM
✔ Cleaned: 5qtq_D_PWM.pdb
🧪 Cleaning 5qk9_A_K3V.pdb  | Keeping ligand: K3V
✔ Cleaned: 5qk9_A_K3V.pdb
🧪 Cleaning 5qk1_D_K34.pdb  | Keeping ligand: K34
✔ Cleaned: 5qk1_D_K34.pdb
🧪 Cleaning 5qjp_D_K1P.pdb  | Keeping ligand: K1P
✔ Cleaned: 5qjp_D_K1P.pdb
🧪 Cleaning 5qtm_D_PWA.pdb  | Keeping ligand: PWA
✔ Cleaned: 5qtm_D_PWA.pdb
🧪 Cleaning 5qjc_A_K0J.pdb  | Keeping ligand: K0J
✔ Cleaned: 5qjc_A_K0J.pdb
🧪 Cleaning 5qtp_B_PWJ.pdb  | Keeping ligand: PWJ
✔ Cleaned: 5qtp_B_PWJ.pdb
🧪 Cleaning 5qjo_B_K41.pdb  | Keeping ligand: K41
✔ Cleaned: 5qjo_B_K41.pdb
🧪 Cleaning 5qjb_C_K07.pdb  | Keeping ligand: K07
✔ Cleaned: 5qjb_C_K07.pdb
🧪 Cleaning 5qk4_C_K3D.pdb  | Keeping ligand: K3D
✔ Cleaned: 5qk4_C_K3D.pdb
🧪 Cleaning 5qjw_B_K2M.pdb  | Keeping ligand: K2M
✔ Cleaned: 5qjw_B_K2M.pdb
🧪 Cleaning 5qjv_D_K2J.pdb  | Keeping ligand: K2J
✔ Cleaned: 5qjv_D_K2J.pdb
🧪 Cleaning 5qk1_A_K34.pdb  | Keeping ligand: K34
✔ Cleaned: 5qk1_A_K34.pdb
🧪 Cleaning 5qjm_A_K1G.pdb  | Keeping ligand: K1G
✔ Cleaned: 5qjm_A_K1G.pdb
🧪 Cleaning 5qj6_D_GQJ.pdb  | Keeping ligand: GQJ
✔ Cleaned: 5qj6_D_GQJ.pdb
🧪 Cleaning 5qjp_B_K1P.pdb  | Keeping ligand: K1P
✔ Cleaned: 5qjp_B_K1P.pdb
🧪 Cleaning 5qjy_A_K2S.pdb  | Keeping ligand: K2S
✔ Cleaned: 5qjy_A_K2S.pdb
🧪 Cleaning 5qk7_B_K3P.pdb  | Keeping ligand: K3P
✔ Cleaned: 5qk7_B_K3P.pdb
🧪 Cleaning 5qju_C_K2G.pdb  | Keeping ligand: K2G
✔ Cleaned: 5qju_C_K2G.pdb
🧪 Cleaning 5qjo_C_K41.pdb  | Keeping ligand: K41
✔ Cleaned: 5qjo_C_K41.pdb
🧪 Cleaning 5qj4_C_K04.pdb  | Keeping ligand: K04
✔ Cleaned: 5qj4_C_K04.pdb
🧪 Cleaning 5qjg_A_K0V.pdb  | Keeping ligand: K0V
✔ Cleaned: 5qjg_A_K0V.pdb
🧪 Cleaning 5qk5_A_K3J.pdb  | Keeping ligand: K3J
✔ Cleaned: 5qk5_A_K3J.pdb
🧪 Cleaning 5qji_D_K1A.pdb  | Keeping ligand: K1A
✔ Cleaned: 5qji_D_K1A.pdb
🧪 Cleaning 5qji_B_K1A.pdb  | Keeping ligand: K1A
✔ Cleaned: 5qji_B_K1A.pdb
🧪 Cleaning 5qjt_D_K24.pdb  | Keeping ligand: K24
✔ Cleaned: 5qjt_D_K24.pdb
🧪 Cleaning 5qjv_A_K2J.pdb  | Keeping ligand: K2J
✔ Cleaned: 5qjv_A_K2J.pdb
🧪 Cleaning 5qjk_C_K1D.pdb  | Keeping ligand: K1D
✔ Cleaned: 5qjk_C_K1D.pdb
🧪 Cleaning 5qjm_B_K1G.pdb  | Keeping ligand: K1G
✔ Cleaned: 5qjm_B_K1G.pdb
🧪 Cleaning 5qj4_A_K04.pdb  | Keeping ligand: K04
✔ Cleaned: 5qj4_A_K04.pdb
🧪 Cleaning 5qk8_A_K3S.pdb  | Keeping ligand: K3S
✔ Cleaned: 5qk8_A_K3S.pdb
🧪 Cleaning 5qjl_D_JJM.pdb  | Keeping ligand: JJM
✔ Cleaned: 5qjl_D_JJM.pdb
🧪 Cleaning 2dsc_B_APR.pdb  | Keeping ligand: APR
✔ Cleaned: 2dsc_B_APR.pdb
🧪 Cleaning 5qtl_B_PW7.pdb  | Keeping ligand: PW7
✔ Cleaned: 5qtl_B_PW7.pdb
🧪 Cleaning 3ac9_B_8GD.pdb  | Keeping ligand: 8GD
✔ Cleaned: 3ac9_B_8GD.pdb
🧪 Cleaning 8riy_AAA_W0O.pdb  | Keeping ligand: W0O
✔ Cleaned: 8riy_AAA_W0O.pdb
🧪 Cleaning 5qjy_C_K2S.pdb  | Keeping ligand: K2S
✔ Cleaned: 5qjy_C_K2S.pdb
🧪 Cleaning 5qjl_B_JJM.pdb  | Keeping ligand: JJM
✔ Cleaned: 5qjl_B_JJM.pdb
🧪 Cleaning 5qk1_B_K34.pdb  | Keeping ligand: K34
✔ Cleaned: 5qk1_B_K34.pdb
🧪 Cleaning 5qtp_D_PWJ.pdb  | Keeping ligand: PWJ
✔ Cleaned: 5qtp_D_PWJ.pdb
🧪 Cleaning 5qjj_D_6SU.pdb  | Keeping ligand: 6SU
✔ Cleaned: 5qjj_D_6SU.pdb
🧪 Cleaning 5qjv_C_K2J.pdb  | Keeping ligand: K2J
✔ Cleaned: 5qjv_C_K2J.pdb
🧪 Cleaning 5qjq_A_K1S.pdb  | Keeping ligand: K1S
✔ Cleaned: 5qjq_A_K1S.pdb
🧪 Cleaning 5qj9_B_K0D.pdb  | Keeping ligand: K0D
✔ Cleaned: 5qj9_B_K0D.pdb
🧪 Cleaning 5qj8_B_ELQ.pdb  | Keeping ligand: ELQ
✔ Cleaned: 5qj8_B_ELQ.pdb
🧪 Cleaning 5qjm_C_K1G.pdb  | Keeping ligand: K1G
✔ Cleaned: 5qjm_C_K1G.pdb
🧪 Cleaning 5qj7_D_JMM.pdb  | Keeping ligand: JMM
✔ Cleaned: 5qj7_D_JMM.pdb
🧪 Cleaning 5qjs_A_K1Y.pdb  | Keeping ligand: K1Y
✔ Cleaned: 5qjs_A_K1Y.pdb
🧪 Cleaning 5qto_A_PWG.pdb  | Keeping ligand: PWG
✔ Cleaned: 5qto_A_PWG.pdb
🧪 Cleaning 5qj7_C_JMM.pdb  | Keeping ligand: JMM
✔ Cleaned: 5qj7_C_JMM.pdb
🧪 Cleaning 3ac9_A_8GD.pdb  | Keeping ligand: 8GD
✔ Cleaned: 3ac9_A_8GD.pdb
🧪 Cleaning 5qjd_A_K0M.pdb  | Keeping ligand: K0M
✔ Cleaned: 5qjd_A_K0M.pdb
🧪 Cleaning 5qk7_C_K3P.pdb  | Keeping ligand: K3P
✔ Cleaned: 5qk7_C_K3P.pdb
🧪 Cleaning 5qj9_A_K0D.pdb  | Keeping ligand: K0D
✔ Cleaned: 5qj9_A_K0D.pdb
🧪 Cleaning 5qjx_B_K2P.pdb  | Keeping ligand: K2P
✔ Cleaned: 5qjx_B_K2P.pdb
🧪 Cleaning 5qj4_B_K04.pdb  | Keeping ligand: K04
✔ Cleaned: 5qj4_B_K04.pdb
🧪 Cleaning 5qja_D_K0A.pdb  | Keeping ligand: K0A
✔ Cleaned: 5qja_D_K0A.pdb
🧪 Cleaning 5qj5_C_K0G.pdb  | Keeping ligand: K0G
✔ Cleaned: 5qj5_C_K0G.pdb
🧪 Cleaning 5qjg_D_K0V.pdb  | Keeping ligand: K0V
✔ Cleaned: 5qjg_D_K0V.pdb
🧪 Cleaning 5qjq_B_K1S.pdb  | Keeping ligand: K1S
✔ Cleaned: 5qjq_B_K1S.pdb
🧪 Cleaning 5qtp_A_PWJ.pdb  | Keeping ligand: PWJ
✔ Cleaned: 5qtp_A_PWJ.pdb
🧪 Cleaning 5qtm_A_PWA.pdb  | Keeping ligand: PWA
✔ Cleaned: 5qtm_A_PWA.pdb
🧪 Cleaning 5qtm_B_PWA.pdb  | Keeping ligand: PWA
✔ Cleaned: 5qtm_B_PWA.pdb
🧪 Cleaning 5qk5_C_K3J.pdb  | Keeping ligand: K3J
✔ Cleaned: 5qk5_C_K3J.pdb
🧪 Cleaning 5qjn_B_K1J.pdb  | Keeping ligand: K1J
✔ Cleaned: 5qjn_B_K1J.pdb
📊 Step 5 remaining PDB count after cleaning: 120
🎉 DONE — cleaned=120, dropped=0
[12:16:53] [mem] after 5_PDBcln.py parent=136.4MB delta=+0.0MB combined_peak=137.1MB child_peak=0.7MB
[12:16:53] 🚀 Running 6_SASA.py...
[12:16:53] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:16:53] [mem] before 6_SASA.py parent=136.4MB combined=136.4MB
[12:16:53] 🧵 Worker caps for 6_SASA.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:16:53] ⏱ No-output watchdog for 6_SASA.py: 180s
[12:16:53] [mem] running 6_SASA.py parent=136.4MB child_tree=0.6MB combined=137.0MB
📁 Scanning WARHEAD PDB ROOT: WAR_PDB
📁 Step 6 input root resolved: /app/jobs/62174d5e/WAR_PDB
🔎 Found 120 PDB files
🧾 Step 6 sample PDBs: ['NUDT5/2dsc_A_APR.pdb', 'NUDT5/2dsc_B_APR.pdb', 'NUDT5/3ac9_A_8GD.pdb', 'NUDT5/3ac9_B_8GD.pdb', 'NUDT5/3aca_A_8DD.pdb', 'NUDT5/3aca_B_8DD.pdb', 'NUDT5/3bm4_B_ADV.pdb', 'NUDT5/3l85_A_8OG.pdb', 'NUDT5/5qj4_A_K04.pdb', 'NUDT5/5qj4_B_K04.pdb']
🧠 Using max_workers=3 stream_output=True
✅ 3ac9_A_8GD.pdb: 17/19 exposed (0.90)
✅ 2dsc_A_APR.pdb: 31/36 exposed (0.86)
✅ 2dsc_B_APR.pdb: 33/36 exposed (0.92)
✅ 3ac9_B_8GD.pdb: 22/28 exposed (0.79)
✅ 3aca_A_8DD.pdb: 21/27 exposed (0.78)
✅ 3bm4_B_ADV.pdb: 58/72 exposed (0.81)
✅ 3aca_B_8DD.pdb: 23/27 exposed (0.85)
✅ 3l85_A_8OG.pdb: 36/37 exposed (0.97)
✅ 5qj4_B_K04.pdb: 14/14 exposed (1.00)
✅ 5qj4_C_K04.pdb: 28/28 exposed (1.00)
✅ 5qj4_A_K04.pdb: 13/14 exposed (0.93)
✅ 5qj5_C_K0G.pdb: 15/16 exposed (0.94)
✅ 5qj5_B_K0G.pdb: 16/16 exposed (1.00)
✅ 5qj5_A_K0G.pdb: 16/16 exposed (1.00)
✅ 5qj6_B_GQJ.pdb: 14/17 exposed (0.82)
[12:16:58] [mem] running 6_SASA.py parent=136.4MB child_tree=87.5MB combined=223.9MB
✅ 5qj5_D_K0G.pdb: 16/16 exposed (1.00)
✅ 5qj6_D_GQJ.pdb: 14/17 exposed (0.82)
✅ 5qj7_A_JMM.pdb: 34/36 exposed (0.94)
✅ 5qj7_D_JMM.pdb: 17/18 exposed (0.94)
✅ 5qj7_C_JMM.pdb: 17/18 exposed (0.94)
✅ 5qj8_B_ELQ.pdb: 15/17 exposed (0.88)
✅ 5qj9_A_K0D.pdb: 14/15 exposed (0.93)
✅ 5qj9_B_K0D.pdb: 14/15 exposed (0.93)
✅ 5qj9_C_K0D.pdb: 28/30 exposed (0.93)
✅ 5qja_A_K0A.pdb: 12/14 exposed (0.86)
📊 Progress: 25/120
✅ 5qja_B_K0A.pdb: 12/14 exposed (0.86)
✅ 5qja_D_K0A.pdb: 25/28 exposed (0.89)
✅ 5qjb_A_K07.pdb: 26/30 exposed (0.87)
✅ 5qjb_C_K07.pdb: 14/15 exposed (0.93)
✅ 5qjc_A_K0J.pdb: 10/10 exposed (1.00)
✅ 5qjc_C_K0J.pdb: 10/10 exposed (1.00)
✅ 5qjd_A_K0M.pdb: 14/15 exposed (0.93)
✅ 5qje_B_K0P.pdb: 16/17 exposed (0.94)
✅ 5qjd_C_K0M.pdb: 15/15 exposed (1.00)
✅ 5qje_D_K0P.pdb: 17/17 exposed (1.00)
[12:17:03] [mem] running 6_SASA.py parent=136.4MB child_tree=87.5MB combined=223.9MB
✅ 5qjg_A_K0V.pdb: 31/34 exposed (0.91)
✅ 5qjg_C_K0V.pdb: 16/17 exposed (0.94)
✅ 5qjg_D_K0V.pdb: 16/17 exposed (0.94)
✅ 5qjh_A_K0Y.pdb: 14/14 exposed (1.00)
✅ 5qji_B_K1A.pdb: 13/15 exposed (0.87)
✅ 5qji_D_K1A.pdb: 14/15 exposed (0.93)
✅ 5qjj_D_6SU.pdb: 14/15 exposed (0.93)
✅ 5qjj_C_6SU.pdb: 14/15 exposed (0.93)
✅ 5qjk_A_K1D.pdb: 12/13 exposed (0.92)
✅ 5qjk_C_K1D.pdb: 11/13 exposed (0.85)
✅ 5qjk_B_K1D.pdb: 12/13 exposed (0.92)
✅ 5qjk_D_K1D.pdb: 11/13 exposed (0.85)
✅ 5qjl_C_JJM.pdb: 18/18 exposed (1.00)
✅ 5qjl_B_JJM.pdb: 36/36 exposed (1.00)
✅ 5qjl_D_JJM.pdb: 18/18 exposed (1.00)
📊 Progress: 50/120
✅ 5qjm_A_K1G.pdb: 14/15 exposed (0.93)
✅ 5qjm_C_K1G.pdb: 13/15 exposed (0.87)
✅ 5qjm_B_K1G.pdb: 14/15 exposed (0.93)
✅ 5qjm_D_K1G.pdb: 15/15 exposed (1.00)
✅ 5qjn_A_K1J.pdb: 12/14 exposed (0.86)
✅ 5qjn_B_K1J.pdb: 13/14 exposed (0.93)
✅ 5qjo_A_K41.pdb: 12/12 exposed (1.00)
[12:17:09] [mem] running 6_SASA.py parent=136.4MB child_tree=87.6MB combined=224.0MB
✅ 5qjo_B_K41.pdb: 12/12 exposed (1.00)
✅ 5qjo_D_K41.pdb: 11/12 exposed (0.92)
✅ 5qjo_C_K41.pdb: 12/12 exposed (1.00)
✅ 5qjp_B_K1P.pdb: 24/26 exposed (0.92)
✅ 5qjp_C_K1P.pdb: 11/13 exposed (0.85)
✅ 5qjq_A_K1S.pdb: 13/15 exposed (0.87)
✅ 5qjp_D_K1P.pdb: 13/13 exposed (1.00)
✅ 5qjq_B_K1S.pdb: 13/15 exposed (0.87)
✅ 5qjr_A_K1V.pdb: 19/24 exposed (0.79)
✅ 5qjq_C_K1S.pdb: 27/30 exposed (0.90)
✅ 5qjs_A_K1Y.pdb: 17/17 exposed (1.00)
✅ 5qjt_D_K24.pdb: 10/10 exposed (1.00)
✅ 5qjt_A_K24.pdb: 10/10 exposed (1.00)
✅ 5qju_A_K2G.pdb: 12/13 exposed (0.92)
✅ 5qju_C_K2G.pdb: 12/13 exposed (0.92)
✅ 5qju_B_K2G.pdb: 12/13 exposed (0.92)
✅ 5qju_D_K2G.pdb: 13/13 exposed (1.00)
✅ 5qjv_D_K2J.pdb: 10/10 exposed (1.00)
📊 Progress: 75/120
✅ 5qjv_A_K2J.pdb: 9/10 exposed (0.90)
✅ 5qjv_C_K2J.pdb: 10/10 exposed (1.00)
✅ 5qjw_A_K2M.pdb: 15/16 exposed (0.94)
[12:17:14] [mem] running 6_SASA.py parent=136.4MB child_tree=87.7MB combined=224.1MB
✅ 5qjw_B_K2M.pdb: 14/16 exposed (0.88)
✅ 5qjw_D_K2M.pdb: 13/16 exposed (0.81)
✅ 5qjx_B_K2P.pdb: 11/14 exposed (0.79)
✅ 5qjy_C_K2S.pdb: 11/13 exposed (0.85)
✅ 5qjy_A_K2S.pdb: 24/26 exposed (0.92)
✅ 5qk1_A_K34.pdb: 10/10 exposed (1.00)
✅ 5qk1_B_K34.pdb: 9/10 exposed (0.90)
✅ 5qk1_C_K34.pdb: 9/10 exposed (0.90)
✅ 5qk2_B_JH4.pdb: 6/8 exposed (0.75)
✅ 5qk1_D_K34.pdb: 10/10 exposed (1.00)
✅ 5qk4_A_K3D.pdb: 26/28 exposed (0.93)
✅ 5qk3_A_K3A.pdb: 9/10 exposed (0.90)
✅ 5qk4_C_K3D.pdb: 13/14 exposed (0.93)
✅ 5qk5_A_K3J.pdb: 20/20 exposed (1.00)
✅ 5qk5_C_K3J.pdb: 20/20 exposed (1.00)
✅ 5qk7_B_K3P.pdb: 27/28 exposed (0.96)
✅ 5qk6_A_K3M.pdb: 11/11 exposed (1.00)
✅ 5qk7_C_K3P.pdb: 27/28 exposed (0.96)
✅ 5qk9_A_K3V.pdb: 15/15 exposed (1.00)
[12:17:20] [mem] running 6_SASA.py parent=136.4MB child_tree=87.8MB combined=224.2MB
✅ 5qk8_A_K3S.pdb: 10/10 exposed (1.00)
✅ 5qk9_B_K3V.pdb: 14/15 exposed (0.93)
✅ 5qtl_B_PW7.pdb: 19/22 exposed (0.86)
📊 Progress: 100/120
✅ 5qka_A_K3Y.pdb: 14/15 exposed (0.93)
✅ 5qk9_C_K3V.pdb: 30/30 exposed (1.00)
✅ 5qtl_C_PW7.pdb: 10/11 exposed (0.91)
✅ 5qtm_B_PWA.pdb: 12/12 exposed (1.00)
✅ 5qtl_D_PW7.pdb: 10/11 exposed (0.91)
✅ 5qtm_A_PWA.pdb: 11/12 exposed (0.92)
✅ 5qtm_D_PWA.pdb: 24/24 exposed (1.00)
✅ 5qto_A_PWG.pdb: 13/16 exposed (0.81)
✅ 5qto_B_PWG.pdb: 12/16 exposed (0.75)
✅ 5qto_C_PWG.pdb: 30/32 exposed (0.94)
✅ 5qtp_B_PWJ.pdb: 15/16 exposed (0.94)
✅ 5qtp_C_PWJ.pdb: 14/16 exposed (0.88)
✅ 5qtp_A_PWJ.pdb: 15/16 exposed (0.94)
✅ 5qtq_B_PWM.pdb: 12/12 exposed (1.00)
✅ 5qtp_D_PWJ.pdb: 14/16 exposed (0.88)
✅ 5qtq_A_PWM.pdb: 11/12 exposed (0.92)
✅ 5qtq_C_PWM.pdb: 12/12 exposed (1.00)
✅ 5qtq_D_PWM.pdb: 12/12 exposed (1.00)
[12:17:25] [mem] running 6_SASA.py parent=136.4MB child_tree=87.8MB combined=224.2MB
✅ 8riy_AAA_W0O.pdb: 24/30 exposed (0.80)
✅ 8riy_BBB_W0O.pdb: 28/30 exposed (0.93)
🎉 WARHEAD SASA COMPLETE
[12:17:25] [mem] after 6_SASA.py parent=136.4MB delta=+0.0MB combined_peak=224.2MB child_peak=87.8MB
[12:17:25] 🚀 Running 7_metadata.py...
[12:17:25] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:17:25] [mem] before 7_metadata.py parent=136.4MB combined=136.4MB
[12:17:25] 🧵 Worker caps for 7_metadata.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:17:25] ⏱ No-output watchdog for 7_metadata.py: 180s
[12:17:25] [mem] running 7_metadata.py parent=136.4MB child_tree=0.6MB combined=137.0MB
📂 Using SMILES file: components-smiles-stereo-oe.smi
🧬 Loaded 49558 SMILES entries.
🔎 Sample SMILES keys: ['000', '001', '002', '003', '004', '005', '006', '007', '008', '009', '00A', '00B', '00C', '00D', '00E']
🤖 AUTO MODE: Warhead_SASA_summary.csv
📥 Loaded SASA table.
📊 Step 7 input row count: 120
🧾 Step 7 input columns: ['Target', 'pdb_id', 'Warhead', 'Residue_ID', 'Variant', 'Total_atoms', 'Exposed_atoms', 'SASA_in_complex_A2', '%Exposed', '%Buried']
ℹ️ 5CharMAP.csv has no usable rows → alias mapping disabled.
🔗 WAR_PDB chain map built: 51 (pdb,ligX) groups
🔬 BEGIN RESOLUTION TRACE
--------------------------------------------------
Row 0
  PDB: 3ac9
  Warhead (input): 8GD
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: 8GD
  SMILES found? YES
--------------------------------------------------
Row 1
  PDB: 2dsc
  Warhead (input): APR
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: APR
  SMILES found? YES
--------------------------------------------------
Row 2
  PDB: 2dsc
  Warhead (input): APR
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: APR
  SMILES found? YES
--------------------------------------------------
Row 3
  PDB: 3ac9
  Warhead (input): 8GD
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: 8GD
  SMILES found? YES
--------------------------------------------------
Row 4
  PDB: 3aca
  Warhead (input): 8DD
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: 8DD
  SMILES found? YES
--------------------------------------------------
Row 5
  PDB: 3bm4
  Warhead (input): ADV
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: ADV
  SMILES found? YES
--------------------------------------------------
Row 6
  PDB: 3aca
  Warhead (input): 8DD
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: 8DD
  SMILES found? YES
--------------------------------------------------
Row 7
  PDB: 3l85
  Warhead (input): 8OG
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: 8OG
  SMILES found? YES
--------------------------------------------------
Row 8
  PDB: 5qj4
  Warhead (input): K04
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K04
  SMILES found? YES
--------------------------------------------------
Row 9
  PDB: 5qj4
  Warhead (input): K04
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K04
  SMILES found? YES
--------------------------------------------------
Row 10
  PDB: 5qj4
  Warhead (input): K04
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K04
  SMILES found? YES
--------------------------------------------------
Row 11
  PDB: 5qj5
  Warhead (input): K0G
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0G
  SMILES found? YES
--------------------------------------------------
Row 12
  PDB: 5qj5
  Warhead (input): K0G
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0G
  SMILES found? YES
--------------------------------------------------
Row 13
  PDB: 5qj5
  Warhead (input): K0G
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0G
  SMILES found? YES
--------------------------------------------------
Row 14
  PDB: 5qj6
  Warhead (input): GQJ
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: GQJ
  SMILES found? YES
--------------------------------------------------
Row 15
  PDB: 5qj5
  Warhead (input): K0G
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0G
  SMILES found? YES
--------------------------------------------------
Row 16
  PDB: 5qj6
  Warhead (input): GQJ
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: GQJ
  SMILES found? YES
--------------------------------------------------
Row 17
  PDB: 5qj7
  Warhead (input): JMM
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: JMM
  SMILES found? YES
--------------------------------------------------
Row 18
  PDB: 5qj7
  Warhead (input): JMM
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: JMM
  SMILES found? YES
--------------------------------------------------
Row 19
  PDB: 5qj7
  Warhead (input): JMM
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: JMM
  SMILES found? YES
--------------------------------------------------
Row 20
  PDB: 5qj8
  Warhead (input): ELQ
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: ELQ
  SMILES found? YES
--------------------------------------------------
Row 21
  PDB: 5qj9
  Warhead (input): K0D
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0D
  SMILES found? YES
--------------------------------------------------
Row 22
  PDB: 5qj9
  Warhead (input): K0D
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0D
  SMILES found? YES
--------------------------------------------------
Row 23
  PDB: 5qj9
  Warhead (input): K0D
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0D
  SMILES found? YES
--------------------------------------------------
Row 24
  PDB: 5qja
  Warhead (input): K0A
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0A
  SMILES found? YES
--------------------------------------------------
Row 25
  PDB: 5qja
  Warhead (input): K0A
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0A
  SMILES found? YES
--------------------------------------------------
Row 26
  PDB: 5qja
  Warhead (input): K0A
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0A
  SMILES found? YES
--------------------------------------------------
Row 27
  PDB: 5qjb
  Warhead (input): K07
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K07
  SMILES found? YES
--------------------------------------------------
Row 28
  PDB: 5qjb
  Warhead (input): K07
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K07
  SMILES found? YES
--------------------------------------------------
Row 29
  PDB: 5qjc
  Warhead (input): K0J
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0J
  SMILES found? YES
--------------------------------------------------
Row 30
  PDB: 5qjc
  Warhead (input): K0J
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0J
  SMILES found? YES
--------------------------------------------------
Row 31
  PDB: 5qjd
  Warhead (input): K0M
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0M
  SMILES found? YES
--------------------------------------------------
Row 32
  PDB: 5qje
  Warhead (input): K0P
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0P
  SMILES found? YES
--------------------------------------------------
Row 33
  PDB: 5qjd
  Warhead (input): K0M
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0M
  SMILES found? YES
--------------------------------------------------
Row 34
  PDB: 5qje
  Warhead (input): K0P
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0P
  SMILES found? YES
--------------------------------------------------
Row 35
  PDB: 5qjg
  Warhead (input): K0V
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0V
  SMILES found? YES
--------------------------------------------------
Row 36
  PDB: 5qjg
  Warhead (input): K0V
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0V
  SMILES found? YES
--------------------------------------------------
Row 37
  PDB: 5qjg
  Warhead (input): K0V
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0V
  SMILES found? YES
--------------------------------------------------
Row 38
  PDB: 5qjh
  Warhead (input): K0Y
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K0Y
  SMILES found? YES
--------------------------------------------------
Row 39
  PDB: 5qji
  Warhead (input): K1A
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1A
  SMILES found? YES
--------------------------------------------------
Row 40
  PDB: 5qji
  Warhead (input): K1A
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1A
  SMILES found? YES
--------------------------------------------------
Row 41
  PDB: 5qjj
  Warhead (input): 6SU
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: 6SU
  SMILES found? YES
--------------------------------------------------
Row 42
  PDB: 5qjj
  Warhead (input): 6SU
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: 6SU
  SMILES found? YES
--------------------------------------------------
Row 43
  PDB: 5qjk
  Warhead (input): K1D
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1D
  SMILES found? YES
--------------------------------------------------
Row 44
  PDB: 5qjk
  Warhead (input): K1D
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1D
  SMILES found? YES
--------------------------------------------------
Row 45
  PDB: 5qjk
  Warhead (input): K1D
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1D
  SMILES found? YES
--------------------------------------------------
Row 46
  PDB: 5qjk
  Warhead (input): K1D
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1D
  SMILES found? YES
--------------------------------------------------
Row 47
  PDB: 5qjl
  Warhead (input): JJM
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: JJM
  SMILES found? YES
--------------------------------------------------
Row 48
  PDB: 5qjl
  Warhead (input): JJM
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: JJM
  SMILES found? YES
--------------------------------------------------
Row 49
  PDB: 5qjl
  Warhead (input): JJM
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: JJM
  SMILES found? YES
--------------------------------------------------
Row 50
  PDB: 5qjm
  Warhead (input): K1G
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1G
  SMILES found? YES
--------------------------------------------------
Row 51
  PDB: 5qjm
  Warhead (input): K1G
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1G
  SMILES found? YES
--------------------------------------------------
Row 52
  PDB: 5qjm
  Warhead (input): K1G
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1G
  SMILES found? YES
--------------------------------------------------
Row 53
  PDB: 5qjm
  Warhead (input): K1G
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1G
  SMILES found? YES
--------------------------------------------------
Row 54
  PDB: 5qjn
  Warhead (input): K1J
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1J
  SMILES found? YES
--------------------------------------------------
Row 55
  PDB: 5qjn
  Warhead (input): K1J
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1J
  SMILES found? YES
--------------------------------------------------
Row 56
  PDB: 5qjo
  Warhead (input): K41
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K41
  SMILES found? YES
--------------------------------------------------
Row 57
  PDB: 5qjo
  Warhead (input): K41
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K41
  SMILES found? YES
--------------------------------------------------
Row 58
  PDB: 5qjo
  Warhead (input): K41
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K41
  SMILES found? YES
--------------------------------------------------
Row 59
  PDB: 5qjo
  Warhead (input): K41
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K41
  SMILES found? YES
--------------------------------------------------
Row 60
  PDB: 5qjp
  Warhead (input): K1P
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1P
  SMILES found? YES
--------------------------------------------------
Row 61
  PDB: 5qjp
  Warhead (input): K1P
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1P
  SMILES found? YES
--------------------------------------------------
Row 62
  PDB: 5qjq
  Warhead (input): K1S
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1S
  SMILES found? YES
--------------------------------------------------
Row 63
  PDB: 5qjp
  Warhead (input): K1P
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1P
  SMILES found? YES
--------------------------------------------------
Row 64
  PDB: 5qjq
  Warhead (input): K1S
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1S
  SMILES found? YES
--------------------------------------------------
Row 65
  PDB: 5qjr
  Warhead (input): K1V
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1V
  SMILES found? YES
--------------------------------------------------
Row 66
  PDB: 5qjq
  Warhead (input): K1S
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1S
  SMILES found? YES
--------------------------------------------------
Row 67
  PDB: 5qjs
  Warhead (input): K1Y
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K1Y
  SMILES found? YES
--------------------------------------------------
Row 68
  PDB: 5qjt
  Warhead (input): K24
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K24
  SMILES found? YES
--------------------------------------------------
Row 69
  PDB: 5qjt
  Warhead (input): K24
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K24
  SMILES found? YES
--------------------------------------------------
Row 70
  PDB: 5qju
  Warhead (input): K2G
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K2G
  SMILES found? YES
--------------------------------------------------
Row 71
  PDB: 5qju
  Warhead (input): K2G
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K2G
  SMILES found? YES
--------------------------------------------------
Row 72
  PDB: 5qju
  Warhead (input): K2G
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K2G
  SMILES found? YES
--------------------------------------------------
Row 73
  PDB: 5qju
  Warhead (input): K2G
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K2G
  SMILES found? YES
--------------------------------------------------
Row 74
  PDB: 5qjv
  Warhead (input): K2J
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K2J
  SMILES found? YES
--------------------------------------------------
Row 75
  PDB: 5qjv
  Warhead (input): K2J
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K2J
  SMILES found? YES
--------------------------------------------------
Row 76
  PDB: 5qjv
  Warhead (input): K2J
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K2J
  SMILES found? YES
--------------------------------------------------
Row 77
  PDB: 5qjw
  Warhead (input): K2M
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K2M
  SMILES found? YES
--------------------------------------------------
Row 78
  PDB: 5qjw
  Warhead (input): K2M
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K2M
  SMILES found? YES
--------------------------------------------------
Row 79
  PDB: 5qjw
  Warhead (input): K2M
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K2M
  SMILES found? YES
--------------------------------------------------
Row 80
  PDB: 5qjx
  Warhead (input): K2P
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K2P
  SMILES found? YES
--------------------------------------------------
Row 81
  PDB: 5qjy
  Warhead (input): K2S
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K2S
  SMILES found? YES
--------------------------------------------------
Row 82
  PDB: 5qjy
  Warhead (input): K2S
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K2S
  SMILES found? YES
--------------------------------------------------
Row 83
  PDB: 5qk1
  Warhead (input): K34
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K34
  SMILES found? YES
--------------------------------------------------
Row 84
  PDB: 5qk1
  Warhead (input): K34
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K34
  SMILES found? YES
--------------------------------------------------
Row 85
  PDB: 5qk1
  Warhead (input): K34
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K34
  SMILES found? YES
--------------------------------------------------
Row 86
  PDB: 5qk2
  Warhead (input): JH4
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: JH4
  SMILES found? YES
--------------------------------------------------
Row 87
  PDB: 5qk1
  Warhead (input): K34
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K34
  SMILES found? YES
--------------------------------------------------
Row 88
  PDB: 5qk4
  Warhead (input): K3D
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K3D
  SMILES found? YES
--------------------------------------------------
Row 89
  PDB: 5qk3
  Warhead (input): K3A
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K3A
  SMILES found? YES
--------------------------------------------------
Row 90
  PDB: 5qk4
  Warhead (input): K3D
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K3D
  SMILES found? YES
--------------------------------------------------
Row 91
  PDB: 5qk5
  Warhead (input): K3J
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K3J
  SMILES found? YES
--------------------------------------------------
Row 92
  PDB: 5qk5
  Warhead (input): K3J
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K3J
  SMILES found? YES
--------------------------------------------------
Row 93
  PDB: 5qk7
  Warhead (input): K3P
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K3P
  SMILES found? YES
--------------------------------------------------
Row 94
  PDB: 5qk6
  Warhead (input): K3M
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K3M
  SMILES found? YES
--------------------------------------------------
Row 95
  PDB: 5qk7
  Warhead (input): K3P
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K3P
  SMILES found? YES
--------------------------------------------------
Row 96
  PDB: 5qk9
  Warhead (input): K3V
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K3V
  SMILES found? YES
--------------------------------------------------
Row 97
  PDB: 5qk8
  Warhead (input): K3S
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K3S
  SMILES found? YES
--------------------------------------------------
Row 98
  PDB: 5qk9
  Warhead (input): K3V
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K3V
  SMILES found? YES
--------------------------------------------------
Row 99
  PDB: 5qtl
  Warhead (input): PW7
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PW7
  SMILES found? YES
--------------------------------------------------
Row 100
  PDB: 5qka
  Warhead (input): K3Y
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K3Y
  SMILES found? YES
--------------------------------------------------
Row 101
  PDB: 5qk9
  Warhead (input): K3V
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: K3V
  SMILES found? YES
--------------------------------------------------
Row 102
  PDB: 5qtl
  Warhead (input): PW7
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PW7
  SMILES found? YES
--------------------------------------------------
Row 103
  PDB: 5qtm
  Warhead (input): PWA
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWA
  SMILES found? YES
--------------------------------------------------
Row 104
  PDB: 5qtl
  Warhead (input): PW7
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PW7
  SMILES found? YES
--------------------------------------------------
Row 105
  PDB: 5qtm
  Warhead (input): PWA
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWA
  SMILES found? YES
--------------------------------------------------
Row 106
  PDB: 5qtm
  Warhead (input): PWA
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWA
  SMILES found? YES
--------------------------------------------------
Row 107
  PDB: 5qto
  Warhead (input): PWG
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWG
  SMILES found? YES
--------------------------------------------------
Row 108
  PDB: 5qto
  Warhead (input): PWG
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWG
  SMILES found? YES
--------------------------------------------------
Row 109
  PDB: 5qto
  Warhead (input): PWG
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWG
  SMILES found? YES
--------------------------------------------------
Row 110
  PDB: 5qtp
  Warhead (input): PWJ
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWJ
  SMILES found? YES
--------------------------------------------------
Row 111
  PDB: 5qtp
  Warhead (input): PWJ
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWJ
  SMILES found? YES
--------------------------------------------------
Row 112
  PDB: 5qtp
  Warhead (input): PWJ
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWJ
  SMILES found? YES
--------------------------------------------------
Row 113
  PDB: 5qtq
  Warhead (input): PWM
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWM
  SMILES found? YES
--------------------------------------------------
Row 114
  PDB: 5qtp
  Warhead (input): PWJ
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWJ
  SMILES found? YES
--------------------------------------------------
Row 115
  PDB: 5qtq
  Warhead (input): PWM
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWM
  SMILES found? YES
--------------------------------------------------
Row 116
  PDB: 5qtq
  Warhead (input): PWM
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWM
  SMILES found? YES
--------------------------------------------------
Row 117
  PDB: 5qtq
  Warhead (input): PWM
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: PWM
  SMILES found? YES
--------------------------------------------------
Row 118
  PDB: 8riy
  Warhead (input): W0O
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: W0O
  SMILES found? YES
--------------------------------------------------
Row 119
  PDB: 8riy
  Warhead (input): W0O
  Warhead_5 (if mapped): (blank)
  SMILES lookup key: W0O
  SMILES found? YES
🔬 END RESOLUTION TRACE
✅ Filtered SASA table: removed 0 ion-only rows; remaining 120 rows
💾 Saved Resolved_SASA_Summary.csv
💾 Saved Ligand_PDB_Index.csv
🚀 Launching metadata engine mode=threads max_workers=3
🧪 Computing descriptors:   0%|          | 0/51 [00:00<?, ?it/s]
🧪 Computing descriptors:   2%|▏         | 1/51 [00:00<00:07,  6.47it/s]
🧪 Computing descriptors:   8%|▊         | 4/51 [00:00<00:02, 16.66it/s]
🧪 Computing descriptors:  14%|█▎        | 7/51 [00:00<00:02, 20.95it/s]
🧪 Computing descriptors:  20%|█▉        | 10/51 [00:00<00:01, 23.10it/s]
🧪 Computing descriptors:  25%|██▌       | 13/51 [00:00<00:01, 24.73it/s]
🧪 Computing descriptors:  31%|███▏      | 16/51 [00:00<00:01, 25.63it/s]
🧪 Computing descriptors:  37%|███▋      | 19/51 [00:00<00:01, 26.65it/s]
🧪 Computing descriptors:  43%|████▎     | 22/51 [00:00<00:01, 26.56it/s]
🧪 Computing descriptors:  49%|████▉     | 25/51 [00:01<00:00, 26.89it/s]
🧪 Computing descriptors:  55%|█████▍    | 28/51 [00:01<00:00, 27.09it/s]
🧪 Computing descriptors:  61%|██████    | 31/51 [00:01<00:00, 27.38it/s]
🧪 Computing descriptors:  67%|██████▋   | 34/51 [00:01<00:00, 27.27it/s]
🧪 Computing descriptors:  75%|███████▍  | 38/51 [00:01<00:00, 29.74it/s]
🧪 Computing descriptors:  82%|████████▏ | 42/51 [00:01<00:00, 30.73it/s]
🧪 Computing descriptors:  90%|█████████ | 46/51 [00:01<00:00, 30.01it/s]
🧪 Computing descriptors:  98%|█████████▊| 50/51 [00:01<00:00, 31.82it/s]
🧪 Computing descriptors: 100%|██████████| 51/51 [00:01<00:00, 27.19it/s]
📊 Ligand metadata rows: total=51 success=51 failures=0
🎉 COMPLETE → Ligand_Metadata.csv
===================================================================
[12:17:28] [mem] after 7_metadata.py parent=136.4MB delta=+0.0MB combined_peak=289.4MB child_peak=153.0MB
[12:17:28] 🚀 Running 8_scaffold.py...
[12:17:28] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:17:28] [mem] before 8_scaffold.py parent=136.4MB combined=136.4MB
[12:17:28] 🧵 Worker caps for 8_scaffold.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:17:28] ⏱ No-output watchdog for 8_scaffold.py: 180s
[12:17:28] [mem] running 8_scaffold.py parent=136.4MB child_tree=1.5MB combined=137.9MB
📥 Loaded 120 rows from Resolved_SASA_Summary.csv
🔬 Found 1 protein targets.
✅ Stage 1 complete — base scaffold mapping and diversity scores saved.
🎉 Stage 2 complete — advanced scaffold data saved.
📦 All tables written to Target_Table/
[12:17:29] [mem] after 8_scaffold.py parent=136.4MB delta=+0.0MB combined_peak=262.5MB child_peak=126.1MB
[12:17:29] 🚀 Running 9_2Dmapping.py...
[12:17:29] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:17:29] [mem] before 9_2Dmapping.py parent=136.4MB combined=136.4MB
[12:17:29] 🧵 Worker caps for 9_2Dmapping.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:17:29] ⏱ No-output watchdog for 9_2Dmapping.py: 180s
[12:17:29] [mem] running 9_2Dmapping.py parent=136.4MB child_tree=0.6MB combined=137.0MB
📥 Loading: Resolved_SASA_Summary.csv
✅ Using: Target=Target, Ligand=Warhead, SMILES=SMILES
🧬 Generating atom-level mapping...
🎉 SUCCESS: All maps saved to Target_Table
[12:17:29] [mem] after 9_2Dmapping.py parent=136.4MB delta=+0.0MB combined_peak=137.0MB child_peak=0.6MB
[12:17:29] 🚀 Running 10_2DmappingExtraction.py...
[12:17:29] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:17:29] [mem] before 10_2DmappingExtraction.py parent=136.4MB combined=136.4MB
[12:17:29] 🧵 Worker caps for 10_2DmappingExtraction.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:17:29] ⏱ No-output watchdog for 10_2DmappingExtraction.py: 180s
[12:17:29] [mem] running 10_2DmappingExtraction.py parent=136.4MB child_tree=0.7MB combined=137.1MB
✅ Extracted ligand atom coordinates for 2148 atoms
💾 Saved → Ligand_3D_Atoms.csv
[12:17:29] [mem] after 10_2DmappingExtraction.py parent=136.4MB delta=+0.0MB combined_peak=137.1MB child_peak=0.7MB
[12:17:29] 🚀 Running 11_mcsMatcher.py...
[12:17:29] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:17:29] [mem] before 11_mcsMatcher.py parent=136.4MB combined=136.4MB
[12:17:29] 🧵 Worker caps for 11_mcsMatcher.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:17:29] ⏱ No-output watchdog for 11_mcsMatcher.py: 300s
[12:17:29] [mem] running 11_mcsMatcher.py parent=136.4MB child_tree=0.5MB combined=136.9MB
ℹ️ No ligand alias resolution required (all ligands resolved in SMILES map).
🚀 Running MCS on 142 ligand occurrences mode=isolated-sequential max_workers=1
⚙️ Using hard timeout (60s per ligand) via SIGALRM
⚙️ Step 11 heartbeat enabled=1 interval=20s progress_every=1
⚙️ Step 11 skip policy skip_bad_items=1 skip_stuck_items=1 item_isolation=1 max_item_failures=0
🔬 Step 11 item 1/142 start 5qjj_D_6SU_303
🖼️ Step 11 SVG ready 5qjj_D_6SU_303
🔬 Step 11 item 1/142 done 5qjj_D_6SU_303 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 1/142
🔬 Step 11 item 2/142 start 5qjj_C_6SU_304
🖼️ Step 11 SVG ready 5qjj_C_6SU_304
🔬 Step 11 item 2/142 done 5qjj_C_6SU_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 2/142
🔬 Step 11 item 3/142 start 3aca_A_8DD_2
⚠️ Step 11 item skipped: 3/142 3aca_A_8DD_2 stage=BUILD_ROWS reason=ITEM_FAILED
🖼️ Step 11 SVG ready 3aca_A_8DD_2
🔬 Step 11 item 3/142 done 3aca_A_8DD_2 sdf=written mapped=23 all_atoms=27 dt=1.1s
⏳ Step 11 progress: 3/142
🔬 Step 11 item 4/142 start 3aca_B_8DD_209
⚠️ Step 11 item skipped: 4/142 3aca_B_8DD_209 stage=BUILD_ROWS reason=ITEM_FAILED
🖼️ Step 11 SVG ready 3aca_B_8DD_209
🔬 Step 11 item 4/142 done 3aca_B_8DD_209 sdf=written mapped=23 all_atoms=27 dt=1.2s
⏳ Step 11 progress: 4/142
🔬 Step 11 item 5/142 start 3ac9_B_8GD_1
⚠️ Step 11 item skipped: 5/142 3ac9_B_8GD_1 stage=BUILD_ROWS reason=ITEM_FAILED
🖼️ Step 11 SVG ready 3ac9_B_8GD_1
🔬 Step 11 item 5/142 done 3ac9_B_8GD_1 sdf=written mapped=24 all_atoms=28 dt=0.5s
⏳ Step 11 progress: 5/142
🔬 Step 11 item 6/142 start 3ac9_A_8GD_2
⚠️ Step 11 item skipped: 6/142 3ac9_A_8GD_2 stage=BUILD_ROWS reason=ITEM_FAILED
🖼️ Step 11 SVG ready 3ac9_A_8GD_2
🔬 Step 11 item 6/142 done 3ac9_A_8GD_2 sdf=written mapped=19 all_atoms=19 dt=0.1s
⏳ Step 11 progress: 6/142
🔬 Step 11 item 7/142 start 3l85_A_8OG_1
🖼️ Step 11 SVG ready 3l85_A_8OG_1
🔬 Step 11 item 7/142 done 3l85_A_8OG_1 sdf=written mapped=24 all_atoms=24 dt=0.1s
⏳ Step 11 progress: 7/142
🔬 Step 11 item 8/142 start 3l85_A_8OG_2
⚠️ Step 11 item skipped: 8/142 3l85_A_8OG_2 stage=BUILD_ROWS reason=ITEM_FAILED
🖼️ Step 11 SVG ready 3l85_A_8OG_2
🔬 Step 11 item 8/142 done 3l85_A_8OG_2 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 8/142
🔬 Step 11 item 9/142 start 3bm4_B_ADV_401
[12:17:35] [mem] running 11_mcsMatcher.py parent=136.4MB child_tree=313.8MB combined=450.2MB
[12:17:36] ⚠️ [mem] running 11_mcsMatcher.py child=362.0MB exceeds warn threshold 360MB
⚠️ Step 11 item skipped: 9/142 3bm4_B_ADV_401 stage=BUILD_ROWS reason=ITEM_FAILED
🖼️ Step 11 SVG ready 3bm4_B_ADV_401
🔬 Step 11 item 9/142 done 3bm4_B_ADV_401 sdf=written mapped=23 all_atoms=36 dt=3.3s
⏳ Step 11 progress: 9/142
🔬 Step 11 item 10/142 start 3bm4_B_ADV_402
⚠️ Step 11 item skipped: 10/142 3bm4_B_ADV_402 stage=BUILD_ROWS reason=ITEM_FAILED
🖼️ Step 11 SVG ready 3bm4_B_ADV_402
🔬 Step 11 item 10/142 done 3bm4_B_ADV_402 sdf=written mapped=23 all_atoms=36 dt=3.3s
⏳ Step 11 progress: 10/142
[12:17:40] [mem] running 11_mcsMatcher.py parent=136.4MB child_tree=258.0MB combined=394.4MB
🔬 Step 11 item 11/142 start 2dsc_B_APR_401
⚠️ Step 11 item skipped: 11/142 2dsc_B_APR_401 stage=BUILD_ROWS reason=ITEM_FAILED
🖼️ Step 11 SVG ready 2dsc_B_APR_401
🔬 Step 11 item 11/142 done 2dsc_B_APR_401 sdf=written mapped=23 all_atoms=36 dt=3.3s
⏳ Step 11 progress: 11/142
[12:17:46] [mem] running 11_mcsMatcher.py parent=136.4MB child_tree=361.3MB combined=497.7MB
🔬 Step 11 item 12/142 start 2dsc_A_APR_402
⚠️ Step 11 item skipped: 12/142 2dsc_A_APR_402 stage=BUILD_ROWS reason=ITEM_FAILED
🖼️ Step 11 SVG ready 2dsc_A_APR_402
🔬 Step 11 item 12/142 done 2dsc_A_APR_402 sdf=written mapped=23 all_atoms=36 dt=3.3s
⏳ Step 11 progress: 12/142
🔬 Step 11 item 13/142 start 5qj8_B_ELQ_305
🖼️ Step 11 SVG ready 5qj8_B_ELQ_305
🔬 Step 11 item 13/142 done 5qj8_B_ELQ_305 sdf=written mapped=17 all_atoms=17 dt=0.1s
⏳ Step 11 progress: 13/142
🔬 Step 11 item 14/142 start 5qj6_D_GQJ_303
🖼️ Step 11 SVG ready 5qj6_D_GQJ_303
🔬 Step 11 item 14/142 done 5qj6_D_GQJ_303 sdf=written mapped=17 all_atoms=17 dt=0.1s
⏳ Step 11 progress: 14/142
🔬 Step 11 item 15/142 start 5qj6_B_GQJ_304
🖼️ Step 11 SVG ready 5qj6_B_GQJ_304
🔬 Step 11 item 15/142 done 5qj6_B_GQJ_304 sdf=written mapped=17 all_atoms=17 dt=0.1s
⏳ Step 11 progress: 15/142
🔬 Step 11 item 16/142 start 5qk2_B_JH4_305
🖼️ Step 11 SVG ready 5qk2_B_JH4_305
🔬 Step 11 item 16/142 done 5qk2_B_JH4_305 sdf=written mapped=8 all_atoms=8 dt=0.1s
⏳ Step 11 progress: 16/142
🔬 Step 11 item 17/142 start 5qjl_D_JJM_303
🖼️ Step 11 SVG ready 5qjl_D_JJM_303
🔬 Step 11 item 17/142 done 5qjl_D_JJM_303 sdf=written mapped=18 all_atoms=18 dt=0.1s
⏳ Step 11 progress: 17/142
🔬 Step 11 item 18/142 start 5qjl_B_JJM_304
🖼️ Step 11 SVG ready 5qjl_B_JJM_304
🔬 Step 11 item 18/142 done 5qjl_B_JJM_304 sdf=written mapped=18 all_atoms=18 dt=0.1s
⏳ Step 11 progress: 18/142
🔬 Step 11 item 19/142 start 5qjl_C_JJM_304
🖼️ Step 11 SVG ready 5qjl_C_JJM_304
🔬 Step 11 item 19/142 done 5qjl_C_JJM_304 sdf=written mapped=18 all_atoms=18 dt=0.1s
⏳ Step 11 progress: 19/142
🔬 Step 11 item 20/142 start 5qjl_B_JJM_305
🖼️ Step 11 SVG ready 5qjl_B_JJM_305
🔬 Step 11 item 20/142 done 5qjl_B_JJM_305 sdf=written mapped=18 all_atoms=18 dt=0.1s
⏳ Step 11 progress: 20/142
🔬 Step 11 item 21/142 start 5qj7_A_JMM_303
🖼️ Step 11 SVG ready 5qj7_A_JMM_303
🔬 Step 11 item 21/142 done 5qj7_A_JMM_303 sdf=written mapped=18 all_atoms=18 dt=0.1s
⏳ Step 11 progress: 21/142
🔬 Step 11 item 22/142 start 5qj7_D_JMM_303
🖼️ Step 11 SVG ready 5qj7_D_JMM_303
🔬 Step 11 item 22/142 done 5qj7_D_JMM_303 sdf=written mapped=18 all_atoms=18 dt=0.1s
⏳ Step 11 progress: 22/142
🔬 Step 11 item 23/142 start 5qj7_A_JMM_304
🖼️ Step 11 SVG ready 5qj7_A_JMM_304
🔬 Step 11 item 23/142 done 5qj7_A_JMM_304 sdf=written mapped=18 all_atoms=18 dt=0.1s
⏳ Step 11 progress: 23/142
🔬 Step 11 item 24/142 start 5qj7_C_JMM_304
🖼️ Step 11 SVG ready 5qj7_C_JMM_304
🔬 Step 11 item 24/142 done 5qj7_C_JMM_304 sdf=written mapped=18 all_atoms=18 dt=0.1s
⏳ Step 11 progress: 24/142
🔬 Step 11 item 25/142 start 5qj4_A_K04_303
🖼️ Step 11 SVG ready 5qj4_A_K04_303
🔬 Step 11 item 25/142 done 5qj4_A_K04_303 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 25/142
🔬 Step 11 item 26/142 start 5qj4_C_K04_304
🖼️ Step 11 SVG ready 5qj4_C_K04_304
🔬 Step 11 item 26/142 done 5qj4_C_K04_304 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 26/142
🔬 Step 11 item 27/142 start 5qj4_B_K04_305
🖼️ Step 11 SVG ready 5qj4_B_K04_305
🔬 Step 11 item 27/142 done 5qj4_B_K04_305 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 27/142
🔬 Step 11 item 28/142 start 5qj4_C_K04_305
🖼️ Step 11 SVG ready 5qj4_C_K04_305
🔬 Step 11 item 28/142 done 5qj4_C_K04_305 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 28/142
🔬 Step 11 item 29/142 start 5qjb_A_K07_304
🖼️ Step 11 SVG ready 5qjb_A_K07_304
🔬 Step 11 item 29/142 done 5qjb_A_K07_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 29/142
🔬 Step 11 item 30/142 start 5qjb_C_K07_304
🖼️ Step 11 SVG ready 5qjb_C_K07_304
🔬 Step 11 item 30/142 done 5qjb_C_K07_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 30/142
🔬 Step 11 item 31/142 start 5qjb_A_K07_305
🖼️ Step 11 SVG ready 5qjb_A_K07_305
🔬 Step 11 item 31/142 done 5qjb_A_K07_305 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 31/142
🔬 Step 11 item 32/142 start 5qja_D_K0A_303
🖼️ Step 11 SVG ready 5qja_D_K0A_303
🔬 Step 11 item 32/142 done 5qja_D_K0A_303 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 32/142
🔬 Step 11 item 33/142 start 5qja_A_K0A_304
🖼️ Step 11 SVG ready 5qja_A_K0A_304
🔬 Step 11 item 33/142 done 5qja_A_K0A_304 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 33/142
🔬 Step 11 item 34/142 start 5qja_B_K0A_304
🖼️ Step 11 SVG ready 5qja_B_K0A_304
🔬 Step 11 item 34/142 done 5qja_B_K0A_304 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 34/142
🔬 Step 11 item 35/142 start 5qja_D_K0A_304
🖼️ Step 11 SVG ready 5qja_D_K0A_304
🔬 Step 11 item 35/142 done 5qja_D_K0A_304 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 35/142
🔬 Step 11 item 36/142 start 5qj9_A_K0D_304
🖼️ Step 11 SVG ready 5qj9_A_K0D_304
🔬 Step 11 item 36/142 done 5qj9_A_K0D_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 36/142
🔬 Step 11 item 37/142 start 5qj9_B_K0D_304
🖼️ Step 11 SVG ready 5qj9_B_K0D_304
🔬 Step 11 item 37/142 done 5qj9_B_K0D_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 37/142
🔬 Step 11 item 38/142 start 5qj9_C_K0D_304
🖼️ Step 11 SVG ready 5qj9_C_K0D_304
🔬 Step 11 item 38/142 done 5qj9_C_K0D_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 38/142
🔬 Step 11 item 39/142 start 5qj9_C_K0D_305
🖼️ Step 11 SVG ready 5qj9_C_K0D_305
🔬 Step 11 item 39/142 done 5qj9_C_K0D_305 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 39/142
🔬 Step 11 item 40/142 start 5qj5_D_K0G_303
🖼️ Step 11 SVG ready 5qj5_D_K0G_303
🔬 Step 11 item 40/142 done 5qj5_D_K0G_303 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 40/142
🔬 Step 11 item 41/142 start 5qj5_A_K0G_304
🖼️ Step 11 SVG ready 5qj5_A_K0G_304
🔬 Step 11 item 41/142 done 5qj5_A_K0G_304 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 41/142
🔬 Step 11 item 42/142 start 5qj5_B_K0G_304
🖼️ Step 11 SVG ready 5qj5_B_K0G_304
🔬 Step 11 item 42/142 done 5qj5_B_K0G_304 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 42/142
🔬 Step 11 item 43/142 start 5qj5_C_K0G_304
🖼️ Step 11 SVG ready 5qj5_C_K0G_304
🔬 Step 11 item 43/142 done 5qj5_C_K0G_304 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 43/142
🔬 Step 11 item 44/142 start 5qjc_A_K0J_303
🖼️ Step 11 SVG ready 5qjc_A_K0J_303
🔬 Step 11 item 44/142 done 5qjc_A_K0J_303 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 44/142
🔬 Step 11 item 45/142 start 5qjc_C_K0J_304
🖼️ Step 11 SVG ready 5qjc_C_K0J_304
🔬 Step 11 item 45/142 done 5qjc_C_K0J_304 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 45/142
🔬 Step 11 item 46/142 start 5qjd_A_K0M_304
🖼️ Step 11 SVG ready 5qjd_A_K0M_304
🔬 Step 11 item 46/142 done 5qjd_A_K0M_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 46/142
🔬 Step 11 item 47/142 start 5qjd_C_K0M_304
🖼️ Step 11 SVG ready 5qjd_C_K0M_304
🔬 Step 11 item 47/142 done 5qjd_C_K0M_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 47/142
🔬 Step 11 item 48/142 start 5qje_D_K0P_303
🖼️ Step 11 SVG ready 5qje_D_K0P_303
🔬 Step 11 item 48/142 done 5qje_D_K0P_303 sdf=written mapped=17 all_atoms=17 dt=0.1s
⏳ Step 11 progress: 48/142
🔬 Step 11 item 49/142 start 5qje_B_K0P_304
🖼️ Step 11 SVG ready 5qje_B_K0P_304
🔬 Step 11 item 49/142 done 5qje_B_K0P_304 sdf=written mapped=17 all_atoms=17 dt=0.1s
⏳ Step 11 progress: 49/142
🔬 Step 11 item 50/142 start 5qjg_D_K0V_303
🖼️ Step 11 SVG ready 5qjg_D_K0V_303
🔬 Step 11 item 50/142 done 5qjg_D_K0V_303 sdf=written mapped=17 all_atoms=17 dt=0.1s
⏳ Step 11 progress: 50/142
🔬 Step 11 item 51/142 start 5qjg_A_K0V_304
🖼️ Step 11 SVG ready 5qjg_A_K0V_304
🔬 Step 11 item 51/142 done 5qjg_A_K0V_304 sdf=written mapped=17 all_atoms=17 dt=0.1s
⏳ Step 11 progress: 51/142
🔬 Step 11 item 52/142 start 5qjg_C_K0V_304
🖼️ Step 11 SVG ready 5qjg_C_K0V_304
🔬 Step 11 item 52/142 done 5qjg_C_K0V_304 sdf=written mapped=17 all_atoms=17 dt=0.1s
⏳ Step 11 progress: 52/142
🔬 Step 11 item 53/142 start 5qjg_A_K0V_305
⏱ Step 11 heartbeat: processed=52/142 current=5qjg_A_K0V_305 stage=ITEM_START elapsed=20s item_elapsed=0s sdf_written=52 sdf_failed=0 svg_written=52 item_failures=9 last_done=5qjg_C_K0V_304
🖼️ Step 11 SVG ready 5qjg_A_K0V_305
🔬 Step 11 item 53/142 done 5qjg_A_K0V_305 sdf=written mapped=17 all_atoms=17 dt=0.1s
⏳ Step 11 progress: 53/142
🔬 Step 11 item 54/142 start 5qjh_A_K0Y_304
🖼️ Step 11 SVG ready 5qjh_A_K0Y_304
🔬 Step 11 item 54/142 done 5qjh_A_K0Y_304 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 54/142
🔬 Step 11 item 55/142 start 5qji_D_K1A_303
🖼️ Step 11 SVG ready 5qji_D_K1A_303
🔬 Step 11 item 55/142 done 5qji_D_K1A_303 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 55/142
🔬 Step 11 item 56/142 start 5qji_B_K1A_304
🖼️ Step 11 SVG ready 5qji_B_K1A_304
🔬 Step 11 item 56/142 done 5qji_B_K1A_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 56/142
🔬 Step 11 item 57/142 start 5qjk_D_K1D_303
🖼️ Step 11 SVG ready 5qjk_D_K1D_303
🔬 Step 11 item 57/142 done 5qjk_D_K1D_303 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 57/142
🔬 Step 11 item 58/142 start 5qjk_A_K1D_304
🖼️ Step 11 SVG ready 5qjk_A_K1D_304
🔬 Step 11 item 58/142 done 5qjk_A_K1D_304 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 58/142
🔬 Step 11 item 59/142 start 5qjk_B_K1D_304
🖼️ Step 11 SVG ready 5qjk_B_K1D_304
🔬 Step 11 item 59/142 done 5qjk_B_K1D_304 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 59/142
🔬 Step 11 item 60/142 start 5qjk_C_K1D_304
🖼️ Step 11 SVG ready 5qjk_C_K1D_304
🔬 Step 11 item 60/142 done 5qjk_C_K1D_304 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 60/142
🔬 Step 11 item 61/142 start 5qjm_A_K1G_303
🖼️ Step 11 SVG ready 5qjm_A_K1G_303
🔬 Step 11 item 61/142 done 5qjm_A_K1G_303 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 61/142
🔬 Step 11 item 62/142 start 5qjm_D_K1G_303
🖼️ Step 11 SVG ready 5qjm_D_K1G_303
🔬 Step 11 item 62/142 done 5qjm_D_K1G_303 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 62/142
🔬 Step 11 item 63/142 start 5qjm_C_K1G_304
🖼️ Step 11 SVG ready 5qjm_C_K1G_304
🔬 Step 11 item 63/142 done 5qjm_C_K1G_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 63/142
🔬 Step 11 item 64/142 start 5qjm_B_K1G_305
🖼️ Step 11 SVG ready 5qjm_B_K1G_305
🔬 Step 11 item 64/142 done 5qjm_B_K1G_305 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 64/142
🔬 Step 11 item 65/142 start 5qjn_A_K1J_304
🖼️ Step 11 SVG ready 5qjn_A_K1J_304
🔬 Step 11 item 65/142 done 5qjn_A_K1J_304 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 65/142
🔬 Step 11 item 66/142 start 5qjn_B_K1J_304
🖼️ Step 11 SVG ready 5qjn_B_K1J_304
🔬 Step 11 item 66/142 done 5qjn_B_K1J_304 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 66/142
🔬 Step 11 item 67/142 start 5qjp_D_K1P_303
🖼️ Step 11 SVG ready 5qjp_D_K1P_303
🔬 Step 11 item 67/142 done 5qjp_D_K1P_303 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 67/142
🔬 Step 11 item 68/142 start 5qjp_B_K1P_304
🖼️ Step 11 SVG ready 5qjp_B_K1P_304
🔬 Step 11 item 68/142 done 5qjp_B_K1P_304 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 68/142
🔬 Step 11 item 69/142 start 5qjp_C_K1P_304
[12:17:51] [mem] running 11_mcsMatcher.py parent=136.4MB child_tree=124.3MB combined=260.7MB
🖼️ Step 11 SVG ready 5qjp_C_K1P_304
🔬 Step 11 item 69/142 done 5qjp_C_K1P_304 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 69/142
🔬 Step 11 item 70/142 start 5qjp_B_K1P_305
🖼️ Step 11 SVG ready 5qjp_B_K1P_305
🔬 Step 11 item 70/142 done 5qjp_B_K1P_305 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 70/142
🔬 Step 11 item 71/142 start 5qjq_A_K1S_304
🖼️ Step 11 SVG ready 5qjq_A_K1S_304
🔬 Step 11 item 71/142 done 5qjq_A_K1S_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 71/142
🔬 Step 11 item 72/142 start 5qjq_B_K1S_304
🖼️ Step 11 SVG ready 5qjq_B_K1S_304
🔬 Step 11 item 72/142 done 5qjq_B_K1S_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 72/142
🔬 Step 11 item 73/142 start 5qjq_C_K1S_304
🖼️ Step 11 SVG ready 5qjq_C_K1S_304
🔬 Step 11 item 73/142 done 5qjq_C_K1S_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 73/142
🔬 Step 11 item 74/142 start 5qjq_C_K1S_305
🖼️ Step 11 SVG ready 5qjq_C_K1S_305
🔬 Step 11 item 74/142 done 5qjq_C_K1S_305 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 74/142
🔬 Step 11 item 75/142 start 5qjr_A_K1V_303
🖼️ Step 11 SVG ready 5qjr_A_K1V_303
🔬 Step 11 item 75/142 done 5qjr_A_K1V_303 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 75/142
🔬 Step 11 item 76/142 start 5qjr_A_K1V_304
🖼️ Step 11 SVG ready 5qjr_A_K1V_304
🔬 Step 11 item 76/142 done 5qjr_A_K1V_304 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 76/142
🔬 Step 11 item 77/142 start 5qjs_A_K1Y_304
🖼️ Step 11 SVG ready 5qjs_A_K1Y_304
🔬 Step 11 item 77/142 done 5qjs_A_K1Y_304 sdf=written mapped=17 all_atoms=17 dt=0.1s
⏳ Step 11 progress: 77/142
🔬 Step 11 item 78/142 start 5qjt_A_K24_303
🖼️ Step 11 SVG ready 5qjt_A_K24_303
🔬 Step 11 item 78/142 done 5qjt_A_K24_303 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 78/142
🔬 Step 11 item 79/142 start 5qjt_D_K24_303
🖼️ Step 11 SVG ready 5qjt_D_K24_303
🔬 Step 11 item 79/142 done 5qjt_D_K24_303 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 79/142
🔬 Step 11 item 80/142 start 5qju_D_K2G_303
🖼️ Step 11 SVG ready 5qju_D_K2G_303
🔬 Step 11 item 80/142 done 5qju_D_K2G_303 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 80/142
🔬 Step 11 item 81/142 start 5qju_A_K2G_304
🖼️ Step 11 SVG ready 5qju_A_K2G_304
🔬 Step 11 item 81/142 done 5qju_A_K2G_304 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 81/142
🔬 Step 11 item 82/142 start 5qju_B_K2G_304
🖼️ Step 11 SVG ready 5qju_B_K2G_304
🔬 Step 11 item 82/142 done 5qju_B_K2G_304 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 82/142
🔬 Step 11 item 83/142 start 5qju_C_K2G_304
🖼️ Step 11 SVG ready 5qju_C_K2G_304
🔬 Step 11 item 83/142 done 5qju_C_K2G_304 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 83/142
🔬 Step 11 item 84/142 start 5qjv_D_K2J_303
🖼️ Step 11 SVG ready 5qjv_D_K2J_303
🔬 Step 11 item 84/142 done 5qjv_D_K2J_303 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 84/142
🔬 Step 11 item 85/142 start 5qjv_A_K2J_304
🖼️ Step 11 SVG ready 5qjv_A_K2J_304
🔬 Step 11 item 85/142 done 5qjv_A_K2J_304 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 85/142
🔬 Step 11 item 86/142 start 5qjv_C_K2J_304
🖼️ Step 11 SVG ready 5qjv_C_K2J_304
🔬 Step 11 item 86/142 done 5qjv_C_K2J_304 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 86/142
🔬 Step 11 item 87/142 start 5qjw_D_K2M_303
🖼️ Step 11 SVG ready 5qjw_D_K2M_303
🔬 Step 11 item 87/142 done 5qjw_D_K2M_303 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 87/142
🔬 Step 11 item 88/142 start 5qjw_A_K2M_304
🖼️ Step 11 SVG ready 5qjw_A_K2M_304
🔬 Step 11 item 88/142 done 5qjw_A_K2M_304 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 88/142
🔬 Step 11 item 89/142 start 5qjw_B_K2M_304
🖼️ Step 11 SVG ready 5qjw_B_K2M_304
🔬 Step 11 item 89/142 done 5qjw_B_K2M_304 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 89/142
🔬 Step 11 item 90/142 start 5qjx_B_K2P_304
🖼️ Step 11 SVG ready 5qjx_B_K2P_304
🔬 Step 11 item 90/142 done 5qjx_B_K2P_304 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 90/142
🔬 Step 11 item 91/142 start 5qjy_A_K2S_304
🖼️ Step 11 SVG ready 5qjy_A_K2S_304
🔬 Step 11 item 91/142 done 5qjy_A_K2S_304 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 91/142
🔬 Step 11 item 92/142 start 5qjy_C_K2S_304
🖼️ Step 11 SVG ready 5qjy_C_K2S_304
🔬 Step 11 item 92/142 done 5qjy_C_K2S_304 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 92/142
🔬 Step 11 item 93/142 start 5qjy_A_K2S_305
🖼️ Step 11 SVG ready 5qjy_A_K2S_305
🔬 Step 11 item 93/142 done 5qjy_A_K2S_305 sdf=written mapped=13 all_atoms=13 dt=0.1s
⏳ Step 11 progress: 93/142
🔬 Step 11 item 94/142 start 5qk1_D_K34_303
🖼️ Step 11 SVG ready 5qk1_D_K34_303
🔬 Step 11 item 94/142 done 5qk1_D_K34_303 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 94/142
🔬 Step 11 item 95/142 start 5qk1_A_K34_304
🖼️ Step 11 SVG ready 5qk1_A_K34_304
🔬 Step 11 item 95/142 done 5qk1_A_K34_304 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 95/142
🔬 Step 11 item 96/142 start 5qk1_B_K34_304
🖼️ Step 11 SVG ready 5qk1_B_K34_304
🔬 Step 11 item 96/142 done 5qk1_B_K34_304 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 96/142
🔬 Step 11 item 97/142 start 5qk1_C_K34_304
🖼️ Step 11 SVG ready 5qk1_C_K34_304
🔬 Step 11 item 97/142 done 5qk1_C_K34_304 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 97/142
🔬 Step 11 item 98/142 start 5qk3_A_K3A_303
🖼️ Step 11 SVG ready 5qk3_A_K3A_303
🔬 Step 11 item 98/142 done 5qk3_A_K3A_303 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 98/142
🔬 Step 11 item 99/142 start 5qk4_A_K3D_303
🖼️ Step 11 SVG ready 5qk4_A_K3D_303
🔬 Step 11 item 99/142 done 5qk4_A_K3D_303 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 99/142
🔬 Step 11 item 100/142 start 5qk4_A_K3D_304
🖼️ Step 11 SVG ready 5qk4_A_K3D_304
🔬 Step 11 item 100/142 done 5qk4_A_K3D_304 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 100/142
🔬 Step 11 item 101/142 start 5qk4_C_K3D_304
🖼️ Step 11 SVG ready 5qk4_C_K3D_304
🔬 Step 11 item 101/142 done 5qk4_C_K3D_304 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 101/142
🔬 Step 11 item 102/142 start 5qk5_A_K3J_304
🖼️ Step 11 SVG ready 5qk5_A_K3J_304
🔬 Step 11 item 102/142 done 5qk5_A_K3J_304 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 102/142
🔬 Step 11 item 103/142 start 5qk5_C_K3J_304
🖼️ Step 11 SVG ready 5qk5_C_K3J_304
🔬 Step 11 item 103/142 done 5qk5_C_K3J_304 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 103/142
🔬 Step 11 item 104/142 start 5qk5_A_K3J_305
🖼️ Step 11 SVG ready 5qk5_A_K3J_305
🔬 Step 11 item 104/142 done 5qk5_A_K3J_305 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 104/142
🔬 Step 11 item 105/142 start 5qk5_C_K3J_305
🖼️ Step 11 SVG ready 5qk5_C_K3J_305
🔬 Step 11 item 105/142 done 5qk5_C_K3J_305 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 105/142
🔬 Step 11 item 106/142 start 5qk6_A_K3M_303
🖼️ Step 11 SVG ready 5qk6_A_K3M_303
🔬 Step 11 item 106/142 done 5qk6_A_K3M_303 sdf=written mapped=11 all_atoms=11 dt=0.1s
⏳ Step 11 progress: 106/142
🔬 Step 11 item 107/142 start 5qk7_B_K3P_304
🖼️ Step 11 SVG ready 5qk7_B_K3P_304
🔬 Step 11 item 107/142 done 5qk7_B_K3P_304 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 107/142
🔬 Step 11 item 108/142 start 5qk7_C_K3P_304
🖼️ Step 11 SVG ready 5qk7_C_K3P_304
🔬 Step 11 item 108/142 done 5qk7_C_K3P_304 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 108/142
🔬 Step 11 item 109/142 start 5qk7_B_K3P_305
🖼️ Step 11 SVG ready 5qk7_B_K3P_305
🔬 Step 11 item 109/142 done 5qk7_B_K3P_305 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 109/142
🔬 Step 11 item 110/142 start 5qk7_C_K3P_305
🖼️ Step 11 SVG ready 5qk7_C_K3P_305
🔬 Step 11 item 110/142 done 5qk7_C_K3P_305 sdf=written mapped=14 all_atoms=14 dt=0.1s
⏳ Step 11 progress: 110/142
🔬 Step 11 item 111/142 start 5qk8_A_K3S_304
🖼️ Step 11 SVG ready 5qk8_A_K3S_304
🔬 Step 11 item 111/142 done 5qk8_A_K3S_304 sdf=written mapped=10 all_atoms=10 dt=0.1s
⏳ Step 11 progress: 111/142
🔬 Step 11 item 112/142 start 5qk9_A_K3V_303
🖼️ Step 11 SVG ready 5qk9_A_K3V_303
🔬 Step 11 item 112/142 done 5qk9_A_K3V_303 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 112/142
🔬 Step 11 item 113/142 start 5qk9_C_K3V_304
🖼️ Step 11 SVG ready 5qk9_C_K3V_304
🔬 Step 11 item 113/142 done 5qk9_C_K3V_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 113/142
🔬 Step 11 item 114/142 start 5qk9_B_K3V_305
🖼️ Step 11 SVG ready 5qk9_B_K3V_305
🔬 Step 11 item 114/142 done 5qk9_B_K3V_305 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 114/142
🔬 Step 11 item 115/142 start 5qk9_C_K3V_305
🖼️ Step 11 SVG ready 5qk9_C_K3V_305
🔬 Step 11 item 115/142 done 5qk9_C_K3V_305 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 115/142
🔬 Step 11 item 116/142 start 5qka_A_K3Y_304
🖼️ Step 11 SVG ready 5qka_A_K3Y_304
🔬 Step 11 item 116/142 done 5qka_A_K3Y_304 sdf=written mapped=15 all_atoms=15 dt=0.1s
⏳ Step 11 progress: 116/142
🔬 Step 11 item 117/142 start 5qjo_D_K41_303
🖼️ Step 11 SVG ready 5qjo_D_K41_303
🔬 Step 11 item 117/142 done 5qjo_D_K41_303 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 117/142
🔬 Step 11 item 118/142 start 5qjo_A_K41_304
🖼️ Step 11 SVG ready 5qjo_A_K41_304
🔬 Step 11 item 118/142 done 5qjo_A_K41_304 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 118/142
🔬 Step 11 item 119/142 start 5qjo_B_K41_304
🖼️ Step 11 SVG ready 5qjo_B_K41_304
🔬 Step 11 item 119/142 done 5qjo_B_K41_304 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 119/142
🔬 Step 11 item 120/142 start 5qjo_C_K41_304
🖼️ Step 11 SVG ready 5qjo_C_K41_304
🔬 Step 11 item 120/142 done 5qjo_C_K41_304 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 120/142
🔬 Step 11 item 121/142 start 5qtl_C_PW7_305
🖼️ Step 11 SVG ready 5qtl_C_PW7_305
🔬 Step 11 item 121/142 done 5qtl_C_PW7_305 sdf=written mapped=11 all_atoms=11 dt=0.1s
⏳ Step 11 progress: 121/142
🔬 Step 11 item 122/142 start 5qtl_B_PW7_501
🖼️ Step 11 SVG ready 5qtl_B_PW7_501
🔬 Step 11 item 122/142 done 5qtl_B_PW7_501 sdf=written mapped=11 all_atoms=11 dt=0.1s
⏳ Step 11 progress: 122/142
🔬 Step 11 item 123/142 start 5qtl_D_PW7_501
🖼️ Step 11 SVG ready 5qtl_D_PW7_501
🔬 Step 11 item 123/142 done 5qtl_D_PW7_501 sdf=written mapped=11 all_atoms=11 dt=0.1s
⏳ Step 11 progress: 123/142
🔬 Step 11 item 124/142 start 5qtl_B_PW7_505
🖼️ Step 11 SVG ready 5qtl_B_PW7_505
🔬 Step 11 item 124/142 done 5qtl_B_PW7_505 sdf=written mapped=11 all_atoms=11 dt=0.1s
⏳ Step 11 progress: 124/142
🔬 Step 11 item 125/142 start 5qtm_A_PWA_304
🖼️ Step 11 SVG ready 5qtm_A_PWA_304
🔬 Step 11 item 125/142 done 5qtm_A_PWA_304 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 125/142
🔬 Step 11 item 126/142 start 5qtm_B_PWA_304
🖼️ Step 11 SVG ready 5qtm_B_PWA_304
🔬 Step 11 item 126/142 done 5qtm_B_PWA_304 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 126/142
🔬 Step 11 item 127/142 start 5qtm_D_PWA_501
🖼️ Step 11 SVG ready 5qtm_D_PWA_501
🔬 Step 11 item 127/142 done 5qtm_D_PWA_501 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 127/142
🔬 Step 11 item 128/142 start 5qtm_D_PWA_505
🖼️ Step 11 SVG ready 5qtm_D_PWA_505
🔬 Step 11 item 128/142 done 5qtm_D_PWA_505 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 128/142
🔬 Step 11 item 129/142 start 5qto_A_PWG_304
[12:17:56] [mem] running 11_mcsMatcher.py parent=136.4MB child_tree=124.3MB combined=260.7MB
🖼️ Step 11 SVG ready 5qto_A_PWG_304
🔬 Step 11 item 129/142 done 5qto_A_PWG_304 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 129/142
🔬 Step 11 item 130/142 start 5qto_B_PWG_304
🖼️ Step 11 SVG ready 5qto_B_PWG_304
🔬 Step 11 item 130/142 done 5qto_B_PWG_304 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 130/142
🔬 Step 11 item 131/142 start 5qto_C_PWG_304
🖼️ Step 11 SVG ready 5qto_C_PWG_304
🔬 Step 11 item 131/142 done 5qto_C_PWG_304 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 131/142
🔬 Step 11 item 132/142 start 5qto_C_PWG_305
🖼️ Step 11 SVG ready 5qto_C_PWG_305
🔬 Step 11 item 132/142 done 5qto_C_PWG_305 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 132/142
🔬 Step 11 item 133/142 start 5qtp_A_PWJ_303
🖼️ Step 11 SVG ready 5qtp_A_PWJ_303
🔬 Step 11 item 133/142 done 5qtp_A_PWJ_303 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 133/142
🔬 Step 11 item 134/142 start 5qtp_B_PWJ_305
🖼️ Step 11 SVG ready 5qtp_B_PWJ_305
🔬 Step 11 item 134/142 done 5qtp_B_PWJ_305 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 134/142
🔬 Step 11 item 135/142 start 5qtp_C_PWJ_306
🖼️ Step 11 SVG ready 5qtp_C_PWJ_306
🔬 Step 11 item 135/142 done 5qtp_C_PWJ_306 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 135/142
🔬 Step 11 item 136/142 start 5qtp_D_PWJ_501
🖼️ Step 11 SVG ready 5qtp_D_PWJ_501
🔬 Step 11 item 136/142 done 5qtp_D_PWJ_501 sdf=written mapped=16 all_atoms=16 dt=0.1s
⏳ Step 11 progress: 136/142
🔬 Step 11 item 137/142 start 5qtq_A_PWM_303
🖼️ Step 11 SVG ready 5qtq_A_PWM_303
🔬 Step 11 item 137/142 done 5qtq_A_PWM_303 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 137/142
🔬 Step 11 item 138/142 start 5qtq_B_PWM_305
🖼️ Step 11 SVG ready 5qtq_B_PWM_305
🔬 Step 11 item 138/142 done 5qtq_B_PWM_305 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 138/142
🔬 Step 11 item 139/142 start 5qtq_C_PWM_305
🖼️ Step 11 SVG ready 5qtq_C_PWM_305
🔬 Step 11 item 139/142 done 5qtq_C_PWM_305 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 139/142
🔬 Step 11 item 140/142 start 5qtq_D_PWM_501
🖼️ Step 11 SVG ready 5qtq_D_PWM_501
🔬 Step 11 item 140/142 done 5qtq_D_PWM_501 sdf=written mapped=12 all_atoms=12 dt=0.1s
⏳ Step 11 progress: 140/142
🔬 Step 11 item 141/142 start 8riy_A_W0O_301
🖼️ Step 11 SVG ready 8riy_A_W0O_301
🔬 Step 11 item 141/142 done 8riy_A_W0O_301 sdf=written mapped=30 all_atoms=30 dt=0.1s
⏳ Step 11 progress: 141/142
🔬 Step 11 item 142/142 start 8riy_B_W0O_301
🖼️ Step 11 SVG ready 8riy_B_W0O_301
🔬 Step 11 item 142/142 done 8riy_B_W0O_301 sdf=written mapped=30 all_atoms=30 dt=0.1s
⏳ Step 11 progress: 142/142
⏱ Step 11 heartbeat: processed=142/142 current=8riy_B_W0O_301 stage=ITEM_DONE elapsed=28s item_elapsed=0s sdf_written=142 sdf_failed=0 svg_written=142 item_failures=9 last_done=8riy_B_W0O_301
✅ MCS processing complete — outputs written
🧪 Step 11 summary: work_items=142 successful_items=133 item_failures=9 sdf_attempted=142 sdf_written=142 sdf_failed=0 sdf_skipped_existing=0 svg_written=142
🧪 SDF expected groups: 142
🧪 SDF files available: 142 → MCS_Output/MCS_SDF
🧪 SDF failure records: 0 → MCS_Output/Ligand_MCS_SDF_Failures.csv
🧪 Item failure records: 9 → MCS_Output/Ligand_MCS_Item_Failures.csv
🧪 SVG output path: MCS_Output/MCS_SVG
🧪 CSV output path: MCS_Output
🧪 SDF missing groups: 0
====================================================
🎉 COMPLETED MCS MAPPING + SASA ANNOTATION
📦 Map (MCS only)        → MCS_Output/Ligand_MCS_Map.csv
🧪 SASA (MCS only)       → MCS_Output/Ligand_MCS_SASA.csv
🧬 All atoms (debug)     → MCS_Output/Ligand_AllAtoms_Map.csv
🧪 SASA (ALL atoms)      → MCS_Output/Ligand_MCS_SASA_ALL_ATOMS.csv
⚠️ Failures              → MCS_Output/Ligand_MCS_Failures.csv
⚠️ SDF failures          → MCS_Output/Ligand_MCS_SDF_Failures.csv
⚠️ Item failures         → MCS_Output/Ligand_MCS_Item_Failures.csv
====================================================
🖼️  SVGs generated: 142 → MCS_Output/MCS_SVG
⚠️ MCS failures (first 10):
8DD | 3aca | Template assign failed: No matching found
8DD | 3aca | Template assign failed: No matching found
8GD | 3ac9 | Template assign failed: No matching found
8GD | 3ac9 | Size mismatch: SMILES=28 vs 3D=19
8OG | 3l85 | Size mismatch: SMILES=24 vs 3D=13
ADV | 3bm4 | Template assign failed: No matching found
ADV | 3bm4 | Template assign failed: No matching found
APR | 2dsc | Template assign failed: No matching found
APR | 2dsc | Template assign failed: No matching found
[12:17:58] [mem] after 11_mcsMatcher.py parent=136.4MB delta=+0.0MB combined_peak=498.6MB child_peak=362.2MB
[12:17:58] ✅ SDF validation PASS after 11_mcsMatcher.py: MCS_Output/MCS_SDF files=142 expected=142 recorded_failures=0
[12:17:58] 🚀 Running 12_Results.py...
[12:17:58] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:17:58] [mem] before 12_Results.py parent=137.4MB combined=137.4MB
[12:17:58] 🧵 Worker caps for 12_Results.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:17:58] ⏱ No-output watchdog for 12_Results.py: 180s
[12:17:58] [mem] running 12_Results.py parent=137.4MB child_tree=0.5MB combined=137.9MB
✅ Integrated 3DSASAmapped.csv created with standard headers.
[12:17:58] [mem] after 12_Results.py parent=137.4MB delta=+0.0MB combined_peak=137.9MB child_peak=0.5MB
[12:17:58] ✅ SDF validation PASS after 12_Results.py: TARGET_RESULTS/MCS_Output/MCS_SDF files=142 expected=142 recorded_failures=0
[12:17:58] 🚀 Running 15_ResultsMerged.py...
[12:17:58] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:17:58] [mem] before 15_ResultsMerged.py parent=137.8MB combined=137.8MB
[12:17:58] 🧵 Worker caps for 15_ResultsMerged.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:17:58] ⏱ No-output watchdog for 15_ResultsMerged.py: 180s
[12:17:58] [mem] running 15_ResultsMerged.py parent=137.8MB child_tree=1.5MB combined=139.3MB
🧬 Using SASA file: Warhead_SASA_atoms.csv
✅ Wrote merged atom table: Ligand_3D_Atoms_with_SASA.csv
📊 Total atoms: 2148
🎉 RESULTS MERGE COMPLETE
[12:17:59] [mem] after 15_ResultsMerged.py parent=137.8MB delta=+0.0MB combined_peak=139.3MB child_peak=1.5MB
[12:17:59] 🚀 Running 16_ResultsDisplay.py...
[12:17:59] 🐍 Pipeline Python: /app/.heroku/python/bin/python
[12:17:59] [mem] before 16_ResultsDisplay.py parent=137.8MB combined=137.8MB
[12:17:59] 🧵 Worker caps for 16_ResultsDisplay.py: pipeline_max=2 WARHEAD_SQCHK_MAX_WORKERS=2 WARHEAD_PDBMKR_MAX_WORKERS=2 WARHEAD_SASA_MAX_WORKERS=3 WARHEAD_METADATA_MAX_WORKERS=3 WARHEAD_MCS_MAX_WORKERS=3
[12:17:59] ⏱ No-output watchdog for 16_ResultsDisplay.py: 180s
[12:17:59] [mem] running 16_ResultsDisplay.py parent=137.8MB child_tree=0.6MB combined=138.4MB
📁 ResultsDisplay root: /app/jobs/62174d5e
📁 WAR_PDB root: /app/jobs/62174d5e/WAR_PDB
📁 SDF roots: ['/app/jobs/62174d5e/MCS_Output/MCS_SDF', '/app/jobs/62174d5e/TARGET_RESULTS/MCS_Output/MCS_SDF']
🧪 Indexed SDF exact keys: 142
🧪 Indexed SDF loose keys: 120
🧾 Residue lookup keys: 120
⚠️ Skipped 2 badly named PDB files → /app/jobs/62174d5e/Results_Display_Skipped_BadNames.csv
✅ Wrote /app/jobs/62174d5e/Results_Display.csv (118 SDF-backed entries)
📊 Input WAR_PDB rows skipped due to missing SDF: 0
[12:17:59] [mem] after 16_ResultsDisplay.py parent=137.8MB delta=+0.0MB combined_peak=210.5MB child_peak=72.7MB
[12:18:00] ✅ final SDF validation PASS: rows=118 matched=118 sdf_files=142 dir=jobs/62174d5e/TARGET_RESULTS/MCS_Output/MCS_SDF
