Skip to content

OpenMined/biovault-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

203 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

BioVault Mobile App

A privacy-first genomic analysis app that serves as a gateway to the collaborative BioVault research network. Load your genetic data for local analysis, discover insights, and connect to the world of collaborative genomics.

Features

  • 🧬 My DNA - Load and manage genetic data files locally on your device (23andMe, AncestryDNA, etc.)
  • πŸ” Insights - Run ClinVar analysis and discover genetic insights
  • 🌐 Research - Connect to the BioVault collaborative genomics network
  • πŸ“Š Web-Only Features - Enhanced analytics, network participants, biobanks, pipelines, and more

Development Setup

Prerequisites

  • Node.js
  • npm or yarn
  • Expo CLI
  • iOS Simulator (for iOS development)
  • Android Studio/Emulator (for Android development)

Quickstart

Install NVM:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
brew install fastlane cocoapods

Get node 23:

nvm install 23.6.1
nvm alias default 23.6.1

Install packages:

npm install

Expo Doctor:

npx expo-doctor

iOS:

rm -rf ios
npm run cargo-ios -- ios
npm run prebuild
npm run device

Or this script:

./ios.sh

Installation

  1. Clone and install dependencies:

    git clone <repository-url>
    cd biovault-app
    npm install
  2. Start the development server:

    npm run start

Platform-Specific Setup

πŸ“± iOS Development

Option 1: Physical Device (Recommended)

  1. Install the BioVault Dev app from the Expo Dashboard
  2. Open the BioVault Dev app on your iOS device
  3. Scan the QR code generated by npm run start
  4. Your device will connect to your development server

Option 2: iOS Simulator

  • Use Radon Extension for VS Code/Cursor
  • Or install Expo Orbit for easy simulator management
  • Press i in the terminal after running npm run start

πŸ€– Android Development

Option 1: Physical Device (Recommended)

  1. Download the latest BioVault APK from the Expo Dashboard
  2. Install the APK on your Android device
  3. Open the BioVault app
  4. Scan the QR code generated by npm run start
  5. Your device will connect to your development server

Option 2: Android Emulator

  • Use Radon Extension for VS Code/Cursor
  • Or install Expo Orbit for easy emulator management
  • Press a in the terminal after running npm run start

🌐 Web Development

  1. Run npm run start
  2. Press w in the terminal, or
  3. Open your browser to http://localhost:8081 (or the port shown in terminal)
  4. The web version includes additional tabs not available on mobile

Rust Runtime Development

This app now uses the expo-bioscript native module plus the shared bioscript workspace checked into ./bioscript.

What lives where

  • modules/expo-bioscript/
    • Expo native wrapper used by the app
    • builds iOS/Android artifacts from the shared BioScript FFI crate
  • bioscript/rust/
    • shared Rust workspace
    • contains bioscript-cli, bioscript-ffi, bioscript-runtime, and related crates

Building native BioScript artifacts

Prerequisites:

  • Rust toolchain
  • Xcode and iOS targets for iOS development
  • Android SDK/NDK and Rust Android targets for Android development

Install Rust targets:

rustup target add aarch64-apple-ios
rustup target add aarch64-apple-ios-sim
rustup target add aarch64-linux-android
rustup target add x86_64-linux-android
cargo install cargo-ndk

Build iOS artifacts for expo-bioscript:

npm run cargo-ios

Build Android artifacts for expo-bioscript:

npm run cargo-android

The build scripts resolve the shared BioScript workspace from ./bioscript by default. If needed, you can override that with BIOSCRIPT_ROOT=/path/to/bioscript.

Shared Rust workspace commands

Run workspace tests:

./test.sh --fast

Run coverage:

./coverage.sh

Run clippy fixes:

./clippy.sh

Run the BioScript CLI directly:

./cli --help

Test Data

Some repo tests rely on local fixture files under test-data/.

Bootstrap them with:

./tools/fetch_test_data.sh

This downloads the web 23andMe fixture used by ./test-web.sh plus the larger CRAM/reference fixtures used by ./wasm.sh and some bioscript paths.

If ./test-web.sh reports a missing fixture, run ./tools/fetch_test_data.sh and rerun the tests.

Testing the Rust via CLI

./cli --help
./cli parse --file /path/to/genome.zip --output sample

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

 
 
 

Contributors