📋 Developer Note: See ARCHITECTURE.md for critical design rules, especially regarding scaffold handling and clustering behavior.
PyPASA is a Python port of the PASA (Program to Assemble Spliced Alignments) alignment assembly pipeline. This implementation focuses on the core alignment assembly functionality while maintaining compatibility with the original PASA workflow.
- In-Memory Processing: Fast operations on active data using NumPy/Pandas
- Persistent Storage: SQLite for state management and queryability
- Native Integration: Calls existing C++ assembly utility for proven algorithm
PyPASA/
├── pypasa/
│ ├── alignment/ # Alignment import, validation, clustering
│ ├── assembly/ # Assembly pipeline and C++ wrapper
│ ├── storage/ # Hybrid storage manager (RAM + SQLite)
│ └── utils/ # Shared utilities
├── tests/ # Test suite
└── scripts/ # CLI tools
- Alignment import (GMAP/BLAT GFF3 format)
- Alignment validation (quality filters)
- Overlap-based clustering
- Assembly via C++ utility
- Output generation (FASTA, GFF3, GTF, BED)
- Annotation comparison
- Annotation updates
- Alternative splicing analysis
cd PyPASA
pip install -e .# Run alignment assembly pipeline
pypasa align-assemble \
--genome genome.fasta \
--transcripts transcripts.fasta \
--output-dir pasa_out \
--aligners gmap,blat \
--cpu 8- Memory: Processes genome scaffolds independently
- Storage: SQLite for persistence, RAM for processing
- Speed: Comparable to original Perl implementation
- Reuses existing C++ assembly utility
- Compatible with PASA sample data
- Output formats match original PASA
This is an active port from the original Perl implementation. See PROGRESS.md for migration status.