Spaces:
Sleeping
Sleeping
Commit History
-
Docking: flatten multi-chain obabel receptor output to a single model
033c1d2 -
Fix docking on Windows: resolve obabel from venv, use Windows Vina binary
- _ensure_obabel(): locate obabel on PATH (Docker/Linux) or next to the Python interpreter (Windows venv Scripts) and use the resolved binary. - _ensure_vina(): download vina_1.2.7_win.exe on Windows instead of the Linux binary (previously failed to execute). - requirements.txt: restore openbabel-wheel (obabel is required for the PDBQT conversion used by the docking pipeline). - Verified end-to-end on Windows: aspirin SDF->PDBQT, 1HIA PDB->PDBQT, Vina 1.2.7 docking produced poses with affinity scores.0c3a0da -
Fix pipeline MSA/AI stall, add SwissADME-parity ADMET panel, PubChem search, docking ligand data
- Pipeline: lazy litellm loading in interpreter/llm_client, brace-safe prompt building, EBI MSA best-effort (clustalo->muscle) + in-process progressive MSA fallback (msa_fallback.py), robust polling with consecutive-failure detection in PipelineResults. - ADMET: SwissADME-parity block (BOILED-Egg polygons, ESOL, Martin bioavailability, Muegge, radar, SA score), HBA as pure N+O count, recharts radar/BOILED-Egg/range-bar panel, chemical name in header. - PubChem: /api/admet/search autocomplete + name/CID->SMILES resolution, debounced compound search box on ADMET page. - Docking: ligand essential-data table (formula, MW, heavy atoms, H count, HBA/HBD/TPSA/RB/LogP) and per-pose hydrogen counts. - Pin backend start scripts to backend/.venv.5bb077e
-
feat(docking): Vina full-detail — parse 1.2.7 log (RMSD l.b./u.b., version, seed), RMSD table + run-config UI (3e)
4320faf
-
Major docking rewrite: match frontend contract (pdb_id+smiles input, nested poses/interactions output, PDB fetch from RCSB, auto grid center)
8f9cafc -
Fix docking: add pdb_to_pdbqt_receptor() for protein PDBQT conversion
9125057 -
Use Dockerfile-installed Vina first, fall back to download
dade2b6 -
fix: Linux Vina binary, Open Babel PDBQT, pipeline_worker utcnow
- docking.py: swap Windows .exe for vina_1.2.3_linux_x86_64 - docking.py: replace hand-rolled PDBQT with Open Babel (obabel) conversion - docking.py: add optional SHA256 checksum verification for Vina binary - pipeline_worker.py: fix datetime.datetime.utcnow() missing call parens - routers/docking.py: update to use new docking module API - routers/pipelines.py: use dispatch_job instead of removed run_pipeline_sync - routers/pipeline_v2.py: add public run_pipeline() entry for worker importfe05da9
-
test: reduce vina timeout to 10s for faster diagnostic
4d3a2e8 -
fix: indentation error at line 610
b100aa9 -
fix: revert to async subprocess (no thread pool to avoid import hang), keep --cpu 1
2a4a790 -
fix: use ThreadPoolExecutor with subprocess.Popen (no asyncio subprocess), add --cpu 1 and stdin=/dev/null
d242989 -
fix: use asyncio.create_subprocess_exec with file handles + asyncio.wait_for (no threads, no pipes)
48bf0d7 -
fix: use poll() polling loop instead of proc.wait(timeout=N) to avoid Python 3.14 pidfd-wait hang
4a1b691 -
fix: use Popen + wait(timeout=N) + killpg layered kill approach
f381b03 -
fix: use /usr/bin/timeout OS-level command instead of Python subprocess timeout
8329f93 -
fix: use subprocess.DEVNULL for Vina output — eliminates ALL I/O blocking
3aeb8d2 -
fix: use dedicated ThreadPoolExecutor(max_workers=1) + subprocess.run(file handles, timeout=N)
1242de8 -
fix: use asyncio.create_subprocess_exec with file descriptors + wait_for — no threads, no pipe buffer deadlock
6c14e2d -
fix: use file handles instead of PIPE to avoid Vina pipe-buffer deadlock on Render
88df0f4 -
fix: use process group kill (killpg) for reliable Vina timeout
32957ff -
debug: set Vina timeout to 60s for testing timeout mechanism
01cccda -
fix: use subprocess.run(timeout=...) instead of asyncio subprocess for reliable Vina timeout
ab38821 -
fix: reliable Vina timeout via asyncio subprocess + cleanup vimontest
ab9ad46 -
fix: parse CACTUS API PDB-like ATOM records instead of V2000 SDF
80b49f1 -
fix: use Linux timeout command instead of subprocess timeout to reliably kill Vina
083cf21 -
fix: add subprocess timeout=600, reduce exhaustiveness to 2, modes to 3
76cecfd -
fix: reorder _download_vina before module-level vina resolution
8c7f69a -
fix: detect missing Vina binary at module level and download fallback; fail early if binary not found
058552e -
fix: use asyncio.to_thread + file-based subprocess for Vina; add vina binary debug test
d214a0c -
fix: use asyncio.create_subprocess_exec for Vina to prevent pipe deadlock; fix isoformat for PostgREST
b1d8ad7
-
feat: add progress callbacks to DockingTool.run() for real-time status tracking
Add optional progress_callback parameter to DockingTool.run() and wire it through _worker() to _patch(), enabling the frontend to see intermediate status updates (fetching_pdb -> converting_ligand -> running_vina -> parsing_results). Also log Vina CMD/which/exists before invocation for debugging.8d44857 -
fix: add TORSDOF 0 after ENDROOT (rigid ligand)
396bcf1 -
fix: right-justify charge to col 76 with {charge:>8.3f}, ad_type:>2 at 78-79
38de281 -
fix: pad PDBQT to 80 cols so charge field is parseable at positions 66 or 69
f66e99a
-
fix: correct PDBQT column alignment (atom name, coord pos, charge field)
cdaf04c -
fix: correct PDBQT column positions for atom serial number
d29844d -
fix: generate PDBQT directly from SDF (Vina binary rejects PDB/SDF input)
3a5f903 -
fix: convert SDF to PDB in Python (avoids Vina SDF parser issues)
640d93b -
fix: use NCI CACTUS /mol format instead of /sdf (Vina parses MOL better)
c11931d -
fix: strip SDF data sections (Vina parser rejects >header lines)
ecab431 -
fix: replace obabel CLI with NCI CACTUS API for SMILES→3D (eliminates all subprocess crashes)
b3124a2 -
fix: use asyncio.to_thread(subprocess.run) instead of asyncio.create_subprocess_exec (Python 3.14 compat)
05c77a7 -
fix: use obabel CLI subprocess for SMILES→3D (lightweight, no OOM) + Vina reads PDB receptor natively (no obabel PDBQT prep)
64e0551 -
fix: use PDB instead of SDF for ligand (Vina SDF parser rejects RDKit tag)
36897bb -
fix: eliminate obabel entirely — use RDKit for SMILES→3D + Vina PDB/SDF input (avoids OOM from obabel C++ subprocess)
618a4e0 -
fix: add import subprocess and use subprocess.PIPE instead of asyncio.subprocess.PIPE (Python 3.14 compat)
6d68d15 -
fix: revert to BackgroundTasks + async DockingTool.run (no threads, no pybel); pre-download vina in build.sh
538a17a -
fix: fully sync _worker_sync — replaces asyncio.run with subprocess.run + httpx.Client to avoid Python 3.14 thread crash
890c537 -
fix: remove pybel bindings (causes segfault on Render), use obabel CLI subprocess only
0ed4824