Spaces:
Running
Running
Commit History
-
fix(blast): honor program/db/max_hits params, accept DNA queries, poll cap 65 min
- pipeline_v2: resolve program/database/sequence-type via blast_config, thread blast_params through /run -> run_pipeline -> _execute -> _run_blast, clamp max_hits to 5-100, record query_sequence_type/query_accession. - pipelines + pipeline_worker: persist database/program/max_hits/query_accession in context_json and forward as blast_params. - validators: accept DNA/RNA in validate_fasta (was rejecting with 400). - sequence_utils: fix detect_sequence_type so ACGT-only strings are nucleotide (protein alphabet overlaps, so nucleotide check now wins). - frontend jobs page: POLL_TIMEOUT_MS 10min -> 65min to match backend window. - tests: unit coverage for resolve_blast_params + nucleotide validation.1f75a84
-
fix: remove all rate limiters blocking pipeline runs
- deps.py: remove slowapi 60/minute default limit - pipelines.py: remove daily limit + 10/minute limiter from /run - pipeline_v2.py: remove daily limit + 10/minute limiter from /run - ai.py: remove daily limit from /interpret and /interpret/stream - sequencing.py: remove daily limit + 10/minute limiter from /run51ed454 -
perf: parallelize post-BLAST steps + fast_mode Swiss-Prot toggle
- _execute(): UniProt, MSA, Pathway Enrichment run in parallel via asyncio.gather - _execute(): Domains + AlphaFold run in parallel after UniProt completes - Total post-BLAST time: ~8min sequential -> ~4min (limited by MSA) - Add fast_mode toggle: Swiss-Prot (~560K seqs, 5-10s) vs nr (~300M seqs, 30s-2min) - Frontend: fast mode toggle in BLAST wizard advanced settings - Backend: fast_mode flows through pipelines.py -> worker -> pipeline_v2 -> blast.pyf3682aa
-
chore: increase rate limit 3/min -> 10/min for pipeline and sequencing endpoints
dd97183
-
fix: BLAST sequence not read - store full sequence in query_preview, fix context_json fallback
211c4f9 -
fix: BLAST pipeline stuck in queue — 3 root causes
1. Full sequence never stored: only 100 chars in query_preview, worker reads non-existent query_sequence/query columns - Fix: store full sequence in context_json, read from there with fallbacks 2. Wrong status 'completed' violates DB constraint (allows 'complete' only) - Fix: 'completed' -> 'complete' 3. 'updated_at' column doesn't exist on jobs table, silently rejected by PostgREST - Fix: removed from all pipeline_worker PATCH payloads59765e9
-
Phase 1: harden rate limits — JWT-aware keys, per-endpoint caps, daily limits on all job types
bd279b4
-
Phase 0b: durable worker with FOR UPDATE SKIP LOCKED, per-type concurrency, separate container
fee674e -
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
-
feat: add query coverage, organism, and query accession to BLAST results
cee7881
-
Security, crash fixes, demo prep, dead code removal
- Auth guard: GET/DELETE /api/jobs/{id} now verify ownership (403 on mismatch) - Streaming auth: interpretStream() injects Supabase Bearer token - DELETE 404: return 404 if job never existed - JobProgress: fixed active step to show next pending step - Step names unified: worker → definition → frontend all match - Null-guards: BlastPanel, ScoreBars, UniprotPanel handle undefined/null data - ErrorBoundary: new class component wrapping dashboard layout - Silent catches: replaced .catch(noop) with user-visible error banner - Demo data: filled alignment strings for all hits; added hemoglobin + BRCA1 - History page: linked in sidebar nav (was orphaned) - pipeline_type default fixed: blast → protein_analysis - Axios timeout: added 30s timeout to api client - Dead code: removed 8 files (engine.py, results/export/waitlist routers, celery_app, redis service, registration tool, StructureViewer component) and 4 unused api.ts functions9a28cd0
-
Sprint 1-2: JWT auth middleware + UniProt dedicated page
f8dfa58
-
design.md + rules.md compliance: dark theme, teal palette, pulsing dot, Pydantic models, api.ts routing, config fixes, db/max_hits threading, Supabase migration 004
f42f5a6 -
fix: remove current_step_label and error_message refs — columns missing from jobs table
e5d75ff
-
Deploy prep: Render config + Dockerfile, refactored backend auth flow, dashboard, landing page, error states, guest flow
76fb273
-
Core pipeline testability: progress callback, rate limiter 429, history table
- Pipeline engine: progress_callback fires after BLAST/UniProt/AlphaFold, Pydantic models normalized to plain dict (fixes 'runs but no result') - Worker: async Supabase REST PATCH for real-time step progress - Rate limiter: raises HTTP 429 with Content-Range parsing, fail-open - History: table layout with clickable rows -> /results/[jobId] - BLAST: add stype param, fix email (EBI rejects invalid domains) - Celery: Redis ping check so fallback to sync thread works - UI: progress bar + percentage in JobProgress, nav link fixes - Auth: removed for testing (will re-enable in Phase 1) - Status: changed pending -> queued to match DB check constraint88aa370 -
Initial commit: Bio Nexus pipeline engine — BLAST + UniProt + AlphaFold + AI interpretation (Phase 1)
5a0e691