Introduction to DXKB Web
Relevant source files
The following files were used as context for generating this wiki page:
The DXKB (Disease X Knowledge Base) Web application is a comprehensive bioinformatics portal designed for the streamlined analysis of genomic data, particularly focused on viral and bacterial pathogens. It provides an integrated environment for data management through a specialized workspace and offers a variety of analysis "meta-services" that handle everything from raw read processing to comparative genomics.
The application architecture is built upon the BV-BRC (Bacterial and Viral Bioinformatics Resource Center) framework, utilizing a widget-based system for the frontend and a service-oriented architecture for the backend. Key features include multiple sequence alignment (MSA), comprehensive genome analysis, and extensive visualization tools for phylogenetic trees and metadata.
Sources: README.md:1, public/js/p3/widget/app/ComprehensiveGenomeAnalysis.js:24-26
Core Application Architecture
The DXKB Web application utilizes the Dojo Toolkit for its frontend architecture, relying heavily on dojo/_base/declare to create reusable widgets and application modules. The system follows a Model-View-Controller (MVC) like pattern where widgets act as the primary interface for both data display and bioinformatic service orchestration.
The Widget System
Most UI components, including overview pages and service submission forms, are defined as widgets. For instance, the TaxonomyOverview widget provides a summary of available data and metadata for specific taxon levels, while the WorkspaceBrowser manages the interactive display of user-stored objects.
The diagram above illustrates the inheritance hierarchy for analysis services within the application.
Sources: public/js/p3/widget/app/AppBase.js:23, public/js/p3/widget/app/MSA.js:21, public/js/p3/widget/TaxonomyOverview.js:18
Development and Branching Workflow
The project maintains a structured git workflow to ensure production stability. Feature branches are derived from a development branch and reviewed before merging into a preview environment.
| Branch | Purpose | Target URL |
|---|---|---|
master | Production release and critical bug fixes | https://www.bv-brc.org |
develop | Release-ready commits and general bug fixes | https://beta.bv-brc.org |
preview | Work in progress; merged feature branches | https://alpha.bv-brc.org |
Sources: CONTRIBUTING-old.md:35-40
Data Management and the Workspace
The Workspace is the central repository for user data, job results, and experiment groups. It supports a wide array of navigable types, including contigs, reads, job results, and various biological file formats (FASTA, Newick, JSON, CSV).
Workspace Browser Logic
The WorkspaceBrowser.js module handles navigation and actions within the file system. It dynamically loads specialized viewers based on the metadata of the selected object.
The flowchart describes how the Workspace Browser determines which specialized viewer to initialize for different data types.
Sources: public/js/p3/widget/WorkspaceBrowser.js:38-42, public/js/p3/widget/WorkspaceBrowser.js:900-960
Supported Navigable Types
The system recognizes diverse data entities, allowing users to perform context-specific actions like "View", "Download", or "Rerun" analysis.
- Biological Data:
contigs,reads,genome_group,feature_group. - Analysis Results:
job_result,diffexp_experiment,nwk(trees). - General Files:
json,csv,pdf,txt.
Sources: public/js/p3/widget/WorkspaceBrowser.js:38-42
Bioinformatic Service Integration
Analysis services in DXKB are integrated via the AppBase class, which standardizes form validation, parameter gathering, and job submission.
Job Submission Lifecycle
When a user submits an analysis form (e.g., for Comprehensive Genome Analysis), the widget validates the input, gathers the parameters into a JSON payload, and calls the AppService.start_app2 API endpoint.
The sequence diagram details the interaction between the frontend widgets and the backend service during the job submission process.
Sources: public/js/p3/widget/app/AppBase.js:215-240, public/js/p3/widget/app/AppBase.js:255-265
Analysis Meta-Services
Key services often group multiple steps into a single submission:
- Comprehensive Genome Analysis: Accepts raw reads or contigs and performs assembly, annotation, nearest neighbor identification, and phylogenetic tree construction.
- Multiple Sequence Alignment (MSA): Supports algorithms like Muscle and Mafft for both protein and DNA sequences, with optional SNP/Variation analysis.
| Service | Input Types | Core Functionality |
|---|---|---|
| Comprehensive Genome Analysis | Raw Reads, Contigs | Assembly, Annotation, Phylogeny |
| MSA & SNP Analysis | Feature Groups, FASTA, Alignment Files | Sequence Alignment, SNP detection |
| RNA-Seq Analysis | FASTQ Reads | Alignment, Differential Expression |
Sources: public/js/p3/widget/app/ComprehensiveGenomeAnalysis.js:24-26, public/js/p3/widget/app/MSA.js:24-26
Summary and Key Components
The DXKB Web application provides a powerful interface for genomic research by combining rigorous data management with complex bioinformatic pipelines. By leveraging a modular widget architecture, the project allows for the rapid integration of new analysis tools while maintaining a consistent user experience across diverse services such as RNA-Seq, Docking, and Comprehensive Genome Analysis.
Key implementation details found in the source include:
- FASTA Validation: Centralized logic in
AppBase.jsto ensure sequence integrity before submission. - Dynamic Formatting: Use of
DataItemFormatterandExternalItemFormatterto standardize the display of biological metadata across overview widgets. - Workspace Navigation: Context-aware action panels in
WorkspaceBrowser.jsthat enable downloading, sharing, and rerunning of jobs.
Sources: public/js/p3/widget/app/AppBase.js:510, public/js/p3/widget/TaxonomyOverview.js:65, public/js/p3/widget/WorkspaceBrowser.js:800-850