Interactive Protein Sequence Alignment Visualization Tool
Emerald UI provides advanced visualization of optimal and suboptimal protein sequence alignments, enabling researchers to explore alignment-safe intervals and identify conserved regions between protein sequences. This tool implements the EMERALD algorithm for sensitive inference of alignment-safe intervals from biodiverse protein sequence clusters.
EMERALD (Efficient Maximum-likelihood Estimation of Reliable Alignments from Local Domains) is a sophisticated algorithm that goes beyond traditional pairwise sequence alignment by identifying not just the optimal alignment, but also suboptimal alignments and regions where alignments are consistently reliable across different scoring schemes.
- 🔍 Interactive Alignment Visualization: Explore dot plots showing all possible alignments between two sequences
- 🛡️ Safety Window Analysis: Identify regions where alignments are consistently reliable
- 📁 Multiple Input Methods: Upload FASTA files, search UniProt database, or paste sequences directly
- ⚙️ Customizable Parameters: Adjust α (alpha) and δ (delta) values to fine-tune alignment sensitivity
- 🧬 3D Structure Integration: Overlay protein structure information when available
- 📊 Export & Sharing: Generate publication-ready images and shareable URLs
- Node.js 18.0 or higher
- npm or yarn package manager
- Clone the repository:
git clone https://github.com/algbio/emerald-ui.git
cd emerald-ui
- Install dependencies:
npm install
- Start the development server:
npm run dev
- Open your browser and navigate to
http://localhost:5173
Choose one of three methods to provide two protein sequences:
- Upload FASTA File: Upload a file containing exactly two protein sequences in FASTA format
- UniProt Search: Search the UniProt database using protein names, gene names, or accession numbers
- Manual Entry: Paste sequences directly into the input fields (available in the alignment parameters section)
- α (Alpha): Controls alignment stringency (0.5-1.0). Higher values = more stringent alignment
- δ (Delta): Gap penalty for insertions and deletions (0-32). Higher values penalize gaps more
Click "Generate Alignments" to compute all possible alignments and identify alignment-safe regions.
- Dot Plot Visualization: Each point represents a possible alignment between sequences
- Safety Windows: Colored regions indicate high-confidence alignment areas
- Interactive Features: Zoom, pan, and explore different regions of the alignment
- Sequence Information: View details about both input sequences
- Generate shareable URLs to save your analysis
- Export high-quality images for publications and presentations
- Homology Analysis: Compare related proteins to identify conserved domains
- Evolutionary Studies: Trace sequence evolution across species
- Structure-Function Analysis: Correlate sequence conservation with structural elements
- Domain Mapping: Identify functional domains and motifs
- Quality Assessment: Evaluate alignment reliability for downstream analyses
This application is built with:
- Frontend: React 18 + TypeScript + Vite
- Algorithm: WebAssembly (WASM) implementation of EMERALD
- Visualization: Custom Canvas-based interactive plotting
- Styling: CSS with CSS custom properties for theming
- Data Sources: UniProt REST API integration
Please cite the following reference when using EMERALD for your research:
Grigorjew, A., Gynter, A., Dias, F.H. et al. Sensitive inference of alignment-safe intervals from biodiverse protein sequence clusters using EMERALD. Genome Biol 24, 168 (2023). https://doi.org/10.1186/s13059-023-03008-6
src/
├── components/ # React components
│ ├── alignment/ # Alignment visualization components
│ ├── sequence/ # Sequence input components
│ ├── structure/ # 3D structure components
│ ├── share/ # Export and sharing components
│ └── ui/ # UI feedback components
├── context/ # React context for state management
├── hooks/ # Custom React hooks
├── utils/ # Utility functions
│ ├── api/ # API integration utilities
│ ├── canvas/ # Canvas drawing utilities
│ └── export/ # Export utilities
└── emerald-wasm/ # WebAssembly EMERALD implementation
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production buildnpm run lint
- Run ESLint
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details. ...reactDom.configs.recommended.rules, }, })
### Breaking example:
ROS1_ARATH and ROS1A_ORYSJ