Spaces:
Sleeping
Sleeping
Commit History
-
chore: remove NGS rate limits
86f2851 -
feat: add igv.js genome browser + proper 6-step NGS pipeline
Backend (ngs.py): - Step 1 QC: per-base quality distribution, GC windows, read length stats - Step 2 Trim: quality/length filtering with before/after metrics - Step 3 Align: Python seed-and-extend alignment (mapped reads, CIGAR) - Step 4 Variant: pileup-based variant calling with VCF output - Step 5 Annotation: SnpEff/cross-reference with protein changes - Step 6 Visualization: upload BAM/SAM/VCF/FASTA to Supabase Storage Frontend: - IgvBrowser component: lazy-loads igv.js, loads BAM/SAM + VCF tracks - Rebuilt NGS page with all 6 steps, per-base quality SVG chart - Download links for BAM/SAM/VCF/FASTA - TypeScript types updated for file_urls, quality charts, annotations Verified: end-to-end test produced 50 variants, uploaded SAM+VCF+reference.95e9035 -
fix: NGS pipeline stuck in queued - worker fallback + migration fix
Root cause: ngs_jobs table was created manually without created_at column and the claim_next_ngs_job RPC was never executed. Fix: - worker.py: _claim_direct() fallback uses direct Supabase queries when RPC is missing (no FOR UPDATE SKIP LOCKED, but atomic update prevents double-processing) - ngs.py: _ensure_ngs_table() attempts auto-migration on first job - 007_ngs_jobs.sql: adds IF NOT EXISTS for created_at column and uses EXCEPTION blocks for idempotent RLS policies Verified: end-to-end test claimed, ran, and completed both queued jobs.8b17c40 -
feat: add full 6-step NGS pipeline + fix sequencing WinError 193
NGS Pipeline (new): - tools/ngs.py: 6-step pipeline (QC, trim, align, variants, annotate, report) with native tool detection (fastqc/fastp/minimap2/samtools/bcftools/snpEff) and pure-Python fallbacks for every step (works on Windows + Linux/Docker) - routers/ngs.py: FastAPI router with POST /run, GET /status, GET /references - migrations/007_ngs_jobs.sql: ngs_jobs table + claim RPC + RLS policies - worker.py: wired ngs_jobs into durable worker dispatch - rate_limit.py: 5 NGS jobs/day per user - Frontend: /analyze/ngs page with 6-step progress stepper, QC stats, trimming retention, alignment mapping rate, variant table, annotation with known variant lookup, consensus FASTA download, BLAST bridge - api.ts: NGS types + runNGS/getNGSStatus/listNGSReferences functions Sequencing Pipeline fix: - Fixed [WinError 193] by detecting platform and refusing to execute Linux ELF binary on Windows; added Python fallback alignment5fa9145