Spaces:
Running
Running
Commit History
-
feat(md): verified force field/solvent menu (ff14SB/ff15ipq/ff19SB/amberfb15/CHARMM36 x OBC1/OBC2/GBN2) with alanine-dipeptide createSystem startup probe; explicit errors for invalid combos; dynamic frontend menu
2583376 -
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(frontend): clear stale results, prefill-only bridges, and results-ready banners
Stop bridge pages from auto-running searches on navigation, clear result cards when inputs change, and add completion banners with auto-scroll on polling job pages. Co-authored-by: Cursor <cursoragent@cursor.com>bc59cdc -
fix(md): don't abandon long jobs after 5 min + trim workload
The frontend poll loop gave up after 5 minutes, so any MD job taking longer on the throttled CPU-only Space showed 'Simulation timed out after 5 minutes' even though the backend finishes within its 60-minute window. Raise the poll cap to 65 min (md + function pages) so results always surface. Also trim default workload so typical jobs finish fast: minimize 500->300 steps, equilibrate 300->200, SASA 48->36 points / 5->4 frames.c6b3385 -
feat(frontend): roll design-system classes across all dashboard pages + fix sidebar toggle alignment
6c03381 -
feat(md): clay simulation-parameter controls (force field, solvent, run length)
09fc54e
-
feat(md): temperature/KE, Rg and SASA traces; fix OpenMM in deployed image
- Add temperature (from kinetic energy), radius-of-gyration and Shrake-Ruger SASA time series to OpenMM production results; static single points in the BioPython fallback; avg summary keys. - Correct nm->A conversion in _positions_to_np (RMSD/Rg/SASA were 10x too small and mislabeled as angstrom). - Self-calibrating production length: probe real platform throughput so runs fit the budget on fast local OpenCL and slow CPU-only containers (HF Spaces). - Deployment: install openmm>=8.0 via pip (PyPI since 8.0) instead of the broken micromamba+site-packages symlink; add libgomp1 to worker image; fix libgl1-mesa-glx -> libgl1 for bookworm base. Verified in a built image: OpenMM 8.5.2 imports and a full 1CRN production run completes with sane temperature/Rg/SASA. - Random-data unit tests for Rg, SASA, temperature-from-KE and Langevin thermostat; production integration test asserts the new keys. - Frontend: charts for temperature, Rg and SASA; SASA avg in summary.8e3419e -
feat(md): real OpenMM production runs with accurate Ca RMSD
- OpenMM 8.x implicit-solvent fix (explicit obc2 forcefield, NoCutoff) - Strip non-standard residues before parameterization - Adaptive production length (target 250 ps, cap 1 ns) sized to atom count - Ca-atom Kabsch RMSD + per-residue Ca RMSF, minimization drift metric - Graceful fallback to BioPython analysis when OpenMM cannot build structure - Fix rdkit/OpenMM DLL conflict (preload openmm before rdkit in worker/conftest) - Frontend: adaptive production progress bar + extended result typescbef588
-
feat: cross-feature auto-fill bridges — data flows between all tools via sessionStorage
- Structure page: reads structure_query, auto-fetches, cross-links to Docking/MD/Function/Domains - UniProt page: reads uniprot_accession, auto-searches, cross-links to Domains/Structure/Interactions - Interactions page: reads interaction_gene, auto-submits - ADMET page: reads admet_smiles, auto-analyzes, cross-links to Docking - Function page: reads function_pdb_id, auto-predicts - MD page: reads md_pdb_id, auto-runs - Pathway page: reads pathway_query, auto-searches - Docking page: reads docking_pdb_id and docking_smiles - BLAST page: reads domains_accession (fixes broken Domains->BLAST bridge) - Job detail page: cross-links to Domains/Structure/Interactions/Docking/MD/Function - Domains page: adds Pathway bridge712d7a9 -
feat: expanded Domain & Motif Analysis with all features and cross-project links
- Added domain_analysis.py tool with 12 analysis functions (InterPro, UniProt features, sites, PTMs, topology, motifs, variants, disulfide, composition, GO, pathways, full analysis) - Expanded domains router with 12 endpoints (/features, /sites, /ptm, /topology, /motifs, /variants, /disulfide, /composition, /go, /pathways, /all) - Updated DomainArchitecture.tsx with tabbed interface (9 tabs), multi-track SVG visualizations, cross-feature links - Updated domains page.tsx with richer UI, example accessions, bridge links to BLAST/Structure/UniProt/Interactions - Fixed fetch_uniprot_raw to handle 400 status codes gracefully - Added 19 new domain/motif endpoint tests (206 passed, 17 skipped, 0 failed)9c0c10a
-
fix: Ramachandran tab hidden for proteins without PDB IDs + AI interpretation error
14dd32c -
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 -
fix: BLAST reliability - API key, exponential backoff, retry, error tracking
7bbb868
-
feat: live pipeline status progression — worker pushes status to Supabase at each step
- Add status_callback parameter to run_pipeline() and _execute() - Worker passes async callback that PATCHes job status in Supabase - BLAST sub-phases: submitted_to_ncbi -> polling_ncbi -> parsing - Post-BLAST phases: fetching_uniprot, running_msa, pathway_enrichment, fetching_alphafold, interpreting - Frontend STATUS_ORDER, isActive, STEP_LABELS updated with new statuses - Progress tracker now animates through each step in real-time96b3a54
-
fix: add 'running' to isActive and STATUS_ORDER to prevent false 'no results' flash; show bit_score in ScoreBars
- Add 'running' to isActive list and STATUS_ORDER so the progress tracker shows when the worker sets status to 'running' - Add 'running' to JobStepStatus type and STEP_LABELS - Show actual bit_score value next to each bar in ScoreBars so users can verify the numbersdbfde94
-
feat: ADMET 3a/3b split — mark RDKit descriptors as production, toxicity/ADMET as rule-based heuristic
fe8fda4
-
fix: ADMET import error + MD secondary structure accuracy
- admet.py: replaced GraphMolDescriptors.FractionCSP3 with Descriptors.FractionCSP3 (correct import path) - admet.py: removed unused rdm alias and rdFineMD import - md_sim.py: fixed phi/psi Ramachandran ranges for better sheet detection (beta sheet: psi 90-180 and -180 to -120, helix: -160 to -40 / -75 to 45) - md/page.tsx: Interpretation now checks sheets, not just helices (TIM barrel = sheet-rich, not coil) - md/page.tsx: Structural analysis mode hides meaningless zero values (temperature, timestep, integration steps, energy) - md/page.tsx: Shows 'Mode', 'Chains' instead for BioPython modeec85a6b -
feat: industrial-grade ADMET + detailed MD/function results
Backend (admet.py): - 50+ molecular descriptors (Fsp3, MR, volume, E-state, Wiener, Zagreb) - Full functional group analysis (12 groups) - 5 drug-likeness filters (Lipinski, Veber, Ghose, Egan, MDDR) - ADMET predictions: absorption (oral bio, Caco-2, Pgp, HIA), distribution (Vd, BBB, PPB, CNS), metabolism (CYP panel, half-life, LipE), toxicity (AMES, hERG, DILI, skin, LD50), clearance - Structural alerts: PAINS + Brenk - Composite drug-likeness score (0-100) and toxicity risk score (0-10) - Fixed imports (removed rdFineMD, Fragkins typo) Frontend (admet/page.tsx): - Tabbed layout: Overview, Properties, Drug-likeness, ADMET, Alerts - Risk badge components (color-coded pass/fail/risk levels) - Detailed ADMET category breakdowns - Structural alert summary with progress bar Frontend (md/page.tsx): - Simulation parameters card with engine/forcefield/solvent details - Integration steps progress bars - Energy analysis with convergence + production trace - RMSD/RMSF statistics (min/max/avg) …24c3fcb -
fix: stale job polling + 5min timeout + backend staleness guard
- Frontend: both MD and function prediction polls now timeout after 5 min - Backend status endpoints: auto-fail jobs stuck in queued/running for > 10 min - Prevents infinite polling of orphaned jobs (e.g. adfcd000)b5d0e97 -
fix: extract string from rate-limit error object to prevent React crash
7300a31 -
fix: OpenMM via micromamba + BioPython structural fallback, real error messages
bd95b9f -
feat: scientifically accurate MD simulation with OBC2 solvent, Kabsch RMSD, per-residue RMSF
3fba508
-
Phase 3a/4/5: ADMET descriptors (RDKit), MD simulation (OpenMM), function prediction (DeepFRI-inspired) — backend + frontend
99fb209
-
Phase 0a: SSRF protection + auth on docking/sequencing, worker design doc
89fd26d -
Fix color scheme switching, vina log parsing, icon dedup, dead code
695443f -
Redesign Vina log panel + fix z-index overlay in docking viewer
02f3743 -
Docking viewer upgrade: Molstar GPU rendering, proper interaction geometry, 3D dashed-line rendering
e86bafa
-
feat: add interaction fingerprinting and 3Dmol.js viewer to molecular docking page
- Backend: H-bond, hydrophobic, pi-stacking detection with conservative cutoffs - Backend: inline ligand PDB generation per pose, stored in result - Backend: GET /api/docking/result/{job_id}/pdb endpoint - Frontend: DockingViewer (3Dmol.js) — protein cartoon + ligand stick overlay - Frontend: InteractionPanel — collapsible tables for all interaction types - Frontend: poses table now shows H/HP/π counts per posea6857c7 -
feat: add query coverage, organism, and query accession to BLAST results
cee7881
-
fix: remove opacity:0 flicker from all pages
Root cause: fadeUp variant in animations.ts sets hidden: opacity:0, making all motion.div content invisible during the 500ms entrance animation. Fix: changed initial=hidden to initial={{ y:24 }} on all fadeUp content containers, and removed initial=hidden from stagger parents so children don't inherit opacity:0. This keeps the subtle slide-up while eliminating the content flicker on navigation and reload. Affects 22 files across analyze/*, dashboard, history, jobs, settings, learn, shared/[token], auth, landing page, and shared components.150c960 -
fix: prevent opacity flicker on job results page, add pathway_enrichment migration
3cc87a8
-
fix: handle NCBI UNKNOWN status and add pathway_enrichment to frontend status order
6547179 -
feat: add DNA sequence output across BLAST, UniProt, sequencing, primers, and SequenceRetrieval
00b6857 -
fix: resolve Vercel build errors (handleFind, SAMPLE_DNA, Set iteration)
95d0dc3 -
feat: add Translate CDS tool to /analyze/tools page
ea2ceb7 -
feat: implement 8 tool bridges (F1-F8) + audit child components
5561093 -
feat: improve phylo tree viz — branch length labels, bigger nodes, hub labels, tooltips, ML recommendation
e8b8539 -
feat: instrument 7 tool pages with usage audit trail
b3c481f -
feat: 4-layer audit/observability system
- Layer 1: useAuditTrail hook emits structured events fire-and-forget - Layer 2: audit_events + audit_insights tables in Supabase - Layer 3: Groq LLM-powered audit engine analyzes session event sequences - Layer 4: AuditInsightPanel floating widget with severity coloring - Instrumented BLAST page as first instrumented tool; others ready for same pattern6a2c89b
-
Fix pipeline stuck issue: synthetic FASTQ fallback and demo mode
e816a43
-
Fix sequencing dropdown: hardcoded defaults so dropdown works before backend deploys
3c3bea2 -
Phase 3: Sequencing pipeline (FASTQ -> QC -> alignment -> variant calling -> report)
- Backend: tools/sequencing.py -- SequencingPipeline with Python QC, minimap2 alignment, SAM-based variant calling, summary report - Backend: routers/sequencing.py -- /api/sequencing/run + status + references endpoints - Backend: Dockerfile -- added minimap2 v2.28 static binary - Frontend: analyze/sequencing/page.tsx -- full UI with pipeline progress, QC metrics, alignment rate, variant table - Frontend: analyze/page.tsx -- 'Sequencing Pipeline' card with 'New' badge - Frontend: lib/api.ts -- sequencing types and API functions1cb972c -
fix: replace iframe structure viewer with PDBe Molstar web component
- Add pdbe-molstar CSS + JS CDN scripts to root layout.tsx - Create StructureViewer.tsx React component wrapping <pdbe-molstar> - Replace iframes in structure/page.tsx and docking/page.tsx - No more CORS/embedding issues — web component runs in-pageb2360b8 -
fix: replace broken PDBe embed URL with Mol* viewer (molstar.org)
1819825 -
feat: molecular docking (AutoDock Vina) + docs site + Sentry + cache stats + Phase 2 docs update
- Molecular docking tool via AutoDock Vina (free, CPU-based, local binary) - Dockerfile: openbabel apt install + vina binary from GitHub releases - Backend: DockingTool (PDB fetch, obabel PDBQT conversion, vina subprocess, pose parser) - Backend: POST /api/docking/run + GET /api/docking/status/{job_id} - Frontend: analyze/docking/page.tsx — PDB ID + SMILES input, auto-detect binding pocket, results table with affinity color-coding, PDBe structure viewer - Frontend: docking card with 'New' badge added to analyze/page.tsx - Documentation site: /learn pages (10 topics + glossary), LearnPopover inline help, TutorialWalkthrough onboarding modal - Sentry error monitoring: sentry.client.config.ts, sentry.server.config.ts, next.config.js withSentryConfig, backend sentry_sdk init in main.py - Cache stats tracking: _cache_stats counters, from_cache flag, /api/admin/cache-stats endpoint, @ttl_cache on ncbi_service.search_by_name and pathway_enrichment - All .md docs (MASTER_PL…fb8c550
-
fix: replace dead embed.rcsb.org iframe with PDBe Mol* viewer
7d2b5e1 -
feat: complete Phase 2 — API keys, share links, export, pipeline steps, guest upgrade
305458b -
refactor: enhance dashboard with quick tools, jobs with filter tabs, settings with profile identity
32dd681 -
fix: default import PhyloTreeViewer in alignment, report, and PipelineResults
fe5ce87 -
feat: dedicated phylo router (NJ/UPGMA/ML), local PhyML binary, standalone phylo page, PhyloTreeViewer redesign
07e58f6