PS Analyzer is a modern Sanger sequence analysis tool designed for clinical and research use. It provides a comprehensive suite of features for variant detection, visualization, and report generation, built with performance and security in mind using Angular and Tauri.
PS Analyzer guides you through a seamless, automated end-to-end clinical workflow:
- Upload Trace (.ab1): Import your Sanger chromatogram file directly.
- Align to Reference: Automatically align the trace to a reference FASTA template sequence.
- Detect Variants: Call single nucleotide variants (SNVs) and insertions/deletions (indels) with high-confidence quality filtering.
- Generate Report: Review findings and export a clinical-grade PDF or HTML report with fully annotated variants.
- High-Performance Visualization: Smooth, zoomed, and interactive Sanger trace dashboards.
- Automated Variant Detection: Integration with
bio-enginefor precise SNV and Indel identification. - VEP Integration: Automatic annotation of variants using the Ensembl Variant Effect Predictor.
- Clinical Reporting: Professional PDF and HTML report generation with customizable variant and read selection.
- Self-Contained:
tracyandbgzipare bundled with the application. FASTA indexing is handled internally by thebio-engineviapysam, eliminating the need for an externalsamtoolsbinary. - Secure by Design: Local-first architecture powered by Tauri, ensuring sensitive genetic data stays on your machine.
- Modern Tech Stack: Built with Angular 20, utilizing Signals and modern control flow for a reactive and efficient UI.
This repository contains the frontend and desktop application logic. It expects a sibling directory bio-engine containing the backend analysis services.
- Node.js: v20+
- Rust: For Tauri builds
- Conda/Python: For the
bio-enginebackend (if building from source) - Angular CLI:
npm install -g @angular/cli
- Download the
PS.Analyzer_X.Y.Z_amd64.debpackage. - Install using:
sudo apt install ./PS.Analyzer_X.Y.Z_amd64.deb
This version includes all necessary bioinformatics tools (bgzip, tracy) bundled as sidecars. FASTA indexing is handled internally by the bundled bio-engine. No additional system installation is required.
The application expects a sibling directory bio-engine containing the backend analysis services if you are running from source. For packaged releases, the bio-engine is bundled automatically.
To run the application in development mode:
./debug/build_run.shThis script will:
- Activate the necessary Conda environment.
- Build the
bio-enginesidecar. - Start the Tauri development server and Angular frontend.
Get started quickly using our pre-packaged public sample data:
- Prerequisites: Ensure you have Node.js (v20+), Rust, and Conda installed.
- Clone & Setup:
git clone https://github.com/lagosproject/ps-analyzer.git cd ps-analyzer npm install - Run the App:
./debug/build_run.sh
- Run a Demo Analysis:
- Once the application window opens, click New Project.
- For Sanger Trace file, choose:
sample-data/sample1_3100.ab1 - For Reference sequence, choose:
sample-data/sample1_3100.fasta - Click Run Alignment & Variant Calling.
- Inspect the aligned chromatogram trace, verify detected variants, and generate your clinical report!
To run the linter and check for code quality issues:
npm run lintTo automatically fix common linting issues:
npm run lint -- --fixFor deployments on local servers or intranets where multiple users need to access the application via a web browser, we provide a server-optimized configuration.
A docker-compose.yml is provided in the project root to orchestrate both the frontend and the bio-engine backend.
- Clone the repositories (ensure
ms-analyzerandbio-engineare siblings). - Run with Docker Compose:
docker-compose up --build -d
- Access the application: The app will be available at
http://<server-ip>:8080.
Dockerfile.server: Builds the Angular application and serves it using Nginx. It includes a reverse proxy configuration to route/apirequests to the backend.Dockerfile: (Standard) Used for development environments and Tauri build pipelines.
The application communicates with a local FastAPI server (part of the bio-engine). The API URL is configurable in src/app/core/services/analysis.service.ts or via environment variables in future releases.
PS Analyzer stands out by combining ease of use, local data privacy, and clinical-grade reporting:
| Feature / Capability | PS Analyzer | SnackVar | Sequencher | TraceTrack | sangeranalyseR |
|---|---|---|---|---|---|
| Deployment Model | Local-First Desktop (Tauri) / Web | Cloud Web App | Local Desktop App | CLI Tool | R Library |
| Data Privacy | Private (Local Processing) | Public/Third-party Cloud | Private (Local) | Private (Local) | Private (Local) |
| VEP Integration | Yes (Automated) | No | No | No | No |
| Clinical PDF Output | Yes (Structured) | No | No | No | No |
| Cost / License | Open Source (MIT) | Open Source | Commercial (High Cost) | Open Source | Open Source |
| Target Audience | Clinicians & Researchers | Researchers | General Biologists | Bioinformaticians | R Developers |
- Local-First & Secure: Unlike web-only tools (e.g., SnackVar), PS Analyzer runs as a local Tauri desktop application. Sensitive patient genomic data never leaves your local machine, ensuring HIPAA and GDPR compliance.
- Automated VEP Annotation: Seamlessly integrates with the Ensembl Variant Effect Predictor (VEP) to automatically annotate functional consequences and clinical significance (ClinVar, etc.) of detected variants.
- Clinical-Grade Reporting: Generates publication-ready and clinical-diagnostic PDF/HTML reports, complete with quality metrics, mutation markers, and sequence alignments.
Contributions are welcome! Please feel free to submit pull requests or open issues for feature requests and bug reports.
This project relies on the following open-source tools and projects:
- Tracy - Used for trace decomposition and assembly.
- Ensembl VEP - Used for variant effect prediction.
- Bio-Engine - The Python backend for sequence analysis.
Here are the major technologies and packages used to build this project:
This project is licensed under the MIT License - see the LICENSE file for details.