Commit History

Docking: flatten multi-chain obabel receptor output to a single model
033c1d2

Samad14 commited on

Fix docking on Windows: resolve obabel from venv, use Windows Vina binary
0c3a0da

Samad14 commited on

Fix pipeline MSA/AI stall, add SwissADME-parity ADMET panel, PubChem search, docking ligand data
5bb077e

Samad14 commited on

feat(docking): Vina full-detail — parse 1.2.7 log (RMSD l.b./u.b., version, seed), RMSD table + run-config UI (3e)
4320faf

Samad14 commited on

Major docking rewrite: match frontend contract (pdb_id+smiles input, nested poses/interactions output, PDB fetch from RCSB, auto grid center)
8f9cafc

Samad14 commited on

Fix docking: add pdb_to_pdbqt_receptor() for protein PDBQT conversion
9125057

Samad14 commited on

Use Dockerfile-installed Vina first, fall back to download
dade2b6

Samad14 commited on

fix: Linux Vina binary, Open Babel PDBQT, pipeline_worker utcnow
fe05da9

Samad14 commited on

test: reduce vina timeout to 10s for faster diagnostic
4d3a2e8

Samad14 commited on

fix: indentation error at line 610
b100aa9

Samad14 commited on

fix: revert to async subprocess (no thread pool to avoid import hang), keep --cpu 1
2a4a790

Samad14 commited on

fix: use ThreadPoolExecutor with subprocess.Popen (no asyncio subprocess), add --cpu 1 and stdin=/dev/null
d242989

Samad14 commited on

fix: use asyncio.create_subprocess_exec with file handles + asyncio.wait_for (no threads, no pipes)
48bf0d7

Samad14 commited on

fix: use poll() polling loop instead of proc.wait(timeout=N) to avoid Python 3.14 pidfd-wait hang
4a1b691

Samad14 commited on

fix: use Popen + wait(timeout=N) + killpg layered kill approach
f381b03

Samad14 commited on

fix: use /usr/bin/timeout OS-level command instead of Python subprocess timeout
8329f93

Samad14 commited on

fix: use subprocess.DEVNULL for Vina output — eliminates ALL I/O blocking
3aeb8d2

Samad14 commited on

fix: use dedicated ThreadPoolExecutor(max_workers=1) + subprocess.run(file handles, timeout=N)
1242de8

Samad14 commited on

fix: use asyncio.create_subprocess_exec with file descriptors + wait_for — no threads, no pipe buffer deadlock
6c14e2d

Samad14 commited on

fix: use file handles instead of PIPE to avoid Vina pipe-buffer deadlock on Render
88df0f4

Samad14 commited on

fix: use process group kill (killpg) for reliable Vina timeout
32957ff

Samad14 commited on

debug: set Vina timeout to 60s for testing timeout mechanism
01cccda

Samad14 commited on

fix: use subprocess.run(timeout=...) instead of asyncio subprocess for reliable Vina timeout
ab38821

Samad14 commited on

fix: reliable Vina timeout via asyncio subprocess + cleanup vimontest
ab9ad46

Samad14 commited on

fix: parse CACTUS API PDB-like ATOM records instead of V2000 SDF
80b49f1

Samad14 commited on

fix: use Linux timeout command instead of subprocess timeout to reliably kill Vina
083cf21

Samad14 commited on

fix: add subprocess timeout=600, reduce exhaustiveness to 2, modes to 3
76cecfd

Samad14 commited on

fix: reorder _download_vina before module-level vina resolution
8c7f69a

Samad14 commited on

fix: detect missing Vina binary at module level and download fallback; fail early if binary not found
058552e

Samad14 commited on

fix: use asyncio.to_thread + file-based subprocess for Vina; add vina binary debug test
d214a0c

Samad14 commited on

fix: use asyncio.create_subprocess_exec for Vina to prevent pipe deadlock; fix isoformat for PostgREST
b1d8ad7

Samad14 commited on

feat: add progress callbacks to DockingTool.run() for real-time status tracking
8d44857

Samad14 commited on

fix: add TORSDOF 0 after ENDROOT (rigid ligand)
396bcf1

Samad14 commited on

fix: right-justify charge to col 76 with {charge:>8.3f}, ad_type:>2 at 78-79
38de281

Samad14 commited on

fix: pad PDBQT to 80 cols so charge field is parseable at positions 66 or 69
f66e99a

Samad14 commited on

fix: correct PDBQT column alignment (atom name, coord pos, charge field)
cdaf04c

Samad14 commited on

fix: correct PDBQT column positions for atom serial number
d29844d

Samad14 commited on

fix: generate PDBQT directly from SDF (Vina binary rejects PDB/SDF input)
3a5f903

Samad14 commited on

fix: convert SDF to PDB in Python (avoids Vina SDF parser issues)
640d93b

Samad14 commited on

fix: use NCI CACTUS /mol format instead of /sdf (Vina parses MOL better)
c11931d

Samad14 commited on

fix: strip SDF data sections (Vina parser rejects >header lines)
ecab431

Samad14 commited on

fix: replace obabel CLI with NCI CACTUS API for SMILES→3D (eliminates all subprocess crashes)
b3124a2

Samad14 commited on

fix: use asyncio.to_thread(subprocess.run) instead of asyncio.create_subprocess_exec (Python 3.14 compat)
05c77a7

Samad14 commited on

fix: use obabel CLI subprocess for SMILES→3D (lightweight, no OOM) + Vina reads PDB receptor natively (no obabel PDBQT prep)
64e0551

Samad14 commited on

fix: use PDB instead of SDF for ligand (Vina SDF parser rejects RDKit tag)
36897bb

Samad14 commited on

fix: eliminate obabel entirely — use RDKit for SMILES→3D + Vina PDB/SDF input (avoids OOM from obabel C++ subprocess)
618a4e0

Samad14 commited on

fix: add import subprocess and use subprocess.PIPE instead of asyncio.subprocess.PIPE (Python 3.14 compat)
6d68d15

Samad14 commited on

fix: revert to BackgroundTasks + async DockingTool.run (no threads, no pybel); pre-download vina in build.sh
538a17a

Samad14 commited on

fix: fully sync _worker_sync — replaces asyncio.run with subprocess.run + httpx.Client to avoid Python 3.14 thread crash
890c537

Samad14 commited on

fix: remove pybel bindings (causes segfault on Render), use obabel CLI subprocess only
0ed4824

Samad14 commited on