A comprehensive Pathway evolutionary browser module suite for evolutionary analysis, multiple sequence alignment (MSA), phylogenetic tree construction, and pathway evolution visualization.
If you would like a bundled version that includes egps-base, egps-shell, and egps-pathway.evol.browser, please visit: https://github.com/yudalang3/eGPS2.1
eGPS Pathway Evolution Browser is a plugin module for the eGPS2 platform that provides 18 integrated bioinformatics tools. The module suite supports a complete workflow from gene sequence retrieval to phylogenetic tree construction and evolutionary distance analysis.
- Pathway evolutionary browser: Interactive visualization with phylogenetic context of biological pathways
- Phylogenetic workflows: Build trees from MSA/MAF/distance matrices
- MSA toolkit: MAFFT alignment, trimming, and multi-format viewers
- Evolutionary distance analysis: Distance matrix computation and heatmap visualization
- Java: JDK 25 or higher
- Memory: Minimum 4GB heap (recommended:
-Xmx8g) - Platform: Windows, macOS, Linux
- MAFFT: Required for multiple sequence alignment operations (external dependency)
- The system can auto-detect MAFFT installation paths
- Supports custom MAFFT configuration
egps-pathway.evol.browser/
├── src/module/ # Source code modules
│ ├── ambigbse/ # Ambiguous nucleotide tools
│ ├── evoldist/ # Evolutionary distance (3 modules)
│ ├── evolview/ # Evolution visualization (3 modules)
│ ├── multiseq/ # Multiple sequence alignment (6 modules)
│ ├── pill/ # Pathway illuminator
│ ├── treebuilder/ # Tree construction (4 modules)
│ ├── evoltrepipline/ # Shared pipeline components
│ └── [other utilities]/
├── dependency-egps/ # External JAR dependencies
├── docs/ # Documentation (current)
├── src/api/rpython/ # External language bridge APIs for R/Python workflows
├── out/ # Build output
├── CLAUDE.md # Developer guidance
└── compile.sh # Build script
bash compile.shjavac -d ./out/production/egps-pathway.evol.browser \
-cp "dependency-egps/*" \
$(find src -name "*.java")Compiled classes: ./out/production/egps-pathway.evol.browser
java -cp "out/production/egps-pathway.evol.browser:dependency-egps/*" \
-Xmx12g @eGPS.args \
egps2.Launcher4Devjava -cp "out/production/egps-pathway.evol.browser:dependency-egps/*" \
-Xmx12g @eGPS.args \
egps2.Launcherjava -cp "out/production/egps-pathway.evol.browser:dependency-egps/*" \
-Xmx12g @eGPS.args \
egps2.Launcher com.package.ModuleClassNameThe suite contains 18 modules organized in 9 packages:
- ambigbse: Converts IUPAC ambiguous nucleotide codes (R, Y, M, K, S, W, H, B, V, D, N) to concrete sequences and reverse complements
- evoldist/gene2dist: Retrieve MSA from Ensembl/eGPS cloud sequences and compute evolutionary distance
- evoldist/msa2distview: Distance matrix calculation from MSA files (JC69, K2P, Tamura-Nei)
- evoldist/view: Heatmap visualization of evolutionary distance matrices
- evolview/gfamily: Interactive gene family browser with phylogenetic trees and sequence structures
- evolview/moderntreeviewer: Modern phylogenetic tree viewer with multiple layouts
- evolview/pathwaybrowser: Biological pathway visualization with phylogenetic context
- multiseq/aligner: MAFFT wrapper for fast multiple sequence alignment
- multiseq/alignerwithref: Reference-based MSA with MAFFT
- multiseq/alignment/trimmer: Trim MSA based on reference sequence
- multiseq/alignment/view: Interactive MSA viewer (ClustalW, FASTA, PHYLIP, NEXUS, etc.)
- multiseq/deversitydescriptor: Text-based alignment diversity metrics
- multiseq/gene2msa: Retrieve gene sequences from Ensembl/eGPS cloud and generate MSA
- pill: Pathway diagram drawing and editing tool (Pathway Illuminator)
- treebuilder/gene2tree: Obtain MSA from Ensembl/UCSC and construct gene phylogenetic trees
- treebuilder/frommsa: Construct phylogenetic trees from multiple sequence alignments
- treebuilder/frommaf: Construct phylogenetic trees from MAF (Multiple Alignment Format) files
- treebuilder/fromdist: Construct phylogenetic trees from evolutionary distance matrices
The application follows a modular architecture based on the IModuleLoader interface:
- Each module implements
IModuleLoaderinterface - UI panels extend
ModuleFaceabstract class - Dynamic module loading and discovery
All modules implement semantic versioning (Major.Minor.Patch):
@Override
public ModuleVersion getVersion() {
return new ModuleVersion(1, 0, 0);
}The codebase maintains a Directed Acyclic Graph (DAG) architecture—no circular dependencies between modules.
User configuration is stored in ~/.egps/:
- First-time launch: Creates configuration directory structure
- Module discovery: Automatic classpath scanning and plugin loading
- MAFFT integration: Auto-detection of MAFFT installation paths
Java-side R and Python bridge entry points are centralized under src/api/rpython/.
Current examples include:
API4RRlangInterfaceEGPSModernTreeViewPyLauncherPathwayFamilyBrowserPyLauncherEvolTreeManipulator
Important: Always use SLF4J Logger instead of System.out.println():
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger log = LoggerFactory.getLogger(MyClass.class);
log.info("Message: {}", value);
log.error("Error: {}", exception.getMessage());The system enforces UTF-8 encoding:
System.setProperty("file.encoding", "UTF-8")
For Swing JEditorPane support, use HTML 3.2 with CSS 1.0:
- No HTML5 semantic tags
- No CSS3 features (flexbox, grid, etc.)
- Use inline styles or
<style>tags - Use HTML tables for layout
Key libraries:
- Swing/SwingX - GUI framework
- Apache Commons (IO, Math3, Collections4, etc.)
- iText - PDF generation
- MigLayout - UI layout
- HTSJdk - Genomics file formats
- FastJSON - JSON processing
- SLF4J - Logging framework
- POI - Office file handling
See dependency-egps/ for complete list of JARs.
Licensed under the Apache License 2.0. See LICENSE file for details.
- Windows: Fully supported
- macOS: Fully supported
- Linux: Fully supported
For detailed developer information, see:
- CLAUDE.md - Developer guidance and architecture details
- modules_we_have.md - Detailed module specifications
- docs/current/ - Current documentation
- src/api/rpython/README.md - R/Python bridge entry-point guide
When developing or extending modules:
- Implement
IModuleLoaderinterface - Extend
ModuleFacefor UI - Follow semantic versioning in
getVersion() - Maintain DAG architecture (no circular dependencies)
- Use SLF4J for logging
- Add HTML 3.2-compliant documentation
- codex
- Claude
For issues, questions, or contributions, please refer to the project documentation in docs/current/.
Project: eGPS2 Pathway Evolution Browser Version: 2.2.0 Last Updated: 2026-01-01
