BioProfileKit is a domain-specific bioinformatics profiling tool for tabular biological data. It generates self-contained, interactive HTML reports covering exploratory data analysis, biological sequence profiling, and metadata validation — designed to be accessible to scientists without extensive data science skills.
Example report: BioProfileKit Example
Column-level EDA
- Automated column type inference (numeric, categorical, sequence, metadata)
- Distributional metrics and quality flags per column type
- Numeric quality metrics: IQR, outlier detection (adjusted IQR, modified Z-score, standard Z-score), zero/negative/infinity counts
- Categorical imbalance metrics: class imbalance ratio, rare category detection, near-zero variance, top-1/top-5 coverage
- Collapsible filter bar with text search and quality flag toggles (AND/OR logic)
Dataset-level EDA
- Correlation and pairwise structure analysis
- Duplicate detection
- Missing value pattern analysis: MCAR (Little's test), MAR (point-biserial correlation), MNAR (KS-test heuristic)
- Interactive Plotly visualizations
Biological Sequence Profiling
- DNA/RNA: GC content, nucleotide distribution, k-mer frequencies, AT/GC skew, ambiguous base ratio, dinucleotide O/E ratios, codon completeness, low-complexity entropy, reverse complement duplicate detection
- Protein: amino acid composition and distribution
- Configurable k-mer size and top-N reporting
Biological Metadata Validation
- Organism name and taxonomic identifier verification (Cython-accelerated)
- Functional annotation validation: GO terms and COG categories
- Controlled vocabulary checks against official databases
Interactive HTML Reports
- Portable, single-file reports with no server dependency
- Dynamic column filtering with quality flag toggles
- Colorblind-safe theme (Okabe-Ito palette) with persistent toggle
- WCAG AA accessible
BioProfileKit/
├── src/
│ ├── analysis/ # Column-level and dataset-level EDA
│ ├── biological/ # Sequence profiling and metadata validation
│ ├── cli/ # Entry point and report writer
│ ├── cython_wrapper/ # Cython-accelerated components
│ ├── data_utils/ # File I/O and remote data access
│ ├── models/ # Data models per column type
│ └── templates/ # Jinja templates for reports
└── tests/ # Unit and integration tests
https://bioprofilekit.computational.bio/
make installManual installation
pip install -e .
python setup.py build_ext --inplaceSupports .csv, .tsv, and .json as input formats.
bioprofilekit -i input.csv
Options:
-i, --input PATH Input file (.tsv, .csv, or .json) [required]
-t, --tax Enable taxonomy analysis
-f, --func [cog|go] Functional annotation validation (COG or GO)
-tc, --target_column TEXT Target column for further analysis
-k, --kmer INTEGER K-mer size for sequence analysis [default: 3]
-n, --top_n INTEGER Top N entries for reporting [default: 20]
-h, --help Show this message and exit.Warning
For high-dimensional datasets with many columns, report rendering times may increase significantly. In such cases, the hosted web application at https://bioprofilekit.computational.bio/ is recommended.
Contributions are welcome. For bug reports, feature requests, or enhancements, please open an issue or submit a pull request. For major changes, open an issue first to discuss alignment with project goals.
Please read the CODE OF CONDUCT for contribution guidelines.
Licensed under the MIT license (LICENSE or https://opensource.org/licenses/MIT). Unless explicitly stated otherwise, any contribution intentionally submitted for inclusion in BioProfileKit shall be licensed under the same terms.
For inquiries or support, reach out via GitHub Issues or Discussions.