Bioinformatics Tools & Services
Relevant source files
The following files were used as context for generating this wiki page:
Bioinformatics Tools & Services represent a suite of web-based applications designed to facilitate complex biological data analysis. These services enable users to perform high-throughput tasks such as genome assembly, annotation, multiple sequence alignment, SNP analysis, and comprehensive comparative genomics directly through a unified web interface.
The system is built on a modular architecture where specific analysis tools inherit from a common base class, ensuring consistent job submission, validation, and result tracking across different bioinformatics workflows. This infrastructure supports both raw read processing and analysis of existing genomic data stored within the user's workspace.
Sources: public/js/p3/widget/app/AppBase.js, public/js/p3/widget/app/ComprehensiveGenomeAnalysis.js:20-25, public/js/p3/widget/app/GenomeAlignment.js:19-24
System Architecture and Base Application Logic
The foundation of the bioinformatics services is the AppBase class. This class provides the essential lifecycle methods and shared logic required for all analysis widgets, including authentication checks, workspace interaction, and the job submission pipeline.
Core Lifecycle and Data Flow
All tools follow a standardized flow: input selection (reads, contigs, or genome IDs), parameter configuration, validation, and submission to the AppService. The system integrates with the WorkspaceManager to handle file selections and the JobManager to track asynchronous task execution.
The diagram above illustrates the high-level workflow from user input validation to job execution and result storage.
Sources: public/js/p3/widget/app/AppBase.js:154-175, public/js/p3/widget/app/AppBase.js:250-270
Shared Components
Bioinformatics services utilize common data structures for handling sequencing libraries and genomic references:
| Component | Description |
|---|---|
paired_end_libs | Collection of paired-end read files (Read 1 and Read 2). |
single_end_libs | Collection of single-end read files. |
srr_ids | SRA Run Accessions for direct import from NCBI. |
target_genome_id | The reference genome ID used for alignment or comparative analysis. |
output_path | The workspace destination for generated analysis files. |
Sources: public/js/p3/widget/app/AppBase.js:31-41, public/js/p3/widget/app/ComprehensiveGenomeAnalysis.js:41-45
Primary Bioinformatics Services
Comprehensive Genome Analysis (CGA)
The CGA service is an "all-in-one" pipeline that accepts raw reads or contigs. It automates assembly, annotation, and basic comparative analysis, including phylogenetic tree building.
- Logic: Users choose between "Start with Reads" or "Start with Contigs." If starting with reads, the service requires assembly parameters (e.g., recipe, coverage).
- Key Parameters:
recipe(e.g., 'canu'),genome_size,min_contig_len, andpilon_iter.
Sources: public/js/p3/widget/app/ComprehensiveGenomeAnalysis.js:22-25, public/js/p3/widget/app/ComprehensiveGenomeAnalysis.js:284-300
Genome Alignment Service
This service utilizes the progressiveMauve algorithm to align multiple bacterial or viral genomes. It supports selecting genomes directly from the database or from user-defined genome groups in the workspace.
The sequence diagram shows the process of resolving genome groups into individual IDs for alignment.
Sources: public/js/p3/widget/app/GenomeAlignment.js:103-118, public/js/p3/widget/app/GenomeAlignment.js:120-145
Whole Genome SNP Analysis
The SNP Analysis service (using kSNP4) identifies single nucleotide polymorphisms across genome groups. It is specifically optimized for tracking viral and bacterial pathogens during outbreaks.
- Validation: Ensures input genomes are compatible (e.g., checking viral vs. bacterial types).
- Output: Phylogenetic trees based on identified SNPs and SNP position data.
Sources: public/js/p3/widget/app/WholeGenomeSNPAnalysis.js:20-25, public/js/p3/widget/app/WholeGenomeSNPAnalysis.js:77-85
Sequence Analysis and Visualization Tools
Multiple Sequence Alignment (MSA) Viewer
The project integrates the BioJS MSA Viewer for interactive visualization of alignments. It supports FASTA and Clustal formats and runs purely in the browser.
| Feature | Description |
|---|---|
| Import | Supports direct URL import or manual sequence object passing. |
| Interactivity | Responds to events like residue:click or column:click. |
| Export | Capability to save as FASTA, Image (PNG), or GFF3. |
| Styling | Built-in color schemes like 'hydro' or custom defined schemes. |
Sources: public/js/msa/README.md:58-65, public/js/msa/README.md:162-170
Advanced Search and Data Mapping
The AdvancedSearch module allows users to query specific bioinformatics entities including epitopes, protein structures, and genomic features.
// Example of link generation logic for search results
_generateLink: {
genome: function (docs, total) {
if (total == 1) {
return ['/view/Genome/', docs[0].genome_id, '#view_tab=overview'].join('');
}
return ['/view/GenomeList/?', this.state.search, '#view_tab=genomes'].join('');
},
// ... other entities
}
Sources: public/js/p3/widget/AdvancedSearch.js:59-75, public/js/p3/widget/AdvancedSearch.js:24-38
Data Validation and SRA Integration
The system includes a robust validation layer for external data sources, particularly NCBI SRA accessions. The AppBase class performs asynchronous XML parsing of SRA records to verify accession types (Run, Experiment, or Study) before allowing job submission.
FASTA Validation
A specific validator is used to ensure FASTA text inputs are correctly formatted, check for DNA vs. Protein sequence types, and enforce length limits.
Sources: public/js/p3/widget/app/AppBase.js:520-550
Conclusion
The Bioinformatics Tools & Services module provides a structured, extensible framework for genomic analysis. By leveraging a common AppBase infrastructure and integrating powerful third-party viewers and algorithms, the system offers high-throughput analysis capabilities while maintaining a consistent user experience across varied bioinformatics tasks.