Skip to content

Latest commit

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

omnibioai-utils

Developer utilities, automation scripts, and ecosystem management tools for the OmniBioAI platform. Covers stack lifecycle management, build automation, CI/CD control, coverage reporting, GitHub project setup, and ecosystem health monitoring.


Scripts

Stack Management

ScriptDescription
omnibioai-up.shStarts the full OmniBioAI stack in a tmux session
omnibioai-down.shTears down the tmux session and stops all services
start_all.shStarts all OmniBioAI services sequentially
start_stack_tmux.shLaunches the full stack in named tmux windows with port management
start-all-uis.shStarts all React frontend UIs and backend APIs
stop-all-uis.shStops all running React UI dev servers
smoke_test_stack.shRuns HTTP health checks against all core service endpoints

Build Automation

ScriptDescription
build-all-new.shBuilds and pushes all service images to GHCR (ghcr.io/man4ish)
build_all_tools.shBuilds all bioinformatics tool images and pushes to ECR and GHCR
build_cython.shCompiles all high-priority Cython files across repos before Docker builds

Ecosystem Management

ScriptDescription
ecosystem_status.shReports git branch and clean/dirty status across all 32 repos
check_unpushed_work.shFocused specifically on "is anything at risk of being lost" — non-zero exit if any repo has unpushed commits (untracked/modified files alone don't fail it; unpushed commits are the real risk). Supports --root, --json, --quiet
backup-system-state.shDaily backup of machine state that isn't in git — .env files, cloudflared config, systemd units, crontab — deliberately excludes .ssh/, .aws/, .kube/, .gnupg/, and other high-blast-radius credential paths
clock_count.shCounts lines of code across the full ecosystem using cloc
run_coverage.shAggregates pytest coverage reports across all repos into out/coverage/
disable_cicd.shMoves .github/workflows to workflows_disabled across all repos
update_descriptions.shUpdates GitHub repo descriptions for all OmniBioAI repos via API
update_topics.shSets GitHub topics for all OmniBioAI repos via gh api

Project Setup

Script / FileDescription
setup_beta_project.pyCreates GitHub Project "OmniBioAI Beta Launch" with Board + Roadmap views, custom fields (Priority, Category, Repo, Due Date), and issues across all repos linked to the project
build-results.txtLatest build results log

PubMed Data Pipeline

ScriptDescription
download_pubmed.shLoads PubMed abstracts into the RAG FAISS index via ragbio.utils.rag_data_loader, run inside the omnibioai-studio-rag-1 container for a set of predefined disease/topic studies
split_general_corpus.shSplits the _general_corpus abstract directory (tens of millions of files) into fixed-size chunk subdirectories so embedding_engine can process them per-chunk without code changes
test_split_on_sample.shDry-run of split_general_corpus.sh against a small sample copied into /tmp; verifies chunk counts match before running the real split on the full corpus
run_chunks.shRuns embedding_engine.py over each _general_corpus_chunk* directory with bounded concurrency, to avoid the OOM/swap issues seen when running unbounded
sync_pubmed_updates.pyDaily incremental PubMed sync — pulls new/updated files from the NCBI FTP update feed, updates existing abstract JSON files in place, and tracks progress in sync_state.json
create_new_chunks.pyCreates new _general_corpus_chunk* directories from abstracts updated by sync_pubmed_updates.py, continuing the existing chunk numbering

Reference Data

ScriptDescription
download_references.pyDownloads reference genomes, variant sets, and databases by species/assembly, with resume support and a JSON dataset registry; supports --dry-run and --status
restore_reference_data.shIntended to restore reference data, SIFs, and indexes — currently an empty file (0 bytes), not yet implemented

Container Image Management

ScriptDescription
migrate_public_images.shCopies public container images from ghcr.io/man4ish to ghcr.io/omnibioai via skopeo, skipping private packages
set_public_visibility.shBulk-sets visibility=public on omnibioai org container packages via the GitHub API
set_packages_public.shLists all container packages in the omnibioai org and PATCHes any non-public ones to public
make_public_browser.pyPlaywright browser automation to set package visibility to public, for cases the REST API doesn't support (no visibility-update endpoint)
push_sifs.shPushes local .sif Singularity images to ghcr.io/omnibioai/omnibioai-sif/<name>:arm64 via oras, skipping images already pushed
rebuild_ml_base_plugins.shRebuilds and pushes plugin images whose Dockerfiles build FROM a shared omnibioai-ml-* base image, after a base-image migration
update_ghcr_refs.shFinds, and optionally replaces (with .bak backups), lingering ghcr.io/man4ish references across a repo
sweep_all_repos.shRuns update_ghcr_refs.sh in dry-run mode across all sibling OmniBioAI repos and summarizes which ones still reference ghcr.io/man4ish
verify_migration.shCompares packages and tags between the man4ish and omnibioai GHCR namespaces and writes a migration verification report
delete_old_packages.shDeletes packages listed in old_packages.txt (produced by verify_migration.sh) from the man4ish namespace; dry-run by default, requires typed DELETE confirmation
delete_packages_browser.pyPlaywright browser automation fallback for bulk package deletion, for use when the API token lacks delete:packages scope
check_base_images.shCompares the ~12 shared omnibioai-base/omnibioai-ml-* base images against ghcr.io/omnibioai directly (no pagination needed); flags any local build newer than the registry's last push
check_platform_workflows.shChecks GitHub Actions run health (not local push state) for the ~20 platform/system repos whose CI workflow builds+pushes their Docker image; distinguishes disabled/stale/failing/OK
check_plugin_image_sync.shPaginated, rate-limit-aware read-only gap check between locally-built omnibioai-plugin-* images and their ghcr.io/omnibioai packages; no local push log exists for plugins, so this rebuilds the comparison each run and logs clearly if a sweep is cut short by rate limiting

Testing & Evaluation

ScriptDescription
agent_tool_selection_eval.pyEvaluates how reliably a local Ollama model selects the correct tool and fills valid arguments from a semantically-narrowed shortlist drawn from the TES tool corpus
prepare_real_data_facs.pyBuilds a real ClinVar-derived training set (CADD, gnomAD, GERP, PhyloP, SIFT, PolyPhen features) for the variant_pathogenicity_classifier plugin, replacing its synthetic 24-row toy dataset

Usage

Check ecosystem status

bash ecosystem_status.sh
# or from machine root:
bash utils/ecosystem_status.sh

Start the full stack

bash omnibioai-up.sh

Smoke test all services

bash smoke_test_stack.sh

Build and push all images to GHCR

bash build-all-new.sh

Run coverage across all repos

bash run_coverage.sh
# Output: ~/Desktop/machine/out/coverage/

Update all GitHub repo descriptions and topics

export GITHUB_TOKEN=<your_pat>
bash update_descriptions.sh
bash update_topics.sh

Set up GitHub Beta Launch project

export GITHUB_TOKEN=<your_pat>
python setup_beta_project.py --dry-run # preview
python setup_beta_project.py # execute

Disable CI/CD across all repos

bash disable_cicd.sh

Requirements

# Shell utilities
sudo apt-get install tmux cloc
# Python (for setup_beta_project.py)
pip install PyGithub requests
# GitHub CLI (for update_topics.sh, update_descriptions.sh)
gh auth login

Related Repositories


Scheduled Tasks (Cron)

TimeScriptPurpose
2AM dailyrun_coverage_host.pyTest coverage
3AM dailysync_pubmed_updates.pyPubMed sync
4AM dailybackup-mysql.shDatabase backup
Hourlycheck_and_reindex.shRe-index check
8AM dailycheck_base_images.shBase image freshness vs. ghcr.io/omnibioai
8:15AM dailycheck_platform_workflows.shPlatform-image CI/CD workflow health
8:30AM dailycheck_plugin_image_sync.shPlugin image vs. registry gap sweep

About

Developer utilities and automation scripts for the OmniBioAI ecosystem — stack lifecycle management, image builds, coverage reporting, CI/CD control, and GitHub project automation.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages